18#ifndef TRINITYCORE_AREATRIGGER_TEMPLATE_H
19#define TRINITYCORE_AREATRIGGER_TEMPLATE_H
29#define MAX_AREATRIGGER_ENTITY_DATA 8
30#define MAX_AREATRIGGER_SCALE 7
102 explicit Sphere(std::array<float, MAX_AREATRIGGER_ENTITY_DATA>
const& raw)
115 explicit Box(std::array<float, MAX_AREATRIGGER_ENTITY_DATA>
const& raw)
128 explicit Polygon(std::array<float, MAX_AREATRIGGER_ENTITY_DATA>
const& raw)
143 explicit Cylinder(std::array<float, MAX_AREATRIGGER_ENTITY_DATA>
const& raw)
161 explicit Disk(std::array<float, MAX_AREATRIGGER_ENTITY_DATA>
const& raw)
181 explicit BoundedPlane(std::array<float, MAX_AREATRIGGER_ENTITY_DATA>
const& raw)
190 std::variant<Sphere, Box, Polygon, Cylinder, Disk, BoundedPlane>
Data;
193 bool IsBox()
const {
return std::holds_alternative<Box>(
Data); }
196 bool IsDisk()
const {
return std::holds_alternative<Disk>(
Data); }
256 std::variant<std::monostate, SplineInfo, AreaTriggerOrbitInfo>
Movement;
AreaTriggerCreatePropertiesFlag
@ AREATRIGGER_ACTION_ADDAURA
@ AREATRIGGER_ACTION_TELEPORT
@ AREATRIGGER_ACTION_TAVERN
@ AREATRIGGER_ACTION_CAST
AreaTriggerId AreaTriggerCreatePropertiesId
AreaTriggerActionUserTypes
@ AREATRIGGER_ACTION_USER_ENEMY
@ AREATRIGGER_ACTION_USER_ANY
@ AREATRIGGER_ACTION_USER_FRIEND
@ AREATRIGGER_ACTION_USER_CASTER
@ AREATRIGGER_ACTION_USER_MAX
@ AREATRIGGER_ACTION_USER_RAID
@ AREATRIGGER_ACTION_USER_PARTY
#define DEFINE_ENUM_FLAG(enumType)
std::optional< T > Optional
Optional helper class to wrap optional values within.
EnumFlag< AreaTriggerCreatePropertiesFlag > Flags
AreaTriggerCreatePropertiesId Id
std::vector< Position > SplineInfo
std::variant< std::monostate, SplineInfo, AreaTriggerOrbitInfo > Movement
Optional< int32 > SpellForVisuals
AreaTriggerTemplate const * Template
AreaTriggerShapeInfo Shape
AreaTriggerCreateProperties()
~AreaTriggerCreateProperties()
EnumFlag< AreaTriggerActionSetFlag > ActionSetFlags
std::vector< AreaTriggerAction > Actions
EnumFlag< AreaTriggerFlag > Flags
AreaTriggerActionTypes ActionType
AreaTriggerActionUserTypes TargetType
friend bool operator==(AreaTriggerId const &left, AreaTriggerId const &right)=default
int32 ExtraTimeForBlending
Optional< TaggedPosition< Position::XYZ > > Center
Optional< ObjectGuid > PathTarget
TaggedPosition< Position::XY > ExtentsTarget
float GetMaxSearchRadius() const
BoundedPlane(std::array< float, MAX_AREATRIGGER_ENTITY_DATA > const &raw)
TaggedPosition< Position::XY > Extents
float GetMaxSearchRadius() const
Box(std::array< float, MAX_AREATRIGGER_ENTITY_DATA > const &raw)
TaggedPosition< Position::XYZ > ExtentsTarget
TaggedPosition< Position::XYZ > Extents
Cylinder(std::array< float, MAX_AREATRIGGER_ENTITY_DATA > const &raw)
float GetMaxSearchRadius() const
float LocationZOffsetTarget
float LocationZOffsetTarget
Disk(std::array< float, MAX_AREATRIGGER_ENTITY_DATA > const &raw)
float GetMaxSearchRadius() const
Polygon(std::array< float, MAX_AREATRIGGER_ENTITY_DATA > const &raw)
float GetMaxSearchRadius() const
std::vector< TaggedPosition< Position::XY > > PolygonVerticesTarget
std::vector< TaggedPosition< Position::XY > > PolygonVertices
float GetMaxSearchRadius() const
Sphere(std::array< float, MAX_AREATRIGGER_ENTITY_DATA > const &raw)
float GetMaxSearchRadius() const
std::variant< Sphere, Box, Polygon, Cylinder, Disk, BoundedPlane > Data
bool IsBoundedPlane() const
AreaTriggerCreatePropertiesId Id