Ejemplo n.º 1
0
        public Tile AddTile()
        {
            var tile = Tileset.AddTile();

            if (TilesetModified != null)
            {
                TilesetModified(this, new EventArgs());
            }

            return(tile);
        }
Ejemplo n.º 2
0
        private void AppendNewTilesToSheet(List <WriteableBitmap> tempTiles)
        {
            var total           = tempTiles.Count;
            var tileWidth       = Tilesheet.PixelWidth / 16;
            var addedTileHeight = (int)Math.Ceiling(total / (double)tileWidth);

            var tilesheet       = new WriteableBitmap(Tilesheet.PixelWidth, Tilesheet.PixelHeight + addedTileHeight * 16, 96, 96, PixelFormats.Pbgra32, null);
            var writeableSource = BitmapFactory.ConvertToPbgra32Format(Tilesheet);
            var originalRect    = new System.Windows.Rect(0, 0, Tilesheet.PixelWidth, Tilesheet.PixelHeight);

            tilesheet.Blit(originalRect, writeableSource, originalRect);

            var x      = 0;
            var y      = Tilesheet.PixelHeight;
            var source = new System.Windows.Rect(0, 0, 16, 16);

            foreach (var frame in tempTiles)
            {
                var dest = new System.Windows.Rect(x, y, 16, 16);
                tilesheet.Blit(dest, frame, source);

                var tile = Tileset.AddTile();
                tile.Sprite.CurrentFrame.SetSheetPosition(x, y);

                if (x < 16 * (tileWidth - 1))
                {
                    x += 16;
                }
                else
                {
                    x  = 0;
                    y += 16;
                }
            }

            Tilesheet = tilesheet;
            SpriteBitmapCache.InsertSource(Tileset.SheetPath.Absolute, tilesheet);
            Tileset.RefreshSheet();
        }
Ejemplo n.º 3
0
        public static void CreateTilesFromChildren(Tileset tileset)
        {
            var children = tileset.transform.Cast <Transform>().ToList();

            foreach (Transform child in children)
            {
                if (child.GetComponent <Tile>() != null)
                {
                    continue;
                }

                GameObject newTile = new GameObject(child.gameObject.name);
                newTile.transform.parent   = tileset.transform;
                newTile.transform.position = child.position;
                child.SetParent(newTile.transform);

                var tile = newTile.AddComponent <Tile>();
                tile.SetBoundsFromChildren();
                tile.GetIdFromTileset(tileset);
                tileset.AddTile(tile);
            }
        }