Fixed #245 - Multimeter rendering twice
This commit is contained in:
parent
5db13056dd
commit
aa86e9bf34
3 changed files with 24 additions and 27 deletions
|
@ -54,7 +54,7 @@ public class MultimeterNetwork extends Network<MultimeterNetwork, PartMultimeter
|
|||
* If the screen is not a perfect rectangle, don't render.
|
||||
*/
|
||||
public boolean isEnabled = true;
|
||||
public PartMultimeter primaryRenderer = null;
|
||||
public PartMultimeter primaryMultimeter = null;
|
||||
|
||||
public MultimeterNetwork()
|
||||
{
|
||||
|
@ -65,6 +65,11 @@ public class MultimeterNetwork extends Network<MultimeterNetwork, PartMultimeter
|
|||
graphs.add(fluidGraph);
|
||||
}
|
||||
|
||||
public boolean isPrimary(PartMultimeter check)
|
||||
{
|
||||
return primaryMultimeter == check;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addConnector(PartMultimeter connector)
|
||||
{
|
||||
|
@ -111,6 +116,7 @@ public class MultimeterNetwork extends Network<MultimeterNetwork, PartMultimeter
|
|||
{
|
||||
if (getConnectors().size() > 0)
|
||||
{
|
||||
primaryMultimeter = null;
|
||||
upperBound = null;
|
||||
lowerBound = null;
|
||||
super.reconstruct();
|
||||
|
@ -146,6 +152,9 @@ public class MultimeterNetwork extends Network<MultimeterNetwork, PartMultimeter
|
|||
{
|
||||
node.setNetwork(this);
|
||||
|
||||
if (primaryMultimeter == null)
|
||||
primaryMultimeter = node;
|
||||
|
||||
if (upperBound == null)
|
||||
{
|
||||
upperBound = node.getPosition().translate(1);
|
||||
|
|
|
@ -83,12 +83,15 @@ public class PartMultimeter extends JCuboidPart implements IConnector<Multimeter
|
|||
private DetectMode detectMode = DetectMode.NONE;
|
||||
private long redstoneTriggerLimit;
|
||||
|
||||
// TODO: Move warn settings over.
|
||||
public boolean redstoneOn;
|
||||
private byte side;
|
||||
private int ticks;
|
||||
|
||||
private MultimeterNetwork network;
|
||||
|
||||
boolean isPrimary;
|
||||
|
||||
public void preparePlacement(int side, int itemDamage)
|
||||
{
|
||||
this.side = (byte) (side);
|
||||
|
@ -122,10 +125,6 @@ public class PartMultimeter extends JCuboidPart implements IConnector<Multimeter
|
|||
|
||||
getNetwork().reconstruct();
|
||||
}
|
||||
else
|
||||
{
|
||||
getNetwork().primaryRenderer = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -342,7 +341,11 @@ public class PartMultimeter extends JCuboidPart implements IConnector<Multimeter
|
|||
public void writeGraph(MCDataOutput packet)
|
||||
{
|
||||
packet.writeByte(2);
|
||||
packet.writeNBTTagCompound(getNetwork().save());
|
||||
isPrimary = getNetwork().isPrimary(this);
|
||||
packet.writeBoolean(isPrimary);
|
||||
|
||||
if (isPrimary)
|
||||
packet.writeNBTTagCompound(getNetwork().save());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -368,7 +371,10 @@ public class PartMultimeter extends JCuboidPart implements IConnector<Multimeter
|
|||
}
|
||||
else if (packetID == 2)
|
||||
{
|
||||
getNetwork().load(packet.readNBTTagCompound());
|
||||
isPrimary = packet.readBoolean();
|
||||
|
||||
if (isPrimary)
|
||||
getNetwork().load(packet.readNBTTagCompound());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -607,28 +613,11 @@ public class PartMultimeter extends JCuboidPart implements IConnector<Multimeter
|
|||
return new universalelectricity.api.vector.Vector3(x(), y(), z());
|
||||
}
|
||||
|
||||
/**
|
||||
* Only one multimeter renders the text.
|
||||
*/
|
||||
public boolean isPrimaryRendering()
|
||||
{
|
||||
if (getNetwork().primaryRenderer == null || !getNetwork().isValidConnector(getNetwork().primaryRenderer))
|
||||
{
|
||||
for (PartMultimeter m : getNetwork().getConnectors())
|
||||
{
|
||||
getNetwork().primaryRenderer = m;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return getNetwork().primaryRenderer == this;
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public Cuboid6 getRenderBounds()
|
||||
{
|
||||
if (isPrimaryRendering())
|
||||
if (isPrimary)
|
||||
return Cuboid6.full.copy().expand(Double.POSITIVE_INFINITY);
|
||||
|
||||
return Cuboid6.full;
|
||||
|
|
|
@ -145,7 +145,7 @@ public class RenderMultimeter implements ISimpleItemRenderer
|
|||
* Only one block renders this text.
|
||||
* Render all the multimeter text
|
||||
*/
|
||||
if (part.getNetwork().isEnabled && part.isPrimaryRendering())
|
||||
if (part.getNetwork().isEnabled && part.isPrimary)
|
||||
{
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated(x + 0.5, y + 0.5, z + 0.5);
|
||||
|
@ -213,5 +213,4 @@ public class RenderMultimeter implements ISimpleItemRenderer
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in a new issue