Ejemplo n.º 1
0
        void FixedUpdate()
        {
            if (HighLogic.LoadedSceneIsFlight)
            {
                if (!flightInitialized)
                {
                    initFlight();
                }

                if (CrossfeedType == FuelFlowtype.uniDirectional)
                {
                    if (part.children.Count > 0)
                    {
                        if (observedPart == null)
                        {
                            observedPart = part.children[0];
                        }
                    }
                    else
                    {
                        observedPart = null;
                    }

                    if (observedPart != null && observedPart.Resources.Count > 0)
                    {
                        for (int i = 0; i < availableResourceIDs.Count; i++)
                        {
                            double amount, maxAmount;

                            partSet.GetConnectedResourceTotals(availableResourceIDs[i], out amount, out maxAmount, true);
                            if (amount == 0)
                            {
                                if (crossfeedToggleModule.crossfeedStatus)
                                {
                                    Log.Info("Setting part crossfeed to false");
                                    crossfeedToggleModule.ToggleEvent();
                                }
                            }
                        }
                    }
                }
            }
            else
            {
                flightInitialized = false;
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// run whenever part is created (used in editor), which in the editor is as soon as part list is clicked or symmetry count increases
        /// </summary>
        void Start()
        {
            crossfeedToggleModule = part.FindModuleImplementing <ModuleToggleCrossfeed>();
            if (crossfeedToggleModule == null)
            {
                Log.Info("Missing ModuleToggleCrossfeed in part: " + this.part.partInfo.title);

                Events["ToggleBiDirectional"].active          = false;
                Events["ToggleBiDirectional"].guiActive       = false;
                Events["ToggleBiDirectional"].guiActiveEditor = false;
                return;
            }
            isActive = true;
            if (crossfeedToggleModule.crossfeedStatus)
            {
                crossfeedToggleModule.ToggleEvent();
            }
            GameEvents.onEditorShipModified.Add(onEditorShipModified);
            GameEvents.onVesselWasModified.Add(onVesselWasModified);

#if true
            crossfeedToggleModule.Events["ToggleEvent"].guiActive = false;
            crossfeedToggleModule.Events["ToggleEvent"].active    = false;
            crossfeedToggleModule.Actions["ToggleAction"].active  = false;
            crossfeedToggleModule.Actions["EnableAction"].active  = false;
            crossfeedToggleModule.Actions["DisableAction"].active = false;
#endif

            if (!HighLogic.LoadedSceneIsEditor)
            {
                return;
            }

            zAwake();
            this.part.OnEditorAttach += new Callback(UpdateOnEditorAttach);
            this.part.OnEditorDetach += new Callback(UpdateOnEditorDetach);

            if (base.part.partInfo == null || base.part.partInfo.partPrefab == null)
            {
                this.defaultCrossfeedType = FuelFlowtype.none;
            }

            if (!this.moduleIsEnabled)
            {
                CrossfeedType = defaultCrossfeedType;
            }
        }