Scale back coordinate types for new 50 km limit

This commit is contained in:
crumblingstatue 2023-04-03 12:01:59 +02:00
parent 64735c7455
commit d41032dbcc
4 changed files with 10 additions and 7 deletions

View file

@ -15,6 +15,8 @@
The evil source is at about 50 km.
The final goal is the evil source, so player is expected to mine about 50 km deep to beat the game.
1 meter = one tile. 50 km = 50,000 tiles deep.
There could be some post-endgame content from 50,000-60,000 blocks deep.
Very unbreakable bottom or lava lake or whatever is at 60,000 blocks deep.
## Number of stuff

View file

@ -57,7 +57,7 @@ impl App {
fn do_update(&mut self) {
let tp = self.game.camera_offset.tile_pos();
self.game.camera_offset.y += 33;
self.game.camera_offset.y += 800;
imm_dbg!(tp);
imm_dbg!(tp.to_chunk_and_local());
}

View file

@ -18,9 +18,10 @@ impl WorldPos {
}
}
/// Horizontal center of the world
pub const CENTER: WorldPosScalar = WorldPosScalar::MAX / 2;
/// Vertical surface level
pub const SURFACE: WorldPosScalar = WorldPosScalar::MAX / 16;
pub const CENTER: WorldPosScalar =
(TilePosScalar::MAX / 2) as WorldPosScalar * TILE_SIZE as WorldPosScalar;
/// Vertical surface level. You can build 5,000 blocks upwards
pub const SURFACE: WorldPosScalar = 5000 * TILE_SIZE as WorldPosScalar;
pub const SURFACE_CENTER: Self = Self {
x: Self::CENTER,
y: Self::SURFACE,
@ -28,7 +29,7 @@ impl WorldPos {
}
pub fn wp_to_tp(wp: WorldPosScalar) -> TilePosScalar {
wp / TILE_SIZE as TilePosScalar
(wp / TILE_SIZE as WorldPosScalar) as TilePosScalar
}
#[test]

View file

@ -1,7 +1,7 @@
use fnv::FnvHashMap;
use rand::{thread_rng, Rng};
type ChunkPosScalar = u32;
type ChunkPosScalar = u16;
#[derive(Hash, PartialEq, Eq, Debug, Clone, Copy)]
pub struct ChunkPos {
@ -95,7 +95,7 @@ fn test_to_chunk_and_local() {
}
// Need to support at least 4 million tiles long
pub type TilePosScalar = u32;
pub type TilePosScalar = u16;
const CHUNK_EXTENT: u16 = 128;
const CHUNK_N_TILES: usize = CHUNK_EXTENT as usize * CHUNK_EXTENT as usize;