From 6beb785e4266b13aa0ee7ea3ce8064267a6acb74 Mon Sep 17 00:00:00 2001 From: Calclavia Date: Sun, 16 Feb 2014 15:44:58 +0800 Subject: [PATCH] Fixed multimeter render spacing and added power --- .../multimeter/RenderMultimeter.java | 23 ++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/electrical/src/main/java/resonantinduction/electrical/multimeter/RenderMultimeter.java b/electrical/src/main/java/resonantinduction/electrical/multimeter/RenderMultimeter.java index f7ec4aff..f3a35522 100644 --- a/electrical/src/main/java/resonantinduction/electrical/multimeter/RenderMultimeter.java +++ b/electrical/src/main/java/resonantinduction/electrical/multimeter/RenderMultimeter.java @@ -157,9 +157,26 @@ public class RenderMultimeter implements ISimpleItemRenderer // TODO: Add other dispaly info support. List information = new ArrayList(); - if (part.getNetwork().energyGraph.get(0) > 0) + if (part.getNetwork().energyGraph.get(0) > 0 && part.getNetwork().energyGraph.points.size() > 0) + { information.add(UnitDisplay.getDisplay(part.getNetwork().energyGraph.get(0), Unit.JOULES)); + /** + * Compute power + */ + long power = 0; + + for (long point : part.getNetwork().energyGraph.points) + { + power += point; + } + + power /= part.getNetwork().energyGraph.points.size(); + + if (power > 0) + information.add("Power: " + UnitDisplay.getDisplay(power * 20, Unit.WATT)); + } + if (part.getNetwork().energyCapacityGraph.get(0) > 0) information.add("Max: " + UnitDisplay.getDisplay(part.getNetwork().energyCapacityGraph.get(0), Unit.JOULES)); @@ -175,9 +192,9 @@ public class RenderMultimeter implements ISimpleItemRenderer if (information.size() <= 0) information.add("No information"); - float displacement = information.size() / 5f; + float displacement = 0.7f / information.size(); float maxScale = (float) (part.getNetwork().size.x + part.getNetwork().size.z) * 0.005f; - GL11.glTranslatef(0, 0, -displacement / 2 * (information.size() / 2)); + GL11.glTranslatef(0, 0, -displacement * (information.size() / 2f)); for (int i = 0; i < information.size(); i++) {