clean up RelativeDirection and rename its methods to be more consistent with vanilla#3198
Merged
clean up RelativeDirection and rename its methods to be more consistent with vanilla#3198
Conversation
… to RelativeDirection & extracting parts where possible
…ms and pass the multi controller to the partSorter() method in builders so the AL can still sort its hatches properly.
YoungOnionMC
approved these changes
Jun 22, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
RelativeDirectionand the code using it directlyMetaMachineConfigCopyBehaviournot repeat itself constantlyRelativeDirectionImplementation Details
IMultiController#getPartSorterso it can be overridden if necessaryMultiblockMachineDefinition#partSorterto be afn(contoller) -> comparator<part>so it can use the controller's state as extra informationGTMemoizerusingConcurrentWeakIdentityHashMap.RelativeDirection#getActualFacingtogetActualDirection(the old method still exists, but is deprecated for removal)RelativeDirection#getRelativeFacingtogetRelative(the old method still exists, but is deprecated for removal)RelativeDirection#getSorter's type toComparator<BlockPos>RelativeDirectionfor finding the relative direction between two directionsOutcome
cleaner code in RelativeDirection & co.
Additional Information
Do tell me if I should make
MetaMachineConfigCopyBehaviourNOT print out the actual relative facing if you find that confusing, as currently it will rotate the direction correctly in all axes, which could result in "above" not actually being up if the machine is facing up or down.Potential Compatibility Issues
addons using
RelativeDirection#getSorterwill break, but everything else should work like before.