Ejemplo n.º 1
0
        public override void OnStart(StartState state)
        {
            base.OnStart(state);
            //topNodeChecked = false;

            topNode = GetNode("top", part);
            if (topNode == null)
            {
                topNode01 = GetNode("top01", part);
                if (topNode01 != null)
                {
                    topNode02 = GetNode("top02", part);
                }
            }

            GameEvents.onEditorShipModified.Add(onEditorShipModified);
            //GameEvents.onEditorPartPlaced.Add(onEditorPartPlaced);
            part.OnEditorAttach += new Callback(OnEditorAttach);

            GetReferences();
            if (!initialized)
            {
                initialized = true;
                decouplerModule.Events["ToggleStaging"].guiActiveEditor        = false;
                decouplerModule.Fields["ejectionForcePercent"].guiActiveEditor = false;
                if (crossfeedToggleModule != null)
                {
                    KSPActionParam kap = null;
                    crossfeedToggleModule.EnableAction(kap);
                    SetEvents(DecouplerType.none, decouplerModule, crossfeedToggleModule);
                }
            }
            else
            {
                decouplerModule.Events["ToggleStaging"].guiActiveEditor = false;

                SetToggleName(pmEvents);
                if (integratedDecoupler != DecouplerType.none)
                {
                    //pmEvents["ToggleIntegratedDecoupler"].guiName = "Integrated Decoupler";
                    // decouplerModule.Events["ToggleStaging"].guiActiveEditor = true;
                }
                else
                {
                    decouplerModule.Events["ToggleStaging"].guiActiveEditor        = false;
                    decouplerModule.Fields["ejectionForcePercent"].guiActiveEditor = false;
                    if (crossfeedToggleModule != null)
                    {
                        KSPActionParam kap = null;
                        crossfeedToggleModule.EnableAction(kap);
                        SetEvents(DecouplerType.none, decouplerModule, crossfeedToggleModule);
                    }
                }
            }
            GetSymList();
        }
Ejemplo n.º 2
0
        void disableDecoupler(IntegratedDecoupler id, ModuleToggleCrossfeed crossfeedToggleModule)
        {
            KSPActionParam kap = null;

            if (id.decouplerModule != null)
            {
                id.decouplerModule.SetStaging(false);
                id.decouplerModule.Events["ToggleStaging"].guiActiveEditor        = false; // Only seen when AdvancedTweakables is enabled
                id.decouplerModule.Fields["ejectionForcePercent"].guiActiveEditor = false;
                id.decouplerModule.enabled = false;
                //id.decouplerModule.stagingEnabled = false;
                id.SetStaging(false);

                if (part != null && part.Modules != null)
                {
                    foreach (PartModule m in part.Modules)
                    {
                        if (!ReferenceEquals(m, id.decouplerModule))
                        {
                            m.SetStaging(false);
                            m.Events["ToggleStaging"].guiActiveEditor = false;
                        }
                    }
                }

                if (crossfeedToggleModule != null)
                {
                    crossfeedToggleModule.EnableAction(kap);
                }

                //if (decouplerModule.part != null  && decouplerModule.part.Events != null)
                //id.pmEvents["ToggleIntegratedDecoupler"].guiName = "No decoupler";
                SetToggleName(id.pmEvents);
                id.decouplerModule.Events["ToggleStaging"].guiActiveEditor = false;
                id.part.UpdateStageability(true, true);
            }
        }