From dae86c39e9957a9378a6291e35078fc1e6ef72d9 Mon Sep 17 00:00:00 2001 From: Aidan Brady Date: Sat, 3 Aug 2013 04:04:42 -0400 Subject: [PATCH] Smooth enough for now. Signing off, will do more work tomorrow. --- .../contractor/TileEntityEMContractor.java | 47 +++++++++++++------ 1 file changed, 32 insertions(+), 15 deletions(-) diff --git a/src/resonantinduction/contractor/TileEntityEMContractor.java b/src/resonantinduction/contractor/TileEntityEMContractor.java index b6ed0c26..5068e378 100644 --- a/src/resonantinduction/contractor/TileEntityEMContractor.java +++ b/src/resonantinduction/contractor/TileEntityEMContractor.java @@ -1,6 +1,5 @@ package resonantinduction.contractor; -import java.util.ArrayList; import java.util.List; import net.minecraft.entity.Entity; @@ -13,8 +12,8 @@ import net.minecraftforge.common.ForgeDirection; public class TileEntityEMContractor extends TileEntity { public static int MAX_REACH = 40; - public static double MAX_SPEED = .4; - public static double ACCELERATION = .05; + public static double MAX_SPEED = .1; + public static double ACCELERATION = .01; private ForgeDirection facing = ForgeDirection.UP; @@ -41,62 +40,80 @@ public class TileEntityEMContractor extends TileEntity switch(facing) { case DOWN: - entityItem.setPosition(xCoord+0.5, entityItem.posY, zCoord+0.5); + if(!worldObj.isRemote) + { + entityItem.setPosition(xCoord+0.5, entityItem.posY, zCoord+0.5); + } entityItem.motionX = 0; entityItem.motionZ = 0; - + entityItem.motionY = Math.max(-MAX_SPEED, entityItem.motionY-ACCELERATION); entityItem.isAirBorne = true; break; case UP: - entityItem.setPosition(xCoord+0.5, entityItem.posY, zCoord+0.5); + if(!worldObj.isRemote) + { + entityItem.setPosition(xCoord+0.5, entityItem.posY, zCoord+0.5); + } entityItem.motionX = 0; entityItem.motionZ = 0; - entityItem.motionY = Math.min(MAX_SPEED, entityItem.motionY+ACCELERATION); + entityItem.motionY = Math.min((MAX_SPEED*4), entityItem.motionY+(ACCELERATION*5)); entityItem.isAirBorne = true; break; case NORTH: - entityItem.setPosition(entityItem.posX, yCoord+0.5, zCoord+0.5); + if(!worldObj.isRemote) + { + entityItem.setPosition(entityItem.posX, yCoord+0.5, zCoord+0.5); + } entityItem.motionY = 0; entityItem.motionZ = 0; - entityItem.motionX = Math.min(MAX_SPEED, entityItem.motionZ+ACCELERATION); + entityItem.motionX = Math.min(MAX_SPEED, entityItem.motionX+ACCELERATION); entityItem.isAirBorne = true; break; case SOUTH: - entityItem.setPosition(entityItem.posX, yCoord+0.5, zCoord+0.5); + if(!worldObj.isRemote) + { + entityItem.setPosition(entityItem.posX, yCoord+0.5, zCoord+0.5); + } entityItem.motionY = 0; entityItem.motionZ = 0; - entityItem.motionX = Math.max(-MAX_SPEED, entityItem.motionZ-ACCELERATION); + entityItem.motionX = Math.max(-MAX_SPEED, entityItem.motionX-ACCELERATION); entityItem.isAirBorne = true; break; case WEST: - entityItem.setPosition(xCoord+0.5, yCoord+0.5, entityItem.posZ); + if(!worldObj.isRemote) + { + entityItem.setPosition(xCoord+0.5, yCoord+0.5, entityItem.posZ); + } entityItem.motionX = 0; entityItem.motionY = 0; - entityItem.motionZ = Math.min(MAX_SPEED, entityItem.motionX+ACCELERATION); + entityItem.motionZ = Math.min(MAX_SPEED, entityItem.motionZ+ACCELERATION); entityItem.isAirBorne = true; break; case EAST: - entityItem.setPosition(xCoord+0.5, yCoord+0.5, entityItem.posZ); + if(!worldObj.isRemote) + { + entityItem.setPosition(xCoord+0.5, yCoord+0.5, entityItem.posZ); + } entityItem.motionX = 0; entityItem.motionY = 0; - entityItem.motionZ = Math.max(-MAX_SPEED, entityItem.motionX-ACCELERATION); + entityItem.motionZ = Math.max(-MAX_SPEED, entityItem.motionZ-ACCELERATION); entityItem.isAirBorne = true; break;