Migrate to shipyard master

This commit is contained in:
griffi-gh 2023-02-14 19:31:20 +01:00
parent dada84e097
commit 7b6d50abe5
12 changed files with 31 additions and 30 deletions

View file

@ -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"] }

View file

@ -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"

View file

@ -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"

View file

@ -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);
} }
} }

View file

@ -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,

View file

@ -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>,

View file

@ -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>,
) { ) {

View file

@ -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>,

View file

@ -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
}); });

View file

@ -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>,

View file

@ -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

View file

@ -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.)));