Пример #1
0
        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();
        }
Пример #2
0
        public static StaticTileBrush FromXProxy(LibraryX.StaticTileBrushX proxy, TilePoolManager manager)
        {
            if (proxy == null)
            {
                return(null);
            }

            return(new StaticTileBrush(proxy, manager));
        }