moved renderer to separate thread, add evenio and start structure, make it so you can add stuff
This commit is contained in:
73
src/client/init.rs
Normal file
73
src/client/init.rs
Normal file
@@ -0,0 +1,73 @@
|
||||
use crate::world::component::VoxelGrid;
|
||||
use evenio::world::World;
|
||||
use nalgebra::{Rotation3, UnitVector3, Vector3};
|
||||
use ndarray::Array3;
|
||||
|
||||
use crate::client::render::voxel::VoxelColor;
|
||||
|
||||
use super::system::voxel_grid::SpawnVoxelGrid;
|
||||
|
||||
pub fn init_world(world: &mut World) {
|
||||
let dim = (15, 10, 10);
|
||||
world.send(SpawnVoxelGrid {
|
||||
pos: Vector3::new(0.0, 0.0, 20.0),
|
||||
orientation: Rotation3::from_axis_angle(&Vector3::y_axis(), 0.5),
|
||||
grid: VoxelGrid::new(Array3::from_shape_fn(dim, |(x, y, z)| {
|
||||
if x == z && x == y {
|
||||
VoxelColor::white()
|
||||
} else if z == 3 {
|
||||
VoxelColor {
|
||||
r: (x as f32 / dim.0 as f32 * 255.0) as u8,
|
||||
g: (y as f32 / dim.1 as f32 * 255.0) as u8,
|
||||
b: 100,
|
||||
a: 255,
|
||||
}
|
||||
} else if z == 0 {
|
||||
VoxelColor {
|
||||
r: (x as f32 / dim.0 as f32 * 255.0) as u8,
|
||||
g: (y as f32 / dim.1 as f32 * 255.0) as u8,
|
||||
b: 0,
|
||||
a: 100,
|
||||
}
|
||||
} else {
|
||||
VoxelColor::none()
|
||||
}
|
||||
})),
|
||||
});
|
||||
|
||||
let dim = (1000, 2, 1000);
|
||||
world.send(SpawnVoxelGrid {
|
||||
pos: Vector3::new(0.0, -2.1, 0.0),
|
||||
orientation: Rotation3::identity(),
|
||||
grid: VoxelGrid::new(Array3::from_shape_fn(dim, |(x, y, z)| {
|
||||
if y == 0 {
|
||||
rand::random()
|
||||
} else if (y == dim.1 - 1) && (x == 0 || x == dim.0 - 1 || z == 0 || z == dim.2 - 1) {
|
||||
VoxelColor {
|
||||
r: 255,
|
||||
g: 0,
|
||||
b: 255,
|
||||
a: 255,
|
||||
}
|
||||
} else {
|
||||
VoxelColor::none()
|
||||
}
|
||||
})),
|
||||
});
|
||||
|
||||
let dim = (3, 3, 3);
|
||||
world.send(SpawnVoxelGrid {
|
||||
pos: Vector3::new(0.0, 0.0, 16.5),
|
||||
orientation: Rotation3::from_axis_angle(&Vector3::y_axis(), std::f32::consts::PI / 4.0)
|
||||
* Rotation3::from_axis_angle(
|
||||
&UnitVector3::new_normalize(Vector3::new(1.0, 0.0, 1.0)),
|
||||
std::f32::consts::PI / 4.0,
|
||||
),
|
||||
grid: VoxelGrid::new(Array3::from_shape_fn(dim, |(..)| VoxelColor {
|
||||
r: 255,
|
||||
g: 0,
|
||||
b: 255,
|
||||
a: 255,
|
||||
})),
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user