Implement more map api functions

This commit is contained in:
Marcus Huderle
2020-04-30 18:30:24 -05:00
parent d685718f8d
commit 95012838fd
7 changed files with 295 additions and 66 deletions

View File

@@ -41,6 +41,23 @@ public:
Q_INVOKABLE QJSValue getBlock(int x, int y);
Q_INVOKABLE void setBlock(int x, int y, int tile, int collision, int elevation);
Q_INVOKABLE void setBlocksFromSelection(int x, int y);
Q_INVOKABLE int getMetatileId(int x, int y);
Q_INVOKABLE void setMetatileId(int x, int y, int metatileId);
Q_INVOKABLE int getCollision(int x, int y);
Q_INVOKABLE void setCollision(int x, int y, int collision);
Q_INVOKABLE int getElevation(int x, int y);
Q_INVOKABLE void setElevation(int x, int y, int elevation);
Q_INVOKABLE void bucketFill(int x, int y, int metatileId);
Q_INVOKABLE void bucketFillFromSelection(int x, int y);
Q_INVOKABLE void magicFill(int x, int y, int metatileId);
Q_INVOKABLE void magicFillFromSelection(int x, int y);
Q_INVOKABLE void shift(int xDelta, int yDelta);
Q_INVOKABLE QJSValue getDimensions();
Q_INVOKABLE int getWidth();
Q_INVOKABLE int getHeight();
Q_INVOKABLE void setDimensions(int width, int height);
Q_INVOKABLE void setWidth(int width);
Q_INVOKABLE void setHeight(int height);
public slots:
void scaleMapView(int);
@@ -210,6 +227,7 @@ private:
QString getDefaultMap();
void setRecentMap(QString map_name);
QStandardItem* createMapItem(QString mapName, int groupNum, int inGroupNum);
static bool mapDimensionsValid(int width, int height);
void drawMapListIcons(QAbstractItemModel *model);
void updateMapList();

View File

@@ -16,6 +16,7 @@ class Scripting
public:
Scripting(MainWindow *mainWindow);
static QJSValue fromBlock(Block block);
static QJSValue dimensions(int width, int height);
static void init(MainWindow *mainWindow);
static void cb_MetatileChanged(int x, int y, Block prevBlock, Block newBlock);

View File

@@ -38,14 +38,31 @@ public:
virtual void paint(QGraphicsSceneMouseEvent*);
virtual void floodFill(QGraphicsSceneMouseEvent*);
virtual void magicFill(QGraphicsSceneMouseEvent*);
void _floodFill(int x, int y);
void _floodFillSmartPath(int initialX, int initialY);
void magicFill(int x, int y, uint16_t metatileId, bool fromScriptCall = false);
void magicFill(int x, int y, bool fromScriptCall = false);
void magicFill(
int initialX,
int initialY,
QPoint selectionDimensions,
QList<uint16_t> *selectedMetatiles,
QList<QPair<uint16_t, uint16_t>> *selectedCollisions,
bool fromScriptCall = false);
void floodFill(int x, int y, bool fromScriptCall = false);
void floodFill(int x, int y, uint16_t metatileId, bool fromScriptCall = false);
void floodFill(int initialX,
int initialY,
QPoint selectionDimensions,
QList<uint16_t> *selectedMetatiles,
QList<QPair<uint16_t, uint16_t>> *selectedCollisions,
bool fromScriptCall = false);
void floodFillSmartPath(int initialX, int initialY);
virtual void pick(QGraphicsSceneMouseEvent*);
virtual void select(QGraphicsSceneMouseEvent*);
virtual void shift(QGraphicsSceneMouseEvent*);
void shift(int xDelta, int yDelta);
virtual void draw(bool ignoreCache = false);
void updateMetatileSelection(QGraphicsSceneMouseEvent *event);
void paintNormal(int x, int y, bool fromScriptCallback = false);
void paintNormal(int x, int y, bool fromScriptCall = false);
private:
void paintSmartPath(int x, int y);