Remove addTilesImage, add overloaded addTileImage, add transparency to addMetatileImage
This commit is contained in:
parent
86f44c1a67
commit
0944f9888c
2 changed files with 8 additions and 26 deletions
|
@ -96,8 +96,8 @@ public:
|
||||||
bool xflip = false, bool yflip = false, int paletteId = -1, bool setTransparency = false,
|
bool xflip = false, bool yflip = false, int paletteId = -1, bool setTransparency = false,
|
||||||
int layer = 0, bool useCache = true);
|
int layer = 0, bool useCache = true);
|
||||||
Q_INVOKABLE void addTileImage(int x, int y, int tileId, bool xflip, bool yflip, int paletteId, bool setTransparency = false, int layer = 0);
|
Q_INVOKABLE void addTileImage(int x, int y, int tileId, bool xflip, bool yflip, int paletteId, bool setTransparency = false, int layer = 0);
|
||||||
Q_INVOKABLE void addTilesImage(int x, int y, QJSValue tilesObj, int layer = 0);
|
Q_INVOKABLE void addTileImage(int x, int y, QJSValue tileObj, bool setTransparency = false, int layer = 0);
|
||||||
Q_INVOKABLE void addMetatileImage(int x, int y, int metatileId, int layer = 0);
|
Q_INVOKABLE void addMetatileImage(int x, int y, int metatileId, bool setTransparency = false, int layer = 0);
|
||||||
void refreshAfterPaletteChange(Tileset *tileset);
|
void refreshAfterPaletteChange(Tileset *tileset);
|
||||||
void setTilesetPalette(Tileset *tileset, int paletteIndex, QList<QList<int>> colors);
|
void setTilesetPalette(Tileset *tileset, int paletteIndex, QList<QList<int>> colors);
|
||||||
Q_INVOKABLE void setPrimaryTilesetPalette(int paletteIndex, QList<QList<int>> colors);
|
Q_INVOKABLE void setPrimaryTilesetPalette(int paletteIndex, QList<QList<int>> colors);
|
||||||
|
|
|
@ -407,32 +407,12 @@ void MainWindow::addTileImage(int x, int y, int tileId, bool xflip, bool yflip,
|
||||||
this->ui->graphicsView_Map->scene()->update();
|
this->ui->graphicsView_Map->scene()->update();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::addTilesImage(int x, int y, QJSValue tilesObj, int layer) {
|
void MainWindow::addTileImage(int x, int y, QJSValue tileObj, bool setTransparency, int layer) {
|
||||||
if (!this->ui || !this->ui->graphicsView_Map || !this->editor || !this->editor->map || !this->editor->map->layout
|
Tile tile = Scripting::toTile(tileObj);
|
||||||
|| !this->editor->map->layout->tileset_primary || !this->editor->map->layout->tileset_secondary)
|
this->addTileImage(x, y, tile.tileId, tile.xflip, tile.yflip, tile.palette, setTransparency, layer);
|
||||||
return;
|
|
||||||
|
|
||||||
// Create metatile from JS tiles array
|
|
||||||
Metatile metatile;
|
|
||||||
int numTiles = this->getNumTilesInMetatile();
|
|
||||||
int numTileObjs = qMin(tilesObj.property("length").toInt(), numTiles);
|
|
||||||
int i = 0;
|
|
||||||
for (; i < numTileObjs; i++)
|
|
||||||
metatile.tiles.append(Scripting::toTile(tilesObj.property(i)));
|
|
||||||
for (; i < numTiles; i++)
|
|
||||||
metatile.tiles.append(Tile());
|
|
||||||
|
|
||||||
// Create image from metatile
|
|
||||||
QImage image = getMetatileImage(&metatile,
|
|
||||||
this->editor->map->layout->tileset_primary,
|
|
||||||
this->editor->map->layout->tileset_secondary,
|
|
||||||
this->editor->map->metatileLayerOrder,
|
|
||||||
this->editor->map->metatileLayerOpacity);
|
|
||||||
if (this->ui->graphicsView_Map->getOverlay(layer)->addImage(x, y, image))
|
|
||||||
this->ui->graphicsView_Map->scene()->update();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::addMetatileImage(int x, int y, int metatileId, int layer) {
|
void MainWindow::addMetatileImage(int x, int y, int metatileId, bool setTransparency, int layer) {
|
||||||
if (!this->ui || !this->ui->graphicsView_Map || !this->editor || !this->editor->map || !this->editor->map->layout
|
if (!this->ui || !this->ui->graphicsView_Map || !this->editor || !this->editor->map || !this->editor->map->layout
|
||||||
|| !this->editor->map->layout->tileset_primary || !this->editor->map->layout->tileset_secondary)
|
|| !this->editor->map->layout->tileset_primary || !this->editor->map->layout->tileset_secondary)
|
||||||
return;
|
return;
|
||||||
|
@ -441,6 +421,8 @@ void MainWindow::addMetatileImage(int x, int y, int metatileId, int layer) {
|
||||||
this->editor->map->layout->tileset_secondary,
|
this->editor->map->layout->tileset_secondary,
|
||||||
this->editor->map->metatileLayerOrder,
|
this->editor->map->metatileLayerOrder,
|
||||||
this->editor->map->metatileLayerOpacity);
|
this->editor->map->metatileLayerOpacity);
|
||||||
|
if (setTransparency)
|
||||||
|
image.setColor(0, qRgba(0, 0, 0, 0));
|
||||||
if (this->ui->graphicsView_Map->getOverlay(layer)->addImage(x, y, image))
|
if (this->ui->graphicsView_Map->getOverlay(layer)->addImage(x, y, image))
|
||||||
this->ui->graphicsView_Map->scene()->update();
|
this->ui->graphicsView_Map->scene()->update();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue