Copy collision properties when selecting metatiles from the map area

This commit is contained in:
Marcus Huderle
2020-02-02 16:25:37 -06:00
parent 7a84ca872c
commit cfaf23aa3e
3 changed files with 90 additions and 12 deletions

View File

@@ -1,8 +1,10 @@
#ifndef METATILESELECTOR_H
#define METATILESELECTOR_H
#include <QPair>
#include "selectablepixmapitem.h"
#include "tileset.h"
#include "maplayout.h"
class MetatileSelector: public SelectablePixmapItem {
Q_OBJECT
@@ -13,15 +15,18 @@ public:
this->primaryTileset = primaryTileset;
this->secondaryTileset = secondaryTileset;
this->selectedMetatiles = new QList<uint16_t>();
this->selectedCollisions = new QList<QPair<uint16_t, uint16_t>>();
this->externalSelectedMetatiles = new QList<uint16_t>();
setAcceptHoverEvents(true);
}
QPoint getSelectionDimensions();
void draw();
void select(uint16_t metatile);
void selectFromMap(uint16_t metatileId, uint16_t collision, uint16_t elevation);
void setTilesets(Tileset*, Tileset*);
QList<uint16_t>* getSelectedMetatiles();
void setExternalSelection(int, int, QList<uint16_t>*);
QList<QPair<uint16_t, uint16_t>>* getSelectedCollisions();
void setExternalSelection(int, int, QList<uint16_t>, QList<QPair<uint16_t, uint16_t>>);
QPoint getMetatileIdCoordsOnWidget(uint16_t);
protected:
void mousePressEvent(QGraphicsSceneMouseEvent*);
@@ -35,6 +40,7 @@ private:
Tileset *primaryTileset;
Tileset *secondaryTileset;
QList<uint16_t> *selectedMetatiles;
QList<QPair<uint16_t, uint16_t>> *selectedCollisions;
int externalSelectionWidth;
int externalSelectionHeight;
QList<uint16_t> *externalSelectedMetatiles;