This commit is contained in:
2025-03-04 15:09:34 +02:00
parent 7b5b4b2744
commit 7ab5f9779b
6 changed files with 30 additions and 11 deletions

View File

@@ -37,7 +37,7 @@ namespace BoneSync.Networking.Messages
{
Syncable syncable = ObjectSyncCache.GetSyncable(magazineData.syncId);
if (!syncable) return;
syncable.ApplyMagazineData(magazineData.magazineData);
syncable.ApplyMagazineData(magazineData);
}
}
}

View File

@@ -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;

View File

@@ -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]
}*/
}
}

View File

@@ -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;

View File

@@ -36,6 +36,7 @@ namespace BoneSync.Sync.Components
{
MelonLogger.Msg("Setting owner for " + _syncId + " to " + ownerId);
_ownerId = ownerId;
FindAndUpdateComponents();
MelonCoroutines.Start(SyncCoroutineAsync());
UpdateKinematic();
}

View File

@@ -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();
}
}
}