Fix a few crashes, begin actual side-based implementation
This commit is contained in:
parent
4d6a2a31b1
commit
c5269cc1ab
3 changed files with 34 additions and 6 deletions
|
@ -338,7 +338,7 @@ public class RenderPartTransmitter implements IIconRegister
|
|||
|
||||
for(ForgeDirection side : ForgeDirection.VALID_DIRECTIONS)
|
||||
{
|
||||
renderGasSide(side, tube);
|
||||
renderGasSide(side, tube);
|
||||
}
|
||||
|
||||
CCRenderState.draw();
|
||||
|
@ -375,7 +375,7 @@ public class RenderPartTransmitter implements IIconRegister
|
|||
public void renderGasSide(ForgeDirection side, PartPressurizedTube tube)
|
||||
{
|
||||
boolean connected = PartTransmitter.connectionMapContainsSide(tube.getAllCurrentConnections(), side);
|
||||
renderTransparency(tube.getTransmitterNetwork().gasStored.getGas().getIcon(), tube.getModelForSide(side, true), new ColourRGBA(1.0, 1.0, 1.0, tube.currentScale));
|
||||
renderTransparency(tube.getTransmitterNetwork().refGas.getIcon(), tube.getModelForSide(side, true), new ColourRGBA(1.0, 1.0, 1.0, tube.currentScale));
|
||||
}
|
||||
|
||||
public void renderPart(Icon icon, CCModel cc, double x, double y, double z)
|
||||
|
|
|
@ -173,7 +173,7 @@ public abstract class PartSidedPipe extends TMultiPart implements TSlottedPart,
|
|||
|
||||
for(ForgeDirection side : ForgeDirection.VALID_DIRECTIONS)
|
||||
{
|
||||
if(canConnectMutual(side))
|
||||
if(connectionTypes[side.ordinal()] != ConnectionType.NONE && canConnectMutual(side))
|
||||
{
|
||||
TileEntity tileEntity = Object3D.get(tile()).getFromSide(side).getTileEntity(world());
|
||||
|
||||
|
@ -388,9 +388,13 @@ public abstract class PartSidedPipe extends TMultiPart implements TSlottedPart,
|
|||
public ConnectionType getConnectionType(ForgeDirection side)
|
||||
{
|
||||
if(!connectionMapContainsSide(getAllCurrentConnections(), side))
|
||||
{
|
||||
return ConnectionType.NONE;
|
||||
if(connectionMapContainsSide(currentTransmitterConnections, side))
|
||||
}
|
||||
else if(connectionMapContainsSide(currentTransmitterConnections, side))
|
||||
{
|
||||
return ConnectionType.NORMAL;
|
||||
}
|
||||
|
||||
return connectionTypes[side.ordinal()];
|
||||
}
|
||||
|
@ -425,12 +429,13 @@ public abstract class PartSidedPipe extends TMultiPart implements TSlottedPart,
|
|||
{
|
||||
return RenderPartTransmitter.large_models.get(name);
|
||||
}
|
||||
else
|
||||
{
|
||||
else {
|
||||
return RenderPartTransmitter.small_models.get(name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public abstract void onModeChange(ForgeDirection side);
|
||||
|
||||
@Override
|
||||
public boolean onSneakRightClick(EntityPlayer player, int side)
|
||||
|
@ -445,6 +450,18 @@ public abstract class PartSidedPipe extends TMultiPart implements TSlottedPart,
|
|||
{
|
||||
connectionTypes[hit.subHit] = ConnectionType.nextType[connectionTypes[hit.subHit].ordinal()];
|
||||
sendDesc = true;
|
||||
|
||||
onModeChange(ForgeDirection.getOrientation(side));
|
||||
|
||||
return true;
|
||||
}
|
||||
else if(hit.subHit == 6 && connectionTypes[side] == ConnectionType.NONE)
|
||||
{
|
||||
connectionTypes[side] = ConnectionType.NORMAL;
|
||||
sendDesc = true;
|
||||
|
||||
onModeChange(ForgeDirection.getOrientation(side));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -238,6 +238,17 @@ public abstract class PartTransmitter<N extends DynamicNetwork<?, N>> extends Pa
|
|||
super.preRemove();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onModeChange(ForgeDirection side)
|
||||
{
|
||||
refreshTransmitterNetwork();
|
||||
|
||||
if(!world().isRemote)
|
||||
{
|
||||
PacketHandler.sendPacket(Transmission.CLIENTS_DIM, new PacketTransmitterUpdate().setParams(PacketType.UPDATE, tile()), world().provider.dimensionId);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAdded()
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue