From a5c4383eb52f8ceb6afe1f36054e7e4e440d605b Mon Sep 17 00:00:00 2001 From: TropheusJ Date: Sun, 16 Feb 2025 23:36:03 -0500 Subject: [PATCH] make MovementBehaviour api --- .../java/com/simibubi/create/AllBlocks.java | 2 +- .../create/AllMovementBehaviours.java | 32 ++++--------------- .../movement}/MovementBehaviour.java | 18 ++++++++++- .../storage/item/MountedItemStorage.java | 3 +- .../AbstractContraptionEntity.java | 7 ++-- .../content/contraptions/Contraption.java | 17 +++++----- .../contraptions/ContraptionCollider.java | 7 ++-- .../ControlledContraptionEntity.java | 2 +- .../ContraptionControlsMovement.java | 2 +- .../ContraptionControlsMovingInteraction.java | 16 ++++++---- .../harvester/HarvesterMovementBehaviour.java | 2 +- .../psi/PortableStorageInterfaceMovement.java | 2 +- .../actors/seat/SeatMovementBehaviour.java | 2 +- .../ControlsMovementBehaviour.java | 2 +- .../StabilizedBearingMovementBehaviour.java | 2 +- .../behaviour/BellMovementBehaviour.java | 1 + .../behaviour/CampfireMovementBehaviour.java | 2 ++ .../dispenser/DropperMovementBehaviour.java | 3 +- .../mounted/MinecartContraptionItem.java | 4 +-- .../render/ContraptionEntityRenderer.java | 5 ++- .../render/ContraptionVisual.java | 6 ++-- .../SlidingDoorMovementBehaviour.java | 2 +- .../tank/FluidTankMovementBehavior.java | 2 +- .../base/BlockBreakingMovementBehaviour.java | 2 +- .../deployer/DeployerMovementBehaviour.java | 7 ++-- .../funnel/FunnelMovementBehaviour.java | 3 +- .../basin/BasinMovementBehaviour.java | 3 +- .../burner/BlazeBurnerMovementBehaviour.java | 7 ++-- .../contact/ContactMovementBehaviour.java | 4 +-- .../entity/CarriageContraptionEntity.java | 2 +- .../create/content/trains/entity/Train.java | 8 ++--- .../foundation/data/BuilderTransformers.java | 3 +- src/main/resources/create.mixins.json | 1 + 33 files changed, 93 insertions(+), 88 deletions(-) rename src/main/java/com/simibubi/create/{content/contraptions/behaviour => api/behaviour/movement}/MovementBehaviour.java (79%) diff --git a/src/main/java/com/simibubi/create/AllBlocks.java b/src/main/java/com/simibubi/create/AllBlocks.java index d894044efb..2d7caf70ac 100644 --- a/src/main/java/com/simibubi/create/AllBlocks.java +++ b/src/main/java/com/simibubi/create/AllBlocks.java @@ -1,8 +1,8 @@ package com.simibubi.create; import static com.simibubi.create.AllInteractionBehaviours.interactionBehaviour; -import static com.simibubi.create.AllMovementBehaviours.movementBehaviour; import static com.simibubi.create.Create.REGISTRATE; +import static com.simibubi.create.api.behaviour.movement.MovementBehaviour.movementBehaviour; import static com.simibubi.create.api.contraption.storage.MountedStorageTypeRegistries.mountedFluidStorage; import static com.simibubi.create.api.contraption.storage.MountedStorageTypeRegistries.mountedItemStorage; import static com.simibubi.create.content.redstone.displayLink.AllDisplayBehaviours.assignDataBehaviour; diff --git a/src/main/java/com/simibubi/create/AllMovementBehaviours.java b/src/main/java/com/simibubi/create/AllMovementBehaviours.java index e03ee17c93..d10f60a0d4 100644 --- a/src/main/java/com/simibubi/create/AllMovementBehaviours.java +++ b/src/main/java/com/simibubi/create/AllMovementBehaviours.java @@ -1,41 +1,21 @@ package com.simibubi.create; -import org.jetbrains.annotations.Nullable; - -import com.simibubi.create.api.registry.SimpleRegistry; +import com.simibubi.create.api.behaviour.movement.MovementBehaviour; import com.simibubi.create.content.contraptions.behaviour.BellMovementBehaviour; import com.simibubi.create.content.contraptions.behaviour.CampfireMovementBehaviour; -import com.simibubi.create.content.contraptions.behaviour.MovementBehaviour; import com.simibubi.create.content.contraptions.behaviour.dispenser.DispenserMovementBehaviour; import com.simibubi.create.content.contraptions.behaviour.dispenser.DropperMovementBehaviour; -import com.tterrag.registrate.util.nullness.NonNullConsumer; -import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; -import net.minecraft.world.level.block.state.BlockState; public class AllMovementBehaviours { - public static final SimpleRegistry REGISTRY = SimpleRegistry.create(); - - @Nullable - public static MovementBehaviour getBehaviour(BlockState state) { - return REGISTRY.get(state.getBlock()); - } - - /** - * Creates a consumer that will register a behavior to a block. Useful for Registrate. - */ - public static NonNullConsumer movementBehaviour(MovementBehaviour behaviour) { - return b -> REGISTRY.register(b, behaviour); - } - static void registerDefaults() { - REGISTRY.register(Blocks.BELL, new BellMovementBehaviour()); - REGISTRY.register(Blocks.CAMPFIRE, new CampfireMovementBehaviour()); - REGISTRY.register(Blocks.SOUL_CAMPFIRE, new CampfireMovementBehaviour()); + MovementBehaviour.REGISTRY.register(Blocks.BELL, new BellMovementBehaviour()); + MovementBehaviour.REGISTRY.register(Blocks.CAMPFIRE, new CampfireMovementBehaviour()); + MovementBehaviour.REGISTRY.register(Blocks.SOUL_CAMPFIRE, new CampfireMovementBehaviour()); DispenserMovementBehaviour.gatherMovedDispenseItemBehaviours(); - REGISTRY.register(Blocks.DISPENSER, new DispenserMovementBehaviour()); - REGISTRY.register(Blocks.DROPPER, new DropperMovementBehaviour()); + MovementBehaviour.REGISTRY.register(Blocks.DISPENSER, new DispenserMovementBehaviour()); + MovementBehaviour.REGISTRY.register(Blocks.DROPPER, new DropperMovementBehaviour()); } } diff --git a/src/main/java/com/simibubi/create/content/contraptions/behaviour/MovementBehaviour.java b/src/main/java/com/simibubi/create/api/behaviour/movement/MovementBehaviour.java similarity index 79% rename from src/main/java/com/simibubi/create/content/contraptions/behaviour/MovementBehaviour.java rename to src/main/java/com/simibubi/create/api/behaviour/movement/MovementBehaviour.java index f13673b304..f97975041e 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/behaviour/MovementBehaviour.java +++ b/src/main/java/com/simibubi/create/api/behaviour/movement/MovementBehaviour.java @@ -1,11 +1,14 @@ -package com.simibubi.create.content.contraptions.behaviour; +package com.simibubi.create.api.behaviour.movement; import javax.annotation.Nullable; +import com.simibubi.create.api.registry.SimpleRegistry; +import com.simibubi.create.content.contraptions.behaviour.MovementContext; import com.simibubi.create.content.contraptions.render.ActorVisual; import com.simibubi.create.content.contraptions.render.ContraptionMatrices; import com.simibubi.create.foundation.virtualWorld.VirtualRenderWorld; import com.simibubi.create.infrastructure.config.AllConfigs; +import com.tterrag.registrate.util.nullness.NonNullConsumer; import dev.engine_room.flywheel.api.visualization.VisualizationContext; import net.minecraft.client.renderer.MultiBufferSource; @@ -14,11 +17,24 @@ import net.minecraft.world.entity.item.ItemEntity; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.Block; import net.minecraft.world.phys.Vec3; + import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.items.ItemHandlerHelper; +/** + * MovementBehaviors, also known as Actors, provide behavior to blocks mounted on contraptions. + * Blocks may be associated with a behavior through {@link #REGISTRY}. + */ public interface MovementBehaviour { + SimpleRegistry REGISTRY = SimpleRegistry.create(); + + /** + * Creates a consumer that will register a behavior to a block. Useful for Registrate. + */ + static NonNullConsumer movementBehaviour(MovementBehaviour behaviour) { + return b -> REGISTRY.register(b, behaviour); + } default boolean isActive(MovementContext context) { return !context.disabled; diff --git a/src/main/java/com/simibubi/create/api/contraption/storage/item/MountedItemStorage.java b/src/main/java/com/simibubi/create/api/contraption/storage/item/MountedItemStorage.java index f4a562991d..8390b8a6f0 100644 --- a/src/main/java/com/simibubi/create/api/contraption/storage/item/MountedItemStorage.java +++ b/src/main/java/com/simibubi/create/api/contraption/storage/item/MountedItemStorage.java @@ -8,10 +8,10 @@ import java.util.function.Predicate; import org.jetbrains.annotations.Nullable; import com.mojang.serialization.Codec; +import com.simibubi.create.api.behaviour.movement.MovementBehaviour; import com.simibubi.create.api.contraption.storage.item.menu.MountedStorageMenus; import com.simibubi.create.content.contraptions.Contraption; import com.simibubi.create.content.contraptions.MountedStorageManager; -import com.simibubi.create.content.contraptions.behaviour.MovementBehaviour; import com.simibubi.create.content.contraptions.behaviour.MovementContext; import com.simibubi.create.foundation.utility.CreateLang; @@ -29,6 +29,7 @@ import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate.StructureBlockInfo; import net.minecraft.world.phys.Vec3; + import net.minecraftforge.items.IItemHandlerModifiable; public abstract class MountedItemStorage implements IItemHandlerModifiable { diff --git a/src/main/java/com/simibubi/create/content/contraptions/AbstractContraptionEntity.java b/src/main/java/com/simibubi/create/content/contraptions/AbstractContraptionEntity.java index d29961056b..06f274e748 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/AbstractContraptionEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/AbstractContraptionEntity.java @@ -15,14 +15,13 @@ import org.apache.commons.lang3.tuple.MutablePair; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.AllItems; -import com.simibubi.create.AllMovementBehaviours; import com.simibubi.create.AllPackets; import com.simibubi.create.AllSoundEvents; +import com.simibubi.create.api.behaviour.movement.MovementBehaviour; import com.simibubi.create.content.contraptions.actors.psi.PortableStorageInterfaceMovement; import com.simibubi.create.content.contraptions.actors.seat.SeatBlock; import com.simibubi.create.content.contraptions.actors.seat.SeatEntity; import com.simibubi.create.content.contraptions.actors.trainControls.ControlsStopControllingPacket; -import com.simibubi.create.content.contraptions.behaviour.MovementBehaviour; import com.simibubi.create.content.contraptions.behaviour.MovementContext; import com.simibubi.create.content.contraptions.data.ContraptionSyncLimiting; import com.simibubi.create.content.contraptions.elevator.ElevatorContraption; @@ -448,7 +447,7 @@ public abstract class AbstractContraptionEntity extends Entity implements IEntit for (MutablePair pair : contraption.getActors()) { MovementContext context = pair.right; StructureBlockInfo blockInfo = pair.left; - MovementBehaviour actor = AllMovementBehaviours.getBehaviour(blockInfo.state()); + MovementBehaviour actor = MovementBehaviour.REGISTRY.get(blockInfo.state()); if (actor == null) continue; @@ -512,7 +511,7 @@ public abstract class AbstractContraptionEntity extends Entity implements IEntit for (MutablePair pair : contraption.getActors()) { MovementContext context = pair.right; StructureBlockInfo blockInfo = pair.left; - MovementBehaviour actor = AllMovementBehaviours.getBehaviour(blockInfo.state()); + MovementBehaviour actor = MovementBehaviour.REGISTRY.get(blockInfo.state()); if (actor instanceof PortableStorageInterfaceMovement && isActorActive(context, actor)) if (context.position != null) actor.visitNewPosition(context, BlockPos.containing(context.position)); diff --git a/src/main/java/com/simibubi/create/content/contraptions/Contraption.java b/src/main/java/com/simibubi/create/content/contraptions/Contraption.java index 60b0735b08..2658d107cd 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/Contraption.java +++ b/src/main/java/com/simibubi/create/content/contraptions/Contraption.java @@ -30,7 +30,7 @@ import com.google.common.collect.Multimap; import com.simibubi.create.AllBlockEntityTypes; import com.simibubi.create.AllBlocks; import com.simibubi.create.AllInteractionBehaviours; -import com.simibubi.create.AllMovementBehaviours; +import com.simibubi.create.api.behaviour.movement.MovementBehaviour; import com.simibubi.create.content.contraptions.actors.contraptionControls.ContraptionControlsMovement; import com.simibubi.create.content.contraptions.actors.harvester.HarvesterMovementBehaviour; import com.simibubi.create.content.contraptions.actors.seat.SeatBlock; @@ -40,7 +40,6 @@ import com.simibubi.create.content.contraptions.bearing.MechanicalBearingBlock; import com.simibubi.create.content.contraptions.bearing.StabilizedContraption; import com.simibubi.create.content.contraptions.bearing.WindmillBearingBlock; import com.simibubi.create.content.contraptions.bearing.WindmillBearingBlockEntity; -import com.simibubi.create.content.contraptions.behaviour.MovementBehaviour; import com.simibubi.create.content.contraptions.behaviour.MovementContext; import com.simibubi.create.content.contraptions.behaviour.MovingInteractionBehaviour; import com.simibubi.create.content.contraptions.chassis.AbstractChassisBlock; @@ -662,7 +661,7 @@ public abstract class Contraption { captureMultiblock(localPos, structureBlockInfo, be); - if (AllMovementBehaviours.getBehaviour(state) != null) + if (MovementBehaviour.REGISTRY.get(state) != null) actors.add(MutablePair.of(structureBlockInfo, null)); MovingInteractionBehaviour interactionBehaviour = AllInteractionBehaviours.getBehaviour(state); @@ -817,7 +816,7 @@ public abstract class Contraption { ListTag actorsNBT = new ListTag(); for (MutablePair actor : getActors()) { - MovementBehaviour behaviour = AllMovementBehaviours.getBehaviour(actor.left.state()); + MovementBehaviour behaviour = MovementBehaviour.REGISTRY.get(actor.left.state()); if (behaviour == null) continue; CompoundTag compound = new CompoundTag(); @@ -989,7 +988,7 @@ public abstract class Contraption { presentBlockEntities.put(info.pos(), be); modelData.put(info.pos(), be.getModelData()); - MovementBehaviour movementBehaviour = AllMovementBehaviours.getBehaviour(info.state()); + MovementBehaviour movementBehaviour = MovementBehaviour.REGISTRY.get(info.state()); if (movementBehaviour == null || !movementBehaviour.disableBlockEntityRendering()) { renderedBlockEntities.add(be); } @@ -1274,7 +1273,7 @@ public abstract class Contraption { for (MutablePair pair : actors) { MovementContext context = new MovementContext(world, pair.left, this); - MovementBehaviour behaviour = AllMovementBehaviours.getBehaviour(pair.left.state()); + MovementBehaviour behaviour = MovementBehaviour.REGISTRY.get(pair.left.state()); if (behaviour != null) behaviour.startMoving(context); pair.setRight(context); @@ -1304,7 +1303,7 @@ public abstract class Contraption { public void setActorsActive(ItemStack referenceStack, boolean enable) { for (MutablePair pair : actors) { - MovementBehaviour behaviour = AllMovementBehaviours.getBehaviour(pair.left.state()); + MovementBehaviour behaviour = MovementBehaviour.REGISTRY.get(pair.left.state()); if (behaviour == null) continue; ItemStack behaviourStack = behaviour.canBeDisabledVia(pair.right); @@ -1334,7 +1333,7 @@ public abstract class Contraption { public void forEachActor(Level world, BiConsumer callBack) { for (MutablePair pair : actors) { - MovementBehaviour behaviour = AllMovementBehaviours.getBehaviour(pair.getLeft().state()); + MovementBehaviour behaviour = MovementBehaviour.REGISTRY.get(pair.getLeft().state()); if (behaviour == null) continue; callBack.accept(behaviour, pair.getRight()); @@ -1513,7 +1512,7 @@ public abstract class Contraption { public boolean containsBlockBreakers() { for (MutablePair pair : actors) { - MovementBehaviour behaviour = AllMovementBehaviours.getBehaviour(pair.getLeft().state()); + MovementBehaviour behaviour = MovementBehaviour.REGISTRY.get(pair.getLeft().state()); if (behaviour instanceof BlockBreakingMovementBehaviour || behaviour instanceof HarvesterMovementBehaviour) return true; } diff --git a/src/main/java/com/simibubi/create/content/contraptions/ContraptionCollider.java b/src/main/java/com/simibubi/create/content/contraptions/ContraptionCollider.java index 808a444a02..99496417d3 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/ContraptionCollider.java +++ b/src/main/java/com/simibubi/create/content/contraptions/ContraptionCollider.java @@ -15,12 +15,11 @@ import org.apache.commons.lang3.mutable.MutableObject; import org.apache.commons.lang3.tuple.MutablePair; import com.simibubi.create.AllBlocks; -import com.simibubi.create.AllMovementBehaviours; import com.simibubi.create.AllPackets; +import com.simibubi.create.api.behaviour.movement.MovementBehaviour; import com.simibubi.create.content.contraptions.AbstractContraptionEntity.ContraptionRotationState; import com.simibubi.create.content.contraptions.ContraptionColliderLockPacket.ContraptionColliderLockPacketRequest; import com.simibubi.create.content.contraptions.actors.harvester.HarvesterMovementBehaviour; -import com.simibubi.create.content.contraptions.behaviour.MovementBehaviour; import com.simibubi.create.content.contraptions.behaviour.MovingInteractionBehaviour; import com.simibubi.create.content.contraptions.sync.ClientMotionPacket; import com.simibubi.create.content.kinetics.base.BlockBreakingMovementBehaviour; @@ -145,7 +144,7 @@ public class ContraptionCollider { // Make player 'shorter' to make it less likely to become stuck if (playerType == PlayerType.CLIENT && entityBounds.getYsize() > 1) entityBounds = entityBounds.contract(0, 2 / 16f, 0); - + motion = motion.subtract(contraptionMotion); motion = rotationMatrix.transform(motion); @@ -770,7 +769,7 @@ public class ContraptionCollider { if (collidedState.getBlock() instanceof CocoaBlock) continue; - MovementBehaviour movementBehaviour = AllMovementBehaviours.getBehaviour(blockInfo.state()); + MovementBehaviour movementBehaviour = MovementBehaviour.REGISTRY.get(blockInfo.state()); if (movementBehaviour != null) { if (movementBehaviour instanceof BlockBreakingMovementBehaviour) { BlockBreakingMovementBehaviour behaviour = (BlockBreakingMovementBehaviour) movementBehaviour; diff --git a/src/main/java/com/simibubi/create/content/contraptions/ControlledContraptionEntity.java b/src/main/java/com/simibubi/create/content/contraptions/ControlledContraptionEntity.java index 2eae9b00d4..d199d3290f 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/ControlledContraptionEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/ControlledContraptionEntity.java @@ -2,8 +2,8 @@ package com.simibubi.create.content.contraptions; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.AllEntityTypes; +import com.simibubi.create.api.behaviour.movement.MovementBehaviour; import com.simibubi.create.content.contraptions.bearing.BearingContraption; -import com.simibubi.create.content.contraptions.behaviour.MovementBehaviour; import com.simibubi.create.content.contraptions.behaviour.MovementContext; import dev.engine_room.flywheel.lib.transform.TransformStack; diff --git a/src/main/java/com/simibubi/create/content/contraptions/actors/contraptionControls/ContraptionControlsMovement.java b/src/main/java/com/simibubi/create/content/contraptions/actors/contraptionControls/ContraptionControlsMovement.java index dbc798f3d5..8407e50bf2 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/actors/contraptionControls/ContraptionControlsMovement.java +++ b/src/main/java/com/simibubi/create/content/contraptions/actors/contraptionControls/ContraptionControlsMovement.java @@ -1,7 +1,7 @@ package com.simibubi.create.content.contraptions.actors.contraptionControls; +import com.simibubi.create.api.behaviour.movement.MovementBehaviour; import com.simibubi.create.content.contraptions.Contraption; -import com.simibubi.create.content.contraptions.behaviour.MovementBehaviour; import com.simibubi.create.content.contraptions.behaviour.MovementContext; import com.simibubi.create.content.contraptions.elevator.ElevatorContraption; import com.simibubi.create.content.contraptions.render.ContraptionMatrices; diff --git a/src/main/java/com/simibubi/create/content/contraptions/actors/contraptionControls/ContraptionControlsMovingInteraction.java b/src/main/java/com/simibubi/create/content/contraptions/actors/contraptionControls/ContraptionControlsMovingInteraction.java index 71603c623f..a838d7b30c 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/actors/contraptionControls/ContraptionControlsMovingInteraction.java +++ b/src/main/java/com/simibubi/create/content/contraptions/actors/contraptionControls/ContraptionControlsMovingInteraction.java @@ -1,16 +1,21 @@ package com.simibubi.create.content.contraptions.actors.contraptionControls; -import com.simibubi.create.AllMovementBehaviours; +import java.util.Iterator; +import java.util.List; + +import org.apache.commons.lang3.tuple.MutablePair; + import com.simibubi.create.AllPackets; import com.simibubi.create.AllSoundEvents; +import com.simibubi.create.api.behaviour.movement.MovementBehaviour; import com.simibubi.create.content.contraptions.AbstractContraptionEntity; import com.simibubi.create.content.contraptions.Contraption; import com.simibubi.create.content.contraptions.actors.contraptionControls.ContraptionControlsMovement.ElevatorFloorSelection; -import com.simibubi.create.content.contraptions.behaviour.MovementBehaviour; import com.simibubi.create.content.contraptions.behaviour.MovementContext; import com.simibubi.create.content.contraptions.behaviour.MovingInteractionBehaviour; import com.simibubi.create.content.contraptions.elevator.ElevatorContraption; import com.simibubi.create.content.contraptions.elevator.ElevatorTargetFloorPacket; + import net.minecraft.core.BlockPos; import net.minecraft.world.InteractionHand; import net.minecraft.world.entity.player.Player; @@ -18,11 +23,8 @@ import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate.StructureBlockInfo; import net.minecraft.world.phys.Vec3; -import net.minecraftforge.network.PacketDistributor; -import org.apache.commons.lang3.tuple.MutablePair; -import java.util.Iterator; -import java.util.List; +import net.minecraftforge.network.PacketDistributor; public class ContraptionControlsMovingInteraction extends MovingInteractionBehaviour { @@ -69,7 +71,7 @@ public class ContraptionControlsMovingInteraction extends MovingInteractionBehav if (invert) { for (MutablePair pair : contraption.getActors()) { - MovementBehaviour behaviour = AllMovementBehaviours.getBehaviour(pair.left.state()); + MovementBehaviour behaviour = MovementBehaviour.REGISTRY.get(pair.left.state()); if (behaviour == null) continue; ItemStack behaviourStack = behaviour.canBeDisabledVia(pair.right); diff --git a/src/main/java/com/simibubi/create/content/contraptions/actors/harvester/HarvesterMovementBehaviour.java b/src/main/java/com/simibubi/create/content/contraptions/actors/harvester/HarvesterMovementBehaviour.java index 8a81f33d72..018ea9b458 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/actors/harvester/HarvesterMovementBehaviour.java +++ b/src/main/java/com/simibubi/create/content/contraptions/actors/harvester/HarvesterMovementBehaviour.java @@ -5,7 +5,7 @@ import javax.annotation.Nullable; import org.apache.commons.lang3.mutable.MutableBoolean; import com.simibubi.create.AllTags; -import com.simibubi.create.content.contraptions.behaviour.MovementBehaviour; +import com.simibubi.create.api.behaviour.movement.MovementBehaviour; import com.simibubi.create.content.contraptions.behaviour.MovementContext; import com.simibubi.create.content.contraptions.render.ActorVisual; import com.simibubi.create.content.contraptions.render.ContraptionMatrices; diff --git a/src/main/java/com/simibubi/create/content/contraptions/actors/psi/PortableStorageInterfaceMovement.java b/src/main/java/com/simibubi/create/content/contraptions/actors/psi/PortableStorageInterfaceMovement.java index 3c7d41deae..48be250c0e 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/actors/psi/PortableStorageInterfaceMovement.java +++ b/src/main/java/com/simibubi/create/content/contraptions/actors/psi/PortableStorageInterfaceMovement.java @@ -4,7 +4,7 @@ import java.util.Optional; import org.jetbrains.annotations.Nullable; -import com.simibubi.create.content.contraptions.behaviour.MovementBehaviour; +import com.simibubi.create.api.behaviour.movement.MovementBehaviour; import com.simibubi.create.content.contraptions.behaviour.MovementContext; import com.simibubi.create.content.contraptions.render.ActorVisual; import com.simibubi.create.content.contraptions.render.ContraptionMatrices; diff --git a/src/main/java/com/simibubi/create/content/contraptions/actors/seat/SeatMovementBehaviour.java b/src/main/java/com/simibubi/create/content/contraptions/actors/seat/SeatMovementBehaviour.java index 5774a692e4..d6540999f1 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/actors/seat/SeatMovementBehaviour.java +++ b/src/main/java/com/simibubi/create/content/contraptions/actors/seat/SeatMovementBehaviour.java @@ -3,8 +3,8 @@ package com.simibubi.create.content.contraptions.actors.seat; import java.util.Map; import java.util.UUID; +import com.simibubi.create.api.behaviour.movement.MovementBehaviour; import com.simibubi.create.content.contraptions.AbstractContraptionEntity; -import com.simibubi.create.content.contraptions.behaviour.MovementBehaviour; import com.simibubi.create.content.contraptions.behaviour.MovementContext; import net.createmod.catnip.math.VecHelper; diff --git a/src/main/java/com/simibubi/create/content/contraptions/actors/trainControls/ControlsMovementBehaviour.java b/src/main/java/com/simibubi/create/content/contraptions/actors/trainControls/ControlsMovementBehaviour.java index 7b1890d1ad..bba75321af 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/actors/trainControls/ControlsMovementBehaviour.java +++ b/src/main/java/com/simibubi/create/content/contraptions/actors/trainControls/ControlsMovementBehaviour.java @@ -2,8 +2,8 @@ package com.simibubi.create.content.contraptions.actors.trainControls; import java.util.Collection; +import com.simibubi.create.api.behaviour.movement.MovementBehaviour; import com.simibubi.create.content.contraptions.AbstractContraptionEntity; -import com.simibubi.create.content.contraptions.behaviour.MovementBehaviour; import com.simibubi.create.content.contraptions.behaviour.MovementContext; import com.simibubi.create.content.contraptions.render.ContraptionMatrices; import com.simibubi.create.content.trains.entity.CarriageContraptionEntity; diff --git a/src/main/java/com/simibubi/create/content/contraptions/bearing/StabilizedBearingMovementBehaviour.java b/src/main/java/com/simibubi/create/content/contraptions/bearing/StabilizedBearingMovementBehaviour.java index 947b3dc54b..3ffbceceff 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/bearing/StabilizedBearingMovementBehaviour.java +++ b/src/main/java/com/simibubi/create/content/contraptions/bearing/StabilizedBearingMovementBehaviour.java @@ -6,10 +6,10 @@ import org.joml.Quaternionf; import com.mojang.math.Axis; import com.simibubi.create.AllPartialModels; +import com.simibubi.create.api.behaviour.movement.MovementBehaviour; import com.simibubi.create.content.contraptions.AbstractContraptionEntity; import com.simibubi.create.content.contraptions.ControlledContraptionEntity; import com.simibubi.create.content.contraptions.OrientedContraptionEntity; -import com.simibubi.create.content.contraptions.behaviour.MovementBehaviour; import com.simibubi.create.content.contraptions.behaviour.MovementContext; import com.simibubi.create.content.contraptions.render.ActorVisual; import com.simibubi.create.content.contraptions.render.ContraptionMatrices; diff --git a/src/main/java/com/simibubi/create/content/contraptions/behaviour/BellMovementBehaviour.java b/src/main/java/com/simibubi/create/content/contraptions/behaviour/BellMovementBehaviour.java index 84711f6063..116aa4167c 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/behaviour/BellMovementBehaviour.java +++ b/src/main/java/com/simibubi/create/content/contraptions/behaviour/BellMovementBehaviour.java @@ -1,6 +1,7 @@ package com.simibubi.create.content.contraptions.behaviour; import com.simibubi.create.AllBlocks; +import com.simibubi.create.api.behaviour.movement.MovementBehaviour; import com.simibubi.create.content.contraptions.Contraption; import com.simibubi.create.content.contraptions.elevator.ElevatorContraption; import com.simibubi.create.content.equipment.bell.AbstractBellBlock; diff --git a/src/main/java/com/simibubi/create/content/contraptions/behaviour/CampfireMovementBehaviour.java b/src/main/java/com/simibubi/create/content/contraptions/behaviour/CampfireMovementBehaviour.java index 05315b3138..fb86887260 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/behaviour/CampfireMovementBehaviour.java +++ b/src/main/java/com/simibubi/create/content/contraptions/behaviour/CampfireMovementBehaviour.java @@ -1,5 +1,7 @@ package com.simibubi.create.content.contraptions.behaviour; +import com.simibubi.create.api.behaviour.movement.MovementBehaviour; + import net.minecraft.core.particles.ParticleTypes; import net.minecraft.util.RandomSource; import net.minecraft.world.level.block.CampfireBlock; diff --git a/src/main/java/com/simibubi/create/content/contraptions/behaviour/dispenser/DropperMovementBehaviour.java b/src/main/java/com/simibubi/create/content/contraptions/behaviour/dispenser/DropperMovementBehaviour.java index c164440c13..cfb5b9fc56 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/behaviour/dispenser/DropperMovementBehaviour.java +++ b/src/main/java/com/simibubi/create/content/contraptions/behaviour/dispenser/DropperMovementBehaviour.java @@ -4,8 +4,8 @@ import java.util.function.Predicate; import org.jetbrains.annotations.Nullable; +import com.simibubi.create.api.behaviour.movement.MovementBehaviour; import com.simibubi.create.api.contraption.storage.item.MountedItemStorage; -import com.simibubi.create.content.contraptions.behaviour.MovementBehaviour; import com.simibubi.create.content.contraptions.behaviour.MovementContext; import com.simibubi.create.foundation.item.ItemHelper; @@ -16,6 +16,7 @@ import net.minecraft.core.BlockPos; import net.minecraft.util.RandomSource; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.LevelEvent; + import net.minecraftforge.items.IItemHandler; public class DropperMovementBehaviour implements MovementBehaviour { diff --git a/src/main/java/com/simibubi/create/content/contraptions/mounted/MinecartContraptionItem.java b/src/main/java/com/simibubi/create/content/contraptions/mounted/MinecartContraptionItem.java index 94839ce8e1..3ae7a38084 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/mounted/MinecartContraptionItem.java +++ b/src/main/java/com/simibubi/create/content/contraptions/mounted/MinecartContraptionItem.java @@ -7,7 +7,7 @@ import javax.annotation.Nullable; import org.apache.commons.lang3.tuple.MutablePair; import com.simibubi.create.AllItems; -import com.simibubi.create.AllMovementBehaviours; +import com.simibubi.create.api.behaviour.movement.MovementBehaviour; import com.simibubi.create.content.contraptions.AbstractContraptionEntity; import com.simibubi.create.content.contraptions.Contraption; import com.simibubi.create.content.contraptions.ContraptionMovementSetting; @@ -244,7 +244,7 @@ public class MinecartContraptionItem extends Item { contraption.stop(event.getLevel()); for (MutablePair pair : contraption.getActors()) - if (AllMovementBehaviours.getBehaviour(pair.left.state())instanceof PortableStorageInterfaceMovement psim) + if (MovementBehaviour.REGISTRY.get(pair.left.state()) instanceof PortableStorageInterfaceMovement psim) psim.reset(pair.right); ItemStack generatedStack = create(type, oce).setHoverName(entity.getCustomName()); diff --git a/src/main/java/com/simibubi/create/content/contraptions/render/ContraptionEntityRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/render/ContraptionEntityRenderer.java index 6d22c0beae..c0b23ff4e5 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/render/ContraptionEntityRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/render/ContraptionEntityRenderer.java @@ -4,10 +4,9 @@ import org.apache.commons.lang3.tuple.Pair; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; -import com.simibubi.create.AllMovementBehaviours; +import com.simibubi.create.api.behaviour.movement.MovementBehaviour; import com.simibubi.create.content.contraptions.AbstractContraptionEntity; import com.simibubi.create.content.contraptions.Contraption; -import com.simibubi.create.content.contraptions.behaviour.MovementBehaviour; import com.simibubi.create.content.contraptions.behaviour.MovementContext; import com.simibubi.create.foundation.render.BlockEntityRenderHelper; import com.simibubi.create.foundation.virtualWorld.VirtualRenderWorld; @@ -99,7 +98,7 @@ public class ContraptionEntityRenderer exte context.world = level; StructureTemplate.StructureBlockInfo blockInfo = actor.getLeft(); - MovementBehaviour movementBehaviour = AllMovementBehaviours.getBehaviour(blockInfo.state()); + MovementBehaviour movementBehaviour = MovementBehaviour.REGISTRY.get(blockInfo.state()); if (movementBehaviour != null) { if (c.isHiddenInPortal(blockInfo.pos())) continue; diff --git a/src/main/java/com/simibubi/create/content/contraptions/render/ContraptionVisual.java b/src/main/java/com/simibubi/create/content/contraptions/render/ContraptionVisual.java index 37df2c080e..60b4398556 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/render/ContraptionVisual.java +++ b/src/main/java/com/simibubi/create/content/contraptions/render/ContraptionVisual.java @@ -6,11 +6,10 @@ import java.util.List; import org.apache.commons.lang3.tuple.MutablePair; import com.mojang.blaze3d.vertex.PoseStack; -import com.simibubi.create.AllMovementBehaviours; +import com.simibubi.create.api.behaviour.movement.MovementBehaviour; import com.simibubi.create.content.contraptions.AbstractContraptionEntity; import com.simibubi.create.content.contraptions.Contraption; import com.simibubi.create.content.contraptions.Contraption.RenderedBlocks; -import com.simibubi.create.content.contraptions.behaviour.MovementBehaviour; import com.simibubi.create.content.contraptions.behaviour.MovementContext; import com.simibubi.create.foundation.utility.worldWrappers.WrappedBlockAndTintGetter; import com.simibubi.create.foundation.virtualWorld.VirtualRenderWorld; @@ -48,6 +47,7 @@ import net.minecraft.world.level.Level; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate; + import net.minecraftforge.client.model.data.ModelData; public class ContraptionVisual extends AbstractEntityVisual implements DynamicVisual, TickableVisual, LightUpdatedVisual, ShaderLightVisual { @@ -166,7 +166,7 @@ public class ContraptionVisual extends Abst StructureTemplate.StructureBlockInfo blockInfo = actor.getLeft(); - MovementBehaviour movementBehaviour = AllMovementBehaviours.getBehaviour(blockInfo.state()); + MovementBehaviour movementBehaviour = MovementBehaviour.REGISTRY.get(blockInfo.state()); if (movementBehaviour == null) { return; } diff --git a/src/main/java/com/simibubi/create/content/decoration/slidingDoor/SlidingDoorMovementBehaviour.java b/src/main/java/com/simibubi/create/content/decoration/slidingDoor/SlidingDoorMovementBehaviour.java index 829e314d7b..088300e086 100644 --- a/src/main/java/com/simibubi/create/content/decoration/slidingDoor/SlidingDoorMovementBehaviour.java +++ b/src/main/java/com/simibubi/create/content/decoration/slidingDoor/SlidingDoorMovementBehaviour.java @@ -3,8 +3,8 @@ package com.simibubi.create.content.decoration.slidingDoor; import java.lang.ref.WeakReference; import java.util.Map; +import com.simibubi.create.api.behaviour.movement.MovementBehaviour; import com.simibubi.create.content.contraptions.Contraption; -import com.simibubi.create.content.contraptions.behaviour.MovementBehaviour; import com.simibubi.create.content.contraptions.behaviour.MovementContext; import com.simibubi.create.content.contraptions.elevator.ElevatorColumn; import com.simibubi.create.content.contraptions.elevator.ElevatorColumn.ColumnCoords; diff --git a/src/main/java/com/simibubi/create/content/fluids/tank/FluidTankMovementBehavior.java b/src/main/java/com/simibubi/create/content/fluids/tank/FluidTankMovementBehavior.java index 9f57a9deb5..2721817a24 100644 --- a/src/main/java/com/simibubi/create/content/fluids/tank/FluidTankMovementBehavior.java +++ b/src/main/java/com/simibubi/create/content/fluids/tank/FluidTankMovementBehavior.java @@ -1,6 +1,6 @@ package com.simibubi.create.content.fluids.tank; -import com.simibubi.create.content.contraptions.behaviour.MovementBehaviour; +import com.simibubi.create.api.behaviour.movement.MovementBehaviour; import com.simibubi.create.content.contraptions.behaviour.MovementContext; import net.minecraft.world.level.block.entity.BlockEntity; diff --git a/src/main/java/com/simibubi/create/content/kinetics/base/BlockBreakingMovementBehaviour.java b/src/main/java/com/simibubi/create/content/kinetics/base/BlockBreakingMovementBehaviour.java index df9fe85586..c406f8bb3c 100644 --- a/src/main/java/com/simibubi/create/content/kinetics/base/BlockBreakingMovementBehaviour.java +++ b/src/main/java/com/simibubi/create/content/kinetics/base/BlockBreakingMovementBehaviour.java @@ -1,8 +1,8 @@ package com.simibubi.create.content.kinetics.base; +import com.simibubi.create.api.behaviour.movement.MovementBehaviour; import com.simibubi.create.content.contraptions.AbstractContraptionEntity; import com.simibubi.create.content.contraptions.OrientedContraptionEntity; -import com.simibubi.create.content.contraptions.behaviour.MovementBehaviour; import com.simibubi.create.content.contraptions.behaviour.MovementContext; import com.simibubi.create.content.contraptions.mounted.MountedContraption; import com.simibubi.create.content.trains.entity.CarriageContraption; diff --git a/src/main/java/com/simibubi/create/content/kinetics/deployer/DeployerMovementBehaviour.java b/src/main/java/com/simibubi/create/content/kinetics/deployer/DeployerMovementBehaviour.java index 850e6d97aa..46861d0183 100644 --- a/src/main/java/com/simibubi/create/content/kinetics/deployer/DeployerMovementBehaviour.java +++ b/src/main/java/com/simibubi/create/content/kinetics/deployer/DeployerMovementBehaviour.java @@ -10,9 +10,9 @@ import org.apache.commons.lang3.tuple.Pair; import com.simibubi.create.AllBlocks; import com.simibubi.create.AllItems; +import com.simibubi.create.api.behaviour.movement.MovementBehaviour; import com.simibubi.create.content.contraptions.AbstractContraptionEntity; import com.simibubi.create.content.contraptions.OrientedContraptionEntity; -import com.simibubi.create.content.contraptions.behaviour.MovementBehaviour; import com.simibubi.create.content.contraptions.behaviour.MovementContext; import com.simibubi.create.content.contraptions.mounted.MountedContraption; import com.simibubi.create.content.contraptions.render.ActorVisual; @@ -31,9 +31,9 @@ import com.simibubi.create.foundation.virtualWorld.VirtualRenderWorld; import dev.engine_room.flywheel.api.visualization.VisualizationContext; import dev.engine_room.flywheel.api.visualization.VisualizationManager; -import net.createmod.catnip.nbt.NBTHelper; -import net.createmod.catnip.math.VecHelper; import net.createmod.catnip.levelWrappers.SchematicLevel; +import net.createmod.catnip.math.VecHelper; +import net.createmod.catnip.nbt.NBTHelper; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -48,6 +48,7 @@ import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.Vec3; + import net.minecraftforge.common.util.BlockSnapshot; import net.minecraftforge.event.ForgeEventFactory; import net.minecraftforge.items.IItemHandler; diff --git a/src/main/java/com/simibubi/create/content/logistics/funnel/FunnelMovementBehaviour.java b/src/main/java/com/simibubi/create/content/logistics/funnel/FunnelMovementBehaviour.java index b5f96ac912..3f59735348 100644 --- a/src/main/java/com/simibubi/create/content/logistics/funnel/FunnelMovementBehaviour.java +++ b/src/main/java/com/simibubi/create/content/logistics/funnel/FunnelMovementBehaviour.java @@ -2,7 +2,7 @@ package com.simibubi.create.content.logistics.funnel; import java.util.List; -import com.simibubi.create.content.contraptions.behaviour.MovementBehaviour; +import com.simibubi.create.api.behaviour.movement.MovementBehaviour; import com.simibubi.create.content.contraptions.behaviour.MovementContext; import com.simibubi.create.content.logistics.filter.FilterItemStack; import com.simibubi.create.foundation.item.ItemHelper; @@ -16,6 +16,7 @@ import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; + import net.minecraftforge.items.ItemHandlerHelper; public class FunnelMovementBehaviour implements MovementBehaviour { diff --git a/src/main/java/com/simibubi/create/content/processing/basin/BasinMovementBehaviour.java b/src/main/java/com/simibubi/create/content/processing/basin/BasinMovementBehaviour.java index 85f183bac8..5f21a3fd6e 100644 --- a/src/main/java/com/simibubi/create/content/processing/basin/BasinMovementBehaviour.java +++ b/src/main/java/com/simibubi/create/content/processing/basin/BasinMovementBehaviour.java @@ -3,7 +3,7 @@ package com.simibubi.create.content.processing.basin; import java.util.HashMap; import java.util.Map; -import com.simibubi.create.content.contraptions.behaviour.MovementBehaviour; +import com.simibubi.create.api.behaviour.movement.MovementBehaviour; import com.simibubi.create.content.contraptions.behaviour.MovementContext; import net.minecraft.core.Direction; @@ -11,6 +11,7 @@ import net.minecraft.world.entity.item.ItemEntity; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.phys.Vec3; + import net.minecraftforge.items.ItemStackHandler; public class BasinMovementBehaviour implements MovementBehaviour { diff --git a/src/main/java/com/simibubi/create/content/processing/burner/BlazeBurnerMovementBehaviour.java b/src/main/java/com/simibubi/create/content/processing/burner/BlazeBurnerMovementBehaviour.java index ba0223b69e..4f9477f4a8 100644 --- a/src/main/java/com/simibubi/create/content/processing/burner/BlazeBurnerMovementBehaviour.java +++ b/src/main/java/com/simibubi/create/content/processing/burner/BlazeBurnerMovementBehaviour.java @@ -1,7 +1,7 @@ package com.simibubi.create.content.processing.burner; +import com.simibubi.create.api.behaviour.movement.MovementBehaviour; import com.simibubi.create.content.contraptions.Contraption; -import com.simibubi.create.content.contraptions.behaviour.MovementBehaviour; import com.simibubi.create.content.contraptions.behaviour.MovementContext; import com.simibubi.create.content.contraptions.render.ContraptionMatrices; import com.simibubi.create.content.processing.burner.BlazeBurnerBlock.HeatLevel; @@ -9,11 +9,11 @@ import com.simibubi.create.content.trains.entity.CarriageContraption; import com.simibubi.create.content.trains.entity.CarriageContraptionEntity; import com.simibubi.create.foundation.virtualWorld.VirtualRenderWorld; -import net.createmod.catnip.data.Iterate; -import net.createmod.catnip.math.VecHelper; import net.createmod.catnip.animation.LerpedFloat; import net.createmod.catnip.animation.LerpedFloat.Chaser; +import net.createmod.catnip.data.Iterate; import net.createmod.catnip.math.AngleHelper; +import net.createmod.catnip.math.VecHelper; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.core.Direction; @@ -25,6 +25,7 @@ import net.minecraft.util.RandomSource; import net.minecraft.world.entity.Entity; import net.minecraft.world.item.ItemStack; import net.minecraft.world.phys.Vec3; + import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; diff --git a/src/main/java/com/simibubi/create/content/redstone/contact/ContactMovementBehaviour.java b/src/main/java/com/simibubi/create/content/redstone/contact/ContactMovementBehaviour.java index e4f4bef7b5..d55f96a5ba 100644 --- a/src/main/java/com/simibubi/create/content/redstone/contact/ContactMovementBehaviour.java +++ b/src/main/java/com/simibubi/create/content/redstone/contact/ContactMovementBehaviour.java @@ -1,7 +1,7 @@ package com.simibubi.create.content.redstone.contact; import com.simibubi.create.AllBlocks; -import com.simibubi.create.content.contraptions.behaviour.MovementBehaviour; +import com.simibubi.create.api.behaviour.movement.MovementBehaviour; import com.simibubi.create.content.contraptions.behaviour.MovementContext; import com.simibubi.create.content.contraptions.elevator.ElevatorContraption; @@ -47,7 +47,7 @@ public class ContactMovementBehaviour implements MovementBehaviour { if (AllBlocks.REDSTONE_CONTACT.has(visitedState)) world.setBlockAndUpdate(pos, visitedState.setValue(RedstoneContactBlock.POWERED, true)); - if (AllBlocks.ELEVATOR_CONTACT.has(visitedState) && context.contraption instanceof ElevatorContraption ec) + if (AllBlocks.ELEVATOR_CONTACT.has(visitedState) && context.contraption instanceof ElevatorContraption ec) ec.broadcastFloorData(world, pos); context.data.put("lastContact", NbtUtils.writeBlockPos(pos)); diff --git a/src/main/java/com/simibubi/create/content/trains/entity/CarriageContraptionEntity.java b/src/main/java/com/simibubi/create/content/trains/entity/CarriageContraptionEntity.java index be88cb7c5e..e224a8a8eb 100644 --- a/src/main/java/com/simibubi/create/content/trains/entity/CarriageContraptionEntity.java +++ b/src/main/java/com/simibubi/create/content/trains/entity/CarriageContraptionEntity.java @@ -14,10 +14,10 @@ import com.simibubi.create.AllEntityTypes; import com.simibubi.create.AllPackets; import com.simibubi.create.Create; import com.simibubi.create.CreateClient; +import com.simibubi.create.api.behaviour.movement.MovementBehaviour; import com.simibubi.create.content.contraptions.ContraptionBlockChangedPacket; import com.simibubi.create.content.contraptions.OrientedContraptionEntity; import com.simibubi.create.content.contraptions.actors.trainControls.ControlsBlock; -import com.simibubi.create.content.contraptions.behaviour.MovementBehaviour; import com.simibubi.create.content.contraptions.behaviour.MovementContext; import com.simibubi.create.content.trains.CubeParticleData; import com.simibubi.create.content.trains.TrainHUDUpdatePacket; diff --git a/src/main/java/com/simibubi/create/content/trains/entity/Train.java b/src/main/java/com/simibubi/create/content/trains/entity/Train.java index 9047e7c565..0b0fc3c9b9 100644 --- a/src/main/java/com/simibubi/create/content/trains/entity/Train.java +++ b/src/main/java/com/simibubi/create/content/trains/entity/Train.java @@ -20,10 +20,9 @@ import javax.annotation.Nullable; import org.apache.commons.lang3.mutable.MutableBoolean; import org.apache.commons.lang3.mutable.MutableObject; -import com.simibubi.create.AllMovementBehaviours; import com.simibubi.create.AllPackets; import com.simibubi.create.Create; -import com.simibubi.create.content.contraptions.behaviour.MovementBehaviour; +import com.simibubi.create.api.behaviour.movement.MovementBehaviour; import com.simibubi.create.content.logistics.filter.FilterItemStack; import com.simibubi.create.content.trains.bogey.AbstractBogeyBlockEntity; import com.simibubi.create.content.trains.entity.Carriage.DimensionalCarriageEntity; @@ -51,9 +50,9 @@ import com.simibubi.create.infrastructure.config.AllConfigs; import net.createmod.catnip.data.Couple; import net.createmod.catnip.data.Iterate; -import net.createmod.catnip.nbt.NBTHelper; import net.createmod.catnip.data.Pair; import net.createmod.catnip.math.VecHelper; +import net.createmod.catnip.nbt.NBTHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; @@ -70,6 +69,7 @@ import net.minecraft.world.level.Level; import net.minecraft.world.level.Level.ExplosionInteraction; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.phys.Vec3; + import net.minecraftforge.common.ForgeHooks; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.capability.IFluidHandler; @@ -487,7 +487,7 @@ public class Train { c.forEachPresentEntity(cce -> cce.getContraption() .getActors() .forEach(pair -> { - MovementBehaviour behaviour = AllMovementBehaviours.getBehaviour(pair.getKey().state()); + MovementBehaviour behaviour = MovementBehaviour.REGISTRY.get(pair.getKey().state()); if (behaviour != null) behaviour.cancelStall(pair.getValue()); })); diff --git a/src/main/java/com/simibubi/create/foundation/data/BuilderTransformers.java b/src/main/java/com/simibubi/create/foundation/data/BuilderTransformers.java index 3775cc78a8..9a813614a8 100644 --- a/src/main/java/com/simibubi/create/foundation/data/BuilderTransformers.java +++ b/src/main/java/com/simibubi/create/foundation/data/BuilderTransformers.java @@ -1,8 +1,8 @@ package com.simibubi.create.foundation.data; import static com.simibubi.create.AllInteractionBehaviours.interactionBehaviour; -import static com.simibubi.create.AllMovementBehaviours.movementBehaviour; import static com.simibubi.create.Create.REGISTRATE; +import static com.simibubi.create.api.behaviour.movement.MovementBehaviour.movementBehaviour; import static com.simibubi.create.foundation.data.BlockStateGen.axisBlock; import static com.simibubi.create.foundation.data.CreateRegistrate.casingConnectivity; import static com.simibubi.create.foundation.data.CreateRegistrate.connectedTextures; @@ -89,6 +89,7 @@ import net.minecraft.world.level.storage.loot.predicates.ExplosionCondition; import net.minecraft.world.level.storage.loot.predicates.LootItemCondition; import net.minecraft.world.level.storage.loot.providers.nbt.ContextNbtProvider; import net.minecraft.world.level.storage.loot.providers.number.ConstantValue; + import net.minecraftforge.client.model.generators.ConfiguredModel; import net.minecraftforge.client.model.generators.ModelFile; import net.minecraftforge.common.Tags; diff --git a/src/main/resources/create.mixins.json b/src/main/resources/create.mixins.json index a4c330b574..0b121ce508 100644 --- a/src/main/resources/create.mixins.json +++ b/src/main/resources/create.mixins.json @@ -28,6 +28,7 @@ "accessor.LivingEntityAccessor", "accessor.NbtAccounterAccessor", "accessor.ServerLevelAccessor", + "accessor.StateHolderAccessor", "accessor.SystemReportAccessor", "accessor.UseOnContextAccessor" ],