mindustry logic execution, map- and schematic- parsing and rendering
Diffstat (limited to 'src/block/power.rs')
| -rw-r--r-- | src/block/power.rs | 19 |
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())) |