mindustry logic execution, map- and schematic- parsing and rendering
Diffstat (limited to 'src/block/power.rs')
-rw-r--r--src/block/power.rs19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/block/power.rs b/src/block/power.rs
index 55a51da..8a7576b 100644
--- a/src/block/power.rs
+++ b/src/block/power.rs
@@ -111,6 +111,25 @@ impl BlockLogic for ConnectorBlock
Box::new(Self::get_state(state).clone())
}
+ fn mirror_state(&self, state: &mut dyn Any, horizontally: bool, vertically: bool)
+ {
+ for (dx, dy) in Self::get_state_mut(state).iter_mut()
+ {
+ if horizontally {*dx = -*dx;}
+ if vertically {*dy = -*dy;}
+ }
+ }
+
+ fn rotate_state(&self, state: &mut dyn Any, clockwise: bool)
+ {
+ for (dx, dy) in Self::get_state_mut(state).iter_mut()
+ {
+ let (cdx, cdy) = (*dx, *dy);
+ *dx = if clockwise {cdy} else {-cdy};
+ *dy = if clockwise {-cdx} else {cdx};
+ }
+ }
+
fn serialize_state(&self, state: &dyn Any) -> Result<DynData, SerializeError>
{
Ok(DynData::Point2Array(Self::get_state(state).clone()))