public static void PowerUpdateCurrentChange(ElectricalOIinheritance Supply) { Supply.FlushSupplyAndUp(Supply.GameObject()); if (Supply.connectedDevices.Count > 0) { if (!Supply.Data.ChangeToOff) { if (Supply.Data.SupplyingCurrent != 0) { Supply.ElectricityOutput(Supply.Data.SupplyingCurrent, Supply.GameObject()); } else if (Supply.Data.SupplyingVoltage != 0) { int SourceInstanceID = Supply.GameObject().GetInstanceID(); Supply.ElectricityOutput((Supply.Data.SupplyingVoltage) / (Supply.Data.InternalResistance + ElectricityFunctions.WorkOutResistance(Supply.Data.ResistanceComingFrom[SourceInstanceID])), Supply.GameObject()); } } else { foreach (ElectricalOIinheritance connectedDevice in Supply.connectedDevices) { ElectricalSynchronisation.NUCurrentChange.Add(connectedDevice.InData.ControllingDevice); } } ELCurrent.Currentloop(Supply.GameObject()); } if (Supply.Data.ChangeToOff) { Supply.Data.ChangeToOff = false; Supply.InData.ControllingDevice.TurnOffCleanup(); ElectricalSynchronisation.RemoveSupply(Supply.InData.ControllingUpdate, Supply.InData.Categorytype); } }
public static void PowerUpdateCurrentChange(ModuleSupplyingDevice Supply) { Supply.ControllingNode.Node.FlushSupplyAndUp(Supply.gameObject); if (!Supply.ControllingNode.Node.Data.ChangeToOff) { if (Supply.ControllingNode.Node.Data.SupplyingCurrent != 0) { Supply.ControllingNode.Node.ElectricityOutput(Supply.ControllingNode.Node.Data.SupplyingCurrent, Supply.ControllingNode.Node.GameObject()); } else if (Supply.ControllingNode.Node.Data.SupplyingVoltage != 0) { int SourceInstanceID = Supply.ControllingNode.Node.GameObject().GetInstanceID(); float Current = (Supply.SupplyingVoltage) / (Supply.InternalResistance + ElectricityFunctions.WorkOutResistance(Supply.ControllingNode.Node.Data.SupplyDependent[SourceInstanceID].ResistanceComingFrom)); Supply.ControllingNode.Node.ElectricityOutput(Current, Supply.gameObject); } } else { foreach (ElectricalOIinheritance connectedDevice in Supply.ControllingNode.Node.connectedDevices) { if (ElectricalSynchronisation.ReactiveSuppliesSet.Contains(connectedDevice.InData.Categorytype)) { ElectricalSynchronisation.NUCurrentChange.Add(connectedDevice.InData.ControllingDevice); } } } ELCurrent.Currentloop(Supply.gameObject); if (Supply.ControllingNode.Node.Data.ChangeToOff) { Supply.ControllingNode.Node.Data.ChangeToOff = false; Supply.ControllingNode.TurnOffCleanup(); ElectricalSynchronisation.RemoveSupply(Supply.ControllingNode.Node.InData.ControllingDevice, Supply.ControllingNode.Node.InData.Categorytype); } }
public static void ElectricityInput(float Current, GameObject SourceInstance, ElectricalOIinheritance ComingFrom, ElectricalOIinheritance Thiswire) { //Logger.Log (tick.ToString () + " <tick " + Current.ToString () + " <Current " + SourceInstance.ToString () + " <SourceInstance " + ComingFrom.ToString () + " <ComingFrom " + Thiswire.ToString () + " <Thiswire ", Category.Electrical); int SourceInstanceID = SourceInstance.GetInstanceID(); if (!(Thiswire.Data.SourceVoltages.ContainsKey(SourceInstanceID))) { Thiswire.Data.SourceVoltages[SourceInstanceID] = new float(); } if (!(Thiswire.Data.CurrentComingFrom.ContainsKey(SourceInstanceID))) { Thiswire.Data.CurrentComingFrom[SourceInstanceID] = new Dictionary <ElectricalOIinheritance, float>(); } Thiswire.Data.CurrentComingFrom[SourceInstanceID][ComingFrom] = Current; if (!(Thiswire.Data.ResistanceComingFrom.ContainsKey(SourceInstanceID))) { ElectricalSynchronisation.StructureChange = true; ElectricalSynchronisation.NUStructureChangeReact.Add(Thiswire.InData.ControllingUpdate); ElectricalSynchronisation.NUResistanceChange.Add(Thiswire.InData.ControllingUpdate); ElectricalSynchronisation.NUCurrentChange.Add(Thiswire.InData.ControllingUpdate); Logger.LogErrorFormat("Resistance isn't initialised on {1}", Category.Electrical, SourceInstance); return; } Thiswire.Data.SourceVoltages[SourceInstanceID] = Current * (ElectricityFunctions.WorkOutResistance(Thiswire.Data.ResistanceComingFrom[SourceInstanceID])); ELCurrent.CurrentWorkOnNextListADD(Thiswire); Thiswire.Data.CurrentStoreValue = ElectricityFunctions.WorkOutCurrent(Thiswire.Data.CurrentComingFrom[SourceInstanceID]); }
public static void ElectricityInput(float Current, GameObject SourceInstance, ElectricalOIinheritance ComingFrom, ElectricalOIinheritance Thiswire) { //Logger.Log (tick.ToString () + " <tick " + Current.ToString () + " <Current " + SourceInstance.ToString () + " <SourceInstance " + ComingFrom.ToString () + " <ComingFrom " + Thiswire.ToString () + " <Thiswire ", Category.Electrical); int SourceInstanceID = SourceInstance.GetInstanceID(); if (!(Thiswire.Data.SourceVoltages.ContainsKey(SourceInstanceID))) { Thiswire.Data.SourceVoltages[SourceInstanceID] = new float(); } if (!(Thiswire.Data.CurrentComingFrom.ContainsKey(SourceInstanceID))) { Thiswire.Data.CurrentComingFrom[SourceInstanceID] = new Dictionary <ElectricalOIinheritance, float>(); } Thiswire.Data.CurrentComingFrom[SourceInstanceID][ComingFrom] = Current; Thiswire.Data.SourceVoltages[SourceInstanceID] = Current * (ElectricityFunctions.WorkOutResistance(Thiswire.Data.ResistanceComingFrom[SourceInstanceID])); ELCurrent.CurrentWorkOnNextListADD(Thiswire); Thiswire.Data.CurrentStoreValue = ElectricityFunctions.WorkOutCurrent(Thiswire.Data.CurrentComingFrom[SourceInstanceID]); }
public static void ElectricityInput(float Current, GameObject SourceInstance, ElectricalOIinheritance ComingFrom, ElectricalOIinheritance Thiswire) { //Logger.Log (" <Current " + SourceInstance.ToString () + " <SourceInstance " + ComingFrom.ToString () + " <ComingFrom " + Thiswire.ToString () + " <Thiswire ", Category.Electrical); int SourceInstanceID = SourceInstance.GetInstanceID(); ElectricalSynchronisation.InputSupplyingUsingData = Thiswire.Data.SupplyDependent[SourceInstanceID]; ElectricalSynchronisation.InputSupplyingUsingData.CurrentComingFrom[ComingFrom] = Current; if (!(ElectricalSynchronisation.InputSupplyingUsingData.ResistanceComingFrom.Count > 0)) { ElectricalSynchronisation.StructureChange = true; ElectricalSynchronisation.NUStructureChangeReact.Add(Thiswire.InData.ControllingDevice); ElectricalSynchronisation.NUResistanceChange.Add(Thiswire.InData.ControllingDevice); ElectricalSynchronisation.NUCurrentChange.Add(Thiswire.InData.ControllingDevice); //Logger.LogErrorFormat("Resistance isn't initialised on {1}", Category.Electrical, SourceInstance); return; } ElectricalSynchronisation.InputSupplyingUsingData.SourceVoltages = Current * (ElectricityFunctions.WorkOutResistance(ElectricalSynchronisation.InputSupplyingUsingData.ResistanceComingFrom)); ELCurrent.CurrentWorkOnNextListADD(Thiswire); Thiswire.Data.CurrentStoreValue = ElectricityFunctions.WorkOutCurrent(ElectricalSynchronisation.InputSupplyingUsingData.CurrentComingFrom); }