コード例 #1
0
 private void PlaceMetaTile(Vector3Int position, MetaTile metaTile, Matrix4x4 matrixTransform)
 {
     foreach (LayerTile tile in metaTile.GetTiles())
     {
         PlaceLayerTile(position, tile, matrixTransform);
     }
 }
コード例 #2
0
 private void PlaceMetaTile(MetaTileMap metaTileMap, Vector3Int position, MetaTile metaTile)
 {
     foreach (var tile in metaTile.GetTiles())
     {
         PlaceLayerTile(metaTileMap, position, tile);
     }
 }
コード例 #3
0
        private void Metatile_OnClick(Widget widget, InputEventMouse e)
        {
            Sprite sprite = State.Data.Sprites[State.SelectedSprite];

            if (sprite != null)
            {
                MetaTile             metatile = (MetaTile)widget;
                Sprite.FrameTypeEnum frametype;
                if (metatile.Index >= 0x200)
                {
                    frametype = Sprite.FrameTypeEnum.Extra;
                }
                else if (metatile.Index >= 0x100)
                {
                    frametype = Sprite.FrameTypeEnum.Extended;
                }
                else
                {
                    frametype = Sprite.FrameTypeEnum.Standard;
                }
                SpriteMetaTileFrame tile = sprite.GetMetaTileFrame(frametype, metatile.Index & 0xFF)[metatile.ClickedTile];
                if (e.Button == MouseButton.Left)
                {
                    tile.Tile     = (byte)State.SelectedTile;
                    tile.TilePage = (byte)(State.SelectedPage);
                    metatile.SetTile(metatile.ClickedTile, tile.Tile, State.GfxPage(tile.TilePage).Texture);
                }
                else if (e.Button == MouseButton.Right)
                {
                    tile.Flip();
                    metatile.SetTileFlip(metatile.ClickedTile, tile.FlipH, tile.FlipV);
                }
                refreshSpriteDataDisplay();
            }
        }
コード例 #4
0
 private void PlaceMetaTile(MetaTileMap metaTileMap, Vector3Int position, MetaTile metaTile)
 {
     foreach (LayerTile tile in metaTile.GetTiles())
     {
         //metaTileMap.RemoveTileWithlayer(position, tile.LayerType);
         metaTileMap.SetTile(position, tile, cells[0].matrix, isPlaying: false);
     }
 }
コード例 #5
0
 public static byte[] MetaTile(MetaTile request)
 {
     var tileText = "Common{0}Z: {1}{0}X: {2}{0}Y: {3}{0}".Fmt(
     Environment.NewLine,
     request.zIndex,
     request.xIndex,
     request.yIndex);
       return GetTextTile(tileText);
 }
コード例 #6
0
    public static Sprite Create(MetaTile metaTile)
    {
        if (metaTile == null)
        {
            return(null);
        }

        List <Sprite> sprites = new List <Sprite>();

        foreach (LayerTile tile in metaTile.GetTiles())
        {
            sprites.Add(tile.PreviewSprite);
        }

        return(SaveSpriteToEditorPath(sprites, metaTile));
    }
コード例 #7
0
    public static void CreateMetaTile()
    {
        MetaTile tile = ScriptableObject.CreateInstance <MetaTile>();

        TileBuilder.CreateAsset(tile, "MetaTile");
    }
コード例 #8
0
ファイル: TileLayer.cs プロジェクト: christyheaton/TileFixer
 public object Get(MetaTile request)
 {
     return TileFactory.MetaTile(request);
 }
