mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2025-09-05 23:08:31 +00:00
Split out LUTriggers into it's own component (#986)
* Split out LUTriggers into it's own component * some cleanup * fix debug log * use emplace and tryParse * slight refactor to make the work on startup rather than at runtime Also TODO's for getting targets via all the possible methods * address feedback
This commit is contained in:
34
dGame/dComponents/TriggerComponent.h
Normal file
34
dGame/dComponents/TriggerComponent.h
Normal file
@@ -0,0 +1,34 @@
|
||||
#ifndef __TRIGGERCOMPONENT__H__
|
||||
#define __TRIGGERCOMPONENT__H__
|
||||
|
||||
#include "Component.h"
|
||||
|
||||
namespace LUTriggers {
|
||||
struct Trigger;
|
||||
struct Command;
|
||||
};
|
||||
|
||||
class TriggerComponent : public Component {
|
||||
public:
|
||||
static const uint32_t ComponentType = COMPONENT_TYPE_TRIGGER;
|
||||
|
||||
explicit TriggerComponent(Entity* parent, const std::string triggerInfo);
|
||||
|
||||
void TriggerEvent(eTriggerEventType event, Entity* optionalTarget = nullptr);
|
||||
LUTriggers::Trigger* GetTrigger() const { return m_Trigger; }
|
||||
|
||||
private:
|
||||
|
||||
void HandleTriggerCommand(LUTriggers::Command* command, Entity* optionalTarget);
|
||||
std::vector<std::string> ParseArgs(std::string args);
|
||||
std::vector<Entity*> GatherTargets(LUTriggers::Command* command, Entity* optionalTarget);
|
||||
|
||||
// Trigger Event Handlers
|
||||
void HandleSetPhysicsVolume(Entity* targetEntity, std::vector<std::string> argArray, std::string target);
|
||||
void HandleUpdateMission(Entity* targetEntity, std::vector<std::string> argArray);
|
||||
void HandleFireEvent(Entity* targetEntity, std::string args);
|
||||
void HandleCastSkill(Entity* targetEntity, uint32_t skillID);
|
||||
|
||||
LUTriggers::Trigger* m_Trigger;
|
||||
};
|
||||
#endif //!__TRIGGERCOMPONENT__H__
|
Reference in New Issue
Block a user