From: Ian Jackson Date: Sat, 13 Feb 2021 01:06:09 +0000 (+0000) Subject: simple pieces: support edges, fixes X-Git-Tag: otter-0.4.0~529 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=7a5bac66920c4737462c464a92eda14161316b85;p=otter.git simple pieces: support edges, fixes Signed-off-by: Ian Jackson --- diff --git a/specs/demo.game.toml b/specs/demo.game.toml index cb5c3a36..c3c1d3fd 100644 --- a/specs/demo.game.toml +++ b/specs/demo.game.toml @@ -30,3 +30,11 @@ type = "Lib" angle.Compass = 1 lib = "wikimedia" item = "chess-b-N" + +[[pieces]] +pos = [120, 30] +type = "Square" +size = [10] +angle.Compass = 1 +faces = [ ] +edges = ["yellow", "orange"] diff --git a/src/pieces.rs b/src/pieces.rs index 9d7e531d..51695760 100644 --- a/src/pieces.rs +++ b/src/pieces.rs @@ -122,23 +122,24 @@ impl Outline for SimpleShape { impl Piece for SimpleShape { #[throws(IE)] fn svg_piece(&self, f: &mut Html, pri: &PieceRenderInstructions) { - let ef = |cmap: &ColourMap, attrname: &str| { + let ef = |cmap: &ColourMap, attrname: &str, otherwise: &str| { if let Some(colour) = cmap.get(pri.face) { format!(r##"{}="{}""##, attrname, colour.0) } else { - "".to_owned() + otherwise.to_owned() } }; write!(&mut f.0, r##""##, - ef(&self.colours, "fill"), - ef(&self.edges, r##"stroke-width="0.2" stroke"##), + ef(&self.colours, "fill", r##"fill="none""##), + ef(&self.edges, r##"stroke-width="0.2" stroke"##, ""), &self.path.0)?; } fn describe_html(&self, face: Option) -> Html { - Html(if let Some(face) = face { - format!("a {} {}", self.colours[face].0, self.desc.0) - } else { - format!("a {}", self.desc.0) + Html(if_chain! { + if let Some(face) = face; + if let Some(colour) = self.colours.get(face); + then { format!("a {} {}", colour.0, self.desc.0) } + else { format!("a {}", self.desc.0) } }) } fn nfaces(&self) -> RawFaceId { self.count_faces().try_into().unwrap() }