示例#1
0
        public static void ResistanceInput(ResistanceWrap Resistance,
                                           ElectricalOIinheritance SourceInstance,
                                           IntrinsicElectronicData ComingFrom,
                                           IntrinsicElectronicData Thiswire)
        {
            if (Thiswire.Data.SupplyDependent.TryGetValue(SourceInstance, out ElectronicSupplyData supplyDep))
            {
                if (!supplyDep.ResistanceComingFrom.TryGetValue(ComingFrom, out VIRResistances resComeFrom))
                {
                    resComeFrom = supplyDep.ResistanceComingFrom[ComingFrom] = ElectricalPool.GetVIRResistances();
                }

                resComeFrom.AddResistance(Resistance);
            }

            Thiswire.ResistancyOutput(Resistance, SourceInstance);
        }
示例#2
0
        public VIRResistances Multiply(float Multiplier)
        {
            var newVIRResistances = ElectricalPool.GetVIRResistances();

            foreach (var ResistanceS in ResistanceSources)
            {
                var newResistanceWrap = ElectricalPool.GetResistanceWrap();
                newResistanceWrap.SetUp(ResistanceS);
                newVIRResistances.AddResistance(newResistanceWrap);
            }

            foreach (var ResistanceS in newVIRResistances.ResistanceSources)
            {
                ResistanceS.Multiply(Multiplier);
            }
            return(newVIRResistances);
        }
示例#3
0
        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);
                }
            }
        }