mirror of
https://github.com/huderlem/porymap.git
synced 2026-08-23 09:06:45 -05:00
Add scripting api for metatile layer draw order
This commit is contained in:
@@ -8,7 +8,8 @@
|
||||
|
||||
QImage getCollisionMetatileImage(Block);
|
||||
QImage getCollisionMetatileImage(int, int);
|
||||
QImage getMetatileImage(uint16_t, Tileset*, Tileset*, bool useTruePalettes = false);
|
||||
QImage getMetatileImage(uint16_t, Tileset*, Tileset*, QList<int>, bool useTruePalettes = false);
|
||||
QImage getMetatileImage(uint16_t tile, Tileset*, Tileset*, bool useTruePalettes = false);
|
||||
QImage getTileImage(uint16_t, Tileset*, Tileset*);
|
||||
QImage getPalettedTileImage(uint16_t, Tileset*, Tileset*, int, bool useTruePalettes = false);
|
||||
QImage getGreyscaleTileImage(uint16_t tile, Tileset *primaryTileset, Tileset *secondaryTileset);
|
||||
|
||||
@@ -3,17 +3,19 @@
|
||||
|
||||
#include <QPair>
|
||||
#include "selectablepixmapitem.h"
|
||||
#include "map.h"
|
||||
#include "tileset.h"
|
||||
#include "maplayout.h"
|
||||
|
||||
class MetatileSelector: public SelectablePixmapItem {
|
||||
Q_OBJECT
|
||||
public:
|
||||
MetatileSelector(int numMetatilesWide, Tileset *primaryTileset, Tileset *secondaryTileset): SelectablePixmapItem(16, 16) {
|
||||
MetatileSelector(int numMetatilesWide, Map *map): SelectablePixmapItem(16, 16) {
|
||||
this->externalSelection = false;
|
||||
this->numMetatilesWide = numMetatilesWide;
|
||||
this->primaryTileset = primaryTileset;
|
||||
this->secondaryTileset = secondaryTileset;
|
||||
this->map = map;
|
||||
this->primaryTileset = map->layout->tileset_primary;
|
||||
this->secondaryTileset = map->layout->tileset_secondary;
|
||||
this->selectedMetatiles = new QList<uint16_t>();
|
||||
this->selectedCollisions = new QList<QPair<uint16_t, uint16_t>>();
|
||||
this->externalSelectedMetatiles = new QList<uint16_t>();
|
||||
@@ -37,6 +39,7 @@ protected:
|
||||
private:
|
||||
bool externalSelection;
|
||||
int numMetatilesWide;
|
||||
Map *map;
|
||||
Tileset *primaryTileset;
|
||||
Tileset *secondaryTileset;
|
||||
QList<uint16_t> *selectedMetatiles;
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
#include "tileseteditormetatileselector.h"
|
||||
#include "tileseteditortileselector.h"
|
||||
#include "metatilelayersitem.h"
|
||||
#include "map.h"
|
||||
|
||||
namespace Ui {
|
||||
class TilesetEditor;
|
||||
@@ -34,10 +35,10 @@ class TilesetEditor : public QMainWindow
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit TilesetEditor(Project*, QString, QString, QWidget *parent = nullptr);
|
||||
explicit TilesetEditor(Project*, Map*, QWidget *parent = nullptr);
|
||||
~TilesetEditor();
|
||||
void setMap(Map*);
|
||||
void setTilesets(QString, QString);
|
||||
void init(Project*, QString, QString);
|
||||
void selectMetatile(uint16_t metatileId);
|
||||
|
||||
private slots:
|
||||
@@ -91,8 +92,9 @@ private slots:
|
||||
void on_actionImport_Secondary_Metatiles_triggered();
|
||||
|
||||
private:
|
||||
void init(Project*, Map*);
|
||||
void closeEvent(QCloseEvent*);
|
||||
void initMetatileSelector();
|
||||
void initMetatileSelector(Map*);
|
||||
void initTileSelector();
|
||||
void initSelectedTileItem();
|
||||
void initMetatileLayersItem();
|
||||
|
||||
@@ -3,16 +3,19 @@
|
||||
|
||||
#include "selectablepixmapitem.h"
|
||||
#include "tileset.h"
|
||||
#include "map.h"
|
||||
|
||||
class TilesetEditorMetatileSelector: public SelectablePixmapItem {
|
||||
Q_OBJECT
|
||||
public:
|
||||
TilesetEditorMetatileSelector(Tileset *primaryTileset, Tileset *secondaryTileset): SelectablePixmapItem(32, 32, 1, 1) {
|
||||
TilesetEditorMetatileSelector(Tileset *primaryTileset, Tileset *secondaryTileset, Map *map): SelectablePixmapItem(32, 32, 1, 1) {
|
||||
this->primaryTileset = primaryTileset;
|
||||
this->secondaryTileset = secondaryTileset;
|
||||
this->numMetatilesWide = 8;
|
||||
this->map = map;
|
||||
setAcceptHoverEvents(true);
|
||||
}
|
||||
Map *map = nullptr;
|
||||
void draw();
|
||||
void select(uint16_t metatileId);
|
||||
void setTilesets(Tileset*, Tileset*);
|
||||
|
||||
Reference in New Issue
Block a user