From 353de9c90f03befff7a0fb5df2976d43c2a04a28 Mon Sep 17 00:00:00 2001
From: Mister_Nebula <41904486+misternebula@users.noreply.github.com>
Date: Wed, 20 Oct 2021 09:10:30 +0100
Subject: [PATCH] add back in debug actions, add trigger supernova action
(properly)
---
QSB/Events/EventNames.cs | 1 +
QSB/Events/EventType.cs | 5 ++++
QSB/Events/QSBEventManager.cs | 2 ++
QSB/QSB.csproj | 2 ++
QSB/Utility/DebugActions.cs | 23 +++++++++---------
QSB/Utility/Events/DebugEvent.cs | 36 ++++++++++++++++++++++++++++
QSB/Utility/Events/DebugEventEnum.cs | 7 ++++++
7 files changed, 65 insertions(+), 11 deletions(-)
create mode 100644 QSB/Utility/Events/DebugEvent.cs
create mode 100644 QSB/Utility/Events/DebugEventEnum.cs
diff --git a/QSB/Events/EventNames.cs b/QSB/Events/EventNames.cs
index cfbbc0d9..168d66c4 100644
--- a/QSB/Events/EventNames.cs
+++ b/QSB/Events/EventNames.cs
@@ -86,5 +86,6 @@
public static string QSBStartLoop = "QSBStartLoop";
public static string QSBServerState = "QSBServerState";
public static string QSBClientState = "QSBClientState";
+ public static string QSBDebugEvent = "QSBDebugEvent";
}
}
\ No newline at end of file
diff --git a/QSB/Events/EventType.cs b/QSB/Events/EventType.cs
index 601253c0..be7a01f7 100644
--- a/QSB/Events/EventType.cs
+++ b/QSB/Events/EventType.cs
@@ -2,6 +2,11 @@
{
public enum EventType
{
+ /*
+ * MISC.
+ */
+ DebugEvent,
+
/*
* SERVER EVENTS
*/
diff --git a/QSB/Events/QSBEventManager.cs b/QSB/Events/QSBEventManager.cs
index c3cd6c09..68029535 100644
--- a/QSB/Events/QSBEventManager.cs
+++ b/QSB/Events/QSBEventManager.cs
@@ -24,6 +24,7 @@ using QSB.Tools.Events;
using QSB.Tools.ProbeLauncherTool.Events;
using QSB.TranslationSync.Events;
using QSB.Utility;
+using QSB.Utility.Events;
using System.Collections.Generic;
namespace QSB.Events
@@ -67,6 +68,7 @@ namespace QSB.Events
new StartLoopEvent(),
new ServerStateEvent(),
new ClientStateEvent(),
+ new DebugEvent(),
// World Objects
new ElevatorEvent(),
new GeyserEvent(),
diff --git a/QSB/QSB.csproj b/QSB/QSB.csproj
index 494c074a..c191550b 100644
--- a/QSB/QSB.csproj
+++ b/QSB/QSB.csproj
@@ -275,6 +275,8 @@
+
+
diff --git a/QSB/Utility/DebugActions.cs b/QSB/Utility/DebugActions.cs
index f0a5b5e8..03c773de 100644
--- a/QSB/Utility/DebugActions.cs
+++ b/QSB/Utility/DebugActions.cs
@@ -1,6 +1,9 @@
using OWML.Utils;
+using QSB.Events;
using QSB.ShipSync;
+using QSB.Utility.Events;
using UnityEngine;
+using UnityEngine.InputSystem;
namespace QSB.Utility
{
@@ -29,34 +32,32 @@ namespace QSB.Utility
public void Update()
{
- return;
-
if (!QSBCore.DebugMode)
{
return;
}
- if (Input.GetKeyDown(KeyCode.Keypad5))
- {
- Locator.GetDeathManager().KillPlayer(DeathType.Supernova);
- }
-
- if (Input.GetKeyDown(KeyCode.Keypad4))
+ if (Keyboard.current[Key.Numpad4].wasPressedThisFrame)
{
DamageShipElectricalSystem();
}
- if (Input.GetKeyDown(KeyCode.Keypad7))
+ if (Keyboard.current[Key.Numpad5].wasPressedThisFrame)
+ {
+ QSBEventManager.FireEvent(EventNames.QSBDebugEvent, DebugEventEnum.TriggerSupernova);
+ }
+
+ if (Keyboard.current[Key.Numpad7].wasPressedThisFrame)
{
GoToVessel();
}
- if (Input.GetKeyDown(KeyCode.Keypad8))
+ if (Keyboard.current[Key.Numpad8].wasPressedThisFrame)
{
InsertWarpCore();
}
- if (Input.GetKeyDown(KeyCode.Keypad9))
+ if (Keyboard.current[Key.Numpad9].wasPressedThisFrame)
{
LoadManager.LoadSceneAsync(OWScene.EyeOfTheUniverse, true, LoadManager.FadeType.ToWhite);
}
diff --git a/QSB/Utility/Events/DebugEvent.cs b/QSB/Utility/Events/DebugEvent.cs
new file mode 100644
index 00000000..0cde719a
--- /dev/null
+++ b/QSB/Utility/Events/DebugEvent.cs
@@ -0,0 +1,36 @@
+using QSB.Events;
+using QSB.Messaging;
+
+namespace QSB.Utility.Events
+{
+ public class DebugEvent : QSBEvent>
+ {
+ public override EventType Type => EventType.DebugEvent;
+
+ public override void SetupListener() => GlobalMessenger.AddListener(EventNames.QSBDebugEvent, Handler);
+ public override void CloseListener() => GlobalMessenger.RemoveListener(EventNames.QSBDebugEvent, Handler);
+
+ private void Handler(DebugEventEnum type) => SendEvent(CreateMessage(type));
+
+ private EnumMessage CreateMessage(DebugEventEnum type) => new EnumMessage
+ {
+ AboutId = LocalPlayerId,
+ EnumValue = type
+ };
+
+ public override void OnReceiveLocal(bool isHost, EnumMessage message)
+ {
+ OnReceiveRemote(isHost, message);
+ }
+
+ public override void OnReceiveRemote(bool isHost, EnumMessage message)
+ {
+ switch (message.EnumValue)
+ {
+ case DebugEventEnum.TriggerSupernova:
+ TimeLoop.SetSecondsRemaining(0f);
+ break;
+ }
+ }
+ }
+}
diff --git a/QSB/Utility/Events/DebugEventEnum.cs b/QSB/Utility/Events/DebugEventEnum.cs
new file mode 100644
index 00000000..1f74bc9c
--- /dev/null
+++ b/QSB/Utility/Events/DebugEventEnum.cs
@@ -0,0 +1,7 @@
+namespace QSB.Utility.Events
+{
+ public enum DebugEventEnum
+ {
+ TriggerSupernova
+ }
+}
\ No newline at end of file