public override void OnStart(StartState state)
        {
            if (HighLogic.LoadedSceneIsFlight)
            {
                TimingManager.LateUpdateAdd(TimingManager.TimingStage.Early, EarlyLateUpdate);

                SPs = GetComponents <ModuleDeployableSolarPanel>();

                if (SPs.Any(p => p.isTracking))
                {
                    Fields["trackingBodyName"].guiActive = true;
                    Events["ManualTracking"].guiActive   = true;
                }

                if (_manualTracking)
                {
                    CelestialBody trackingBody = FlightGlobals.Bodies.FirstOrDefault(b => b.bodyDisplayName.Replace("^N", "") == trackingBodyName);

                    if (trackingBody != null)
                    {
                        SetTrackingBody(trackingBody);
                    }
                    else
                    {
                        _manualTracking = false;
                    }
                }
            }
        }
示例#2
0
文件: Main.cs 项目: CHazz/DUXDMP
        public void Start()
        {
            TimingManager.FixedUpdateAdd(TimingManager.TimingStage.BetterLateThanNever, TimingManagerFixedUpdate);
            dmpDir      = Path.Combine(Path.Combine(Path.Combine(KSPUtil.ApplicationRootPath, "GameData"), "DarkMultiPlayer"), "Plugins");
            dmpDataDir  = Path.Combine(dmpDir, "Data");
            gameDataDir = Path.Combine(KSPUtil.ApplicationRootPath, "GameData");
            kspRootPath = KSPUtil.ApplicationRootPath;

            //Fix DarkLog time/thread marker in the log during init.
            DarkLog.SetMainThread();
            lastClockTicks           = DateTime.UtcNow.Ticks;
            lastRealTimeSinceStartup = 0f;

            dmpClient         = this;
            dmpSettings       = new Settings();
            toolbarSupport    = new ToolbarSupport(dmpSettings);
            universeSyncCache = new UniverseSyncCache(dmpSettings);
            modWindow         = new ModWindow();
            modWorker         = new ModWorker(modWindow);
            modWindow.SetDependenices(modWorker);
            universeConverter       = new UniverseConverter(dmpSettings);
            universeConverterWindow = new UniverseConverterWindow(universeConverter);
            optionsWindow           = new OptionsWindow(dmpSettings, universeSyncCache, modWorker, universeConverterWindow, toolbarSupport);
            connectionWindow        = new ConnectionWindow(dmpSettings, optionsWindow);
            disclaimerWindow        = new DisclaimerWindow(dmpSettings);
            dmpModInterface         = new DMPModInterface();
            SafetyBubble.RegisterDefaultLocations();

            if (!CompatibilityChecker.IsCompatible() || !InstallChecker.IsCorrectlyInstalled())
            {
                modDisabled = true;
            }

            if (dmpSettings.disclaimerAccepted != 1)
            {
                modDisabled = true;
                disclaimerWindow.SpawnDialog();
            }

            Profiler.DMPReferenceTime.Start();
            DontDestroyOnLoad(this);

            // Prevents symlink warning for development.
            SetupDirectoriesIfNeeded();

            // UniverseSyncCache needs to run expiry here
            universeSyncCache.ExpireCache();

            GameEvents.onHideUI.Add(() =>
            {
                showGUI = false;
            });
            GameEvents.onShowUI.Add(() =>
            {
                showGUI = true;
            });

            HandleCommandLineArgs();
            DarkLog.Debug("DarkMultiPlayer " + Common.PROGRAM_VERSION + ", protocol " + Common.PROTOCOL_VERSION + " Initialized!");
        }
        public override void Awake()
        {
            TimingManager.UpdateAdd(TimingManager.TimingStage.FlightIntegrator, TimedUpdate);
            TimingManager.FixedUpdateAdd(TimingManager.TimingStage.FlightIntegrator, TimedFixedUpdate);

            base.Awake();
        }
