SetIsQuantumMessage

This commit is contained in:
JohnCorby 2022-01-11 17:42:13 -08:00
parent 8d0d32d001
commit 153ab69e0c
2 changed files with 25 additions and 0 deletions

View File

@ -0,0 +1,12 @@
using QSB.Messaging;
using QSB.QuantumSync.WorldObjects;
namespace QSB.QuantumSync.Messages
{
public class SetIsQuantumMessage : QSBBoolWorldObjectMessage<IQSBQuantumObject>
{
public SetIsQuantumMessage(bool isQuantum) => Value = isQuantum;
public override void OnReceiveRemote() => ((QuantumObject)WorldObject.ReturnObject())._isQuantum = Value;
}
}

View File

@ -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<IQSBQuantumObject>().SendMessage(new SetIsQuantumMessage(__instance.IsQuantum()));
return false;
}
[HarmonyPrefix]
[HarmonyPatch(typeof(SocketedQuantumObject), nameof(SocketedQuantumObject.ChangeQuantumState))]
public static bool SocketedQuantumObject_ChangeQuantumState(