gate open animation using new movables

This commit is contained in:
2025-03-09 21:06:51 +01:00
parent 7bc6995e18
commit 2a611c9eaa
6 changed files with 194 additions and 77 deletions

View File

@@ -1,9 +1,5 @@
use std::collections::HashMap;
use avian3d::math::PI;
use bevy::prelude::*;
use crate::tb_entities::NamedEntity;
use crate::movables::TriggerMovableEvent;
use bevy::{prelude::*, utils::hashbrown::HashSet};
#[derive(Resource)]
enum GatesState {
@@ -20,7 +16,6 @@ fn update(
mut commands: Commands,
keyboard: Res<ButtonInput<KeyCode>>,
mut state: ResMut<GatesState>,
mut names_entities: Query<(&NamedEntity, &mut Transform)>,
asset_server: Res<AssetServer>,
) {
if keyboard.just_pressed(KeyCode::Digit1) {
@@ -38,18 +33,12 @@ fn update(
PlaybackSettings::DESPAWN,
));
let fences: HashMap<_, _> = vec![
("fence_01", Quat::from_rotation_y(PI / -2.)),
("fence_02", Quat::from_rotation_y(PI / 2.)),
]
.into_iter()
.collect();
let entities: HashSet<_> = vec!["fence_01", "fence_02"]
.into_iter()
.map(|s| String::from(s))
.collect();
for (named_entity, mut transform) in names_entities.iter_mut() {
if let Some(fence) = fences.get(named_entity.name.as_str()) {
transform.rotate(*fence);
}
}
commands.trigger(TriggerMovableEvent(entities));
}
}
}