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); }
public override void SetupListener() => GlobalMessenger <int, bool> .AddListener(EventNames.QSBGeyserState, Handler);
public override void CloseListener() { GlobalMessenger <DeathType> .RemoveListener(EventNames.QSBPlayerDeath, Handler); }
public override void CloseListener() => GlobalMessenger <int, int[]> .RemoveListener(EventNames.QSBQuantumShuffle, Handler);
private void OnDestroy() { QSBSceneManager.OnSceneLoaded -= OnSceneLoaded; GlobalMessenger.RemoveListener("TriggerSupernova", OnTriggerSupernova); }
public override void CloseListener() => GlobalMessenger <uint, KickReason> .RemoveListener(EventNames.QSBPlayerKick, Handler);
public override void SetupListener() => GlobalMessenger <uint, string, ConversationType> .AddListener(EventNames.QSBConversation, Handler);
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); }
public override void CloseListener() { GlobalMessenger.RemoveListener(EventNames.SuitUp, HandleSuitUp); GlobalMessenger.RemoveListener(EventNames.RemoveSuit, HandleSuitDown); }
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); }
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; } } } }
public override void SetupListener() => GlobalMessenger <uint, KickReason> .AddListener(EventNames.QSBPlayerKick, Handler);
public override void CloseListener() => GlobalMessenger <string, bool, bool> .RemoveListener(EventNames.QSBRevealFact, Handler);
public override void SetupListener() { GlobalMessenger <DeathType> .AddListener(EventNames.QSBPlayerDeath, Handler); }
public override void SetupListener() => GlobalMessenger <string, bool, bool> .AddListener(EventNames.QSBRevealFact, Handler);
public override void SetupListener() => GlobalMessenger <int, int[]> .AddListener(EventNames.QSBQuantumShuffle, Handler);
public override void CloseListener() { GlobalMessenger <Campfire> .RemoveListener(EventNames.EnterRoastingMode, (Campfire fire) => Handler(fire, true)); GlobalMessenger.RemoveListener(EventNames.ExitRoastingMode, () => Handler(null, false)); }
private void OnDestroy() { QSBSceneManager.OnSceneLoaded -= OnSceneLoaded; GlobalMessenger.RemoveListener(EventNames.RestartTimeLoop, OnLoopStart); }
public override void CloseListener() { GlobalMessenger <SurveyorProbe> .RemoveListener(EventNames.LaunchProbe, HandleLaunch); GlobalMessenger <SurveyorProbe> .RemoveListener(EventNames.RetrieveProbe, HandleRetrieve); }
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); }
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); }
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); }