public override void SetupListener()
        {
            GlobalMessenger <Signalscope> .AddListener(EventNames.EquipSignalscope, HandleEquip);

            GlobalMessenger.AddListener(EventNames.UnequipSignalscope, HandleUnequip);
        }
 private void SendServerTime()
 {
     GlobalMessenger <float, int> .FireEvent(EventNames.QSBServerTime, Time.timeSinceLevelLoad, _localLoopCount);
 }
Ejemplo n.º 3
0
 public override void SetupListener() => GlobalMessenger <int, bool> .AddListener(EventNames.QSBGeyserState, Handler);
 public override void CloseListener()
 {
     GlobalMessenger <DeathType> .RemoveListener(EventNames.QSBPlayerDeath, Handler);
 }
Ejemplo n.º 5
0
 public override void CloseListener() => GlobalMessenger <int, int[]> .RemoveListener(EventNames.QSBQuantumShuffle, Handler);
Ejemplo n.º 6
0
 private void OnDestroy()
 {
     QSBSceneManager.OnSceneLoaded -= OnSceneLoaded;
     GlobalMessenger.RemoveListener("TriggerSupernova", OnTriggerSupernova);
 }
Ejemplo n.º 7
0
 public override void CloseListener() => GlobalMessenger <uint, KickReason> .RemoveListener(EventNames.QSBPlayerKick, Handler);
Ejemplo n.º 8
0
 public override void SetupListener() => GlobalMessenger <uint, string, ConversationType> .AddListener(EventNames.QSBConversation, Handler);
Ejemplo n.º 9
0
 public override void CloseListener() => GlobalMessenger <uint, string, ConversationType> .RemoveListener(EventNames.QSBConversation, Handler);
 public override void SetupListener() => GlobalMessenger <int, uint, bool> .AddListener(EventNames.QSBConversationStartEnd, Handler);
 public override void CloseListener() => GlobalMessenger <int, uint, bool> .RemoveListener(EventNames.QSBConversationStartEnd, Handler);
 public override void CloseListener()
 {
     GlobalMessenger <string> .RemoveListener(EventNames.QSBPlayerJoin, Handler);
 }
 public override void SetupListener()
 {
     GlobalMessenger <string> .AddListener(EventNames.QSBPlayerJoin, Handler);
 }
 private void OnEnable()
 {
     _camera.enabled        = true;
     _audioListener.enabled = true;
     GlobalMessenger <OWCamera> .FireEvent("SwitchActiveCamera", _camera);
 }
Ejemplo n.º 15
0
 public override void CloseListener()
 {
     GlobalMessenger.RemoveListener(EventNames.SuitUp, HandleSuitUp);
     GlobalMessenger.RemoveListener(EventNames.RemoveSuit, HandleSuitDown);
 }
Ejemplo n.º 16
0
 private void SendSector(uint id, QSBSector sector)
 {
     DebugLog.DebugWrite($"Sending sector {sector.Name} for object {id}");
     GlobalMessenger <uint, QSBSector> .FireEvent(EventNames.QSBSectorChange, id, sector);
 }
 public void OnDestroy()
 {
     QSBSceneManager.OnSceneLoaded -= OnSceneLoaded;
     GlobalMessenger.RemoveListener(OWEvents.WakeUp, OnWakeUp);
 }
Ejemplo n.º 18
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;
                    }
                }
            }
        }
Ejemplo n.º 19
0
 public override void SetupListener() => GlobalMessenger <uint, KickReason> .AddListener(EventNames.QSBPlayerKick, Handler);
Ejemplo n.º 20
0
 public override void CloseListener() => GlobalMessenger <string, bool, bool> .RemoveListener(EventNames.QSBRevealFact, Handler);
 public override void SetupListener()
 {
     GlobalMessenger <DeathType> .AddListener(EventNames.QSBPlayerDeath, Handler);
 }
Ejemplo n.º 22
0
 public override void SetupListener() => GlobalMessenger <string, bool, bool> .AddListener(EventNames.QSBRevealFact, Handler);
