Add palette and flip selectors to tileset editor

This commit is contained in:
Marcus Huderle
2018-09-30 14:54:38 -05:00
parent 0bc3513b15
commit ffd769f7ed
9 changed files with 278 additions and 95 deletions

View File

@@ -27,6 +27,7 @@ public:
static Tileset* getBlockTileset(int, Tileset*, Tileset*);
static Metatile* getMetatile(int, Tileset*, Tileset*);
static QList<QList<QRgb>> getBlockPalettes(Tileset*, Tileset*);
static QList<QRgb> getPalette(int, Tileset*, Tileset*);
};
#endif // TILESET_H

View File

@@ -10,6 +10,6 @@ QImage getCollisionMetatileImage(Block);
QImage getCollisionMetatileImage(int, int);
QImage getMetatileImage(uint16_t, Tileset*, Tileset*);
QImage getTileImage(uint16_t, Tileset*, Tileset*);
QImage getColoredTileImage(uint16_t, Tileset*, Tileset*, QList<QRgb>);
QImage getColoredTileImage(uint16_t, Tileset*, Tileset*, int);
#endif // IMAGEPROVIDERS_H

View File

@@ -26,18 +26,30 @@ private slots:
void onHoveredTileCleared();
void onSelectedTileChanged(uint16_t);
void on_spinBox_paletteSelector_valueChanged(int arg1);
void on_checkBox_xFlip_stateChanged(int arg1);
void on_checkBox_yFlip_stateChanged(int arg1);
private:
void initMetatileSelector();
void initTileSelector();
void initSelectedTileItem();
void drawSelectedTile();
Ui::TilesetEditor *ui;
TilesetEditorMetatileSelector *metatileSelector;
TilesetEditorTileSelector *tileSelector;
Project *project;
uint paletteNum;
int paletteId;
bool tileXFlip;
bool tileYFlip;
QString primaryTilesetLabel;
QString secondaryTilesetLabel;
QGraphicsScene *metatilesScene;
QGraphicsScene *tilesScene;
QGraphicsScene *metatilesScene = nullptr;
QGraphicsScene *tilesScene = nullptr;
QGraphicsScene *selectedTileScene = nullptr;
QGraphicsPixmapItem *selectedTilePixmapItem = nullptr;
};
#endif // TILESETEDITOR_H

View File

@@ -11,13 +11,13 @@ public:
this->primaryTileset = primaryTileset;
this->secondaryTileset = secondaryTileset;
this->numTilesWide = 16;
this->paletteNum = 0;
this->paletteId = 0;
setAcceptHoverEvents(true);
}
void draw();
void select(uint16_t metatileId);
void setTilesets(Tileset*, Tileset*);
void setPaletteNum(int);
void setPaletteId(int);
uint16_t getSelectedTile();
protected:
@@ -32,7 +32,7 @@ private:
Tileset *secondaryTileset;
uint16_t selectedTile;
int numTilesWide;
int paletteNum;
int paletteId;
void updateSelectedTile();
uint16_t getTileId(int x, int y);
QPoint getTileCoords(uint16_t);