CatStation/Content.Client/Movement/Systems/MobCollisionSystem.cs
Pieter-Jan Briers 5168b5f3d4
IoC source gen compatibility (#43863)
* IoC source gen compatibility

Can be merged before or after https://github.com/space-wizards/RobustToolbox/pull/6549 doesn't really matter.

* Missed a spot
2026-05-09 03:29:58 +00:00

42 lines
1.2 KiB
C#

using System.Numerics;
using Content.Shared.CCVar;
using Content.Shared.Movement.Components;
using Content.Shared.Movement.Systems;
using Robust.Client.Player;
using Robust.Shared.Physics.Components;
using Robust.Shared.Timing;
namespace Content.Client.Movement.Systems;
public sealed partial class MobCollisionSystem : SharedMobCollisionSystem
{
[Dependency] private IGameTiming _timing = default!;
[Dependency] private IPlayerManager _player = default!;
public override void Update(float frameTime)
{
if (!CfgManager.GetCVar(CCVars.MovementMobPushing))
return;
if (_timing.IsFirstTimePredicted)
{
var player = _player.LocalEntity;
if (MobQuery.TryComp(player, out var comp) && PhysicsQuery.TryComp(player, out var physics))
{
HandleCollisions((player.Value, comp, physics), frameTime);
}
}
base.Update(frameTime);
}
protected override void RaiseCollisionEvent(EntityUid uid, Vector2 direction, float speedMod)
{
RaisePredictiveEvent(new MobCollisionMessage()
{
Direction = direction,
SpeedModifier = speedMod,
});
}
}