public static void ResistancyOutput(float Resistance, GameObject SourceInstance, ElectricalOIinheritance Thiswire)
    {
        int   SourceInstanceID = SourceInstance.GetInstanceID();
        float ResistanceSplit  = 0;

        if (Resistance == 0)
        {
            ResistanceSplit = 0;
        }
        else
        {
            if (Thiswire.Data.Upstream[SourceInstanceID].Count > 1)
            {
                ResistanceSplit = 1000 / ((1000 / Resistance) / (Thiswire.Data.Upstream[SourceInstanceID].Count));
            }
            else
            {
                ResistanceSplit = Resistance;
            }
        }
        foreach (ElectricalOIinheritance JumpTo in Thiswire.Data.Upstream[SourceInstanceID])
        {
            if (ResistanceSplit == 0)
            {
                Thiswire.Data.ResistanceGoingTo[SourceInstanceID].Remove(JumpTo);
            }
            else
            {
                Thiswire.Data.ResistanceGoingTo[SourceInstanceID][JumpTo] = ResistanceSplit;
            }
            JumpTo.ResistanceInput(ResistanceSplit, SourceInstance, Thiswire);
        }
    }
示例#2
0
    public static void ResistancyOutput(float Resistance, GameObject SourceInstance, ElectricalOIinheritance Thiswire)
    {
        int SourceInstanceID = SourceInstance.GetInstanceID();

        ElectricalSynchronisation.OutputSupplyingUsingData = Thiswire.Data.SupplyDependent[SourceInstanceID];
        float ResistanceSplit = 0;

        if (Resistance == 0)
        {
            ResistanceSplit = 0;
        }
        else
        {
            if (ElectricalSynchronisation.OutputSupplyingUsingData.Upstream.Count > 1)
            {
                ResistanceSplit = Resistance * ElectricalSynchronisation.OutputSupplyingUsingData.Upstream.Count;
            }
            else
            {
                ResistanceSplit = Resistance;
            }
        }
        foreach (ElectricalOIinheritance JumpTo in ElectricalSynchronisation.OutputSupplyingUsingData.Upstream)
        {
            if (ResistanceSplit == 0)
            {
                ElectricalSynchronisation.OutputSupplyingUsingData.ResistanceGoingTo.Remove(JumpTo);
            }
            else
            {
                ElectricalSynchronisation.OutputSupplyingUsingData.ResistanceGoingTo[JumpTo] = ResistanceSplit;
            }
            JumpTo.ResistanceInput(ResistanceSplit, SourceInstance, Thiswire);
        }
    }
    public static void ResistancyOutput(int tick, float Resistance, GameObject SourceInstance, IElectricityIO Thiswire)
    {
        int SourceInstanceID = SourceInstance.GetInstanceID();
        //VisibleResistance = Resistance;
        float ResistanceSplit = 0;

        //Logger.Log (Thiswire.Categorytype.ToString() + " <YEAHAHHAH");
        if (Thiswire.Upstream[SourceInstanceID].Count > 1)
        {
            float CalculatedCurrent = 1000 / Resistance;
            float CurrentSplit      = CalculatedCurrent / (Thiswire.Upstream[SourceInstanceID].Count);
            ResistanceSplit = 1000 / CurrentSplit;
        }
        else
        {
            ResistanceSplit = Resistance;
        }
        foreach (IElectricityIO JumpTo in Thiswire.Upstream[SourceInstanceID])
        {
            //Logger.Log (JumpTo.Categorytype.ToString ());
            if (JumpTo.Categorytype != PowerTypeCategory.DeadEndConnection)
            {
                Thiswire.ResistanceGoingTo [SourceInstanceID] [JumpTo] = ResistanceSplit;
                JumpTo.ResistanceInput(tick, ResistanceSplit, SourceInstance, Thiswire);
            }
        }
    }
    public static void ResistancyOutput(ResistanceWrap Resistance,
                                        ElectricalOIinheritance SourceInstance,
                                        IntrinsicElectronicData Thiswire)
    {
        foreach (var JumpTo in Thiswire.Data.SupplyDependent[SourceInstance].Upstream)
        {
            if (!Thiswire.Data.SupplyDependent[SourceInstance].ResistanceGoingTo.ContainsKey(JumpTo))
            {
                Thiswire.Data.SupplyDependent[SourceInstance].ResistanceGoingTo[JumpTo] = ElectricalPool.GetVIRResistances();
            }

            Thiswire.Data.SupplyDependent[SourceInstance].ResistanceGoingTo[JumpTo].AddResistance(Resistance);

            JumpTo.ResistanceInput(Resistance, SourceInstance, Thiswire);
        }
    }
 public static void ResistancyOutput(ResistanceWrap Resistance,
                                     ElectricalOIinheritance SourceInstance,
                                     IntrinsicElectronicData Thiswire)
 {
     if (Thiswire.Data.SupplyDependent.TryGetValue(SourceInstance, out ElectronicSupplyData supplyDep))
     {
         foreach (var JumpTo in supplyDep.Upstream)
         {
             if (!supplyDep.ResistanceGoingTo.TryGetValue(JumpTo, out VIRResistances resGoTo))
             {
                 resGoTo = supplyDep.ResistanceGoingTo[JumpTo] = ElectricalPool.GetVIRResistances();
             }
             resGoTo.AddResistance(Resistance);
             JumpTo.ResistanceInput(Resistance, SourceInstance, Thiswire);
         }
     }
 }
    public static void ResistancyOutput(int tick, float Resistance, GameObject SourceInstance, IElectricityIO Thiswire)
    {
        int   SourceInstanceID = SourceInstance.GetInstanceID();
        float ResistanceSplit  = 0;

        if (Thiswire.Data.Upstream[SourceInstanceID].Count > 1)
        {
            float CalculatedCurrent = 1000 / Resistance;
            float CurrentSplit      = CalculatedCurrent / (Thiswire.Data.Upstream[SourceInstanceID].Count);
            ResistanceSplit = 1000 / CurrentSplit;
        }
        else
        {
            ResistanceSplit = Resistance;
        }
        foreach (IElectricityIO JumpTo in Thiswire.Data.Upstream[SourceInstanceID])
        {
            Thiswire.Data.ResistanceGoingTo [SourceInstanceID] [JumpTo] = ResistanceSplit;
            JumpTo.ResistanceInput(tick, ResistanceSplit, SourceInstance, Thiswire);
        }
    }