mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-16 07:30:42 +01:00
Core/Entities: Basic AreaTrigger System (#18035)
* Implemented AreaTrigger Templates * Implemented AreaTrigger Splines * Implemented SPELL_AURA_AREA_TRIGGER * and many more
This commit is contained in:
@@ -28,6 +28,7 @@
|
||||
#include "Weather.h"
|
||||
|
||||
class AccountMgr;
|
||||
class AreaTrigger;
|
||||
class AuctionHouseObject;
|
||||
class Aura;
|
||||
class AuraScript;
|
||||
@@ -836,6 +837,38 @@ class TC_GAME_API GroupScript : public ScriptObject
|
||||
virtual void OnDisband(Group* /*group*/) { }
|
||||
};
|
||||
|
||||
class TC_GAME_API AreaTriggerEntityScript : public ScriptObject
|
||||
{
|
||||
protected:
|
||||
|
||||
AreaTriggerEntityScript(const char* name);
|
||||
|
||||
public:
|
||||
// Called when the AreaTrigger has just been initialized, just before added to map
|
||||
virtual void OnInitialize(AreaTrigger* /*areaTrigger*/) { }
|
||||
|
||||
// Called when the AreaTrigger has just been created
|
||||
virtual void OnCreate(AreaTrigger* /*areaTrigger*/) { }
|
||||
|
||||
// Called on each AreaTrigger update
|
||||
virtual void OnUpdate(AreaTrigger* /*areaTrigger*/, uint32 /*diff*/) { }
|
||||
|
||||
// Called when the AreaTrigger reach splineIndex
|
||||
virtual void OnSplineIndexReached(AreaTrigger* /*areaTrigger*/, int /*splineIndex*/) { }
|
||||
|
||||
// Called when the AreaTrigger reach its destination
|
||||
virtual void OnDestinationReached(AreaTrigger* /*areaTrigger*/) { }
|
||||
|
||||
// Called when an unit enter the AreaTrigger
|
||||
virtual void OnUnitEnter(AreaTrigger* /*areaTrigger*/, Unit* /*unit*/) { }
|
||||
|
||||
// Called when an unit exit the AreaTrigger, or when the AreaTrigger is removed
|
||||
virtual void OnUnitExit(AreaTrigger* /*areaTrigger*/, Unit* /*unit*/) { }
|
||||
|
||||
// Called when the AreaTrigger is removed
|
||||
virtual void OnRemove(AreaTrigger* /*areaTrigger*/) { }
|
||||
};
|
||||
|
||||
class TC_GAME_API SceneScript : public ScriptObject
|
||||
{
|
||||
protected:
|
||||
@@ -1133,6 +1166,17 @@ class TC_GAME_API ScriptMgr
|
||||
void ModifyMeleeDamage(Unit* target, Unit* attacker, uint32& damage);
|
||||
void ModifySpellDamageTaken(Unit* target, Unit* attacker, int32& damage);
|
||||
|
||||
public: /* AreaTriggerEntityScript */
|
||||
|
||||
void OnAreaTriggerEntityInitialize(AreaTrigger* areaTrigger);
|
||||
void OnAreaTriggerEntityCreate(AreaTrigger* areaTrigger);
|
||||
void OnAreaTriggerEntityUpdate(AreaTrigger* areaTrigger, uint32 diff);
|
||||
void OnAreaTriggerEntitySplineIndexReached(AreaTrigger* areaTrigger, int splineIndex);
|
||||
void OnAreaTriggerEntityDestinationReached(AreaTrigger* areaTrigger);
|
||||
void OnAreaTriggerEntityUnitEnter(AreaTrigger* areaTrigger, Unit* unit);
|
||||
void OnAreaTriggerEntityUnitExit(AreaTrigger* areaTrigger, Unit* unit);
|
||||
void OnAreaTriggerEntityRemove(AreaTrigger* areaTrigger);
|
||||
|
||||
public: /* SceneScript */
|
||||
void OnSceneStart(Player* player, uint32 sceneInstanceID, SceneTemplate const* sceneTemplate);
|
||||
void OnSceneTrigger(Player* player, uint32 sceneInstanceID, SceneTemplate const* sceneTemplate, std::string const& triggerName);
|
||||
|
||||
Reference in New Issue
Block a user