49 lines
2.0 KiB
C++
49 lines
2.0 KiB
C++
#ifndef EVENTFACTORY_H
|
|
#define EVENTFACTORY_H
|
|
|
|
#include <QJsonObject>
|
|
#include <QJsonArray>
|
|
|
|
#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<QWDeleteFromInventoryEvent> createDeleteItEvent(const QJsonObject &json_object);
|
|
std::shared_ptr<QWChangeLocationEvent> createChangeLocEvent(const QJsonObject &json_object);
|
|
std::shared_ptr<QWChangeTriggerPropertiesEvent> createChangeTrProperts(const QJsonObject &json_object);
|
|
std::shared_ptr<QWSwitchEventsEvent> createSwitchEventsEvent(const QJsonObject &json_object);
|
|
std::shared_ptr<QWPickupItemEvent> createPickupItEvent(const QJsonObject &json_object);
|
|
std::shared_ptr<QWEndLevelEvent> createEndLevelEvent(const QJsonObject &json_object);
|
|
std::shared_ptr<QWPlaySoundEvent> createPlaySoundEvent(const QJsonObject &json_object);
|
|
std::shared_ptr<QWNewGameEvent> createNewGameEvent(const QJsonObject &json_object);
|
|
std::shared_ptr<QWQuitGameEvent> createQuitGameEvent(const QJsonObject &json_object);
|
|
std::shared_ptr<QWStartDialogueEvent> createStartDlgEvent(const QJsonObject &json_object);
|
|
std::shared_ptr<QWAddTriggerEvent> createAddTrEvent(const QJsonObject &json_object);
|
|
std::shared_ptr<QWRemoveTriggerEvent> createRemoveTrEvent(const QJsonObject &json_object);
|
|
};
|
|
|
|
#endif // EVENTFACTORY_H
|