Additional MovementBehaviour API options #9353
Open
+123
−4
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.
This PR contains small addition to the
Contraption
and associatedMovementBehaviour
API that allows implementations to have simultaneous access to both the BlockEntity and theAbstractContraptionEntity
in specific contexts where such a thing could be useful.Added
ContraptionHandoffContainer
andContraptionHandoffContext
record to store references to the state, position, and BlockEntityAdded
ListeningMovementBehaviour
subinterface that has two extra methods:onAddedToContraption
andonRemovedFromContraption
Added a list to
Contraption
that storesContraptionHandoffContainer
instances and immediately disposes of them once the list is used. This list is always null except for the brief period where the contraption is transitioning between states.Added
ContraptionEvent
and its accompanying concreteAssemble
andDisassemble
events, which are invoked by theContraption
andAbstractContraptionEntity
respectively.This API addition is functionally identical to a mixin I wrote that can be found here
And here's a quick example of what I'm currently using the mixin to do:
sauce2.mp4