Ejemplo n.º 23
0
 public override void SetupListener() => GlobalMessenger <int, int[]> .AddListener(EventNames.QSBQuantumShuffle, Handler);
Ejemplo n.º 24
0
        public override void CloseListener()
        {
            GlobalMessenger <Campfire> .RemoveListener(EventNames.EnterRoastingMode, (Campfire fire) => Handler(fire, true));

            GlobalMessenger.RemoveListener(EventNames.ExitRoastingMode, () => Handler(null, false));
        }
Ejemplo n.º 25
0
 private void OnDestroy()
 {
     QSBSceneManager.OnSceneLoaded -= OnSceneLoaded;
     GlobalMessenger.RemoveListener(EventNames.RestartTimeLoop, OnLoopStart);
 }
Ejemplo n.º 26
0
        public override void CloseListener()
        {
            GlobalMessenger <SurveyorProbe> .RemoveListener(EventNames.LaunchProbe, HandleLaunch);

            GlobalMessenger <SurveyorProbe> .RemoveListener(EventNames.RetrieveProbe, HandleRetrieve);
        }
Ejemplo n.º 27
0
        public static bool Moon_ChangeQuantumState(
            QuantumMoon __instance,
            ref bool __result,
            bool skipInstantVisibilityCheck,
            bool ____isPlayerInside,
            bool ____hasSunCollapsed,
            float ____playerWarpTime,
            ref int ____stateIndex,
            ref int ____collapseToIndex,
            QuantumOrbit[] ____orbits,
            float ____sphereCheckRadius,
            VisibilityTracker ____visibilityTracker,
            OWRigidbody ____moonBody,
            ConstantForceDetector ____constantForceDetector,
            ref bool ____useInitialMotion,
            ref int ____lastStateIndex,
            ref int[] ____stateSkipCounts,
            AudioSignal ____quantumSignal,
            ReferenceFrameVolume ____referenceFrameVolume,
            GameObject[] ____deactivateAtEye
            )
        {
            if (QuantumManager.IsVisibleUsingCameraFrustum((ShapeVisibilityTracker)____visibilityTracker, skipInstantVisibilityCheck) && !QuantumManager.Instance.Shrine.IsPlayerInDarkness())
            {
                if (!skipInstantVisibilityCheck)
                {
                    var method = new StackTrace().GetFrame(3).GetMethod();
                    DebugLog.ToConsole($"Warning - Tried to change moon state while still observed. Called by {method.DeclaringType}.{method.Name}", MessageType.Warning);
                }
                __result = false;
                return(false);
            }
            var flag = false;

            if (____isPlayerInside && ____hasSunCollapsed)
            {
                __result = false;
                return(false);
            }
            if (Time.time - ____playerWarpTime < 1f)
            {
                __result = false;
                return(false);
            }
            if (____stateIndex == 5 && ____isPlayerInside && !__instance.IsPlayerEntangled())
            {
                __result = false;
                return(false);
            }
            for (var i = 0; i < 10; i++)
            {
                var stateIndex = (____collapseToIndex == -1) ? (int)__instance.GetType().GetMethod("GetRandomStateIndex", BindingFlags.NonPublic | BindingFlags.Instance).Invoke(__instance, null) : ____collapseToIndex;
                var orbitIndex = -1;
                for (var j = 0; j < ____orbits.Length; j++)
                {
                    if (____orbits[j].GetStateIndex() == stateIndex)
                    {
                        orbitIndex = j;
                        break;
                    }
                }
                if (orbitIndex == -1)
                {
                    DebugLog.ToConsole($"Error - QM failed to find orbit for state {stateIndex}", MessageType.Error);
                }
                var orbitRadius  = (orbitIndex == -1) ? 10000f : ____orbits[orbitIndex].GetOrbitRadius();
                var owRigidbody  = (orbitIndex == -1) ? Locator.GetAstroObject(AstroObject.Name.Sun).GetOWRigidbody() : ____orbits[orbitIndex].GetAttachedOWRigidbody();
                var onUnitSphere = UnityEngine.Random.onUnitSphere;
                if (stateIndex == 5)
                {
                    onUnitSphere.y = 0f;
                    onUnitSphere.Normalize();
                }
                var position = (onUnitSphere * orbitRadius) + owRigidbody.GetWorldCenterOfMass();
                if (!Physics.CheckSphere(position, ____sphereCheckRadius, OWLayerMask.physicalMask) || ____collapseToIndex != -1)
                {
                    ____visibilityTracker.transform.position = position;
                    if (!Physics.autoSyncTransforms)
                    {
                        Physics.SyncTransforms();
                    }
                    if (__instance.IsPlayerEntangled() || !QuantumManager.IsVisibleUsingCameraFrustum((ShapeVisibilityTracker)____visibilityTracker, skipInstantVisibilityCheck))
                    {
                        ____moonBody.transform.position = position;
                        if (!Physics.autoSyncTransforms)
                        {
                            Physics.SyncTransforms();
                        }
                        ____visibilityTracker.transform.localPosition = Vector3.zero;
                        ____constantForceDetector.AddConstantVolume(owRigidbody.GetAttachedGravityVolume(), true, true);
                        var velocity = owRigidbody.GetVelocity();
                        if (____useInitialMotion)
                        {
                            var initialMotion = owRigidbody.GetComponent <InitialMotion>();
                            velocity             = (initialMotion == null) ? Vector3.zero : initialMotion.GetInitVelocity();
                            ____useInitialMotion = false;
                        }
                        var orbitAngle = UnityEngine.Random.Range(0, 360);
                        ____moonBody.SetVelocity(OWPhysics.CalculateOrbitVelocity(owRigidbody, ____moonBody, orbitAngle) + velocity);
                        ____lastStateIndex  = ____stateIndex;
                        ____stateIndex      = stateIndex;
                        ____collapseToIndex = -1;
                        flag = true;
                        for (var k = 0; k < ____stateSkipCounts.Length; k++)
                        {
                            ____stateSkipCounts[k] = (k != ____stateIndex) ? (____stateSkipCounts[k] + 1) : 0;
                        }
                        QSBEventManager.FireEvent(EventNames.QSBMoonStateChange, stateIndex, onUnitSphere, orbitAngle);
                        break;
                    }
                    ____visibilityTracker.transform.localPosition = Vector3.zero;
                }
                else
                {
                    DebugLog.ToConsole("Warning - Quantum moon orbit position occupied! Aborting collapse.", MessageType.Warning);
                }
            }
            if (flag)
            {
                if (____isPlayerInside)
                {
                    __instance.GetType().GetMethod("SetSurfaceState", BindingFlags.NonPublic | BindingFlags.Instance).Invoke(__instance, new object[] { ____stateIndex });
                }
                else
                {
                    __instance.GetType().GetMethod("SetSurfaceState", BindingFlags.NonPublic | BindingFlags.Instance).Invoke(__instance, new object[] { -1 });
                    ____quantumSignal.SetSignalActivation(____stateIndex != 5, 2f);
                }
                ____referenceFrameVolume.gameObject.SetActive(____stateIndex != 5);
                ____moonBody.SetIsTargetable(____stateIndex != 5);
                for (var l = 0; l < ____deactivateAtEye.Length; l++)
                {
                    ____deactivateAtEye[l].SetActive(____stateIndex != 5);
                }
                GlobalMessenger <OWRigidbody> .FireEvent("QuantumMoonChangeState", ____moonBody);

                __result = true;
                return(false);
            }
            __result = false;
            return(false);
        }
