コード例 #1
0
        private void tileset_Change(Widget widget)
        {
            State.SelectedTileset = ((ComboBox)widget).SelectedIndex;
            Data.TileSet tileset = State.Data.TileSets[State.SelectedTileset];
            for (int i = 0; i < 4; i++)
            {
                if (tileset.GetPalette(i) < 0 || tileset.GetPalette(i) >= State.Data.Palettes.Count)
                {
                    tileset.SetPalette(i, 0);
                }
                m_PaletteCombos[i].SelectedIndex = tileset.GetPalette(i);
            }

            bool loadtiles = (State.Data.TileSets[State.SelectedTileset] != null);

            if (loadtiles)
            {
                for (int i = 0; i < Data.TileSet.TilesPerSet; i++)
                {
                    m_MetaTiles[i].Flags = State.Data.TileSets[State.SelectedTileset].GetFlags(i);
                    for (int j = 0; j < 4; j++)
                    {
                        TilePageAttribute tile_page_attrib = State.Data.TileSets[State.SelectedTileset].GetSubTile(i, j);
                        m_MetaTiles[i].SetTile(j, tile_page_attrib.Tile, State.GfxPage(tile_page_attrib.Page).Texture);
                        m_MetaTiles[i].Attribute = tile_page_attrib.Attribute;
                    }
                }
            }
        }
コード例 #2
0
        private void cmbTilesets_SelectionChanged(Widget widget)
        {
            int index = ((ComboBox)widget).SelectedIndex;

            if (index != State.SelectedTileset || index != State.Data.Maps[State.SelectedMap].Tileset)
            {
                State.SelectedTileset = State.Data.Maps[State.SelectedMap].Tileset = index;
                refreshCurrentMapPanel();
            }

            Data.TileSet tileset = State.Data.TileSets[State.SelectedTileset];

            if (tileset != null)
            {
                for (int i = 0; i < 4; i++)
                {
                    if (tileset.GetPalette(i) < 0 || tileset.GetPalette(i) >= State.Data.Palettes.Count)
                    {
                        tileset.SetPalette(i, 0);
                    }
                    byte[] palette = new byte[4];
                    palette[0] = State.Data.Palettes[tileset.GetPalette(0)][0];
                    for (int j = 1; j < 4; j++)
                    {
                        palette[j] = State.Data.Palettes[tileset.GetPalette(i)][j];
                    }
                    State.Palette.LoadPalette(i, palette);
                }
            }
        }
コード例 #3
0
        private void cmbTilesets_SelectionChanged(Widget widget)
        {
            State.SelectedTileset = ((ComboBox)widget).SelectedIndex;

            Data.Chunk chunk = State.Data.Chunks[State.SelectedChunk];
            if (chunk != null)
            {
                chunk.Tileset = State.SelectedTileset;
            }

            Data.TileSet tileset = State.Data.TileSets[State.SelectedTileset];

            if (tileset != null)
            {
                for (int i = 0; i < 4; i++)
                {
                    if (tileset.GetPalette(i) < 0 || tileset.GetPalette(i) >= State.Data.Palettes.Count)
                    {
                        tileset.SetPalette(i, 0);
                    }
                    byte[] palette = new byte[4];
                    palette[0] = State.Data.Palettes[tileset.GetPalette(0)][0];
                    for (int j = 1; j < 4; j++)
                    {
                        palette[j] = State.Data.Palettes[tileset.GetPalette(i)][j];
                    }
                    State.Palette.LoadPalette(i, palette);
                }

                for (int i = 0; i < Data.TileSet.TilesPerSet; i++)
                {
                    for (int j = 0; j < 4; j++)
                    {
                        TilePageAttribute tile_page_attrib = State.Data.TileSets[State.SelectedTileset].GetSubTile(i, j);
                        aioTileset.SetTile(i, j, tile_page_attrib.Tile, State.GfxPage(tile_page_attrib.Page).Texture);
                        aioTileset.SetAttribute(i, tile_page_attrib.Attribute);
                    }
                }

                loadChunkElement();
            }
        }