From 17e709638ebf41d3d87ea6e156e3b183a3f199b4 Mon Sep 17 00:00:00 2001 From: DarkGuardsman Date: Tue, 3 Sep 2013 01:10:35 -0400 Subject: [PATCH] Misc --- src/dark/common/items/ItemTools.java | 11 ++++++----- src/dark/interfaces/IInvBox.java | 7 +++++++ src/dark/prefab/TileEntityMachine.java | 27 +++++++++++++++++--------- 3 files changed, 31 insertions(+), 14 deletions(-) diff --git a/src/dark/common/items/ItemTools.java b/src/dark/common/items/ItemTools.java index b5b02c97..f400918c 100644 --- a/src/dark/common/items/ItemTools.java +++ b/src/dark/common/items/ItemTools.java @@ -127,6 +127,7 @@ public class ItemTools extends ItemBasic //TODO add shift click support to bring up a easier to read GUI or link to the block and add an on screen gui so the player can toy with a design and be updated if (tool == EnumTools.MULTI_METER) { + //TODO filter all units threw UE unit helper to created nicer looking output text player.sendChatToPlayer(ChatMessageComponent.func_111066_d("Side>" + ForgeDirection.getOrientation(side).toString())); boolean out = false; if (tileEntity instanceof IElectrical) @@ -136,29 +137,29 @@ public class ItemTools extends ItemBasic player.sendChatToPlayer(ChatMessageComponent.func_111066_d(" Voltage>" + ((IElectrical) tileEntity).getVoltage())); if (demand > 0) { - player.sendChatToPlayer(ChatMessageComponent.func_111066_d(String.format(" RequiredWatts> %1$.2fW", demand))); + player.sendChatToPlayer(ChatMessageComponent.func_111066_d(String.format(" RequiredWatts> %1$.2fKW", demand))); } if (provide > 0) { - player.sendChatToPlayer(ChatMessageComponent.func_111066_d(String.format(" AvailableWatts> %1$.2fW", provide))); + player.sendChatToPlayer(ChatMessageComponent.func_111066_d(String.format(" AvailableWatts> %1$.2fKW", provide))); } out = true; } if (tileEntity instanceof IElectricalStorage) { - player.sendChatToPlayer(ChatMessageComponent.func_111066_d(String.format(" EnergyStored> %1$.2fW of %2$.2fW max", ((IElectricalStorage) tileEntity).getEnergyStored(), ((IElectricalStorage) tileEntity).getMaxEnergyStored()))); + player.sendChatToPlayer(ChatMessageComponent.func_111066_d(String.format(" EnergyStored> %1$.2fKW of %2$.2fW max", ((IElectricalStorage) tileEntity).getEnergyStored(), ((IElectricalStorage) tileEntity).getMaxEnergyStored()))); out = true; } if (tileEntity instanceof IConductor) { out = true; - player.sendChatToPlayer(ChatMessageComponent.func_111066_d(String.format(" Resistance> %1$.2fW | AmpMax> %2$.2fW", ((IConductor) tileEntity).getResistance(), ((IConductor) tileEntity).getCurrentCapacity()))); + player.sendChatToPlayer(ChatMessageComponent.func_111066_d(String.format(" Resistance> %1$.2fKW | AmpMax> %2$.2fW", ((IConductor) tileEntity).getResistance(), ((IConductor) tileEntity).getCurrentCapacity()))); if (((IConductor) tileEntity).getNetwork() != null) { player.sendChatToPlayer(ChatMessageComponent.func_111066_d(" Network>" + ((IConductor) tileEntity).getNetwork().toString())); - player.sendChatToPlayer(ChatMessageComponent.func_111066_d(String.format(" Network>WattRequired> %1$.2fW | TotalResistance> %2$.2fW", (((IConductor) tileEntity).getNetwork().getRequest() != null ? ((IConductor) tileEntity).getNetwork().getRequest().getWatts() : 0), ((IConductor) tileEntity).getNetwork().getTotalResistance()))); + player.sendChatToPlayer(ChatMessageComponent.func_111066_d(String.format(" Network>WattRequired> %1$.2fKW | TotalResistance> %2$.2fW", (((IConductor) tileEntity).getNetwork().getRequest() != null ? ((IConductor) tileEntity).getNetwork().getRequest().getWatts() : 0), ((IConductor) tileEntity).getNetwork().getTotalResistance()))); } } if (!out) diff --git a/src/dark/interfaces/IInvBox.java b/src/dark/interfaces/IInvBox.java index 97745a6e..b5fdf025 100644 --- a/src/dark/interfaces/IInvBox.java +++ b/src/dark/interfaces/IInvBox.java @@ -5,6 +5,13 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.common.ForgeDirection; +/** External inventory management container for an object. Allows for most if not all inventory code + * to be removed from the tile. That is some methods will still need to remain in order to work with + * automation. As well this is not designed to replace the need for IInventory support of a tile but + * to make it easier to manage. Suggested use it to create a prefab manager for several tiles. Then + * have those tiles use the prefab as an extermal inventory manager to reduce code size per class. + * + * @author DarkGuardsman */ public interface IInvBox extends ISidedInventory { /** Gets the inventory array. ForgeDirection.UNKOWN must return all sides */ diff --git a/src/dark/prefab/TileEntityMachine.java b/src/dark/prefab/TileEntityMachine.java index eb2e6527..c0b2ccae 100644 --- a/src/dark/prefab/TileEntityMachine.java +++ b/src/dark/prefab/TileEntityMachine.java @@ -30,19 +30,24 @@ import dark.interfaces.IPowerLess; import dark.interfaces.PowerSystems; import dark.prefab.invgui.InvChest; +/** Prefab for most machines in the CoreMachine set. Provides basic power updates, packet updates, + * inventory handling, and other handy methods. + * + * @author DarkGuardsman */ public abstract class TileEntityMachine extends TileEntityUniversalElectrical implements ISidedInventory, IExternalInv, IDisableable, IPacketReceiver, IPowerLess { + //TODO add support for attaching multi-meter to side of machine - /** Forge Ore Directory name of the item to toggle power */ + /** Forge Ore Directory name of the item to toggle infinite power mode */ public static String powerToggleItemID = "battery"; - /** ticks to act dead or disabled */ + /** ticks to act dead, disabled, or not function at all */ protected int ticksDisabled = 0; protected float WATTS_PER_TICK, MAX_WATTS; - protected boolean unpowered, running, prevRunning; - /** Inventory used by this machine */ + protected boolean unpowered = false, running = false, prevRunning = false; + /** Inventory manager used by this machine */ protected IInvBox inventory; /** Default generic packet types used by all machines */ @@ -92,7 +97,8 @@ public abstract class TileEntityMachine extends TileEntityUniversalElectrical im this.running = this.canRun() && this.consumePower(this.WATTS_PER_TICK, true); if (prevRun != this.running) { - PacketManager.sendPacketToClients(this.getDescriptionPacket(), worldObj, new Vector3(this), 64); + System.out.println("\n\nPower update packet sent to client\n\n\n"); + this.sendPowerUpdate(); } } @@ -120,7 +126,7 @@ public abstract class TileEntityMachine extends TileEntityUniversalElectrical im /** Does this tile have power to run and do work */ public boolean canRun() { - return !this.isDisabled() && (this.runPowerLess() || this.getEnergyStored() >= this.WATTS_PER_TICK); + return !this.isDisabled() && (this.runPowerLess() || this.consumePower(this.WATTS_PER_TICK, false)); } @Override @@ -230,7 +236,7 @@ public abstract class TileEntityMachine extends TileEntityUniversalElectrical im @Override public void handlePacketData(INetworkManager network, int packetType, Packet250CustomPayload packet, EntityPlayer player, ByteArrayDataInput dataStream) { - boolean packetSize = false; + boolean packetSize = true; try { ByteArrayInputStream bis = new ByteArrayInputStream(packet.data); @@ -273,11 +279,13 @@ public abstract class TileEntityMachine extends TileEntityUniversalElectrical im if (id.equalsIgnoreCase(TilePacketTypes.POWER.name)) { this.running = dis.readBoolean(); + System.out.println("Received isRunning packet"); return true; } if (id.equalsIgnoreCase(TilePacketTypes.NBT.name)) { this.readFromNBT(Packet.readNBTTagCompound(dis)); + return true; } } } @@ -296,8 +304,7 @@ public abstract class TileEntityMachine extends TileEntityUniversalElectrical im { if (!this.worldObj.isRemote) { - Packet packet = PacketManager.getPacket(this.getChannel(), this, TilePacketTypes.POWER.ordinal(), this.running); - PacketManager.sendPacketToClients(packet, worldObj, new Vector3(this), 64); + PacketManager.sendPacketToClients(PacketManager.getPacket(this.getChannel(), this, TilePacketTypes.POWER.name, this.running), worldObj, new Vector3(this), 64); } } @@ -326,6 +333,7 @@ public abstract class TileEntityMachine extends TileEntityUniversalElectrical im super.readFromNBT(nbt); this.ticksDisabled = nbt.getInteger("disabledTicks"); this.unpowered = nbt.getBoolean("shouldPower"); + this.running = nbt.getBoolean("isRunning"); if (nbt.hasKey("wattsReceived")) { this.energyStored = (float) nbt.getDouble("wattsReceived"); @@ -338,6 +346,7 @@ public abstract class TileEntityMachine extends TileEntityUniversalElectrical im super.writeToNBT(nbt); nbt.setInteger("disabledTicks", this.ticksDisabled); nbt.setBoolean("shouldPower", this.unpowered); + nbt.setBoolean("isRunning",this.running); } /*--------------------------------------------------------------