示例#4
0
        public override void OnStart(StartState state)
        {
            MP = GetComponent <ModuleParachute>();

            TimingManager.FixedUpdateAdd(TimingManager.TimingStage.Early, EarlyFixedUpdate);
            TimingManager.FixedUpdateAdd(TimingManager.TimingStage.Late, LateFixedUpdate);

            UI_FloatRange uI_Altitude = (UI_FloatRange)(MP.Fields)["deployAltitude"].uiControlFlight;
            UI_FloatRange uI_Pressure = (UI_FloatRange)(MP.Fields)["minAirPressureToOpen"].uiControlFlight;

            if (HighLogic.LoadedScene == GameScenes.EDITOR)
            {
                uI_Altitude = (UI_FloatRange)(MP.Fields)["deployAltitude"].uiControlEditor;
                uI_Pressure = (UI_FloatRange)(MP.Fields)["minAirPressureToOpen"].uiControlEditor;
            }

            uI_Altitude.minValue      = altitudeSliderMin;
            uI_Altitude.maxValue      = altitudeSliderMax;
            uI_Altitude.stepIncrement = altitudeSliderStep;

            MP.clampMinAirPressure    = pressureSliderMin >= 0 ? pressureSliderMin : MP.clampMinAirPressure;
            uI_Pressure.minValue      = pressureSliderMin >= 0 ? pressureSliderMin : MP.clampMinAirPressure;
            uI_Pressure.maxValue      = pressureSliderMax;
            uI_Pressure.stepIncrement = pressureSliderStep;

            base.OnStart(state);
        }
示例#5
0
 void OnDestroy()
 {
     if (initialized && Nyan.forever)
     {
         TimingManager.LateUpdateRemove(TimingManager.TimingStage.BetterLateThanNever, UpdateBox);
     }
 }
示例#6
0
        public override void Awake()
        {
            TimingManager.UpdateAdd(TimingManager.TimingStage.Precalc, TimedUpdate);
            TimingManager.FixedUpdateAdd(TimingManager.TimingStage.Precalc, TimedFixedUpdate);

            base.Awake();
        }
示例#7
0
 // Start is called before the first frame update
 void Start()
 {
     theScore    = FindObjectOfType <ScoreManager>();
     theCombo    = FindObjectOfType <ComboManager>();
     theTiming   = FindObjectOfType <TimingManager>();
     theDatabase = FindObjectOfType <DatabaseManager>();
 }
示例#8
0
 public void Dispose()
 {
     MessageTransceiver?.Dispose();
     TimingManager.Dispose();
     CoroutineManager.Dispose();
     DebugManager.Dispose();
 }
示例#9
0
            void Start()
            {
                ProtoCrewMember kerbal = Apply();

                Debug.Log("CustomSuit.Start", "kerbal = " + kerbal + " (" + kerbal?.GetType() + ")");
                if (kerbal == null)
                {
                    return;
                }

                eva = GetComponent <KerbalEVA>();

                LoadFor(kerbal);
                ApplyTo(kerbal);

                if (HighLogic.LoadedSceneIsFlight && eva != null)
                {
                    if (Nyan.forever)
                    {
                        TimingManager.UpdateAdd(TimingManager.TimingStage.Normal, RainbowJets);
                        return;
                    }

                    TimingManager.UpdateAdd(TimingManager.TimingStage.Normal, CheckGee);

                    if (helmetLowPressure != null || helmetHighPressure != null)
                    {
                        Helmet();
                        TimingManager.UpdateAdd(TimingManager.TimingStage.Normal, Helmet);
                    }
                }
            }
