private void Serialize() { if (m_dataStore != null) { using (MemoryStream stream = new MemoryStream()) { LLRAW llraw = new LLRAW(); llraw.Heightmap = m_heightmap; llraw.WaterHeight = m_waterHeight; llraw.ToStream(stream); m_dataStore.BeginSerialize( new SerializedData { StoreID = m_scene.ID, Section = "terrain", Name = "terrain", ContentType = "application/x-llraw", Data = stream.ToArray(), Version = 1, } ); } } }
private void Deserialize() { if (m_dataStore != null) { SerializedData terrain = m_dataStore.DeserializeOne(m_scene.ID, "terrain"); if (terrain != null) { try { using (MemoryStream stream = new MemoryStream(terrain.Data)) { LLRAW llraw = LLRAW.FromStream(stream); m_waterHeight = llraw.WaterHeight; SetHeightmap(llraw.Heightmap); } } catch (Exception ex) { m_log.Warn("Failed to deserialize terrain: " + ex.Message); } } } }