Merge branch 'development' into v9

* development:
  Fixed chunk boundary acceptor interaction
This commit is contained in:
aidancbrady 2016-02-19 18:09:14 -05:00
commit 279cccaa9b

View file

@ -69,6 +69,8 @@ public abstract class PartSidedPipe extends TMultiPart implements TSlottedPart,
public boolean redstoneReactive = true;
public boolean forceUpdate = false;
public ConnectionType[] connectionTypes = {ConnectionType.NORMAL, ConnectionType.NORMAL, ConnectionType.NORMAL, ConnectionType.NORMAL, ConnectionType.NORMAL, ConnectionType.NORMAL};
public TileEntity[] cachedAcceptors = new TileEntity[6];
@ -177,12 +179,21 @@ public abstract class PartSidedPipe extends TMultiPart implements TSlottedPart,
}
}
if(sendDesc && !world().isRemote)
if(!world().isRemote)
{
if(forceUpdate)
{
refreshConnections();
forceUpdate = false;
}
if(sendDesc)
{
sendDescUpdate();
sendDesc = false;
}
}
}
public boolean handlesRedstone()
{
@ -276,6 +287,7 @@ public abstract class PartSidedPipe extends TMultiPart implements TSlottedPart,
cachedAcceptors[side.ordinal()] = tileEntity;
markDirtyAcceptor(side);
}
return true;
}
}
@ -321,7 +333,15 @@ public abstract class PartSidedPipe extends TMultiPart implements TSlottedPart,
{
if(canConnectMutual(side))
{
TileEntity tileEntity = Coord4D.get(tile()).getFromSide(side).getTileEntity(world());
Coord4D coord = Coord4D.get(tile()).getFromSide(side);
if(!world().isRemote && !coord.exists(world()))
{
forceUpdate = true;
continue;
}
TileEntity tileEntity = coord.getTileEntity(world());
if(isValidAcceptor(tileEntity, side))
{
@ -330,10 +350,12 @@ public abstract class PartSidedPipe extends TMultiPart implements TSlottedPart,
cachedAcceptors[side.ordinal()] = tileEntity;
markDirtyAcceptor(side);
}
connections |= 1 << side.ordinal();
continue;
}
}
if(cachedAcceptors[side.ordinal()] != null)
{
cachedAcceptors[side.ordinal()] = null;
@ -602,11 +624,11 @@ public abstract class PartSidedPipe extends TMultiPart implements TSlottedPart,
redstonePowered = false;
}
if(!world().isRemote)
{
byte possibleTransmitters = getPossibleTransmitterConnections();
byte possibleAcceptors = getPossibleAcceptorConnections();
if(!world().isRemote)
{
if((possibleTransmitters | possibleAcceptors) != getAllCurrentConnections())
{
sendDesc = true;