Various internal machine api improvements
-
Improves model API to allow so it is more extensible
-
Use
ResourceLocationfor machine casing ids. If no namespace is provided, it defaults to MI's namespace -
Widen visibility and overridability of some methods and variables in
ShapeMatcher,CasingComponent, andMultiblockMachineBlockEntity -
Make the
CableTierofEnergyHatchandCasingComponentaccessible -
Improves shape matcher API to allow for machines to define their own custom shape matcher and also standardizes the various methods triggered relating to multiblock shape matching (lots of duplicate code is removed)
-
Improve the internal storing of components such that they can be accessed and modified in the same way for both and includes some extra utility methods (I think I covered all reasonable use cases)
-
Allow for vertical orientations in
OrientationComponent -
Allow
BackgroundRenderedSlotto override the atlas used to render them
~~It might make sense to also add the CableTierHolder interface to electric machines and get the tier from their casing component. That can easily be done. Doing it for multi blocks is a little ambiguous since a multi block electric machine can have multiple types of hatches on it. It could just use the highest tier, though. Would either of these changes be acceptable?~~ (moved to #939)