From 153ab69e0c5d3763d5764a81cbbb60440f278589 Mon Sep 17 00:00:00 2001 From: JohnCorby Date: Tue, 11 Jan 2022 17:42:13 -0800 Subject: [PATCH] SetIsQuantumMessage --- QSB/QuantumSync/Messages/SetIsQuantumMessage.cs | 12 ++++++++++++ QSB/QuantumSync/Patches/QuantumPatches.cs | 13 +++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 QSB/QuantumSync/Messages/SetIsQuantumMessage.cs diff --git a/QSB/QuantumSync/Messages/SetIsQuantumMessage.cs b/QSB/QuantumSync/Messages/SetIsQuantumMessage.cs new file mode 100644 index 00000000..15964c66 --- /dev/null +++ b/QSB/QuantumSync/Messages/SetIsQuantumMessage.cs @@ -0,0 +1,12 @@ +using QSB.Messaging; +using QSB.QuantumSync.WorldObjects; + +namespace QSB.QuantumSync.Messages +{ + public class SetIsQuantumMessage : QSBBoolWorldObjectMessage + { + public SetIsQuantumMessage(bool isQuantum) => Value = isQuantum; + + public override void OnReceiveRemote() => ((QuantumObject)WorldObject.ReturnObject())._isQuantum = Value; + } +} diff --git a/QSB/QuantumSync/Patches/QuantumPatches.cs b/QSB/QuantumSync/Patches/QuantumPatches.cs index f1b99f60..a7eead3b 100644 --- a/QSB/QuantumSync/Patches/QuantumPatches.cs +++ b/QSB/QuantumSync/Patches/QuantumPatches.cs @@ -28,6 +28,19 @@ namespace QSB.QuantumSync.Patches return false; } + [HarmonyPrefix] + [HarmonyPatch(typeof(QuantumObject), nameof(QuantumObject.SetIsQuantum))] + public static bool QuantumObject_SetIsQuantum(QuantumObject __instance) + { + if (!WorldObjectManager.AllObjectsReady) + { + return true; + } + + __instance.GetWorldObject().SendMessage(new SetIsQuantumMessage(__instance.IsQuantum())); + return false; + } + [HarmonyPrefix] [HarmonyPatch(typeof(SocketedQuantumObject), nameof(SocketedQuantumObject.ChangeQuantumState))] public static bool SocketedQuantumObject_ChangeQuantumState(