diff --git a/Source/Game/Movement/Generators/PathGenerator.cs b/Source/Game/Movement/Generators/PathGenerator.cs index 7ad8587cf..80314c7bf 100644 --- a/Source/Game/Movement/Generators/PathGenerator.cs +++ b/Source/Game/Movement/Generators/PathGenerator.cs @@ -893,23 +893,17 @@ namespace Game.Movement NavTerrainFlag GetNavTerrain(float x, float y, float z) { - LiquidData data; - ZLiquidStatus liquidStatus = _source.GetMap().GetLiquidStatus(_source.GetPhaseShift(), x, y, z, LiquidHeaderTypeFlags.AllLiquids, out data, _source.GetCollisionHeight()); + ZLiquidStatus liquidStatus = _source.GetMap().GetLiquidStatus(_source.GetPhaseShift(), x, y, z, LiquidHeaderTypeFlags.AllLiquids, out LiquidData data, _source.GetCollisionHeight()); if (liquidStatus == ZLiquidStatus.NoWater) return NavTerrainFlag.Ground; - data.type_flags &= ~LiquidHeaderTypeFlags.DarkWater; - switch (data.type_flags) - { - case LiquidHeaderTypeFlags.Water: - case LiquidHeaderTypeFlags.Ocean: - return NavTerrainFlag.Water; - case LiquidHeaderTypeFlags.Magma: - case LiquidHeaderTypeFlags.Slime: - return NavTerrainFlag.MagmaSlime; - default: - return NavTerrainFlag.Ground; - } + if (data.type_flags.HasFlag(LiquidHeaderTypeFlags.Water | LiquidHeaderTypeFlags.Ocean)) + return NavTerrainFlag.Water; + + if (data.type_flags.HasFlag(LiquidHeaderTypeFlags.Magma | LiquidHeaderTypeFlags.Slime)) + return NavTerrainFlag.MagmaSlime; + + return NavTerrainFlag.Ground; } bool InRange(Vector3 p1, Vector3 p2, float r, float h)