Files
wwdpublic/Content.Shared/Movement/Systems/SharedMoverController.CVars.cs
sleepyyapril 448f613694 Fix errors
(cherry picked from commit 7df15b2b4cdfe41eff0fdbef3a05cc68252ebf38)
2025-01-15 18:22:27 +03:00

44 lines
1.5 KiB
C#

using Content.Shared.CCVar;
using Content.Shared.Mind.Components;
using Content.Shared.Movement.Components;
using Content.Shared.Movement.Events;
using Robust.Shared.Configuration;
namespace Content.Shared.Movement.Systems;
public abstract partial class SharedMoverController
{
[Dependency] private readonly INetConfigurationManager _netConfig = default!;
private void InitializeCVars()
{
SubscribeLocalEvent<InputMoverComponent, MindAddedMessage>(OnMindAdded);
SubscribeLocalEvent<InputMoverComponent, MindRemovedMessage>(OnMindRemoved);
SubscribeNetworkEvent<UpdateInputCVarsMessage>(OnUpdateCVars);
}
private void OnMindAdded(Entity<InputMoverComponent> ent, ref MindAddedMessage args)
{
if (args.Mind.Comp.Session?.Channel is not { } channel)
return;
ent.Comp.DefaultSprinting = _netConfig.GetClientCVar(channel, CCVars.DefaultWalk);
WalkingAlert(ent);
}
private void OnMindRemoved(Entity<InputMoverComponent> ent, ref MindRemovedMessage args)
{
// If it's an ai-controlled mob, we probably want them sprinting by default.
ent.Comp.DefaultSprinting = true;
}
private void OnUpdateCVars(UpdateInputCVarsMessage msg, EntitySessionEventArgs args)
{
if (args.SenderSession.AttachedEntity is not { } uid || !TryComp<InputMoverComponent>(uid, out var mover))
return;
mover.DefaultSprinting = _netConfig.GetClientCVar(args.SenderSession.Channel, CCVars.DefaultWalk);
WalkingAlert((uid, mover));
}
}