#ifndef TRIGGER_H #define TRIGGER_H #include #include #include "events/qw_abstractevent.h" /* QWTrigger * Represents an interactive in-game element. */ class QWStartDialogueEvent; class QWTrigger : public QGraphicsPixmapItem, public QWTagHolder { private: QList> list_events; std::shared_ptr examination_event; QString pix_path; public: explicit QWTrigger(const QString &path); void clearEvents() noexcept; void setEvents(std::initializer_list> &&evs) noexcept; void setEvents(const QList> &evs) noexcept; void addEvents(std::initializer_list> &&evs) noexcept; void addEvents(const std::shared_ptr &ev) noexcept; QList> events() const; void setCover(qreal x, qreal y, const QString &path) noexcept; void setCover(const QString &path) noexcept; inline QString path() const noexcept; void setExaminationDialogueEvent(const std::shared_ptr &dialogue_event); void startExaminationDialogue() const; void activate() const; //////////////////////// void writeToJson(QJsonObject &trigger_data) override; }; #endif // TRIGGER_H