/// <summary> /// Called by Unity once to initialize the class, just before Update is called. /// </summary> public void Start( ) { _logger.Trace( "Start" ); Config.Load( ); _addonInitialized = true; _active = false; _window = new ScienceWindow( ); _window.Settings.UseBlizzysToolbarChanged += Settings_UseBlizzysToolbarChanged; _window.OnCloseEvent += OnWindowClosed; _nextSituationUpdate = DateTime.Now; GameEvents.onGUIApplicationLauncherReady.Add( Load ); GameEvents.onGUIApplicationLauncherDestroyed.Add( Unload ); GameEvents.onVesselWasModified.Add( new EventData<Vessel>.OnEvent( this.VesselWasModified ) ); GameEvents.onVesselChange.Add( new EventData<Vessel>.OnEvent( this.VesselChange ) ); GameEvents.onEditorShipModified.Add( new EventData<ShipConstruct>.OnEvent( this.EditorShipModified ) ); GameEvents.onGameStateSave.Add( new EventData<ConfigNode>.OnEvent( this.GameStateSave ) ); GameEvents.OnPartPurchased.Add( new EventData<AvailablePart>.OnEvent( this.PartPurchased ) ); GameEvents.OnTechnologyResearched.Add( new EventData<GameEvents.HostTargetAction<RDTech, RDTech.OperationResult>>.OnEvent( this.TechnologyResearched ) ); GameEvents.OnScienceChanged.Add( new EventData<float, TransactionReasons>.OnEvent( this.ScienceChanged ) ); GameEvents.OnScienceRecieved.Add( new EventData<float, ScienceSubject, ProtoVessel, bool>.OnEvent( this.ScienceRecieved ) ); GameEvents.onVesselRename.Add( new EventData<GameEvents.HostedFromToAction<Vessel, string>>.OnEvent( this.VesselRename ) ); GameEvents.OnKSCFacilityUpgraded.Add( new EventData<Upgradeables.UpgradeableFacility, int>.OnEvent( this.FacilityUpgrade ) ); GameEvents.onDominantBodyChange.Add( new EventData<GameEvents.FromToAction<CelestialBody, CelestialBody>>.OnEvent( this.DominantBodyChange ) ); GameEvents.onVesselSOIChanged.Add( new EventData<GameEvents.HostedFromToAction<Vessel, CelestialBody>>.OnEvent( this.VesselSOIChanged ) ); DontDestroyOnLoad( this ); }
/// <summary> /// Called by Unity once to initialize the class, just before Update is called. /// </summary> public void Start( ) { _logger.Trace("Start"); Config.Load( ); _addonInitialized = true; _active = false; _window = new ScienceWindow( ); _window.Settings.UseBlizzysToolbarChanged += Settings_UseBlizzysToolbarChanged; _window.OnCloseEvent += OnWindowClosed; _window.OnOpenEvent += OnWindowOpened; // Callbacks for buttons - we init when the button is ready GameEvents.onGUIApplicationLauncherReady.Add(Load); GameEvents.onGUIApplicationLauncherDestroyed.Add(Unload); // Start event handlers _EventHandler = new xScienceEventHandler(this, _window); // Callbacks for F2 GameEvents.onHideUI.Add(OnHideUI); GameEvents.onShowUI.Add(OnShowUI); DontDestroyOnLoad(this); }
// Constructor public xScienceEventHandler(ScienceChecklistAddon Parent, ScienceWindow Window) { _parent = Parent; _window = Window; _nextSituationUpdate = DateTime.Now; _nextExperimentUpdate = DateTime.Now; _mustDoFullRefresh = true; _filterRefreshPending = true; _vExperimentsRefreshPending = true; GameEvents.onGameSceneSwitchRequested.Add(new EventData <GameEvents.FromToAction <GameScenes, GameScenes> > .OnEvent(this.OnGameSceneSwitch)); GameEvents.onVesselWasModified.Add(new EventData <Vessel> .OnEvent(this.VesselWasModified)); GameEvents.onVesselChange.Add(new EventData <Vessel> .OnEvent(this.VesselChange)); GameEvents.onEditorShipModified.Add(new EventData <ShipConstruct> .OnEvent(this.EditorShipModified)); GameEvents.onGameStateSave.Add(new EventData <ConfigNode> .OnEvent(this.GameStateSave)); GameEvents.OnPartPurchased.Add(new EventData <AvailablePart> .OnEvent(this.PartPurchased)); GameEvents.OnTechnologyResearched.Add(new EventData <GameEvents.HostTargetAction <RDTech, RDTech.OperationResult> > .OnEvent(this.TechnologyResearched)); GameEvents.OnScienceChanged.Add(new EventData <float, TransactionReasons> .OnEvent(this.ScienceChanged)); GameEvents.OnScienceRecieved.Add(new EventData <float, ScienceSubject, ProtoVessel, bool> .OnEvent(this.ScienceRecieved)); GameEvents.onVesselRename.Add(new EventData <GameEvents.HostedFromToAction <Vessel, string> > .OnEvent(this.VesselRename)); GameEvents.OnKSCFacilityUpgraded.Add(new EventData <Upgradeables.UpgradeableFacility, int> .OnEvent(this.FacilityUpgrade)); GameEvents.onDominantBodyChange.Add(new EventData <GameEvents.FromToAction <CelestialBody, CelestialBody> > .OnEvent(this.DominantBodyChange)); GameEvents.onVesselSOIChanged.Add(new EventData <GameEvents.HostedFromToAction <Vessel, CelestialBody> > .OnEvent(this.VesselSOIChanged)); }
/// <summary> /// Called by Unity once to initialize the class. /// </summary> public void Awake() { if (_addonInitialized == true) { // For some reason the addon can be instantiated several times by the KSP addon loader (generally when going to/from the VAB), // even though we set onlyOnce to true in the KSPAddon attribute. return; } Config.Load(); _addonInitialized = true; _active = false; _logger = new Logger(this); _logger.Trace("Awake"); _window = new ScienceWindow(); _window.Settings.UseBlizzysToolbarChanged += Settings_UseBlizzysToolbarChanged; _window.OnCloseEvent += OnWindowClosed; _nextSituationUpdate = DateTime.Now; GameEvents.onGUIApplicationLauncherReady.Add(Load); GameEvents.onGUIApplicationLauncherDestroyed.Add(Unload); GameEvents.onVesselWasModified.Add(new EventData <Vessel> .OnEvent(this.VesselWasModified)); GameEvents.onVesselChange.Add(new EventData <Vessel> .OnEvent(this.VesselChange)); GameEvents.onEditorShipModified.Add(new EventData <ShipConstruct> .OnEvent(this.EditorShipModified)); GameEvents.onGameStateSave.Add(new EventData <ConfigNode> .OnEvent(this.GameStateSave)); GameEvents.OnPartPurchased.Add(new EventData <AvailablePart> .OnEvent(this.PartPurchased)); GameEvents.OnTechnologyResearched.Add(new EventData <GameEvents.HostTargetAction <RDTech, RDTech.OperationResult> > .OnEvent(this.TechnologyResearched)); GameEvents.OnScienceChanged.Add(new EventData <float, TransactionReasons> .OnEvent(this.ScienceChanged)); GameEvents.OnScienceRecieved.Add(new EventData <float, ScienceSubject, ProtoVessel, bool> .OnEvent(this.ScienceRecieved)); GameEvents.onVesselRename.Add(new EventData <GameEvents.HostedFromToAction <Vessel, string> > .OnEvent(this.VesselRename)); GameEvents.OnKSCFacilityUpgraded.Add(new EventData <Upgradeables.UpgradeableFacility, int> .OnEvent(this.FacilityUpgrade)); // GameEvents.OnKSCFacilityUpgrading.Add(); // GameEvents.OnUpgradeableObjLevelChange.Add(); }
/// <summary> /// Called by Unity once to initialize the class. /// </summary> public void Awake() { if (_addonInitialized == true) { // For some reason the addon can be instantiated several times by the KSP addon loader (generally when going to/from the VAB), // even though we set onlyOnce to true in the KSPAddon attribute. return; } Config.Load(); _addonInitialized = true; _active = false; _logger = new Logger(this); _logger.Trace("Awake"); _window = new ScienceWindow(); _window.Settings.UseBlizzysToolbarChanged += Settings_UseBlizzysToolbarChanged; _window.OnCloseEvent += OnWindowClosed; _nextSituationUpdate = DateTime.Now; GameEvents.onGUIApplicationLauncherReady.Add(Load); GameEvents.onGUIApplicationLauncherDestroyed.Add(Unload); GameEvents.onVesselWasModified.Add( new EventData<Vessel>.OnEvent( this.VesselWasModified ) ); GameEvents.onVesselChange.Add( new EventData<Vessel>.OnEvent( this.VesselChange ) ); GameEvents.onEditorShipModified.Add( new EventData<ShipConstruct>.OnEvent( this.EditorShipModified ) ); GameEvents.onGameStateSave.Add( new EventData<ConfigNode>.OnEvent( this.GameStateSave ) ); GameEvents.OnPartPurchased.Add( new EventData<AvailablePart>.OnEvent( this.PartPurchased ) ); GameEvents.OnTechnologyResearched.Add( new EventData<GameEvents.HostTargetAction<RDTech, RDTech.OperationResult>>.OnEvent( this.TechnologyResearched ) ); GameEvents.OnScienceChanged.Add( new EventData<float, TransactionReasons>.OnEvent( this.ScienceChanged ) ); GameEvents.OnScienceRecieved.Add( new EventData<float, ScienceSubject, ProtoVessel, bool>.OnEvent( this.ScienceRecieved ) ); GameEvents.onVesselRename.Add( new EventData<GameEvents.HostedFromToAction<Vessel, string>>.OnEvent( this.VesselRename ) ); GameEvents.OnKSCFacilityUpgraded.Add( new EventData<Upgradeables.UpgradeableFacility, int>.OnEvent( this.FacilityUpgrade ) ); // GameEvents.OnKSCFacilityUpgrading.Add(); // GameEvents.OnUpgradeableObjLevelChange.Add(); }
// Called by Unity once to initialize the class, just before Update is called. public void Start( ) { _logger.Trace("Start"); if (_addonInitialized == true) { // For some reason the addon can be instantiated several times by the KSP addon loader (generally when going to/from the VAB), // even though we set onlyOnce to true in the KSPAddon attribute. HammerMusicMute( ); // Ensure we enforce music volume anyway return; } _addonInitialized = true; _active = false; // Config Config = new Config( ); Config.Load( ); // Music Muting if (Config.MusicStartsMuted) { Muted = true; ScreenMessages.PostScreenMessage("[x] Science! - Music Mute"); } GameEvents.onGameSceneSwitchRequested.Add(this.onGameSceneSwitchRequested); GameEvents.onLevelWasLoaded.Add(this.onLevelWasLoaded); // _logger.Trace( "Making DMagic Factory" ); DMagic = new DMagicFactory( ); // _logger.Trace( "Made DMagic Factory" ); // _logger.Trace( "Making ScienceContext" ); Science = new ScienceContext(this); // _logger.Trace( "Made ScienceContext" ); // Start event handlers ScienceEventHandler = new xScienceEventHandler(this); // Settings window _settingsWindow = new SettingsWindow(this); Config.UseBlizzysToolbarChanged += Settings_UseBlizzysToolbarChanged; Config.RighClickMutesMusicChanged += Settings_RighClickMutesMusicChanged; // Help window _helpWindow = new HelpWindow(this); // Status window _alertNoise = gameObject.AddComponent <Noise>( ); _statusWindow = new StatusWindow(this); _statusWindow.NoiseEvent += OnPlayNoise; _statusWindow.WindowClosed += OnStatusWindowClosed; _statusWindow.OnCloseEvent += OnStatusWindowClosed; _statusWindow.OnOpenEvent += OnStatusWindowOpened; // Checklist window _checklistWindow = new ScienceWindow(this, _settingsWindow, _helpWindow); _checklistWindow.OnCloseEvent += OnChecklistWindowClosed; _checklistWindow.OnOpenEvent += OnChecklistWindowOpened; // ShipState Window _shipStateWindow = new ShipStateWindow(this); // Save and load checklist window config when the game scene is changed // We are only visible in some scenes GameEvents.onGameSceneSwitchRequested.Add(new EventData <GameEvents.FromToAction <GameScenes, GameScenes> > .OnEvent(this.OnGameSceneSwitch)); // Callbacks for buttons - we init when the "Launcher" toolbar is ready GameEvents.onGUIApplicationLauncherReady.Add(Load); GameEvents.onGUIApplicationLauncherDestroyed.Add(Unload); // Callbacks for F2 GameEvents.onHideUI.Add(OnHideUI); GameEvents.onShowUI.Add(OnShowUI); DontDestroyOnLoad(this); _logger.Trace("Done Start"); }