Skip to content

Commit

Permalink
work on APSpecialPipedConnection
Browse files Browse the repository at this point in the history
  • Loading branch information
multiplemonomials committed Oct 3, 2015
1 parent 07961b8 commit 9ead6ff
Show file tree
Hide file tree
Showing 5 changed files with 35 additions and 17 deletions.
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ buildscript {

apply plugin: 'forge'

version = "4.6.1"
version = "4.7.0"
group= "com.buildcraft.additionalpipes" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
archivesBaseName = "additionalpipes"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,14 @@
import java.util.List;

import logisticspipes.interfaces.routing.ISpecialPipedConnection;
import logisticspipes.pipes.basic.LogisticsTileGenericPipe;
import logisticspipes.proxy.buildcraft.BCPipeInformationProvider;
import logisticspipes.proxy.specialconnection.SpecialPipeConnection.ConnectionInformation;
import logisticspipes.routing.PipeRoutingConnectionType;
import logisticspipes.routing.pathfinder.IPipeInformationProvider;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.util.ForgeDirection;
import buildcraft.api.transport.IPipeTile;

/**
* Another Logistics Pipes interface class.
Expand All @@ -28,7 +32,7 @@ public boolean init() {
@Override
public boolean isType(IPipeInformationProvider startPipe)
{
return startPipe instanceof PipeLogisticsTeleport;
return startPipe instanceof LogisticsTileGenericPipe || startPipe instanceof BCPipeInformationProvider;
}

@Override
Expand All @@ -37,23 +41,32 @@ public List<ConnectionInformation> getConnections(
EnumSet<PipeRoutingConnectionType> connection,
ForgeDirection side)
{
PipeTeleportInformationProvider startPipeInfo = ((PipeTeleportInformationProvider)startPipeInfoGeneric);
PipeLogisticsTeleport connectedPipe = startPipeInfo.pipe.getConnectedPipe();

ArrayList<ConnectionInformation> connectionList = new ArrayList<ConnectionInformation>();

if(connectedPipe != null)

TileEntity pipeTile = startPipeInfoGeneric.getWorld().getTileEntity(startPipeInfoGeneric.getX(), startPipeInfoGeneric.getY(), startPipeInfoGeneric.getZ());
if(pipeTile instanceof IPipeTile)
{
ConnectionInformation connectionInfo = new ConnectionInformation(new PipeTeleportInformationProvider(connectedPipe),
flags,
connectedPipe.getOpenOrientation().getOpposite(),
connectedPipe.getOpenOrientation().getOpposite(),
1
);
connectionList.add(connectionInfo);

if(((IPipeTile)pipeTile).getPipe() instanceof PipeLogisticsTeleport)
{
PipeLogisticsTeleport nearPipe = (PipeLogisticsTeleport) ((IPipeTile)pipeTile).getPipe();
PipeLogisticsTeleport farPipe = nearPipe.getConnectedPipe();

if(farPipe != null)
{
ConnectionInformation connectionInfo = new ConnectionInformation(new PipeTeleportInformationProvider(farPipe),
flags,
nearPipe.getOpenOrientation().getOpposite(),
farPipe.getOpenOrientation().getOpposite(),
1
);
connectionList.add(connectionInfo);

}
}
}



return connectionList;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,11 @@ public boolean canConnectRedstone() {
public void initialize() {
super.initialize();
}

@Override
public void updateEntity() {

}

@Override
public void onNeighborBlockChange(int blockId) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,6 @@ public PipeSwitchFluids(Item item) {
@Override
public boolean canPipeConnect(TileEntity tile, ForgeDirection side)
{
return tile instanceof IPipeTile;
return tile instanceof IPipeTile && super.canPipeConnect(tile, side);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ public boolean powerOnly()
@Override
public boolean isOnewayPipe()
{
return pipe.getState() == 0x2 || pipe.getState() == 0x3;
return pipe.canReceive() ^ pipe.canSend();
}

@Override
Expand Down

0 comments on commit 9ead6ff

Please sign in to comment.