summaryrefslogtreecommitdiff
path: root/src/renderer/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/renderer/mod.rs')
-rw-r--r--src/renderer/mod.rs19
1 files changed, 13 insertions, 6 deletions
diff --git a/src/renderer/mod.rs b/src/renderer/mod.rs
index 291b6d4..2df15e6 100644
--- a/src/renderer/mod.rs
+++ b/src/renderer/mod.rs
@@ -11,8 +11,11 @@ use crate::{
config::{CELLS_IN_CHUNK, CHUNK_SIZE},
renderer::ui::draw_egui,
sim::{
- cell::materials::MaterialId, cell_manager::manager::CellManager, entity::Entity,
- rb_manager::debug_render::DebugVertex, sim_manager::SimManager,
+ cell::materials::MaterialId,
+ cell_manager::manager::CellManager,
+ entity::Entity,
+ rb_manager::debug_render::DebugVertex,
+ sim_manager::{SimCtx, SimManager},
},
};
@@ -692,7 +695,7 @@ impl RendererState {
self.renderer_rb_entities.drain();
for entity in sim.entities.values() {
// TODO add "needs texture update"?
- if let Some(cells) = &entity.cells {
+ if let Some(cells) = &entity.data.cells {
for i in 0..cells.cells.len() {
cell_buffer[i] = cells.cells[i].material as u8;
}
@@ -700,7 +703,7 @@ impl RendererState {
let next_slot = CHUNK_SLOTS + self.renderer_rb_entities.len();
let slot = *self
.renderer_rb_entities
- .entry(entity.id)
+ .entry(entity.data.id)
.or_insert(next_slot);
self.queue.write_buffer(
@@ -743,8 +746,12 @@ impl RendererState {
for (id, slot) in &self.renderer_rb_entities {
if let Some(entity) = sim.entities.get(id)
- && let Some(cells) = &entity.cells
- && let Some((pos, (cos, sin))) = entity.transform(sim)
+ && let Some(cells) = &entity.data.cells
+ && let Some((pos, (cos, sin))) = entity.data.transform(&mut SimCtx {
+ cell_manager: &mut sim.cell_manager,
+ particle_manager: &mut sim.particle_manager,
+ rb_manager: &mut sim.rb_manager,
+ })
{
instances.push(RendererInstance {
centre: pos.to_array(),