diff --git a/world/src/site2/gen.rs b/world/src/site2/gen.rs index d4a402f2fc..54f7b820da 100644 --- a/world/src/site2/gen.rs +++ b/world/src/site2/gen.rs @@ -994,7 +994,13 @@ impl Painter { /// Fills the supplied primitive with the provided `Fill`. pub fn fill(&self, prim: impl Into>, fill: Fill) { - self.fills.borrow_mut().push((prim.into(), fill)); + let prim = prim.into(); + if let Primitive::Union(a, b) = self.prims.borrow()[prim] { + self.fill(a, fill.clone()); + self.fill(b, fill); + } else { + self.fills.borrow_mut().push((prim, fill)); + } } pub fn render_aabr(&self) -> Aabr { self.render_area }