(7749cbf6a) Server sends the current facing direction of a character to clients instead of the TargetDirection. Fixes monsters flipping around constantly client-side. + Don't allow clients to make characters flip in EnemyAIController (controlled by the server)

This commit is contained in:
Joonas Rikkonen
2019-04-03 16:28:10 +03:00
parent 311a34da80
commit 6b38ba8434
4 changed files with 29 additions and 3 deletions
@@ -283,7 +283,9 @@ namespace Barotrauma
Character.AnimController.IgnorePlatforms = ignorePlatforms;
if (Character.AnimController is HumanoidAnimController)
//clients get the facing direction from the server
if (Character.AnimController is HumanoidAnimController &&
(GameMain.NetworkMember == null || GameMain.NetworkMember.IsServer || Character.Controlled == Character))
{
if (Math.Abs(Character.AnimController.movement.X) > 0.1f && !Character.AnimController.InWater)
{
@@ -528,7 +530,8 @@ namespace Barotrauma
}
}
if (Math.Abs(Character.AnimController.movement.X) > 0.1f && !Character.AnimController.InWater)
if (Math.Abs(Character.AnimController.movement.X) > 0.1f && !Character.AnimController.InWater &&
(GameMain.NetworkMember == null || GameMain.NetworkMember.IsServer || Character.Controlled == Character))
{
Character.AnimController.TargetDir = Character.WorldPosition.X < attackWorldPos.X ? Direction.Right : Direction.Left;
}
@@ -26,6 +26,10 @@ namespace Barotrauma.Items.Components
private float blinkTimer;
private bool itemLoaded;
private float blinkTimer;
public PhysicsBody ParentBody;
[Editable(MinValueFloat = 0.0f, MaxValueFloat = 2048.0f), Serialize(100.0f, true)]