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();
            }
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="KBSGame.EditorGui"/> class.
        /// </summary>
        /// <param name="ID">I.</param>
        /// <param name="screenResX">Screen res x.</param>
        /// <param name="screenResY">Screen res y.</param>
        /// <param name="drawRatio">Draw ratio.</param>
        /// <param name="world">World.</param>
        public EditorGui(int ID, int screenResX, int screenResY, float drawRatio, World world)
            : base(ID, screenResX, screenResY, drawRatio)
        {
            this.world = world;

            width = Math.Min (StaticVariables.dpi * 2, screenResX / 2);
            tabWidth = width - tabbarWidth - margin*2;

            rowLength = (width - margin * 2 - tabbarWidth) / StaticVariables.tileSize;
            currentHover = new Point (0, 0);

            worldSize = world.getSize ();

            terrainTiles = world.getTileTypes ();
            loadEntities ();
        }
        public void reset(int screenResX, int screenResY, float drawRatio, World world)
        {
            this.world = world;
            base.resize (screenResX, screenResY, drawRatio);

            width = Math.Min (StaticVariables.dpi * 2, screenResX / 2);
            tabWidth = width - tabbarWidth - margin*2;

            rowLength = (width - margin * 2 - tabbarWidth) / StaticVariables.tileSize;
            currentHover = new Point (0, 0);

            worldSize = world.getSize ();

            terrainTiles = world.getTileTypes ();
            loadEntities ();

            selectedTab = 0;
            selected = -1;
        }