public static void DirectionOutput(ElectricalOIinheritance SourceInstance, IntrinsicElectronicData Thiswire, CableLine RelatedLine = null) { if (Thiswire.Data.connections.Count == 0) { Thiswire.FindPossibleConnections(); } if (!(Thiswire.Data.SupplyDependent.TryGetValue(SourceInstance, out ElectronicSupplyData outputSupplyingUsingData))) { outputSupplyingUsingData = Thiswire.Data.SupplyDependent[SourceInstance] = ElectricalPool.GetElectronicSupplyData(); } foreach (IntrinsicElectronicData Relatedindata in Thiswire.Data.connections) { if (!(outputSupplyingUsingData.Upstream.Contains(Relatedindata)) && (!(Thiswire == Relatedindata))) { bool pass = true; if (RelatedLine != null) { if (RelatedLine.Covering.Contains(Relatedindata)) { pass = false; } } if (!(outputSupplyingUsingData.Downstream.Contains(Relatedindata)) && pass) { outputSupplyingUsingData.Downstream.Add(Relatedindata); Relatedindata.DirectionInput(SourceInstance, Thiswire); } } } }
public override void DirectionInput(GameObject SourceInstance, ElectricalOIinheritance ComingFrom, CableLine PassOn = null) { InputOutputFunctions.DirectionInput(SourceInstance, ComingFrom, this); if (PassOn == null) { if (RelatedLine != null) { //if (RelatedLine.TheEnd == this.GetComponent<ElectricalOIinheritance> ()) { // //Logger.Log ("looc"); //} else if (RelatedLine.TheStart == this.GetComponent<ElectricalOIinheritance> ()) { // //Logger.Log ("cool"); //} else { // //Logger.Log ("hELP{!!!"); //} } else { if (!(Data.connections.Count > 2)) { RelatedLine = new CableLine(); if (RelatedLine == null) { Logger.Log("DirectionInput: RelatedLine is null.", Category.Power); } RelatedLine.InitialGenerator = SourceInstance; RelatedLine.TheStart = this; lineExplore(RelatedLine, SourceInstance); if (RelatedLine.TheEnd == null) { RelatedLine = null; } } } } }
public static double Moment(CableLine cable) { if (cable.polys.Count == 0 || cable.loads.Count == 0) { return(0); } var treelines = new List <BranchNode>(); foreach (var poly in cable.polys) { var treeline = new BranchNode() { poly = poly, nodes = new SortedDictionary <double, Node>() }; treelines.Add(treeline); } for (int i = 0; i < treelines.Count; i++) { for (int j = 0; j < treelines.Count; j++) { if (treelines[i].poly != treelines[j].poly && (Distance(treelines[i].poly.GetClosestPointTo(treelines[j].poly.StartPoint, false), treelines[j].poly.StartPoint) < 10 || Distance(treelines[i].poly.GetClosestPointTo(treelines[j].poly.EndPoint, false), treelines[j].poly.EndPoint) < 10)) { if (Distance(treelines[i].poly.GetClosestPointTo(treelines[j].poly.EndPoint, false), treelines[j].poly.EndPoint) < 10) { ReversePoly(treelines[j].poly); } treelines[i].nodes.Add(treelines[i].poly.GetDistAtPoint(treelines[i].poly.GetClosestPointTo(treelines[j].poly.StartPoint, false)), treelines[j]); treelines[j].ischild = true; } } } foreach (var treeline in treelines) { foreach (var load in cable.loads) { if (Distance(treeline.poly.GetClosestPointTo(load.position, false), load.position) < 10) { treeline.nodes.Add(treeline.poly.GetDistAtPoint(treeline.poly.GetClosestPointTo(load.position, false)), new Node { power = load.power }); } } treeline.nodes.Add(0, new Node()); } foreach (var treeline in treelines) { treeline.nodes.ElementAt(0).Value.distance = treeline.nodes.ElementAt(0).Key; for (int i = 1; i < treeline.nodes.Count; i++) { treeline.nodes.ElementAt(i).Value.distance = treeline.nodes.ElementAt(i).Key - treeline.nodes.ElementAt(i - 1).Key; } } var root = (from l in treelines where l.ischild == false select l).First(); return(EquelNode(root).moment); }
public void lineExplore(CableLine PassOn, GameObject SourceInstance = null) { if (Data.connections.Count <= 0) { FindPossibleConnections(); } if (!(Data.connections.Count > 2)) { RelatedLine = PassOn; if (!(this == PassOn.TheStart)) { if (PassOn.TheEnd != null) { PassOn.Covering.Add(PassOn.TheEnd); PassOn.TheEnd = this; } else { PassOn.TheEnd = this; } } foreach (ElectricalOIinheritance Related in Data.connections) { if (!(RelatedLine.Covering.Contains(Related) || RelatedLine.TheStart == Related)) { bool canpass = true; if (SourceInstance != null) { int SourceInstanceID = SourceInstance.GetInstanceID(); if (Data.SupplyDependent[SourceInstanceID].Upstream.Contains(Related)) { canpass = false; } } if (canpass) { if (Related.GameObject().GetComponent <WireConnect>() != null) { Related.GameObject().GetComponent <WireConnect>().lineExplore(RelatedLine); } } } } } }
//public override void ElectricityOutput(float Current, GameObject SourceInstance) //{ // //Logger.Log (CurrentInWire.ToString () + " How much current", Category.Electrical); // InputOutputFunctions.ElectricityOutput(Current, SourceInstance, this); // Data.ActualCurrentChargeInWire = ElectricityFunctions.WorkOutActualNumbers(this); // Data.CurrentInWire = Data.ActualCurrentChargeInWire.Current; // Data.ActualVoltage = Data.ActualCurrentChargeInWire.Voltage; // Data.EstimatedResistance = Data.ActualCurrentChargeInWire.EstimatedResistant; // if (RelatedLine != null) // { // RelatedLine.UpdateCoveringCable(this); // } //} //public void UpdateRelatedLine() //{ // if (RelatedLine != null) // { // RelatedLine.UpdateCoveringCable(); // } //} public void lineExplore(CableLine PassOn, GameObject SourceInstance = null) { if (Data.connections.Count <= 0) { FindPossibleConnections(); } if (!(Data.connections.Count > 2)) { RelatedLine = PassOn; if (!(this == PassOn.TheStart)) { if (PassOn.TheEnd != null) { PassOn.Covering.Add(PassOn.TheEnd); PassOn.TheEnd = this; } else { PassOn.TheEnd = this; } } for (int i = 0; i < Data.connections.Count; i++) { if (!(RelatedLine.Covering.Contains(Data.connections[i]) || RelatedLine.TheStart == Data.connections[i])) { bool canpass = true; if (SourceInstance != null) { int SourceInstanceID = SourceInstance.GetInstanceID(); if (Data.Upstream[SourceInstanceID].Contains(Data.connections[i])) { canpass = false; } } if (canpass) { if (Data.connections[i].GameObject().GetComponent <WireConnect>() != null) { Data.connections[i].GameObject().GetComponent <WireConnect>().lineExplore(RelatedLine); } } } } } }
public override void DirectionInput(GameObject SourceInstance, IElectricityIO ComingFrom, CableLine PassOn = null) { InputOutputFunctions.DirectionInput(SourceInstance, ComingFrom, this); if (PassOn == null) { if (RelatedLine != null) { if (RelatedLine.TheEnd == this.GetComponent <IElectricityIO> ()) { //Logger.Log ("looc"); } else if (RelatedLine.TheStart == this.GetComponent <IElectricityIO> ()) { //Logger.Log ("cool"); } else { //Logger.Log ("hELP{!!!"); } } else { if (!(Data.connections.Count > 2)) { RelatedLine = new CableLine(); if (RelatedLine == null) { Logger.Log("HE:LP:::::::::::::::::::niniinininininin"); } RelatedLine.InitialGenerator = SourceInstance; RelatedLine.TheStart = this; lineExplore(RelatedLine, SourceInstance); if (RelatedLine.TheEnd == null) { RelatedLine = null; } } } } }
public override void DirectionInput(GameObject SourceInstance, ElectricalOIinheritance ComingFrom, CableLine PassOn = null) { }
/// <summary> /// Sets the upstream /// </summary> public virtual void DirectionInput(GameObject SourceInstance, ElectricalOIinheritance ComingFrom, CableLine PassOn = null) { if (Logall) { Logger.Log("this > " + this + "DirectionInput SourceInstance > " + SourceInstance + " ComingFrom > " + ComingFrom + " PassOn > " + PassOn, Category.Electrical); } InputOutputFunctions.DirectionInput(SourceInstance, ComingFrom, this); }
/// <summary> /// Sets the upstream /// </summary> public virtual void DirectionInput(ElectricalOIinheritance SourceInstance, IntrinsicElectronicData ComingFrom, CableLine PassOn = null) { if (Present != null) { Present.DirectionInput(SourceInstance, ComingFrom); } else { InputOutputFunctions.DirectionInput(SourceInstance, ComingFrom, this); } }
///// <summary> ///// Sets the upstream ///// </summary> public virtual void DirectionInput(ElectricalOIinheritance SourceInstance, IntrinsicElectronicData ComingFrom, CableLine PassOn = null) { if (Logall) { Logger.Log("this > " + this + "DirectionInput SourceInstance > " + SourceInstance + " ComingFrom > " + ComingFrom + " PassOn > " + PassOn, Category.Electrical); } InputOutputFunctions.DirectionInput(SourceInstance, ComingFrom, InData); }
public virtual void DirectionInput(GameObject SourceInstance, IElectricityIO ComingFrom, CableLine PassOn = null) { InputOutputFunctions.DirectionInput(SourceInstance, ComingFrom, this); }
public override void FlushConnectionAndUp() { ElectricalDataCleanup.PowerSupplies.FlushConnectionAndUp(this); RelatedLine = null; //InData.ControllingDevice.PotentialDestroyed(); }
public override void FlushConnectionAndUp() { ElectricalDataCleanup.PowerSupplies.FlushConnectionAndUp(this); RelatedLine = null; }
public static void DirectionOutput(GameObject SourceInstance, ElectricalOIinheritance Thiswire, CableLine RelatedLine = null) { int SourceInstanceID = SourceInstance.GetInstanceID(); if (!(Thiswire.Data.Upstream.ContainsKey(SourceInstanceID))) { Thiswire.Data.Upstream[SourceInstanceID] = new HashSet <ElectricalOIinheritance>(); } if (!(Thiswire.Data.Downstream.ContainsKey(SourceInstanceID))) { Thiswire.Data.Downstream[SourceInstanceID] = new HashSet <ElectricalOIinheritance>(); } if (Thiswire.Data.connections.Count <= 0) { Thiswire.FindPossibleConnections(); } for (int i = 0; i < Thiswire.Data.connections.Count; i++) { if (!(Thiswire.Data.Upstream[SourceInstanceID].Contains(Thiswire.Data.connections[i])) && (!(Thiswire == Thiswire.Data.connections[i]))) { bool pass = true; if (RelatedLine != null) { if (RelatedLine.Covering.Contains(Thiswire.Data.connections [i])) { pass = false; } } if (!(Thiswire.Data.Downstream[SourceInstanceID].Contains(Thiswire.Data.connections[i])) && pass) { Thiswire.Data.Downstream[SourceInstanceID].Add(Thiswire.Data.connections[i]); Thiswire.Data.connections[i].DirectionInput(SourceInstance, Thiswire); } } } }
public void DirectionInput(GameObject SourceInstance, ElectricalOIinheritance ComingFrom, CableLine PassOn = null) { JumpToOtherEnd(SourceInstance, ComingFrom); }
public static void DirectionOutput(GameObject SourceInstance, ElectricalOIinheritance Thiswire, CableLine RelatedLine = null) { int SourceInstanceID = SourceInstance.GetInstanceID(); if (Thiswire.Data.connections.Count == 0) { Thiswire.FindPossibleConnections(); } if (!(Thiswire.Data.SupplyDependent.ContainsKey(SourceInstanceID))) { Thiswire.Data.SupplyDependent[SourceInstanceID] = new ElectronicSupplyData(); } ElectricalSynchronisation.OutputSupplyingUsingData = Thiswire.Data.SupplyDependent[SourceInstanceID]; foreach (ElectricalOIinheritance Related in Thiswire.Data.connections) { if (!(ElectricalSynchronisation.OutputSupplyingUsingData.Upstream.Contains(Related)) && (!(Thiswire == Related))) { bool pass = true; if (RelatedLine != null) { if (RelatedLine.Covering.Contains(Related)) { pass = false; } } if (!(ElectricalSynchronisation.OutputSupplyingUsingData.Downstream.Contains(Related)) && pass) { ElectricalSynchronisation.OutputSupplyingUsingData.Downstream.Add(Related); Related.DirectionInput(SourceInstance, Thiswire); } } } }
public void DirectionInput(GameObject SourceInstance, IElectricityIO ComingFrom, CableLine PassOn = null) { }