public Binding(string description, KeyCode primary, KeyCode secondary, Display display) { BindingDescription = description; PrimaryBindingCode = new KeyCodeExtended(primary); SecondaryBindingCode = new KeyCodeExtended(secondary); ToDisplay = display; }
// temporary clear the keybindings when the mapview is opened private static void SaveBindings() { KeyBindings.Clear(); var gameSettingsType = typeof(GameSettings); var keyBindingFieldInfos = gameSettingsType.GetFields().Where(predicate: fi => fi.IsStatic && fi.IsPublic && fi.FieldType == typeof(KeyBinding)); foreach (var keyBindingFieldInfo in keyBindingFieldInfos) { var keyBinding = (KeyBinding)keyBindingFieldInfo.GetValue(obj: null); var primaryKeyCode = new KeyCodeExtended(key: keyBinding.primary.code); var secondaryKeyCode = new KeyCodeExtended(key: keyBinding.secondary.code); if (!ManeuverKeys.ContainsKey(key: primaryKeyCode) && !ModifierKeys.ContainsKey(key: primaryKeyCode) && !ManeuverKeys.ContainsKey(key: secondaryKeyCode) && !ModifierKeys.ContainsKey(key: secondaryKeyCode)) { continue; } KeyBindings.Add( key: keyBindingFieldInfo.Name, value: keyBinding ); keyBindingFieldInfo.SetValue( obj: null, value: new KeyBinding() ); // blank keybinding } GameSettings.ApplySettings(); _savedBindings = true; }
public static void Setup() { TRANSLATE_UP = GameSettings.TRANSLATE_UP.primary; TRANSLATE_DOWN = GameSettings.TRANSLATE_DOWN.primary; TRANSLATE_BACK = GameSettings.TRANSLATE_BACK.primary; TRANSLATE_FWD = GameSettings.TRANSLATE_FWD.primary; TRANSLATE_RIGHT = GameSettings.TRANSLATE_RIGHT.primary; TRANSLATE_LEFT = GameSettings.TRANSLATE_LEFT.primary; PLUGIN_TOGGLE = new KeyBinding(Parse(Settings.GetValue("shortcut_key", KeyCode.Alpha5.ToString()))); }
/// <summary> /// Sets up IVA and activates it /// </summary> /// <returns>True if successful, False on error</returns> public bool startIVA() { if (FlightGlobals.ActiveVessel == null) { ProbeControlRoomUtils.Logger.debug("startIVA() - return ACTIVE VESSEL NULL"); return(false); } ProbeControlRoomUtils.Logger.debug("startIVA()"); Transform actualTransform; if (FlightGlobals.ActiveVessel.packed) { ProbeControlRoomUtils.Logger.debug("startIVA() - return vessel still packed!"); return(false); } if (canStockIVA || FlightGlobals.ActiveVessel.evaController != null) { ProbeControlRoomUtils.Logger.debug("startIVA() - return EVA or IVA"); return(false); } //Verify active room available if (!canPCRIVA) { ProbeControlRoomUtils.Logger.message("startIVA() - Refresh rooms said there were no IVAs available! Can't start."); return(false); } //Ensure part still exists if (aPart == null) { ProbeControlRoomUtils.Logger.message("startIVA() Lost our part, refreshing"); refreshVesselRooms(); } if (aPart == null) { ProbeControlRoomUtils.Logger.message("startIVA() Can't find a part. DIE."); return(false); } //Setup module for transforms if (aPart.FindModulesImplementing <ProbeControlRoomPart>().Count == 0) { ProbeControlRoomUtils.Logger.error("startIVA() a module was not found on the part now, exiting"); return(false); } aModule = aPart.FindModulesImplementing <ProbeControlRoomPart>()[0]; //Make the PCR part the focused part aPart.MakeReferencePart(); //Setup camera transform for internal seat actualTransform = aPart.internalModel.FindModelTransform(aModule.seatTransformName); if (Transform.Equals(actualTransform, null)) { ProbeControlRoomUtils.Logger.error("startIVA(Part) - NULL on actualTransform-seatTransformName, using fallback..."); actualTransform = aPart.internalModel.FindModelTransform("Seat"); } else { ProbeControlRoomUtils.Logger.message("startIVA(Part) - Seat: " + aModule.seatTransformName.ToString()); } ProbeControlRoomUtils.Logger.debug("startIVA() - fire up IVA"); //disable sound shipVolumeBackup = GameSettings.SHIP_VOLUME; ambianceVolumeBackup = GameSettings.AMBIENCE_VOLUME; if (ProbeControlRoomSettings.Instance.DisableSounds) { ProbeControlRoomUtils.Logger.message("startIVA() - DisableSounds"); GameSettings.SHIP_VOLUME = 0f; GameSettings.AMBIENCE_VOLUME = 0; GameSettings.MUSIC_VOLUME = 0; GameSettings.UI_VOLUME = 0; GameSettings.VOICE_VOLUME = 0; } //disable camera wobble cameraWobbleBackup = GameSettings.FLT_CAMERA_WOBBLE; cameraFXInternalBackup = GameSettings.CAMERA_FX_INTERNAL; cameraFXExternalBackup = GameSettings.CAMERA_FX_EXTERNAL; if (ProbeControlRoomSettings.Instance.DisableWobble) { ProbeControlRoomUtils.Logger.message("startIVA() - DisableWobble"); GameSettings.FLT_CAMERA_WOBBLE = 0; GameSettings.CAMERA_FX_INTERNAL = 0; GameSettings.CAMERA_FX_EXTERNAL = 0; } // TODO: create cfg file with cached vars, on crash to be restored //Prevent user from turning on vessel labels if (!HasCachedVesselLabelsSetting) { HasCachedVesselLabelsSetting = true; CachedVesselLabelsSetting = GameSettings.FLT_VESSEL_LABELS; } if (!VesselLabelKeyDisabled) { VesselLabelKeyDisabled = true; CachedLabelPrimaryKey = GameSettings.TOGGLE_LABELS.primary; CachedLabelSecondaryKey = GameSettings.TOGGLE_LABELS.secondary; GameSettings.TOGGLE_LABELS.primary = new KeyCodeExtended(KeyCode.None); GameSettings.TOGGLE_LABELS.secondary = new KeyCodeExtended(KeyCode.None); } SetVesselLabelsValue(false); //Highlighters if (!HasCachedHighlightInFlightSetting) { HasCachedHighlightInFlightSetting = true; CachedHighlightInFlightSetting = GameSettings.INFLIGHT_HIGHLIGHT; } GameSettings.INFLIGHT_HIGHLIGHT = false; //Unsure of this purpose at the moment FlightCamera.fetch.EnableCamera(); FlightCamera.fetch.DeactivateUpdate(); FlightCamera.fetch.gameObject.SetActive(true); //Move internal camera to the correct position and enable InternalCamera.Instance.SetTransform(actualTransform, true); InternalCamera.Instance.EnableCamera(); if (UIPartActionController.Instance != null) { UIPartActionController.Instance.Deactivate(); } //Activate internal camera CameraManager.Instance.SetCameraInternal(aPart.internalModel, actualTransform); ProbeControlRoomUtils.Logger.debug("startIVA() - DONE"); //GUI may not be started yet. if (toolbarControl != null) { //Change app launcher button icon toolbarControl.SetTexture(IconActivate, enabledTexture); } if (hassavedlookangles && field_set_internalcamera_currentPitch != null && field_set_internalcamera_currentRot != null && field_set_internalcamera_currentZoom != null) { ProbeControlRoomUtils.Logger.debug(string.Format("startIVA() - Restoring pitch and rot. {0}, {1}", savedpitch, savedrot)); field_set_internalcamera_currentPitch(InternalCamera.Instance, savedpitch); field_set_internalcamera_currentRot(InternalCamera.Instance, savedrot); field_set_internalcamera_currentZoom(InternalCamera.Instance, savedzoom); InternalCamera.Instance.Update(); } //Disable sun effects inside of IVA SetSun(false); ProbeControlRoomUtils.Logger.debug("startIVA() - REALLY DONE"); isActive = true; return(true); }
internal void drawWindow(int id) { GUI.skin = modStyle.skin; GUILayout.BeginVertical(); GUILayout.Label("EVA Enhancements - Settings", modStyle.guiStyles["titleLabel"]); GUILayout.EndVertical(); GUILayout.BeginVertical(); scrollPos = GUILayout.BeginScrollView(scrollPos); GUILayout.Label("Default Jetpack Power: " + settings.defaultJetPackPower.ToString("P0")); float newJetPackPower = GUILayout.HorizontalSlider(settings.defaultJetPackPower, 0f, 1f); if (newJetPackPower != settings.defaultJetPackPower) { settings.defaultJetPackPower = newJetPackPower; settings.Save(); } GUILayout.Space(10f); GUILayout.Label("Default Precision Jetpack Power: " + settings.defaultPrecisionModePower.ToString("P0")); float newPrecisionJetPackPower = GUILayout.HorizontalSlider(settings.defaultPrecisionModePower, 0f, 1f); if (newPrecisionJetPackPower != settings.defaultPrecisionModePower) { settings.defaultPrecisionModePower = newPrecisionJetPackPower; settings.Save(); } GUILayout.Space(10f); string str; GUILayout.BeginHorizontal(); GUILayout.Label("Pitch Down", GUILayout.ExpandWidth(true)); KeyCodeExtended c = null; if (Event.current.isKey) { c = new KeyCodeExtended(Event.current.keyCode); } if (settingPitchDown) { GUILayout.Label("<Press any key>"); if (Event.current.isKey && c.ToString() != GameSettings.MODIFIER_KEY.primary.ToString()) { Log.Info("keyodeExtended: " + c.ToString() + ", primary: " + GameSettings.MODIFIER_KEY.primary.ToString()); settings.pitchDown = new KeyCodeExtended(Event.current.keyCode); settings.modKeypitchDown = ExtendedInput.GetKey(GameSettings.MODIFIER_KEY.primary); settings.Save(); settingPitchDown = false; } } else { str = settings.pitchDown.ToString(); if (settings.modKeypitchDown) { str = "Alt-" + str; } if (GUILayout.Button(new GUIContent(str), GUILayout.Width(125))) { settingPitchDown = true; } } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Pitch Up", GUILayout.ExpandWidth(true)); if (settingPitchUp) { GUILayout.Label("<Press any key>"); if (Event.current.isKey && c.ToString() != GameSettings.MODIFIER_KEY.primary.ToString()) { settings.pitchUp = new KeyCodeExtended(Event.current.keyCode); settings.modKeypitchUp = ExtendedInput.GetKey(GameSettings.MODIFIER_KEY.primary); settings.Save(); settingPitchUp = false; } } else { str = settings.pitchUp.ToString(); if (settings.modKeypitchUp) { str = "Alt-" + str; } if (GUILayout.Button(new GUIContent(str), GUILayout.Width(125))) { settingPitchUp = true; } } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Roll Left", GUILayout.ExpandWidth(true)); if (settingRollLeft) { GUILayout.Label("<Press any key>"); if (Event.current.isKey && c.ToString() != GameSettings.MODIFIER_KEY.primary.ToString()) { settings.rollLeft = new KeyCodeExtended(Event.current.keyCode); settings.modKeyrollLeft = ExtendedInput.GetKey(GameSettings.MODIFIER_KEY.primary); settings.Save(); settingRollLeft = false; } } else { str = settings.rollLeft.ToString(); if (settings.modKeyrollLeft) { str = "Alt-" + str; } if (GUILayout.Button(new GUIContent(str), GUILayout.Width(125))) { settingRollLeft = true; } } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Roll Right", GUILayout.ExpandWidth(true)); if (settingRollRight) { GUILayout.Label("<Press any key>"); if (Event.current.isKey && c.ToString() != GameSettings.MODIFIER_KEY.primary.ToString()) { settings.rollRight = new KeyCodeExtended(Event.current.keyCode); settings.modKeyrollRight = ExtendedInput.GetKey(GameSettings.MODIFIER_KEY.primary); settings.Save(); settingRollRight = false; } } else { str = settings.rollRight.ToString(); if (settings.modKeyrollRight) { str = "Alt-" + str; } if (GUILayout.Button(new GUIContent(str), GUILayout.Width(125))) { settingRollRight = true; } } GUILayout.EndHorizontal(); GUILayout.Space(10); #if false GUILayout.BeginHorizontal(); newUseStockToolbar = GUILayout.Toggle(settings.useStockToolbar, "Use Stock Toolbar"); GUILayout.EndHorizontal(); if (newUseStockToolbar != settings.useStockToolbar) { settings.useStockToolbar = newUseStockToolbar; settings.Save(); } #endif GUILayout.BeginHorizontal(); // GUILayout.Label("NavBall follows Kerbal:"); settingsEvaNavballFollowsKerbal = GUILayout.Toggle(settings.evaNavballFollowsKerbal, "NavBall follows Kerbal"); if (settingsEvaNavballFollowsKerbal != settings.evaNavballFollowsKerbal) { settings.evaNavballFollowsKerbal = settingsEvaNavballFollowsKerbal; settings.Save(); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); // GUILayout.Label("NavBall follows Kerbal:"); settingsEvaHideNavballMarkers = GUILayout.Toggle(settings.evaHideNavballMarkers, "Hide Navball markers on EVA"); if (settingsEvaHideNavballMarkers != settings.evaHideNavballMarkers) { settings.evaHideNavballMarkers = settingsEvaHideNavballMarkers; settings.Save(); } GUILayout.EndHorizontal(); GUILayout.EndScrollView(); GUILayout.Space(25f); GUILayout.EndVertical(); if (GUI.Button(new Rect(windowRect.width - 18, 3f, 15f, 15f), new GUIContent("X"))) { showWindow = false; toolbarControl.SetFalse(false); } GUI.DragWindow(); }