From b39906c03f178527916fefb5210fc919f11afc4f Mon Sep 17 00:00:00 2001 From: GriffinR Date: Fri, 10 Dec 2021 16:09:06 -0500 Subject: [PATCH] Add onMapShifted to API --- include/scripting.h | 2 ++ src/scripting.cpp | 11 +++++++++++ src/ui/mappixmapitem.cpp | 2 ++ 3 files changed, 15 insertions(+) diff --git a/include/scripting.h b/include/scripting.h index d9cfb91a..6983b4ee 100644 --- a/include/scripting.h +++ b/include/scripting.h @@ -14,6 +14,7 @@ enum CallbackType { OnBlockChanged, OnMapOpened, OnMapResized, + OnMapShifted, OnTilesetUpdated, OnTabChanged, }; @@ -38,6 +39,7 @@ public: static void cb_MetatileChanged(int x, int y, Block prevBlock, Block newBlock); static void cb_MapOpened(QString mapName); static void cb_MapResized(int oldWidth, int oldHeight, int newWidth, int newHeight); + static void cb_MapShifted(int xDelta, int yDelta); static void cb_TilesetUpdated(QString tilesetName); static void cb_TabChanged(int oldTab, int newTab); static bool tryErrorJS(QJSValue js); diff --git a/src/scripting.cpp b/src/scripting.cpp index 028d6127..3dd6ce51 100644 --- a/src/scripting.cpp +++ b/src/scripting.cpp @@ -7,6 +7,7 @@ QMap callbackFunctions = { {OnBlockChanged, "onBlockChanged"}, {OnMapOpened, "onMapOpened"}, {OnMapResized, "onMapResized"}, + {OnMapShifted, "onMapShifted"}, {OnTilesetUpdated, "onTilesetUpdated"}, {OnTabChanged, "onTabChanged"}, }; @@ -155,6 +156,16 @@ void Scripting::cb_MapResized(int oldWidth, int oldHeight, int newWidth, int new instance->invokeCallback(OnMapResized, args); } +void Scripting::cb_MapShifted(int xDelta, int yDelta) { + if (!instance) return; + + QJSValueList args { + xDelta, + yDelta, + }; + instance->invokeCallback(OnMapShifted, args); +} + void Scripting::cb_TilesetUpdated(QString tilesetName) { if (!instance) return; diff --git a/src/ui/mappixmapitem.cpp b/src/ui/mappixmapitem.cpp index 0d22b9b7..442db844 100644 --- a/src/ui/mappixmapitem.cpp +++ b/src/ui/mappixmapitem.cpp @@ -1,6 +1,7 @@ #include "mappixmapitem.h" #include "metatile.h" #include "log.h" +#include "scripting.h" #include "editcommands.h" @@ -95,6 +96,7 @@ void MapPixmapItem::shift(int xDelta, int yDelta, bool fromScriptCall) { } if (!fromScriptCall && map->layout->blockdata != oldMetatiles) { + Scripting::cb_MapShifted(xDelta, yDelta); map->editHistory.push(new ShiftMetatiles(map, oldMetatiles, map->layout->blockdata, actionId_)); } }