From 8cab946411550b1dae5182aa365411753675e813 Mon Sep 17 00:00:00 2001 From: Calclavia Date: Sat, 18 Jan 2014 13:29:19 +0800 Subject: [PATCH] Added mechanical resistance --- .../mechanical/gear/PartGear.java | 8 ++++-- .../network/IMechanicalConnector.java | 12 +++++---- .../mechanical/network/MechanicalNetwork.java | 27 +++++++++---------- 3 files changed, 26 insertions(+), 21 deletions(-) diff --git a/src/main/java/resonantinduction/mechanical/gear/PartGear.java b/src/main/java/resonantinduction/mechanical/gear/PartGear.java index 697c5313..47e759af 100644 --- a/src/main/java/resonantinduction/mechanical/gear/PartGear.java +++ b/src/main/java/resonantinduction/mechanical/gear/PartGear.java @@ -111,8 +111,9 @@ public class PartGear extends JCuboidPart implements JNormalOcclusion, TFacePart } @Override - public void onNetworkChanged() + public float getResistance() { + return 0.1f; } /** @@ -337,7 +338,10 @@ public class PartGear extends JCuboidPart implements JNormalOcclusion, TFacePart @Override public void sendNetworkPacket(long torque, float angularVelocity) { - tile().getWriteStream(this).writeByte(0).writeLong(torque).writeFloat(angularVelocity).writeBoolean(isClockwise); + if (tile() != null) + { + tile().getWriteStream(this).writeByte(0).writeLong(torque).writeFloat(angularVelocity).writeBoolean(isClockwise); + } } public void read(MCDataInput packet, int packetID) diff --git a/src/main/java/resonantinduction/mechanical/network/IMechanicalConnector.java b/src/main/java/resonantinduction/mechanical/network/IMechanicalConnector.java index a465a958..911c755d 100644 --- a/src/main/java/resonantinduction/mechanical/network/IMechanicalConnector.java +++ b/src/main/java/resonantinduction/mechanical/network/IMechanicalConnector.java @@ -10,13 +10,15 @@ import universalelectricity.api.net.IConnector; */ public interface IMechanicalConnector extends IMechanical, IConnector { - /** - * An update called by the network. - */ - public void onNetworkChanged(); - /** * Uses this connector to send a packet to the client. */ public void sendNetworkPacket(long torque, float angularVelocity); + + /** + * The percentage of resistance caused by this connector. + * + * @return A small value, most likely less than one. + */ + public float getResistance(); } diff --git a/src/main/java/resonantinduction/mechanical/network/MechanicalNetwork.java b/src/main/java/resonantinduction/mechanical/network/MechanicalNetwork.java index 0f39dd65..c4e027ff 100644 --- a/src/main/java/resonantinduction/mechanical/network/MechanicalNetwork.java +++ b/src/main/java/resonantinduction/mechanical/network/MechanicalNetwork.java @@ -35,6 +35,9 @@ public class MechanicalNetwork extends Network> handlerDirectionMap = new LinkedHashMap>(); @@ -49,7 +52,7 @@ public class MechanicalNetwork extends Network 0) { - float division = 0; + float division = connectorResistance; for (IMechanical node : this.getNodes()) { @@ -74,17 +77,10 @@ public class MechanicalNetwork extends Network 0) { // Reset all values related to wires @@ -196,10 +197,6 @@ public class MechanicalNetwork extends Network