gen: gs.gen,
pos, face,
xdata: None,
+ moveable: default(),
};
let PieceSpecLoaded { p, occultable } =
info.load(piece_i as usize, &mut gpc, &gref)?;
pub lastclient: ClientId,
pub gen_before_lastclient: Generation,
pub xdata: PieceXDataState,
+ #[serde(default)] pub moveable: PieceMoveable,
}
pub type PieceXDataState = Option<Box<dyn PieceXData>>;
lastclient: ClientId(default()),
gen_before_lastclient: gen_dummy,
xdata: None,
+ moveable: default(),
}
}
}
-> PreparedPieceState {
let pri = self;
let (pos, zlevel) = pri.pos_zlevel(gpc);
+ let moveable = if gpc.occult.is_active() { PieceMoveable::No }
+ else { gpc.moveable };
let r = PreparedPieceState {
pos : pos,
held : gpc.held,
angle : pri.angle(gpc).to_compass(),
pinned : gpc.pinned,
uos : pri.ui_operations(gs, gpc, ipc)?,
+ moveable,
};
dbgc!(pri, ipc, gpc, r);
r
pub zg: Generation,
pub angle: CompassAngle,
pub pinned: bool,
+ pub moveable: PieceMoveable,
pub uos: Vec<UoDescription>,
}
+#[derive(Debug,Copy,Clone,Serialize,Deserialize,Eq)]
+#[derive(Ord,PartialEq,PartialOrd)]
+pub enum PieceMoveable {
+ No,
+ IfWresting,
+ Yes,
+}
+impl Default for PieceMoveable { fn default() -> Self { PieceMoveable::Yes } }
+
#[derive(Debug,Clone,Serialize)]
pub struct PreparedPieceImage {
pub svg: Html,