porymap/include/ui/collisionpixmapitem.h

54 lines
1.9 KiB
C
Raw Normal View History

2018-09-27 00:30:05 +01:00
#ifndef COLLISIONPIXMAPITEM_H
#define COLLISIONPIXMAPITEM_H
#include "metatileselector.h"
2023-02-28 16:21:08 +00:00
//#include "stampselector.h"
2018-09-27 00:30:05 +01:00
#include "movementpermissionsselector.h"
#include "mappixmapitem.h"
#include "map.h"
#include "settings.h"
class CollisionPixmapItem : public MapPixmapItem {
Q_OBJECT
public:
2023-02-28 16:21:08 +00:00
CollisionPixmapItem(Map *map,
MovementPermissionsSelector *movementPermissionsSelector,
MetatileSelector *metatileSelector,
StampSelector *stampSelector,
Settings *settings,
qreal *opacity,
std::function<PaintType(void)> getActivePaintType)
: MapPixmapItem(map, metatileSelector, stampSelector, settings, getActivePaintType){
2018-09-27 00:30:05 +01:00
this->movementPermissionsSelector = movementPermissionsSelector;
this->opacity = opacity;
map->setCollisionItem(this);
2018-09-27 00:30:05 +01:00
}
MovementPermissionsSelector *movementPermissionsSelector;
qreal *opacity;
2018-09-27 00:30:05 +01:00
void updateMovementPermissionSelection(QGraphicsSceneMouseEvent *event);
virtual void paint(QGraphicsSceneMouseEvent*);
virtual void floodFill(QGraphicsSceneMouseEvent*);
virtual void magicFill(QGraphicsSceneMouseEvent*);
2018-09-27 00:30:05 +01:00
virtual void pick(QGraphicsSceneMouseEvent*);
void draw(bool ignoreCache = false);
2018-09-27 00:30:05 +01:00
private:
unsigned actionId_ = 0;
QPoint previousPos;
2018-09-27 00:30:05 +01:00
signals:
void mouseEvent(QGraphicsSceneMouseEvent *, CollisionPixmapItem *);
void hoveredMapMovementPermissionChanged(int, int);
void hoveredMapMovementPermissionCleared();
protected:
void hoverMoveEvent(QGraphicsSceneHoverEvent*);
void hoverEnterEvent(QGraphicsSceneHoverEvent*);
2018-09-27 00:30:05 +01:00
void hoverLeaveEvent(QGraphicsSceneHoverEvent*);
void mousePressEvent(QGraphicsSceneMouseEvent*);
void mouseMoveEvent(QGraphicsSceneMouseEvent*);
void mouseReleaseEvent(QGraphicsSceneMouseEvent*);
};
#endif // COLLISIONPIXMAPITEM_H