private StaticTileBrush(LibraryX.StaticTileBrushX proxy, TilePoolManager manager) : base(proxy.Uid, proxy.Name, proxy.TileWidth, proxy.TileHeight) { _tiles = new Dictionary <TileCoord, TileStack>(); if (proxy.Tiles != null) { foreach (var stack in proxy.Tiles) { string[] coord = stack.At.Split(','); string[] tileIds = stack.Items.Split(','); int x = (coord.Length > 0) ? Convert.ToInt32(coord[0].Trim()) : 0; int y = (coord.Length > 1) ? Convert.ToInt32(coord[1].Trim()) : 0; foreach (string tileId in tileIds) { Guid id = new Guid(tileId.Trim()); TilePool pool = manager.PoolFromItemKey(id); if (pool == null) { continue; } AddTile(new TileCoord(x, y), pool.GetTile(id)); } } } Normalize(); }
public static StaticTileBrush FromXProxy(LibraryX.StaticTileBrushX proxy, TilePoolManager manager) { if (proxy == null) { return(null); } return(new StaticTileBrush(proxy, manager)); }