Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
PointMovementGenerator.h
Go to the documentation of this file.
1
/*
2
* This file is part of Project SkyFire https://www.projectskyfire.org.
3
* See LICENSE.md file for Copyright information
4
*/
5
6
#ifndef SKYFIRE_POINTMOVEMENTGENERATOR_H
7
#define SKYFIRE_POINTMOVEMENTGENERATOR_H
8
9
#include "
FollowerReference.h
"
10
#include "
MovementGenerator.h
"
11
12
template
<
class
T>
13
class
PointMovementGenerator
:
public
MovementGeneratorMedium
< T, PointMovementGenerator<T> >
14
{
15
public
:
16
PointMovementGenerator
(
uint32
_id,
float
_x,
float
_y,
float
_z,
bool
_generatePath,
float
_speed = 0.0f) :
id
(_id),
17
i_x
(_x),
i_y
(_y),
i_z
(_z),
speed
(_speed),
m_generatePath
(_generatePath),
i_recalculateSpeed
(false) { }
18
19
void
DoInitialize
(T*);
20
void
DoFinalize
(T*);
21
void
DoReset
(T*);
22
bool
DoUpdate
(T*,
uint32
);
23
24
void
MovementInform
(T*);
25
26
void
unitSpeedChanged
() {
i_recalculateSpeed
=
true
; }
27
28
MovementGeneratorType
GetMovementGeneratorType
() {
return
POINT_MOTION_TYPE
; }
29
30
void
GetDestination
(
float
& x,
float
& y,
float
& z)
const
{ x =
i_x
; y =
i_y
; z =
i_z
; }
31
private
:
32
uint32
id
;
33
float
i_x
,
i_y
,
i_z
;
34
float
speed
;
35
bool
m_generatePath
;
36
bool
i_recalculateSpeed
;
37
};
38
39
class
AssistanceMovementGenerator
:
public
PointMovementGenerator
<Creature>
40
{
41
public
:
42
AssistanceMovementGenerator
(
float
_x,
float
_y,
float
_z) :
43
PointMovementGenerator
<
Creature
>(0, _x, _y, _z, true) { }
44
45
MovementGeneratorType
GetMovementGeneratorType
() {
return
ASSISTANCE_MOTION_TYPE
; }
46
void
Finalize
(
Unit
*);
47
};
48
49
// Does almost nothing - just doesn't allows previous movegen interrupt current effect.
50
class
EffectMovementGenerator
:
public
MovementGenerator
51
{
52
public
:
53
explicit
EffectMovementGenerator
(
uint32
Id) :
m_Id
(Id) { }
54
void
Initialize
(
Unit
*) { }
55
void
Finalize
(
Unit
*);
56
void
Reset
(
Unit
*) { }
57
bool
Update
(
Unit
*,
uint32
);
58
MovementGeneratorType
GetMovementGeneratorType
() {
return
EFFECT_MOTION_TYPE
; }
59
private
:
60
uint32
m_Id
;
61
};
62
63
#endif
uint32
std::uint32_t uint32
Definition
Define.h:77
FollowerReference.h
MovementGeneratorType
MovementGeneratorType
Definition
MotionMaster.h:23
ASSISTANCE_MOTION_TYPE
@ ASSISTANCE_MOTION_TYPE
Definition
MotionMaster.h:36
POINT_MOTION_TYPE
@ POINT_MOTION_TYPE
Definition
MotionMaster.h:33
EFFECT_MOTION_TYPE
@ EFFECT_MOTION_TYPE
Definition
MotionMaster.h:41
MovementGenerator.h
AssistanceMovementGenerator::GetMovementGeneratorType
MovementGeneratorType GetMovementGeneratorType()
Definition
PointMovementGenerator.h:45
AssistanceMovementGenerator::AssistanceMovementGenerator
AssistanceMovementGenerator(float _x, float _y, float _z)
Definition
PointMovementGenerator.h:42
AssistanceMovementGenerator::Finalize
void Finalize(Unit *)
Definition
PointMovementGenerator.cpp:109
Creature
Definition
Creature.h:427
EffectMovementGenerator::Update
bool Update(Unit *, uint32)
Definition
PointMovementGenerator.cpp:117
EffectMovementGenerator::EffectMovementGenerator
EffectMovementGenerator(uint32 Id)
Definition
PointMovementGenerator.h:53
EffectMovementGenerator::m_Id
uint32 m_Id
Definition
PointMovementGenerator.h:60
EffectMovementGenerator::Reset
void Reset(Unit *)
Definition
PointMovementGenerator.h:56
EffectMovementGenerator::GetMovementGeneratorType
MovementGeneratorType GetMovementGeneratorType()
Definition
PointMovementGenerator.h:58
EffectMovementGenerator::Finalize
void Finalize(Unit *)
Definition
PointMovementGenerator.cpp:122
EffectMovementGenerator::Initialize
void Initialize(Unit *)
Definition
PointMovementGenerator.h:54
MovementGenerator
Definition
MovementGenerator.h:18
MovementGeneratorMedium
Definition
MovementGenerator.h:39
PointMovementGenerator::unitSpeedChanged
void unitSpeedChanged()
Definition
PointMovementGenerator.h:26
PointMovementGenerator::GetDestination
void GetDestination(float &x, float &y, float &z) const
Definition
PointMovementGenerator.h:30
PointMovementGenerator::PointMovementGenerator
PointMovementGenerator(uint32 _id, float _x, float _y, float _z, bool _generatePath, float _speed=0.0f)
Definition
PointMovementGenerator.h:16
PointMovementGenerator::i_z
float i_z
Definition
PointMovementGenerator.h:33
PointMovementGenerator::DoUpdate
bool DoUpdate(T *, uint32)
Definition
PointMovementGenerator.cpp:41
PointMovementGenerator::i_recalculateSpeed
bool i_recalculateSpeed
Definition
PointMovementGenerator.h:36
PointMovementGenerator::GetMovementGeneratorType
MovementGeneratorType GetMovementGeneratorType()
Definition
PointMovementGenerator.h:28
PointMovementGenerator::m_generatePath
bool m_generatePath
Definition
PointMovementGenerator.h:35
PointMovementGenerator::MovementInform
void MovementInform(T *)
Definition
PointMovementGenerator.cpp:92
PointMovementGenerator::DoReset
void DoReset(T *)
Definition
PointMovementGenerator.cpp:83
PointMovementGenerator::speed
float speed
Definition
PointMovementGenerator.h:34
PointMovementGenerator::i_x
float i_x
Definition
PointMovementGenerator.h:33
PointMovementGenerator::id
uint32 id
Definition
PointMovementGenerator.h:32
PointMovementGenerator::DoFinalize
void DoFinalize(T *)
Definition
PointMovementGenerator.cpp:73
PointMovementGenerator::i_y
float i_y
Definition
PointMovementGenerator.h:33
PointMovementGenerator::DoInitialize
void DoInitialize(T *)
Definition
PointMovementGenerator.cpp:18
Unit
Definition
Unit.h:1367
src
server
game
Movement
MovementGenerators
PointMovementGenerator.h
Generated on
for Project SkyFire Core by
1.17.0