44 lines
1.2 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|