(stash) state advancer reducer
This commit is contained in:
parent
1d9577ba42
commit
c12667938e
9 changed files with 252 additions and 83 deletions
|
|
@ -1,7 +1,9 @@
|
|||
use log::debug;
|
||||
use spacetimedb::{ReducerContext, Table, reducer};
|
||||
|
||||
use crate::tables::{player::player, *};
|
||||
use jong_types::TurnState;
|
||||
|
||||
use crate::tables::*;
|
||||
|
||||
mod reducers {
|
||||
mod deal;
|
||||
|
|
@ -44,6 +46,7 @@ pub fn login_or_add_player(ctx: &ReducerContext) {
|
|||
hand: vec![],
|
||||
pond: vec![],
|
||||
drawn_tile: None,
|
||||
turn_state: TurnState::None,
|
||||
}) {
|
||||
debug!("added player: {:?}", player);
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
use log::info;
|
||||
use spacetimedb::{ReducerContext, Table, rand::seq::SliceRandom, reducer};
|
||||
|
||||
use crate::tables::{player::player, *};
|
||||
use crate::tables::*;
|
||||
|
||||
#[reducer]
|
||||
pub fn join_or_create_lobby(ctx: &ReducerContext, mut lobby_id: u32) -> Result<(), String> {
|
||||
|
|
@ -19,7 +19,6 @@ pub fn join_or_create_lobby(ctx: &ReducerContext, mut lobby_id: u32) -> Result<(
|
|||
host_player_id: player.id,
|
||||
players: vec![PlayerOrBot::Player { id: player.id }],
|
||||
game_state: jong_types::states::GameState::Lobby,
|
||||
turn_state: jong_types::states::TurnState::None,
|
||||
dealer_idx: 0,
|
||||
current_idx: 0,
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,13 +1,10 @@
|
|||
use spacetimedb::{SpacetimeType, table};
|
||||
|
||||
use jong_types::{
|
||||
tiles::Tile,
|
||||
states::{GameState, TurnState},
|
||||
tiles::Tile,
|
||||
};
|
||||
|
||||
pub mod player;
|
||||
pub use player::*;
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
#[table(name = lobby, public)]
|
||||
pub struct Lobby {
|
||||
|
|
@ -22,7 +19,6 @@ pub struct Lobby {
|
|||
pub current_idx: u8,
|
||||
|
||||
pub game_state: GameState,
|
||||
pub turn_state: TurnState,
|
||||
}
|
||||
|
||||
#[table(name = wall)]
|
||||
|
|
@ -48,3 +44,55 @@ pub enum PlayerOrBot {
|
|||
Player { id: u32 },
|
||||
Bot { id: u32 },
|
||||
}
|
||||
|
||||
#[table(name = advance_state_timer)]
|
||||
pub struct AdvanceStateTimer {
|
||||
#[primary_key]
|
||||
#[auto_inc]
|
||||
scheduled_id: u64,
|
||||
scheduled_at: spacetimedb::ScheduleAt,
|
||||
|
||||
lobby_id: u32,
|
||||
}
|
||||
|
||||
// FIXME this shant be public, use views
|
||||
#[table(name = player, public)]
|
||||
#[derive(Debug)]
|
||||
pub struct Player {
|
||||
#[primary_key]
|
||||
pub identity: spacetimedb::Identity,
|
||||
|
||||
#[unique]
|
||||
#[auto_inc]
|
||||
pub id: u32,
|
||||
|
||||
pub name: Option<String>,
|
||||
|
||||
#[index(btree)]
|
||||
pub lobby_id: u32,
|
||||
pub ready: bool,
|
||||
|
||||
pub turn_state: TurnState,
|
||||
|
||||
pub sort: bool,
|
||||
|
||||
pub hand: Vec<DbTile>,
|
||||
pub pond: Vec<DbTile>,
|
||||
|
||||
pub drawn_tile: Option<DbTile>,
|
||||
}
|
||||
|
||||
#[table(name = bot)]
|
||||
pub struct Bot {
|
||||
#[primary_key]
|
||||
#[auto_inc]
|
||||
pub id: u32,
|
||||
|
||||
#[index(btree)]
|
||||
pub lobby_id: u32,
|
||||
|
||||
pub hand: Vec<DbTile>,
|
||||
pub pond: Vec<DbTile>,
|
||||
|
||||
pub drawn_tile: Option<DbTile>,
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,44 +0,0 @@
|
|||
use spacetimedb::Identity;
|
||||
use spacetimedb::{SpacetimeType, table};
|
||||
|
||||
use super::DbTile;
|
||||
|
||||
// FIXME this shant be public, use views
|
||||
#[table(name = player, public)]
|
||||
#[derive(Debug)]
|
||||
pub struct Player {
|
||||
#[primary_key]
|
||||
pub identity: Identity,
|
||||
|
||||
#[unique]
|
||||
#[auto_inc]
|
||||
pub id: u32,
|
||||
|
||||
pub name: Option<String>,
|
||||
|
||||
#[index(btree)]
|
||||
pub lobby_id: u32,
|
||||
pub ready: bool,
|
||||
|
||||
pub sort: bool,
|
||||
|
||||
pub hand: Vec<DbTile>,
|
||||
pub pond: Vec<DbTile>,
|
||||
|
||||
pub drawn_tile: Option<DbTile>,
|
||||
}
|
||||
|
||||
#[table(name = bot)]
|
||||
pub struct Bot {
|
||||
#[primary_key]
|
||||
#[auto_inc]
|
||||
pub id: u32,
|
||||
|
||||
#[index(btree)]
|
||||
pub lobby_id: u32,
|
||||
|
||||
pub hand: Vec<DbTile>,
|
||||
pub pond: Vec<DbTile>,
|
||||
|
||||
pub drawn_tile: Option<DbTile>,
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue