diff --git a/common/dark/BasicUtilities/Items/ItemGuage.java b/common/dark/BasicUtilities/Items/ItemGuage.java index 9fde1e5f..8ba5dc6f 100644 --- a/common/dark/BasicUtilities/Items/ItemGuage.java +++ b/common/dark/BasicUtilities/Items/ItemGuage.java @@ -8,8 +8,10 @@ import net.minecraft.src.Item; import net.minecraft.src.ItemStack; import net.minecraft.src.TileEntity; import net.minecraft.src.World; +import net.minecraftforge.common.ForgeDirection; import dark.BasicUtilities.BasicUtilitiesMain; import dark.BasicUtilities.api.IForce; +import dark.BasicUtilities.api.IReadOut; import dark.BasicUtilities.api.Liquid; import dark.BasicUtilities.pipes.TileEntityPipe; import dark.BasicUtilities.tanks.TileEntityLTank; @@ -28,88 +30,65 @@ public class ItemGuage extends Item this.setCreativeTab(CreativeTabs.tabTools); this.setMaxStackSize(1); } + @Override public void getSubItems(int par1, CreativeTabs par2CreativeTabs, List par3List) { - par3List.add(new ItemStack(this, 1, 0)); + par3List.add(new ItemStack(this, 1, 0)); } + @Override public int getIconFromDamage(int par1) { - switch(par1) - { - case 0: return 24; - } + switch (par1) + { + case 0: + return 24; + } return this.iconIndex; } - public String getTextureFile() { - return BasicUtilitiesMain.ITEM_PNG; - } + + public String getTextureFile() + { + return BasicUtilitiesMain.ITEM_PNG; + } + @Override - public String getItemName() + public String getItemName() { return "guage"; } + @Override - public boolean onItemUse(ItemStack itemStack, EntityPlayer player, World par3World, int par4, int par5, int par6, int par7, float par8, float par9, float par10) + public boolean onItemUse(ItemStack itemStack, EntityPlayer player, World par3World, int x, int y, int z, int side, float par8, float par9, float par10) { - if(!par3World.isRemote) - { - if(itemStack.getItemDamage() == 0) - { - TileEntity blockEntity = par3World.getBlockTileEntity(par4, par5, par6); - if(blockEntity instanceof TileEntityPipe) - { - TileEntityPipe pipeEntity = (TileEntityPipe) blockEntity; - Liquid type = pipeEntity.getType(); - int steam = pipeEntity.getStoredLiquid(type); - int pressure = pipeEntity.presure; - String typeName = type.lName; - String print = "Error"; - - print = typeName +" " + steam +" @ "+pressure+"PSI"; - - player.sendChatToPlayer(print); - return true; - } - if(blockEntity instanceof TileEntityLTank) - { - TileEntityLTank pipeEntity = (TileEntityLTank) blockEntity; - Liquid type = pipeEntity.getType(); - int steam = pipeEntity.getStoredLiquid(type); - String typeName = type.lName; - String print = "Error"; - - print = typeName +" " + steam; - - player.sendChatToPlayer(print); - return true; - } - if(blockEntity instanceof IForce) - { - IForce rod = (IForce) blockEntity; - int steam = rod.getForce(); - int pressure = rod.getAnimationPos(); - String print = "Error"; - - print = " " + steam +"N "+pressure*45+"degrees"; - - player.sendChatToPlayer(print); - return true; - } - } - - } + if (!par3World.isRemote) + { + if (itemStack.getItemDamage() == 0) + { + TileEntity blockEntity = par3World.getBlockTileEntity(x, y, z); + if(blockEntity instanceof IReadOut) + { + String output = ((IReadOut) blockEntity).getMeterReading(player,ForgeDirection.getOrientation(side)); + if(output.length() > 100) output = output.substring(0, 100); + output.trim(); + player.sendChatToPlayer("ReadOut: "+output); + } + } + + } return false; } - public String getItemNameIS(ItemStack par1ItemStack) + + public String getItemNameIS(ItemStack par1ItemStack) { - int var3 = par1ItemStack.getItemDamage(); - switch(var3) - { - case 0: return "PipeGuage"; - } + int var3 = par1ItemStack.getItemDamage(); + switch (var3) + { + case 0: + return "PipeGuage"; + } return this.getItemName(); } } diff --git a/common/dark/BasicUtilities/api/IReadOut.java b/common/dark/BasicUtilities/api/IReadOut.java new file mode 100644 index 00000000..cc898e2b --- /dev/null +++ b/common/dark/BasicUtilities/api/IReadOut.java @@ -0,0 +1,17 @@ +package dark.BasicUtilities.api; + +import net.minecraft.src.EntityPlayer; +import net.minecraftforge.common.ForgeDirection; + +public interface IReadOut +{ + /** + * Grabs the message displayed to the user + * on right click of the machine with the + * pipe gauge + * @param user + * @param side - may not work correctly yet but should give you a side + * @return - a string to be displayed to the player for a reading. automatically adds ReadOut: to the beginning + */ + public String getMeterReading(EntityPlayer user, ForgeDirection side); +} diff --git a/common/dark/BasicUtilities/mechanical/TileEntityGen.java b/common/dark/BasicUtilities/mechanical/TileEntityGen.java index f4f4c0de..538b64ea 100644 --- a/common/dark/BasicUtilities/mechanical/TileEntityGen.java +++ b/common/dark/BasicUtilities/mechanical/TileEntityGen.java @@ -14,10 +14,11 @@ import com.google.common.io.ByteArrayDataInput; import dark.BasicUtilities.BasicUtilitiesMain; import dark.BasicUtilities.api.IForce; -import dark.Library.Util.MetaData; +import dark.BasicUtilities.api.IReadOut; +import dark.Library.Util.MetaGroupingHelper; import dark.Library.prefab.TileEntityMachine; -public class TileEntityGen extends TileEntityMachine implements IPacketReceiver, IForce, IElectricityProducer +public class TileEntityGen extends TileEntityMachine implements IPacketReceiver, IForce, IElectricityProducer,IReadOut { ForgeDirection facing = ForgeDirection.DOWN; @@ -42,7 +43,7 @@ public class TileEntityGen extends TileEntityMachine implements IPacketReceiver, this.genAmmount = force / this.getVoltage(); int wireCount = 0; - facing = ForgeDirection.getOrientation(MetaData.getMeta(worldObj.getBlockMetadata(xCoord, yCoord, zCoord))).getOpposite(); + facing = ForgeDirection.getOrientation(MetaGroupingHelper.getMeta(worldObj.getBlockMetadata(xCoord, yCoord, zCoord))).getOpposite(); if (!this.isDisabled()) { @@ -224,4 +225,10 @@ public class TileEntityGen extends TileEntityMachine implements IPacketReceiver, return 0; } + @Override + public String getMeterReading(EntityPlayer user, ForgeDirection side) + { + return this.force+"N Input "+this.genAmmount+"W output"; + } + } diff --git a/common/dark/BasicUtilities/mechanical/TileEntityRod.java b/common/dark/BasicUtilities/mechanical/TileEntityRod.java index 8998d27f..44d6ee7e 100644 --- a/common/dark/BasicUtilities/mechanical/TileEntityRod.java +++ b/common/dark/BasicUtilities/mechanical/TileEntityRod.java @@ -14,125 +14,147 @@ import com.google.common.io.ByteArrayDataInput; import dark.BasicUtilities.BasicUtilitiesMain; import dark.BasicUtilities.api.IForce; +import dark.BasicUtilities.api.IReadOut; -public class TileEntityRod extends TileEntity implements IPacketReceiver,IForce { +public class TileEntityRod extends TileEntity implements IPacketReceiver, IForce, IReadOut +{ - public int pos = 0; - private int force = 0; - private int pForce = 0; - public int aForce = 0; - public int forceMax = 1000; - private int tickCount = 0; - private int posCount = 0; - - private ForgeDirection frontDir; - private ForgeDirection backDir; - - private TileEntity bb; - private TileEntity ff; - @Override - public void updateEntity() - { - super.updateEntity(); - if(tickCount++ >=10) - { tickCount = 0; - int meta = worldObj.getBlockMetadata(xCoord, yCoord, zCoord); - frontDir = ForgeDirection.getOrientation(meta); - backDir = ForgeDirection.getOrientation(meta).getOpposite(); - bb = worldObj.getBlockTileEntity(xCoord+backDir.offsetX, yCoord, zCoord+backDir.offsetZ); - ff = worldObj.getBlockTileEntity(xCoord+frontDir.offsetX, yCoord, zCoord+frontDir.offsetZ); - if(force > 0) - { - int posCountA = (forceMax/force) & 10; - if(posCount++ >= posCountA) - { - pos ++;if(pos > 7){pos = 0;}; - } - } - if(bb instanceof TileEntityRod) - { - this.pos = ((IForce)bb).getAnimationPos(); - } - if(!worldObj.isRemote) - { - - if(ff instanceof IForce) - { - if(((IForce) ff).canInputSide(backDir)) - { - ((IForce) ff).applyForce(aForce); - } - } - if(bb instanceof IForce) - { - if(((IForce) bb).canOutputSide(frontDir)) - { - this.force = ((IForce) bb).getForce(); - } - }else - { - this.force -=Math.max(force/10, 0); - } - aForce = Math.max(force - 10,0); - if(this.force != this.pForce) - { - Packet packet = PacketManager.getPacket(BasicUtilitiesMain.CHANNEL,this, new Object[]{force}); - PacketManager.sendPacketToClients(packet, worldObj, Vector3.get(this), 40); - } - this.pForce = this.force; - } - } - } - @Override - public int getForceSide(ForgeDirection side) { - return aForce; - } + public int pos = 0; + private int force = 0; + private int pForce = 0; + public int aForce = 0; + public int forceMax = 1000; + private int tickCount = 0; + private int posCount = 0; - @Override - public boolean canOutputSide(ForgeDirection side) { - if(side == frontDir) - { - return true; - } - return false; - } + private ForgeDirection frontDir; + private ForgeDirection backDir; - @Override - public boolean canInputSide(ForgeDirection side) { - if(side == backDir) - { - return true; - } - return false; - } + private TileEntity bb; + private TileEntity ff; - @Override - public int applyForce(int force) { - this.force = force; - return force; - } + @Override + public void updateEntity() + { + super.updateEntity(); + if (tickCount++ >= 10) + { + tickCount = 0; + int meta = worldObj.getBlockMetadata(xCoord, yCoord, zCoord); + frontDir = ForgeDirection.getOrientation(meta); + backDir = ForgeDirection.getOrientation(meta).getOpposite(); + bb = worldObj.getBlockTileEntity(xCoord + backDir.offsetX, yCoord, zCoord + backDir.offsetZ); + ff = worldObj.getBlockTileEntity(xCoord + frontDir.offsetX, yCoord, zCoord + frontDir.offsetZ); + if (force > 0) + { + int posCountA = (forceMax / force) & 10; + if (posCount++ >= posCountA) + { + pos++; + if (pos > 7) + { + pos = 0; + } + ; + } + } + if (bb instanceof TileEntityRod) + { + this.pos = ((IForce) bb).getAnimationPos(); + } + if (!worldObj.isRemote) + { - @Override - public void handlePacketData(INetworkManager network, int packetType, - Packet250CustomPayload packet, EntityPlayer player, - ByteArrayDataInput data) { - try - { - this.force = data.readInt(); - }catch(Exception e) - { - e.printStackTrace(); - System.out.print("MechRodDataFailure \n"); - } - - } - @Override - public int getAnimationPos() { - return this.pos; - } - @Override - public int getForce() { - // TODO Auto-generated method stub - return this.force; - } + if (ff instanceof IForce) + { + if (((IForce) ff).canInputSide(backDir)) + { + ((IForce) ff).applyForce(aForce); + } + } + if (bb instanceof IForce) + { + if (((IForce) bb).canOutputSide(frontDir)) + { + this.force = ((IForce) bb).getForce(); + } + } + else + { + this.force -= Math.max(force / 10, 0); + } + aForce = Math.max(force - 10, 0); + if (this.force != this.pForce) + { + Packet packet = PacketManager.getPacket(BasicUtilitiesMain.CHANNEL, this, new Object[] + { force }); + PacketManager.sendPacketToClients(packet, worldObj, Vector3.get(this), 40); + } + this.pForce = this.force; + } + } + } + + @Override + public int getForceSide(ForgeDirection side) + { + return aForce; + } + + @Override + public boolean canOutputSide(ForgeDirection side) + { + if (side == frontDir) { return true; } + return false; + } + + @Override + public boolean canInputSide(ForgeDirection side) + { + if (side == backDir) { return true; } + return false; + } + + @Override + public int applyForce(int force) + { + this.force = force; + return force; + } + + @Override + public void handlePacketData(INetworkManager network, int packetType, + Packet250CustomPayload packet, EntityPlayer player, + ByteArrayDataInput data) + { + try + { + this.force = data.readInt(); + } + catch (Exception e) + { + e.printStackTrace(); + System.out.print("MechRodDataFailure \n"); + } + + } + + @Override + public int getAnimationPos() + { + return this.pos; + } + + @Override + public int getForce() + { + // TODO Auto-generated method stub + return this.force; + } + + @Override + public String getMeterReading(EntityPlayer user, ForgeDirection side) + { + return this.aForce + "N Out " + this.force + "N In"; + } } diff --git a/common/dark/BasicUtilities/pipes/TileEntityPipe.java b/common/dark/BasicUtilities/pipes/TileEntityPipe.java index dae8a64c..3e42b3e3 100644 --- a/common/dark/BasicUtilities/pipes/TileEntityPipe.java +++ b/common/dark/BasicUtilities/pipes/TileEntityPipe.java @@ -16,10 +16,11 @@ import com.google.common.io.ByteArrayDataInput; import dark.BasicUtilities.BasicUtilitiesMain; import dark.BasicUtilities.api.IConsumer; import dark.BasicUtilities.api.IProducer; +import dark.BasicUtilities.api.IReadOut; import dark.BasicUtilities.api.Liquid; import dark.BasicUtilities.api.MHelper; -public class TileEntityPipe extends TileEntity implements IConsumer, IPacketReceiver +public class TileEntityPipe extends TileEntity implements IConsumer, IPacketReceiver,IReadOut { protected Liquid type = Liquid.DEFUALT; @@ -225,4 +226,10 @@ public class TileEntityPipe extends TileEntity implements IConsumer, IPacketRece par1NBTTagCompound.setInteger("liquid", this.liquidStored); par1NBTTagCompound.setInteger("type", this.type.ordinal()); } + + @Override + public String getMeterReading(EntityPlayer user, ForgeDirection side) + { + return this.liquidStored+" "+this.type.name()+" @ "+this.presure+"PSI"; + } } diff --git a/common/dark/BasicUtilities/tanks/TileEntityLTank.java b/common/dark/BasicUtilities/tanks/TileEntityLTank.java index 58eda073..d71b50ab 100644 --- a/common/dark/BasicUtilities/tanks/TileEntityLTank.java +++ b/common/dark/BasicUtilities/tanks/TileEntityLTank.java @@ -15,11 +15,12 @@ import com.google.common.io.ByteArrayDataInput; import dark.BasicUtilities.BasicUtilitiesMain; import dark.BasicUtilities.api.IProducer; +import dark.BasicUtilities.api.IReadOut; import dark.BasicUtilities.api.IStorageTank; import dark.BasicUtilities.api.Liquid; import dark.BasicUtilities.api.MHelper; -public class TileEntityLTank extends TileEntity implements IStorageTank, IProducer, IPacketReceiver +public class TileEntityLTank extends TileEntity implements IStorageTank, IProducer, IPacketReceiver,IReadOut { public TileEntity[] cc = { null, null, null, null, null, null }; @@ -196,4 +197,9 @@ public class TileEntityLTank extends TileEntity implements IStorageTank, IProduc this.type = dm; } + @Override + public String getMeterReading(EntityPlayer user, ForgeDirection side) + { + return this.LStored+" "+"/"+this.LMax+" "+this.type.name()+" Stored"; + } }