public void Restore(Stream stream, Uri projecturi) //public void Restore( StringReader stringreader, Uri projecturi ) { WorldModel worldmodel = MetaverseClient.GetInstance().worldstorage; // note to self: should make these types a publisher/subscriber thing //XmlSerializer serializer = new XmlSerializer( typeof( World ), new Type[]{ // typeof( Avatar ), // typeof( FractalSplineCylinder ), // typeof( FractalSplineRing ), // typeof( FractalSplineBox ), // typeof( FractalSplineTorus ), // typeof( FractalSplinePrism ), // typeof( FractalSplineTube ) // } ); //DialogHelpers.ShowInfoMessage( null, serializer.Deserialize(filestream).GetType().ToString()); ProjectFileController.GetInstance().SetProjectPath(projecturi); StreamReader sr = new StreamReader(stream); string contents = sr.ReadToEnd(); sr.Close(); StringReader stringreader = new StringReader(contents); OsmpXmlSerializer.GetInstance().RegisterType(typeof(World)); World world = (World)OsmpXmlSerializer.GetInstance().Deserialize(stringreader); stringreader.Close(); //World world = (World)serializer.Deserialize( stream ); worldmodel.Clear(); foreach (Entity entity in world.Entities) { if (entity.GetType() != typeof(Avatar)) { LogFile.WriteLine("WorldPersistToXml, restoring: " + entity); worldmodel.AddEntity(entity); } } if (world.TerrainModel.HeightmapFilename != "") { HeightMapPersistence.GetInstance().Load(world.TerrainModel.HeightmapFilename); } worldmodel.terrainmodel.texturestagesarray = world.TerrainModel.texturestagesarray; LogFile.WriteLine(worldmodel); worldmodel.terrainmodel.MinHeight = world.TerrainModel.MinHeight; worldmodel.terrainmodel.MaxHeight = world.TerrainModel.MaxHeight; worldmodel.terrainmodel.OnTerrainModified(); }
public void ConnectToServer(string ipaddressstring, int port) { IPAddress[] addresses = System.Net.Dns.GetHostAddresses(ipaddressstring); if (addresses.GetLength(0) == 0) { return; } IPAddress ipaddress = addresses[0]; LogFile.WriteLine("Resolved server address to : " + ipaddressstring); try { network.ConnectAsClient(ipaddress.ToString(), port); } catch (Exception e) { DialogHelpers.ShowErrorMessageModal(null, "Failed to connect to server"); LogFile.WriteLine(e.ToString()); } SelectionModel.GetInstance().Clear(); worldstorage.Clear(); }