private void TextDataFunc(CellLayout cell_layout, CellRenderer renderer, TreeModel model, TreeIter iter) { CellRendererText textRenderer = (CellRendererText)renderer; Tilegroup group = (Tilegroup)Model.GetValue(iter, 0); textRenderer.Text = group.Name; }
public void ChangeTilegroup(Tilegroup tilegroup) { this.tilegroup = tilegroup; Translation = new Vector(0, 0); Zoom = 1.0f; hovertile = -1; QueueDraw(); }
/// <summary>Loads the tiles from <paramref name="Resourcepath"/>.</summary> /// <param name="Resourcepath">A path relative to the data folder of SuperTux.</param> public Tileset(string Resourcepath) { baseDir = ResourceManager.Instance.GetDirectoryName(Resourcepath); List TilesL = Util.Load(Resourcepath, "supertux-tiles"); Properties TilesP = new Properties(TilesL); foreach(List list in TilesP.GetList("tile")) { try { Tile tile = new Tile(); ParseTile(tile, list); while(tiles.Count <= tile.Id) tiles.Add(null); tiles[tile.Id] = tile; } catch(Exception e) { Console.WriteLine("Couldn't parse a Tile: " + e.Message); Console.WriteLine(e.StackTrace); } } foreach(List list in TilesP.GetList("tiles")) { try { ParseTiles(list); } catch(Exception e) { Console.WriteLine("Couldn't parse a tiles: " + e.Message); Console.WriteLine(e.StackTrace); } } // construct a tilegroup with all tiles Tilegroup allGroup = new Tilegroup(); allGroup.Name = "All"; foreach(Tile tile in tiles) { if(tile != null) allGroup.Tiles.Add(tile.Id); } tilegroups.Add(allGroup.Name, allGroup); LispSerializer serializer = new LispSerializer(typeof(Tilegroup)); foreach(List list in TilesP.GetList("tilegroup")) { try { Tilegroup group = (Tilegroup) serializer.Read(list); for(int i = 0; i < group.Tiles.Count; ) { if(!IsValid(group.Tiles[i])) { Console.WriteLine("Tilegroup " + group.Name + " contains invalid TileID " + group.Tiles[i]); group.Tiles.RemoveAt(i); continue; } ++i; } tilegroups.Add(group.Name, group); } catch(Exception e) { Console.WriteLine("Couldn't parse tilegroup: " + e.Message); Console.WriteLine(e.StackTrace); } } }
public void ChangeTilegroup(Tilegroup tilegroup) { this.tilegroup = tilegroup; Translation = new Vector(0, 0); vadjustment.Value = -Translation.Y; Zoom = 1.0f; hovertile = -1; updateScrollbar(); QueueDraw(); }
private void OnTilesetChanged(Level level) { tileset = level.Tileset; Translation = new Vector(0, 0); vadjustment.Value = -Translation.Y; Zoom = 1.0f; tilegroup = tileset.Tilegroups["All"]; updateScrollbar(); QueueDraw(); }
private void OnTileGroupChosen(object o, EventArgs args) { TreeIter iter; if (!GetActiveIter(out iter)) { return; } Tilegroup group = (Tilegroup)Model.GetValue(iter, 0); tileList.ChangeTilegroup(group); }
/// <summary>Loads the tiles from <paramref name="Resourcepath"/>.</summary> /// <param name="Resourcepath">A path relative to the data folder of SuperTux.</param> public Tileset(string Resourcepath) { baseDir = ResourceManager.Instance.GetDirectoryName(Resourcepath); List TilesL = Util.Load(Resourcepath, "supertux-tiles"); Properties TilesP = new Properties(TilesL); // add blank tile with ID 0 Tile blank = new Tile(); blank.Id = 0; while (tiles.Count <= blank.Id) { tiles.Add(null); } tiles[blank.Id] = blank; foreach (List list in TilesP.GetList("tile")) { try { Tile tile = new Tile(); ParseTile(tile, list); while (tiles.Count <= tile.Id) { tiles.Add(null); } tiles[tile.Id] = tile; } catch (Exception e) { LogManager.Log(LogLevel.Error, "Couldn't parse a Tile: " + e.Message); Console.WriteLine(e.StackTrace); } } foreach (List list in TilesP.GetList("tiles")) { try { ParseTiles(list); } catch (Exception e) { LogManager.Log(LogLevel.Error, "Couldn't parse a tiles: " + e.Message); Console.WriteLine(e.StackTrace); } } // construct a tilegroup with all tiles Tilegroup allGroup = new Tilegroup(); allGroup.Name = "All"; foreach (Tile tile in tiles) { if (tile != null) { allGroup.Tiles.Add(tile.Id); } } tilegroups.Add(allGroup.Name, allGroup); LispSerializer serializer = new LispSerializer(typeof(Tilegroup)); foreach (List list in TilesP.GetList("tilegroup")) { try { Tilegroup group = (Tilegroup)serializer.Read(list); for (int i = 0; i < group.Tiles.Count;) { if (!IsValid(group.Tiles[i])) { LogManager.Log(LogLevel.DebugWarning, "Tilegroup " + group.Name + " contains invalid TileID " + group.Tiles[i]); group.Tiles.RemoveAt(i); continue; } ++i; } tilegroups.Add(group.Name, group); } catch (Exception e) { LogManager.Log(LogLevel.Error, "Couldn't parse tilegroup: " + e.Message); Console.WriteLine(e.StackTrace); } } }
private void OnTilesetChanged(Level level) { tileset = level.Tileset; Translation = new Vector(0, 0); Zoom = 1.0f; tilegroup = tileset.Tilegroups["All"]; QueueDraw(); }