Core/Movement: Allow passing tier transition id (db2 id) to land/takeoff movement

Port From (https://github.com/TrinityCore/TrinityCore/commit/8bf3bc071ba0de9405f9e573541251d5fcd63cf3)
This commit is contained in:
hondacrx
2023-04-05 08:13:02 -04:00
parent 8178903833
commit 4b4b49dacf
4 changed files with 46 additions and 15 deletions
+28 -4
View File
@@ -632,12 +632,24 @@ namespace Game.Movement
}
}
public void MoveLand(uint id, Position pos, float? velocity = null)
public void MoveLand(uint id, Position pos, uint? tierTransitionId = null, float? velocity = null, MovementWalkRunSpeedSelectionMode speedSelectionMode = MovementWalkRunSpeedSelectionMode.Default)
{
var initializer = (MoveSplineInit init) =>
{
init.MoveTo(pos, false);
init.SetAnimation(AnimTier.Ground);
init.SetAnimation(AnimTier.Ground, tierTransitionId.GetValueOrDefault(0));
switch (speedSelectionMode)
{
case MovementWalkRunSpeedSelectionMode.ForceRun:
init.SetWalk(false);
break;
case MovementWalkRunSpeedSelectionMode.ForceWalk:
init.SetWalk(true);
break;
case MovementWalkRunSpeedSelectionMode.Default:
default:
break;
}
if (velocity.HasValue)
init.SetVelocity(velocity.Value);
};
@@ -645,12 +657,24 @@ namespace Game.Movement
Add(new GenericMovementGenerator(initializer, MovementGeneratorType.Effect, id));
}
public void MoveTakeoff(uint id, Position pos, float? velocity = null)
public void MoveTakeoff(uint id, Position pos, uint? tierTransitionId = null, float? velocity = null, MovementWalkRunSpeedSelectionMode speedSelectionMode = MovementWalkRunSpeedSelectionMode.Default)
{
var initializer = (MoveSplineInit init) =>
{
init.MoveTo(pos, false);
init.SetAnimation(AnimTier.Hover);
init.SetAnimation(AnimTier.Hover, tierTransitionId.GetValueOrDefault(0));
switch (speedSelectionMode)
{
case MovementWalkRunSpeedSelectionMode.ForceRun:
init.SetWalk(false);
break;
case MovementWalkRunSpeedSelectionMode.ForceWalk:
init.SetWalk(true);
break;
case MovementWalkRunSpeedSelectionMode.Default:
default:
break;
}
if (velocity.HasValue)
init.SetVelocity(velocity.Value);
};