diff --git a/Modding-Library b/Modding-Library index c884042bf..15f4a8049 160000 --- a/Modding-Library +++ b/Modding-Library @@ -1 +1 @@ -Subproject commit c884042bf6f135ebbd00c5aac5de7783f5328520 +Subproject commit 15f4a80499d11ef54ab410adb83fe70d198d122e diff --git a/src/resonantinduction/wire/BlockWire.java b/src/resonantinduction/wire/BlockWire.java index b2a2f99c9..cdf4e1e95 100644 --- a/src/resonantinduction/wire/BlockWire.java +++ b/src/resonantinduction/wire/BlockWire.java @@ -83,6 +83,7 @@ public class BlockWire extends BlockConductor world.setBlockTileEntity(x, y, z, TileEntity.createAndLoadEntity(nbt)); ((IConductor) world.getBlockTileEntity(x, y, z)).refresh(); + world.markBlockForUpdate(x, y, z); } } diff --git a/src/resonantinduction/wire/TileEntityTickWire.java b/src/resonantinduction/wire/TileEntityTickWire.java index bc1dc0455..9e4ba496d 100644 --- a/src/resonantinduction/wire/TileEntityTickWire.java +++ b/src/resonantinduction/wire/TileEntityTickWire.java @@ -19,7 +19,7 @@ import universalelectricity.core.vector.VectorHelper; * * @author Calclavia */ -public class TileEntityTickWire extends TileEntityWire implements IElectrical +public class TileEntityTickWire extends TileEntityWire { private final HashMap furnaces = new HashMap(); private float energyBuffer; @@ -40,7 +40,7 @@ public class TileEntityTickWire extends TileEntityWire implements IElectrical ForgeDirection direction = entry.getKey(); TileEntityFurnace tileEntity = entry.getValue(); - if (tileEntity.getStackInSlot(0) == null) + if (!tileEntity.isInvalid() && tileEntity.getStackInSlot(0) == null) { /** * Steal power from furnace. @@ -56,7 +56,7 @@ public class TileEntityTickWire extends TileEntityWire implements IElectrical if (tileEntity.furnaceBurnTime > 0) { - this.getNetwork().produce(ElectricityPack.getFromWatts(ResonantInduction.FURNACE_WATTAGE, FURNACE_VOLTAGE)); + this.getNetwork().produce(ElectricityPack.getFromWatts(ResonantInduction.FURNACE_WATTAGE / 20, FURNACE_VOLTAGE)); } if (doBlockStateUpdate != tileEntity.furnaceBurnTime > 0) @@ -68,7 +68,7 @@ public class TileEntityTickWire extends TileEntityWire implements IElectrical } } - @Override + // @Override public float receiveElectricity(ForgeDirection from, ElectricityPack receive, boolean doReceive) { this.energyBuffer += receive.getWatts(); @@ -121,53 +121,31 @@ public class TileEntityTickWire extends TileEntityWire implements IElectrical } } - /** - * Furnace Connection - */ - @Override - public TileEntity[] getAdjacentConnections() - { - super.getAdjacentConnections(); - - for (byte i = 0; i < 6; i++) - { - ForgeDirection side = ForgeDirection.getOrientation(i); - TileEntity tileEntity = VectorHelper.getTileEntityFromSide(this.worldObj, new Vector3(this), side); - - if (tileEntity instanceof TileEntityFurnace) - { - this.adjacentConnections[i] = tileEntity; - } - } - - return this.adjacentConnections; - } - @Override public boolean canUpdate() { return true; } - @Override + // @Override public ElectricityPack provideElectricity(ForgeDirection from, ElectricityPack request, boolean doProvide) { return new ElectricityPack(); } - @Override + // @Override public float getRequest(ForgeDirection direction) { - return this.furnaces.size() > 0 ? ResonantInduction.FURNACE_WATTAGE : 0; + return this.furnaces.size() > 0 ? ResonantInduction.FURNACE_WATTAGE / 20 : 0; } - @Override + // @Override public float getProvide(ForgeDirection direction) { return 0; } - @Override + // @Override public float getVoltage() { return FURNACE_VOLTAGE; diff --git a/src/resonantinduction/wire/TileEntityWire.java b/src/resonantinduction/wire/TileEntityWire.java index 904421eb8..97cf592fb 100644 --- a/src/resonantinduction/wire/TileEntityWire.java +++ b/src/resonantinduction/wire/TileEntityWire.java @@ -5,6 +5,7 @@ import java.util.ArrayList; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.packet.Packet; import net.minecraft.tileentity.TileEntity; +import net.minecraft.tileentity.TileEntityFurnace; import net.minecraftforge.common.ForgeDirection; import resonantinduction.PacketHandler; import resonantinduction.base.IPacketReceiver; @@ -21,6 +22,9 @@ public class TileEntityWire extends TileEntityUniversalConductor implements IPac public int dyeID = DEFAULT_COLOR; public boolean isInsulated = false; + /** Client Side Connection Check */ + public boolean isTick = false; + @Override public boolean canConnect(ForgeDirection direction) { @@ -59,7 +63,7 @@ public class TileEntityWire extends TileEntityUniversalConductor implements IPac if (tileEntity != null) { - if (tileEntity.getClass() == this.getClass() && tileEntity instanceof INetworkProvider) + if (tileEntity.getClass().isInstance(this) && tileEntity instanceof INetworkProvider) { this.getNetwork().merge(((INetworkProvider) tileEntity).getNetwork()); } @@ -113,7 +117,7 @@ public class TileEntityWire extends TileEntityUniversalConductor implements IPac @Override public Packet getDescriptionPacket() { - return PacketHandler.getTileEntityPacket(this, this.isInsulated, this.dyeID); + return PacketHandler.getTileEntityPacket(this, this.isInsulated, this.dyeID, this instanceof TileEntityTickWire); } @Override @@ -123,6 +127,7 @@ public class TileEntityWire extends TileEntityUniversalConductor implements IPac { this.isInsulated = input.readBoolean(); this.dyeID = input.readInt(); + this.isTick = input.readBoolean(); } catch (Exception e) { @@ -141,6 +146,30 @@ public class TileEntityWire extends TileEntityUniversalConductor implements IPac this.isInsulated = nbt.getBoolean("isInsulated"); } + /** + * Furnace connection for tick wires + */ + @Override + public TileEntity[] getAdjacentConnections() + { + super.getAdjacentConnections(); + + if (this.isTick) + { + for (byte i = 0; i < 6; i++) + { + ForgeDirection side = ForgeDirection.getOrientation(i); + TileEntity tileEntity = VectorHelper.getTileEntityFromSide(this.worldObj, new Vector3(this), side); + + if (tileEntity instanceof TileEntityFurnace) + { + this.adjacentConnections[i] = tileEntity; + } + } + } + return this.adjacentConnections; + } + /** * Writes a tile entity to NBT. */