18#ifndef TRINITY_WAYPOINTMOVEMENTGENERATOR_H
19#define TRINITY_WAYPOINTMOVEMENTGENERATOR_H
35 public PathMovementBase<Creature, std::variant<WaypointPath const*, std::unique_ptr<WaypointPath>>>
41 Optional<bool> followPathBackwardsFromEndToStart = {},
bool generatePath =
true);
44 Optional<std::pair<Milliseconds, Milliseconds>> waitTimeRangeAtPathEnd,
Optional<float> wanderDistanceAtPathEnds,
45 Optional<bool> followPathBackwardsFromEndToStart,
bool generatePath);
51 void Pause(
uint32 timer)
override;
52 void Resume(
uint32 overrideTimer)
override;
53 bool GetResetPosition(
Unit*,
float& x,
float& y,
float& z)
override;
59 void DoFinalize(
Creature*,
bool,
bool);
68 void StartMove(
Creature*,
bool relaunch =
false);
69 bool ComputeNextNode();
72 _nextMoveTime.Update(diff);
73 if (_nextMoveTime.Passed())
75 _nextMoveTime.Reset(0);
81 bool IsFollowingPathBackwardsFromEndToStart()
const;
std::string GetDebugInfo()
MovementWalkRunSpeedSelectionMode
@ MOVEMENTGENERATOR_FLAG_SPEED_UPDATE_PENDING
std::optional< T > Optional
Optional helper class to wrap optional values within.
MovementWalkRunSpeedSelectionMode _speedSelectionMode
Optional< bool > _followPathBackwardsFromEndToStart
TimeTracker _nextMoveTime
WaypointPath const * GetPath() const
~WaypointMovementGenerator()
bool UpdateTimer(uint32 diff)
Optional< float > _wanderDistanceAtPathEnds
Optional< std::pair< Milliseconds, Milliseconds > > _waitTimeRangeAtPathEnd
void UnitSpeedChanged() override
Optional< TimeTracker > _duration