Add onBorderVisibilityToggled callback

This commit is contained in:
GriffinR 2022-08-30 12:53:33 -04:00
parent 3e7bfe126a
commit be4a5e8528
5 changed files with 17 additions and 3 deletions

View file

@ -88,7 +88,7 @@ public:
void setSelectedConnectionFromMap(QString mapName); void setSelectedConnectionFromMap(QString mapName);
void updatePrimaryTileset(QString tilesetLabel, bool forceLoad = false); void updatePrimaryTileset(QString tilesetLabel, bool forceLoad = false);
void updateSecondaryTileset(QString tilesetLabel, bool forceLoad = false); void updateSecondaryTileset(QString tilesetLabel, bool forceLoad = false);
void toggleBorderVisibility(bool visible); void toggleBorderVisibility(bool visible, bool enableScriptCallback = true);
void updateCustomMapHeaderValues(QTableWidget *); void updateCustomMapHeaderValues(QTableWidget *);
void configureEncounterJSON(QWidget *); void configureEncounterJSON(QWidget *);
Tileset *getCurrentMapPrimaryTileset(); Tileset *getCurrentMapPrimaryTileset();

View file

@ -22,6 +22,7 @@ enum CallbackType {
OnTilesetUpdated, OnTilesetUpdated,
OnMainTabChanged, OnMainTabChanged,
OnMapViewTabChanged, OnMapViewTabChanged,
OnBorderVisibilityToggled,
}; };
class Scripting class Scripting
@ -52,6 +53,7 @@ public:
static void cb_TilesetUpdated(QString tilesetName); static void cb_TilesetUpdated(QString tilesetName);
static void cb_MainTabChanged(int oldTab, int newTab); static void cb_MainTabChanged(int oldTab, int newTab);
static void cb_MapViewTabChanged(int oldTab, int newTab); static void cb_MapViewTabChanged(int oldTab, int newTab);
static void cb_BorderVisibilityToggled(bool visible);
static bool tryErrorJS(QJSValue js); static bool tryErrorJS(QJSValue js);
private: private:

View file

@ -1936,11 +1936,13 @@ void Editor::updateSecondaryTileset(QString tilesetLabel, bool forceLoad)
} }
} }
void Editor::toggleBorderVisibility(bool visible) void Editor::toggleBorderVisibility(bool visible, bool enableScriptCallback)
{ {
this->setBorderItemsVisible(visible); this->setBorderItemsVisible(visible);
this->setConnectionsVisibility(visible); this->setConnectionsVisibility(visible);
porymapConfig.setShowBorder(visible); porymapConfig.setShowBorder(visible);
if (enableScriptCallback)
Scripting::cb_BorderVisibilityToggled(visible);
} }
void Editor::updateCustomMapHeaderValues(QTableWidget *table) void Editor::updateCustomMapHeaderValues(QTableWidget *table)

View file

@ -794,7 +794,7 @@ bool MainWindow::getGridVisibility() {
} }
void MainWindow::setBorderVisibility(bool visible) { void MainWindow::setBorderVisibility(bool visible) {
this->editor->toggleBorderVisibility(visible); this->editor->toggleBorderVisibility(visible, false);
} }
bool MainWindow::getBorderVisibility() { bool MainWindow::getBorderVisibility() {

View file

@ -15,6 +15,7 @@ QMap<CallbackType, QString> callbackFunctions = {
{OnTilesetUpdated, "onTilesetUpdated"}, {OnTilesetUpdated, "onTilesetUpdated"},
{OnMainTabChanged, "onMainTabChanged"}, {OnMainTabChanged, "onMainTabChanged"},
{OnMapViewTabChanged, "onMapViewTabChanged"}, {OnMapViewTabChanged, "onMapViewTabChanged"},
{OnBorderVisibilityToggled, "onBorderVisibilityToggled"},
}; };
Scripting *instance = nullptr; Scripting *instance = nullptr;
@ -241,6 +242,15 @@ void Scripting::cb_MapViewTabChanged(int oldTab, int newTab) {
instance->invokeCallback(OnMapViewTabChanged, args); instance->invokeCallback(OnMapViewTabChanged, args);
} }
void Scripting::cb_BorderVisibilityToggled(bool visible) {
if (!instance) return;
QJSValueList args {
visible,
};
instance->invokeCallback(OnBorderVisibilityToggled, 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);