private void PlaceMetaTile(Vector3Int position, MetaTile metaTile, Matrix4x4 matrixTransform) { foreach (LayerTile tile in metaTile.GetTiles()) { PlaceLayerTile(position, tile, matrixTransform); } }
private void PlaceMetaTile(MetaTileMap metaTileMap, Vector3Int position, MetaTile metaTile) { foreach (var tile in metaTile.GetTiles()) { PlaceLayerTile(metaTileMap, position, tile); } }
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(); } }
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); } }
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); }
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)); }
public static void CreateMetaTile() { MetaTile tile = ScriptableObject.CreateInstance <MetaTile>(); TileBuilder.CreateAsset(tile, "MetaTile"); }
public object Get(MetaTile request) { return TileFactory.MetaTile(request); }
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; } } }
public MetaTileRenderRule(MetaTile parent) { m_Parent = parent; }