Пример #1
0
        public WBIBackgroundConverter GetBackgroundConverter(WBIOmniConverter converter)
        {
            if (backgroundConverters.ContainsKey(converter.ID))
            {
                return(backgroundConverters[converter.ID]);
            }

            return(null);
        }
Пример #2
0
        public void UnregisterBackgroundConverter(WBIOmniConverter converter)
        {
            if (!IsRegistered(converter))
            {
                return;
            }

            if (backgroundConverters.ContainsKey(converter.ID))
            {
                backgroundConverters.Remove(converter.ID);
            }
        }
Пример #3
0
        public void RegisterBackgroundConverter(WBIOmniConverter converter)
        {
            WBIBackgroundConverter backgroundConverter = new WBIBackgroundConverter();

            if (IsRegistered(converter))
            {
                backgroundConverter = GetBackgroundConverter(converter);
                backgroundConverter.GetConverterData(converter);
                backgroundConverter.IsActivated        = converter.IsActivated;
                backgroundConverter.isMissingResources = false;
                backgroundConverter.isContainerFull    = false;
                backgroundConverter.vesselID           = converter.part.vessel.id.ToString();

                UpdateBackgroundConverter(backgroundConverter);
                return;
            }

            backgroundConverter.vesselID = converter.part.vessel.id.ToString();
            backgroundConverter.GetConverterData(converter);

            backgroundConverters.Add(backgroundConverter.converterID, backgroundConverter);
        }
Пример #4
0
 public bool IsRegistered(WBIOmniConverter converter)
 {
     return(backgroundConverters.ContainsKey(converter.ID));
 }
        public void GetConverterData(WBIOmniConverter converter)
        {
            this.converterID               = converter.ID;
            this.ConverterName             = converter.ConverterName;
            this.vesselID                  = converter.part.vessel.id.ToString();
            this.hoursPerCycle             = converter.hoursPerCycle;
            this.minimumSuccess            = converter.minimumSuccess;
            this.criticalSuccess           = converter.criticalSuccess;
            this.criticalFail              = converter.criticalFail;
            this.criticalSuccessMultiplier = converter.criticalSuccessMultiplier;
            this.failureMultiplier         = converter.failureMultiplier;

            this.BaseEfficiency     = converter.BaseEfficiency;
            this.UseSpecialistBonus = converter.UseSpecialistBonus;
            if (converter.UseSpecialistBonus)
            {
                this.ExperienceEffect           = converter.ExperienceEffect;
                this.SpecialistEfficiencyFactor = converter.SpecialistEfficiencyFactor;
                this.SpecialistBonusBase        = converter.SpecialistBonusBase;
            }
            else
            {
                this.SpecialistBonusBase        = 0f;
                this.SpecialistEfficiencyFactor = 0f;
                this.ExperienceEffect           = string.Empty;
            }

            ResourceRatio ratio;

            inputResourceNames = "";
            inputResources.Clear();
            foreach (ResourceRatio resourceRatio in converter.inputList)
            {
                if (skipReources.Contains(resourceRatio.ResourceName))
                {
                    continue;
                }
                ratio = new ResourceRatio();
                ratio.ResourceName = resourceRatio.ResourceName;
                ratio.Ratio        = resourceRatio.Ratio;
                ratio.FlowMode     = resourceRatio.FlowMode;
                ratio.DumpExcess   = resourceRatio.DumpExcess;

                this.inputResources.Add(ratio);
                inputResourceNames += ratio.ResourceName + ";";
            }
            outputResourceNames = "";
            outputResources.Clear();
            foreach (ResourceRatio resourceRatio in converter.outputList)
            {
                if (skipReources.Contains(resourceRatio.ResourceName))
                {
                    continue;
                }
                ratio = new ResourceRatio();
                ratio.ResourceName = resourceRatio.ResourceName;
                ratio.Ratio        = resourceRatio.Ratio;
                ratio.FlowMode     = resourceRatio.FlowMode;
                ratio.DumpExcess   = resourceRatio.DumpExcess;

                this.outputResources.Add(ratio);
                outputResourceNames += ratio.ResourceName + ";";
            }
            requiedResourceNames = "";
            requiredResources.Clear();
            foreach (ResourceRatio resourceRatio in converter.reqList)
            {
                if (skipReources.Contains(resourceRatio.ResourceName))
                {
                    continue;
                }
                ratio = new ResourceRatio();
                ratio.ResourceName = resourceRatio.ResourceName;
                ratio.Ratio        = resourceRatio.Ratio;
                ratio.FlowMode     = resourceRatio.FlowMode;
                ratio.DumpExcess   = resourceRatio.DumpExcess;

                this.requiredResources.Add(ratio);
                requiedResourceNames += ratio.ResourceName + ";";
            }
            yieldResourceNames = "";
            yieldResources.Clear();
            foreach (ResourceRatio resourceRatio in converter.yieldResources)
            {
                if (skipReources.Contains(resourceRatio.ResourceName))
                {
                    continue;
                }
                ratio = new ResourceRatio();
                ratio.ResourceName = resourceRatio.ResourceName;
                ratio.Ratio        = resourceRatio.Ratio;
                ratio.FlowMode     = resourceRatio.FlowMode;
                ratio.DumpExcess   = resourceRatio.DumpExcess;

                this.yieldResources.Add(ratio);
                yieldResourceNames += ratio.ResourceName + ";";
            }
        }