From 434bafe0b256e22c00ee362ff170af26e212d4aa Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sun, 3 May 2020 10:48:48 -0500 Subject: [PATCH] Call on_block_changed from more places --- include/ui/mappixmapitem.h | 4 ++-- src/core/map.cpp | 4 ++-- src/ui/collisionpixmapitem.cpp | 2 +- src/ui/mappixmapitem.cpp | 12 ++++++------ test_script.js | 24 ++---------------------- 5 files changed, 13 insertions(+), 33 deletions(-) diff --git a/include/ui/mappixmapitem.h b/include/ui/mappixmapitem.h index a361ce37..4ee10e56 100644 --- a/include/ui/mappixmapitem.h +++ b/include/ui/mappixmapitem.h @@ -55,7 +55,7 @@ public: QList *selectedMetatiles, QList> *selectedCollisions, bool fromScriptCall = false); - void floodFillSmartPath(int initialX, int initialY); + void floodFillSmartPath(int initialX, int initialY, bool fromScriptCall = false); virtual void pick(QGraphicsSceneMouseEvent*); virtual void select(QGraphicsSceneMouseEvent*); virtual void shift(QGraphicsSceneMouseEvent*); @@ -65,7 +65,7 @@ public: void paintNormal(int x, int y, bool fromScriptCall = false); private: - void paintSmartPath(int x, int y); + void paintSmartPath(int x, int y, bool fromScriptCall = false); static QList smartPathTable; signals: diff --git a/src/core/map.cpp b/src/core/map.cpp index c2229293..2e777190 100644 --- a/src/core/map.cpp +++ b/src/core/map.cpp @@ -395,7 +395,7 @@ void Map::_floodFillCollisionElevation(int x, int y, uint16_t collision, uint16_ block->collision = collision; block->elevation = elevation; - setBlock(x, y, *block); + setBlock(x, y, *block, true); if ((block = getBlock(x + 1, y)) && block->collision == old_coll && block->elevation == old_elev) { todo.append(QPoint(x + 1, y)); } @@ -520,7 +520,7 @@ void Map::magicFillCollisionElevation(int initialX, int initialY, uint16_t colli if (block && block->collision == old_coll && block->elevation == old_elev) { block->collision = collision; block->elevation = elevation; - setBlock(x, y, *block); + setBlock(x, y, *block, true); } } } diff --git a/src/ui/collisionpixmapitem.cpp b/src/ui/collisionpixmapitem.cpp index 252b9f1a..4b4bd376 100644 --- a/src/ui/collisionpixmapitem.cpp +++ b/src/ui/collisionpixmapitem.cpp @@ -39,7 +39,7 @@ void CollisionPixmapItem::paint(QGraphicsSceneMouseEvent *event) { if (block) { block->collision = this->movementPermissionsSelector->getSelectedCollision(); block->elevation = this->movementPermissionsSelector->getSelectedElevation(); - map->setBlock(x, y, *block); + map->setBlock(x, y, *block, true); } if (event->type() == QEvent::GraphicsSceneMouseRelease) { map->commit(); diff --git a/src/ui/mappixmapitem.cpp b/src/ui/mappixmapitem.cpp index 5b565be2..d6f4b2c4 100644 --- a/src/ui/mappixmapitem.cpp +++ b/src/ui/mappixmapitem.cpp @@ -131,7 +131,7 @@ QList MapPixmapItem::smartPathTable = QList({ #define IS_SMART_PATH_TILE(block) (selectedMetatiles->contains(block->tile)) -void MapPixmapItem::paintSmartPath(int x, int y) { +void MapPixmapItem::paintSmartPath(int x, int y, bool fromScriptCall) { QPoint selectionDimensions = this->metatileSelector->getSelectionDimensions(); QList *selectedMetatiles = this->metatileSelector->getSelectedMetatiles(); QList> *selectedCollisions = this->metatileSelector->getSelectedCollisions(); @@ -165,7 +165,7 @@ void MapPixmapItem::paintSmartPath(int x, int y) { block->collision = openTileCollision; block->elevation = openTileElevation; } - map->setBlock(actualX, actualY, *block); + map->setBlock(actualX, actualY, *block, !fromScriptCall); } } @@ -209,7 +209,7 @@ void MapPixmapItem::paintSmartPath(int x, int y) { block->collision = selectedCollisions->at(smartPathTable[id]).first; block->elevation = selectedCollisions->at(smartPathTable[id]).second; } - map->setBlock(actualX, actualY, *block); + map->setBlock(actualX, actualY, *block, !fromScriptCall); } } @@ -425,7 +425,7 @@ void MapPixmapItem::floodFill( delete[] visited; } -void MapPixmapItem::floodFillSmartPath(int initialX, int initialY) { +void MapPixmapItem::floodFillSmartPath(int initialX, int initialY, bool fromScriptCall) { QPoint selectionDimensions = this->metatileSelector->getSelectionDimensions(); QList *selectedMetatiles = this->metatileSelector->getSelectedMetatiles(); QList> *selectedCollisions = this->metatileSelector->getSelectedCollisions(); @@ -467,7 +467,7 @@ void MapPixmapItem::floodFillSmartPath(int initialX, int initialY) { block->collision = openTileCollision; block->elevation = openTileElevation; } - map->setBlock(x, y, *block); + map->setBlock(x, y, *block, !fromScriptCall); if ((block = map->getBlock(x + 1, y)) && block->tile == old_tile) { todo.append(QPoint(x + 1, y)); } @@ -522,7 +522,7 @@ void MapPixmapItem::floodFillSmartPath(int initialX, int initialY) { block->collision = selectedCollisions->at(smartPathTable[id]).first; block->elevation = selectedCollisions->at(smartPathTable[id]).second; } - map->setBlock(x, y, *block); + map->setBlock(x, y, *block, !fromScriptCall); // Visit neighbors if they are smart-path tiles, and don't revisit any. if (!visited[x + 1 + y * map->getWidth()] && (block = map->getBlock(x + 1, y)) && IS_SMART_PATH_TILE(block)) { diff --git a/test_script.js b/test_script.js index 28b5deb1..bd14687c 100644 --- a/test_script.js +++ b/test_script.js @@ -1,26 +1,6 @@ -const morningTint = [0.8, 0.7, 0.9]; -const nightTint = [0.6, 0.55, 1.0]; - -function applyTint(palette, tint) { - for (let i = 0; i < palette.length; i++) { - const color = palette[i]; - for (let j = 0; j < tint.length; j++) { - color[j] = Math.floor(color[j] * tint[j]); - } - } -} - -// Porymap callback when a map is opened. -export function on_map_opened(mapName) { +export function on_block_changed(x, y, prevBlock, newBlock) { try { - for (let i = 0; i < 13; i++) { - const primaryPalette = map.getPrimaryTilesetPalette(i) - applyTint(primaryPalette, morningTint) - map.setPrimaryTilesetPalettePreview(i, primaryPalette) - const secondaryPalette = map.getSecondaryTilesetPalette(i) - applyTint(secondaryPalette, morningTint) - map.setSecondaryTilesetPalettePreview(i, secondaryPalette) - } + console.log("on_block_changed", x, y) } catch (err) { console.log(err) }