Merge PlayState with Side

main
Elijah C. Voigt 2 years ago
parent 962bc335c2
commit f9197ab157

@ -279,13 +279,13 @@ fn hydrate_camera(
debug!("Animations: {:?}", gltf.named_animations.keys());
// GameCamIntro1, GameCamIntro2, GameCamSide1>2, GameCamSide2>1
let animation = match state.get() {
game::TurnState::SideA => gltf.named_animations.get(
game::TurnState(game::Side::A) => gltf.named_animations.get(
tweak
.get::<String>("display3d_models_animations_intro_a")
.unwrap()
.as_str(),
),
game::TurnState::SideB => gltf.named_animations.get(
game::TurnState(game::Side::B) => gltf.named_animations.get(
tweak
.get::<String>("display3d_models_animations_intro_b")
.unwrap()
@ -775,7 +775,7 @@ fn select(
// Check the side of the selection if no piece is selected
// Otherwise this is fine, select away
let side_check =
!selected.is_empty() || *state.get() == side;
!selected.is_empty() || state.get().0 == side;
let hit_check = {
// This entity was hit (tile hitboxes)
@ -1018,13 +1018,13 @@ fn switch_sides(
let gltf = gltfs.get(assets_handle).expect("Load GLTF content");
players.iter_mut().for_each(|mut player| {
let animation = match state.get() {
game::TurnState::SideA => gltf.named_animations.get(
game::TurnState(game::Side::A) => gltf.named_animations.get(
tweak
.get::<String>("display3d_models_animations_turn_a")
.unwrap()
.as_str(),
),
game::TurnState::SideB => gltf.named_animations.get(
game::TurnState(game::Side::B) => gltf.named_animations.get(
tweak
.get::<String>("display3d_models_animations_turn_b")
.unwrap()

@ -48,31 +48,14 @@ impl Plugin for GamePlugin {
}
#[derive(Clone, Copy, PartialEq, Eq, Hash, Debug, Default, States)]
pub(crate) enum TurnState {
SideA,
// HACK: Opening animation starts on B side
#[default]
SideB,
}
pub(crate) struct TurnState(pub Side);
impl std::ops::Not for TurnState {
type Output = Self;
fn not(self) -> Self::Output {
match self {
TurnState::SideA => TurnState::SideB,
TurnState::SideB => TurnState::SideA,
}
}
}
// Allow comparison between turn state and sides
impl PartialEq<Side> for TurnState {
fn eq(&self, other: &Side) -> bool {
match (self, other) {
(TurnState::SideA, Side::A) | (TurnState::SideB, Side::B) => true,
(TurnState::SideB, Side::A) | (TurnState::SideA, Side::B) => false,
}
let TurnState(side) = self;
TurnState(!side)
}
}
@ -207,9 +190,11 @@ pub(crate) struct BoardIndex {
pub y: usize,
}
#[derive(Debug, Component, PartialEq, Clone, Copy)]
#[derive(Debug, Component, PartialEq, Clone, Copy, Eq, Hash, Default)]
pub(crate) enum Side {
A,
// HACK: Opening animation starts on B side
#[default]
B,
}

@ -79,7 +79,6 @@ pub enum GameState {
#[derive(Clone, Copy, PartialEq, Eq, Hash, Debug, Default, States, Component)]
pub(crate) enum DisplayState {
Display2d,
#[default]
Display3d,
}

Loading…
Cancel
Save