diff --git a/resources/assemblyline/textures/injector.png b/resources/assemblyline/textures/manipulator1.png similarity index 100% rename from resources/assemblyline/textures/injector.png rename to resources/assemblyline/textures/manipulator1.png diff --git a/resources/assemblyline/textures/manipulator2.png b/resources/assemblyline/textures/manipulator2.png new file mode 100644 index 00000000..f14fe55e Binary files /dev/null and b/resources/assemblyline/textures/manipulator2.png differ diff --git a/resources/assemblyline/textures/ejector.png b/resources/assemblyline/textures/sorter.png similarity index 100% rename from resources/assemblyline/textures/ejector.png rename to resources/assemblyline/textures/sorter.png diff --git a/src/common/assemblyline/AssemblyLine.java b/src/common/assemblyline/AssemblyLine.java index a24e8877..3c8a1d5f 100644 --- a/src/common/assemblyline/AssemblyLine.java +++ b/src/common/assemblyline/AssemblyLine.java @@ -12,11 +12,11 @@ import universalelectricity.core.UEConfig; import universalelectricity.prefab.network.PacketManager; import assemblyline.belts.BlockConveyorBelt; import assemblyline.belts.TileEntityConveyorBelt; -import assemblyline.machines.BlockInteraction; -import assemblyline.machines.ItemBlockInteraction; +import assemblyline.machines.BlockMulti; +import assemblyline.machines.BlockMulti.MachineType; +import assemblyline.machines.ItemBlockMulti; import assemblyline.machines.TileEntityManipulator; import assemblyline.machines.TileEntitySorter; -import assemblyline.machines.BlockInteraction.MachineType; import cpw.mods.fml.common.Loader; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.Init; @@ -52,7 +52,7 @@ public class AssemblyLine public static final int BLOCK_ID_PREFIX = 3003; public static final Block blockConveyorBelt = new BlockConveyorBelt(UEConfig.getBlockConfigID(CONFIGURATION, "Conveyor Belt", BLOCK_ID_PREFIX)); - public static final Block blockInteraction = new BlockInteraction(UEConfig.getBlockConfigID(CONFIGURATION, "Machine", BLOCK_ID_PREFIX+1)); + public static final Block blockInteraction = new BlockMulti(UEConfig.getBlockConfigID(CONFIGURATION, "Machine", BLOCK_ID_PREFIX+1)); @PreInit public void preInit(FMLPreInitializationEvent event) @@ -60,7 +60,7 @@ public class AssemblyLine instance = this; NetworkRegistry.instance().registerGuiHandler(this, this.proxy); GameRegistry.registerBlock(blockConveyorBelt); - GameRegistry.registerBlock(blockInteraction, ItemBlockInteraction.class); + GameRegistry.registerBlock(blockInteraction, ItemBlockMulti.class); proxy.preInit(); } diff --git a/src/common/assemblyline/belts/BlockConveyorBelt.java b/src/common/assemblyline/belts/BlockConveyorBelt.java index 884ab6d3..663fda0f 100644 --- a/src/common/assemblyline/belts/BlockConveyorBelt.java +++ b/src/common/assemblyline/belts/BlockConveyorBelt.java @@ -3,7 +3,6 @@ package assemblyline.belts; import net.minecraft.src.CreativeTabs; import net.minecraft.src.EntityLiving; import net.minecraft.src.EntityPlayer; -import net.minecraft.src.Material; import net.minecraft.src.MathHelper; import net.minecraft.src.TileEntity; import net.minecraft.src.World; @@ -23,11 +22,20 @@ public class BlockConveyorBelt extends BlockMachine this.setBlockBounds(0, 0, 0, 1, 0.3f, 1); this.setCreativeTab(CreativeTabs.tabTransport); } + @Override public void onBlockPlacedBy(World par1World, int x, int y, int z, EntityLiving par5EntityLiving) { int angle = MathHelper.floor_double((par5EntityLiving.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3; - par1World.setBlockAndMetadataWithNotify(x, y, z, this.blockID, angle); + par1World.setBlockMetadataWithNotify(x, y, z, angle); + /* + switch (angle) + { + case 0: par1World.setBlockMetadataWithNotify(x, y, z, 0); break; + case 1: par1World.setBlockMetadataWithNotify(x, y, z, 3); break; + case 2: par1World.setBlockMetadataWithNotify(x, y, z, 1); break; + case 3: par1World.setBlockMetadataWithNotify(x, y, z, 2); break; + } */ } @Override @@ -37,7 +45,7 @@ public class BlockConveyorBelt extends BlockMachine if (metadata >= 0 && metadata < 4) { - if (metadata == 3) + if (metadata >= 3) { par1World.setBlockAndMetadataWithNotify(x, y, z, this.blockID, 0); return true; diff --git a/src/common/assemblyline/belts/TileEntityConveyorBelt.java b/src/common/assemblyline/belts/TileEntityConveyorBelt.java index 7e7d1f2a..4d7f6281 100644 --- a/src/common/assemblyline/belts/TileEntityConveyorBelt.java +++ b/src/common/assemblyline/belts/TileEntityConveyorBelt.java @@ -8,7 +8,6 @@ import net.minecraft.src.Entity; import net.minecraft.src.EntityItem; import net.minecraft.src.EntityPlayer; import net.minecraft.src.INetworkManager; -import net.minecraft.src.NBTTagCompound; import net.minecraft.src.Packet; import net.minecraft.src.Packet250CustomPayload; import net.minecraft.src.TileEntity; diff --git a/src/common/assemblyline/machines/BlockInteraction.java b/src/common/assemblyline/machines/BlockMulti.java similarity index 70% rename from src/common/assemblyline/machines/BlockInteraction.java rename to src/common/assemblyline/machines/BlockMulti.java index de509d11..14225083 100644 --- a/src/common/assemblyline/machines/BlockInteraction.java +++ b/src/common/assemblyline/machines/BlockMulti.java @@ -1,12 +1,19 @@ package assemblyline.machines; +import java.util.List; + +import cpw.mods.fml.common.network.PacketDispatcher; + import net.minecraft.src.AxisAlignedBB; import net.minecraft.src.CreativeTabs; +import net.minecraft.src.EntityLiving; import net.minecraft.src.EntityPlayer; +import net.minecraft.src.ItemStack; import net.minecraft.src.Material; +import net.minecraft.src.MathHelper; import net.minecraft.src.TileEntity; import net.minecraft.src.World; -import net.minecraftforge.common.ForgeDirection; +import universalelectricity.implement.IRedstoneReceptor; import universalelectricity.prefab.BlockMachine; import assemblyline.AssemblyLine; import assemblyline.render.RenderHelper; @@ -18,7 +25,7 @@ import assemblyline.render.RenderHelper; * @author Darkguardsman, Calclavia * */ -public class BlockInteraction extends BlockMachine +public class BlockMulti extends BlockMachine { public static enum MachineType { @@ -91,17 +98,19 @@ public class BlockInteraction extends BlockMachine } } - public BlockInteraction(int id) + public BlockMulti(int id) { super("Interaction Machine", id, Material.iron); this.setCreativeTab(CreativeTabs.tabTransport); } + @Override public int damageDropped(int metadata) { return MachineType.get(metadata).metadata; } + @Override public boolean onMachineActivated(World par1World, int x, int y, int z, EntityPlayer par5EntityPlayer) { if (!par1World.isRemote) @@ -113,6 +122,30 @@ public class BlockInteraction extends BlockMachine return true; } + @Override + public void onBlockPlacedBy(World par1World, int x, int y, int z, EntityLiving par5EntityLiving) + { + int metadata = par1World.getBlockMetadata(x, y, z); + + int angle = MathHelper.floor_double((par5EntityLiving.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3; + + switch (angle) + { + case 0: + par1World.setBlockMetadataWithNotify(x, y, z, metadata + 0); + break; + case 1: + par1World.setBlockMetadataWithNotify(x, y, z, metadata + 3); + break; + case 2: + par1World.setBlockMetadataWithNotify(x, y, z, metadata + 1); + break; + case 3: + par1World.setBlockMetadataWithNotify(x, y, z, metadata + 2); + break; + } + } + @Override public boolean onUseWrench(World par1World, int x, int y, int z, EntityPlayer par5EntityPlayer) { @@ -129,9 +162,15 @@ public class BlockInteraction extends BlockMachine if (MachineType.get(metadata) == MachineType.MANIPULATOR) { - ((TileEntityManipulator) par1World.getBlockTileEntity(x, y, z)).isWrenchedToOutput = !((TileEntityManipulator) par1World.getBlockTileEntity(x, y, z)).isWrenchedToOutput; + TileEntityManipulator tileEntity = (TileEntityManipulator)par1World.getBlockTileEntity(x, y, z); + tileEntity.isOutput = !tileEntity.isOutput; + if (!par1World.isRemote) - par5EntityPlayer.addChatMessage("Manipulator Output: " + ((TileEntityManipulator) par1World.getBlockTileEntity(x, y, z)).isWrenchedToOutput); + { + par5EntityPlayer.addChatMessage("Manipulator Output: " + tileEntity.isOutput); + + PacketDispatcher.sendPacketToAllPlayers(tileEntity.getDescriptionPacket()); + } return true; } else @@ -140,6 +179,22 @@ public class BlockInteraction extends BlockMachine } } + @Override + public void onNeighborBlockChange(World par1World, int x, int y, int z, int side) + { + super.onNeighborBlockChange(par1World, x, y, z, side); + + TileEntity tileEntity = par1World.getBlockTileEntity(x, y, z); + + if (tileEntity instanceof IRedstoneReceptor) + { + if (par1World.isBlockIndirectlyGettingPowered(x, y, z)) + { + ((IRedstoneReceptor) par1World.getBlockTileEntity(x, y, z)).onPowerOn(); + } + } + } + /** * Returns the bounding box of the wired * rectangular prism to render. @@ -189,4 +244,16 @@ public class BlockInteraction extends BlockMachine { return false; } + + @Override + public void getSubBlocks(int par1, CreativeTabs par2CreativeTabs, List par3List) + { + for (MachineType type : MachineType.values()) + { + if (type.tileEntity != null) + { + par3List.add(new ItemStack(par1, 1, type.metadata)); + } + } + } } diff --git a/src/common/assemblyline/machines/ItemBlockInteraction.java b/src/common/assemblyline/machines/ItemBlockInteraction.java deleted file mode 100644 index 8b474ebf..00000000 --- a/src/common/assemblyline/machines/ItemBlockInteraction.java +++ /dev/null @@ -1,58 +0,0 @@ -package assemblyline.machines; - -import java.util.List; - -import net.minecraft.src.Block; -import net.minecraft.src.CreativeTabs; -import net.minecraft.src.EntityPlayer; -import net.minecraft.src.ItemBlock; -import net.minecraft.src.ItemStack; -import net.minecraft.src.MathHelper; -import net.minecraft.src.World; -import assemblyline.AssemblyLine; -import assemblyline.machines.BlockInteraction.MachineType; - -public class ItemBlockInteraction extends ItemBlock -{ - public ItemBlockInteraction(int par1) - { - super(par1); - this.setHasSubtypes(true); - this.setCreativeTab(CreativeTabs.tabRedstone); - } - - public void getSubItems(int par1, CreativeTabs par2CreativeTabs, List par3List) - { - for (MachineType machine : MachineType.values()) - { - par3List.add(new ItemStack(AssemblyLine.blockInteraction, 1, machine.metadata)); - } - } - - public String getItemNameIS(ItemStack itemstack) - { - return MachineType.get(itemstack.getItemDamage()).name; - } - - @Override - public int getBlockID() - { - return AssemblyLine.blockInteraction.blockID; - } - - @Override - public boolean placeBlockAt(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ) - { - int angle = MathHelper.floor_double((player.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3; - if (!world.setBlockAndMetadataWithNotify(x, y, z, this.getBlockID(), stack.getItemDamage() + angle)) { return false; } - - if (world.getBlockId(x, y, z) == this.getBlockID()) - { - Block.blocksList[this.getBlockID()].updateBlockMetadata(world, x, y, z, side, hitX, hitY, hitZ); - Block.blocksList[this.getBlockID()].onBlockPlacedBy(world, x, y, z, player); - } - - return true; - } - -} diff --git a/src/common/assemblyline/machines/ItemBlockMulti.java b/src/common/assemblyline/machines/ItemBlockMulti.java new file mode 100644 index 00000000..0af35d56 --- /dev/null +++ b/src/common/assemblyline/machines/ItemBlockMulti.java @@ -0,0 +1,25 @@ +package assemblyline.machines; + +import net.minecraft.src.ItemBlock; +import net.minecraft.src.ItemStack; +import assemblyline.machines.BlockMulti.MachineType; + +public class ItemBlockMulti extends ItemBlock +{ + public ItemBlockMulti(int par1) + { + super(par1); + this.setHasSubtypes(true); + } + + public String getItemNameIS(ItemStack itemstack) + { + return MachineType.get(itemstack.getItemDamage()).name; + } + + @Override + public int getMetadata(int par1) + { + return MachineType.get(par1).metadata; + } +} diff --git a/src/common/assemblyline/machines/TileEntityManipulator.java b/src/common/assemblyline/machines/TileEntityManipulator.java index b6e08946..7a662729 100644 --- a/src/common/assemblyline/machines/TileEntityManipulator.java +++ b/src/common/assemblyline/machines/TileEntityManipulator.java @@ -2,21 +2,31 @@ package assemblyline.machines; import java.util.List; +import com.google.common.io.ByteArrayDataInput; + import net.minecraft.src.AxisAlignedBB; import net.minecraft.src.EntityItem; +import net.minecraft.src.EntityPlayer; import net.minecraft.src.IInventory; +import net.minecraft.src.INetworkManager; import net.minecraft.src.ItemStack; import net.minecraft.src.NBTTagCompound; +import net.minecraft.src.Packet; +import net.minecraft.src.Packet250CustomPayload; import net.minecraft.src.TileEntity; import net.minecraft.src.TileEntityChest; import net.minecraftforge.common.ForgeDirection; import net.minecraftforge.common.ISidedInventory; import universalelectricity.core.Vector3; import universalelectricity.electricity.ElectricInfo; +import universalelectricity.implement.IRedstoneReceptor; import universalelectricity.prefab.TileEntityElectricityReceiver; -import assemblyline.machines.BlockInteraction.MachineType; +import universalelectricity.prefab.network.IPacketReceiver; +import universalelectricity.prefab.network.PacketManager; +import assemblyline.AssemblyLine; +import assemblyline.machines.BlockMulti.MachineType; -public class TileEntityManipulator extends TileEntityElectricityReceiver +public class TileEntityManipulator extends TileEntityElectricityReceiver implements IRedstoneReceptor, IPacketReceiver { /** * Joules required to run this thing. @@ -32,7 +42,9 @@ public class TileEntityManipulator extends TileEntityElectricityReceiver * Is the manipulator wrenched to turn into * output mode? */ - public boolean isWrenchedToOutput = false; + public boolean isOutput = false; + + private boolean isPowered = false; @Override public double wattRequest() @@ -47,9 +59,9 @@ public class TileEntityManipulator extends TileEntityElectricityReceiver if (!this.worldObj.isRemote) { - if (!this.isDisabled()) + if (!this.isDisabled() && this.wattsReceived >= this.JOULES_REQUIRED) { - if (!this.isOutput()) + if (!this.isOutput) { /** * Find items going into the @@ -88,7 +100,33 @@ public class TileEntityManipulator extends TileEntityElectricityReceiver /** * Finds the connected inventory and outputs the items upon a redstone pulse. */ + if(this.isPowered) + { + this.onPowerOff(); + + Vector3 inputPosition = Vector3.get(this); + inputPosition.modifyPositionFromSide(this.getBeltDirection().getOpposite()); + + Vector3 outputPosition = Vector3.get(this); + outputPosition.modifyPositionFromSide(this.getBeltDirection()); + + ItemStack itemStack = this.tryGrabFromPosition(inputPosition); + + if(itemStack != null) + { + if(itemStack.stackSize > 0) + { + EntityItem entityItem = new EntityItem(worldObj, outputPosition.x + 0.5, outputPosition.y + 0.8, outputPosition.z + 0.5, itemStack); + entityItem.motionX = 0; + entityItem.motionZ = 0; + entityItem.motionY /= 4; + worldObj.spawnEntityInWorld(entityItem); + } + } + } } + + this.wattsReceived = 0; } } } @@ -189,20 +227,101 @@ public class TileEntityManipulator extends TileEntityElectricityReceiver return itemStack; } - + /** - * If the manipulator is powered, it will - * output items instead of input. + * Tries to take a item from a inventory at a specific position. + * @param position + * @return */ - public boolean isOutput() + private ItemStack tryGrabFromPosition(Vector3 position) { - return this.isWrenchedToOutput; + TileEntity tileEntity = position.getTileEntity(this.worldObj); + + if (tileEntity != null) + { + /** + * Try to put items into a chest. + */ + if (tileEntity instanceof TileEntityChest) + { + TileEntityChest[] chests = + { (TileEntityChest) tileEntity, null }; + + /** + * Try to find a double chest. + */ + for (int i = 2; i < 6; i++) + { + ForgeDirection searchDirection = ForgeDirection.getOrientation(i); + Vector3 searchPosition = position.clone(); + searchPosition.modifyPositionFromSide(searchDirection); + + if (searchPosition.getTileEntity(this.worldObj).getClass() == chests[0].getClass()) + { + chests[1] = (TileEntityChest) searchPosition.getTileEntity(this.worldObj); + break; + } + } + + for (TileEntityChest chest : chests) + { + for (int i = 0; i < chest.getSizeInventory(); i++) + { + ItemStack itemStack = this.removeStackFromInventory(i, chest); + if(itemStack != null) return itemStack; + } + } + } + else if (tileEntity instanceof ISidedInventory) + { + ISidedInventory inventory = (ISidedInventory) tileEntity; + + int startIndex = inventory.getStartInventorySide(this.getBeltDirection()); + + for (int i = startIndex; i < inventory.getSizeInventorySide(this.getBeltDirection()); i++) + { + ItemStack itemStack = this.removeStackFromInventory(i, inventory); + if(itemStack != null) return itemStack; + } + } + else if (tileEntity instanceof IInventory) + { + IInventory inventory = (IInventory) tileEntity; + + for (int i = 0; i < inventory.getSizeInventory(); i++) + { + ItemStack itemStack = this.removeStackFromInventory(i, inventory); + if(itemStack != null) return itemStack; + } + } + } + + return null; + } + + public ItemStack removeStackFromInventory(int slotIndex, IInventory inventory) + { + if(inventory.getStackInSlot(slotIndex) != null) + { + ItemStack itemStack = inventory.getStackInSlot(slotIndex).copy(); + itemStack.stackSize = 1; + inventory.decrStackSize(slotIndex, 1); + return itemStack; + } + + return null; } public ForgeDirection getBeltDirection() { return ForgeDirection.getOrientation(MachineType.getDirection(this.worldObj.getBlockMetadata(this.xCoord, this.yCoord, this.zCoord)) + 2); } + + @Override + public Packet getDescriptionPacket() + { + return PacketManager.getPacket(AssemblyLine.CHANNEL, this, this.isOutput); + } @Override public boolean canReceiveFromSide(ForgeDirection side) @@ -220,7 +339,7 @@ public class TileEntityManipulator extends TileEntityElectricityReceiver public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); - nbt.setBoolean("isWrenchedToOutput", this.isWrenchedToOutput); + this.isOutput = nbt.getBoolean("isWrenchedToOutput"); } /** @@ -230,6 +349,31 @@ public class TileEntityManipulator extends TileEntityElectricityReceiver public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); - this.isWrenchedToOutput = nbt.getBoolean("isWrenchedToOutput"); + nbt.setBoolean("isWrenchedToOutput", this.isOutput); + } + + @Override + public void onPowerOn() + { + this.isPowered = true; + } + + @Override + public void onPowerOff() + { + this.isPowered = false; + } + + @Override + public void handlePacketData(INetworkManager network, int packetType, Packet250CustomPayload packet, EntityPlayer player, ByteArrayDataInput dataStream) + { + try + { + this.isOutput = dataStream.readBoolean(); + } + catch(Exception e) + { + e.printStackTrace(); + } } } diff --git a/src/common/assemblyline/machines/TileEntitySorter.java b/src/common/assemblyline/machines/TileEntitySorter.java index 3ec778c3..b1963087 100644 --- a/src/common/assemblyline/machines/TileEntitySorter.java +++ b/src/common/assemblyline/machines/TileEntitySorter.java @@ -2,8 +2,6 @@ package assemblyline.machines; import java.util.List; -import com.google.common.io.ByteArrayDataInput; - import net.minecraft.src.AxisAlignedBB; import net.minecraft.src.Entity; import net.minecraft.src.EntityItem; @@ -21,6 +19,9 @@ import universalelectricity.prefab.network.IPacketReceiver; import universalelectricity.prefab.network.PacketManager; import assemblyline.TileEntityBase; import assemblyline.belts.TileEntityConveyorBelt; + +import com.google.common.io.ByteArrayDataInput; + import cpw.mods.fml.common.network.PacketDispatcher; public class TileEntitySorter extends TileEntityBase implements IElectricityReceiver, IPacketReceiver diff --git a/src/common/assemblyline/machines/crafter/TileEntityAutoCrafter.java b/src/common/assemblyline/machines/crafter/TileEntityAutoCrafter.java index fb289912..c7dce0c2 100644 --- a/src/common/assemblyline/machines/crafter/TileEntityAutoCrafter.java +++ b/src/common/assemblyline/machines/crafter/TileEntityAutoCrafter.java @@ -2,12 +2,9 @@ package assemblyline.machines.crafter; import net.minecraft.src.EntityPlayer; import net.minecraft.src.INetworkManager; -import net.minecraft.src.ItemStack; import net.minecraft.src.Packet250CustomPayload; import net.minecraftforge.common.ForgeDirection; import net.minecraftforge.common.ISidedInventory; -import universalelectricity.prefab.TileEntityAdvanced; - import assemblyline.TileEntityBase; import com.google.common.io.ByteArrayDataInput; diff --git a/src/minecraft/assemblyline/ALClientProxy.java b/src/minecraft/assemblyline/ALClientProxy.java index ca4a491f..9d95da4e 100644 --- a/src/minecraft/assemblyline/ALClientProxy.java +++ b/src/minecraft/assemblyline/ALClientProxy.java @@ -1,15 +1,13 @@ package assemblyline; import net.minecraftforge.client.MinecraftForgeClient; -import assemblyline.AssemblyLine; -import assemblyline.ALCommonProxy; import assemblyline.belts.TileEntityConveyorBelt; import assemblyline.machines.TileEntityManipulator; import assemblyline.machines.TileEntitySorter; -import assemblyline.render.RenderSorter; -import assemblyline.render.RenderHelper; import assemblyline.render.RenderConveyorBelt; +import assemblyline.render.RenderHelper; import assemblyline.render.RenderManipulator; +import assemblyline.render.RenderSorter; import cpw.mods.fml.client.registry.ClientRegistry; import cpw.mods.fml.client.registry.RenderingRegistry; diff --git a/src/minecraft/assemblyline/gui/GuiAutoCrafting.java b/src/minecraft/assemblyline/gui/GuiAutoCrafting.java index cfbc95e8..a6e150d1 100644 --- a/src/minecraft/assemblyline/gui/GuiAutoCrafting.java +++ b/src/minecraft/assemblyline/gui/GuiAutoCrafting.java @@ -9,7 +9,6 @@ import net.minecraft.src.World; import org.lwjgl.opengl.GL11; import assemblyline.AssemblyLine; - import cpw.mods.fml.common.Side; import cpw.mods.fml.common.asm.SideOnly; diff --git a/src/minecraft/assemblyline/model/ModelConveyorBelt.java b/src/minecraft/assemblyline/model/ModelConveyorBelt.java index fd92e6eb..7c3afdee 100644 --- a/src/minecraft/assemblyline/model/ModelConveyorBelt.java +++ b/src/minecraft/assemblyline/model/ModelConveyorBelt.java @@ -1,6 +1,5 @@ package assemblyline.model; -import net.minecraft.src.Entity; import net.minecraft.src.ModelBase; import net.minecraft.src.ModelRenderer; diff --git a/src/minecraft/assemblyline/model/ModelDropBox.java b/src/minecraft/assemblyline/model/ModelDropBox.java index 13b2589e..675a1a26 100644 --- a/src/minecraft/assemblyline/model/ModelDropBox.java +++ b/src/minecraft/assemblyline/model/ModelDropBox.java @@ -1,6 +1,5 @@ package assemblyline.model; -import net.minecraft.src.Entity; import net.minecraft.src.ModelBase; import net.minecraft.src.ModelRenderer; diff --git a/src/minecraft/assemblyline/model/ModelManipulator.java b/src/minecraft/assemblyline/model/ModelManipulator.java index fc0753ca..bff21629 100644 --- a/src/minecraft/assemblyline/model/ModelManipulator.java +++ b/src/minecraft/assemblyline/model/ModelManipulator.java @@ -1,6 +1,5 @@ package assemblyline.model; -import net.minecraft.src.Entity; import net.minecraft.src.ModelBase; import net.minecraft.src.ModelRenderer; diff --git a/src/minecraft/assemblyline/model/ModelSorter.java b/src/minecraft/assemblyline/model/ModelSorter.java index 82261816..78bec3f6 100644 --- a/src/minecraft/assemblyline/model/ModelSorter.java +++ b/src/minecraft/assemblyline/model/ModelSorter.java @@ -6,7 +6,6 @@ package assemblyline.model; -import net.minecraft.src.Entity; import net.minecraft.src.ModelBase; import net.minecraft.src.ModelRenderer; diff --git a/src/minecraft/assemblyline/render/RenderHelper.java b/src/minecraft/assemblyline/render/RenderHelper.java index bd1c5937..4fde3f55 100644 --- a/src/minecraft/assemblyline/render/RenderHelper.java +++ b/src/minecraft/assemblyline/render/RenderHelper.java @@ -7,10 +7,10 @@ import net.minecraft.src.RenderBlocks; import org.lwjgl.opengl.GL11; import assemblyline.AssemblyLine; -import assemblyline.machines.BlockInteraction.MachineType; +import assemblyline.machines.BlockMulti.MachineType; import assemblyline.model.ModelConveyorBelt; -import assemblyline.model.ModelSorter; import assemblyline.model.ModelManipulator; +import assemblyline.model.ModelSorter; import cpw.mods.fml.client.FMLClientHandler; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; import cpw.mods.fml.client.registry.RenderingRegistry; @@ -39,7 +39,7 @@ public class RenderHelper implements ISimpleBlockRenderingHandler { if (metadata == MachineType.SORTER.metadata) { - GL11.glBindTexture(GL11.GL_TEXTURE_2D, FMLClientHandler.instance().getClient().renderEngine.getTexture(AssemblyLine.TEXTURE_PATH + "ejector.png")); + GL11.glBindTexture(GL11.GL_TEXTURE_2D, FMLClientHandler.instance().getClient().renderEngine.getTexture(AssemblyLine.TEXTURE_PATH + "sorter.png")); GL11.glPushMatrix(); GL11.glTranslatef((float) 0.6F, (float) 1.5F, (float) 0.6F); GL11.glRotatef(180f, 0f, 0f, 1f); @@ -50,7 +50,7 @@ public class RenderHelper implements ISimpleBlockRenderingHandler } else if (metadata == MachineType.MANIPULATOR.metadata) { - GL11.glBindTexture(GL11.GL_TEXTURE_2D, FMLClientHandler.instance().getClient().renderEngine.getTexture(AssemblyLine.TEXTURE_PATH + "injector.png")); + GL11.glBindTexture(GL11.GL_TEXTURE_2D, FMLClientHandler.instance().getClient().renderEngine.getTexture(AssemblyLine.TEXTURE_PATH + "manipulator1.png")); GL11.glPushMatrix(); GL11.glTranslatef((float) 0.6F, (float) 1.5F, (float) 0.6F); GL11.glRotatef(180f, 0f, 0f, 1f); diff --git a/src/minecraft/assemblyline/render/RenderManipulator.java b/src/minecraft/assemblyline/render/RenderManipulator.java index 51e88f2e..9300ac7e 100644 --- a/src/minecraft/assemblyline/render/RenderManipulator.java +++ b/src/minecraft/assemblyline/render/RenderManipulator.java @@ -6,7 +6,6 @@ import net.minecraft.src.TileEntitySpecialRenderer; import org.lwjgl.opengl.GL11; import assemblyline.AssemblyLine; -import assemblyline.belts.TileEntityConveyorBelt; import assemblyline.machines.TileEntityManipulator; import assemblyline.model.ModelManipulator; @@ -16,16 +15,21 @@ public class RenderManipulator extends TileEntitySpecialRenderer public void renderAModelAt(TileEntityManipulator tileEntity, double x, double y, double z, float f) { - String flip = "";// if(tileEntity.flip){flip - // = "F";} int face = tileEntity.getBeltDirection().ordinal(); GL11.glPushMatrix(); GL11.glTranslatef((float) x + 0.5F, (float) y + 1.5F, (float) z + 0.5F); GL11.glRotatef(180f, 0f, 0f, 1f); - this.bindTextureByName(AssemblyLine.TEXTURE_PATH + "injector.png"); - + if(tileEntity.isOutput) + { + this.bindTextureByName(AssemblyLine.TEXTURE_PATH + "manipulator1.png"); + } + else + { + this.bindTextureByName(AssemblyLine.TEXTURE_PATH + "manipulator2.png"); + } + if (face == 2) { GL11.glRotatef(0f, 0f, 1f, 0f); diff --git a/src/minecraft/assemblyline/render/RenderSorter.java b/src/minecraft/assemblyline/render/RenderSorter.java index 40212305..036e4162 100644 --- a/src/minecraft/assemblyline/render/RenderSorter.java +++ b/src/minecraft/assemblyline/render/RenderSorter.java @@ -22,7 +22,7 @@ public class RenderSorter extends TileEntitySpecialRenderer { pos = 8; } - bindTextureByName(AssemblyLine.TEXTURE_PATH + "ejector.png"); + bindTextureByName(AssemblyLine.TEXTURE_PATH + "sorter.png"); GL11.glPushMatrix(); GL11.glTranslatef((float) x + 0.5F, (float) y + 1.5F, (float) z + 0.5F); GL11.glScalef(1.0F, -1F, -1F);