コード例 #1
0
        public void ModelManagerTestReplication()
        {
            IWorldData  worldData   = new WorldData();
            ISerializer serializer  = new JsonNetSerializer();
            var         replication = new WorldReplication(worldData, new JsonCastObject());

            var replicationWrote = replication.WriteWhole();
            var serialized       = serializer.Serialize(replicationWrote);

            serializer.Deserialize(serialized, out object deserialized);
            replication.Read(deserialized);
        }
コード例 #2
0
        private void CreateSnapshotToClients()
        {
            object whole = null;
            object diff  = null;

            foreach (var clientProxy in _clientProxyDic.Values)
            {
                if (clientProxy.IsFirstWhole)
                {
                    whole ??= _worldReplication.WriteWhole();
                    clientProxy.IsFirstWhole = false;
                    clientProxy.NotSentToClientPacket.MutablePacketDic[DataType.State].Fill(whole);
                }
                else
                {
                    diff ??= _worldReplication.WriteDiff();
                    clientProxy.NotSentToClientPacket.MutablePacketDic[DataType.State].Fill(diff);
                }
            }
        }