Esempio n. 1
0
        public override void OnStartFinished(StartState state)
        {
            base.OnStartFinished(state);

            if (!HeatShieldPreset.Initialized)
            {
                return;
            }

            modAblator  = part.FindModuleImplementing <ModuleAblator>();
            modularPart = part.FindModuleImplementing <ModuleROTank>();

            if (HighLogic.LoadedSceneIsEditor && modularPart is ModuleROTank)
            {
                modularPart.Fields[nameof(modularPart.currentDiameter)].uiControlEditor.onFieldChanged         += (bf, ob) => UpdateHeatshieldValues();
                modularPart.Fields[nameof(modularPart.currentVScale)].uiControlEditor.onFieldChanged           += (bf, ob) => UpdateHeatshieldValues();
                modularPart.Fields[nameof(modularPart.currentDiameter)].uiControlEditor.onSymmetryFieldChanged += (bf, ob) => UpdateHeatshieldValues();
                modularPart.Fields[nameof(modularPart.currentVScale)].uiControlEditor.onSymmetryFieldChanged   += (bf, ob) => UpdateHeatshieldValues();
            }

            origCost = part.partInfo.cost + 0.01f;  // sum eps to avoid 0 cost
            origMass = part.prefabMass + 0.00001f;  // sum eps to avoid 0 mass

            ApplyPreset(ActivePreset);
        }
 public override void OnStartFinished(StartState state)
 {
     base.OnStartFinished(state);
     modAblator  = part.FindModuleImplementing <ModuleAblator>();
     modularPart = part.FindModuleImplementing <ModuleROTank>();
     if (!(modAblator is ModuleAblator && modularPart is ModuleROTank))
     {
         ROLLog.error($"{part} Unable to find ModuleAblator or ModuleROTank modules");
         isEnabled = enabled = false;
         return;
     }
     else
     {
         if (modularPart is ModuleROTank)
         {
             modularPart.Fields[nameof(modularPart.currentDiameter)].uiControlEditor.onFieldChanged += OnDiameterChange;
         }
         UpdateHeatshieldValues();
     }
 }