private void Start() { if (icon == null) { icon = new Texture2D(38, 38, TextureFormat.ARGB32, false); string path = Path.Combine(new DirectoryInfo(KSPUtil.ApplicationRootPath).FullName, "GameData/BasicDeltaV/Resources/AppIcon.png").Replace("\\", "/"); if (File.Exists(path)) { icon.LoadImage(File.ReadAllBytes(path)); } } instance = this; if (buttonAdder != null) { StopCoroutine(buttonAdder); } buttonAdder = AddButton(); StartCoroutine(buttonAdder); GameEvents.OnGameSettingsApplied.Add(Reposition); }
private void Start() { _settings = HighLogic.CurrentGame.Parameters.CustomParams <BasicDeltaV_GameParameters>(); panelManager = gameObject.AddComponent <BasicDVPanelManager>(); _inFlight = _settings.AllowFlight || _settings.DisableStockDeltaV; if (!_vesselDeltaVFlagAssigned) { AssignDeltaVFlag(); _vesselDeltaVFlagAssigned = true; } if (HighLogic.LoadedSceneIsEditor) { _simpleRestrictions = false; _complexRestrictions = false; _readoutsAvailable = true; _currentBody = BodyFromName(BasicDeltaV_Settings.Instance.CelestialBody); GameEvents.onEditorShipModified.Add(DeactivateEditorDeltaV); GameEvents.onPartPriorityChanged.Add(TriggerSimulator); GameEvents.onPartResourceListChange.Add(TriggerSimulator); GameEvents.onPartCrossfeedStateChange.Add(TriggerSimulator); GameEvents.onPartFuelLookupStateChange.Add(TriggerSimulator); GameEvents.onPartModuleAdjusterAdded.Add(TriggerSimulator); GameEvents.onPartModuleAdjusterRemoved.Add(TriggerSimulator); GameEvents.onPartResourceFlowStateChange.Add(TriggerSimulator); GameEvents.StageManager.OnGUIStageAdded.Add(TriggerSimulator); GameEvents.StageManager.OnGUIStageRemoved.Add(TriggerSimulator); GameEvents.StageManager.OnStagingSeparationIndices.Add(TriggerSimulator); } else if (HighLogic.LoadedSceneIsFlight) { if (!_inFlight) { Destroy(gameObject); return; } GameEvents.onVesselCrewWasModified.Add(CrewModified); GameEvents.onVesselChange.Add(CrewModified); GameEvents.onStageActivate.Add(OnStage); CheckVesselCrew(FlightGlobals.ActiveVessel); DeactivateDeltaV(FlightGlobals.ActiveVessel); _currentBody = FlightGlobals.currentMainBody; StartCoroutine(WaitForFlightController()); } GameEvents.StageManager.OnGUIStageSequenceModified.Add(OnStageModify); if (_currentBody == null) { _currentBody = Planetarium.fetch.Home; } Assembly assembly = AssemblyLoader.loadedAssemblies.GetByAssembly(Assembly.GetExecutingAssembly()).assembly; var ainfoV = Attribute.GetCustomAttribute(assembly, typeof(AssemblyInformationalVersionAttribute)) as AssemblyInformationalVersionAttribute; switch (ainfoV == null) { case true: _version = ""; break; default: _version = ainfoV.InformationalVersion; break; } SimManager.vectoredThrust = BasicDeltaV_Settings.Instance.VectoredThrust; appLauncher = gameObject.AddComponent <BasicDeltaV_AppLauncher>(); panelHandler = gameObject.AddComponent <BasicDeltaV_PanelManager>(); StartCoroutine(WaitForStageManager()); _loaded = true; }