示例#10
0
//||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
//                             _CORE PROCESSES_

    // START
    // Use this for initialization
    void Start()
    {
        Application.targetFrameRate = 60;
        //currentSong = Overseer.selectedSong;
        currentSong        = TestSong.getTestSong();
        Overseer.songScore = 0;
        Debug.Log(currentSong.SongName);
        Debug.Log(currentSong.LoopList[0].SongName);
        currentLoop    = currentSong.LoopList[0];
        loopRepetition = 1;
        timer          = new TimingManager(currentLoop.BeatsPerMinute);
        graphics       = GameObject.FindObjectOfType <GraphicsManager>();
        levels         = GameObject.FindObjectOfType <LevelManager>();
        inputManager   = GameObject.FindObjectOfType <InputManager>();
        sounds         = GameObject.FindObjectOfType <SoundManager>();
        score          = FindObjectOfType <ScoreController>();
        beatNo         = timer.currentBeat();
        // Find the first edge.
        currentEdge = currentLoop.EdgeList[0];
        currentNode = currentEdge.FromNode;
        endNode     = currentLoop.NodeList[currentLoop.NodeList.Count - 1];
        if (currentNode.StartNode)
        {
            startNode = currentNode;
            //Debug.Log("All loaded, we're good to go! - " + ((double)(Time.time - TimingManager.StartTime)).ToString());
            //Debug.Log(currentNode.NodeName + " " + CurrentNode.NodeType.ToString());
        }
        playerEdge = currentEdge;
        playerNode = currentNode;
        graphics.beginGraphicsProcess();
        loaded = true;
    }
示例#11
0
    private void Start()
    {
        if (myTrans == null)
        {
            myTrans = transform;
        }
        if (myRigid == null)
        {
            myRigid = GetComponentInChildren <Rigidbody>();
        }
        if (timingManager == null)
        {
            timingManager = FindObjectOfType <TimingManager>();
        }
        if (cameraController == null)
        {
            cameraController = FindObjectOfType <CameraController>();
        }
        if (statusManager == null)
        {
            statusManager = FindObjectOfType <StatusManager>();
        }

        originPos = myTrans.position;
    }
        protected override void OnStart()
        {
            base.OnStart();

            //print ("HEWWO WORLD x3 " + vessel.GetName() + " " + (vessel.state == Vessel.State.ACTIVE));
            TimingManager.FixedUpdateAdd(TimingManager.TimingStage.Late,
                                         FixedUpdateLateLate);
        }
示例#13
0
 protected virtual void Start()
 {
     if (HighLogic.LoadedSceneHasPlanetarium)
     {
         TimingManager.UpdateAdd(TimingManager.TimingStage.ObscenelyEarly, UpdateEarly);
     }
     ResetNetwork();
 }
 // Start is called before the first frame update
 void Start()
 {
     theTimingManager = FindObjectOfType <TimingManager>();
     theCam           = FindObjectOfType <CameraController>();
     theStatus        = FindObjectOfType <StatusManger>();
     myRigid          = GetComponentInChildren <Rigidbody>();
     originPos        = transform.position;
 }
示例#15
0
        protected override void OnDisabled()
        {
            base.OnDisabled();
            CurrentVesselUpdate.Clear();

            TimingManager.FixedUpdateRemove(TimingManager.TimingStage.ObscenelyEarly, HandleVesselUpdates);
            TimingManager.FixedUpdateRemove(TimingManager.TimingStage.ObscenelyEarly, SendVesselPositionUpdates);
        }
示例#16
0
        protected override void OnDisabled()
        {
            base.OnDisabled();
            TimingManager.FixedUpdateRemove(TimingManager.TimingStage.Precalc, SetGameTime);
            TimingManager.FixedUpdateRemove(TimingManager.TimingStage.Precalc, SyncTimeScale);

            SpectateEvent.onStartSpectating.Remove(TimerSyncerEvents.OnStartSpectating);
            ServerStartTime = 0;
        }
示例#17
0
        void Start()
        {
            TimingManager.LateUpdateAdd(TimingManager.TimingStage.BetterLateThanNever, DoUpdate);

            isEnabled     = false;
            cameraIsClose = true;
            GameEvents.OnMapEntered.Add(MapEnter);
            GameEvents.OnMapExited.Add(MapExit);
        }
