Merge pull request #329 from Xhamolk/patch-2
Pipes connecting improperly (fix of my last PR)
This commit is contained in:
commit
83d2b51931
2 changed files with 17 additions and 6 deletions
|
@ -16,6 +16,7 @@ import java.util.Random;
|
|||
|
||||
import buildcraft.BuildCraftTransport;
|
||||
import buildcraft.api.core.Orientations;
|
||||
import buildcraft.api.core.Position;
|
||||
import buildcraft.api.core.SafeTimeTracker;
|
||||
import buildcraft.api.gates.Action;
|
||||
import buildcraft.api.gates.ActionManager;
|
||||
|
@ -26,6 +27,7 @@ import buildcraft.api.gates.ITriggerParameter;
|
|||
import buildcraft.api.gates.Trigger;
|
||||
import buildcraft.api.gates.TriggerParameter;
|
||||
import buildcraft.api.transport.IPipe;
|
||||
import buildcraft.api.transport.IPipeConnection
|
||||
import buildcraft.core.IDropControlInventory;
|
||||
import buildcraft.core.network.TilePacketWrapper;
|
||||
import buildcraft.core.triggers.ActionRedstoneOutput;
|
||||
|
@ -131,6 +133,11 @@ public abstract class Pipe implements IPipe, IDropControlInventory {
|
|||
}
|
||||
|
||||
public boolean isPipeConnected(TileEntity tile) {
|
||||
if( tile instanceof IPipeConnection && !(tile instanceof TileGenericPipe) ){
|
||||
Orientations or = Utils.get3dOrientation(new Position(this.container), new Position(tile));
|
||||
if( !((IPipeConnection) tile).isPipeConnected(or) )
|
||||
return false;
|
||||
}
|
||||
return logic.isPipeConnected(tile) && transport.isPipeConnected(tile);
|
||||
}
|
||||
|
||||
|
|
|
@ -41,6 +41,7 @@ import net.minecraft.src.NBTTagCompound;
|
|||
import net.minecraft.src.NBTTagList;
|
||||
import net.minecraft.src.Packet;
|
||||
import net.minecraft.src.TileEntity;
|
||||
import net.minecraftforge.common.ISidedInventory;
|
||||
|
||||
public class PipeTransportItems extends PipeTransport {
|
||||
|
||||
|
@ -145,13 +146,12 @@ public class PipeTransportItems extends PipeTransport {
|
|||
if (!Utils.checkPipesConnections(entity, container))
|
||||
return false;
|
||||
|
||||
if (entity instanceof TileGenericPipe)
|
||||
if (container.pipe.transport instanceof PipeTransportItems)
|
||||
return container.pipe.transport.inputOpen(o);
|
||||
if (entity instanceof IPipeEntry)
|
||||
return true;
|
||||
else if (entity instanceof TileGenericPipe) {
|
||||
TileGenericPipe pipe = (TileGenericPipe) entity;
|
||||
|
||||
return pipe.pipe.transport instanceof PipeTransportItems;
|
||||
} else if (entity instanceof IInventory)
|
||||
return ((IPipeEntry) entity).acceptItems();
|
||||
if (entity instanceof IInventory)
|
||||
if(Transactor.getTransactorFor(entity).add(item.getItemStack(), o.reverse(), false).stackSize > 0)
|
||||
return true;
|
||||
|
||||
|
@ -437,6 +437,10 @@ public class PipeTransportItems extends PipeTransport {
|
|||
|
||||
@Override
|
||||
public boolean isPipeConnected(TileEntity tile) {
|
||||
if( tile instanceof ISidedInventory ){
|
||||
Orientations or = Utils.get3dOrientation(new Position(container), new Position(tile));
|
||||
return ((ISidedInventory) tile).getSizeInventorySide(or.toDirection()) > 0;
|
||||
}
|
||||
return tile instanceof TileGenericPipe
|
||||
|| tile instanceof IPipeEntry
|
||||
|| tile instanceof ISpecialInventory
|
||||
|
|
Loading…
Reference in a new issue