void importLevelDesign() { string filepath = Application.dataPath + @"/levels/Level.xml"; if (System.IO.File.Exists(filepath)) { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml(System.IO.File.ReadAllText(filepath)); foreach (XmlElement screen in xmlDoc.GetElementsByTagName("screen")) { if (screen.GetAttribute("empty") == "0") { int scX = int.Parse(screen.GetAttribute("x")); int scY = int.Parse(screen.GetAttribute("y")); if (screens[scX, scY] == null) { screens[scX, scY] = new ScreenInfos(); } foreach (XmlElement color in screen.GetElementsByTagName("color")) { screens[scX, scY].colors[int.Parse(color.GetAttribute("i"))] = new Color(float.Parse(color.GetAttribute("r")), float.Parse(color.GetAttribute("g")), float.Parse(color.GetAttribute("b"))); } foreach (XmlElement tile in screen.GetElementsByTagName("tile")) { screens[scX, scY].tiles[int.Parse(tile.GetAttribute("x")), int.Parse(tile.GetAttribute("y")), int.Parse(tile.GetAttribute("l"))] = new TileInfos(int.Parse(tile.GetAttribute("t")), int.Parse(tile.GetAttribute("s")), int.Parse(tile.GetAttribute("r"))); } } } } updateDisplayedLevel(); }
void storeCurrentScreen() { if (screens [screenPosX, screenPosY] == null) { screens [screenPosX, screenPosY] = new ScreenInfos(); } for (int i = 0; i < screens[screenPosX, screenPosY].colors.Length; i++) { screens[screenPosX, screenPosY].colors[i] = cam.backgroundColor; } for (int x = 0; x < nbTilesX; x++) { for (int y = 0; y < nbTilesY; y++) { for (int l = 0; l < nbLayers; l++) { screens[screenPosX, screenPosY].tiles[x, y, l] = tiles[x, y, l].GetComponent <tile>().getTileInfos(); } } } }
void updateDisplayedLevel() { if (screens [screenPosX, screenPosY] == null) { screens [screenPosX, screenPosY] = new ScreenInfos(); } cam.backgroundColor = screens [screenPosX, screenPosY].colors[0]; for (int i = 0; i < gradients.Length; i++) { gradients[i].GetComponent <gradient>().updateColors(); } for (int x = 0; x < nbTilesX; x++) { for (int y = 0; y < nbTilesY; y++) { for (int l = 0; l < nbLayers; l++) { TileInfos thisTileInfos = screens[screenPosX, screenPosY].tiles[x, y, l]; setTile(x, y, l, thisTileInfos.type, thisTileInfos.shape, thisTileInfos.rotation); } } } }