back to single threaded renderer, client server good now

This commit is contained in:
2024-06-14 16:31:16 -04:00
parent 24a7e299fa
commit 219213ee24
25 changed files with 435 additions and 413 deletions
+1 -1
View File
@@ -1 +1 @@
pub mod voxel_grid;
pub mod render;
+50
View File
@@ -0,0 +1,50 @@
use bevy_ecs::{
entity::Entity,
query::{Added, Changed, Or},
system::{Query, ResMut},
};
use nalgebra::Vector3;
use ndarray::Axis;
use crate::{
client::{
component::RenderCommands,
render::{CreateVoxelGrid, RenderCommand, UpdateGridTransform},
},
world::component::{Orientation, Pos, VoxelGrid},
};
pub fn add_grid(
query: Query<
(Entity, &Pos, &Orientation, &VoxelGrid),
Or<(Added<Pos>, Added<Orientation>, Added<VoxelGrid>)>,
>,
mut renderer: ResMut<RenderCommands>,
) {
for (id, pos, orientation, grid) in query.iter() {
renderer.push(RenderCommand::CreateVoxelGrid(CreateVoxelGrid {
id,
pos: **pos,
orientation: **orientation,
dimensions: Vector3::new(
grid.len_of(Axis(0)),
grid.len_of(Axis(1)),
grid.len_of(Axis(2)),
),
grid: grid.iter().cloned().collect(),
}));
}
}
pub fn update_transform(
query: Query<(Entity, &Pos, &Orientation), Or<(Changed<Pos>, Changed<Orientation>)>>,
mut renderer: ResMut<RenderCommands>,
) {
for (id, pos, orientation) in query.iter() {
renderer.push(RenderCommand::UpdateGridTransform(UpdateGridTransform {
id,
pos: **pos,
orientation: **orientation,
}));
}
}
-36
View File
@@ -1,36 +0,0 @@
use bevy_ecs::{
query::{Changed, Or},
system::{Query, Res},
};
use nalgebra::Vector3;
use ndarray::Axis;
use crate::{
client::{
component::RenderResource,
render::{CreateVoxelGrid, RenderMessage},
},
world::component::{Orientation, Pos, VoxelGrid},
};
pub fn update_renderer(
query: Query<
(&Pos, &Orientation, &VoxelGrid),
Or<(Changed<Pos>, Changed<Orientation>, Changed<VoxelGrid>)>,
>,
renderer: Res<RenderResource>,
) {
for (pos, orientation, grid) in query.iter() {
println!("YAY");
renderer.send(RenderMessage::CreateVoxelGrid(CreateVoxelGrid {
pos: **pos,
orientation: **orientation,
dimensions: Vector3::new(
grid.len_of(Axis(0)),
grid.len_of(Axis(1)),
grid.len_of(Axis(2)),
),
grid: grid.iter().cloned().collect(),
}));
}
}