mirror of
https://github.com/Creators-of-Create/Create.git
synced 2025-03-04 06:44:40 +01:00
make MovementBehaviour api
This commit is contained in:
parent
d611992018
commit
a5c4383eb5
33 changed files with 93 additions and 88 deletions
|
@ -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;
|
||||
|
|
|
@ -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<Block, MovementBehaviour> 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 <B extends Block> NonNullConsumer<? super B> 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());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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<Block, MovementBehaviour> REGISTRY = SimpleRegistry.create();
|
||||
|
||||
/**
|
||||
* Creates a consumer that will register a behavior to a block. Useful for Registrate.
|
||||
*/
|
||||
static <B extends Block> NonNullConsumer<? super B> movementBehaviour(MovementBehaviour behaviour) {
|
||||
return b -> REGISTRY.register(b, behaviour);
|
||||
}
|
||||
|
||||
default boolean isActive(MovementContext context) {
|
||||
return !context.disabled;
|
|
@ -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 {
|
||||
|
|
|
@ -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<StructureBlockInfo, MovementContext> 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<StructureBlockInfo, MovementContext> 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));
|
||||
|
|
|
@ -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<StructureBlockInfo, MovementContext> 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<StructureBlockInfo, MovementContext> 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<StructureBlockInfo, MovementContext> 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<MovementBehaviour, MovementContext> callBack) {
|
||||
for (MutablePair<StructureBlockInfo, MovementContext> 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<StructureBlockInfo, MovementContext> 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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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<StructureBlockInfo, MovementContext> 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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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<StructureBlockInfo, MovementContext> 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());
|
||||
|
|
|
@ -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<C extends AbstractContraptionEntity> 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;
|
||||
|
|
|
@ -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<E extends AbstractContraptionEntity> extends AbstractEntityVisual<E> implements DynamicVisual, TickableVisual, LightUpdatedVisual, ShaderLightVisual {
|
||||
|
@ -166,7 +166,7 @@ public class ContraptionVisual<E extends AbstractContraptionEntity> extends Abst
|
|||
|
||||
StructureTemplate.StructureBlockInfo blockInfo = actor.getLeft();
|
||||
|
||||
MovementBehaviour movementBehaviour = AllMovementBehaviours.getBehaviour(blockInfo.state());
|
||||
MovementBehaviour movementBehaviour = MovementBehaviour.REGISTRY.get(blockInfo.state());
|
||||
if (movementBehaviour == null) {
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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));
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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());
|
||||
}));
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
"accessor.LivingEntityAccessor",
|
||||
"accessor.NbtAccounterAccessor",
|
||||
"accessor.ServerLevelAccessor",
|
||||
"accessor.StateHolderAccessor",
|
||||
"accessor.SystemReportAccessor",
|
||||
"accessor.UseOnContextAccessor"
|
||||
],
|
||||
|
|
Loading…
Add table
Reference in a new issue