Add onTilesetUpdated to scripting callbacks
This commit is contained in:
parent
5a5d16bdc6
commit
6bae415fc1
6 changed files with 24 additions and 2 deletions
|
@ -212,6 +212,7 @@ signals:
|
||||||
void currentMetatilesSelectionChanged();
|
void currentMetatilesSelectionChanged();
|
||||||
void mapRulerStatusChanged(const QString &);
|
void mapRulerStatusChanged(const QString &);
|
||||||
void editedMapData();
|
void editedMapData();
|
||||||
|
void tilesetUpdated(QString);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // EDITOR_H
|
#endif // EDITOR_H
|
||||||
|
|
|
@ -13,6 +13,7 @@ enum CallbackType {
|
||||||
OnProjectClosed,
|
OnProjectClosed,
|
||||||
OnBlockChanged,
|
OnBlockChanged,
|
||||||
OnMapOpened,
|
OnMapOpened,
|
||||||
|
OnTilesetUpdated,
|
||||||
};
|
};
|
||||||
|
|
||||||
class Scripting
|
class Scripting
|
||||||
|
@ -32,6 +33,7 @@ public:
|
||||||
static void cb_ProjectClosed(QString projectPath);
|
static void cb_ProjectClosed(QString projectPath);
|
||||||
static void cb_MetatileChanged(int x, int y, Block prevBlock, Block newBlock);
|
static void cb_MetatileChanged(int x, int y, Block prevBlock, Block newBlock);
|
||||||
static void cb_MapOpened(QString mapName);
|
static void cb_MapOpened(QString mapName);
|
||||||
|
static void cb_TilesetUpdated(QString tilesetName);
|
||||||
static bool tryErrorJS(QJSValue js);
|
static bool tryErrorJS(QJSValue js);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
|
@ -31,6 +31,8 @@ public:
|
||||||
void setExternalSelection(int, int, QList<uint16_t>, QList<QPair<uint16_t, uint16_t>>);
|
void setExternalSelection(int, int, QList<uint16_t>, QList<QPair<uint16_t, uint16_t>>);
|
||||||
QPoint getMetatileIdCoordsOnWidget(uint16_t);
|
QPoint getMetatileIdCoordsOnWidget(uint16_t);
|
||||||
void setMap(Map*);
|
void setMap(Map*);
|
||||||
|
Tileset *primaryTileset;
|
||||||
|
Tileset *secondaryTileset;
|
||||||
protected:
|
protected:
|
||||||
void mousePressEvent(QGraphicsSceneMouseEvent*);
|
void mousePressEvent(QGraphicsSceneMouseEvent*);
|
||||||
void mouseMoveEvent(QGraphicsSceneMouseEvent*);
|
void mouseMoveEvent(QGraphicsSceneMouseEvent*);
|
||||||
|
@ -41,8 +43,6 @@ private:
|
||||||
bool externalSelection;
|
bool externalSelection;
|
||||||
int numMetatilesWide;
|
int numMetatilesWide;
|
||||||
Map *map;
|
Map *map;
|
||||||
Tileset *primaryTileset;
|
|
||||||
Tileset *secondaryTileset;
|
|
||||||
QList<uint16_t> *selectedMetatiles;
|
QList<uint16_t> *selectedMetatiles;
|
||||||
QList<QPair<uint16_t, uint16_t>> *selectedCollisions;
|
QList<QPair<uint16_t, uint16_t>> *selectedCollisions;
|
||||||
int externalSelectionWidth;
|
int externalSelectionWidth;
|
||||||
|
|
|
@ -1361,6 +1361,12 @@ void Editor::displayMetatileSelector() {
|
||||||
metatile_selector_item->select(0);
|
metatile_selector_item->select(0);
|
||||||
} else {
|
} else {
|
||||||
metatile_selector_item->setMap(map);
|
metatile_selector_item->setMap(map);
|
||||||
|
if (metatile_selector_item->primaryTileset
|
||||||
|
&& metatile_selector_item->primaryTileset->name != map->layout->tileset_primary->name)
|
||||||
|
emit tilesetUpdated(map->layout->tileset_primary->name);
|
||||||
|
if (metatile_selector_item->secondaryTileset
|
||||||
|
&& metatile_selector_item->secondaryTileset->name != map->layout->tileset_secondary->name)
|
||||||
|
emit tilesetUpdated(map->layout->tileset_secondary->name);
|
||||||
metatile_selector_item->setTilesets(map->layout->tileset_primary, map->layout->tileset_secondary);
|
metatile_selector_item->setTilesets(map->layout->tileset_primary, map->layout->tileset_secondary);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -258,6 +258,7 @@ void MainWindow::initEditor() {
|
||||||
connect(this->editor, &Editor::wildMonDataChanged, this, &MainWindow::onWildMonDataChanged);
|
connect(this->editor, &Editor::wildMonDataChanged, this, &MainWindow::onWildMonDataChanged);
|
||||||
connect(this->editor, &Editor::mapRulerStatusChanged, this, &MainWindow::onMapRulerStatusChanged);
|
connect(this->editor, &Editor::mapRulerStatusChanged, this, &MainWindow::onMapRulerStatusChanged);
|
||||||
connect(this->editor, &Editor::editedMapData, this, &MainWindow::markMapEdited);
|
connect(this->editor, &Editor::editedMapData, this, &MainWindow::markMapEdited);
|
||||||
|
connect(this->editor, &Editor::tilesetUpdated, this, &Scripting::cb_TilesetUpdated);
|
||||||
connect(ui->toolButton_Open_Scripts, &QToolButton::pressed, this->editor, &Editor::openMapScripts);
|
connect(ui->toolButton_Open_Scripts, &QToolButton::pressed, this->editor, &Editor::openMapScripts);
|
||||||
connect(ui->actionOpen_Project_in_Text_Editor, &QAction::triggered, this->editor, &Editor::openProjectInTextEditor);
|
connect(ui->actionOpen_Project_in_Text_Editor, &QAction::triggered, this->editor, &Editor::openProjectInTextEditor);
|
||||||
|
|
||||||
|
@ -2701,12 +2702,14 @@ void MainWindow::onTilesetsSaved(QString primaryTilesetLabel, QString secondaryT
|
||||||
bool updated = false;
|
bool updated = false;
|
||||||
if (primaryTilesetLabel == this->editor->map->layout->tileset_primary_label) {
|
if (primaryTilesetLabel == this->editor->map->layout->tileset_primary_label) {
|
||||||
this->editor->updatePrimaryTileset(primaryTilesetLabel, true);
|
this->editor->updatePrimaryTileset(primaryTilesetLabel, true);
|
||||||
|
Scripting::cb_TilesetUpdated(primaryTilesetLabel);
|
||||||
updated = true;
|
updated = true;
|
||||||
} else {
|
} else {
|
||||||
this->editor->project->getTileset(primaryTilesetLabel, true);
|
this->editor->project->getTileset(primaryTilesetLabel, true);
|
||||||
}
|
}
|
||||||
if (secondaryTilesetLabel == this->editor->map->layout->tileset_secondary_label) {
|
if (secondaryTilesetLabel == this->editor->map->layout->tileset_secondary_label) {
|
||||||
this->editor->updateSecondaryTileset(secondaryTilesetLabel, true);
|
this->editor->updateSecondaryTileset(secondaryTilesetLabel, true);
|
||||||
|
Scripting::cb_TilesetUpdated(secondaryTilesetLabel);
|
||||||
updated = true;
|
updated = true;
|
||||||
} else {
|
} else {
|
||||||
this->editor->project->getTileset(secondaryTilesetLabel, true);
|
this->editor->project->getTileset(secondaryTilesetLabel, true);
|
||||||
|
|
|
@ -6,6 +6,7 @@ QMap<CallbackType, QString> callbackFunctions = {
|
||||||
{OnProjectClosed, "onProjectClosed"},
|
{OnProjectClosed, "onProjectClosed"},
|
||||||
{OnBlockChanged, "onBlockChanged"},
|
{OnBlockChanged, "onBlockChanged"},
|
||||||
{OnMapOpened, "onMapOpened"},
|
{OnMapOpened, "onMapOpened"},
|
||||||
|
{OnTilesetUpdated, "onTilesetUpdated"},
|
||||||
};
|
};
|
||||||
|
|
||||||
Scripting *instance = nullptr;
|
Scripting *instance = nullptr;
|
||||||
|
@ -140,6 +141,15 @@ void Scripting::cb_MapOpened(QString mapName) {
|
||||||
instance->invokeCallback(OnMapOpened, args);
|
instance->invokeCallback(OnMapOpened, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Scripting::cb_TilesetUpdated(QString tilesetName) {
|
||||||
|
if (!instance) return;
|
||||||
|
|
||||||
|
QJSValueList args {
|
||||||
|
tilesetName,
|
||||||
|
};
|
||||||
|
instance->invokeCallback(OnTilesetUpdated, args);
|
||||||
|
}
|
||||||
|
|
||||||
QJSValue Scripting::fromBlock(Block block) {
|
QJSValue Scripting::fromBlock(Block block) {
|
||||||
QJSValue obj = instance->engine->newObject();
|
QJSValue obj = instance->engine->newObject();
|
||||||
obj.setProperty("metatileId", block.metatileId);
|
obj.setProperty("metatileId", block.metatileId);
|
||||||
|
|
Loading…
Reference in a new issue