M crates/unified/src/client/starfield.rs => crates/unified/src/client/starfield.rs +5 -11
@@ 1,20 1,11 @@
use bevy::{
- app::{App, Startup, Update},
- asset::{AssetEvent, AssetServer, Assets},
- ecs::{
+ app::{App, Startup, Update}, asset::{AssetEvent, AssetServer, Assets}, ecs::{
//entity::Entity,
//entity_disabling::Disabled,
event::EventReader,
query::{With, Without},
system::{Commands, Query, Res, Single},
- },
- image::Image,
- log::warn,
- math::{Vec2, Vec3},
- //render::view::visibility::Visibility,
- sprite::{Sprite, SpriteImageMode},
- transform::components::Transform,
- window::{Window, WindowResized},
+ }, image::Image, log::warn, math::{Vec2, Vec3}, render::view::Visibility, sprite::{Sprite, SpriteImageMode}, transform::components::Transform, window::{Window, WindowResized}
};
use crate::{
@@ 54,6 45,7 @@ pub fn set_up_starfield(
..Default::default()
})
.insert(Transform::from_xyz(0.0, 0.0, 5.0))
+ .insert(Visibility::Inherited)
.insert(StarfieldBack);
commands
.spawn(Sprite {
@@ 67,6 59,7 @@ pub fn set_up_starfield(
..Default::default()
})
.insert(Transform::from_xyz(0.0, 0.0, 4.5))
+ .insert(Visibility::Inherited)
.insert(StarfieldMid);
commands
.spawn(Sprite {
@@ 82,6 75,7 @@ pub fn set_up_starfield(
..Default::default()
})
.insert(Transform::from_xyz(0.0, 0.0, 4.0))
+ .insert(Visibility::Inherited)
.insert(StarfieldFront);
}
M crates/unified/src/client/zoom.rs => crates/unified/src/client/zoom.rs +15 -6
@@ 19,7 19,7 @@ fn on_scroll(
mut scroll_events: EventReader<MouseWheel>,
window: Single<&Window>,
starfield_back: Single<
- (&mut Sprite, &mut Transform),
+ (&mut Sprite, &mut Transform, &mut Visibility),
(
With<StarfieldBack>,
Without<StarfieldMid>,
@@ 27,7 27,7 @@ fn on_scroll(
),
>,
starfield_mid: Single<
- (&mut Sprite, &mut Transform),
+ (&mut Sprite, &mut Transform, &mut Visibility),
(
With<StarfieldMid>,
Without<StarfieldBack>,
@@ 35,7 35,7 @@ fn on_scroll(
),
>,
starfield_front: Single<
- (&mut Sprite, &mut Transform),
+ (&mut Sprite, &mut Transform, &mut Visibility),
(
With<StarfieldFront>,
Without<StarfieldBack>,
@@ 63,9 63,9 @@ fn on_scroll(
),
>,
) {
- let (mut starfield_back, mut starfield_back_pos) = starfield_back.into_inner();
- let (mut starfield_mid, mut starfield_mid_pos) = starfield_mid.into_inner();
- let (mut starfield_front, mut starfield_front_pos) = starfield_front.into_inner();
+ let (mut starfield_back, mut starfield_back_pos, mut visibility_back) = starfield_back.into_inner();
+ let (mut starfield_mid, mut starfield_mid_pos, mut visibility_mid) = starfield_mid.into_inner();
+ let (mut starfield_front, mut starfield_front_pos, mut visibility_front) = starfield_front.into_inner();
for event in scroll_events.read() {
match event.unit {
MouseScrollUnit::Line | MouseScrollUnit::Pixel => {
@@ 74,6 74,15 @@ fn on_scroll(
} else {
camera.scale *= 1.03;
}
+ if camera.scale.z > 50.0 {
+ *visibility_back = Visibility::Hidden;
+ *visibility_mid = Visibility::Hidden;
+ *visibility_front = Visibility::Hidden;
+ } else {
+ *visibility_back = Visibility::Inherited;
+ *visibility_mid = Visibility::Inherited;
+ *visibility_front = Visibility::Inherited;
+ }
starfield_back.custom_size =
Some(window.size() * camera.scale.z + Vec2::splat(BACK_STARFIELD_SIZE * 2.0));
starfield_mid.custom_size =