diff --git a/BoneSync/Networking/Messages/MagazineSyncMessage.cs b/BoneSync/Networking/Messages/MagazineSyncMessage.cs index 023dd7a..98f1845 100644 --- a/BoneSync/Networking/Messages/MagazineSyncMessage.cs +++ b/BoneSync/Networking/Messages/MagazineSyncMessage.cs @@ -37,7 +37,7 @@ namespace BoneSync.Networking.Messages { Syncable syncable = ObjectSyncCache.GetSyncable(magazineData.syncId); if (!syncable) return; - syncable.ApplyMagazineData(magazineData.magazineData); + syncable.ApplyMagazineData(magazineData); } } } diff --git a/BoneSync/Patching/CallPatchedMethod.cs b/BoneSync/Patching/CallPatchedMethod.cs index cfe2ac9..1b58945 100644 --- a/BoneSync/Patching/CallPatchedMethod.cs +++ b/BoneSync/Patching/CallPatchedMethod.cs @@ -31,13 +31,6 @@ namespace BoneSync.Patching allowPatchedMethodCall = false; } - public static void Despawn(Poolee poolee) - { - allowPatchedMethodCall = true; - poolee.Despawn(); - allowPatchedMethodCall = false; - } - public static Poolee InstantiatePoolee(Pool pool, Vector3 position, Quaternion rotation, Vector3 scale) { allowPatchedMethodCall = true; diff --git a/BoneSync/Patching/PlugPatches.cs b/BoneSync/Patching/PlugPatches.cs index 552f38e..95f1b43 100644 --- a/BoneSync/Patching/PlugPatches.cs +++ b/BoneSync/Patching/PlugPatches.cs @@ -39,4 +39,13 @@ namespace BoneSync.Patching MelonLogger.Msg("Plug exited: " + __instance.transform.GetPath() + " Plug: " + plug.transform.GetPath() + " ID: " + plugId + " Socket ID: " + socketId); } } + + public class PlugPatches + { + /*[HarmonyPatch(typeof(Plug))] + public class PlugPatches + { + [HarmonyPatch(nameof(Plug.)), HarmonyPostfix] + }*/ + } } diff --git a/BoneSync/Sync/Components/SyncableBase.cs b/BoneSync/Sync/Components/SyncableBase.cs index c60424b..797740f 100644 --- a/BoneSync/Sync/Components/SyncableBase.cs +++ b/BoneSync/Sync/Components/SyncableBase.cs @@ -216,9 +216,10 @@ namespace BoneSync.Sync.Components { if (!this) return; // if object is destroyed, don't do anything bool isRegistered = Registered; - MelonLogger.Msg("Discarding syncable: " + transform.GetPath() + " force: " + force + " isRegistered: " + isRegistered + " despawn: " + despawn); + if (isRegistered) { + MelonLogger.Msg("Discarding syncable: " + transform.GetPath() + " force: " + force + " isRegistered: " + isRegistered + " despawn: " + despawn); //MelonLogger.Warning("Discarding registered syncable: " + transform.GetPath() + " force: " + force); bool isowner = isOwner; diff --git a/BoneSync/Sync/Components/SyncableNetworking.cs b/BoneSync/Sync/Components/SyncableNetworking.cs index 9d1f704..59ecdb9 100644 --- a/BoneSync/Sync/Components/SyncableNetworking.cs +++ b/BoneSync/Sync/Components/SyncableNetworking.cs @@ -36,6 +36,7 @@ namespace BoneSync.Sync.Components { MelonLogger.Msg("Setting owner for " + _syncId + " to " + ownerId); _ownerId = ownerId; + FindAndUpdateComponents(); MelonCoroutines.Start(SyncCoroutineAsync()); UpdateKinematic(); } diff --git a/BoneSync/Sync/Components/SyncableProperties.cs b/BoneSync/Sync/Components/SyncableProperties.cs index 49bd9c1..d414b2a 100644 --- a/BoneSync/Sync/Components/SyncableProperties.cs +++ b/BoneSync/Sync/Components/SyncableProperties.cs @@ -11,10 +11,17 @@ namespace BoneSync.Sync.Components { public partial class Syncable : MonoBehaviour { - public void ApplyMagazineData(MagazineData magazineData) + + private void _SendAttributeSync() { + if (!isOwner) return; + _SendMagazineData(); + } + public void ApplyMagazineData(MagazineSyncData magazineSyncData) + { + if (!magazine) return; // If the magazine is null, return + MagazineData magazineData = magazineSyncData.magazineData; if (!magazineData) return; - if (!magazine) return; magazine.magazineData.AmmoSlots = magazineData.AmmoSlots; magazine.magazineData.cartridgeType = magazineData.cartridgeType; magazine.magazineData.weight = magazineData.weight; @@ -28,5 +35,13 @@ namespace BoneSync.Sync.Components data.magazineData = magazine.magazineData; return data; } + + private void _SendMagazineData() + { + if (!magazine) return; + MagazineSyncData data = GetMagazineData(); + MagazineSyncMessage message = new MagazineSyncMessage(data); + message.Broadcast(); + } } }