mirror of
https://github.com/griffi-gh/kubi.git
synced 2024-12-25 21:28:20 -06:00
Migrate to shipyard master
This commit is contained in:
parent
d583673081
commit
0dbb7e21ee
|
@ -9,7 +9,7 @@ kubi-shared = { path = "../kubi-shared" }
|
||||||
kubi-udp = { path = "../kubi-udp" }
|
kubi-udp = { path = "../kubi-udp" }
|
||||||
kubi-logging = { path = "../kubi-logging" }
|
kubi-logging = { path = "../kubi-logging" }
|
||||||
log = "*"
|
log = "*"
|
||||||
shipyard = "0.6"
|
shipyard = { git = "https://github.com/leudz/shipyard", rev = "9fd2aaa32bccee29bd7fc99ccaabec950fe13ed0" }
|
||||||
serde = "1.0"
|
serde = "1.0"
|
||||||
toml = "0.7"
|
toml = "0.7"
|
||||||
glam = { version = "0.22", features = ["debug-glam-assert", "fast-math"] }
|
glam = { version = "0.22", features = ["debug-glam-assert", "fast-math"] }
|
||||||
|
|
|
@ -8,7 +8,7 @@ publish = false
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
glam = { version = "0.22", features = ["debug-glam-assert", "fast-math", "serde"] }
|
glam = { version = "0.22", features = ["debug-glam-assert", "fast-math", "serde"] }
|
||||||
shipyard = "0.6"
|
shipyard = { git = "https://github.com/leudz/shipyard", rev = "9fd2aaa32bccee29bd7fc99ccaabec950fe13ed0" }
|
||||||
strum = { version = "0.24", features = ["derive"] }
|
strum = { version = "0.24", features = ["derive"] }
|
||||||
bincode = "2.0.0-rc"
|
bincode = "2.0.0-rc"
|
||||||
anyhow = "1.0"
|
anyhow = "1.0"
|
||||||
|
|
|
@ -15,7 +15,7 @@ image = { version = "0.24", default_features = false, features = ["png"] }
|
||||||
strum = { version = "0.24", features = ["derive"] }
|
strum = { version = "0.24", features = ["derive"] }
|
||||||
hashbrown = "0.13"
|
hashbrown = "0.13"
|
||||||
rayon = "1.6"
|
rayon = "1.6"
|
||||||
shipyard = { version = "0.6", features = ["thread_local"] }
|
shipyard = { git = "https://github.com/leudz/shipyard", rev = "9fd2aaa32bccee29bd7fc99ccaabec950fe13ed0", features = ["thread_local"] }
|
||||||
nohash-hasher = "0.2.0"
|
nohash-hasher = "0.2.0"
|
||||||
anyhow = "1.0"
|
anyhow = "1.0"
|
||||||
flume = "0.10"
|
flume = "0.10"
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
// three layers of stolen code, yay!
|
// three layers of stolen code, yay!
|
||||||
|
|
||||||
use glam::{Vec3A, Vec4, Mat3A, vec3a, Vec3, vec4};
|
use glam::{Vec3A, Vec4, Mat3A, vec3a, Vec3, vec4};
|
||||||
use shipyard::{ViewMut, IntoIter, View};
|
use shipyard::{ViewMut, IntoIter, View, track};
|
||||||
use crate::transform::Transform;
|
use crate::transform::Transform;
|
||||||
use super::Camera;
|
use super::Camera;
|
||||||
|
|
||||||
|
@ -122,9 +122,9 @@ fn intersection<const A: usize, const B: usize, const C: usize>(planes: &[Vec4;
|
||||||
|
|
||||||
pub fn update_frustum(
|
pub fn update_frustum(
|
||||||
mut cameras: ViewMut<Camera>,
|
mut cameras: ViewMut<Camera>,
|
||||||
transforms: View<Transform>
|
transforms: View<Transform, { track::All }>
|
||||||
) {
|
) {
|
||||||
for (camera, _) in (&mut cameras, transforms.inserted_or_modified()).iter() {
|
for (mut camera, _) in (&mut cameras, transforms.inserted_or_modified()).iter() {
|
||||||
camera.frustum = Frustum::compute(camera);
|
camera.frustum = Frustum::compute(&camera);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
use glam::{Vec3, Mat4};
|
use glam::{Vec3, Mat4};
|
||||||
use shipyard::{ViewMut, View, IntoIter, Workload, IntoWorkload};
|
use shipyard::{ViewMut, View, IntoIter, Workload, IntoWorkload, track};
|
||||||
use crate::{transform::Transform, events::WindowResizedEvent};
|
use crate::{transform::Transform, events::WindowResizedEvent};
|
||||||
use super::Camera;
|
use super::Camera;
|
||||||
|
|
||||||
|
@ -7,11 +7,11 @@ use super::Camera;
|
||||||
|
|
||||||
fn update_view_matrix(
|
fn update_view_matrix(
|
||||||
mut vm_camera: ViewMut<Camera>,
|
mut vm_camera: ViewMut<Camera>,
|
||||||
v_transform: View<Transform>
|
v_transform: View<Transform, { track::All }>
|
||||||
) {
|
) {
|
||||||
for (camera, transform) in (&mut vm_camera, v_transform.inserted_or_modified()).iter() {
|
for (mut camera, transform) in (&mut vm_camera, v_transform.inserted_or_modified()).iter() {
|
||||||
let (_, rotation, translation) = transform.0.to_scale_rotation_translation();
|
let (_, rotation, translation) = transform.0.to_scale_rotation_translation();
|
||||||
let direction = (rotation * Vec3::NEG_Z).normalize();
|
let direction = (rotation.normalize() * Vec3::NEG_Z).normalize();
|
||||||
camera.view_matrix = Mat4::look_to_rh(translation, direction, camera.up);
|
camera.view_matrix = Mat4::look_to_rh(translation, direction, camera.up);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -24,7 +24,7 @@ fn update_perspective_matrix(
|
||||||
let Some(&size) = resize.iter().next() else {
|
let Some(&size) = resize.iter().next() else {
|
||||||
return
|
return
|
||||||
};
|
};
|
||||||
for camera in (&mut vm_camera).iter() {
|
for mut camera in (&mut vm_camera).iter() {
|
||||||
camera.perspective_matrix = Mat4::perspective_rh_gl(
|
camera.perspective_matrix = Mat4::perspective_rh_gl(
|
||||||
camera.fov,
|
camera.fov,
|
||||||
size.0.x as f32 / size.0.y as f32,
|
size.0.x as f32 / size.0.y as f32,
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
use shipyard::{Component, View, ViewMut, EntitiesViewMut, IntoIter};
|
use shipyard::{Component, View, ViewMut, EntitiesViewMut, IntoIter, track};
|
||||||
use glam::{IVec3, Quat, Vec3};
|
use glam::{IVec3, Quat, Vec3};
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
|
@ -21,7 +21,7 @@ pub enum PlayerActionEvent {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn generate_move_events(
|
pub fn generate_move_events(
|
||||||
transforms: View<Transform>,
|
transforms: View<Transform, { track::All }>,
|
||||||
player: View<MainPlayer>,
|
player: View<MainPlayer>,
|
||||||
mut entities: EntitiesViewMut,
|
mut entities: EntitiesViewMut,
|
||||||
mut events: ViewMut<EventComponent>,
|
mut events: ViewMut<EventComponent>,
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
use glam::{Vec3, Mat4, Quat, EulerRot, Vec2};
|
use glam::{Vec3, Mat4, Quat, EulerRot, Vec2};
|
||||||
use shipyard::{Component, View, ViewMut, IntoIter, UniqueView, Workload, IntoWorkload};
|
use shipyard::{Component, View, ViewMut, IntoIter, UniqueView, Workload, IntoWorkload, track};
|
||||||
use std::f32::consts::PI;
|
use std::f32::consts::PI;
|
||||||
use crate::{transform::Transform, input::Inputs, settings::GameSettings, delta_time::DeltaTime};
|
use crate::{transform::Transform, input::Inputs, settings::GameSettings, delta_time::DeltaTime};
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@ const MAX_PITCH: f32 = PI/2. - 0.05;
|
||||||
|
|
||||||
fn update_look(
|
fn update_look(
|
||||||
controllers: View<FlyController>,
|
controllers: View<FlyController>,
|
||||||
mut transforms: ViewMut<Transform>,
|
mut transforms: ViewMut<Transform, { track::All }>,
|
||||||
inputs: UniqueView<Inputs>,
|
inputs: UniqueView<Inputs>,
|
||||||
settings: UniqueView<GameSettings>,
|
settings: UniqueView<GameSettings>,
|
||||||
dt: UniqueView<DeltaTime>,
|
dt: UniqueView<DeltaTime>,
|
||||||
|
@ -37,7 +37,7 @@ fn update_look(
|
||||||
|
|
||||||
fn update_movement(
|
fn update_movement(
|
||||||
controllers: View<FlyController>,
|
controllers: View<FlyController>,
|
||||||
mut transforms: ViewMut<Transform>,
|
mut transforms: ViewMut<Transform, { track::All }>,
|
||||||
inputs: UniqueView<Inputs>,
|
inputs: UniqueView<Inputs>,
|
||||||
dt: UniqueView<DeltaTime>,
|
dt: UniqueView<DeltaTime>,
|
||||||
) {
|
) {
|
||||||
|
|
|
@ -1,11 +1,12 @@
|
||||||
use shipyard::{UniqueView, UniqueViewMut, NonSendSync, View, Component, IntoIter, IntoWithId, Get};
|
use shipyard::{UniqueView, UniqueViewMut, NonSendSync, View, Component, IntoIter, IntoWithId, Get, track};
|
||||||
use glium::{Surface, uniform, DrawParameters};
|
use glium::{Surface, uniform, DrawParameters};
|
||||||
use crate::{
|
use crate::{
|
||||||
prefabs::ProgressbarShaderPrefab,
|
prefabs::ProgressbarShaderPrefab,
|
||||||
rendering::{
|
rendering::{
|
||||||
RenderTarget,
|
RenderTarget,
|
||||||
primitives::rect::RectPrimitive
|
primitives::rect::RectPrimitive
|
||||||
}, transform::Transform2d,
|
},
|
||||||
|
transform::Transform2d,
|
||||||
};
|
};
|
||||||
use super::{GuiComponent, PrimaryColor, SecondaryColor, GuiView};
|
use super::{GuiComponent, PrimaryColor, SecondaryColor, GuiView};
|
||||||
|
|
||||||
|
@ -20,7 +21,7 @@ pub fn render_progressbars(
|
||||||
program: NonSendSync<UniqueView<ProgressbarShaderPrefab>>,
|
program: NonSendSync<UniqueView<ProgressbarShaderPrefab>>,
|
||||||
view: UniqueView<GuiView>,
|
view: UniqueView<GuiView>,
|
||||||
components: View<GuiComponent>,
|
components: View<GuiComponent>,
|
||||||
transforms: View<Transform2d>,
|
transforms: View<Transform2d, { track::All }>,
|
||||||
progressbars: View<ProgressbarComponent>,
|
progressbars: View<ProgressbarComponent>,
|
||||||
primary: View<PrimaryColor>,
|
primary: View<PrimaryColor>,
|
||||||
secondary: View<SecondaryColor>,
|
secondary: View<SecondaryColor>,
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
use shipyard::{UniqueView, UniqueViewMut, Workload, IntoWorkload, EntityId, Unique, AllStoragesViewMut, ViewMut, Get, SystemModificator};
|
use shipyard::{UniqueView, UniqueViewMut, Workload, IntoWorkload, EntityId, Unique, AllStoragesViewMut, ViewMut, Get, SystemModificator, track};
|
||||||
use glam::{Mat3, vec2};
|
use glam::{Mat3, vec2};
|
||||||
use crate::{
|
use crate::{
|
||||||
world::ChunkStorage,
|
world::ChunkStorage,
|
||||||
|
@ -34,7 +34,7 @@ fn spawn_loading_screen(
|
||||||
fn resize_progress_bar(
|
fn resize_progress_bar(
|
||||||
size: UniqueView<WindowSize>,
|
size: UniqueView<WindowSize>,
|
||||||
bar: UniqueView<ProgressbarId>,
|
bar: UniqueView<ProgressbarId>,
|
||||||
mut transforms: ViewMut<Transform2d>
|
mut transforms: ViewMut<Transform2d, { track::All }>
|
||||||
) {
|
) {
|
||||||
let mut trans = (&mut transforms).get(bar.0).unwrap();
|
let mut trans = (&mut transforms).get(bar.0).unwrap();
|
||||||
trans.0.x_axis.x = size.0.x as f32;
|
trans.0.x_axis.x = size.0.x as f32;
|
||||||
|
@ -45,7 +45,7 @@ fn update_progress_bar_progress (
|
||||||
mut bar: ViewMut<ProgressbarComponent>,
|
mut bar: ViewMut<ProgressbarComponent>,
|
||||||
eid: UniqueView<ProgressbarId>,
|
eid: UniqueView<ProgressbarId>,
|
||||||
) {
|
) {
|
||||||
let bar = (&mut bar).get(eid.0).unwrap();
|
let mut bar = (&mut bar).get(eid.0).unwrap();
|
||||||
let loaded = world.chunks.iter().fold(0, |acc, (&_, chunk)| {
|
let loaded = world.chunks.iter().fold(0, |acc, (&_, chunk)| {
|
||||||
acc + chunk.desired_state.matches_current(chunk.current_state) as usize
|
acc + chunk.desired_state.matches_current(chunk.current_state) as usize
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
use glam::{Vec3, Mat4, Quat, ivec3};
|
use glam::{Vec3, Mat4, Quat, ivec3};
|
||||||
use shipyard::{NonSendSync, UniqueView, UniqueViewMut, View, IntoIter};
|
use shipyard::{NonSendSync, UniqueView, UniqueViewMut, View, IntoIter, track};
|
||||||
use glium::{
|
use glium::{
|
||||||
implement_vertex, uniform,
|
implement_vertex, uniform,
|
||||||
Surface, DrawParameters,
|
Surface, DrawParameters,
|
||||||
|
@ -114,7 +114,7 @@ pub fn draw_world(
|
||||||
pub fn draw_current_chunk_border(
|
pub fn draw_current_chunk_border(
|
||||||
mut target: NonSendSync<UniqueViewMut<RenderTarget>>,
|
mut target: NonSendSync<UniqueViewMut<RenderTarget>>,
|
||||||
player: View<MainPlayer>,
|
player: View<MainPlayer>,
|
||||||
transforms: View<Transform>,
|
transforms: View<Transform, { track::All }>,
|
||||||
buffers: NonSendSync<UniqueView<CubePrimitive>>,
|
buffers: NonSendSync<UniqueView<CubePrimitive>>,
|
||||||
program: NonSendSync<UniqueView<ColoredShaderPrefab>>,
|
program: NonSendSync<UniqueView<ColoredShaderPrefab>>,
|
||||||
camera: View<Camera>,
|
camera: View<Camera>,
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
use glam::{IVec3, ivec3};
|
use glam::{IVec3, ivec3};
|
||||||
use glium::{VertexBuffer, IndexBuffer, index::PrimitiveType};
|
use glium::{VertexBuffer, IndexBuffer, index::PrimitiveType};
|
||||||
use shipyard::{View, UniqueView, UniqueViewMut, IntoIter, Workload, IntoWorkload, NonSendSync};
|
use shipyard::{View, UniqueView, UniqueViewMut, IntoIter, Workload, IntoWorkload, NonSendSync, track};
|
||||||
use crate::{
|
use crate::{
|
||||||
player::MainPlayer,
|
player::MainPlayer,
|
||||||
transform::Transform,
|
transform::Transform,
|
||||||
|
@ -29,7 +29,7 @@ pub fn update_loaded_world_around_player() -> Workload {
|
||||||
pub fn update_chunks_if_player_moved(
|
pub fn update_chunks_if_player_moved(
|
||||||
v_settings: UniqueView<GameSettings>,
|
v_settings: UniqueView<GameSettings>,
|
||||||
v_local_player: View<MainPlayer>,
|
v_local_player: View<MainPlayer>,
|
||||||
v_transform: View<Transform>,
|
v_transform: View<Transform, { track::All }>,
|
||||||
mut vm_world: UniqueViewMut<ChunkStorage>,
|
mut vm_world: UniqueViewMut<ChunkStorage>,
|
||||||
) {
|
) {
|
||||||
//Check if the player actually moved
|
//Check if the player actually moved
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
use glam::{Vec3, IVec3};
|
use glam::{Vec3, IVec3};
|
||||||
use shipyard::{View, Component, ViewMut, IntoIter, UniqueView};
|
use shipyard::{View, Component, ViewMut, IntoIter, UniqueView, track};
|
||||||
use crate::{transform::Transform, world::block::BlockDescriptorSource};
|
use crate::{transform::Transform, world::block::BlockDescriptorSource};
|
||||||
use super::{ChunkStorage, block::Block};
|
use super::{ChunkStorage, block::Block};
|
||||||
|
|
||||||
|
@ -48,7 +48,7 @@ impl ChunkStorage {
|
||||||
pub struct LookingAtBlock(pub Option<RaycastReport>);
|
pub struct LookingAtBlock(pub Option<RaycastReport>);
|
||||||
|
|
||||||
pub fn update_raycasts(
|
pub fn update_raycasts(
|
||||||
transform: View<Transform>,
|
transform: View<Transform, { track::All }>,
|
||||||
mut raycast: ViewMut<LookingAtBlock>,
|
mut raycast: ViewMut<LookingAtBlock>,
|
||||||
world: UniqueView<ChunkStorage>,
|
world: UniqueView<ChunkStorage>,
|
||||||
) {
|
) {
|
||||||
|
@ -56,7 +56,7 @@ pub fn update_raycasts(
|
||||||
if !(world.is_inserted_or_modified() || (transform.inserted_or_modified(), &raycast).iter().next().is_some()) {
|
if !(world.is_inserted_or_modified() || (transform.inserted_or_modified(), &raycast).iter().next().is_some()) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
for (transform, report) in (&transform, &mut raycast).iter() {
|
for (transform, mut report) in (&transform, &mut raycast).iter() {
|
||||||
let (_, rotation, position) = transform.0.to_scale_rotation_translation();
|
let (_, rotation, position) = transform.0.to_scale_rotation_translation();
|
||||||
let direction = (rotation * Vec3::NEG_Z).normalize();
|
let direction = (rotation * Vec3::NEG_Z).normalize();
|
||||||
*report = LookingAtBlock(world.raycast(position, direction, Some(30.)));
|
*report = LookingAtBlock(world.raycast(position, direction, Some(30.)));
|
||||||
|
|
Loading…
Reference in a new issue