diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/AbstractContraptionEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/AbstractContraptionEntity.java index bfbb03470..b411b10d2 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/AbstractContraptionEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/AbstractContraptionEntity.java @@ -20,10 +20,10 @@ import net.minecraft.block.material.PushReaction; import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityType; -import net.minecraft.entity.IProjectile; import net.minecraft.entity.item.HangingEntity; import net.minecraft.entity.item.minecart.AbstractMinecartEntity; import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.entity.projectile.ProjectileEntity; import net.minecraft.nbt.CompoundNBT; import net.minecraft.network.IPacket; import net.minecraft.network.PacketBuffer; @@ -35,7 +35,7 @@ import net.minecraft.util.Direction; import net.minecraft.util.Hand; import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; +import net.minecraft.util.math.vector.Vector3d; import net.minecraft.world.World; import net.minecraft.world.gen.feature.template.Template.BlockInfo; import net.minecraftforge.api.distmarker.Dist; @@ -90,7 +90,7 @@ public abstract class AbstractContraptionEntity extends Entity implements IEntit @Override protected void removePassenger(Entity passenger) { - Vec3d transformedVector = getPassengerPosition(passenger, 1); + Vector3d transformedVector = getPassengerPosition(passenger, 1); super.removePassenger(passenger); if (world.isRemote) return; @@ -107,13 +107,13 @@ public abstract class AbstractContraptionEntity extends Entity implements IEntit public void updatePassengerPosition(Entity passenger, IMoveCallback callback) { if (!isPassenger(passenger)) return; - Vec3d transformedVector = getPassengerPosition(passenger, 1); + Vector3d transformedVector = getPassengerPosition(passenger, 1); if (transformedVector == null) return; callback.accept(passenger, transformedVector.x, transformedVector.y, transformedVector.z); } - protected Vec3d getPassengerPosition(Entity passenger, float partialTicks) { + protected Vector3d getPassengerPosition(Entity passenger, float partialTicks) { UUID id = passenger.getUniqueID(); if (passenger instanceof OrientedContraptionEntity) { BlockPos localPos = contraption.getBearingPosOf(id); @@ -128,8 +128,8 @@ public abstract class AbstractContraptionEntity extends Entity implements IEntit BlockPos seat = contraption.getSeatOf(id); if (seat == null) return null; - Vec3d transformedVector = - toGlobalVector(new Vec3d(seat).add(.5, passenger.getYOffset() + ySize - .15f, .5), partialTicks) + Vector3d transformedVector = + toGlobalVector(Vector3d.of(seat).add(.5, passenger.getYOffset() + ySize - .15f, .5), partialTicks) .add(VecHelper.getCenterOf(BlockPos.ZERO)) .subtract(0.5, ySize, 0.5); return transformedVector; @@ -168,7 +168,7 @@ public abstract class AbstractContraptionEntity extends Entity implements IEntit } if (toDismount != null && !world.isRemote) { - Vec3d transformedVector = getPassengerPosition(toDismount, 1); + Vector3d transformedVector = getPassengerPosition(toDismount, 1); toDismount.stopRiding(); if (transformedVector != null) toDismount.setPositionAndUpdate(transformedVector.x, transformedVector.y, transformedVector.z); @@ -180,8 +180,8 @@ public abstract class AbstractContraptionEntity extends Entity implements IEntit return true; } - public Vec3d toGlobalVector(Vec3d localVec, float partialTicks) { - Vec3d rotationOffset = VecHelper.getCenterOf(BlockPos.ZERO); + public Vector3d toGlobalVector(Vector3d localVec, float partialTicks) { + Vector3d rotationOffset = VecHelper.getCenterOf(BlockPos.ZERO); localVec = localVec.subtract(rotationOffset); localVec = applyRotation(localVec, partialTicks); localVec = localVec.add(rotationOffset) @@ -189,8 +189,8 @@ public abstract class AbstractContraptionEntity extends Entity implements IEntit return localVec; } - public Vec3d toLocalVector(Vec3d globalVec, float partialTicks) { - Vec3d rotationOffset = VecHelper.getCenterOf(BlockPos.ZERO); + public Vector3d toLocalVector(Vector3d globalVec, float partialTicks) { + Vector3d rotationOffset = VecHelper.getCenterOf(BlockPos.ZERO); globalVec = globalVec.subtract(getAnchorVec()) .subtract(rotationOffset); globalVec = reverseRotation(globalVec, partialTicks); @@ -218,9 +218,9 @@ public abstract class AbstractContraptionEntity extends Entity implements IEntit protected abstract void tickContraption(); - public abstract Vec3d applyRotation(Vec3d localPos, float partialTicks); + public abstract Vector3d applyRotation(Vector3d localPos, float partialTicks); - public abstract Vec3d reverseRotation(Vec3d localPos, float partialTicks); + public abstract Vector3d reverseRotation(Vector3d localPos, float partialTicks); public void tickActors() { boolean stalledPreviously = contraption.stalled; @@ -233,7 +233,7 @@ public abstract class AbstractContraptionEntity extends Entity implements IEntit BlockInfo blockInfo = pair.left; MovementBehaviour actor = AllMovementBehaviours.of(blockInfo.state); - Vec3d actorPosition = toGlobalVector(VecHelper.getCenterOf(blockInfo.pos) + Vector3d actorPosition = toGlobalVector(VecHelper.getCenterOf(blockInfo.pos) .add(actor.getActiveAreaOffset(context)), 1); BlockPos gridPosition = new BlockPos(actorPosition); boolean newPosVisited = @@ -242,7 +242,7 @@ public abstract class AbstractContraptionEntity extends Entity implements IEntit context.rotation = v -> applyRotation(v, 1); context.position = actorPosition; - Vec3d oldMotion = context.motion; + Vector3d oldMotion = context.motion; if (!actor.isActive(context)) continue; if (newPosVisited && !context.stall) { @@ -283,13 +283,13 @@ public abstract class AbstractContraptionEntity extends Entity implements IEntit } protected boolean shouldActorTrigger(MovementContext context, BlockInfo blockInfo, MovementBehaviour actor, - Vec3d actorPosition, BlockPos gridPosition) { - Vec3d previousPosition = context.position; + Vector3d actorPosition, BlockPos gridPosition) { + Vector3d previousPosition = context.position; if (previousPosition == null) return false; context.motion = actorPosition.subtract(previousPosition); - Vec3d relativeMotion = context.motion; + Vector3d relativeMotion = context.motion; relativeMotion = reverseRotation(relativeMotion, 1); context.relativeMotion = relativeMotion; return !new BlockPos(previousPosition).equals(gridPosition) @@ -300,7 +300,7 @@ public abstract class AbstractContraptionEntity extends Entity implements IEntit setPosition(getX() + x, getY() + y, getZ() + z); } - public Vec3d getAnchorVec() { + public Vector3d getAnchorVec() { return getPositionVec(); } @@ -316,15 +316,15 @@ public abstract class AbstractContraptionEntity extends Entity implements IEntit AxisAlignedBB cbox = contraption.bounds; if (cbox == null) return; - Vec3d actualVec = getAnchorVec(); + Vector3d actualVec = getAnchorVec(); setBoundingBox(cbox.offset(actualVec)); } - public static float yawFromVector(Vec3d vec) { + public static float yawFromVector(Vector3d vec) { return (float) ((3 * Math.PI / 2 + Math.atan2(vec.z, vec.x)) / Math.PI * 180); } - public static float pitchFromVector(Vec3d vec) { + public static float pitchFromVector(Vector3d vec) { return (float) ((Math.acos(vec.y)) / Math.PI * 180); } @@ -398,11 +398,11 @@ public abstract class AbstractContraptionEntity extends Entity implements IEntit removePassengers(); for (Entity entity : collidingEntities) { - Vec3d positionVec = getPositionVec(); - Vec3d localVec = entity.getPositionVec() + Vector3d positionVec = getPositionVec(); + Vector3d localVec = entity.getPositionVec() .subtract(positionVec); localVec = reverseRotation(localVec, 1); - Vec3d transformed = transform.apply(localVec); + Vector3d transformed = transform.apply(localVec); entity.setPositionAndUpdate(transformed.x, transformed.y, transformed.z); } } @@ -456,7 +456,7 @@ public abstract class AbstractContraptionEntity extends Entity implements IEntit @Override @SuppressWarnings("deprecation") public CompoundNBT writeWithoutTypeId(CompoundNBT nbt) { - Vec3d vec = getPositionVec(); + Vector3d vec = getPositionVec(); List passengers = getPassengers(); for (Entity entity : passengers) { @@ -464,7 +464,7 @@ public abstract class AbstractContraptionEntity extends Entity implements IEntit entity.removed = true; // Gather passengers into same chunk when saving - Vec3d prevVec = entity.getPositionVec(); + Vector3d prevVec = entity.getPositionVec(); entity.setPos(vec.x, prevVec.y, vec.z); // Super requires all passengers to not be removed in order to write them to the @@ -478,14 +478,14 @@ public abstract class AbstractContraptionEntity extends Entity implements IEntit @Override // Make sure nothing can move contraptions out of the way - public void setMotion(Vec3d motionIn) {} + public void setMotion(Vector3d motionIn) {} @Override public PushReaction getPushReaction() { return PushReaction.IGNORE; } - public void setContraptionMotion(Vec3d vec) { + public void setContraptionMotion(Vector3d vec) { super.setMotion(vec); } @@ -499,16 +499,16 @@ public abstract class AbstractContraptionEntity extends Entity implements IEntit return false; } - public Vec3d getPrevPositionVec() { - return prevPosInvalid ? getPositionVec() : new Vec3d(prevPosX, prevPosY, prevPosZ); + public Vector3d getPrevPositionVec() { + return prevPosInvalid ? getPositionVec() : new Vector3d(prevPosX, prevPosY, prevPosZ); } public abstract ContraptionRotationState getRotationState(); - public Vec3d getContactPointMotion(Vec3d globalContactPoint) { + public Vector3d getContactPointMotion(Vector3d globalContactPoint) { if (prevPosInvalid) - return Vec3d.ZERO; - Vec3d contactPoint = toGlobalVector(toLocalVector(globalContactPoint, 0), 1); + return Vector3d.ZERO; + Vector3d contactPoint = toGlobalVector(toLocalVector(globalContactPoint, 0), 1); return contactPoint.subtract(globalContactPoint) .add(getPositionVec().subtract(getPrevPositionVec())); } @@ -526,7 +526,7 @@ public abstract class AbstractContraptionEntity extends Entity implements IEntit return false; if (e instanceof SeatEntity) return false; - if (e instanceof IProjectile) + if (e instanceof ProjectileEntity) return false; if (e.getRidingEntity() != null) return false; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/AbstractContraptionEntityRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/AbstractContraptionEntityRenderer.java index 54438be96..9a7bdc65e 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/AbstractContraptionEntityRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/AbstractContraptionEntityRenderer.java @@ -4,7 +4,7 @@ import com.mojang.blaze3d.matrix.MatrixStack; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.IRenderTypeBuffer; -import net.minecraft.client.renderer.culling.ClippingHelperImpl; +import net.minecraft.client.renderer.culling.ClippingHelper; import net.minecraft.client.renderer.entity.EntityRenderer; import net.minecraft.client.renderer.entity.EntityRendererManager; import net.minecraft.util.ResourceLocation; @@ -24,7 +24,7 @@ public abstract class AbstractContraptionEntityRenderer stabilizedSubContraptions - .put(NBTUtil.readUniqueId(c.getCompound("Id")), BlockFace.fromNBT(c.getCompound("Location")))); + .put(c.getUniqueId("Id"), BlockFace.fromNBT(c.getCompound("Location")))); storage.clear(); NBTHelper.iterateCompoundList(nbt.getList("Storage", NBT.TAG_COMPOUND), c -> storage diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ControlledContraptionEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ControlledContraptionEntity.java index e3cf6aab1..1f7c9fbed 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ControlledContraptionEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ControlledContraptionEntity.java @@ -14,7 +14,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Direction; import net.minecraft.util.Direction.Axis; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; +import net.minecraft.util.math.vector.Vector3d; import net.minecraft.world.World; import net.minecraft.world.gen.feature.template.Template.BlockInfo; import net.minecraftforge.api.distmarker.Dist; @@ -90,13 +90,13 @@ public class ControlledContraptionEntity extends AbstractContraptionEntity { } @Override - public Vec3d applyRotation(Vec3d localPos, float partialTicks) { + public Vector3d applyRotation(Vector3d localPos, float partialTicks) { localPos = VecHelper.rotate(localPos, getAngle(partialTicks), rotationAxis); return localPos; } @Override - public Vec3d reverseRotation(Vec3d localPos, float partialTicks) { + public Vector3d reverseRotation(Vector3d localPos, float partialTicks) { localPos = VecHelper.rotate(localPos, -getAngle(partialTicks), rotationAxis); return localPos; } @@ -143,9 +143,9 @@ public class ControlledContraptionEntity extends AbstractContraptionEntity { setPosition(getX(), getY(), getZ()); } - Vec3d motion = getMotion(); + Vector3d motion = getMotion(); if (motion.length() < 1 / 4098f) - setMotion(Vec3d.ZERO); + setMotion(Vector3d.ZERO); move(motion.x, motion.y, motion.z); if (ContraptionCollider.collideBlocks(this)) getController().collided(); @@ -153,7 +153,7 @@ public class ControlledContraptionEntity extends AbstractContraptionEntity { @Override protected boolean shouldActorTrigger(MovementContext context, BlockInfo blockInfo, MovementBehaviour actor, - Vec3d actorPosition, BlockPos gridPosition) { + Vector3d actorPosition, BlockPos gridPosition) { if (super.shouldActorTrigger(context, blockInfo, actor, actorPosition, gridPosition)) return true; @@ -162,13 +162,13 @@ public class ControlledContraptionEntity extends AbstractContraptionEntity { return false; BearingContraption bc = (BearingContraption) contraption; Direction facing = bc.getFacing(); - Vec3d activeAreaOffset = actor.getActiveAreaOffset(context); - if (!activeAreaOffset.mul(VecHelper.axisAlingedPlaneOf(new Vec3d(facing.getDirectionVec()))) - .equals(Vec3d.ZERO)) + Vector3d activeAreaOffset = actor.getActiveAreaOffset(context); + if (!activeAreaOffset.mul(VecHelper.axisAlingedPlaneOf(Vector3d.of(facing.getDirectionVec()))) + .equals(Vector3d.ZERO)) return false; if (!VecHelper.onSameAxis(blockInfo.pos, BlockPos.ZERO, facing.getAxis())) return false; - context.motion = new Vec3d(facing.getDirectionVec()).scale(angle - prevAngle); + context.motion = Vector3d.of(facing.getDirectionVec()).scale(angle - prevAngle); context.relativeMotion = context.motion; int timer = context.data.getInt("StationaryTimer"); if (timer > 0) { diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/OrientedContraptionEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/OrientedContraptionEntity.java index fc1c04a42..2dc1fce97 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/OrientedContraptionEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/OrientedContraptionEntity.java @@ -39,7 +39,7 @@ import net.minecraft.util.Direction; import net.minecraft.util.Direction.Axis; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.MathHelper; -import net.minecraft.util.math.Vec3d; +import net.minecraft.util.math.vector.Vector3d; import net.minecraft.world.World; import net.minecraftforge.common.util.LazyOptional; @@ -57,7 +57,7 @@ public class OrientedContraptionEntity extends AbstractContraptionEntity { private static final DataParameter> INITIAL_ORIENTATION = EntityDataManager.createKey(OrientedContraptionEntity.class, CreateDataSerializers.OPTIONAL_DIRECTION); - protected Vec3d motionBeforeStall; + protected Vector3d motionBeforeStall; protected boolean forceAngle; private boolean isSerializingFurnaceCart; private boolean attachedExtraInventories; @@ -75,7 +75,7 @@ public class OrientedContraptionEntity extends AbstractContraptionEntity { public OrientedContraptionEntity(EntityType type, World world) { super(type, world); - motionBeforeStall = Vec3d.ZERO; + motionBeforeStall = Vector3d.ZERO; attachedExtraInventories = false; isSerializingFurnaceCart = false; initialYawOffset = -1; @@ -156,10 +156,10 @@ public class OrientedContraptionEntity extends AbstractContraptionEntity { ListNBT vecNBT = compound.getList("CachedMotion", 6); if (!vecNBT.isEmpty()) { - motionBeforeStall = new Vec3d(vecNBT.getDouble(0), vecNBT.getDouble(1), vecNBT.getDouble(2)); - if (!motionBeforeStall.equals(Vec3d.ZERO)) + motionBeforeStall = new Vector3d(vecNBT.getDouble(0), vecNBT.getDouble(1), vecNBT.getDouble(2)); + if (!motionBeforeStall.equals(Vector3d.ZERO)) targetYaw = prevYaw = yaw += yawFromVector(motionBeforeStall); - setMotion(Vec3d.ZERO); + setMotion(Vector3d.ZERO); } yaw = compound.getFloat("Yaw"); @@ -189,7 +189,7 @@ public class OrientedContraptionEntity extends AbstractContraptionEntity { compound.putFloat("Pitch", pitch); if (getCouplingId() != null) - compound.put("OnCoupling", NBTUtil.writeUniqueId(getCouplingId())); + compound.putUniqueId("OnCoupling", getCouplingId()); } @Override @@ -210,7 +210,7 @@ public class OrientedContraptionEntity extends AbstractContraptionEntity { } @Override - public Vec3d applyRotation(Vec3d localPos, float partialTicks) { + public Vector3d applyRotation(Vector3d localPos, float partialTicks) { localPos = VecHelper.rotate(localPos, getInitialYaw(), Axis.Y); localPos = VecHelper.rotate(localPos, getPitch(partialTicks), Axis.Z); localPos = VecHelper.rotate(localPos, getYaw(partialTicks), Axis.Y); @@ -218,7 +218,7 @@ public class OrientedContraptionEntity extends AbstractContraptionEntity { } @Override - public Vec3d reverseRotation(Vec3d localPos, float partialTicks) { + public Vector3d reverseRotation(Vector3d localPos, float partialTicks) { localPos = VecHelper.rotate(localPos, -getYaw(partialTicks), Axis.Y); localPos = VecHelper.rotate(localPos, -getPitch(partialTicks), Axis.Z); localPos = VecHelper.rotate(localPos, -getInitialYaw(), Axis.Y); @@ -280,7 +280,7 @@ public class OrientedContraptionEntity extends AbstractContraptionEntity { } if (wasStalled && !isStalled) { riding.setMotion(motionBeforeStall); - motionBeforeStall = Vec3d.ZERO; + motionBeforeStall = Vector3d.ZERO; } } @@ -306,10 +306,10 @@ public class OrientedContraptionEntity extends AbstractContraptionEntity { if (coupledCarts == null) return false; - Vec3d positionVec = coupledCarts.getFirst() + Vector3d positionVec = coupledCarts.getFirst() .cart() .getPositionVec(); - Vec3d coupledVec = coupledCarts.getSecond() + Vector3d coupledVec = coupledCarts.getSecond() .cart() .getPositionVec(); @@ -347,11 +347,11 @@ public class OrientedContraptionEntity extends AbstractContraptionEntity { return false; boolean rotating = false; - Vec3d movementVector = riding.getMotion(); + Vector3d movementVector = riding.getMotion(); if (!(riding instanceof AbstractMinecartEntity)) movementVector = getPositionVec().subtract(prevPosX, prevPosY, prevPosZ); - Vec3d motion = movementVector.normalize(); + Vector3d motion = movementVector.normalize(); if (!dataManager.get(INITIAL_ORIENTATION) .isPresent() && !world.isRemote) { @@ -470,8 +470,8 @@ public class OrientedContraptionEntity extends AbstractContraptionEntity { } @Override - public Vec3d getAnchorVec() { - return new Vec3d(getX() - .5, getY(), getZ() - .5); + public Vector3d getAnchorVec() { + return new Vector3d(getX() - .5, getY(), getZ() - .5); } @Override diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/OrientedContraptionEntityRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/OrientedContraptionEntityRenderer.java index 78604cfb8..667e6ce00 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/OrientedContraptionEntityRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/OrientedContraptionEntityRenderer.java @@ -3,12 +3,12 @@ package com.simibubi.create.content.contraptions.components.structureMovement; import com.mojang.blaze3d.matrix.MatrixStack; import com.simibubi.create.foundation.utility.MatrixStacker; -import net.minecraft.client.renderer.culling.ClippingHelperImpl; +import net.minecraft.client.renderer.culling.ClippingHelper; import net.minecraft.client.renderer.entity.EntityRendererManager; import net.minecraft.entity.Entity; import net.minecraft.entity.item.minecart.AbstractMinecartEntity; import net.minecraft.util.math.MathHelper; -import net.minecraft.util.math.Vec3d; +import net.minecraft.util.math.vector.Vector3d; public class OrientedContraptionEntityRenderer extends AbstractContraptionEntityRenderer { @@ -17,7 +17,7 @@ public class OrientedContraptionEntityRenderer extends AbstractContraptionEntity } @Override - public boolean shouldRender(OrientedContraptionEntity entity, ClippingHelperImpl p_225626_2_, double p_225626_3_, + public boolean shouldRender(OrientedContraptionEntity entity, ClippingHelper p_225626_2_, double p_225626_3_, double p_225626_5_, double p_225626_7_) { if (!super.shouldRender(entity, p_225626_2_, p_225626_3_, p_225626_5_, p_225626_7_)) return false; @@ -26,7 +26,7 @@ public class OrientedContraptionEntityRenderer extends AbstractContraptionEntity return false; return true; } - + @Override protected void transform(OrientedContraptionEntity entity, float partialTicks, MatrixStack[] matrixStacks) { float angleInitialYaw = entity.getInitialYaw(); @@ -59,7 +59,7 @@ public class OrientedContraptionEntityRenderer extends AbstractContraptionEntity private void repositionOnContraption(OrientedContraptionEntity entity, float partialTicks, MatrixStack[] matrixStacks, Entity ridingEntity) { AbstractContraptionEntity parent = (AbstractContraptionEntity) ridingEntity; - Vec3d passengerPosition = parent.getPassengerPosition(entity, partialTicks); + Vector3d passengerPosition = parent.getPassengerPosition(entity, partialTicks); double x = passengerPosition.x - MathHelper.lerp(partialTicks, entity.lastTickPosX, entity.getX()); double y = passengerPosition.y - MathHelper.lerp(partialTicks, entity.lastTickPosY, entity.getY()); double z = passengerPosition.z - MathHelper.lerp(partialTicks, entity.lastTickPosZ, entity.getZ()); @@ -74,11 +74,11 @@ public class OrientedContraptionEntityRenderer extends AbstractContraptionEntity double cartX = MathHelper.lerp(partialTicks, cart.lastTickPosX, cart.getX()); double cartY = MathHelper.lerp(partialTicks, cart.lastTickPosY, cart.getY()); double cartZ = MathHelper.lerp(partialTicks, cart.lastTickPosZ, cart.getZ()); - Vec3d cartPos = cart.getPos(cartX, cartY, cartZ); + Vector3d cartPos = cart.getPos(cartX, cartY, cartZ); if (cartPos != null) { - Vec3d cartPosFront = cart.getPosOffset(cartX, cartY, cartZ, (double) 0.3F); - Vec3d cartPosBack = cart.getPosOffset(cartX, cartY, cartZ, (double) -0.3F); + Vector3d cartPosFront = cart.getPosOffset(cartX, cartY, cartZ, (double) 0.3F); + Vector3d cartPosBack = cart.getPosOffset(cartX, cartY, cartZ, (double) -0.3F); if (cartPosFront == null) cartPosFront = cartPos; if (cartPosBack == null)