Work on mag sync, broken af atm
This commit is contained in:
@@ -13,70 +13,15 @@ using static MelonLoader.MelonLogger;
|
||||
|
||||
namespace BoneSync.Patching
|
||||
{
|
||||
/*[HarmonyPatch(typeof(Socket))]
|
||||
public static class SocketPatches
|
||||
{
|
||||
public static void GenericSocketEnterPatch(Socket __instance, Plug plug)
|
||||
{
|
||||
if (!plug) return;
|
||||
MelonLogger.Msg("Plug entered: " + __instance.name + " Plug: " + plug.name);
|
||||
Syncable syncable = ObjectSyncCache.GetSyncable(plug);
|
||||
if (!syncable) return;
|
||||
byte plugId = syncable.GetPlugId(plug);
|
||||
byte socketId = syncable.GetSocketId(__instance);
|
||||
MelonLogger.Msg("Plug entered: " + __instance.transform.GetPath() + " Plug: " + plug.transform.GetPath() + " ID: " + plugId + " Socket ID: " + socketId);
|
||||
|
||||
}
|
||||
|
||||
public static void GenericSocketExitPatch(Socket __instance, Plug plug)
|
||||
{
|
||||
if (!plug) return;
|
||||
MelonLogger.Msg("Plug exited: " + __instance.name + " Plug: " + plug.name);
|
||||
Syncable syncable = ObjectSyncCache.GetSyncable(plug);
|
||||
if (!syncable) return;
|
||||
byte plugId = syncable.GetPlugId(plug);
|
||||
byte socketId = syncable.GetSocketId(__instance);
|
||||
MelonLogger.Msg("Plug exited: " + __instance.transform.GetPath() + " Plug: " + plug.transform.GetPath() + " ID: " + plugId + " Socket ID: " + socketId);
|
||||
}
|
||||
|
||||
|
||||
[HarmonyPatch(nameof(Socket.OnPlugEnter)), HarmonyPostfix]
|
||||
public static void SocketEnterPatch(Socket __instance, Plug plug)
|
||||
{
|
||||
GenericSocketEnterPatch(__instance, plug);
|
||||
}
|
||||
|
||||
[HarmonyPatch(nameof(Socket.OnPlugExit)), HarmonyPostfix]
|
||||
public static void SocketExitPatch(Socket __instance, Plug plug)
|
||||
{
|
||||
GenericSocketExitPatch(__instance, plug);
|
||||
}
|
||||
}
|
||||
|
||||
[HarmonyPatch(typeof(MagazineSocket))]
|
||||
public static class MagazineSocketPatches
|
||||
{
|
||||
[HarmonyPatch(nameof(MagazineSocket.OnPlugEnter)), HarmonyPostfix]
|
||||
public static void MagazineSocketEnterPatch(MagazineSocket __instance, Plug plug)
|
||||
{
|
||||
SocketPatches.GenericSocketEnterPatch(__instance, plug);
|
||||
}
|
||||
|
||||
[HarmonyPatch(nameof(MagazineSocket.OnPlugExit)), HarmonyPostfix]
|
||||
public static void SocketExitPatch(MagazineSocket __instance, Plug plug)
|
||||
{
|
||||
SocketPatches.GenericSocketExitPatch(__instance, plug);
|
||||
}
|
||||
}*/
|
||||
|
||||
[HarmonyPatch(typeof(AlignPlug))]
|
||||
public static class AlignPlugPatches
|
||||
{
|
||||
public static void OnPlugSocketChange(AlignPlug plug, Socket socket)
|
||||
{
|
||||
|
||||
|
||||
Syncable plugSyncable = plug.GetComponentInParent<Syncable>();
|
||||
Syncable socketSyncable = socket.GetComponentInParent<Syncable>();
|
||||
Syncable socketSyncable = socket?.GetComponentInParent<Syncable>();
|
||||
|
||||
if (!plugSyncable)
|
||||
{
|
||||
@@ -119,31 +64,32 @@ namespace BoneSync.Patching
|
||||
plugSyncMessage.Broadcast();
|
||||
}
|
||||
|
||||
[HarmonyPatch(nameof(AlignPlug.InsertPlug)), HarmonyPostfix]
|
||||
public static void AlignPlugInsertPatch(AlignPlug __instance, Socket socket)
|
||||
{
|
||||
MelonLogger.Msg("AlignPlug inserted: " + __instance.transform.GetPath() + " Socket: " + socket.transform.GetPath());
|
||||
OnPlugSocketChange(__instance, socket);
|
||||
|
||||
}
|
||||
|
||||
[HarmonyPatch(nameof(AlignPlug.EjectPlug)), HarmonyPostfix]
|
||||
// for some reason AlignPlug.OnPlugInsertComplete can't be patched directly
|
||||
/*
|
||||
[HarmonyPatch(nameof(AlignPlug.OnPlugExitComplete)), HarmonyPostfix]
|
||||
public static void AlignPlugEjectPatch(AlignPlug __instance)
|
||||
{
|
||||
MelonLogger.Msg("AlignPlug ejected: " + __instance.transform.GetPath());
|
||||
OnPlugSocketChange(__instance, null);
|
||||
}*/
|
||||
|
||||
}
|
||||
|
||||
[HarmonyPatch(typeof(MagazinePlug))]
|
||||
public static class MagazinePlugPatches
|
||||
{
|
||||
[HarmonyPatch(nameof(MagazinePlug.OnPlugInsertComplete)), HarmonyPostfix]
|
||||
public static void MagazinePlugInsertPatch(MagazinePlug __instance)
|
||||
{
|
||||
MelonLogger.Msg("MagazinePlug inserted: " + __instance.transform.GetPath());
|
||||
AlignPlugPatches.OnPlugSocketChange(__instance, __instance.GetSocket());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
public class PlugPatches
|
||||
{
|
||||
/*[HarmonyPatch(typeof(Plug))]
|
||||
public class PlugPatches
|
||||
[HarmonyPatch(nameof(MagazinePlug.OnPlugExitComplete)), HarmonyPostfix]
|
||||
public static void MagazinePlugEjectPatch(MagazinePlug __instance)
|
||||
{
|
||||
[HarmonyPatch(nameof(Plug.)), HarmonyPostfix]
|
||||
}*/
|
||||
MelonLogger.Msg("MagazinePlug ejected: " + __instance.transform.GetPath());
|
||||
AlignPlugPatches.OnPlugSocketChange(__instance, null);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user