using Cyber.Entities; using Cyber.Networking.Messages; using UnityEngine; using UnityEngine.Networking; namespace Cyber.Networking.Clientside { /// /// A Short clientside class for handling sync packages. /// It simply keeps track of sync-packages and will not apply them if they are too old. /// public class SyncHandler { private SyncDB SyncDB; private int LatestSyncID = -1; /// /// Creates the SyncHandler with SyncDB. /// /// public SyncHandler(SyncDB syncDB) { SyncDB = syncDB; } /// /// Handle a given Network message. Must be checked to be first. /// /// public void HandleSyncPkt(NetworkMessage message) { SyncPkt SyncPacket = new SyncPkt(SyncDB); SyncPacket.Deserialize(message.reader); if (LatestSyncID < SyncPacket.SyncPacketID) { LatestSyncID = SyncPacket.SyncPacketID; SyncPacket.ApplySync(message.reader); } // Otherwise disregard the sync. } } }