Tweak shuttle movement (#6468)
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
using System.Collections.Generic;
|
||||
using Content.Server.Shuttles.Components;
|
||||
using Content.Shared.CCVar;
|
||||
using JetBrains.Annotations;
|
||||
using Robust.Shared.Configuration;
|
||||
using Robust.Shared.GameObjects;
|
||||
using Robust.Shared.IoC;
|
||||
using Robust.Shared.Physics;
|
||||
@@ -12,11 +14,14 @@ namespace Content.Server.Shuttles.EntitySystems
|
||||
{
|
||||
private const float TileMassMultiplier = 4f;
|
||||
|
||||
public float ShuttleIdleLinearDamping = 0.1f;
|
||||
public float ShuttleIdleAngularDamping = 0.2f;
|
||||
public float ShuttleMaxLinearSpeed;
|
||||
|
||||
public float ShuttleMovingLinearDamping = 0.05f;
|
||||
public float ShuttleMovingAngularDamping = 0.05f;
|
||||
public float ShuttleMaxAngularMomentum;
|
||||
public float ShuttleMaxAngularAcc;
|
||||
public float ShuttleMaxAngularSpeed;
|
||||
|
||||
public float ShuttleIdleLinearDamping;
|
||||
public float ShuttleIdleAngularDamping;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
@@ -27,6 +32,32 @@ namespace Content.Server.Shuttles.EntitySystems
|
||||
|
||||
SubscribeLocalEvent<GridInitializeEvent>(OnGridInit);
|
||||
SubscribeLocalEvent<GridFixtureChangeEvent>(OnGridFixtureChange);
|
||||
|
||||
var configManager = IoCManager.Resolve<IConfigurationManager>();
|
||||
configManager.OnValueChanged(CCVars.ShuttleMaxLinearSpeed, SetShuttleMaxLinearSpeed, true);
|
||||
configManager.OnValueChanged(CCVars.ShuttleMaxAngularSpeed, SetShuttleMaxAngularSpeed, true);
|
||||
configManager.OnValueChanged(CCVars.ShuttleIdleLinearDamping, SetShuttleIdleLinearDamping, true);
|
||||
configManager.OnValueChanged(CCVars.ShuttleIdleAngularDamping, SetShuttleIdleAngularDamping, true);
|
||||
configManager.OnValueChanged(CCVars.ShuttleMaxAngularAcc, SetShuttleMaxAngularAcc, true);
|
||||
configManager.OnValueChanged(CCVars.ShuttleMaxAngularMomentum, SetShuttleMaxAngularMomentum, true);
|
||||
}
|
||||
|
||||
private void SetShuttleMaxLinearSpeed(float value) => ShuttleMaxLinearSpeed = value;
|
||||
private void SetShuttleMaxAngularSpeed(float value) => ShuttleMaxAngularSpeed = value;
|
||||
private void SetShuttleMaxAngularAcc(float value) => ShuttleMaxAngularAcc = value;
|
||||
private void SetShuttleMaxAngularMomentum(float value) => ShuttleMaxAngularMomentum = value;
|
||||
private void SetShuttleIdleLinearDamping(float value) => ShuttleIdleLinearDamping = value;
|
||||
private void SetShuttleIdleAngularDamping(float value) => ShuttleIdleAngularDamping = value;
|
||||
|
||||
public override void Shutdown()
|
||||
{
|
||||
base.Shutdown();
|
||||
var configManager = IoCManager.Resolve<IConfigurationManager>();
|
||||
configManager.UnsubValueChanged(CCVars.ShuttleMaxLinearSpeed, SetShuttleMaxLinearSpeed);
|
||||
configManager.UnsubValueChanged(CCVars.ShuttleMaxAngularSpeed, SetShuttleMaxAngularSpeed);
|
||||
configManager.UnsubValueChanged(CCVars.ShuttleIdleLinearDamping, SetShuttleIdleLinearDamping);
|
||||
configManager.UnsubValueChanged(CCVars.ShuttleIdleAngularDamping, SetShuttleIdleAngularDamping);
|
||||
configManager.UnsubValueChanged(CCVars.ShuttleMaxAngularMomentum, SetShuttleMaxAngularMomentum);
|
||||
}
|
||||
|
||||
private void OnShuttleAdd(EntityUid uid, ShuttleComponent component, ComponentAdd args)
|
||||
|
||||
Reference in New Issue
Block a user