From f5b36bb07dfc827a4435fd116c1438f7776c1fa0 Mon Sep 17 00:00:00 2001 From: ghostly_zsh Date: Fri, 28 Nov 2025 13:40:07 -0600 Subject: [PATCH] fix: orbit predictor is scaled and positioned constantly on hte screen --- crates/unified/src/client/starguide/init.rs | 8 ++++---- crates/unified/src/client/starguide/input.rs | 6 ++++-- crates/unified/src/client/starguide/orbit.rs | 3 ++- crates/unified/src/client/zoom.rs | 1 + 4 files changed, 11 insertions(+), 7 deletions(-) diff --git a/crates/unified/src/client/starguide/init.rs b/crates/unified/src/client/starguide/init.rs index d263bff20cf2cda7ea441e50c2ef5a9a4761e670..48026fef48bcecd7d60ccaba42cb6b06edd90df5 100644 --- a/crates/unified/src/client/starguide/init.rs +++ b/crates/unified/src/client/starguide/init.rs @@ -47,12 +47,13 @@ pub fn init_starguide( height: window.height() as u32, depth_or_array_layers: 1, }, TextureDimension::D2, - &(Color::WHITE.to_srgba().to_u8_array()), + &(Color::BLACK.to_srgba().to_u8_array()), TextureFormat::Rgba8UnormSrgb, RenderAssetUsages::MAIN_WORLD | RenderAssetUsages::RENDER_WORLD, ); let handle = images.add(image); - commands.spawn((Sprite::from_image(handle.clone()), STARGUIDE_LAYER, StarguideOrbit)); + commands.spawn((Sprite::from_image(handle.clone()), STARGUIDE_LAYER, StarguideOrbit)) + .insert(Transform::from_xyz(0.0, 0.0, -10.0)); commands.insert_resource(StarguideOrbitImage(handle)); } @@ -72,10 +73,9 @@ pub fn player_init( fn player_position_update( me: Single<&Transform, (Changed, With)>, - mut orbit: Single<&mut Transform, (With, Without)>, + //mut orbit: Single<&mut Transform, (With, Without)>, mut starguide_me: Single<&mut Transform, (With, Without, Without)>, ) { - orbit.translation = me.translation; starguide_me.translation = me.translation; starguide_me.rotation = me.rotation; } diff --git a/crates/unified/src/client/starguide/input.rs b/crates/unified/src/client/starguide/input.rs index 60238c2928cea6dc3c4ec6e46760ba58b83605b6..e0cf2bbc589e5fba3bbc599666da1101ce385cec 100644 --- a/crates/unified/src/client/starguide/input.rs +++ b/crates/unified/src/client/starguide/input.rs @@ -1,6 +1,6 @@ use crate::prelude::*; use crate::client::input::CursorWorldCoordinates; -use crate::ecs::StarguideCamera; +use crate::ecs::{StarguideCamera, StarguideOrbit}; pub fn starguide_input_plugin(app: &mut App) { app @@ -34,11 +34,13 @@ fn on_click( fn starguide_drag( drag: ResMut, - mut camera: Single<&mut Transform, (With)>, + mut camera: Single<&mut Transform, With>, + mut orbit: Single<&mut Transform, (With, Without)>, cursor: Res, ) { if !drag.is_dragging { return } let Some(cursor) = cursor.0 else { return }; camera.translation = drag.init_camera_pos.extend(0.0) - (cursor - drag.init_cursor_pos).extend(0.0); + orbit.translation = drag.init_camera_pos.extend(0.0) - (cursor - drag.init_cursor_pos).extend(0.0); } diff --git a/crates/unified/src/client/starguide/orbit.rs b/crates/unified/src/client/starguide/orbit.rs index 79346a1aa237128cf023b45dde7e2e0500203ad4..fbcb38c931ba77ca447f3d359c9440b0d508b49d 100644 --- a/crates/unified/src/client/starguide/orbit.rs +++ b/crates/unified/src/client/starguide/orbit.rs @@ -11,12 +11,13 @@ pub fn starguide_orbit_plugin(app: &mut App) { fn update_orbits( orbit_image: Res, mut images: ResMut>, + camera: Single<&Camera, With>, ) { let Some(image) = images.get_mut(&orbit_image.0) else { error!("Orbit prediction image not found"); return }; - image.clear(&(Color::WHITE.to_srgba().to_u8_array())); + image.clear(&(Color::BLACK.to_srgba().to_u8_array())); for i in 0..100 { image.set_color_at(i, 100, Color::linear_rgb(1.0, 0.0, 0.0)).unwrap(); diff --git a/crates/unified/src/client/zoom.rs b/crates/unified/src/client/zoom.rs index 432563c33ff60e5f146cb59d3e73be4eac9e51f1..17f2d187f046e677159e16565792e1da46c7b0d2 100644 --- a/crates/unified/src/client/zoom.rs +++ b/crates/unified/src/client/zoom.rs @@ -125,6 +125,7 @@ fn on_scroll( orbit_camera.is_active = true; starguide_camera.2.translation = player.translation; + starguide_orbit.translation = player.translation; gameplay_next_state.set(GameplayState::Starguide); starfield_back.image_mode = SpriteImageMode::Auto;