Merge branch 'power' into builder
This commit is contained in:
commit
93409516b1
15 changed files with 144 additions and 247 deletions
24
common/buildcraft/api/power/IPowerEmitter.java
Normal file
24
common/buildcraft/api/power/IPowerEmitter.java
Normal file
|
@ -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 <http://www.railcraft.info/>
|
||||
*/
|
||||
public interface IPowerEmitter {
|
||||
|
||||
public boolean canEmitPowerFrom(ForgeDirection side);
|
||||
}
|
|
@ -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 <http://www.railcraft.info/>
|
||||
*/
|
||||
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 stored 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();
|
||||
}
|
||||
|
|
|
@ -80,7 +80,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;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -141,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];
|
||||
|
||||
|
@ -149,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;
|
||||
|
@ -183,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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -251,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;
|
||||
}
|
||||
|
@ -279,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) {
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
@ -94,8 +85,10 @@ public class PipePowerWood extends Pipe implements IPowerReceptor {
|
|||
}
|
||||
}
|
||||
|
||||
if (sources <= 0)
|
||||
if (sources <= 0) {
|
||||
powerHandler.useEnergy(5, 5, true);
|
||||
return;
|
||||
}
|
||||
|
||||
float energyToRemove;
|
||||
|
||||
|
@ -139,6 +132,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 +142,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 + "]");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue