public static void Transfer(ElectricalWireProperty source, List <ElectricalWireProperty> targets, bool connected = true) { if (source == null || targets == null) { return; } source.current.magnitude = 0; if (connected) { foreach (var target in targets) { target.voltage = source.voltage; target.frequency = source.frequency; target.maxPower = source.maxPower; source.current += target.current; } } else { foreach (var target in targets) { target.voltage.magnitude = 0; target.frequency = 0; target.maxPower = 0; } } }
public static void Transfer(ElectricalPort source, ElectricalPort target, bool connected = true) { if (source == null || target == null) { return; } ElectricalWireProperty.Transfer(source.wireProperty, target.wireProperty, connected); }
public void Update() { switch (type) { case WireType.None: case WireType.Illegal: break; case WireType.Digital: DigitalOutput dout = digitalOutputs[0]; foreach (var p in digitalInputs) { p.value = dout.value; } break; case WireType.Electrical: ElectricalOutput eout = electricalOutputs[0]; ElectricalWireProperty.Transfer(eout.wireProperty, new List <ElectricalWireProperty>(from i in electricalInputs select i.wireProperty)); break; default: break; } }
public static void Transfer(ElectricalWireProperty source, ElectricalWireProperty target, bool connected = true) { if (source == null || target == null) { return; } if (connected) { target.voltage = source.voltage; target.frequency = source.frequency; target.maxPower = source.maxPower; source.current = target.current; } else { target.voltage.magnitude = 0; target.frequency = 0; target.maxPower = 0; source.current.magnitude = 0; } }