#ifndef EVENTFACTORY_H #define EVENTFACTORY_H #include #include #include "models/events/qw_abstractevent.h" #include "models/events/qw_changelocationevent.h" #include "models/events/qw_switcheventsevent.h" #include "models/events/qw_deletefrominventoryevent.h" #include "models/events/qw_pickupitemevent.h" #include "models/events/qw_endlevelevent.h" #include "models/events/qw_playsoundevent.h" #include "models/events/qw_changetriggerpropertiesevent.h" #include "models/events/qw_newgameevent.h" #include "models/events/qw_quitgameevent.h" #include "models/events/qw_startdialogueevent.h" #include "models/events/qw_addtriggerevent.h" #include "models/events/qw_removetriggerevent.h" /* QWEventFactory * Creates game events of all kinds! */ class QWLevelBuilder; class QWEventFactory final { private: QWLevelBuilder *builder; public: explicit QWEventFactory(QWLevelBuilder *b); std::shared_ptr createDeleteItEvent(const QJsonObject &json_object); std::shared_ptr createChangeLocEvent(const QJsonObject &json_object); std::shared_ptr createChangeTrProperts(const QJsonObject &json_object); std::shared_ptr createSwitchEventsEvent(const QJsonObject &json_object); std::shared_ptr createPickupItEvent(const QJsonObject &json_object); std::shared_ptr createEndLevelEvent(const QJsonObject &json_object); std::shared_ptr createPlaySoundEvent(const QJsonObject &json_object); std::shared_ptr createNewGameEvent(const QJsonObject &json_object); std::shared_ptr createQuitGameEvent(const QJsonObject &json_object); std::shared_ptr createStartDlgEvent(const QJsonObject &json_object); std::shared_ptr createAddTrEvent(const QJsonObject &json_object); std::shared_ptr createRemoveTrEvent(const QJsonObject &json_object); }; #endif // EVENTFACTORY_H