From 634cb8d72c6608512aedba19e5cd669104bc35ea Mon Sep 17 00:00:00 2001 From: mat <27899617+mat-1@users.noreply.github.com> Date: Wed, 3 May 2023 20:57:27 -0500 Subject: Inventory (#48) * start adding azalea-inventory * design more of how inventories are defined * start working on az-inv-macros * inventory macro works * start adding inventory codegen * update some deps * add inventory codegen * manually write inventory menus * put the inventories in Client * start on containersetcontent * inventory menu should hopefully work * checks in containersetcontent * format a comment * move some variant matches * inventory.rs * inventory stuff * more inventory stuff * inventory/container tracking works * start adding interact function * sequence number * start adding HitResultComponent * implement traverse_blocks * start adding clip * add clip function * update_hit_result_component * start trying to fix * fix * make some stuff simpler * clippy * lever * chest * container handle * fix ambiguity * fix some doc tests * move some container stuff from az-client to azalea * clicking container * start implementing simulate_click * keep working on simulate click * implement more of simulate_click this is really boring * inventory fixes * start implementing shift clicking * fix panic in azalea-chat i hope * shift clicking implemented * more inventory stuff * fix items not showing in containers sometimes * fix test * fix all warnings * remove a println --------- Co-authored-by: mat --- azalea-core/src/position.rs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'azalea-core/src/position.rs') diff --git a/azalea-core/src/position.rs b/azalea-core/src/position.rs index c09c9966..766c38d6 100755 --- a/azalea-core/src/position.rs +++ b/azalea-core/src/position.rs @@ -18,6 +18,12 @@ macro_rules! vec3_impl { self.x * self.x + self.y * self.y + self.z * self.z } + /// Get the squared distance from this position to another position. + /// Equivalent to `(self - other).length_sqr()`. + pub fn distance_to_sqr(&self, other: &Self) -> $type { + (self - other).length_sqr() + } + /// Return a new instance of this position with the y coordinate /// decreased by the given number. pub fn down(&self, y: $type) -> Self { @@ -36,6 +42,10 @@ macro_rules! vec3_impl { z: self.z, } } + + pub fn dot(&self, other: Self) -> $type { + self.x * other.x + self.y * other.y + self.z * other.z + } } impl Add for &$name { @@ -142,6 +152,15 @@ impl BlockPos { } } + /// Convert the block position into a Vec3 without centering it. + pub fn to_vec3_floored(&self) -> Vec3 { + Vec3 { + x: self.x as f64, + y: self.y as f64, + z: self.z as f64, + } + } + /// Get the distance of this vector from the origin by doing `x + y + z`. pub fn length_manhattan(&self) -> u32 { (self.x.abs() + self.y.abs() + self.z.abs()) as u32 -- cgit v1.2.3