コード例 #9
0
        private void refreshMetatileDisplay()
        {
            Sprite sprite = State.Data.Sprites[State.SelectedSprite];

            if (sprite == null)
            {
                foreach (Label l in lstMetaSpriteLabels)
                {
                    l.Visible = false;
                }
                foreach (MetaTile m in lstMetaSprites)
                {
                    m.Visible = false;
                }
            }
            else
            {
                if (lstMetaSprites.Count != sprite.FrameCount || m_InvalidateAllMetatiles)
                {
                    m_InvalidateAllMetatiles = false;
                    foreach (Label l in lstMetaSpriteLabels)
                    {
                        l.Parent.RemoveWidget(l);
                    }
                    foreach (MetaTile m in lstMetaSprites)
                    {
                        m.Parent.RemoveWidget(m);
                    }
                    lstMetaSpriteLabels.Clear();
                    lstMetaSprites.Clear();

                    int x = 192;
                    int y = 8;

                    int tiles_w = cmbSpriteSize.SelectedIndex + 1;
                    int tiles_h = tiles_w;

                    if (sprite.HasStandardSprites)
                    {
                        Label lbl = new Label(x, y, "Standard Sprites:");
                        panel_CurrentSprite.AddWidget(lbl);
                        lstMetaSpriteLabels.Add(lbl);
                        for (int i = 0; i < 8; i++)
                        {
                            MetaTile m = new MetaTile(i, x + i * 38, y + 18, 32, 32, Metatile_OnClick, tiles_w, tiles_h);
                            panel_CurrentSprite.AddWidget(m);
                            lstMetaSprites.Add(m);
                            SpriteMetaTileFrame[] tiles = sprite.GetMetaTileFrame(Sprite.FrameTypeEnum.Standard, i);
                            for (int j = 0; j < tiles.Length; j++)
                            {
                                m.SetTile(j, tiles[j].Tile, State.GfxPage(tiles[j].TilePage).Texture);
                                m.SetTileFlip(j, tiles[j].FlipH, tiles[j].FlipV);
                            }
                        }
                        y += 56;
                    }
                    if (sprite.HasExtendedSprites)
                    {
                        Label lbl = new Label(x, y, "Extended Sprites:");
                        panel_CurrentSprite.AddWidget(lbl);
                        lstMetaSpriteLabels.Add(lbl);
                        for (int i = 0; i < 4; i++)
                        {
                            MetaTile m = new MetaTile(0x100 + i, x + i * 38, y + 18, 32, 32, Metatile_OnClick, tiles_w, tiles_h);
                            panel_CurrentSprite.AddWidget(m);
                            lstMetaSprites.Add(m);
                            SpriteMetaTileFrame[] tiles = sprite.GetMetaTileFrame(Sprite.FrameTypeEnum.Extended, i);
                            for (int j = 0; j < tiles.Length; j++)
                            {
                                m.SetTile(j, tiles[j].Tile, State.GfxPage(tiles[j].TilePage).Texture);
                                m.SetTileFlip(j, tiles[j].FlipH, tiles[j].FlipV);
                            }
                        }
                        y += 56;
                    }
                    if (sprite.ExtraFramesInt != 0)
                    {
                        Label lbl = new Label(x, y, "Extra Frames:");
                        panel_CurrentSprite.AddWidget(lbl);
                        lstMetaSpriteLabels.Add(lbl);
                        for (int i = 0; i < sprite.ExtraFramesInt; i++)
                        {
                            MetaTile m = new MetaTile(0x200 + i, x + (i % 12) * 38, y + 18 + (i / 12) * 38, 32, 32, Metatile_OnClick, tiles_w, tiles_h);
                            panel_CurrentSprite.AddWidget(m);
                            lstMetaSprites.Add(m);
                            SpriteMetaTileFrame[] tiles = sprite.GetMetaTileFrame(Sprite.FrameTypeEnum.Extra, i);
                            for (int j = 0; j < tiles.Length; j++)
                            {
                                m.SetTile(j, tiles[j].Tile, State.GfxPage(tiles[j].TilePage).Texture);
                                m.SetTileFlip(j, tiles[j].FlipH, tiles[j].FlipV);
                            }
                        }
                    }
                }
                foreach (Label l in lstMetaSpriteLabels)
                {
                    l.Visible = true;
                }
                foreach (MetaTile m in lstMetaSprites)
                {
                    m.Visible = true;
                }
            }
        }
コード例 #10
0
 public MetaTileRenderRule(MetaTile parent)
 {
     m_Parent = parent;
 }