Update to bevy 0.19

main
Elijah Voigt 1 month ago
parent 9069c0b29e
commit 9debf268a6

1844
life/Cargo.lock generated

File diff suppressed because it is too large Load Diff

@ -4,7 +4,7 @@ version = "0.1.0"
edition = "2024"
[dependencies]
bevy = "0.18.1"
bevy = "0.19.0"
[dependencies.engine]
path = "../engine"

@ -19,12 +19,11 @@ fn main() {
file_path: "assets".into(),
..default()
}))
.init_resource::<Coordinates>()
.init_resource::<NextCoordinates>()
.init_resource::<CellAssets>()
.init_resource::<Panning>()
.init_state::<SimulationPlayback>()
.init_state::<AudioPlayback>()
.insert_resource(GlobalVolume::new(Volume::Linear(1.0)))
.add_message::<Lifecycle>()
.add_systems(Startup, setup)
.add_systems(Startup, load_audio_tones)
@ -249,7 +248,10 @@ fn setup(mut commands: Commands) {
}
}
#[derive(Debug, Default, Clone, PartialEq, Hash, Eq, Component, Resource)]
#[derive(Default, Debug, Resource)]
struct NextCoordinates(Coordinates);
#[derive(Debug, Default, Clone, PartialEq, Hash, Eq, Component)]
#[require(Visibility, Transform)]
struct Coordinates {
x: isize,
@ -375,23 +377,23 @@ fn on_add_coordinates(
/// When the cursor moves, update the Coordiantes
fn update_grid_position(
mut coordinates: ResMut<Coordinates>,
mut coordinates: ResMut<NextCoordinates>,
q_window: Single<&Window>,
q_camera: Single<(&Camera, &GlobalTransform)>,
) {
if let Some(cursor_pos) = q_window.cursor_position() {
let (cam, cam_gt) = *q_camera;
if let Ok(pos) = cam.viewport_to_world_2d(cam_gt, cursor_pos) {
coordinates.x = (pos / SCALE).round().x as isize;
coordinates.y = (pos / SCALE).round().y as isize;
coordinates.0.x = (pos / SCALE).round().x as isize;
coordinates.0.y = (pos / SCALE).round().y as isize;
}
}
}
/// Draw a gizmo at the current coordiantes
fn grid_gizmo(mut gizmos: Gizmos, coordinates: Res<Coordinates>) {
fn grid_gizmo(mut gizmos: Gizmos, coordinates: Res<NextCoordinates>) {
let isometry = Isometry2d {
translation: coordinates.as_translation().truncate(),
translation: coordinates.0.as_translation().truncate(),
..default()
};
gizmos.rect_2d(isometry, Vec2::ONE * SCALE, PURPLE)
@ -402,17 +404,17 @@ struct Cell;
// When left mouse clicked, spawn a cell at GridPosition
fn de_spawn_cells(
coordinates: Res<Coordinates>,
coordinates: Res<NextCoordinates>,
cells: Query<(Entity, &Coordinates), With<Cell>>,
mut lifecycle: MessageWriter<Lifecycle>,
) {
if let Some(e) = cells
.iter()
.find_map(|(e, c)| (*coordinates == *c).then_some(e))
.find_map(|(e, c)| (coordinates.0 == *c).then_some(e))
{
lifecycle.write(Lifecycle::Dead(e));
} else {
lifecycle.write(Lifecycle::Alive(coordinates.clone()));
lifecycle.write(Lifecycle::Alive(coordinates.0.clone()));
}
}

Loading…
Cancel
Save