示例#18
0
        protected override void OnDisabled()
        {
            base.OnDisabled();

            TimingManager.FixedUpdateRemove(HandlePositionsStage, HandleVesselUpdates);
            TimingManager.LateUpdateRemove(SendPositionsStage, SendVesselPositionUpdates);

            CurrentVesselUpdate.Clear();
            TargetVesselUpdateQueue.Clear();
        }
示例#19
0
 // Start is called before the first frame update
 void Start()
 {
     theStage  = FindObjectOfType <StageManager>();
     theCombo  = FindObjectOfType <ComboManager>();
     theScore  = FindObjectOfType <ScoreManager>();
     theTiming = FindObjectOfType <TimingManager>();
     theStatus = FindObjectOfType <StatusManager>();
     thePlayer = FindObjectOfType <PlayerController>();
     instance  = this;
 }
示例#20
0
 protected override void OnDestroy()
 {
     base.OnDestroy();
     GameEvents.onPlanetariumTargetChanged.Remove(OnMapFocusChange);
     GameEvents.OnGameSettingsApplied.Remove(ResetNetwork);
     GameEvents.onVesselCreate.Remove(VesselCreateHandler);
     GameEvents.onVesselDestroy.Remove(VesselDestroyHandler);
     TimingManager.UpdateRemove(TimingManager.TimingStage.ObscenelyEarly, UpdateEarly);
     (CommNet as RACommNetwork).precompute.Destroy();
 }
        /// <summary>
        /// Unhook from events we previously hooked up to.
        /// </summary>
        private void UnHookEvents()
        {
            ConnectivityManager.RemoveAutopilotHook(parentVessel, UpdateAutopilot);

            if (Vessel.vesselType != VesselType.Unknown && Vessel.vesselType != VesselType.SpaceObject)
            {
                TimingManager.FixedUpdateRemove(TimingManager.TimingStage.ObscenelyEarly, cacheControllable);
                TimingManager.FixedUpdateRemove(TimingManager.TimingStage.BetterLateThanNever, resetControllable);
            }
        }
示例#22
0
 private void Awake()
 {
     if (instance == null)
     {
         instance = this;
     }
     else
     {
         Debug.LogWarning("More than one TimingManager in the Scene");
     }
 }
示例#23
0
        /// <summary>
        /// Unhook from events we previously hooked up to.
        /// </summary>
        private void UnHookEvents()
        {
            ConnectivityManager.RemoveAutopilotHook(Vessel, UpdateAutopilot);

            if (workAroundEventsEnabled)
            {
                TimingManager.FixedUpdateRemove(TimingManager.TimingStage.ObscenelyEarly, CacheControllable);
                TimingManager.FixedUpdateRemove(TimingManager.TimingStage.BetterLateThanNever, resetControllable);
                workAroundEventsEnabled = false;
            }
        }
            void Customize()
            {
                LoadFor();
                ApplyTo();

                if (Debug.debug)
                {
                    Directory.CreateDirectory("GameData/Sigma/Replacements/MenuButtons/Debug/");
                    Save();
                    TimingManager.UpdateAdd(TimingManager.TimingStage.Normal, Load);
                }
            }
        protected override void OnDisabled()
        {
            base.OnDisabled();

            CurrentVesselUpdate.Clear();
            TargetVesselUpdateQueue.Clear();

            TimingManager.FixedUpdateRemove(TimingManager.TimingStage.ObscenelyEarly, HandleVesselUpdates);
            TimingManager.LateUpdateRemove(TimingManager.TimingStage.BetterLateThanNever, SendVesselPositionUpdates);

            LockEvent.onLockAcquire.Remove(PositionEvents.OnLockAcquire);
        }
示例#26
0
        protected override void OnEnabled()
        {
            base.OnEnabled();

            TimingManager.FixedUpdateAdd(TimingManager.TimingStage.ObscenelyEarly, HandleVesselUpdates);
            TimingManager.FixedUpdateAdd(TimingManager.TimingStage.ObscenelyEarly, SendVesselPositionUpdates);

            SetupRoutine(new RoutineDefinition(SettingsSystem.ServerSettings.SecondaryVesselUpdatesSendMsInterval,
                                               RoutineExecution.Update, SendSecondaryVesselPositionUpdates));
            SetupRoutine(new RoutineDefinition(SettingsSystem.ServerSettings.SecondaryVesselUpdatesSendMsInterval,
                                               RoutineExecution.Update, SendUnloadedSecondaryVesselPositionUpdates));
        }
