Пример #1
0
        public static void RemoveSupply(IntrinsicElectronicData Object, ElectricalOIinheritance SourceInstance = null)
        {
            if (SourceInstance == null)
            {
                bool pass = false;
                foreach (var Supply in Object.Data.SupplyDependent)
                {
                    if (Supply.Value.Downstream.Count > 0 || Supply.Value.Upstream.Count > 0)
                    {
                        pass = true;
                    }
                }
                if (pass)
                {
                    Pool(Object.Data.SupplyDependent);
                    foreach (IntrinsicElectronicData JumpTo in Object.Data.connections)
                    {
                        JumpTo.RemoveSupply();
                    }
                    Object.Data.CurrentInWire       = 0;
                    Object.Data.ActualVoltage       = 0;
                    Object.Data.EstimatedResistance = 0;
                    Object.Data.ResistanceToConnectedDevices.Clear();
                    //Object.connectedDevices.Clear();#
                }
            }
            else
            {
                //SourceInstance
                bool pass = false;
                if (Object.Data.SupplyDependent.ContainsKey(SourceInstance))
                {
                    if (Object.Data.SupplyDependent[SourceInstance].Downstream.Count > 0 ||
                        Object.Data.SupplyDependent[SourceInstance].Upstream.Count > 0)
                    {
                        pass = true;
                    }
                    Object.Data.SupplyDependent[SourceInstance].Pool();
                    Object.Data.SupplyDependent.Remove(SourceInstance);
                }

                if (SourceInstance == Object.Present)
                {
                    CleanConnectedDevicesFromPower(Object.Present);
                    Object.Data.ResistanceToConnectedDevices.Clear();
                }

                if (pass)
                {
                    foreach (IntrinsicElectronicData JumpTo in Object.Data.connections)
                    {
                        JumpTo.RemoveSupply(SourceInstance);
                    }
                }
            }
        }
 public static void RemoveSupply(ElectricalOIinheritance Object, GameObject SourceInstance = null)
 {
     if (SourceInstance == null)
     {
         bool pass = false;
         foreach (var Supply in Object.Data.SupplyDependent)
         {
             if (Supply.Value.Downstream.Count > 0 || Supply.Value.Upstream.Count > 0)
             {
                 pass = true;
             }
         }
         if (pass)
         {
             Object.Data.SupplyDependent.Clear();
             foreach (ElectricalOIinheritance JumpTo in Object.Data.connections)
             {
                 JumpTo.RemoveSupply();
             }
             Object.Data.CurrentInWire       = new float();
             Object.Data.ActualVoltage       = new float();
             Object.Data.EstimatedResistance = new float();
             Object.Data.ResistanceToConnectedDevices.Clear();
             Object.connectedDevices.Clear();
         }
     }
     else
     {
         int InstanceID = SourceInstance.GetInstanceID();
         if (Object.Data.SupplyDependent[InstanceID].Downstream.Count > 0)
         {
             foreach (ElectricalOIinheritance JumpTo in Object.Data.connections)
             {
                 JumpTo.RemoveSupply(SourceInstance);
             }
             if (InstanceID == Object.GameObject().GetInstanceID())
             {
                 CleanConnectedDevicesFromPower(Object);
                 Object.Data.ResistanceToConnectedDevices.Clear();
             }
             Object.Data.SupplyDependent.Remove(InstanceID);
             ElectricityFunctions.WorkOutActualNumbers(Object);
         }
     }
 }
 public static void RemoveSupply(ElectricalOIinheritance Object, GameObject SourceInstance = null)
 {
     if (SourceInstance == null)
     {
         if (Object.Data.Downstream.Count > 0 || Object.Data.Upstream.Count > 0)
         {
             Object.Data.Downstream.Clear();
             Object.Data.Upstream.Clear();
             Object.Data.FirstPresent = new int();
             foreach (ElectricalOIinheritance JumpTo in Object.Data.connections)
             {
                 JumpTo.RemoveSupply();
             }
             Object.Data.Upstream.Clear();
             Object.Data.SourceVoltages.Clear();
             Object.Data.ResistanceGoingTo.Clear();
             Object.Data.ResistanceComingFrom.Clear();
             Object.Data.CurrentGoingTo.Clear();
             Object.Data.CurrentComingFrom.Clear();
             Object.Data.SourceVoltages.Clear();
             Object.Data.CurrentInWire       = new float();
             Object.Data.ActualVoltage       = new float();
             Object.Data.EstimatedResistance = new float();
             Object.Data.UpstreamCount       = new int();
             Object.Data.DownstreamCount     = new int();
             Object.Data.ResistanceToConnectedDevices.Clear();
             Object.connectedDevices.Clear();
         }
     }
     else
     {
         int InstanceID = SourceInstance.GetInstanceID();
         if (Object.Data.Downstream.ContainsKey(InstanceID))
         {
             Object.Data.Downstream.Remove(InstanceID);
             if (Object.Data.FirstPresent == InstanceID)
             {
                 Object.Data.FirstPresent = new int();
             }
             foreach (ElectricalOIinheritance JumpTo in Object.Data.connections)
             {
                 JumpTo.RemoveSupply(SourceInstance);
             }
             if (InstanceID == Object.GameObject().GetInstanceID())
             {
                 CleanConnectedDevicesFromPower(Object);
                 Object.Data.ResistanceToConnectedDevices.Clear();
             }
             Object.Data.Upstream.Remove(InstanceID);
             Object.Data.SourceVoltages.Remove(InstanceID);
             Object.Data.ResistanceGoingTo.Remove(InstanceID);
             Object.Data.ResistanceComingFrom.Remove(InstanceID);
             Object.Data.CurrentGoingTo.Remove(InstanceID);
             Object.Data.CurrentComingFrom.Remove(InstanceID);
             Object.Data.SourceVoltages.Remove(InstanceID);
             ElectricityFunctions.WorkOutActualNumbers(Object);;
             Object.Data.UpstreamCount   = new int();
             Object.Data.DownstreamCount = new int();
         }
     }
 }
        public static void RemoveSupply(IElectricityIO Object, GameObject SourceInstance = null)
        {
            if (SourceInstance == null)
            {
                if (Object.Downstream.Count > 0 || Object.Upstream.Count > 0)
                {
                    Object.Downstream.Clear();
                    Object.Upstream.Clear();
                    Object.FirstPresent = new int();
                    foreach (IElectricityIO JumpTo in Object.connections)
                    {
                        JumpTo.RemoveSupply();
                    }
                    Object.Upstream.Clear();
                    Object.SourceVoltages.Clear();
                    Object.ResistanceGoingTo.Clear();
                    Object.ResistanceComingFrom.Clear();
                    Object.CurrentGoingTo.Clear();
                    Object.CurrentComingFrom.Clear();
                    Object.SourceVoltages.Clear();

                    Object.CurrentInWire       = new float();
                    Object.ActualVoltage       = new float();
                    Object.EstimatedResistance = new float();

                    //VisibleResistance = new float ();
                    Object.UpstreamCount   = new int();
                    Object.DownstreamCount = new int();
                    Object.ResistanceToConnectedDevices.Clear();
                    Object.connectedDevices.Clear();
                }
            }
            else
            {
                int InstanceID = SourceInstance.GetInstanceID();
                if (Object.Downstream.ContainsKey(InstanceID))
                {
                    Object.Downstream.Remove(InstanceID);
                    if (Object.FirstPresent == InstanceID)
                    {
                        Object.FirstPresent = new int();
                    }
                    foreach (IElectricityIO JumpTo in Object.connections)
                    {
                        JumpTo.RemoveSupply(SourceInstance);
                    }
                    if (InstanceID == Object.GameObject().GetInstanceID())
                    {
                        CleanConnectedDevicesFromPower(Object);
                        Object.ResistanceToConnectedDevices.Clear();
                        //Object.connectedDevices.Clear();
                    }
                    Object.Upstream.Remove(InstanceID);
                    Object.SourceVoltages.Remove(InstanceID);
                    Object.ResistanceGoingTo.Remove(InstanceID);
                    Object.ResistanceComingFrom.Remove(InstanceID);
                    Object.CurrentGoingTo.Remove(InstanceID);
                    Object.CurrentComingFrom.Remove(InstanceID);
                    //Logger.Log (SourceVoltages.Count.ToString() + "yes");
                    Object.SourceVoltages.Remove(InstanceID);

                    Object.ActualCurrentChargeInWire = ElectricityFunctions.WorkOutActualNumbers(Object);
                    //				foreach (KeyValuePair<int, Dictionary<IElectricityIO,float>> CurrentIDItem in CurrentComingFrom) {
                    //					Logger.Log (CurrentIDItem.Key.ToString() + " CurrentComingFrom sdd > " + InstanceID.ToString()  );
                    //				}
                    //				foreach (KeyValuePair<int, Dictionary<IElectricityIO,float>> CurrentIDItem in CurrentGoingTo) {
                    //					Logger.Log (CurrentIDItem.Key.ToString() + " CurrentGoingTo sdd > " + InstanceID.ToString() );
                    //					//foreach (KeyValuePair<IElectricityIO,float> CurrentItem in CurrentIDItem.Value) {
                    //					//}
                    //
                    //				}

                    //Logger.Log(ActualCurrentChargeInWire.Current.ToString()+ "yoyoyoyoyyoyoyooy");
                    Object.CurrentInWire       = Object.ActualCurrentChargeInWire.Current;
                    Object.ActualVoltage       = Object.ActualCurrentChargeInWire.Voltage;
                    Object.EstimatedResistance = Object.ActualCurrentChargeInWire.EstimatedResistant;

                    //VisibleResistance = new float ();
                    Object.UpstreamCount   = new int();
                    Object.DownstreamCount = new int();
                }
            }
        }