public XmlWrite() { // initialise levelFolder StaticVariables.execFolder = AppDomain.CurrentDomain.BaseDirectory; StaticVariables.levelFolder = StaticVariables.execFolder; // create world this.w = new World(10, 10); // fill world this.w.FillWorld(TERRAIN.grass_normal, new Size(10, 10)); // initialize player this.w.InitPlayer(new PointF(5, 5)); this.p = w.getPlayer(); LevelWriter.saveWorld(this.w, this.file); beforelist = new TerrainTile[w.getTerrain().Count]; before = new Entity[w.getEntities().Count]; // save beforlist w.getTerrain().CopyTo(beforelist); w.getEntities().CopyTo(before); world = new World(10, 10); world.loadLevel(this.file); afterlist = new TerrainTile[world.getTerrain().Count]; after = new Entity[world.getEntities().Count]; // save afterlist world.getTerrain().CopyTo(afterlist); world.getEntities().CopyTo(after); }
public static void saveWorld(World world, String fileName) { List<TerrainTile> tiles = world.getTerrain (); List<Entity> entities = world.getEntities (); Size size = world.getSize (); using (XmlWriter writer = XmlWriter.Create(Path.Combine(StaticVariables.levelFolder, fileName + ".xml"))) { writer.WriteStartDocument(); writer.WriteStartElement("world"); writer.WriteStartElement("size"); writer.WriteElementString(xmlVar.Width, size.Width.ToString()); writer.WriteElementString(xmlVar.Height, size.Width.ToString()); writer.WriteEndElement(); writer.WriteStartElement("tiles"); foreach (TerrainTile tile in tiles) { writer.WriteStartElement(xmlVar.Tile); writer.WriteElementString(xmlVar.ID, tile.getID().ToString()); writer.WriteEndElement(); } writer.WriteEndElement(); writer.WriteStartElement("entities"); foreach (Entity e in entities) { writer.WriteStartElement(xmlVar.Entity); writer.WriteElementString(xmlVar.ID, e.getID().ToString()); writer.WriteElementString(xmlVar.Type, ((int)e.getType()).ToString()); writer.WriteElementString(xmlVar.SpriteID, e.getSpriteID().ToString()); writer.WriteElementString("x", e.getLocation().X.ToString()); writer.WriteElementString("y", e.getLocation().Y.ToString()); writer.WriteElementString(xmlVar.Solid, e.getSolid().ToString()); writer.WriteElementString(xmlVar.DrawOrder, e.getDrawOrder().ToString()); writer.WriteElementString(xmlVar.BoudingBox, e.getBoundingBox().ToString()); writer.WriteEndElement(); } writer.WriteEndElement(); writer.WriteEndElement(); writer.WriteEndDocument(); } }