示例#27
0
        protected override void OnDisabled()
        {
            if (!SettingsSystem.CurrentSettings.UseAlternativePositionSystem)
            {
                return;
            }

            base.OnDisabled();
            CurrentVesselUpdate.Clear();

            TimingManager.FixedUpdateRemove(TimingManager.TimingStage.ObscenelyEarly, DisableVesselPrecalculate);
        }
示例#28
0
    [SerializeField] CenterFlame theMusic = null; //처음에 비활성화되어있기때문에 find로 찾을 수 없다.

    // Start is called before the first frame update
    void Start()
    {
        instance  = this;
        theNote   = FindObjectOfType <NoteManager>();
        theCombo  = FindObjectOfType <ComboManager>();
        theScore  = FindObjectOfType <ScoreManager>();
        theTiming = FindObjectOfType <TimingManager>();
        theStatus = FindObjectOfType <StatusManger>();
        thePlayer = FindObjectOfType <PlayerController>();
        theStage  = FindObjectOfType <StageManger>();
        theResult = FindObjectOfType <Result>();
    }
示例#29
0
        protected override void OnEnabled()
        {
            base.OnEnabled();

            TimingManager.FixedUpdateAdd(TimingManager.TimingStage.ObscenelyEarly, HandleVesselUpdates);
            TimingManager.FixedUpdateAdd(TimingManager.TimingStage.BetterLateThanNever, SendVesselPositionUpdates);

            //It's important that SECONDARY vessels send their position in the UPDATE as their parameters will NOT be updated on the fixed update if the are packed.
            //https://forum.kerbalspaceprogram.com/index.php?/topic/173885-packed-vessels-position-isnt-reliable-from-fixedupdate/
            SetupRoutine(new RoutineDefinition(SettingsSystem.ServerSettings.SecondaryVesselPositionUpdatesMsInterval, RoutineExecution.Update, SendSecondaryVesselPositionUpdates));
            SetupRoutine(new RoutineDefinition(SettingsSystem.ServerSettings.SecondaryVesselPositionUpdatesMsInterval, RoutineExecution.Update, SendUnloadedSecondaryVesselPositionUpdates));
        }
