You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

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