Files
BoneSync/BoneSync/Networking/Messages/MagazineSyncMessage.cs
2025-03-04 15:09:34 +02:00

44 lines
1.2 KiB
C#

using BoneSync.Sync;
using BoneSync.Sync.Components;
using StressLevelZero.Combat;
using StressLevelZero.Props.Weapons;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BoneSync.Networking.Messages
{
public struct MagazineSyncData
{
public ushort syncId;
public MagazineData magazineData;
}
[PacketType(PacketType.MagazineSync), PacketReliability(PacketReliability.Unreliable)]
public class MagazineSyncMessage : NetworkMessage
{
public MagazineSyncData magazineData;
public MagazineSyncMessage(MagazineSyncData magazineData)
{
this.magazineData = magazineData;
byteEncoder.WriteMagazineData(magazineData.magazineData);
}
public MagazineSyncMessage(Packet packet)
{
byteEncoder.WriteBytes(packet.Data);
magazineData = new MagazineSyncData();
}
public override void Execute()
{
Syncable syncable = ObjectSyncCache.GetSyncable(magazineData.syncId);
if (!syncable) return;
syncable.ApplyMagazineData(magazineData);
}
}
}