Fixed cylindrical
This commit is contained in:
parent
387da2c8b5
commit
c85216242e
@ -19,7 +19,7 @@ impl Cylindrical {
|
|||||||
old_cylindrical: Cylindrical,
|
old_cylindrical: Cylindrical,
|
||||||
new_cylindrical: Cylindrical,
|
new_cylindrical: Cylindrical,
|
||||||
mut newly_included: impl FnMut(Vector2<i32>),
|
mut newly_included: impl FnMut(Vector2<i32>),
|
||||||
just_removed: impl FnMut(Vector2<i32>),
|
mut just_removed: impl FnMut(Vector2<i32>),
|
||||||
ignore: bool,
|
ignore: bool,
|
||||||
) {
|
) {
|
||||||
let min_x = old_cylindrical.left().min(new_cylindrical.left());
|
let min_x = old_cylindrical.left().min(new_cylindrical.left());
|
||||||
@ -29,26 +29,24 @@ impl Cylindrical {
|
|||||||
|
|
||||||
for x in min_x..=max_x {
|
for x in min_x..=max_x {
|
||||||
for z in min_z..=max_z {
|
for z in min_z..=max_z {
|
||||||
// TODO
|
let old_is_within = if ignore {
|
||||||
// let old_is_within = if ignore {
|
false
|
||||||
// false
|
} else {
|
||||||
// } else {
|
old_cylindrical.is_within_distance(x, z)
|
||||||
// old_cylindrical.is_within_distance(x, z)
|
};
|
||||||
// };
|
let new_is_within = if ignore {
|
||||||
// let new_is_within = if ignore {
|
true
|
||||||
// true
|
} else {
|
||||||
// } else {
|
new_cylindrical.is_within_distance(x, z)
|
||||||
// new_cylindrical.is_within_distance(x, z)
|
};
|
||||||
// };
|
|
||||||
|
|
||||||
// if old_is_within != new_is_within {
|
if old_is_within != new_is_within {
|
||||||
// if new_is_within {
|
if new_is_within {
|
||||||
newly_included(Vector2::new(x, z));
|
newly_included(Vector2::new(x, z));
|
||||||
// } else {
|
} else {
|
||||||
// dbg!("aa");
|
just_removed(Vector2::new(x, z));
|
||||||
// just_removed(Vector2::new(x, z));
|
}
|
||||||
// }
|
}
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -101,13 +101,14 @@ impl Entity {
|
|||||||
let block_pos = self.block_pos.load();
|
let block_pos = self.block_pos.load();
|
||||||
let block_pos_vec = block_pos.0;
|
let block_pos_vec = block_pos.0;
|
||||||
if i != block_pos_vec.x || j != block_pos_vec.y || k != block_pos_vec.z {
|
if i != block_pos_vec.x || j != block_pos_vec.y || k != block_pos_vec.z {
|
||||||
self.block_pos.store(WorldPosition(Vector3::new(i, j, k)));
|
let new_block_pos = Vector3::new(i, j, k);
|
||||||
|
self.block_pos.store(WorldPosition(new_block_pos));
|
||||||
|
|
||||||
let chunk_pos = self.chunk_pos.load();
|
let chunk_pos = self.chunk_pos.load();
|
||||||
if get_section_cord(i) != chunk_pos.x || get_section_cord(k) != chunk_pos.z {
|
if get_section_cord(i) != chunk_pos.x || get_section_cord(k) != chunk_pos.z {
|
||||||
self.chunk_pos.store(Vector2::new(
|
self.chunk_pos.store(Vector2::new(
|
||||||
get_section_cord(block_pos_vec.x),
|
get_section_cord(new_block_pos.x),
|
||||||
get_section_cord(block_pos_vec.z),
|
get_section_cord(new_block_pos.z),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -79,8 +79,10 @@ pub async fn update_position(entity: &Entity, player: &Player) {
|
|||||||
view_distance,
|
view_distance,
|
||||||
);
|
);
|
||||||
let new_cylindrical =
|
let new_cylindrical =
|
||||||
Cylindrical::new(Vector2::new(chunk_pos.x, chunk_pos.z), view_distance);
|
Cylindrical::new(chunk_pos, view_distance);
|
||||||
|
|
||||||
player.watched_section.store(new_watched);
|
player.watched_section.store(new_watched);
|
||||||
|
|
||||||
let mut loading_chunks = Vec::new();
|
let mut loading_chunks = Vec::new();
|
||||||
Cylindrical::for_each_changed_chunk(
|
Cylindrical::for_each_changed_chunk(
|
||||||
old_cylindrical,
|
old_cylindrical,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user