Esempio n. 1
0
        public void ApplyCheckpointStateData(long seqNum, long timeStamp, string stateHash, string serializedData)
        {
            logger.Debug($"ApplyStateData() Seq#: seqNum ApianTime: {timeStamp}");

            UpdateFrameTime(timeStamp);
            CoreData = BeamCoreState.FromApianSerialized(seqNum, timeStamp, stateHash, serializedData);
            OnNewCoreState(); // send NewCoreStateEvt

            foreach (BeamPlayer p in CoreData.Players.Values)
            {
                if (p.PeerId == LocalPeerId)
                {
                    LocalPlayer = p;
                }
                PlayerJoinedEvt.Invoke(this, new PlayerJoinedArgs(CurrentGameId, p));
            }

            foreach (IBike ib in CoreData.Bikes.Values)
            {
                NewBikeEvt?.Invoke(this, ib);
            }


            foreach (BeamPlace p in CoreData.activePlaces.Values)
            {
                CoreData.AnnounceNewPlace(p);  //
            }
        }
Esempio n. 2
0
        // Peer-related
        protected bool _AddPlayer(BeamPlayer p)
        {
            logger.Debug($"_AddPlayer(). Name: {p.Name} ID: {p.PeerId}");
            if (CoreData.Players.ContainsKey(p.PeerId))
            {
                logger.Warn($"_AddPlayer(). Player already exists!!!!");
                return(false);
            }

            CoreData.Players[p.PeerId] = p;
            if (p.PeerId == LocalPeerId)
            {
                LocalPlayer = p;
            }
            PlayerJoinedEvt.Invoke(this, new PlayerJoinedArgs(CurrentGameId, p));
            return(true);
        }