[Prepare for next release] Reimplement core shape code
darkevilmac opened this issue ยท 0 comments
Currently shapes are not implemented or working in any form, this ticket is meant to track the implementation of common shapes with simple rotation logic. More advanced shapes like windows need their own tickets.
- Reimplement EnumShape.
- No more special cases for placement offsets, these should be part of the spec assuming they're needed.
- Instead of having a monolithic class for all "ShapeBehaviour" we should separate this logic to avoid duplication.
- ShapeOrientation
- ShapePlacementLogic
- ShapeOrientationResolver
- The type of shape should be part of the block, not a state property.
- Properties themselves should be per-shape, derived from placement logic. No more one-size-fits-all approach.
- ShapeFacingProperty
- ShapeSpinProperty
- ShapeAxisProperty
- Properties themselves should be per-shape, derived from placement logic. No more one-size-fits-all approach.
- Display logic (Render/Bounding)
- OBJSON is on client and server, we can extract this data on both sides - being mindful not to import any client only classes on the server.
Please note that all release preparation tickets are locked to contributors, these aren't for feature suggestions they are simply for tracking progress