gate open animation using new movables
This commit is contained in:
25
src/gates.rs
25
src/gates.rs
@@ -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));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user