extract GameState
This commit is contained in:
parent
78c199b61e
commit
6cd10329df
14 changed files with 118 additions and 28 deletions
|
|
@ -7,5 +7,7 @@ edition = "2024"
|
|||
|
||||
[dependencies]
|
||||
bevy.workspace = true
|
||||
bevy.features = ["bevy_state"]
|
||||
derive_aliases = "0.4.7"
|
||||
spacetimedb.workspace = true
|
||||
strum.workspace = true
|
||||
|
|
|
|||
2
jong-types/rustfmt.toml
Normal file
2
jong-types/rustfmt.toml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
unstable_features = true
|
||||
merge_derives = false
|
||||
|
|
@ -1,13 +1,37 @@
|
|||
mod derive_alias {
|
||||
derive_aliases::define! {
|
||||
Copy = ::core::clone::Clone, ::core::marker::Copy;
|
||||
Eq = ::core::cmp::PartialEq, ::core::cmp::Eq;
|
||||
Ord = ..Eq, ::core::cmp::PartialOrd, ::core::cmp::PartialEq, ::core::cmp::Ord;
|
||||
|
||||
Base = ::core::fmt::Debug, ..Copy, ..Ord;
|
||||
}
|
||||
}
|
||||
use derive_aliases::derive;
|
||||
|
||||
use bevy::prelude::*;
|
||||
use spacetimedb::SpacetimeType;
|
||||
use strum::FromRepr;
|
||||
|
||||
#[derive(Component, Debug, Clone, Copy, SpacetimeType)]
|
||||
#[derive(..Base, Hash, Default)]
|
||||
#[derive(States, SpacetimeType)]
|
||||
pub enum GameState {
|
||||
#[default]
|
||||
None,
|
||||
Setup,
|
||||
Deal,
|
||||
Play,
|
||||
Exit,
|
||||
}
|
||||
|
||||
#[derive(..Base)]
|
||||
#[derive(Component, SpacetimeType)]
|
||||
pub struct Tile {
|
||||
pub suit: Suit,
|
||||
}
|
||||
|
||||
#[derive(/* MapEntities, */ Debug, PartialEq, PartialOrd, Eq, Ord, Clone, Copy, SpacetimeType)]
|
||||
#[derive(..Base)]
|
||||
#[derive(SpacetimeType)]
|
||||
pub enum Suit {
|
||||
Man(Rank),
|
||||
Pin(Rank),
|
||||
|
|
@ -28,12 +52,21 @@ impl Suit {
|
|||
}
|
||||
}
|
||||
|
||||
#[derive(Deref, DerefMut, Debug, PartialEq, PartialOrd, Eq, Ord, Clone, Copy, SpacetimeType)]
|
||||
#[derive(
|
||||
..Base,
|
||||
Deref,
|
||||
DerefMut,
|
||||
)]
|
||||
#[derive(SpacetimeType)]
|
||||
pub struct Rank {
|
||||
pub number: u8,
|
||||
}
|
||||
|
||||
#[derive(FromRepr, Debug, PartialEq, PartialOrd, Eq, Ord, Clone, Copy, SpacetimeType)]
|
||||
#[derive(
|
||||
..Base,
|
||||
FromRepr,
|
||||
)]
|
||||
#[derive(SpacetimeType)]
|
||||
pub enum Wind {
|
||||
Ton,
|
||||
Nan,
|
||||
|
|
@ -41,7 +74,11 @@ pub enum Wind {
|
|||
Pei,
|
||||
}
|
||||
|
||||
#[derive(Debug, FromRepr, PartialEq, PartialOrd, Eq, Ord, Clone, Copy, SpacetimeType)]
|
||||
#[derive(
|
||||
..Base,
|
||||
FromRepr,
|
||||
)]
|
||||
#[derive(SpacetimeType)]
|
||||
pub enum Dragon {
|
||||
Haku,
|
||||
Hatsu,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue