Esempio n. 1
0
        private void UpdateVisibility()
        {
            var isCharacterMode = OWInput.IsInputMode(InputMode.Character);
            var hand            = HandsController.Behaviour.RightHand;

            var isHandClose     = !ModSettings.AutoHideToolbelt || (hand.position - transform.position).sqrMagnitude < _minHandDistance;
            var shouldBeVisible = !ToolHelper.IsUsingAnyTool() && isCharacterMode && isHandClose;

            if (!_visible && shouldBeVisible)
            {
                SetVisible(true);
            }
            if (_visible && !shouldBeVisible)
            {
                SetVisible(false);
            }
        }
        private void OpenInfoPopup(string message, string okButtonText, string cancelButtonText)
        {
            TwoButtonInfoPopup.SetUpPopup(message, InputLibrary.menuConfirm, InputLibrary.cancel, new ScreenPrompt(okButtonText), new ScreenPrompt(cancelButtonText));

            OWTime.Pause(OWTime.PauseType.Menu);
            OWInput.ChangeInputMode(InputMode.Menu);

            var pauseCommandListener = Locator.GetPauseCommandListener();

            if (pauseCommandListener != null)
            {
                pauseCommandListener.AddPauseCommandLock();
                _addedPauseLock = true;
            }

            TwoButtonInfoPopup.EnableMenu(true);
        }
Esempio n. 3
0
                private static void PatchTurning(OWCamera ____playerCam, Transform ____transform)
                {
                    var runSpeedX            = _playerAnimator.GetFloat("RunSpeedX");
                    var runSpeedY            = _playerAnimator.GetFloat("RunSpeedY");
                    var isStopped            = runSpeedX + runSpeedY == 0;
                    var isControllerOriented = !isStopped && NomaiVR.Config.controllerOrientedMovement;

                    if ((OWInput.GetInputMode() != InputMode.Character))
                    {
                        return;
                    }

                    var rotationSource = isControllerOriented ? LaserPointer.Behaviour.LeftHandLaser : ____playerCam.transform;

                    var fromTo = Quaternion.FromToRotation(____transform.forward, Vector3.ProjectOnPlane(rotationSource.transform.forward, ____transform.up));

                    var magnitude = 0f;

                    if (!isControllerOriented)
                    {
                        var magnitudeUp      = 1 - Vector3.ProjectOnPlane(rotationSource.transform.up, ____transform.up).magnitude;
                        var magnitudeForward = 1 - Vector3.ProjectOnPlane(rotationSource.transform.up, ____transform.right).magnitude;
                        magnitude = magnitudeUp + magnitudeForward;

                        if (magnitude < 0.3f)
                        {
                            return;
                        }
                    }

                    var targetRotation  = fromTo * ____transform.rotation;
                    var inverseRotation = Quaternion.Inverse(fromTo) * _playArea.rotation;

                    if (isControllerOriented)
                    {
                        _playArea.rotation     = inverseRotation;
                        ____transform.rotation = targetRotation;
                    }
                    else
                    {
                        var maxDegreesDelta = magnitude * 3f;
                        _playArea.rotation     = Quaternion.RotateTowards(_playArea.rotation, inverseRotation, maxDegreesDelta);
                        ____transform.rotation = Quaternion.RotateTowards(____transform.rotation, targetRotation, maxDegreesDelta);
                    }
                }
Esempio n. 4
0
                private static bool PreUpdateRumble(object[] ___m_theList, bool ___m_isEnabled)
                {
                    if (OWTime.IsPaused())
                    {
                        return(false);
                    }

                    var a = Vector2.zero;

                    if (___m_isEnabled && OWInput.UsingGamepad())
                    {
                        var deltaTime = Time.deltaTime;
                        for (var i = 0; i < ___m_theList.Length; i++)
                        {
                            var rumble  = ___m_theList[i];
                            var isAlive = (bool)rumble.GetType().GetMethod("IsAlive").Invoke(rumble, new object[] { });

                            if (isAlive)
                            {
                                rumble.Invoke("Update", deltaTime);
                            }

                            var isAliveAgain = (bool)rumble.GetType().GetMethod("IsAlive").Invoke(rumble, new object[] { });

                            if (isAliveAgain)
                            {
                                var power = (Vector2)rumble.GetType().GetMethod("GetPower").Invoke(rumble, new object[] { });
                                a += power;
                            }
                        }
                        a.x *= 1.42857146f;
                        a.y *= 1.42857146f;

                        var haptic     = SteamVR_Actions.default_Haptic;
                        var frequency  = 0.1f;
                        var amplitudeY = a.y * ModSettings.VibrationStrength;
                        var amplitudeX = a.x * ModSettings.VibrationStrength;
                        haptic.Execute(0, frequency, 10, amplitudeY, SteamVR_Input_Sources.RightHand);
                        haptic.Execute(0, frequency, 50, amplitudeX, SteamVR_Input_Sources.RightHand);
                        haptic.Execute(0, frequency, 10, amplitudeY, SteamVR_Input_Sources.LeftHand);
                        haptic.Execute(0, frequency, 50, amplitudeX, SteamVR_Input_Sources.LeftHand);
                    }

                    return(false);
                }
Esempio n. 5
0
 private void UpdateGrab()
 {
     if (!OWInput.IsInputMode(InputMode.Character))
     {
         if (IsEquipped())
         {
             Unequip();
         }
         return;
     }
     if (ControllerInput.Behaviour.IsGripping && !IsEquipped() && Detector.isInside && _visible)
     {
         Equip();
     }
     if (!ControllerInput.Behaviour.IsGripping && IsEquipped())
     {
         Unequip();
     }
 }
Esempio n. 6
0
        public void UpdateObjectsFromStates()
        {
            if (OWInput.GetInputMode() == InputMode.None)
            {
                // ? why is this here lmao
                return;
            }

            if (CameraBody == null)
            {
                return;
            }

            FlashLight?.UpdateState(FlashlightActive);
            Translator?.ChangeEquipState(TranslatorEquipped);
            ProbeLauncher?.ChangeEquipState(ProbeLauncherEquipped);
            Signalscope?.ChangeEquipState(SignalscopeEquipped);
            AnimationSync.SetSuitState(SuitedUp);
        }
Esempio n. 7
0
 public static void DoubleAxisUpdatePost(
     DoubleAxisCommand __instance,
     ref Vector2 ____value,
     List <KeyCode> ____posXKeyCodes,
     List <KeyCode> ____negXKeyCodes,
     List <KeyCode> ____posYKeyCodes,
     List <KeyCode> ____negYKeyCodes
     )
 {
     if (OWInput.UsingGamepad())
     {
         return;
     }
     foreach (var key in ____posXKeyCodes)
     {
         if (ModInputHandler.Instance.IsPressedAndIgnored(key))
         {
             ____value.x = 0f;
         }
     }
     foreach (var key in ____negXKeyCodes)
     {
         if (ModInputHandler.Instance.IsPressedAndIgnored(key))
         {
             ____value.x = 0f;
         }
     }
     foreach (var key in ____posYKeyCodes)
     {
         if (ModInputHandler.Instance.IsPressedAndIgnored(key))
         {
             ____value.y = 0f;
         }
     }
     foreach (var key in ____negYKeyCodes)
     {
         if (ModInputHandler.Instance.IsPressedAndIgnored(key))
         {
             ____value.y = 0f;
         }
     }
 }
Esempio n. 8
0
        public Texture2D KeyTexture(KeyCode key)
        {
            if (_loadedTextures == null)
            {
                FillTextureLibrary();
            }
            var keyName = ModInputLibrary.KeyCodeToString(key);

            if (_loadedTextures.ContainsKey(keyName))
            {
                return(_loadedTextures[keyName]);
            }
            var config  = OWInput.GetActivePadConfig() ?? InputUtil.GamePadConfig_Xbox;
            var toStore = (int)key >= ModInputLibrary.MinGamepadKey ?
                          ButtonPromptLibrary.SharedInstance.GetButtonTexture(InputTranslator.ConvertKeyCodeToButton(key, config)) :
                          ButtonPromptLibrary.SharedInstance.GetButtonTexture(key);

            _loadedTextures.Add(keyName, toStore);
            return(toStore);
        }
 public void SwitchTo1stPerson()
 {
     if (!IsSetUp)
     {
         DebugLog.ToConsole("Warning - Camera not set up!", MessageType.Warning);
         OWInput.ChangeInputMode(InputMode.Character);
         Mode = CameraMode.FirstPerson;
         return;
     }
     if (Mode == CameraMode.FirstPerson)
     {
         DebugLog.ToConsole("Warning - Already in 1st person!", MessageType.Warning);
         return;
     }
     OWInput.ChangeInputMode(InputMode.Character);
     QSBEventManager.FireEvent("SwitchActiveCamera", Locator.GetPlayerCamera());
     Locator.GetActiveCamera().mainCamera.enabled = true;
     _camera.enabled = false;
     Mode            = CameraMode.FirstPerson;
 }
Esempio n. 10
0
        private void Update()
        {
            if (OWInput.IsInputMode(InputMode.ShipCockpit) && Input.GetKeyDown(KeyCode.L))
            {
                lowSpeedMode = !lowSpeedMode;

                if (lowSpeedMode)
                {
                    NotificationManager.SharedInstance.PostNotification(modeActive, true);
                }
                else
                {
                    if (NotificationManager.SharedInstance.IsPinnedNotification(modeActive))
                    {
                        NotificationManager.SharedInstance.UnpinNotification(modeActive);
                    }

                    NotificationManager.SharedInstance.PostNotification(modeDeactivated);
                }
            }
        }
        private void UpdateLocal()
        {
            _serverTime += Time.unscaledDeltaTime;

            if (_state == State.NotLoaded)
            {
                return;
            }

            if (_state == State.FastForwarding)
            {
                var diff = _serverTime - Time.timeSinceLevelLoad;
                Time.timeScale = Mathf.Lerp(MinFastForwardSpeed, MaxFastForwardSpeed, Mathf.Abs(diff) / MaxFastForwardDiff);

                if (QSBSceneManager.CurrentScene == OWScene.SolarSystem && _isFirstFastForward)
                {
                    var spawnPoint = Locator.GetPlayerBody().GetComponent <PlayerSpawner>().GetInitialSpawnPoint().transform;
                    Locator.GetPlayerTransform().position = spawnPoint.position;
                    Locator.GetPlayerTransform().rotation = spawnPoint.rotation;
                    Physics.SyncTransforms();
                }
            }
            else
            {
                Time.timeScale = _timeScale;
            }

            var isDoneFastForwarding = _state == State.FastForwarding && Time.timeSinceLevelLoad >= _serverTime;
            var isDonePausing        = _state == State.Pausing && Time.timeSinceLevelLoad < _serverTime;

            if (isDoneFastForwarding || isDonePausing)
            {
                ResetTimeScale();
            }

            if (!_isInputEnabled && OWInput.GetInputMode() != InputMode.None)
            {
                DisableInput();
            }
        }
        private void Update()
        {
            if (_currentDialogueBox != null && OWInput.GetInputMode() == InputMode.Dialogue)
            {
                if (OWInput.IsNewlyPressed(InputLibrary.interact) || OWInput.IsNewlyPressed(InputLibrary.cancel) || OWInput.IsNewlyPressed(InputLibrary.enter) || OWInput.IsNewlyPressed(InputLibrary.enter2))
                {
                    if (!_currentDialogueBox.AreTextEffectsComplete())
                    {
                        _currentDialogueBox.FinishAllTextEffects();
                        return;
                    }

                    if (_currentDialogueBox.TimeCompletelyRevealed() < 0.1f)
                    {
                        return;
                    }

                    var selectedOption = _currentDialogueBox.GetSelectedOption();
                    if (!InputDialogueOption(selectedOption))
                    {
                        EndConversation();
                        return;
                    }
                }
                else
                {
                    if (OWInput.IsNewlyPressed(InputLibrary.down) || OWInput.IsNewlyPressed(InputLibrary.down2))
                    {
                        _currentDialogueBox.OnDownPressed();
                        return;
                    }

                    if (OWInput.IsNewlyPressed(InputLibrary.up) || OWInput.IsNewlyPressed(InputLibrary.up2))
                    {
                        _currentDialogueBox.OnUpPressed();
                    }
                }
            }
        }
Esempio n. 13
0
        public void Open(InputType inputType, string value)
        {
            _inputMenu.OnPopupConfirm += OnPopupConfirm;
            _inputMenu.OnPopupCancel  += OnPopupCancel;

            if (inputType == InputType.Number)
            {
                _inputMenu.OnInputPopupValidateChar += OnValidateCharNumber;
                _inputMenu.OnPopupValidate          += OnValidateNumber;
            }
            var message = inputType == InputType.Number ? "Write a number" : "Write some text";

            _inputMenu.EnableMenu(true);

            var okPrompt      = new ScreenPrompt(InputLibrary.confirm2, "OK");
            var cancelCommand = OWInput.UsingGamepad() ? InputLibrary.cancel : InputLibrary.escape;
            var cancelPrompt  = new ScreenPrompt(cancelCommand, "Cancel");

            _inputMenu.SetUpPopup(message, InputLibrary.confirm2, cancelCommand, okPrompt, cancelPrompt);
            _inputMenu.SetInputFieldPlaceholderText("");
            _inputMenu.GetInputField().text = value;
            _inputMenu.GetValue <Text>("_labelText").text = message;
        }
Esempio n. 14
0
            private void OnInteractChange(SteamVR_Action_Boolean fromAction, SteamVR_Input_Sources fromSource, bool newState)
            {
                var value = newState ? 1 : 0;

                if (!SceneHelper.IsInGame())
                {
                    _buttons[JoystickButton.FaceLeft] = value;
                    return;
                }

                var button = IsGripping ? JoystickButton.RightBumper : JoystickButton.FaceLeft;

                var isRepairPromptVisible = _repairPrompt != null && _repairPrompt.IsVisible();
                var canRepairSuit         = _playerResources.IsSuitPunctured() && OWInput.IsInputMode(InputMode.Character) && !ToolHelper.Swapper.IsSuitPatchingBlocked();
                var isUsingTranslator     = ToolHelper.Swapper.IsInToolMode(ToolMode.Translator);

                if (!isRepairPromptVisible && !canRepairSuit && !isUsingTranslator)
                {
                    if (newState)
                    {
                        _primaryLastTime = fromAction.changedTime;
                    }
                    else
                    {
                        _primaryLastTime = -1;
                        if (!_justHeld)
                        {
                            SimulateInput(button);
                        }
                        _justHeld = false;
                    }
                }
                else
                {
                    _buttons[button] = value;
                }
            }
Esempio n. 15
0
        internal void FillTextureLibrary()
        {
            _loadedTextures = new Dictionary <string, Texture2D>();
            var config = OWInput.GetActivePadConfig() ?? InputUtil.GamePadConfig_Xbox;

            for (var code = ModInputLibrary.MinUsefulKey; code < ModInputLibrary.MaxUsefulKey; code++)
            {
                var key = (KeyCode)code;
                if (!Enum.IsDefined(typeof(KeyCode), key))
                {
                    continue;
                }
                var keyName = ModInputLibrary.KeyCodeToString(key);
                if (_loadedTextures.ContainsKey(keyName))
                {
                    continue;
                }
                var button  = InputTranslator.ConvertKeyCodeToButton(key, config);
                var toStore = (int)key >= ModInputLibrary.MinGamepadKey ?
                              ButtonPromptLibrary.SharedInstance.GetButtonTexture(button) :
                              ButtonPromptLibrary.SharedInstance.GetButtonTexture(key);
                _loadedTextures.Add(keyName, toStore);
            }
        }
        private void InstantWakeUp()
        {
            _isSolarSystemLoaded = false;
            // Skip wake up animation.
            var cameraEffectController = FindObjectOfType <PlayerCameraEffectController>();

            cameraEffectController.OpenEyes(0, true);
            cameraEffectController.SetValue("_wakeLength", 0f);
            cameraEffectController.SetValue("_waitForWakeInput", false);

            // Skip wake up prompt.
            LateInitializerManager.pauseOnInitialization = false;
            Locator.GetPauseCommandListener().RemovePauseCommandLock();
            Locator.GetPromptManager().RemoveScreenPrompt(cameraEffectController.GetValue <ScreenPrompt>("_wakePrompt"));
            OWTime.Unpause(OWTime.PauseType.Sleeping);
            cameraEffectController.Invoke("WakeUp");

            // Enable all inputs immedeately.
            OWInput.ChangeInputMode(InputMode.Character);
            typeof(OWInput).SetValue("_inputFadeFraction", 0f);
            GlobalMessenger.FireEvent("TakeFirstFlashbackSnapshot");

            Locator.GetPlayerSuit().SuitUp();
        }
Esempio n. 17
0
        void Update()
        {
            if (Input.GetKeyDown(KeyCode.CapsLock) || OWInput.GetAxisPressed(PlayerCameraInput.toggleFlashlight, -1))
            {
                if (!IsFreeCamEnable())
                {
                    if (isThereAPlayer)
                    {
                        debugger.SendLog("Congelando o mov. do player", DebugType.LOG, LogingType.SEND_AND_LOG);
                        playerTransform.gameObject.GetComponent <CharacterMovementModel>().LockMovement();
                        GlobalMessenger <Camera> .FireEvent("SwitchActiveCamera", gameObject.camera);

                        playerCamController.LockOn(playerLockingViewOn.transform);
                    }
                    debugger.SendLog("Coisas Magicas", DebugType.UNKNOWN, LogingType.SEND_AND_LOG);
                    currentCameraTransform.camera.enabled = false;
                    gameObject.camera.enabled             = true;
                }
                else
                {
                    if (!((SettingsMenu)FindObjectsOfType(typeof(SettingsMenu))[0]).enabled || Application.loadedLevel == 0)
                    {
                        Time.timeScale = 1f;
                    }

                    if (isThereAPlayer)
                    {
                        debugger.SendLog("Descongelando o mov. do player", DebugType.LOG, LogingType.SEND_AND_LOG);
                        playerTransform.gameObject.GetComponent <CharacterMovementModel>().UnlockMovement();
                        GlobalMessenger <Camera> .FireEvent("SwitchActiveCamera", currentCameraTransform.camera);

                        playerCamController.BreakLock();
                    }
                    debugger.SendLog("Mais coisas magicas", DebugType.UNKNOWN, LogingType.SEND_AND_LOG);
                    currentCameraTransform.camera.enabled = true;
                    gameObject.camera.enabled             = false;

                    gameObject.transform.position = currentCameraTransform.position;
                    freeCamPosition       = Vector3.zero;
                    freeCamRotationAround = 0f;
                    freeCamRotationX      = 0f;
                }
            }
            if (IsFreeCamEnable())
            {
                if (Input.GetKeyDown(KeyCode.Z) || Input.GetKeyDown(KeyCode.JoystickButton8))
                {
                    if (Time.timeScale != 0) //Se o timeScale já não é zero, fazer ele virar zero
                    {
                        Time.timeScale = 0f;
                    }//Se estamos no menu, não tem que se preocupar em voltar ao normal, mas se estamos no Solar System, vereficar se o settings menu ta aberto
                    else if (!((SettingsMenu)FindObjectsOfType(typeof(SettingsMenu))[0]).enabled || Application.loadedLevel == 0)
                    {
                        Time.timeScale = 1f;
                    }
                }
                //Cuidar da aceleração e veloc. da camera
                if (Input.GetKey(KeyCode.Tab))
                {
                    cameraSpeed = 9f;
                }
                else
                {
                    cameraSpeed = 3f;
                }
                //Direção q a camera vai virar
                if (Time.timeScale != 0)
                {
                    freeCamRotationAround += PlayerCameraInput.lookX.GetInput() * Time.deltaTime * 500f % 360;
                    freeCamRotationX      -= PlayerCameraInput.lookY.GetInput() * Time.deltaTime * 500f;
                }
                else
                {
                    freeCamRotationAround += PlayerCameraInput.lookX.GetInput() * DeltaTimeWhenFreezed() * 500f % 360;
                    freeCamRotationX      -= PlayerCameraInput.lookY.GetInput() * DeltaTimeWhenFreezed() * 500f;
                }
                freeCamRotationX = Mathf.Clamp(freeCamRotationX, -90f, 90f);

                if (rotateWithTheCamera)
                {
                    gameObject.transform.rotation = currentCameraTransform.rotation;
                }
                else
                {
                    gameObject.transform.eulerAngles = Vector3.zero;
                }

                gameObject.transform.rotation = gameObject.transform.rotation * Quaternion.Euler(freeCamRotationAround * playerLockingViewOn.transform.up) * Quaternion.Euler(freeCamRotationX, 0f, 0f);

                //Direção q a camera vai andar
                gameObject.transform.position = currentCameraTransform.position;

                float variacaoDoTempo;

                if (Time.timeScale != 0)
                {
                    variacaoDoTempo = Time.deltaTime;
                }
                else
                {
                    variacaoDoTempo = DeltaTimeWhenFreezed();
                    if (Input.GetKey(KeyCode.W))
                    {
                        freeCamPosition += gameObject.transform.forward * cameraSpeed * variacaoDoTempo;
                    }

                    if (Input.GetKey(KeyCode.S))
                    {
                        freeCamPosition += -gameObject.transform.forward * cameraSpeed * variacaoDoTempo;
                    }

                    if (Input.GetKey(KeyCode.D))
                    {
                        freeCamPosition += gameObject.transform.right * cameraSpeed * variacaoDoTempo;
                    }

                    if (Input.GetKey(KeyCode.A))
                    {
                        freeCamPosition += -gameObject.transform.right * cameraSpeed * variacaoDoTempo;
                    }
                }


                freeCamPosition += (gameObject.transform.forward * InputChannels.moveZ.GetAxis() + gameObject.transform.right * InputChannels.moveX.GetAxis()) * 9 * variacaoDoTempo;


                gameObject.transform.position += freeCamPosition;
                //Fazer com q isso sempre esteja uma unidade afrente da camera principal

                playerLockingViewOn.transform.position = currentCameraTransform.position + currentCameraTransform.forward;

                //Ver qual foi o tempo desse frame
                timeWhenFreezed = Time.realtimeSinceStartup;
            }
        }
Esempio n. 18
0
 private static bool IsSelectNewlyPressed()
 {
     return(OWInput.IsNewlyPressed(InputLibrary.menuConfirm));
 }
Esempio n. 19
0
        public static bool RoastingStickController_UpdateMarshmallowInput(
            float ____extendFraction,
            Marshmallow ____marshmallow,
            GameObject ____mallowBodyPrefab,
            Transform ____stickTransform,
            Campfire ____campfire,
            ref string ____promptText,
            ScreenPrompt ____mallowPrompt,
            ref bool ____showMallowPrompt,
            ref bool ____showRemovePrompt)
        {
            var changePromptText = false;
            var showRemovePrompt = false;
            var text             = string.Empty;

            if (____extendFraction == 0f)
            {
                if (____marshmallow.IsEdible())
                {
                    text             = UITextLibrary.GetString(UITextType.RoastingEatPrompt);
                    changePromptText = true;
                    if (____marshmallow.IsBurned())
                    {
                        showRemovePrompt = true;
                        if (OWInput.IsNewlyPressed(InputLibrary.cancel, true, InputMode.Roasting))
                        {
                            ____marshmallow.Remove();
                            Locator.GetPlayerAudioController().PlayMarshmallowToss();
                            var spawnedMarshmallow = UnityEngine.Object.Instantiate <GameObject>(____mallowBodyPrefab, ____stickTransform.position, ____stickTransform.rotation);
                            var rigidbody          = spawnedMarshmallow.GetComponent <OWRigidbody>();
                            rigidbody.SetVelocity(____campfire.GetAttachedOWRigidbody(false).GetPointVelocity(____stickTransform.position) + (____stickTransform.forward * 3f));
                            rigidbody.SetAngularVelocity(____stickTransform.right * 10f);
                            var burntColor = ____marshmallow.GetBurntColor();
                            spawnedMarshmallow.GetComponentInChildren <MeshRenderer>().material.color = burntColor;
                            QSBEventManager.FireEvent(EventNames.QSBMarshmallowEvent, MarshmallowEventType.Toss);
                        }
                    }
                    if (OWInput.IsNewlyPressed(InputLibrary.interact, InputMode.Roasting) && ____marshmallow.IsEdible())
                    {
                        ____marshmallow.Eat();
                    }
                }
                else if (____marshmallow.GetState() == Marshmallow.MallowState.Burning)
                {
                    text             = UITextLibrary.GetString(UITextType.RoastingExtinguishPrompt);
                    changePromptText = true;
                    if (OWInput.IsNewlyPressed(InputLibrary.interact, InputMode.Roasting))
                    {
                        ____marshmallow.Extinguish();
                        QSBEventManager.FireEvent(EventNames.QSBMarshmallowEvent, MarshmallowEventType.Extinguish);
                    }
                }
                else if (____marshmallow.GetState() == Marshmallow.MallowState.Gone)
                {
                    text             = UITextLibrary.GetString(UITextType.RoastingReplacePrompt);
                    changePromptText = true;
                    if (OWInput.IsNewlyPressed(InputLibrary.interact, InputMode.Roasting))
                    {
                        ____marshmallow.SpawnMallow(true);
                    }
                }

                if (changePromptText && ____promptText != text)
                {
                    ____promptText = text;
                    ____mallowPrompt.SetText(____promptText);
                }

                if (OWInput.IsNewlyPressed(InputLibrary.cancel, InputMode.Roasting))
                {
                    ____campfire.StopRoasting();
                    return(false);
                }
            }

            ____showMallowPrompt = changePromptText;
            ____showRemovePrompt = showRemovePrompt;

            return(false);
        }
        public static bool MapController_LateUpdate(
            MapController __instance
            )
        {
            __instance._lockTimer   = Mathf.Min(__instance._lockTimer + Time.deltaTime, __instance._lockOnMoveLength);
            __instance._revealTimer = Mathf.Min(__instance._revealTimer + Time.deltaTime, __instance._revealLength);

            var revealFraction         = Mathf.Clamp01(__instance._revealTimer / __instance._revealLength);
            var smoothedRevealFraction = Mathf.SmoothStep(0f, 1f, revealFraction);

            var canInteractWith = __instance._revealTimer > 18f;

            if (__instance._screenPromptsVisible && __instance._isPaused)
            {
                __instance._closePrompt.SetVisibility(false);
                __instance._panPrompt.SetVisibility(false);
                __instance._rotatePrompt.SetVisibility(false);
                __instance._zoomPrompt.SetVisibility(false);
                __instance._screenPromptsVisible = false;
            }
            else if (!__instance._screenPromptsVisible && canInteractWith && !__instance._isPaused)
            {
                __instance._closePrompt.SetVisibility(false);
                __instance._panPrompt.SetVisibility(true);
                __instance._rotatePrompt.SetVisibility(true);
                __instance._zoomPrompt.SetVisibility(true);
                __instance._screenPromptsVisible = true;
            }

            var XZinput   = Vector2.zero;
            var lookInput = Vector2.zero;
            var zoomInput = 0f;

            if (canInteractWith)
            {
                XZinput      = OWInput.GetAxisValue(InputLibrary.moveXZ);
                lookInput    = InputLibrary.look.GetAxisValue(false);
                zoomInput    = OWInput.GetValue(InputLibrary.mapZoomIn) - OWInput.GetValue(InputLibrary.mapZoomOut);
                lookInput.y *= -1f;
                zoomInput   *= -1f;
            }

            __instance._lockedToTargetTransform &= XZinput.sqrMagnitude < 0.01f;
            __instance._interpPosition          &= XZinput.sqrMagnitude < 0.01f;
            __instance._interpPitch             &= Mathf.Abs(lookInput.y) < 0.1f;
            __instance._interpZoom &= Mathf.Abs(zoomInput) < 0.1f;

            if (__instance._interpPosition)
            {
                var a = __instance._activeCam.transform.position - Locator.GetCenterOfTheUniverse().GetOffsetPosition();
                var b = Vector3.zero;
                __instance._position = Vector3.Lerp(a, b, smoothedRevealFraction);
            }
            else
            {
                var normalized = Vector3.Scale(__instance.transform.forward + __instance.transform.up, new Vector3(1f, 0f, 1f)).normalized;
                var a2         = (__instance.transform.right * XZinput.x) + (normalized * XZinput.y);
                __instance._position  += a2 * __instance._panSpeed * __instance._zoom * Time.deltaTime;
                __instance._position.y = 0f;
                if (__instance._position.sqrMagnitude > __instance._maxPanDistance * __instance._maxPanDistance)
                {
                    __instance._position = __instance._position.normalized * __instance._maxPanDistance;
                }
            }

            __instance._yaw += lookInput.x * __instance._yawSpeed * Time.deltaTime;
            __instance._yaw  = OWMath.WrapAngle(__instance._yaw);
            if (__instance._interpPitch)
            {
                __instance._pitch = Mathf.Lerp(__instance._initialPitchAngle, __instance._defaultPitchAngle, smoothedRevealFraction);
            }
            else
            {
                __instance._pitch += lookInput.y * __instance._pitchSpeed * Time.deltaTime;
                __instance._pitch  = Mathf.Clamp(__instance._pitch, __instance._minPitchAngle, __instance._maxPitchAngle);
            }

            if (__instance._interpZoom)
            {
                __instance._zoom = Mathf.Lerp(__instance._initialZoomDist, __instance._targetZoom, smoothedRevealFraction);
            }
            else
            {
                __instance._zoom += zoomInput * __instance._zoomSpeed * Time.deltaTime;
                __instance._zoom  = Mathf.Clamp(__instance._zoom, __instance._minZoomDistance, __instance._maxZoomDistance);
            }

            __instance._mapCamera.nearClipPlane = Mathf.Lerp(0.1f, 1f, smoothedRevealFraction);

            var finalRotation = Quaternion.Euler(__instance._pitch, __instance._yaw, 0f);

            var num4 = revealFraction * (2f - revealFraction);

            var num5 = Mathf.SmoothStep(0f, 1f, num4);

            // Create rotation that's looking down at the player from above
            var lookingDownAtPlayer = Quaternion.LookRotation(-RespawnOnDeath.Instance.DeathPlayerUpVector, Vector3.up);

            // Get starting position - distance above player
            var startingPosition = RespawnOnDeath.Instance.DeathPositionWorld;

            startingPosition += RespawnOnDeath.Instance.DeathPlayerUpVector * num5 * __instance._observatoryRevealDist;

            // Lerp to final rotation
            __instance.transform.rotation = Quaternion.Lerp(lookingDownAtPlayer, finalRotation, num5);

            // Lerp reveal twist
            __instance.transform.rotation *= Quaternion.AngleAxis(Mathf.Lerp(__instance._observatoryRevealTwist, 0f, num4), Vector3.forward);

            var endPosition = __instance._position + (-__instance.transform.forward * __instance._zoom) + Locator.GetCenterOfTheUniverse().GetStaticReferenceFrame().GetPosition();

            // Lerp to final position
            __instance.transform.position = Vector3.Lerp(startingPosition, endPosition, num5);

            return(false);
        }
Esempio n. 21
0
 private void DisableInput()
 {
     _isInputEnabled = false;
     OWInput.ChangeInputMode(InputMode.None);
 }
Esempio n. 22
0
        void Update()
        {
            if (inputEnabled)
            {
                if (Input.GetKeyDown(KeyCode.UpArrow))
                {
                    SetupCamera();
                }

                if (Input.GetKeyDown(KeyCode.LeftArrow))
                {
                    if (Locator.GetPlayerSuit().IsWearingHelmet())
                    {
                        Locator.GetPlayerSuit().RemoveHelmet();
                    }
                    else
                    {
                        Locator.GetPlayerSuit().PutOnHelmet();
                    }
                }

                if (Input.GetKeyDown(KeyCode.KeypadDivide))
                {
                    Time.timeScale = 0f;
                }

                if (Input.GetKeyDown(KeyCode.KeypadMultiply))
                {
                    Time.timeScale = 0.5f;
                }

                if (Input.GetKeyDown(KeyCode.KeypadMinus))
                {
                    Time.timeScale = 1f;
                }

                if (Input.GetKeyDown(KeyCode.Keypad0))
                {
                    _freeCam.transform.parent = Locator.GetPlayerTransform();
                }

                if (Input.GetKeyDown(KeyCode.Keypad1))
                {
                    _freeCam.transform.parent = Locator.GetSunTransform();
                }

                if (Input.GetKeyDown(KeyCode.Keypad2))
                {
                    _freeCam.transform.parent = Locator.GetAstroObject(AstroObject.Name.Comet).gameObject.transform;
                }

                if (Input.GetKeyDown(KeyCode.Keypad3))
                {
                    _freeCam.transform.parent = Locator.GetAstroObject(AstroObject.Name.CaveTwin).gameObject.transform;
                }

                if (Input.GetKeyDown(KeyCode.Keypad4))
                {
                    _freeCam.transform.parent = Locator.GetAstroObject(AstroObject.Name.TowerTwin).gameObject.transform;
                }

                if (Input.GetKeyDown(KeyCode.Keypad5))
                {
                    _freeCam.transform.parent = Locator.GetAstroObject(AstroObject.Name.TimberHearth).gameObject.transform;
                }

                if (Input.GetKeyDown(KeyCode.Keypad6))
                {
                    _freeCam.transform.parent = Locator.GetAstroObject(AstroObject.Name.BrittleHollow).gameObject.transform;
                }

                if (Input.GetKeyDown(KeyCode.Keypad7))
                {
                    _freeCam.transform.parent = Locator.GetAstroObject(AstroObject.Name.GiantsDeep).gameObject.transform;
                }

                if (Input.GetKeyDown(KeyCode.Keypad8))
                {
                    _freeCam.transform.parent = Locator.GetAstroObject(AstroObject.Name.DarkBramble).gameObject.transform;
                }

                if (Input.GetKeyDown(KeyCode.Keypad9))
                {
                    _freeCam.transform.position = Locator.GetPlayerTransform().position;
                }

                if (Input.GetKeyDown(KeyCode.KeypadPlus))
                {
                    _moveSpeed = 7f;
                }

                if (Input.GetKeyDown(KeyCode.KeypadEnter))
                {
                    _moveSpeed = 1000f;
                }

                if (Input.GetKeyDown(KeyCode.KeypadPeriod))
                {
                    if (mode)
                    {
                        mode = false;
                        if (_storedMode == InputMode.None)
                        {
                            _storedMode = InputMode.Character;
                        }
                        OWInput.ChangeInputMode(_storedMode);
                        GlobalMessenger <OWCamera> .FireEvent("SwitchActiveCamera", Locator.GetPlayerCamera());

                        _camera.enabled = false;
                        Locator.GetActiveCamera().mainCamera.enabled = true;
                    }
                    else
                    {
                        mode        = true;
                        _storedMode = OWInput.GetInputMode();
                        OWInput.ChangeInputMode(InputMode.None);
                        GlobalMessenger <OWCamera> .FireEvent("SwitchActiveCamera", _OWCamera);

                        Locator.GetActiveCamera().mainCamera.enabled = false;
                        _camera.enabled = true;
                    }
                }
            }
        }
