summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/sim/cell_manager/chunk.rs20
-rw-r--r--src/sim/cell_manager/manager.rs6
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());
+ }
}
}