Clean up *some* of the camera jank

main
Elijah C. Voigt 1 year ago
parent fe87c4f10a
commit 4b9e45d841

@ -5,7 +5,7 @@ edition = "2021"
build = "build.rs" build = "build.rs"
[dependencies] [dependencies]
bevy_fmod = { version = "0.4", features = ["live-update"] } bevy_fmod = { version = "0.4" }
bevy = { version = "0.13", features = ["jpeg", "hdr", "serialize"] } bevy = { version = "0.13", features = ["jpeg", "hdr", "serialize"] }
serde = "1" serde = "1"
toml = { version = "0.8", features = ["parse"] } toml = { version = "0.8", features = ["parse"] }
@ -17,7 +17,7 @@ gltf = "*"
[features] [features]
trace = ["bevy/trace_tracy", "bevy/trace_tracy_memory"] trace = ["bevy/trace_tracy", "bevy/trace_tracy_memory"]
debug = ["bevy/dynamic_linking", "bevy/file_watcher"] debug = ["bevy/dynamic_linking", "bevy/file_watcher", "bevy_fmod/live-update"]
[profile.dev] [profile.dev]
debug = 1 debug = 1

@ -236,17 +236,13 @@ intro_a = "GameCamIntro1"
# The intro we use # The intro we use
intro_b = "GameCamIntro2" intro_b = "GameCamIntro2"
# Blue -> Red # Blue -> Red
turn_b = "GameCamSide2.1>1" turn_b = "GameCamSide2.1>1.1"
# Red -> Blue # Red -> Blue
turn_a = "GameCamSide1.1>2" turn_a = "GameCamSide1.1>2.1"
# Red -> Better view # Red -> Better view
turn_up_b = "GameCamSide1>1.1" turn_up_b = "GameCamSide1>1.1"
# Blue -> Better view # Blue -> Better view
turn_up_a = "GameCamSide2>2.1" turn_up_a = "GameCamSide2>2.1"
# Red -> Base view
turn_down_b = "GameCamSide1.1>1"
# Blue -> Base view
turn_down_a = "GameCamSide2.1>2"
[display3d.models.animations.pick_up] [display3d.models.animations.pick_up]
PawnBlue = "PawnBluePiecePickup" PawnBlue = "PawnBluePiecePickup"

BIN
assets/models/Martian Chess.glb (Stored with Git LFS)

Binary file not shown.

@ -128,7 +128,7 @@ fn audio_trigger(
} }
// we are playing a sound // we are playing a sound
_ => { _ => {
info!("Playing audio {}", event_str); debug!("Playing audio {}", event_str);
let audio_source = AudioSource::new(event_description); let audio_source = AudioSource::new(event_description);
audio_source.set_volume(vol.0); audio_source.set_volume(vol.0);
// TODO: Can we batch spawn all sounds at startup? Then Start/Stop/Reset at runtime? // TODO: Can we batch spawn all sounds at startup? Then Start/Stop/Reset at runtime?

@ -90,17 +90,10 @@ impl Plugin for Display3dPlugin {
.run_if(any_component_added::<Selected>() .run_if(any_component_added::<Selected>()
.or_else(any_component_removed::<Selected>()) .or_else(any_component_removed::<Selected>())
), ),
// vantage point camera when playing against AI // Camera moving up when first piece is selected in the game
vantage_point vantage_point
.run_if(in_state(GameState::Play)) .run_if(in_state(GameState::Play))
.run_if(in_state(PlayState::AiBogo).and_then(in_state(TurnState(Side::B)))) .run_if(any_component_added::<Selected>()),
.run_if(any_component_added::<Selected>().or_else(state_changed::<TurnState>)),
// vantage point camera when playing against human
vantage_point
.run_if(in_state(GameState::Play))
.run_if(in_state(PlayState::Human))
.run_if(not(state_changed::<TurnState>))
.run_if(any_component_added::<Selected>().or_else(any_component_removed::<Selected>())),
update_pieces update_pieces
.run_if(resource_exists::<tweak::GameTweaks>) .run_if(resource_exists::<tweak::GameTweaks>)
.run_if(in_state(GameState::Play)) .run_if(in_state(GameState::Play))
@ -1034,9 +1027,7 @@ fn switch_sides(
} }
fn vantage_point( fn vantage_point(
selected: Query<Entity, With<Selected>>,
mut players: Query<&mut AnimationPlayer, (With<Camera>, With<Display3d>)>, mut players: Query<&mut AnimationPlayer, (With<Camera>, With<Display3d>)>,
events: EventReader<StateTransitionEvent<TurnState>>,
gltfs: Res<Assets<Gltf>>, gltfs: Res<Assets<Gltf>>,
state: Res<State<game::TurnState>>, state: Res<State<game::TurnState>>,
tweaks: Res<Assets<Tweaks>>, tweaks: Res<Assets<Tweaks>>,
@ -1054,14 +1045,7 @@ fn vantage_point(
info!("Getting a better view"); info!("Getting a better view");
// play down events on state transitions // play down events on state transitions
let animation_key = if events.len() > 0 && *up { let animation_key = if !*up {
*up = false;
match state.get() {
game::TurnState(game::Side::A) => "display3d_models_animations_turn_down_a",
game::TurnState(game::Side::B) => "display3d_models_animations_turn_down_b",
}
// Play up events when selected > 0
} else if selected.iter().count() == 1 && !*up {
*up = true; *up = true;
match state.get() { match state.get() {
game::TurnState(game::Side::A) => "display3d_models_animations_turn_up_a", game::TurnState(game::Side::A) => "display3d_models_animations_turn_up_a",

@ -612,7 +612,7 @@ impl Board {
Some(MoveType::Capture) Some(MoveType::Capture)
} }
None => { None => {
info!("Last move: {:?}", self.moves.last()); debug!("Last move: {:?}", self.moves.last());
// move is valid if it does not un-do the previous move for this piece // move is valid if it does not un-do the previous move for this piece
match self.moves.last() { match self.moves.last() {
Some(previous) => { Some(previous) => {

@ -116,7 +116,7 @@ where
), ),
>, >,
curr_state: Res<State<Marker>>| { curr_state: Res<State<Marker>>| {
info!("Activating state {:?}", *curr_state); debug!("Activating state {:?}", *curr_state);
entities.iter_mut().for_each(|(mark, mut visibility)| { entities.iter_mut().for_each(|(mark, mut visibility)| {
*visibility = if mark == curr_state.get() { *visibility = if mark == curr_state.get() {
Visibility::Inherited Visibility::Inherited

@ -381,7 +381,7 @@ fn handle_button_press<S: States + Clone + Component>(
(*interaction == Interaction::Pressed).then_some(button_action) (*interaction == Interaction::Pressed).then_some(button_action)
}) })
.for_each(|ButtonAction(ba)| { .for_each(|ButtonAction(ba)| {
info!("Button press: {:?} => {:?}", next_state, ba); debug!("Button press: {:?} => {:?}", next_state, ba);
next_state.set(ba.clone()) next_state.set(ba.clone())
}); });
} }

Loading…
Cancel
Save