diff options
Diffstat (limited to 'src/sim')
| -rw-r--r-- | src/sim/cell_manager/chunk.rs | 20 | ||||
| -rw-r--r-- | src/sim/cell_manager/manager.rs | 6 |
2 files changed, 24 insertions, 2 deletions
diff --git a/src/sim/cell_manager/chunk.rs b/src/sim/cell_manager/chunk.rs index 463242d..f077233 100644 --- a/src/sim/cell_manager/chunk.rs +++ b/src/sim/cell_manager/chunk.rs @@ -2,7 +2,7 @@ use glam::IVec2; use crate::{ config::{CELLS_IN_CHUNK, CHUNK_SIZE}, - content::materials::MaterialForm, + content::materials::{MaterialForm, MaterialId}, sim::{cell::Cell, lib::marching_squares::Marchable}, }; @@ -29,6 +29,24 @@ impl Chunk { needs_texture_update: true, } } + + pub fn floor() -> Self { + let mut c = Chunk { + cells: Box::new([Cell::void(); CELLS_IN_CHUNK]), + sleeping: true, + needs_texture_update: true, + }; + + for x in 0..CHUNK_SIZE { + c.set_cell_at_local_position( + x as u8, + CHUNK_SIZE as u8 - 1, + Cell::from_material(MaterialId::Steel), + ); + } + + c + } } impl Marchable for Chunk { diff --git a/src/sim/cell_manager/manager.rs b/src/sim/cell_manager/manager.rs index 6fa5f37..93b720d 100644 --- a/src/sim/cell_manager/manager.rs +++ b/src/sim/cell_manager/manager.rs @@ -66,7 +66,11 @@ impl CellManager { for y in -10..1 { for x in -100..100 { - world.insert(x, y, Chunk::void()); + if y == 0 { + world.insert(x, y, Chunk::floor()); + } else { + world.insert(x, y, Chunk::void()); + } } } |
