Beispiel #1
0
        private MultiplayerConfig LoadMultiplayer(BinaryReader br)
        {
            MultiplayerConfig config = LoadDefinitions(br);

            Load(br, true);
            return(config);
        }
Beispiel #2
0
        private MultiplayerConfig LoadDefinitions(BinaryReader br)
        {
            int n = br.ReadInt32();

            byte[] data = br.ReadBytes(n);

            RegisterSerializationTypes.Register();
            MultiplayerConfig config = (MultiplayerConfig) new Serializer(false).Deserialize(data);

            return(config);
        }
Beispiel #3
0
        public MultiplayerConfig LoadMultiplayer(byte[] data)
        {
            MemoryStream memoryStream = new MemoryStream(data);
            BinaryReader br           = new BinaryReader(memoryStream);

            //Read compressed bytes
            int uncompressedSize = br.ReadInt32();

            //Uncompress bytes
            byte[]     uncompressedBytes = new byte[uncompressedSize];
            GZipStream gzipStream        = new GZipStream(memoryStream, CompressionMode.Decompress);
            int        bytesRead         = 0;

            while (true)
            {
                int read = gzipStream.Read(uncompressedBytes, bytesRead, uncompressedSize - bytesRead);

                if (read == 0)
                {
                    break;
                }

                bytesRead += read;
            }

            br = new BinaryReader(new MemoryStream(uncompressedBytes));

            //Load world from uncompressed bytes
            MultiplayerConfig config = LoadMultiplayer(br);

            tileManager.Create(config.tileDefinitions, sizeXbits, sizeYbits, sizeZbits);
            itemManager.Create(config.itemDefinitions);
            avatarManager.Create(config.avatarDefinitions);
            sectorManager.Create();
            dayCycleManager.Create(null);

            tileManager.Load(br);
            itemManager.Load(br);
            sectorManager.Load(br);
            dayCycleManager.Load(br);

            //Player avatar
            int    playerObjectId = br.ReadInt32();
            Player player         = (Player)avatarManager.CreateAvatar(avatarManager.GetAvatarDefinitionById("player"), playerObjectId, new Vector3(), false);

            player.Load(br);

            cwListener.CreateObject(player);

            gameplay.WorldLoaded();

            return(config);
        }
Beispiel #4
0
        private void SaveDefinitions(BinaryWriter bw)
        {
            MultiplayerConfig config = new MultiplayerConfig();

            config.tileDefinitions   = tileManager.tileDefinitions;
            config.itemDefinitions   = itemManager.itemDefinitions;
            config.avatarDefinitions = avatarManager.avatarDefinitions;
            config.extraMaterials    = this.configExtraMaterials;

            RegisterSerializationTypes.Register();
            byte[] data = new Serializer(true).Serialize(config);

            bw.Write(data.Length);
            bw.Write(data);
        }
Beispiel #5
0
        private void SaveDefinitions(BinaryWriter bw)
        {
            MultiplayerConfig config = new MultiplayerConfig();
            config.tileDefinitions = tileManager.tileDefinitions;
            config.itemDefinitions = itemManager.itemDefinitions;
            config.avatarDefinitions = avatarManager.avatarDefinitions;
            config.extraMaterials = this.configExtraMaterials;
			
			RegisterSerializationTypes.Register();
            byte[] data = new Serializer(true).Serialize(config);

            bw.Write(data.Length);
            bw.Write(data);
        }