add redstone engine API

This commit is contained in:
asiekierka 2014-12-15 19:14:26 +01:00
parent ad36ec30cd
commit 778d76b136
3 changed files with 9 additions and 4 deletions

View file

@ -13,6 +13,7 @@ import net.minecraft.util.ResourceLocation;
import net.minecraftforge.common.util.ForgeDirection;
import buildcraft.api.pipes.IPipeContainer;
import buildcraft.api.pipes.IPipeContainer.PipeType;
import buildcraft.api.power.IRedstoneEngineReceiver;
import buildcraft.factory.TilePump;
public class TileEngineWood extends TileEngine {
@ -126,7 +127,7 @@ public class TileEngineWood extends TileEngine {
TileEntity tile = getTile(orientation);
// TODO: Make a proper API out of this
if (tile instanceof TilePump ||
if ((tile instanceof IRedstoneEngineReceiver && ((IRedstoneEngineReceiver) tile).canConnectRedstoneEngine(orientation.getOpposite())) ||
(tile instanceof IPipeContainer && ((IPipeContainer) tile).getPipeType() != PipeType.POWER)) {
super.sendPower();
} else {

View file

@ -29,6 +29,7 @@ import buildcraft.BuildCraftCore;
import buildcraft.BuildCraftFactory;
import buildcraft.api.core.BlockIndex;
import buildcraft.api.core.SafeTimeTracker;
import buildcraft.api.power.IRedstoneEngineReceiver;
import buildcraft.api.tiles.IHasWork;
import buildcraft.core.CoreConstants;
import buildcraft.core.EntityBlock;
@ -41,7 +42,7 @@ import buildcraft.core.proxy.CoreProxy;
import buildcraft.core.utils.BlockUtils;
import buildcraft.core.utils.Utils;
public class TilePump extends TileBuildCraft implements IHasWork, IFluidHandler {
public class TilePump extends TileBuildCraft implements IHasWork, IFluidHandler, IRedstoneEngineReceiver {
public static final int REBUID_DELAY = 512;
public static int MAX_LIQUID = FluidContainerRegistry.BUCKET_VOLUME * 16;
@ -448,4 +449,9 @@ public class TilePump extends TileBuildCraft implements IHasWork, IFluidHandler
public FluidTankInfo[] getTankInfo(ForgeDirection from) {
return new FluidTankInfo[]{tank.getInfo()};
}
@Override
public boolean canConnectRedstoneEngine(ForgeDirection side) {
return true;
}
}

View file

@ -895,8 +895,6 @@ public class TileGenericPipe extends TileEntity implements IFluidHandler,
public boolean hasGate(ForgeDirection direction) {
if (direction == null || direction == ForgeDirection.UNKNOWN) {
return false;
} else if (this.getWorldObj().isRemote) {
return renderState.gateMatrix.isGateExists(direction);
} else {
return sideProperties.pluggables[direction.ordinal()] instanceof GatePluggable;
}