Ejemplo n.º 28
0
        void Awake()
        {
            var probeLauncher = Camera.main.transform.Find("ProbeLauncher");

            probeLauncher.localScale = Vector3.one * 0.2f;
            Hands.HoldObject(probeLauncher, Hands.RightHand, new Vector3(-0.04f, 0.09f, 0.03f), Quaternion.Euler(45, 0, 0));

            _probeLauncherModel = probeLauncher.Find("Props_HEA_ProbeLauncher");
            _probeLauncherModel.gameObject.layer = 0;
            _probeLauncherModel.localPosition    = Vector3.zero;
            _probeLauncherModel.localRotation    = Quaternion.identity;

            _probeLauncherModel.Find("Props_HEA_ProbeLauncher_Prepass").gameObject.SetActive(false);
            _probeLauncherModel.Find("Props_HEA_Probe_Prelaunch/Props_HEA_Probe_Prelaunch_Prepass").gameObject.SetActive(false);

            var renderers = probeLauncher.gameObject.GetComponentsInChildren <MeshRenderer>(true);

            foreach (var renderer in renderers)
            {
                if (renderer.name == "RecallEffect")
                {
                    continue;
                }
                foreach (var material in renderer.materials)
                {
                    material.shader = Shader.Find("Standard");
                }
            }

            // This one is used only for rendering the probe launcher to the screen in pancake mode,
            // so we can remove it.
            probeLauncher.Find("Props_HEA_ProbeLauncher_ProbeCamera").gameObject.SetActive(false);

            // This transform defines the origin and direction of the launched probe.
            var launchOrigin = Camera.main.transform.Find("ProbeLauncherTransform").transform;

            launchOrigin.parent        = _probeLauncherModel;
            launchOrigin.localPosition = Vector3.forward * 0.2f;
            launchOrigin.localRotation = Quaternion.identity;

            // Create and adjust hip holster model.
            _probeLauncherHolster = Instantiate(_probeLauncherModel).gameObject;
            _probeLauncherHolster.SetActive(false);
            var holster = _probeLauncherHolster.AddComponent <HolsterTool>();

            holster.hand     = Hands.RightHand;
            holster.position = new Vector3(0, -0.55f, 0.2f);
            holster.mode     = ToolMode.Probe;
            holster.scale    = 0.15f;
            holster.angle    = Vector3.right * 90;

            // Move probe picture to probe launcher.
            var playerHUD = GameObject.Find("PlayerHUD").transform;
            var display   = playerHUD.Find("HelmetOffUI/ProbeDisplay");

            display.GetComponent <Canvas>().renderMode = RenderMode.WorldSpace;
            display.parent        = _probeLauncherModel;
            display.localScale    = Vector3.one * 0.0014f;
            display.localRotation = Quaternion.identity;
            display.localPosition = Vector3.forward * -0.8f;
            _probeUI = display.GetComponent <ProbeLauncherUI>();

            var uiCanvas = playerHUD.Find("HelmetOnUI/UICanvas");

            uiCanvas.Find("HUDProbeDisplay/Image").gameObject.SetActive(false);

            var hudProbeDisplay = uiCanvas.Find("HUDProbeDisplay");

            hudProbeDisplay.parent        = display;
            hudProbeDisplay.localPosition = Vector3.zero;
            hudProbeDisplay.localRotation = Quaternion.identity;

            // Adjust probe picture position.
            var displayImage = display.GetChild(0).GetComponent <RectTransform>();

            displayImage.anchorMin     = Vector2.one * 0.5f;
            displayImage.anchorMax     = Vector2.one * 0.5f;
            displayImage.pivot         = Vector2.one * 0.5f;
            displayImage.localPosition = Vector3.zero;
            displayImage.localRotation = Quaternion.identity;

            // Move photo mode bracket to probe launcher.
            var bracketImage = uiCanvas.Find("BracketImage");

            bracketImage.transform.parent = display;
            bracketImage.localPosition    = Vector3.zero;
            bracketImage.localRotation    = Quaternion.identity;
            bracketImage.localScale      *= 0.5f;

            probeLauncher.gameObject.AddComponent <ToolModeInteraction>();

            GlobalMessenger.AddListener("SuitUp", OnSuitUp);
            GlobalMessenger.AddListener("RemoveSuit", OnRemoveSuit);
        }
Ejemplo n.º 29
0
 public override void CloseListener() => GlobalMessenger <int, bool> .RemoveListener(EventNames.QSBGeyserState, Handler);
        public override void CloseListener()
        {
            GlobalMessenger <Signalscope> .RemoveListener(EventNames.EquipSignalscope, HandleEquip);

            GlobalMessenger.RemoveListener(EventNames.UnequipSignalscope, HandleUnequip);
        }