示例#30
0
        public override void OnStart(StartState state)
        {
            base.OnStart(state);
            //Setup Floatcurves
            AtmosphericAttenutationAirMassMultiplier.Add(0f, 1f, 0f, 0f);
            AtmosphericAttenutationAirMassMultiplier.Add(5f, 0.982f, -0.010f, -0.010f);
            AtmosphericAttenutationAirMassMultiplier.Add(10f, 0.891f, -0.032f, -0.032f);
            AtmosphericAttenutationAirMassMultiplier.Add(15f, 0.746f, -0.025f, -0.025f);
            AtmosphericAttenutationAirMassMultiplier.Add(20f, 0.657f, -0.014f, -0.014f);
            AtmosphericAttenutationAirMassMultiplier.Add(30f, 0.550f, -0.0081f, -0.0081f);
            AtmosphericAttenutationAirMassMultiplier.Add(40f, 0.484f, -0.0053f, -0.0053f);
            AtmosphericAttenutationAirMassMultiplier.Add(50f, 0.439f, -0.0039f, -0.0039f);
            AtmosphericAttenutationAirMassMultiplier.Add(60f, 0.405f, -0.0030f, -0.0030f);
            AtmosphericAttenutationAirMassMultiplier.Add(80f, 0.357f, -0.0020f, -0.0020f);
            AtmosphericAttenutationAirMassMultiplier.Add(100f, 0.324f, -0.0014f, -0.0014f);
            AtmosphericAttenutationAirMassMultiplier.Add(150f, 0.271f, -0.00079f, -0.00079f);
            AtmosphericAttenutationAirMassMultiplier.Add(200f, 0.239f, -0.00052f, -0.00052f);
            AtmosphericAttenutationAirMassMultiplier.Add(300f, 0.200f, -0.00029f, -0.00029f);
            AtmosphericAttenutationAirMassMultiplier.Add(500f, 0.159f, -0.00014f, -0.00014f);
            AtmosphericAttenutationAirMassMultiplier.Add(800f, 0.130f, -0.00007f, -0.00007f);
            AtmosphericAttenutationAirMassMultiplier.Add(1200f, 0.108f, -0.00004f, 0f);
            AtmosphericAttenutationSolarAngleMultiplier.Add(0f, 1f, 0f, 0f);
            AtmosphericAttenutationSolarAngleMultiplier.Add(15f, 0.985f, -0.0020f, -0.0020f);
            AtmosphericAttenutationSolarAngleMultiplier.Add(30f, 0.940f, -0.0041f, -0.0041f);
            AtmosphericAttenutationSolarAngleMultiplier.Add(45f, 0.862f, -0.0064f, -0.0064f);
            AtmosphericAttenutationSolarAngleMultiplier.Add(60f, 0.746f, -0.0092f, -0.0092f);
            AtmosphericAttenutationSolarAngleMultiplier.Add(75f, 0.579f, -0.0134f, -0.0134f);
            AtmosphericAttenutationSolarAngleMultiplier.Add(90f, 0.336f, -0.0185f, -0.0185f);
            AtmosphericAttenutationSolarAngleMultiplier.Add(105f, 0.100f, -0.008f, -0.008f);
            AtmosphericAttenutationSolarAngleMultiplier.Add(120f, 0.050f, 0f, 0f);
            if (HighLogic.LoadedSceneIsFlight)
            {
                TimingManager.LateUpdateAdd(TimingManager.TimingStage.Early, EarlyLateUpdate);

                Fields["trackingBodyName"].guiActive = true;
                Events["ManualTracking"].guiActive   = true;

                if (_manualTracking)
                {
                    CelestialBody trackingBody = GetTrackingBodyFromName(trackingBodyName);

                    if (trackingBody != null)
                    {
                        SetTrackingBody(trackingBody);
                    }
                    else
                    {
                        _manualTracking = false;
                    }
                }
            }
        }
 //||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
 //                             _CORE PROCESSES_
 // START
 // Use this for initialization
 void Start()
 {
     Application.targetFrameRate = 60;
     //currentSong = Overseer.selectedSong;
     currentSong = TestSong.getTestSong();
     Overseer.songScore = 0;
     Debug.Log (currentSong.SongName);
     Debug.Log(currentSong.LoopList[0].SongName);
     currentLoop = currentSong.LoopList[0];
     loopRepetition = 1;
     timer = new TimingManager(currentLoop.BeatsPerMinute);
     graphics = GameObject.FindObjectOfType<GraphicsManager>();
     levels = GameObject.FindObjectOfType<LevelManager>();
     inputManager = GameObject.FindObjectOfType<InputManager>();
     sounds = GameObject.FindObjectOfType<SoundManager>();
     score = FindObjectOfType<ScoreController>();
     beatNo = timer.currentBeat();
     // Find the first edge.
     currentEdge = currentLoop.EdgeList[0];
     currentNode = currentEdge.FromNode;
     endNode = currentLoop.NodeList[currentLoop.NodeList.Count - 1];
     if (currentNode.StartNode){
         startNode = currentNode;
         //Debug.Log("All loaded, we're good to go! - " + ((double)(Time.time - TimingManager.StartTime)).ToString());
         //Debug.Log(currentNode.NodeName + " " + CurrentNode.NodeType.ToString());
     }
     playerEdge = currentEdge;
     playerNode = currentNode;
     graphics.beginGraphicsProcess();
     loaded = true;
 }