}
trait Lens {
- fn log_pri(&self, piece: PieceId, pc: &PieceRecord)
+ fn log_pri(&self, piece: PieceId, pc: &PieceState)
-> PieceRenderInstructions;
- fn svg_pri(&self, piece: PieceId, pc: &PieceRecord, player: PlayerId)
+ fn svg_pri(&self, piece: PieceId, pc: &PieceState, player: PlayerId)
-> PieceRenderInstructions;
fn massage_prep_piecestate(&self, ns : &mut PreparedPieceState);
fn decode_visible_pieceid(&self, vpiece: VisiblePieceId, player: PlayerId)
}
struct TransparentLens { }
impl Lens for TransparentLens {
- fn log_pri(&self, piece: PieceId, pc: &PieceRecord)
+ fn log_pri(&self, piece: PieceId, pc: &PieceState)
-> PieceRenderInstructions {
let kd : slotmap::KeyData = piece.into();
let id = VisiblePieceId(kd);
PieceRenderInstructions { id, face : pc.face }
}
- fn svg_pri(&self, piece: PieceId, pc: &PieceRecord, _player: PlayerId)
+ fn svg_pri(&self, piece: PieceId, pc: &PieceState, _player: PlayerId)
-> PieceRenderInstructions {
self.log_pri(piece, pc)
}
#[derive(Debug)]
pub struct GameState {
- pub pieces : DenseSlotMap<PieceId,PieceRecord>,
- pub players : DenseSlotMap<PlayerId,Player>,
+ pub pieces : DenseSlotMap<PieceId,PieceState>,
+ pub players : DenseSlotMap<PlayerId,PlayerState>,
pub gen : Generation,
pub log : Vec<(Generation, Arc<LogEntry>)>,
}
#[derive(Debug)]
-pub struct PieceRecord {
+pub struct PieceState {
pub pos : Pos,
pub p : Box<dyn Piece>,
pub face : FaceId,
}
#[derive(Debug)]
-pub struct Player {
+pub struct PlayerState {
pub nick : String,
}
// ---------- game state ----------
-impl PieceRecord {
+impl PieceState {
pub fn make_defs(&self, pri : &PieceRenderInstructions) -> String {
let pr = self;
let mut defs = String::new();
let mut pieces = DenseSlotMap::with_key();
let mut gen = Generation(0);
for (pos, p) in xxx_make_pieces() {
- let pr = PieceRecord {
+ let pr = PieceState {
pos, p,
face : 0.into(),
held : None,