Massive reformatting

This commit is contained in:
Calclavia 2012-11-03 11:04:24 +08:00
parent d3a40a764b
commit a1caf9acf3
14 changed files with 376 additions and 325 deletions

View file

@ -15,14 +15,17 @@ public class ALCommonProxy implements IGuiHandler
{ {
} }
public void init() public void init()
{ {
} }
public void postInit() public void postInit()
{ {
} }
@Override @Override
public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z)
{ {
@ -32,7 +35,8 @@ public class ALCommonProxy implements IGuiHandler
{ {
switch (ID) switch (ID)
{ {
case 0: return new GuiSorter(player.inventory, ((TileEntitySorter)tileEntity)); case 0:
return new GuiSorter(player.inventory, ((TileEntitySorter) tileEntity));
} }
} }
@ -48,7 +52,8 @@ public class ALCommonProxy implements IGuiHandler
{ {
switch (ID) switch (ID)
{ {
case 0: return new ContainerSorter(player.inventory, ((TileEntitySorter)tileEntity)); case 0:
return new ContainerSorter(player.inventory, ((TileEntitySorter) tileEntity));
} }
} }

View file

@ -33,7 +33,8 @@ import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.common.registry.LanguageRegistry; import cpw.mods.fml.common.registry.LanguageRegistry;
@Mod(modid = "AssemblyLine", name = "Assembly Line", version = AssemblyLine.VERSION, dependencies = "after:BasicComponents") @Mod(modid = "AssemblyLine", name = "Assembly Line", version = AssemblyLine.VERSION, dependencies = "after:BasicComponents")
@NetworkMod(channels = { AssemblyLine.CHANNEL }, clientSideRequired = true, serverSideRequired = false, packetHandler = PacketManager.class) @NetworkMod(channels =
{ AssemblyLine.CHANNEL }, clientSideRequired = true, serverSideRequired = false, packetHandler = PacketManager.class)
public class AssemblyLine public class AssemblyLine
{ {
@SidedProxy(clientSide = "assemblyline.ALClientProxy", serverSide = "assemblyline.ALCommonProxy") @SidedProxy(clientSide = "assemblyline.ALClientProxy", serverSide = "assemblyline.ALCommonProxy")

View file

@ -16,7 +16,8 @@ public abstract class TileEntityBase extends TileEntityAdvanced implements IPack
protected ItemStack[] containingItems = new ItemStack[this.getSizeInventory()]; protected ItemStack[] containingItems = new ItemStack[this.getSizeInventory()];
/** /**
* The amount of players using this tile entity. * The amount of players using this tile
* entity.
*/ */
protected int playerUsing = 0; protected int playerUsing = 0;

View file

@ -12,6 +12,7 @@ import assemblyline.render.RenderHelper;
/** /**
* The block for the actual conveyor belt! * The block for the actual conveyor belt!
*
* @author Calclavia, DarkGuardsman * @author Calclavia, DarkGuardsman
*/ */
public class BlockConveyorBelt extends BlockMachine public class BlockConveyorBelt extends BlockMachine
@ -29,13 +30,16 @@ public class BlockConveyorBelt extends BlockMachine
int angle = MathHelper.floor_double((par5EntityLiving.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3; int angle = MathHelper.floor_double((par5EntityLiving.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3;
par1World.setBlockMetadataWithNotify(x, y, z, angle); par1World.setBlockMetadataWithNotify(x, y, z, angle);
/* /*
switch (angle) * switch (angle) { case 0:
{ * par1World.setBlockMetadataWithNotify(x,
case 0: par1World.setBlockMetadataWithNotify(x, y, z, 0); break; * y, z, 0); break; case 1:
case 1: par1World.setBlockMetadataWithNotify(x, y, z, 3); break; * par1World.setBlockMetadataWithNotify(x,
case 2: par1World.setBlockMetadataWithNotify(x, y, z, 1); break; * y, z, 3); break; case 2:
case 3: par1World.setBlockMetadataWithNotify(x, y, z, 2); break; * par1World.setBlockMetadataWithNotify(x,
} */ * y, z, 1); break; case 3:
* par1World.setBlockMetadataWithNotify(x,
* y, z, 2); break; }
*/
} }
@Override @Override
@ -66,10 +70,7 @@ public class BlockConveyorBelt extends BlockMachine
@Override @Override
public TileEntity createNewTileEntity(World var1, int metadata) public TileEntity createNewTileEntity(World var1, int metadata)
{ {
if(metadata >=0 && metadata < 4) if (metadata >= 0 && metadata < 4) { return new TileEntityConveyorBelt(); }
{
return new TileEntityConveyorBelt();
}
return null; return null;
} }

View file

@ -47,6 +47,7 @@ public class TileEntityConveyorBelt extends TileEntityElectricityReceiver implem
/** /**
* Steal power from nearby belts. * Steal power from nearby belts.
*
* @return * @return
*/ */
public boolean searchNeighborBelts() public boolean searchNeighborBelts()

View file

@ -119,7 +119,8 @@ public class BlockMulti extends BlockMachine
{ {
int metadata = par1World.getBlockMetadata(x, y, z); int metadata = par1World.getBlockMetadata(x, y, z);
int guiID = MachineType.get(metadata).metadata; int guiID = MachineType.get(metadata).metadata;
if(guiID == -1) return false; if (guiID == -1)
return false;
par5EntityPlayer.openGui(AssemblyLine.instance, guiID, par1World, x, y, z); par5EntityPlayer.openGui(AssemblyLine.instance, guiID, par1World, x, y, z);
return true; return true;
} }

View file

@ -41,7 +41,9 @@ public class ContainerSorter extends Container
} }
/** /**
* Called to transfer a stack from one inventory to the other eg. when shift clicking. * Called to transfer a stack from one
* inventory to the other eg. when shift
* clicking.
*/ */
@Override @Override
public ItemStack func_82846_b(EntityPlayer par1EntityPlayer, int par1) public ItemStack func_82846_b(EntityPlayer par1EntityPlayer, int par1)
@ -58,20 +60,11 @@ public class ContainerSorter extends Container
{ {
if (itemStack2.itemID == Item.coal.shiftedIndex) if (itemStack2.itemID == Item.coal.shiftedIndex)
{ {
if (!this.mergeItemStack(itemStack2, 0, 1, false)) if (!this.mergeItemStack(itemStack2, 0, 1, false)) { return null; }
{
return null;
} }
else if (par1 >= 30 && par1 < 37 && !this.mergeItemStack(itemStack2, 3, 30, false)) { return null; }
} }
else if (par1 >= 30 && par1 < 37 && !this.mergeItemStack(itemStack2, 3, 30, false)) else if (!this.mergeItemStack(itemStack2, 3, 37, false)) { return null; }
{
return null;
}
}
else if (!this.mergeItemStack(itemStack2, 3, 37, false))
{
return null;
}
if (itemStack2.stackSize == 0) if (itemStack2.stackSize == 0)
{ {
@ -82,10 +75,7 @@ public class ContainerSorter extends Container
itemStack.onSlotChanged(); itemStack.onSlotChanged();
} }
if (itemStack2.stackSize == itemStack3.stackSize) if (itemStack2.stackSize == itemStack3.stackSize) { return null; }
{
return null;
}
itemStack.func_82870_a(par1EntityPlayer, itemStack2); itemStack.func_82870_a(par1EntityPlayer, itemStack2);
} }

View file

@ -25,12 +25,13 @@ import com.google.common.io.ByteArrayDataInput;
import cpw.mods.fml.common.network.PacketDispatcher; import cpw.mods.fml.common.network.PacketDispatcher;
public class TileEntitySorter extends TileEntityBase implements public class TileEntitySorter extends TileEntityBase implements IElectricityReceiver, IPacketReceiver
IElectricityReceiver, IPacketReceiver { {
/** /**
* Used to id the packet types * Used to id the packet types
*/ */
private enum tPacketID { private enum tPacketID
{
ANIMATION, GUI, SETTINGON ANIMATION, GUI, SETTINGON
} }
@ -49,80 +50,80 @@ public class TileEntitySorter extends TileEntityBase implements
/** /**
* on/off value for the GUI buttons * on/off value for the GUI buttons
*/ */
public boolean[] onOff = new boolean[] { true, true, true, true, true }; public boolean[] onOff = new boolean[]
{ true, true, true, true, true };
/** /**
* the belt found in the search area * the belt found in the search area
*/ */
public TileEntityConveyorBelt beltSide = null; public TileEntityConveyorBelt beltSide = null;
@Override @Override
public void updateEntity() { public void updateEntity()
{
super.updateEntity(); super.updateEntity();
// has to update a bit faster than a conveyer belt // has to update a bit faster than a
if (this.ticks % 5 == 0) { // conveyer belt
if (this.ticks % 5 == 0)
{
int meta = worldObj.getBlockMetadata(xCoord, yCoord, zCoord); int meta = worldObj.getBlockMetadata(xCoord, yCoord, zCoord);
this.firePiston = false; this.firePiston = false;
// area to search for items // area to search for items
ForgeDirection searchPosition = Vector3.getOrientationFromSide( ForgeDirection searchPosition = Vector3.getOrientationFromSide(ForgeDirection.getOrientation(getDirection(meta)), ForgeDirection.SOUTH);
ForgeDirection.getOrientation(getDirection(meta)), TileEntity tileEntity = worldObj.getBlockTileEntity(xCoord + searchPosition.offsetX, yCoord + searchPosition.offsetY, zCoord + searchPosition.offsetZ);
ForgeDirection.SOUTH);
TileEntity tileEntity = worldObj.getBlockTileEntity(xCoord
+ searchPosition.offsetX, yCoord + searchPosition.offsetY,
zCoord + searchPosition.offsetZ);
// find the belt in that search area // find the belt in that search area
if (tileEntity instanceof TileEntityConveyorBelt) { if (tileEntity instanceof TileEntityConveyorBelt)
{
this.beltSide = (TileEntityConveyorBelt) tileEntity; this.beltSide = (TileEntityConveyorBelt) tileEntity;
} else { }
else
{
this.beltSide = null; this.beltSide = null;
} }
try { try
{
// search area bound box // search area bound box
AxisAlignedBB bounds = AxisAlignedBB.getBoundingBox(xCoord AxisAlignedBB bounds = AxisAlignedBB.getBoundingBox(xCoord + searchPosition.offsetX, yCoord + searchPosition.offsetY, zCoord + searchPosition.offsetZ, xCoord + searchPosition.offsetX + 1, yCoord + searchPosition.offsetY + 1, zCoord + searchPosition.offsetZ + 1);
+ searchPosition.offsetX, yCoord
+ searchPosition.offsetY, zCoord
+ searchPosition.offsetZ, xCoord
+ searchPosition.offsetX + 1, yCoord
+ searchPosition.offsetY + 1, zCoord
+ searchPosition.offsetZ + 1);
// EntityItem list // EntityItem list
List<EntityItem> itemsBehind = worldObj.getEntitiesWithinAABB( List<EntityItem> itemsBehind = worldObj.getEntitiesWithinAABB(EntityItem.class, bounds);
EntityItem.class, bounds);
boolean flag = false; boolean flag = false;
if (itemsBehind.size() > 0 if (itemsBehind.size() > 0 && this.wattsReceived > this.WATTS_REQUIRED)
&& this.wattsReceived > this.WATTS_REQUIRED) { {
// for every item found check if can be thrown then throw // for every item found check
// if can be thrown then throw
// item off belt if it can // item off belt if it can
for (EntityItem entity : itemsBehind) { for (EntityItem entity : itemsBehind)
if (this.canItemBeThrow(entity)) { {
if (this.canItemBeThrow(entity))
{
this.throwItem(searchPosition, entity); this.throwItem(searchPosition, entity);
flag = true; flag = true;
} }
} }
} }
// send packet with animation data if an item was rejected from // send packet with animation data
// if an item was rejected from
// the area // the area
if (!worldObj.isRemote && flag) { if (!worldObj.isRemote && flag)
Packet packet = PacketManager.getPacket( {
AssemblyLine.CHANNEL, this, Packet packet = PacketManager.getPacket(AssemblyLine.CHANNEL, this, this.data(tPacketID.ANIMATION));
this.data(tPacketID.ANIMATION)); PacketManager.sendPacketToClients(packet, worldObj, Vector3.get(this), 30);
PacketManager.sendPacketToClients(packet, worldObj,
Vector3.get(this), 30);
} }
} catch (Exception e) { }
catch (Exception e)
{
e.printStackTrace(); e.printStackTrace();
} }
if (!worldObj.isRemote && this.playerUsing > 0) { if (!worldObj.isRemote && this.playerUsing > 0)
Packet packet = PacketManager.getPacket(AssemblyLine.CHANNEL, {
this, this.data(tPacketID.GUI)); Packet packet = PacketManager.getPacket(AssemblyLine.CHANNEL, this, this.data(tPacketID.GUI));
PacketManager.sendPacketToClients(packet, worldObj, PacketManager.sendPacketToClients(packet, worldObj, Vector3.get(this), 10);
Vector3.get(this), 10);
} }
} }
} }
@ -135,9 +136,11 @@ public class TileEntitySorter extends TileEntityBase implements
* @param entity * @param entity
* - Entity being thrown * - Entity being thrown
*/ */
public void throwItem(ForgeDirection side, Entity entity) { public void throwItem(ForgeDirection side, Entity entity)
{
this.firePiston = true; this.firePiston = true;
if (this.beltSide != null) { if (this.beltSide != null)
{
this.beltSide.ignoreEntity(entity); this.beltSide.ignoreEntity(entity);
} }
@ -148,35 +151,36 @@ public class TileEntitySorter extends TileEntityBase implements
this.wattsReceived -= this.WATTS_REQUIRED; this.wattsReceived -= this.WATTS_REQUIRED;
} }
public boolean canItemBeThrow(Entity entity) { public boolean canItemBeThrow(Entity entity)
{
// TODO add other things than items // TODO add other things than items
if (entity instanceof EntityItem) { if (entity instanceof EntityItem)
{
EntityItem itemE = (EntityItem) entity; EntityItem itemE = (EntityItem) entity;
ItemStack item = itemE.item; ItemStack item = itemE.item;
if (this.onOff[4]) { if (this.onOff[4])
{
// reject matching items // reject matching items
for (int i = 0; i < this.containingItems.length; i++) { for (int i = 0; i < this.containingItems.length; i++)
if (containingItems[i] != null && onOff[i]) { {
if (containingItems[i].itemID == item.itemID if (containingItems[i] != null && onOff[i])
&& containingItems[i].getItemDamage() == item {
.getItemDamage()) { if (containingItems[i].itemID == item.itemID && containingItems[i].getItemDamage() == item.getItemDamage()) { return true; }
return true;
}
} }
} }
return false; return false;
} else if (!this.onOff[4]) { }
else if (!this.onOff[4])
{
// reject all but matching items // reject all but matching items
for (int i = 0; i < this.containingItems.length; i++) { for (int i = 0; i < this.containingItems.length; i++)
if (containingItems[i] != null && onOff[i]) { {
if (containingItems[i].itemID == item.itemID if (containingItems[i] != null && onOff[i])
&& containingItems[i].getItemDamage() == item {
.getItemDamage()) { if (containingItems[i].itemID == item.itemID && containingItems[i].getItemDamage() == item.getItemDamage()) { return false; }
return false;
}
} }
} }
return true; return true;
@ -185,9 +189,11 @@ public class TileEntitySorter extends TileEntityBase implements
return false; return false;
} }
public byte getDirection(int meta) { public byte getDirection(int meta)
{
switch (meta) { switch (meta)
{
case 0: case 0:
return 2; return 2;
case 1: case 1:
@ -201,29 +207,33 @@ public class TileEntitySorter extends TileEntityBase implements
} }
@Override @Override
public boolean canReceiveFromSide(ForgeDirection side) { public boolean canReceiveFromSide(ForgeDirection side)
{
return side == ForgeDirection.DOWN; return side == ForgeDirection.DOWN;
} }
/** /**
* Used to change any one of the boolean value of on/off array After * Used to change any one of the boolean value
* changing the value if it was changed client side it will send a packet * of on/off array After changing the value if
* server side with the changes * it was changed client side it will send a
* packet server side with the changes
* *
* @param i * @param i
*/ */
public void changeOnOff(int i) { public void changeOnOff(int i)
if (i >= this.onOff.length) { {
return; if (i >= this.onOff.length) { return; }
} if (this.onOff[i])
if (this.onOff[i]) { {
this.onOff[i] = false; this.onOff[i] = false;
} else { }
else
{
this.onOff[i] = true; this.onOff[i] = true;
} }
if (worldObj.isRemote) { if (worldObj.isRemote)
Packet packet = PacketManager.getPacket("asmLine", this, {
tPacketID.SETTINGON.ordinal(), i); Packet packet = PacketManager.getPacket("asmLine", this, tPacketID.SETTINGON.ordinal(), i);
PacketDispatcher.sendPacketToServer(packet); PacketDispatcher.sendPacketToServer(packet);
} }
} }
@ -232,56 +242,71 @@ public class TileEntitySorter extends TileEntityBase implements
* Data methods * Data methods
*/ */
@Override @Override
public void readFromNBT(NBTTagCompound nbt) { public void readFromNBT(NBTTagCompound nbt)
{
super.readFromNBT(nbt); super.readFromNBT(nbt);
for (int i = 0; i < this.onOff.length; i++) { for (int i = 0; i < this.onOff.length; i++)
{
this.onOff[i] = nbt.getBoolean("onOff" + i); this.onOff[i] = nbt.getBoolean("onOff" + i);
} }
} }
@Override @Override
public void writeToNBT(NBTTagCompound nbt) { public void writeToNBT(NBTTagCompound nbt)
{
super.writeToNBT(nbt); super.writeToNBT(nbt);
for (int i = 0; i < this.onOff.length; i++) { for (int i = 0; i < this.onOff.length; i++)
{
nbt.setBoolean("onOff" + i, this.onOff[i]); nbt.setBoolean("onOff" + i, this.onOff[i]);
} }
} }
public Object[] data(tPacketID id) { public Object[] data(tPacketID id)
if (id == tPacketID.ANIMATION) { {
return new Object[] { id.ordinal(), this.firePiston }; if (id == tPacketID.ANIMATION) { return new Object[]
} { id.ordinal(), this.firePiston }; }
if (id == tPacketID.GUI) { if (id == tPacketID.GUI)
{
Object[] da = new Object[this.onOff.length]; Object[] da = new Object[this.onOff.length];
da[0] = id.ordinal(); da[0] = id.ordinal();
for (int i = 0; i < this.onOff.length; i++) { for (int i = 0; i < this.onOff.length; i++)
{
da[i + 1] = onOff[i]; da[i + 1] = onOff[i];
} }
return da; return da;
} }
return new Object[] { id.ordinal() }; return new Object[]
{ id.ordinal() };
} }
@Override @Override
public void handlePacketData(INetworkManager network, int packetType, public void handlePacketData(INetworkManager network, int packetType, Packet250CustomPayload packet, EntityPlayer player, ByteArrayDataInput dataStream)
Packet250CustomPayload packet, EntityPlayer player, {
ByteArrayDataInput dataStream) { try
try { {
int id = dataStream.readInt(); int id = dataStream.readInt();
tPacketID pID = tPacketID.values()[id]; tPacketID pID = tPacketID.values()[id];
System.out.print("\n id:" + id + " "); System.out.print("\n id:" + id + " ");
if (pID == tPacketID.ANIMATION) { if (pID == tPacketID.ANIMATION)
{
this.firePiston = dataStream.readBoolean(); this.firePiston = dataStream.readBoolean();
} else if (pID == tPacketID.GUI) { }
for (int i = 0; i < this.onOff.length; i++) { else if (pID == tPacketID.GUI)
{
for (int i = 0; i < this.onOff.length; i++)
{
this.onOff[i] = dataStream.readBoolean(); this.onOff[i] = dataStream.readBoolean();
} }
} else if (pID == tPacketID.SETTINGON) { }
else if (pID == tPacketID.SETTINGON)
{
int num = dataStream.readInt(); int num = dataStream.readInt();
this.changeOnOff(num); this.changeOnOff(num);
} }
} catch (Exception e) { }
catch (Exception e)
{
e.printStackTrace(); e.printStackTrace();
} }
} }
@ -290,17 +315,20 @@ public class TileEntitySorter extends TileEntityBase implements
* inventory methods * inventory methods
*/ */
@Override @Override
public String getInvName() { public String getInvName()
{
return "Rejector"; return "Rejector";
} }
@Override @Override
public int getInventoryStackLimit() { public int getInventoryStackLimit()
{
return 1; return 1;
} }
@Override @Override
public int getSizeInventory() { public int getSizeInventory()
{
return 4; return 4;
} }
@ -308,17 +336,20 @@ public class TileEntitySorter extends TileEntityBase implements
* disabling methods * disabling methods
*/ */
@Override @Override
public void onDisable(int duration) { public void onDisable(int duration)
{
} }
@Override @Override
public boolean isDisabled() { public boolean isDisabled()
{
return false; return false;
} }
@Override @Override
public boolean canConnect(ForgeDirection side) { public boolean canConnect(ForgeDirection side)
{
return true; return true;
} }
@ -326,18 +357,20 @@ public class TileEntitySorter extends TileEntityBase implements
* UE methods * UE methods
*/ */
@Override @Override
public double getVoltage() { public double getVoltage()
{
return 120; return 120;
} }
@Override @Override
public double wattRequest() { public double wattRequest()
{
return WATTS_REQUIRED; return WATTS_REQUIRED;
} }
@Override @Override
public void onReceive(TileEntity sender, double amps, double voltage, public void onReceive(TileEntity sender, double amps, double voltage, ForgeDirection side)
ForgeDirection side) { {
this.wattsReceived += (amps * voltage); this.wattsReceived += (amps * voltage);
} }

View file

@ -8,24 +8,29 @@ import net.minecraft.src.EntityItem;
import net.minecraft.src.ItemStack; import net.minecraft.src.ItemStack;
import net.minecraft.src.World; import net.minecraft.src.World;
public class ArmHelper { public class ArmHelper
{
/** /**
* Used to locate items in an area * Used to locate items in an area
* @param start - start xyz *
* @param End - end xyz * @param start
* - start xyz
* @param End
* - end xyz
* @return list of items * @return list of items
*/ */
public List<EntityItem> findItems(World world, Vector3 start, Vector3 end) public List<EntityItem> findItems(World world, Vector3 start, Vector3 end)
{ {
AxisAlignedBB bounds = AxisAlignedBB.getBoundingBox(start.x, start.y, start.z, end.x, end.x, end.x); AxisAlignedBB bounds = AxisAlignedBB.getBoundingBox(start.x, start.y, start.z, end.x, end.x, end.x);
// EntityItem list // EntityItem list
List<EntityItem> itemsList = world.getEntitiesWithinAABB( List<EntityItem> itemsList = world.getEntitiesWithinAABB(EntityItem.class, bounds);
EntityItem.class, bounds);
return itemsList; return itemsList;
} }
/** /**
* Used to locate an item type in an area * Used to locate an item type in an area
*
* @param world * @param world
* @param start * @param start
* @param end * @param end
@ -36,8 +41,7 @@ public class ArmHelper {
{ {
AxisAlignedBB bounds = AxisAlignedBB.getBoundingBox(start.x, start.y, start.z, end.x, end.x, end.x); AxisAlignedBB bounds = AxisAlignedBB.getBoundingBox(start.x, start.y, start.z, end.x, end.x, end.x);
// EntityItem list // EntityItem list
List<EntityItem> itemsList = world.getEntitiesWithinAABB( List<EntityItem> itemsList = world.getEntitiesWithinAABB(EntityItem.class, bounds);
EntityItem.class, bounds);
for (EntityItem item : itemsList) for (EntityItem item : itemsList)
{ {
ItemStack stackItem = item.item; ItemStack stackItem = item.item;

View file

@ -9,15 +9,18 @@ import net.minecraft.src.TileEntity;
import net.minecraft.src.World; import net.minecraft.src.World;
import assemblyline.AssemblyLine; import assemblyline.AssemblyLine;
public class BlockCrafter extends BlockMachine { public class BlockCrafter extends BlockMachine
protected BlockCrafter(int par1) { {
protected BlockCrafter(int par1)
{
super("AutoCrafters", par1, Material.iron); super("AutoCrafters", par1, Material.iron);
this.setResistance(5.0f); this.setResistance(5.0f);
this.setHardness(5.0f); this.setHardness(5.0f);
this.setCreativeTab(CreativeTabs.tabTools); this.setCreativeTab(CreativeTabs.tabTools);
} }
public static enum CrafterType { public static enum CrafterType
{
CRAFTER("Crafter", 0, -1, TileEntityAutoCrafter.class); CRAFTER("Crafter", 0, -1, TileEntityAutoCrafter.class);
public String name; public String name;
@ -25,42 +28,47 @@ public class BlockCrafter extends BlockMachine {
public int guiID; public int guiID;
public Class<? extends TileEntity> tileEntity; public Class<? extends TileEntity> tileEntity;
CrafterType(String name, int metadata,int guiID, CrafterType(String name, int metadata, int guiID, Class<? extends TileEntity> tileEntity)
Class<? extends TileEntity> tileEntity) { {
this.name = name; this.name = name;
this.metadata = metadata; this.metadata = metadata;
this.guiID = guiID; this.guiID = guiID;
this.tileEntity = tileEntity; this.tileEntity = tileEntity;
} }
public static CrafterType get(int metadata) { public static CrafterType get(int metadata)
for (CrafterType value : CrafterType.values()) { {
if (metadata >= value.metadata && metadata < value.metadata + 4) { for (CrafterType value : CrafterType.values())
return value; {
} if (metadata >= value.metadata && metadata < value.metadata + 4) { return value; }
} }
return null; return null;
} }
/** /**
* Gets the direction based on the metadata * Gets the direction based on the
* metadata
* *
* @return A direction value from 0 to 4. * @return A direction value from 0 to 4.
*/ */
public static int getDirection(int metadata) { public static int getDirection(int metadata)
{
return metadata - CrafterType.get(metadata).metadata; return metadata - CrafterType.get(metadata).metadata;
} }
/** /**
* @param currentDirection * @param currentDirection
* - An integer from 0 to 4. * - An integer from 0 to 4.
* @return The metadata this block should change into. * @return The metadata this block should
* change into.
*/ */
public int getNextDirectionMeta(int currentDirection) { public int getNextDirectionMeta(int currentDirection)
{
currentDirection++; currentDirection++;
if (currentDirection >= 4) { if (currentDirection >= 4)
{
currentDirection = 0; currentDirection = 0;
} }
@ -70,10 +78,14 @@ public class BlockCrafter extends BlockMachine {
/** /**
* Creates a new TIleEntity. * Creates a new TIleEntity.
*/ */
public TileEntity instantiateTileEntity() { public TileEntity instantiateTileEntity()
try { {
try
{
return this.tileEntity.newInstance(); return this.tileEntity.newInstance();
} catch (Exception e) { }
catch (Exception e)
{
e.printStackTrace(); e.printStackTrace();
return null; return null;
} }
@ -81,37 +93,40 @@ public class BlockCrafter extends BlockMachine {
} }
@Override @Override
public TileEntity createNewTileEntity(World var1) { public TileEntity createNewTileEntity(World var1)
{
return null; return null;
} }
@Override @Override
public TileEntity createNewTileEntity(World var1, int metadata) { public TileEntity createNewTileEntity(World var1, int metadata)
{
return CrafterType.get(metadata).instantiateTileEntity(); return CrafterType.get(metadata).instantiateTileEntity();
} }
@Override @Override
public boolean onMachineActivated(World par1World, int x, int y, int z, public boolean onMachineActivated(World par1World, int x, int y, int z, EntityPlayer par5EntityPlayer)
EntityPlayer par5EntityPlayer) { {
if (!par1World.isRemote) { if (!par1World.isRemote)
{
int metadata = par1World.getBlockMetadata(x, y, z); int metadata = par1World.getBlockMetadata(x, y, z);
int guiID = CrafterType.get(metadata).metadata; int guiID = CrafterType.get(metadata).metadata;
if (guiID == -1) if (guiID == -1)
return false; return false;
par5EntityPlayer.openGui(AssemblyLine.instance, guiID, par1World, par5EntityPlayer.openGui(AssemblyLine.instance, guiID, par1World, x, y, z);
x, y, z);
return true; return true;
} }
return true; return true;
} }
public boolean onSneakUseWrench(World par1World, int x, int y, int z, public boolean onSneakUseWrench(World par1World, int x, int y, int z, EntityPlayer par5EntityPlayer)
EntityPlayer par5EntityPlayer) { {
return false; return false;
} }
public int getRenderType() { public int getRenderType()
{
return 0; return 0;
} }
} }

View file

@ -7,7 +7,8 @@ import net.minecraft.src.ItemStack;
import net.minecraft.src.NBTTagCompound; import net.minecraft.src.NBTTagCompound;
import net.minecraft.src.World; import net.minecraft.src.World;
public class EntityCraftingArm extends Entity { public class EntityCraftingArm extends Entity
{
/** /**
* Used to ID the type of arm * Used to ID the type of arm
*/ */
@ -15,6 +16,7 @@ public class EntityCraftingArm extends Entity {
{ {
ARM, SOLDER, DRILL, BREAKER ARM, SOLDER, DRILL, BREAKER
} }
/** /**
* type of arm this robotic arm currently is * type of arm this robotic arm currently is
*/ */
@ -34,7 +36,8 @@ public class EntityCraftingArm extends Entity {
public boolean isWorking = false; public boolean isWorking = false;
public EntityCraftingArm(World par1World) { public EntityCraftingArm(World par1World)
{
super(par1World); super(par1World);
} }
@ -45,22 +48,24 @@ public class EntityCraftingArm extends Entity {
} }
@Override @Override
protected void readEntityFromNBT(NBTTagCompound nbt) { protected void readEntityFromNBT(NBTTagCompound nbt)
{
this.arm = armType.values()[nbt.getInteger("type")]; this.arm = armType.values()[nbt.getInteger("type")];
} }
@Override @Override
protected void writeEntityToNBT(NBTTagCompound nbt) { protected void writeEntityToNBT(NBTTagCompound nbt)
{
nbt.setInteger("type", arm.ordinal()); nbt.setInteger("type", arm.ordinal());
} }
public boolean grabItem(EntityItem item) public boolean grabItem(EntityItem item)
{ {
if (this.stack == null) if (this.stack == null)
{ {
//TODO set current stack to item as soon as it reaches coords // TODO set current stack to item as
// soon as it reaches coords
} }
return false; return false;
} }

View file

@ -2,9 +2,11 @@ package assemblyline.machines.crafter;
import net.minecraft.src.Item; import net.minecraft.src.Item;
public class ItemCrafterArm extends Item { public class ItemCrafterArm extends Item
{
protected ItemCrafterArm(int par1) { protected ItemCrafterArm(int par1)
{
super(par1); super(par1);
this.setHasSubtypes(true); this.setHasSubtypes(true);
} }

View file

@ -3,30 +3,22 @@ package assemblyline.machines.crafter;
import net.minecraft.src.EntityPlayer; import net.minecraft.src.EntityPlayer;
import net.minecraft.src.INetworkManager; import net.minecraft.src.INetworkManager;
import net.minecraft.src.Packet250CustomPayload; import net.minecraft.src.Packet250CustomPayload;
import net.minecraft.src.World; import universalelectricity.prefab.TileEntityAdvanced;
import net.minecraftforge.common.ForgeDirection;
import net.minecraftforge.common.ISidedInventory;
import assemblyline.AssemblyLine;
import assemblyline.TileEntityBase;
import assemblyline.machines.BlockMulti.MachineType;
import com.google.common.io.ByteArrayDataInput; import com.google.common.io.ByteArrayDataInput;
public class TileEntityAutoCrafter extends TileEntityBase public class TileEntityAutoCrafter extends TileEntityAdvanced
{ {
@Override
public String getInvName() public String getInvName()
{ {
return "Auto Crafter"; return "Auto Crafter";
} }
@Override
public int getSizeInventory() public int getSizeInventory()
{ {
return 10; return 10;
} }
@Override
public void handlePacketData(INetworkManager network, int packetType, Packet250CustomPayload packet, EntityPlayer player, ByteArrayDataInput dataStream) public void handlePacketData(INetworkManager network, int packetType, Packet250CustomPayload packet, EntityPlayer player, ByteArrayDataInput dataStream)
{ {