Esempio n. 23
0
        void Update()
        {
            if (OWInput.GetInputMode() == InputMode.None)
            {
                this._degreesY = OWInput.GetValue(InputLibrary.look, InputMode.All).y * 2f;
                this._degreesX = OWInput.GetValue(InputLibrary.look, InputMode.All).x * 2f;

                MainClass._camera.transform.Rotate(Vector3.up, _degreesX);
                MainClass._camera.transform.Rotate(Vector3.right, -_degreesY);

                if (Input.GetKey(KeyCode.LeftShift))
                {
                    if (MainClass._moveSpeed == 7f)
                    {
                        MainClass._moveSpeed = 14f;
                    }

                    if (MainClass._moveSpeed == 1000f)
                    {
                        MainClass._moveSpeed = 2000;
                    }
                }
                else
                {
                    if (MainClass._moveSpeed == 14f)
                    {
                        MainClass._moveSpeed = 7f;
                    }

                    if (MainClass._moveSpeed == 2000f)
                    {
                        MainClass._moveSpeed = 1000;
                    }
                }

                if (Input.GetKey(KeyCode.W))
                {
                    MainClass._freeCam.transform.position += MainClass._freeCam.transform.forward * 0.02f * MainClass._moveSpeed;
                }

                if (Input.GetKey(KeyCode.S))
                {
                    MainClass._freeCam.transform.position -= MainClass._freeCam.transform.forward * 0.02f * MainClass._moveSpeed;
                }

                if (Input.GetKey(KeyCode.A))
                {
                    MainClass._freeCam.transform.position -= MainClass._freeCam.transform.right * 0.02f * MainClass._moveSpeed;
                }

                if (Input.GetKey(KeyCode.D))
                {
                    MainClass._freeCam.transform.position += MainClass._freeCam.transform.right * 0.02f * MainClass._moveSpeed;
                }

                if (Input.GetKey(KeyCode.Q))
                {
                    MainClass._freeCam.transform.Rotate(Vector3.forward, 1);
                }

                if (Input.GetKey(KeyCode.E))
                {
                    MainClass._freeCam.transform.Rotate(Vector3.forward, -1);
                }
            }
        }
Esempio n. 24
0
        private void OnGUI()
        {
            if (_playerController == null || _playerForceDetector == null)
            {
                this._playerForceDetector = Locator.GetPlayerForceDetector();
                this._playerController    = Locator.GetPlayerController();
                if (_playerController == null || _playerForceDetector == null)
                {
                    return;
                }
            }
            float num = 400f;

            if (GUIMode.IsHiddenMode() || PlayerState.UsingShipComputer())
            {
                return;
            }
            if (inputHUD == 1)
            {
                GUI.Label(new Rect(10f + num, 10f, 200f, 20f), "Time Scale: " + Mathf.Round(Time.timeScale * 100f) / 100f);
                GUI.Label(new Rect(10f + num, 25f, 200f, 20f), string.Concat(new object[]
                {
                    "Time Remaining: ",
                    Mathf.Floor(TimeLoop.GetSecondsRemaining() / 60f),
                    ":",
                    Mathf.Round(TimeLoop.GetSecondsRemaining() % 60f * 100f / 100f)
                }));
                GUI.Label(new Rect(10f + num, 40f, 200f, 20f), "Loop Count: " + TimeLoop.GetLoopCount());
                GUI.Label(new Rect(10f + num, 55f, 90f, 40f), "PauseFlags: ");
                GUI.Label(new Rect(100f + num, 55f, 50f, 40f), "MENU\n" + ((!OWTime.IsPaused(OWTime.PauseType.Menu)) ? "FALSE" : "TRUE "));
                GUI.Label(new Rect(150f + num, 55f, 50f, 40f), "LOAD\n" + ((!OWTime.IsPaused(OWTime.PauseType.Loading)) ? "FALSE" : "TRUE "));
                GUI.Label(new Rect(200f + num, 55f, 50f, 40f), "READ\n" + ((!OWTime.IsPaused(OWTime.PauseType.Reading)) ? "FALSE" : "TRUE "));
                GUI.Label(new Rect(250f + num, 55f, 50f, 40f), "SLP\n" + ((!OWTime.IsPaused(OWTime.PauseType.Sleeping)) ? "FALSE" : "TRUE "));
                GUI.Label(new Rect(300f + num, 55f, 50f, 40f), "INIT\n" + ((!OWTime.IsPaused(OWTime.PauseType.Initializing)) ? "FALSE" : "TRUE "));
                GUI.Label(new Rect(350f + num, 55f, 50f, 40f), "STRM\n" + ((!OWTime.IsPaused(OWTime.PauseType.Streaming)) ? "FALSE" : "TRUE "));
                GUI.Label(new Rect(400f + num, 55f, 50f, 40f), "SYS\n" + ((!OWTime.IsPaused(OWTime.PauseType.System)) ? "FALSE" : "TRUE "));
                GUI.Label(new Rect(10f + num, 85f, 200f, 20f), "Input Mode: " + OWInput.GetInputMode().ToString());
                this._inputModeArray = OWInput.GetInputModeStack();
                GUI.Label(new Rect(10f + num, 100f, 200f, 20f), "Input Mode Stack: ");
                int num2 = 150;
                int num3 = 0;
                while (num3 < this._inputModeArray.Length && this._inputModeArray[num3] != InputMode.None)
                {
                    GUI.Label(new Rect((float)num2 + num, 100f, 200f, 20f), this._inputModeArray[num3].ToString());
                    num2 += 75;
                    num3++;
                }
                GUI.Label(new Rect(10f + num, 115f, 300f, 20f), "Net Force Accel: " + Mathf.Round(this._playerForceDetector.GetForceAcceleration().magnitude * 100f) / 100f);
                GUI.Label(new Rect(210f + num, 115f, 300f, 20f), "G-Force: " + Mathf.Round(this._gForce * 100f) / 100f);
                GUI.Label(new Rect(10f + num, 130f, 200f, 20f), "Load Time: " + LoadTimeTracker.GetLatestLoadTime());
                if (DynamicResolutionManager.isEnabled)
                {
                    GUI.Label(new Rect(10f + num, 145f, 200f, 20f), "Resolution Scale: " + DynamicResolutionManager.currentResolutionScale);
                }
                GUI.Label(new Rect(10f + num, 160f, 200f, 20f), "Player Speed: " + (Locator.GetCenterOfTheUniverse().GetOffsetVelocity() + Locator.GetPlayerBody().GetVelocity()).magnitude.ToString());
                GUI.Label(new Rect(210f + num, 160f, 200f, 20f), "Player Accel: " + Locator.GetPlayerBody().GetAcceleration().magnitude.ToString());
                if (Locator.GetPlayerSuit().GetComponent <JetpackThrusterModel>())
                {
                    GUI.Label(new Rect(10f + num, 175f, 200f, 20f), string.Concat(new object[]
                    {
                        "Jetpack Max Accel: ",
                        Locator.GetPlayerSuit().GetComponent <JetpackThrusterModel>().GetMaxTranslationalThrust().ToString(),
                        "/",
                        Locator.GetPlayerSuit().GetComponent <JetpackThrusterModel>().GetBoostMaxThrust().ToString()
                    }));
                }
                if (Locator.GetShipBody().GetComponent <ShipThrusterModel>())
                {
                    GUI.Label(new Rect(210f + num, 175f, 200f, 20f), "Ship Max Accel: " + Locator.GetShipBody().GetComponent <ShipThrusterModel>().GetMaxTranslationalThrust().ToString());
                }
                GUI.Label(new Rect(10f + num, 190f, 400f, 20f), string.Concat(new object[]
                {
                    "Inspector layer: ",
                    rayMask,
                    " ",
                    LayerMask.LayerToName(rayMask)
                }));
                if (GetWarpOWRigidbody())
                {
                    GUI.Label(new Rect(10f + num, 205f, 400f, 20f), string.Concat(new string[]
                    {
                        "Warp Body: ",
                        GetWarpOWRigidbody().gameObject.name,
                        " layer: ",
                        GetWarpOWRigidbody().gameObject.layer.ToString(),
                        " ",
                        LayerMask.LayerToName(GetWarpOWRigidbody().gameObject.layer)
                    }));
                }
                if (hit.collider)
                {
                    GUI.Label(new Rect(10f + num, 220f, 400f, 20f), string.Concat(new string[]
                    {
                        "Latest hit layer: ",
                        hit.collider.gameObject.layer.ToString(),
                        " ",
                        LayerMask.LayerToName(hit.collider.gameObject.layer)
                    }));
                    GUI.Label(new Rect(10f + num, 235f, 600f, 20f), "Name: " + hit.collider.gameObject.name + " Distance: " + (hit.point - Locator.GetPlayerBody().transform.position).magnitude.ToString());
                }

                /*if (PadEZ.PadManager.GetActiveController()!=null)
                 *              {
                 *                      GUI.Label(new Rect(10f + num, 250f, 600f, 20f), PadEZ.PadManager.GetActiveController().GetIndex().ToString() + " " + PadEZ.PadManager.GetActiveController().GetPadType().ToString() +" "+ UnityEngine.Input.GetJoystickNames()[PadEZ.PadManager.GetActiveController().GetIndex()]);
                 *              }*/
            }
            if (inputHUD == 2)
            {
                GUI.Label(new Rect(10f, 10f, 300f, 2500f), ReadInputManager.ReadCommandInputs(false));
            }
            if (inputHUD == 3)
            {
                GUI.Label(new Rect(0f, 0f, 300f, 2500f), ReadInputManager.ReadCommandInputs(false));
                GUI.Label(new Rect(300f, 0f, 300f, 2500f), ReadInputManager.ReadCommandInputs(true));
            }
            if (inputHUD == 4)
            {
                GUI.Label(new Rect(0f, 0f, 500f, 2500f), ReadInputManager.ReadInputAxes());
                GUI.Label(new Rect(500f, 0f, 500f, 2500f), ReadInputManager.ReadRawInputManagerButtons());
            }
        }
Esempio n. 25
0
        public static void Prefix(ThrusterModel __instance, ref Vector3 ____translationalInput)
        {
            if (!SmoothThrust.container.ContainsKey(__instance))
            {
                SmoothThrust.container.Add(__instance, new SmoothThrust.SmoothCont());
            }
            SmoothThrust.SmoothCont iter = SmoothThrust.container[__instance];
            if (OWInput.IsNewlyPressed(InputLibrary.interact))
            {
                iter._prevTranslation = ____translationalInput;
                iter._buildupVelocity = Vector3.zero;
            }
            if (OWInput.IsPressed(InputLibrary.interact, 0.05f))
            {
                iter._prevTranslation.x = Mathf.SmoothDamp(iter._prevTranslation.x, ____translationalInput.x, ref iter._buildupVelocity.x, SmoothThrust._analogSmoothTime);
                iter._prevTranslation.z = Mathf.SmoothDamp(iter._prevTranslation.z, ____translationalInput.z, ref iter._buildupVelocity.z, SmoothThrust._analogSmoothTime);
                iter._prevTranslation.y = Mathf.SmoothDamp(iter._prevTranslation.y, ____translationalInput.y, ref iter._buildupVelocity.y, SmoothThrust._analogSmoothTime);
                ____translationalInput  = iter._prevTranslation;
            }
            if (SmoothThrust.anglerSafety && (SmoothThrust.ShipNMBody != null || SmoothThrust.PlayerNMBody != null))
            {
                Vector3 myPos;
                if (__instance is ShipThrusterModel)
                {
                    myPos = SmoothThrust.ShipNMBody.GetCenterOfMass();
                }
                else
                {
                    myPos = SmoothThrust.PlayerNMBody.GetCenterOfMass();
                }

                float mindist   = Mathf.Infinity;
                bool  triggered = false;
                foreach (AnglerfishController fish in SmoothThrust.fishes)
                {
                    if (fish.gameObject.activeSelf)
                    {
                        if (fish.GetAnglerState() == AnglerfishController.AnglerState.Chasing)
                        {
                            triggered = true;
                        }
                        float dist = Vector3.Distance(myPos, fish.transform.position);
                        mindist = Mathf.Min(dist, mindist);
                    }
                }
                if (triggered)
                {
                    mindist = Mathf.Infinity;
                }
                SmoothThrust.limiter = Mathf.Infinity;
                if (__instance is ShipThrusterModel)
                {
                    if (mindist <= 400.1f)
                    {
                        if (____translationalInput.magnitude * __instance.GetMaxTranslationalThrust() >= mindist / 20f)
                        {
                            ____translationalInput = ____translationalInput.normalized * (mindist / 21f) / __instance.GetMaxTranslationalThrust();
                        }
                    }
                }
                else
                {
                    if (mindist <= 210f)
                    {
                        if (____translationalInput.magnitude * 100f * __instance.GetMaxTranslationalThrust() >= mindist * 3f)
                        {
                            ____translationalInput = ____translationalInput.normalized * (mindist / 35f) / __instance.GetMaxTranslationalThrust();
                        }
                    }
                }
            }
            iter._prevTranslation = ____translationalInput;
            SmoothThrust.container[__instance] = iter;
        }
Esempio n. 26
0
            internal void LateUpdate()
            {
                var isInShip = ToolHelper.Swapper.GetToolGroup() == ToolGroup.Ship;
                var isUsingFixedProbeTool = OWInput.IsInputMode(InputMode.StationaryProbeLauncher) || OWInput.IsInputMode(InputMode.SatelliteCam);

                if (!isInShip && !isUsingFixedProbeTool)
                {
                    foreach (var prompt in _toolUnequipPrompts)
                    {
                        prompt.SetVisibility(false);
                    }
                }
            }
Esempio n. 27
0
            private void OnPrimaryActionChange(SteamVR_Action_Boolean fromAction, SteamVR_Input_Sources fromSource, bool newState)
            {
                var value = newState ? 1 : 0;

                if (!SceneHelper.IsInGame())
                {
                    _buttons[JoystickButton.FaceLeft] = value;
                    return;
                }

                var toolSwapper           = ToolHelper.Swapper;
                var isInShip              = toolSwapper.GetToolGroup() == ToolGroup.Ship;
                var isUsingSignalscope    = toolSwapper.IsInToolMode(ToolMode.SignalScope);
                var isUsingProbeLauncher  = toolSwapper.IsInToolMode(ToolMode.Probe);
                var isUsingFixedProbeTool = OWInput.IsInputMode(InputMode.StationaryProbeLauncher) || OWInput.IsInputMode(InputMode.SatelliteCam);

                if (!isUsingFixedProbeTool && !ToolHelper.IsUsingAnyTool())
                {
                    var isRepairPromptVisible = _repairPrompt != null && !_repairPrompt.IsVisible();
                    var canRepairSuit         = _playerResources.IsSuitPunctured() && OWInput.IsInputMode(InputMode.Character) && !ToolHelper.Swapper.IsSuitPatchingBlocked();

                    if (isRepairPromptVisible && !isInShip && !canRepairSuit)
                    {
                        if (newState)
                        {
                            _primaryLastTime = fromAction.changedTime;
                        }
                        else
                        {
                            _primaryLastTime = -1;
                            if (!_justHeld)
                            {
                                SimulateInput(JoystickButton.FaceLeft);
                            }
                            _justHeld = false;
                        }
                    }
                    else
                    {
                        _buttons[JoystickButton.FaceLeft] = value;
                    }
                }
                else if (!isInShip || isUsingProbeLauncher || isUsingFixedProbeTool)
                {
                    _buttons[JoystickButton.RightBumper] = value;
                }
                else if (isUsingSignalscope)
                {
                    _axes[XboxAxis.dPadX.GetInputAxisName(0)] = value;
                }

                if (isInShip)
                {
                    if (!newState)
                    {
                        _buttons[JoystickButton.FaceLeft] = value;
                    }
                }
            }
        public static bool RoastingStickController_UpdateMarshmallowInput(
            RoastingStickController __instance
            )
        {
            var changePromptText = false;
            var showRemovePrompt = false;
            var text             = string.Empty;

            if (__instance._extendFraction == 0f)
            {
                if (__instance._marshmallow.IsEdible())
                {
                    text             = UITextLibrary.GetString(UITextType.RoastingEatPrompt);
                    changePromptText = true;
                    if (__instance._marshmallow.IsBurned())
                    {
                        showRemovePrompt = true;
                        if (OWInput.IsNewlyPressed(InputLibrary.cancel, InputMode.Roasting))
                        {
                            InputLibrary.cancel.ConsumeInput();
                            __instance._marshmallow.Remove();
                            Locator.GetPlayerAudioController().PlayMarshmallowToss();
                            var spawnedMarshmallow = Object.Instantiate(__instance._mallowBodyPrefab, __instance._stickTransform.position, __instance._stickTransform.rotation);
                            var rigidbody          = spawnedMarshmallow.GetComponent <OWRigidbody>();
                            rigidbody.SetVelocity(__instance._campfire.GetAttachedOWRigidbody().GetPointVelocity(__instance._stickTransform.position) + __instance._stickTransform.forward * 3f);
                            rigidbody.SetAngularVelocity(__instance._stickTransform.right * 10f);
                            var burntColor = __instance._marshmallow.GetBurntColor();
                            spawnedMarshmallow.GetComponentInChildren <MeshRenderer>().material.color = burntColor;
                            new MarshmallowEventMessage(MarshmallowMessageType.Toss).Send();
                        }
                    }

                    if (OWInput.IsNewlyPressed(InputLibrary.interact, InputMode.Roasting) && __instance._marshmallow.IsEdible())
                    {
                        __instance._marshmallow.Eat();
                    }
                }
                else if (__instance._marshmallow.GetState() == Marshmallow.MallowState.Burning)
                {
                    text             = UITextLibrary.GetString(UITextType.RoastingExtinguishPrompt);
                    changePromptText = true;
                    if (OWInput.IsNewlyPressed(InputLibrary.interact, InputMode.Roasting))
                    {
                        __instance._marshmallow.Extinguish();
                        new MarshmallowEventMessage(MarshmallowMessageType.Extinguish).Send();
                    }
                }
                else if (__instance._marshmallow.GetState() == Marshmallow.MallowState.Gone)
                {
                    text             = UITextLibrary.GetString(UITextType.RoastingReplacePrompt);
                    changePromptText = true;
                    if (OWInput.IsNewlyPressed(InputLibrary.interact, InputMode.Roasting))
                    {
                        __instance._marshmallow.SpawnMallow(true);
                    }
                }

                if (changePromptText && __instance._promptText != text)
                {
                    __instance._promptText = text;
                    __instance._mallowPrompt.SetText(__instance._promptText);
                }

                if (OWInput.IsNewlyPressed(InputLibrary.cancel, InputMode.Roasting))
                {
                    __instance._campfire.StopRoasting();
                    return(false);
                }
            }

            __instance._showMallowPrompt = changePromptText;
            __instance._showRemovePrompt = showRemovePrompt;

            return(false);
        }
Esempio n. 29
0
 private void EnableInput()
 {
     _isInputEnabled = true;
     OWInput.ChangeInputMode(InputMode.Character);
 }