diff --git a/common/mekanism/client/render/tileentity/RenderLogisticalTransporter.java b/common/mekanism/client/render/tileentity/RenderLogisticalTransporter.java index 181af6528..4326a2c57 100644 --- a/common/mekanism/client/render/tileentity/RenderLogisticalTransporter.java +++ b/common/mekanism/client/render/tileentity/RenderLogisticalTransporter.java @@ -35,7 +35,7 @@ public class RenderLogisticalTransporter extends TileEntitySpecialRenderer public void renderAModelAt(TileEntityLogisticalTransporter tileEntity, double x, double y, double z, float partialTick) { - bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "LogisticalTransporter" + (tileEntity.isActive ? "Active" : "") + ".png")); + bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "LogisticalTransporter.png")); GL11.glPushMatrix(); GL11.glTranslatef((float)x + 0.5F, (float)y + 1.5F, (float)z + 0.5F); GL11.glScalef(1.0F, -1F, -1F); diff --git a/common/mekanism/common/TransporterPathfinder.java b/common/mekanism/common/TransporterPathfinder.java index 2a99fcb05..f0a8cf992 100644 --- a/common/mekanism/common/TransporterPathfinder.java +++ b/common/mekanism/common/TransporterPathfinder.java @@ -294,7 +294,7 @@ public final class TransporterPathfinder return p.getPath(); } - public static List getIdlePath(TileEntityLogisticalTransporter start, Object3D home, Object3D prevHome) + public static List getIdlePath(TileEntityLogisticalTransporter start) { IdleDest d = new IdleDest(start.worldObj, start); Object3D farthest = d.find(); @@ -304,7 +304,7 @@ public final class TransporterPathfinder return null; } - Path p = new Path(start.worldObj, prevHome, Object3D.get(start), null); + Path p = new Path(start.worldObj, farthest, Object3D.get(start), null); return p.getPath(); } } diff --git a/common/mekanism/common/TransporterStack.java b/common/mekanism/common/TransporterStack.java index ffe0fa459..576cd6891 100644 --- a/common/mekanism/common/TransporterStack.java +++ b/common/mekanism/common/TransporterStack.java @@ -28,6 +28,8 @@ public class TransporterStack public boolean noTarget = false; + public boolean clientFirstTick = true; + public void write(TileEntityLogisticalTransporter tileEntity, ArrayList data) { data.add(progress); @@ -72,7 +74,7 @@ public class TransporterStack itemStack.writeToNBT(nbtTags); } - public void read(NBTTagCompound nbtTags) + public void readFromNBT(NBTTagCompound nbtTags) { progress = nbtTags.getInteger("progress"); originalLocation = Object3D.read(nbtTags); @@ -80,6 +82,14 @@ public class TransporterStack itemStack = ItemStack.loadItemStackFromNBT(nbtTags); } + public static TransporterStack read(NBTTagCompound nbtTags) + { + TransporterStack stack = new TransporterStack(); + stack.readFromNBT(nbtTags); + + return stack; + } + public boolean hasPath() { return pathToTarget != null; @@ -104,7 +114,7 @@ public class TransporterStack public void calculateIdle(TileEntityLogisticalTransporter tileEntity) { - pathToTarget = TransporterPathfinder.getIdlePath(tileEntity, originalLocation, pathToTarget.get(pathToTarget.size()-1)); + pathToTarget = TransporterPathfinder.getIdlePath(tileEntity); noTarget = true; originalLocation = Object3D.get(tileEntity); initiatedPath = true; diff --git a/common/mekanism/common/item/ItemConfigurator.java b/common/mekanism/common/item/ItemConfigurator.java index ad4c4eeee..cfb0c7ee9 100644 --- a/common/mekanism/common/item/ItemConfigurator.java +++ b/common/mekanism/common/item/ItemConfigurator.java @@ -59,13 +59,6 @@ public class ItemConfigurator extends ItemEnergized PacketHandler.sendPacket(Transmission.ALL_CLIENTS, new PacketTileEntity().setParams(Object3D.get(tileEntity), tileEntity.getNetworkedData(new ArrayList()))); return true; } - else if(world.getBlockTileEntity(x, y, z) instanceof TileEntityLogisticalTransporter) - { - TileEntityLogisticalTransporter tileEntity = (TileEntityLogisticalTransporter)world.getBlockTileEntity(x, y, z); - tileEntity.isActive = !tileEntity.isActive; - PacketHandler.sendPacket(Transmission.ALL_CLIENTS, new PacketTileEntity().setParams(Object3D.get(tileEntity), tileEntity.getNetworkedData(new ArrayList()))); - return true; - } else if(world.getBlockTileEntity(x, y, z) instanceof TileEntityElectricPump) { TileEntityElectricPump tileEntity = (TileEntityElectricPump)world.getBlockTileEntity(x, y, z); diff --git a/common/mekanism/common/tileentity/TileEntityLogisticalTransporter.java b/common/mekanism/common/tileentity/TileEntityLogisticalTransporter.java index 586ca51df..9fd838d56 100644 --- a/common/mekanism/common/tileentity/TileEntityLogisticalTransporter.java +++ b/common/mekanism/common/tileentity/TileEntityLogisticalTransporter.java @@ -18,6 +18,7 @@ import mekanism.common.util.TransporterUtils; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.ForgeDirection; @@ -29,16 +30,27 @@ import cpw.mods.fml.relauncher.SideOnly; public class TileEntityLogisticalTransporter extends TileEntityTransmitter implements ITileNetwork { - /** This transporter's active state. */ - public boolean isActive = false; - public Set transit = new HashSet(); + public boolean needsSync = false; + @Override public void updateEntity() { - if(!worldObj.isRemote) + if(worldObj.isRemote) { + for(TransporterStack stack : transit) + { + if(stack.clientFirstTick) + { + stack.clientFirstTick = false; + } + else { + stack.progress++; + } + } + } + else { Set remove = new HashSet(); for(TransporterStack stack : transit) @@ -66,6 +78,7 @@ public class TileEntityLogisticalTransporter extends TileEntityTransmitter