From 4f1f075e6f4b00264ec189007408103dfe016963 Mon Sep 17 00:00:00 2001 From: spess-empyrean Date: Wed, 15 Jan 2025 12:32:28 -0600 Subject: [PATCH] Fixes space carp mob AI not working with tile movement (now it just ignores it since it's technically 'in the air') --- Content.Server/NPC/Systems/NPCSteeringSystem.cs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/Content.Server/NPC/Systems/NPCSteeringSystem.cs b/Content.Server/NPC/Systems/NPCSteeringSystem.cs index b4df8223e0a..353ce08fb63 100644 --- a/Content.Server/NPC/Systems/NPCSteeringSystem.cs +++ b/Content.Server/NPC/Systems/NPCSteeringSystem.cs @@ -10,6 +10,7 @@ using Content.Shared.CCVar; using Content.Shared.Climbing.Systems; using Content.Shared.CombatMode; +using Content.Shared.Gravity; using Content.Shared.Interaction; using Content.Shared.Movement.Components; using Content.Shared.Movement.Systems; @@ -65,8 +66,9 @@ public sealed partial class NPCSteeringSystem : SharedNPCSteeringSystem [Dependency] private readonly SharedTransformSystem _transform = default!; [Dependency] private readonly SharedCombatModeSystem _combat = default!; [Dependency] private readonly SharedMapSystem _map = default!; - [Dependency] protected readonly IGameTiming Timing = default!; - [Dependency] protected readonly SharedPhysicsSystem PhysicsSystem = default!; + [Dependency] private readonly IGameTiming Timing = default!; + [Dependency] private readonly SharedPhysicsSystem PhysicsSystem = default!; + [Dependency] private readonly SharedGravitySystem _gravity = default!; private EntityQuery _fixturesQuery; private EntityQuery _modifierQuery; @@ -401,7 +403,10 @@ private void Steer( steering.LastSteerDirection = resultDirection; DebugTools.Assert(!float.IsNaN(resultDirection.X)); - if (_tileMovementQuery.TryGetComponent(uid, out var tileMovement)) + + if (!_gravity.IsWeightless(uid, body, xform) && + body.BodyStatus == BodyStatus.OnGround && + _tileMovementQuery.TryGetComponent(uid, out var tileMovement)) { SetTileMovementDirection(xform, tileMovement, resultDirection); }