diff --git a/design.md b/design.md index 401f4ac..fa6e96a 100644 --- a/design.md +++ b/design.md @@ -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 diff --git a/src/app.rs b/src/app.rs index 260149e..940d280 100644 --- a/src/app.rs +++ b/src/app.rs @@ -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()); } diff --git a/src/math.rs b/src/math.rs index 8f581c8..8a131e1 100644 --- a/src/math.rs +++ b/src/math.rs @@ -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] diff --git a/src/world.rs b/src/world.rs index 7387f55..72a1eb6 100644 --- a/src/world.rs +++ b/src/world.rs @@ -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;