From 5492f83a3119abb6b32ff7ad80044876a0acb747 Mon Sep 17 00:00:00 2001 From: CovertJaguar Date: Tue, 2 Jul 2013 07:11:57 -0700 Subject: [PATCH 1/6] Should fix Wooden Power Pipe power sources issues --- common/buildcraft/transport/pipes/PipePowerWood.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/common/buildcraft/transport/pipes/PipePowerWood.java b/common/buildcraft/transport/pipes/PipePowerWood.java index 0cc28d78..063054e1 100644 --- a/common/buildcraft/transport/pipes/PipePowerWood.java +++ b/common/buildcraft/transport/pipes/PipePowerWood.java @@ -94,8 +94,10 @@ public class PipePowerWood extends Pipe implements IPowerReceptor { } } - if (sources <= 0) + if (sources <= 0) { + powerHandler.useEnergy(5, 5, true); return; + } float energyToRemove; @@ -139,6 +141,9 @@ public class PipePowerWood extends Pipe implements IPowerReceptor { public void writeToNBT(NBTTagCompound data) { super.writeToNBT(data); powerHandler.writeToNBT(data); + for (int i = 0; i < ForgeDirection.VALID_DIRECTIONS.length; i++) { + data.setBoolean("powerSources[" + i + "]", powerSources[i]); + } } @Override @@ -146,5 +151,8 @@ public class PipePowerWood extends Pipe implements IPowerReceptor { super.readFromNBT(data); powerHandler.readFromNBT(data); initPowerProvider(); + for (int i = 0; i < ForgeDirection.VALID_DIRECTIONS.length; i++) { + powerSources[i] = data.getBoolean("powerSources[" + i + "]"); + } } } From c3a54f2a24f2a2e7446fb9c065464f838923b44d Mon Sep 17 00:00:00 2001 From: CovertJaguar Date: Tue, 2 Jul 2013 07:56:36 -0700 Subject: [PATCH 2/6] Added IPowerEmitter --- .../buildcraft/api/power/IPowerEmitter.java | 24 ++++++++++++++++ .../buildcraft/api/power/IPowerReceptor.java | 28 ++++++++++++++++++- common/buildcraft/api/power/PowerHandler.java | 3 +- common/buildcraft/energy/TileEngine.java | 8 +++++- .../transport/PipeTransportPower.java | 11 ++++++-- .../transport/pipes/PipePowerWood.java | 11 +------- 6 files changed, 69 insertions(+), 16 deletions(-) create mode 100644 common/buildcraft/api/power/IPowerEmitter.java diff --git a/common/buildcraft/api/power/IPowerEmitter.java b/common/buildcraft/api/power/IPowerEmitter.java new file mode 100644 index 00000000..7ccf62b9 --- /dev/null +++ b/common/buildcraft/api/power/IPowerEmitter.java @@ -0,0 +1,24 @@ +/* + * Copyright (c) SpaceToad, 2011-2012 + * http://www.mod-buildcraft.com + * + * BuildCraft is distributed under the terms of the Minecraft Mod Public + * License 1.0, or MMPL. Please check the contents of the license located in + * http://www.mod-buildcraft.com/MMPL-1.0.txt + */ +package buildcraft.api.power; + +import net.minecraftforge.common.ForgeDirection; + +/** + * Essentially only used for Wooden Power Pipe connection rules. + * + * This Tile Entity interface allows you to indicate that a block can emit power + * from a specific side. + * + * @author CovertJaguar + */ +public interface IPowerEmitter { + + public boolean canEmitPowerFrom(ForgeDirection side); +} diff --git a/common/buildcraft/api/power/IPowerReceptor.java b/common/buildcraft/api/power/IPowerReceptor.java index 8effb816..64dc1aff 100644 --- a/common/buildcraft/api/power/IPowerReceptor.java +++ b/common/buildcraft/api/power/IPowerReceptor.java @@ -11,11 +11,37 @@ import buildcraft.api.power.PowerHandler.PowerReceiver; import net.minecraft.world.World; import net.minecraftforge.common.ForgeDirection; +/** + * This interface should be implemented by any Tile Entity that wishes to be + * able to receive power. + * + * @author CovertJaguar + */ public interface IPowerReceptor { + /** + * Get the PowerReceiver for this side of the block. You can return the same + * PowerReceiver for all sides or one for each side. + * + * You should NOT return null to this method unless you mean to NEVER + * receive power from that side. Returning null, after previous returning a + * PowerReceiver, will most likely cause pipe connections to derp out and + * engines to eventually explode. + * + * @param side + * @return + */ public PowerReceiver getPowerReceiver(ForgeDirection side); + /** + * Call back from the PowerHandler that is called when the store power + * exceeds the activation power. + * + * It can be triggered by update() calls or power modification calls. + * + * @param workProvider + */ public void doWork(PowerHandler workProvider); - + public World getWorldObj(); } diff --git a/common/buildcraft/api/power/PowerHandler.java b/common/buildcraft/api/power/PowerHandler.java index f3762833..aa13cd91 100644 --- a/common/buildcraft/api/power/PowerHandler.java +++ b/common/buildcraft/api/power/PowerHandler.java @@ -10,6 +10,7 @@ package buildcraft.api.power; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.common.ForgeDirection; import buildcraft.api.core.SafeTimeTracker; +import java.util.EnumSet; public final class PowerHandler { @@ -80,7 +81,7 @@ public final class PowerHandler { private final SafeTimeTracker doWorkTracker = new SafeTimeTracker(); private final SafeTimeTracker sourcesTracker = new SafeTimeTracker(); private final SafeTimeTracker perditionTracker = new SafeTimeTracker(); - public final int[] powerSources = {0, 0, 0, 0, 0, 0}; + public final int[] powerSources = new int[6]; public final IPowerReceptor receptor; private PerditionCalculator perdition; private final PowerReceiver receiver; diff --git a/common/buildcraft/energy/TileEngine.java b/common/buildcraft/energy/TileEngine.java index 40a13592..0c89487f 100644 --- a/common/buildcraft/energy/TileEngine.java +++ b/common/buildcraft/energy/TileEngine.java @@ -19,6 +19,7 @@ import buildcraft.BuildCraftEnergy; import buildcraft.api.core.Position; import buildcraft.api.gates.IOverrideDefaultTriggers; import buildcraft.api.gates.ITrigger; +import buildcraft.api.power.IPowerEmitter; import buildcraft.api.power.IPowerReceptor; import buildcraft.api.power.PowerHandler; import buildcraft.api.power.PowerHandler.PowerReceiver; @@ -35,7 +36,7 @@ import net.minecraft.inventory.ICrafting; import net.minecraft.nbt.NBTBase; import net.minecraft.nbt.NBTTagFloat; -public abstract class TileEngine extends TileBuildCraft implements IPowerReceptor, IInventory, IOverrideDefaultTriggers, IPipeConnection { +public abstract class TileEngine extends TileBuildCraft implements IPowerReceptor, IPowerEmitter, IInventory, IOverrideDefaultTriggers, IPipeConnection { public enum EnergyStage { @@ -495,6 +496,11 @@ public abstract class TileEngine extends TileBuildCraft implements IPowerRecepto return with != orientation; } + @Override + public boolean canEmitPowerFrom(ForgeDirection side) { + return side == orientation; + } + public void checkRedstonePower() { isRedstonePowered = worldObj.isBlockIndirectlyGettingPowered(xCoord, yCoord, zCoord); } diff --git a/common/buildcraft/transport/PipeTransportPower.java b/common/buildcraft/transport/PipeTransportPower.java index 4d271155..01408091 100644 --- a/common/buildcraft/transport/PipeTransportPower.java +++ b/common/buildcraft/transport/PipeTransportPower.java @@ -13,6 +13,7 @@ import net.minecraftforge.common.ForgeDirection; import buildcraft.BuildCraftCore; import buildcraft.api.core.SafeTimeTracker; import buildcraft.api.gates.ITrigger; +import buildcraft.api.power.IPowerEmitter; import buildcraft.api.power.IPowerReceptor; import buildcraft.api.power.PowerHandler.PowerReceiver; import buildcraft.api.power.PowerHandler.Type; @@ -76,9 +77,13 @@ public class PipeTransportPower extends PipeTransport { if (tile instanceof IPowerReceptor) { IPowerReceptor receptor = (IPowerReceptor) tile; PowerReceiver receiver = receptor.getPowerReceiver(side.getOpposite()); - if (receiver == null) - return false; - if (container.pipe instanceof PipePowerWood || receiver.getType().canReceiveFromPipes()) + if (receiver != null && receiver.getType().canReceiveFromPipes()) + return true; + } + + if (container.pipe instanceof PipePowerWood && tile instanceof IPowerEmitter) { + IPowerEmitter emitter = (IPowerEmitter) tile; + if (emitter.canEmitPowerFrom(side.getOpposite())) return true; } diff --git a/common/buildcraft/transport/pipes/PipePowerWood.java b/common/buildcraft/transport/pipes/PipePowerWood.java index 063054e1..009169c8 100644 --- a/common/buildcraft/transport/pipes/PipePowerWood.java +++ b/common/buildcraft/transport/pipes/PipePowerWood.java @@ -50,16 +50,7 @@ public class PipePowerWood extends Pipe implements IPowerReceptor { @Override public int getIconIndex(ForgeDirection direction) { - if (direction == ForgeDirection.UNKNOWN) - return standardIconIndex; - else { - int metadata = worldObj.getBlockMetadata(xCoord, yCoord, zCoord); - - if (metadata == direction.ordinal()) - return solidIconIndex; - else - return standardIconIndex; - } + return standardIconIndex; } @Override From 71c79606c0f22cacdbe7ee6756fb55e106d2240a Mon Sep 17 00:00:00 2001 From: CovertJaguar Date: Tue, 2 Jul 2013 08:01:09 -0700 Subject: [PATCH 3/6] Fix typo in javadocs --- common/buildcraft/api/power/IPowerReceptor.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/buildcraft/api/power/IPowerReceptor.java b/common/buildcraft/api/power/IPowerReceptor.java index 64dc1aff..6c9aae36 100644 --- a/common/buildcraft/api/power/IPowerReceptor.java +++ b/common/buildcraft/api/power/IPowerReceptor.java @@ -34,7 +34,7 @@ public interface IPowerReceptor { public PowerReceiver getPowerReceiver(ForgeDirection side); /** - * Call back from the PowerHandler that is called when the store power + * Call back from the PowerHandler that is called when the stored power * exceeds the activation power. * * It can be triggered by update() calls or power modification calls. From 599afc578eb3469b3f884cd1466ccd4024a480ef Mon Sep 17 00:00:00 2001 From: CovertJaguar Date: Thu, 4 Jul 2013 00:30:15 -0700 Subject: [PATCH 4/6] Cleaned up some code. --- common/buildcraft/api/power/PowerHandler.java | 1 - .../transport/PipeTransportPower.java | 49 ++++++++++++------- 2 files changed, 30 insertions(+), 20 deletions(-) diff --git a/common/buildcraft/api/power/PowerHandler.java b/common/buildcraft/api/power/PowerHandler.java index aa13cd91..1b408238 100644 --- a/common/buildcraft/api/power/PowerHandler.java +++ b/common/buildcraft/api/power/PowerHandler.java @@ -10,7 +10,6 @@ package buildcraft.api.power; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.common.ForgeDirection; import buildcraft.api.core.SafeTimeTracker; -import java.util.EnumSet; public final class PowerHandler { diff --git a/common/buildcraft/transport/PipeTransportPower.java b/common/buildcraft/transport/PipeTransportPower.java index 01408091..59d4f45e 100644 --- a/common/buildcraft/transport/PipeTransportPower.java +++ b/common/buildcraft/transport/PipeTransportPower.java @@ -146,7 +146,12 @@ public class PipeTransportPower extends PipeTransport { if (j != i && powerQuery[j] > 0) { float watts = 0.0F; - if (tiles[j] instanceof TileGenericPipe) { + PowerReceiver prov = getReceiverOnSide(ForgeDirection.VALID_DIRECTIONS[j]); + if (prov != null && prov.powerRequest() > 0) { + watts = (internalPower[i] / totalPowerQuery) * powerQuery[j]; + watts = prov.receiveEnergy(Type.PIPE, watts, ForgeDirection.VALID_DIRECTIONS[j].getOpposite()); + internalPower[i] -= watts; + } else if (tiles[j] instanceof TileGenericPipe) { watts = (internalPower[i] / totalPowerQuery) * powerQuery[j]; TileGenericPipe nearbyTile = (TileGenericPipe) tiles[j]; @@ -154,15 +159,6 @@ public class PipeTransportPower extends PipeTransport { watts = nearbyTransport.receiveEnergy(ForgeDirection.VALID_DIRECTIONS[j].getOpposite(), watts); internalPower[i] -= watts; - } else if (tiles[j] instanceof IPowerReceptor) { - IPowerReceptor pow = (IPowerReceptor) tiles[j]; - PowerReceiver prov = pow.getPowerReceiver(ForgeDirection.VALID_DIRECTIONS[j].getOpposite()); - - if (prov != null && prov.getType().canReceiveFromPipes() && prov.powerRequest() > 0) { - watts = (internalPower[i] / totalPowerQuery) * powerQuery[j]; - watts = prov.receiveEnergy(Type.PIPE, watts, ForgeDirection.VALID_DIRECTIONS[j].getOpposite()); - internalPower[i] -= watts; - } } displayPower[j] += watts; @@ -188,18 +184,15 @@ public class PipeTransportPower extends PipeTransport { overload = OVERLOAD_TICKS; } - // Compute the tiles requesting energy that are not pipes + // Compute the tiles requesting energy that are not power pipes for (int i = 0; i < 6; ++i) { - if (tiles[i] instanceof IPowerReceptor && !(tiles[i] instanceof TileGenericPipe)) { - IPowerReceptor receptor = (IPowerReceptor) tiles[i]; - PowerReceiver prov = receptor.getPowerReceiver(ForgeDirection.VALID_DIRECTIONS[i].getOpposite()); - if (prov != null && prov.getType().canReceiveFromPipes()) { - float request = prov.powerRequest(); + PowerReceiver prov = getReceiverOnSide(ForgeDirection.VALID_DIRECTIONS[i]); + if (prov != null) { + float request = prov.powerRequest(); - if (request > 0) { - requestEnergy(ForgeDirection.VALID_DIRECTIONS[i], request); - } + if (request > 0) { + requestEnergy(ForgeDirection.VALID_DIRECTIONS[i], request); } } } @@ -256,6 +249,19 @@ public class PipeTransportPower extends PipeTransport { } + private PowerReceiver getReceiverOnSide(ForgeDirection side) { + TileEntity tile = tiles[side.ordinal()]; + if (!(tile instanceof IPowerReceptor)) + return null; + IPowerReceptor receptor = (IPowerReceptor) tile; + PowerReceiver receiver = receptor.getPowerReceiver(side.getOpposite()); + if (receiver == null) + return null; + if (!receiver.getType().canReceiveFromPipes()) + return null; + return receiver; + } + public boolean isOverloaded() { return overload >= OVERLOAD_TICKS; } @@ -284,6 +290,11 @@ public class PipeTransportPower extends PipeTransport { } } + /** + * Do NOT ever call this from outside Buildcraft unless you are a pipe mod. + * It is NOT part of the API. All power input MUST go through designated + * input pipes, such as Wooden Power Pipes. + */ public float receiveEnergy(ForgeDirection from, float val) { step(); if (this.container.pipe instanceof IPipeTransportPowerHook) { From 392498ff74d54a57a4d108a0000a798998907c1f Mon Sep 17 00:00:00 2001 From: CovertJaguar Date: Thu, 4 Jul 2013 03:07:46 -0700 Subject: [PATCH 5/6] Fix brightness issues with Quarry/Pump --- common/buildcraft/core/EntityBlock.java | 34 ++++++++++++------------- common/buildcraft/core/utils/Utils.java | 1 + 2 files changed, 18 insertions(+), 17 deletions(-) diff --git a/common/buildcraft/core/EntityBlock.java b/common/buildcraft/core/EntityBlock.java index 5daca49f..a52c0e78 100644 --- a/common/buildcraft/core/EntityBlock.java +++ b/common/buildcraft/core/EntityBlock.java @@ -1,12 +1,10 @@ /** - * Copyright (c) SpaceToad, 2011 - * http://www.mod-buildcraft.com + * Copyright (c) SpaceToad, 2011 http://www.mod-buildcraft.com * - * BuildCraft is distributed under the terms of the Minecraft Mod Public - * License 1.0, or MMPL. Please check the contents of the license located in + * BuildCraft is distributed under the terms of the Minecraft Mod Public License + * 1.0, or MMPL. Please check the contents of the license located in * http://www.mod-buildcraft.com/MMPL-1.0.txt */ - package buildcraft.core; import net.minecraft.entity.Entity; @@ -21,12 +19,11 @@ public class EntityBlock extends Entity { @SideOnly(Side.CLIENT) public Icon texture; public float shadowSize = 0; - public float rotationX = 0; public float rotationY = 0; public float rotationZ = 0; - public double iSize, jSize, kSize; + private int brightness = -1; public EntityBlock(World world) { super(world); @@ -68,28 +65,31 @@ public class EntityBlock extends Entity { setPosition(posX + d, posY + d1, posZ + d2); } + public void setBrightness(int brightness) { + this.brightness = brightness; + } + @Override protected void entityInit() { // TODO Auto-generated method stub - } @Override - protected void readEntityFromNBT(NBTTagCompound nbttagcompound) { - iSize = nbttagcompound.getDouble("iSize"); - jSize = nbttagcompound.getDouble("jSize"); - kSize = nbttagcompound.getDouble("kSize"); + protected void readEntityFromNBT(NBTTagCompound data) { + iSize = data.getDouble("iSize"); + jSize = data.getDouble("jSize"); + kSize = data.getDouble("kSize"); } @Override - protected void writeEntityToNBT(NBTTagCompound nbttagcompound) { - nbttagcompound.setDouble("iSize", iSize); - nbttagcompound.setDouble("jSize", jSize); - nbttagcompound.setDouble("kSize", kSize); + protected void writeEntityToNBT(NBTTagCompound data) { + data.setDouble("iSize", iSize); + data.setDouble("jSize", jSize); + data.setDouble("kSize", kSize); } @Override public int getBrightnessForRender(float par1) { - return 210; + return brightness > 0 ? brightness : super.getBrightnessForRender(par1); } } diff --git a/common/buildcraft/core/utils/Utils.java b/common/buildcraft/core/utils/Utils.java index 84e0a930..2e6a4a38 100644 --- a/common/buildcraft/core/utils/Utils.java +++ b/common/buildcraft/core/utils/Utils.java @@ -330,6 +330,7 @@ public class Utils { } EntityBlock block = CoreProxy.proxy.newEntityBlock(world, i, j, k, iSize, jSize, kSize, kind); + block.setBrightness(210); world.spawnEntityInWorld(block); From d1a39072afd3737a683ca8f046adcab1654da81d Mon Sep 17 00:00:00 2001 From: CovertJaguar Date: Thu, 4 Jul 2013 03:20:28 -0700 Subject: [PATCH 6/6] Removed unneeded ISpecial refs --- common/buildcraft/transport/GuiHandler.java | 2 +- .../transport/gui/GuiDiamondPipe.java | 2 +- .../transport/gui/GuiEmeraldPipe.java | 2 +- .../network/PacketHandlerTransport.java | 4 +- .../transport/pipes/PipeItemsDiamond.java | 2 +- .../transport/pipes/PipeItemsEmerald.java | 94 +-------------- .../transport/pipes/PipeLogicDiamond.java | 107 ++---------------- 7 files changed, 19 insertions(+), 194 deletions(-) diff --git a/common/buildcraft/transport/GuiHandler.java b/common/buildcraft/transport/GuiHandler.java index 70304f4a..a3eb898d 100644 --- a/common/buildcraft/transport/GuiHandler.java +++ b/common/buildcraft/transport/GuiHandler.java @@ -40,7 +40,7 @@ public class GuiHandler implements IGuiHandler { switch (ID) { case GuiIds.PIPE_DIAMOND: - return new ContainerDiamondPipe(player.inventory, (PipeLogicDiamond) pipe.pipe.logic); + return new ContainerDiamondPipe(player.inventory, ((PipeLogicDiamond) pipe.pipe.logic).getFilters()); case GuiIds.PIPE_EMERALD_ITEM: return new ContainerEmeraldPipe(player.inventory, (IInventory) pipe.pipe); diff --git a/common/buildcraft/transport/gui/GuiDiamondPipe.java b/common/buildcraft/transport/gui/GuiDiamondPipe.java index 90784392..32a88a58 100644 --- a/common/buildcraft/transport/gui/GuiDiamondPipe.java +++ b/common/buildcraft/transport/gui/GuiDiamondPipe.java @@ -32,7 +32,7 @@ public class GuiDiamondPipe extends GuiBuildCraft { @Override protected void drawGuiContainerForegroundLayer(int par1, int par2) { - fontRenderer.drawString(filterInventory.getInvName(), getCenteredOffset(filterInventory.getInvName()), 6, 0x404040); + fontRenderer.drawString(filterInventory.getFilters().getInvName(), getCenteredOffset(filterInventory.getFilters().getInvName()), 6, 0x404040); fontRenderer.drawString(StringUtils.localize("gui.inventory"), 8, ySize - 97, 0x404040); } diff --git a/common/buildcraft/transport/gui/GuiEmeraldPipe.java b/common/buildcraft/transport/gui/GuiEmeraldPipe.java index ccc9ad3f..65fddd01 100644 --- a/common/buildcraft/transport/gui/GuiEmeraldPipe.java +++ b/common/buildcraft/transport/gui/GuiEmeraldPipe.java @@ -32,7 +32,7 @@ public class GuiEmeraldPipe extends GuiBuildCraft { @Override protected void drawGuiContainerForegroundLayer(int par1, int par2) { - fontRenderer.drawString(filterInventory.getInvName(), getCenteredOffset(filterInventory.getInvName()), 6, 0x404040); + fontRenderer.drawString(filterInventory.getFilters().getInvName(), getCenteredOffset(filterInventory.getFilters().getInvName()), 6, 0x404040); fontRenderer.drawString(StringUtils.localize("gui.inventory"), 8, ySize - 93, 0x404040); } diff --git a/common/buildcraft/transport/network/PacketHandlerTransport.java b/common/buildcraft/transport/network/PacketHandlerTransport.java index fa3f6cf8..6d4c1623 100644 --- a/common/buildcraft/transport/network/PacketHandlerTransport.java +++ b/common/buildcraft/transport/network/PacketHandlerTransport.java @@ -322,7 +322,7 @@ public class PacketHandlerTransport implements IPacketHandler { if (!(pipe.pipe.logic instanceof PipeLogicDiamond)) return; - ((PipeLogicDiamond) pipe.pipe.logic).setInventorySlotContents(packet.slot, packet.stack); + ((PipeLogicDiamond) pipe.pipe.logic).getFilters().setInventorySlotContents(packet.slot, packet.stack); } /** @@ -339,7 +339,7 @@ public class PacketHandlerTransport implements IPacketHandler { if (!(pipe.pipe instanceof PipeItemsEmerald)) return; - ((PipeItemsEmerald) pipe.pipe).setInventorySlotContents(packet.slot, packet.stack); + ((PipeItemsEmerald) pipe.pipe).getFilters().setInventorySlotContents(packet.slot, packet.stack); } /** diff --git a/common/buildcraft/transport/pipes/PipeItemsDiamond.java b/common/buildcraft/transport/pipes/PipeItemsDiamond.java index e8f2abac..ef0dea06 100644 --- a/common/buildcraft/transport/pipes/PipeItemsDiamond.java +++ b/common/buildcraft/transport/pipes/PipeItemsDiamond.java @@ -70,7 +70,7 @@ public class PipeItemsDiamond extends Pipe implements IPipeTransportItemsHook, I // no breaks here. PipeLogicDiamond diamondLogic = (PipeLogicDiamond) logic; for (int slot = 0; slot < 9; ++slot) { - ItemStack stack = diamondLogic.getStackInSlot(dir.ordinal() * 9 + slot); + ItemStack stack = diamondLogic.getFilters().getStackInSlot(dir.ordinal() * 9 + slot); if (stack != null) { foundFilter = true; diff --git a/common/buildcraft/transport/pipes/PipeItemsEmerald.java b/common/buildcraft/transport/pipes/PipeItemsEmerald.java index 44ffb90d..ef696d07 100644 --- a/common/buildcraft/transport/pipes/PipeItemsEmerald.java +++ b/common/buildcraft/transport/pipes/PipeItemsEmerald.java @@ -32,9 +32,9 @@ import buildcraft.transport.BlockGenericPipe; import buildcraft.transport.PipeIconProvider; import buildcraft.transport.PipeTransportItems; -public class PipeItemsEmerald extends PipeItemsWood implements ISpecialInventory, IClientState { +public class PipeItemsEmerald extends PipeItemsWood implements IClientState { - private SimpleInventory filters = new SimpleInventory(9, "items", 1); + private SimpleInventory filters = new SimpleInventory(9, "Filters", 1); private int currentFilter = 0; protected PipeItemsEmerald(int itemID, PipeTransportItems transport) { @@ -208,92 +208,8 @@ public class PipeItemsEmerald extends PipeItemsWood implements ISpecialInventory readFromNBT((NBTTagCompound) nbt); } } - - /* ISPECIALINVENTORY */ - @Override - public int addItem(ItemStack stack, boolean doAdd, ForgeDirection from) { - return 0; - } - - @Override - public ItemStack[] extractItem(boolean doRemove, ForgeDirection from, int maxItemCount) { - return new ItemStack[0]; - } - - /* IINVENTORY IMPLEMENTATION */ - @Override - public int getSizeInventory() { - return filters.getSizeInventory(); - } - - @Override - public ItemStack getStackInSlot(int i) { - return filters.getStackInSlot(i); - } - - @Override - public String getInvName() { - return "Filters"; - } - - @Override - public int getInventoryStackLimit() { - return filters.getInventoryStackLimit(); - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - return filters.getStackInSlotOnClosing(i); - } - - @Override - public void onInventoryChanged() { - filters.onInventoryChanged(); - } - - @Override - public boolean isUseableByPlayer(EntityPlayer var1) { - return worldObj.getBlockTileEntity(xCoord, yCoord, zCoord) == container; - } - - @Override - public void openChest() { - } - - @Override - public void closeChest() { - } - - @Override - public ItemStack decrStackSize(int i, int j) { - ItemStack stack = filters.decrStackSize(i, j); - - if (CoreProxy.proxy.isSimulating(worldObj)) { - worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); - } - - return stack; - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemstack) { - - filters.setInventorySlotContents(i, itemstack); - if (CoreProxy.proxy.isSimulating(worldObj)) { - worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); - } - - } - - @Override - public boolean isInvNameLocalized() { - // TODO Auto-generated method stub - return false; - } - - @Override - public boolean isStackValidForSlot(int i, ItemStack itemstack) { - // TODO Auto-generated method stub - return false; + + public IInventory getFilters(){ + return filters; } } diff --git a/common/buildcraft/transport/pipes/PipeLogicDiamond.java b/common/buildcraft/transport/pipes/PipeLogicDiamond.java index 65edfe13..114ebccc 100644 --- a/common/buildcraft/transport/pipes/PipeLogicDiamond.java +++ b/common/buildcraft/transport/pipes/PipeLogicDiamond.java @@ -1,29 +1,25 @@ /** - * Copyright (c) SpaceToad, 2011 - * http://www.mod-buildcraft.com + * Copyright (c) SpaceToad, 2011 http://www.mod-buildcraft.com * - * BuildCraft is distributed under the terms of the Minecraft Mod Public - * License 1.0, or MMPL. Please check the contents of the license located in + * BuildCraft is distributed under the terms of the Minecraft Mod Public License + * 1.0, or MMPL. Please check the contents of the license located in * http://www.mod-buildcraft.com/MMPL-1.0.txt */ - package buildcraft.transport.pipes; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.common.ForgeDirection; import buildcraft.BuildCraftTransport; -import buildcraft.api.inventory.ISpecialInventory; import buildcraft.core.GuiIds; import buildcraft.core.proxy.CoreProxy; import buildcraft.core.inventory.SimpleInventory; import buildcraft.transport.BlockGenericPipe; +import net.minecraft.inventory.IInventory; -public class PipeLogicDiamond extends PipeLogic implements ISpecialInventory { +public class PipeLogicDiamond extends PipeLogic { - private SimpleInventory filters = new SimpleInventory(54, "items", 1); + private SimpleInventory filters = new SimpleInventory(54, "Filters", 1); /* PIPE LOGIC */ @Override @@ -57,94 +53,7 @@ public class PipeLogicDiamond extends PipeLogic implements ISpecialInventory { filters.writeToNBT(nbttagcompound); } - /* ISPECIALINVENTORY */ - @Override - public int addItem(ItemStack stack, boolean doAdd, ForgeDirection from) { - return 0; + public IInventory getFilters() { + return filters; } - - @Override - public ItemStack[] extractItem(boolean doRemove, ForgeDirection from, int maxItemCount) { - return new ItemStack[0]; - } - - /* IINVENTORY IMPLEMENTATION */ - @Override - public int getSizeInventory() { - return filters.getSizeInventory(); - } - - @Override - public ItemStack getStackInSlot(int i) { - return filters.getStackInSlot(i); - } - - @Override - public String getInvName() { - return "Filters"; - } - - @Override - public int getInventoryStackLimit() { - return filters.getInventoryStackLimit(); - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - return filters.getStackInSlotOnClosing(i); - } - - @Override - public void onInventoryChanged() { - filters.onInventoryChanged(); - } - - @Override - public boolean isUseableByPlayer(EntityPlayer var1) { - return worldObj.getBlockTileEntity(xCoord, yCoord, zCoord) == container; - } - - @Override - public void openChest() { - } - - @Override - public void closeChest() { - } - - @Override - public ItemStack decrStackSize(int i, int j) { - ItemStack stack = filters.decrStackSize(i, j); - - if (CoreProxy.proxy.isSimulating(worldObj)) { - worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); - } - - return stack; - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemstack) { - - filters.setInventorySlotContents(i, itemstack); - if (CoreProxy.proxy.isSimulating(worldObj)) { - worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); - } - - } - - @Override - public boolean isInvNameLocalized() - { - // TODO Auto-generated method stub - return false; - } - - @Override - public boolean isStackValidForSlot(int i, ItemStack itemstack) - { - // TODO Auto-generated method stub - return false; - } - }