private MultiplayerConfig LoadMultiplayer(BinaryReader br) { MultiplayerConfig config = LoadDefinitions(br); Load(br, true); return(config); }
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); }
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); }
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); }
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); }