(||{
let pc = spec.clone().load().context("load")?;
let mut uos = vec![];
- pc.add_ui_operations(&mut uos).context("add uos")?;
+ let gen_dummy = Generation(1);
+ let gpc_dummy = PieceState {
+ pos: PosC([0,0]),
+ face: default(),
+ held: None,
+ zlevel: ZLevel { z: default(), zg: gen_dummy },
+ pinned: false,
+ occult: default(),
+ angle: default(),
+ gen: gen_dummy,
+ lastclient: ClientId(default()),
+ gen_before_lastclient: gen_dummy,
+ xdata: None,
+ };
+ pc.add_ui_operations(&mut uos, &gpc_dummy).context("add uos")?;
let uos = uos.into_iter().map(|uo| uo.opname).collect::<Vec<_>>();
let spec = spec.clone();
fn nfaces(&self) -> RawFaceId;
#[throws(InternalError)]
- fn add_ui_operations(&self, _upd: &mut Vec<UoDescription>) { }
+ fn add_ui_operations(&self, _upd: &mut Vec<UoDescription>,
+ _gpc: &PieceState) { }
fn ui_operation(&self,
_gs: &mut GameState, _player: PlayerId, _piece: PieceId,
z : self.zlevel.z.clone(),
zg : self.zlevel.zg,
pinned : self.pinned,
- uos : p.ui_operations()?,
+ uos : p.ui_operations(self)?,
}
}
pub trait PieceExt {
fn make_defs(&self, pri: &PieceRenderInstructions) -> Result<Html, IE>;
fn describe_pri(&self, pri: &PieceRenderInstructions) -> Html;
- fn ui_operations(&self) -> Result<Vec<UoDescription>, IE>;
+ fn ui_operations(&self, gpc: &PieceState) -> Result<Vec<UoDescription>, IE>;
}
impl<T> PieceExt for T where T: Piece + ?Sized {
}
#[throws(InternalError)]
- fn ui_operations(&self) -> Vec<UoDescription> {
+ fn ui_operations(&self, gpc: &PieceState) -> Vec<UoDescription> {
type WRC = WhatResponseToClientOp;
let mut out = vec![];
desc: Html::lit("flip"),
})
}
- self.add_ui_operations(&mut out)?;
+ self.add_ui_operations(&mut out, gpc)?;
out
}
}