parent
b76846e971
commit
9f0403a41c
3 changed files with 26 additions and 22 deletions
|
@ -19,6 +19,7 @@ import net.minecraft.nbt.NBTTagCompound;
|
||||||
import net.minecraft.network.Packet;
|
import net.minecraft.network.Packet;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
import cofh.api.energy.IEnergyHandler;
|
||||||
import cofh.api.energy.IEnergyReceiver;
|
import cofh.api.energy.IEnergyReceiver;
|
||||||
import buildcraft.BuildCraftCore;
|
import buildcraft.BuildCraftCore;
|
||||||
import buildcraft.api.core.ISerializable;
|
import buildcraft.api.core.ISerializable;
|
||||||
|
@ -27,7 +28,8 @@ import buildcraft.core.network.ISynchronizedTile;
|
||||||
import buildcraft.core.network.PacketTileUpdate;
|
import buildcraft.core.network.PacketTileUpdate;
|
||||||
import buildcraft.core.utils.Utils;
|
import buildcraft.core.utils.Utils;
|
||||||
|
|
||||||
public abstract class TileBuildCraft extends TileEntity implements IEnergyReceiver, ISynchronizedTile, ISerializable {
|
// TODO: Move back to IEnergyReceiver when EIO updates
|
||||||
|
public abstract class TileBuildCraft extends TileEntity implements IEnergyHandler, ISynchronizedTile, ISerializable {
|
||||||
protected TileBuffer[] cache;
|
protected TileBuffer[] cache;
|
||||||
protected HashSet<EntityPlayer> guiWatchers = new HashSet<EntityPlayer>();
|
protected HashSet<EntityPlayer> guiWatchers = new HashSet<EntityPlayer>();
|
||||||
|
|
||||||
|
|
|
@ -21,8 +21,11 @@ import cofh.api.energy.IEnergyReceiver;
|
||||||
import buildcraft.BuildCraftCore;
|
import buildcraft.BuildCraftCore;
|
||||||
import buildcraft.BuildCraftTransport;
|
import buildcraft.BuildCraftTransport;
|
||||||
import buildcraft.api.core.SafeTimeTracker;
|
import buildcraft.api.core.SafeTimeTracker;
|
||||||
|
import buildcraft.api.power.IEngine;
|
||||||
import buildcraft.api.transport.IPipeTile.PipeType;
|
import buildcraft.api.transport.IPipeTile.PipeType;
|
||||||
import buildcraft.core.DefaultProps;
|
import buildcraft.core.DefaultProps;
|
||||||
|
import buildcraft.core.TileBuildCraft;
|
||||||
|
import buildcraft.energy.TileEngine;
|
||||||
import buildcraft.transport.network.PacketPowerUpdate;
|
import buildcraft.transport.network.PacketPowerUpdate;
|
||||||
import buildcraft.transport.pipes.PipePowerCobblestone;
|
import buildcraft.transport.pipes.PipePowerCobblestone;
|
||||||
import buildcraft.transport.pipes.PipePowerDiamond;
|
import buildcraft.transport.pipes.PipePowerDiamond;
|
||||||
|
@ -92,14 +95,12 @@ public class PipeTransportPower extends PipeTransport {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (container.pipe instanceof PipePowerWood) {
|
if (container.pipe instanceof PipePowerWood) {
|
||||||
if (tile instanceof IEnergyConnection && ((IEnergyConnection) tile).canConnectEnergy(side.getOpposite())) {
|
return isPowerSource(tile, side);
|
||||||
// Disregard tiles which are consumers but NOT providers
|
} else {
|
||||||
return !(tile instanceof IEnergyReceiver && !(tile instanceof IEnergyProvider));
|
if (tile instanceof IEngine) {
|
||||||
} else {
|
// Disregard engines for this.
|
||||||
// Disregard tiles which can't connect either, I guess.
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
if (tile instanceof IEnergyReceiver) {
|
if (tile instanceof IEnergyReceiver) {
|
||||||
IEnergyReceiver handler = (IEnergyReceiver) tile;
|
IEnergyReceiver handler = (IEnergyReceiver) tile;
|
||||||
if (handler != null && handler.canConnectEnergy(side.getOpposite())) {
|
if (handler != null && handler.canConnectEnergy(side.getOpposite())) {
|
||||||
|
@ -111,6 +112,21 @@ public class PipeTransportPower extends PipeTransport {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isPowerSource(TileEntity tile, ForgeDirection side) {
|
||||||
|
if (tile instanceof IEnergyConnection && ((IEnergyConnection) tile).canConnectEnergy(side.getOpposite())) {
|
||||||
|
// TODO: Remove this hack! It's only done until Ender IO/MFR move to the new RF API
|
||||||
|
if (tile instanceof TileBuildCraft && !(tile instanceof IEngine)) {
|
||||||
|
// Disregard non-engine BC tiles
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
// Disregard tiles which are consumers but NOT providers
|
||||||
|
return (tile instanceof IEngine) || !(tile instanceof IEnergyReceiver && !(tile instanceof IEnergyProvider));
|
||||||
|
} else {
|
||||||
|
// Disregard tiles which can't connect either, I guess.
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onNeighborBlockChange(int blockId) {
|
public void onNeighborBlockChange(int blockId) {
|
||||||
super.onNeighborBlockChange(blockId);
|
super.onNeighborBlockChange(blockId);
|
||||||
|
|
|
@ -74,7 +74,7 @@ public class PipePowerWood extends Pipe<PipeTransportPower> implements IPipeTran
|
||||||
} else {
|
} else {
|
||||||
TileEntity tile = container.getTile(o);
|
TileEntity tile = container.getTile(o);
|
||||||
|
|
||||||
if (powerSources[o.ordinal()] = isPowerSource(tile, o)) {
|
if (powerSources[o.ordinal()] = transport.isPowerSource(tile, o)) {
|
||||||
sources++;
|
sources++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -184,20 +184,6 @@ public class PipePowerWood extends Pipe<PipeTransportPower> implements IPipeTran
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isPowerSource(TileEntity tile, ForgeDirection from) {
|
|
||||||
if (!transport.inputOpen(from)) {
|
|
||||||
return false;
|
|
||||||
} else {
|
|
||||||
if (tile instanceof IEnergyConnection && ((IEnergyConnection) tile).canConnectEnergy(from.getOpposite())) {
|
|
||||||
// Disregard tiles which are consumers but NOT providers
|
|
||||||
return !(tile instanceof IEnergyReceiver && !(tile instanceof IEnergyProvider));
|
|
||||||
} else {
|
|
||||||
// Disregard tiles which can't connect either, I guess.
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean canConnectEnergy(ForgeDirection from) {
|
public boolean canConnectEnergy(ForgeDirection from) {
|
||||||
return true;
|
return true;
|
||||||
|
|
Loading…
Reference in a new issue