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)
|
for(ForgeDirection side : ForgeDirection.VALID_DIRECTIONS)
|
||||||
{
|
{
|
||||||
renderGasSide(side, tube);
|
renderGasSide(side, tube);
|
||||||
}
|
}
|
||||||
|
|
||||||
CCRenderState.draw();
|
CCRenderState.draw();
|
||||||
|
@ -375,7 +375,7 @@ public class RenderPartTransmitter implements IIconRegister
|
||||||
public void renderGasSide(ForgeDirection side, PartPressurizedTube tube)
|
public void renderGasSide(ForgeDirection side, PartPressurizedTube tube)
|
||||||
{
|
{
|
||||||
boolean connected = PartTransmitter.connectionMapContainsSide(tube.getAllCurrentConnections(), side);
|
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)
|
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)
|
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());
|
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)
|
public ConnectionType getConnectionType(ForgeDirection side)
|
||||||
{
|
{
|
||||||
if(!connectionMapContainsSide(getAllCurrentConnections(), side))
|
if(!connectionMapContainsSide(getAllCurrentConnections(), side))
|
||||||
|
{
|
||||||
return ConnectionType.NONE;
|
return ConnectionType.NONE;
|
||||||
if(connectionMapContainsSide(currentTransmitterConnections, side))
|
}
|
||||||
|
else if(connectionMapContainsSide(currentTransmitterConnections, side))
|
||||||
|
{
|
||||||
return ConnectionType.NORMAL;
|
return ConnectionType.NORMAL;
|
||||||
|
}
|
||||||
|
|
||||||
return connectionTypes[side.ordinal()];
|
return connectionTypes[side.ordinal()];
|
||||||
}
|
}
|
||||||
|
@ -425,12 +429,13 @@ public abstract class PartSidedPipe extends TMultiPart implements TSlottedPart,
|
||||||
{
|
{
|
||||||
return RenderPartTransmitter.large_models.get(name);
|
return RenderPartTransmitter.large_models.get(name);
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
{
|
|
||||||
return RenderPartTransmitter.small_models.get(name);
|
return RenderPartTransmitter.small_models.get(name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public abstract void onModeChange(ForgeDirection side);
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onSneakRightClick(EntityPlayer player, int side)
|
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()];
|
connectionTypes[hit.subHit] = ConnectionType.nextType[connectionTypes[hit.subHit].ordinal()];
|
||||||
sendDesc = true;
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -238,6 +238,17 @@ public abstract class PartTransmitter<N extends DynamicNetwork<?, N>> extends Pa
|
||||||
super.preRemove();
|
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
|
@Override
|
||||||
public void onAdded()
|
public void onAdded()
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue