Ejemplo n.º 1
0
        public static void SyncState(GameSession session, SyncStateData data)
        {
            SyncStateData sData;

            if (_syncStateDic.TryGetValue(session, out sData))
            {
                _syncStateDic[session] = data;
            }
            else
            {
                _syncStateDic.Add(session, data);
            }

            var syncStateDataSet = GetSyncStateDataSet();
            var buffer           = PackCastPackage(CastID.SyncPlayerState, syncStateDataSet);

            foreach (var sync in _syncStateDic)
            {
                if (sync.Key == session)
                {
                    continue;
                }
                SendCast(sync.Key, buffer);
            }
        }
Ejemplo n.º 2
0
 public override void Startup()
 {
     _state  = new SyncStateData(this);
     _button = RegisterButton(this, "Progress", true, ShowSyncState, ZPushBehaviour.None);
     _button.DataProvider = _state;
     // Add a sync task to start checking. If this finds it's not fully synchronised, it will check more often
     _task = Watcher.Sync.AddTask(this, Name, CheckSyncState);
 }
Ejemplo n.º 3
0
        public override bool TakeAction()
        {
            var syncData = new SyncStateData()
            {
                UserId = Current.UserId, State = _stateData.State
            };

            DispatchCast.Send(new CastSyncPlayerState(Current, syncData));
            return(true);
        }
Ejemplo n.º 4
0
 public CastSyncPlayerState(GameSession session, SyncStateData data)
 {
     _session = session;
     _data    = data;
 }