Fix pushing (#3574)

Forgot I had commandeered that property

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
This commit is contained in:
metalgearsloth
2021-03-08 12:48:15 +11:00
committed by GitHub
parent beca183ab4
commit 9cbf863e18
4 changed files with 33 additions and 7 deletions

View File

@@ -90,11 +90,14 @@ namespace Content.Server.GameObjects.Components.Movement
/// <inheritdoc /> /// <inheritdoc />
[ViewVariables(VVAccess.ReadWrite)] [ViewVariables(VVAccess.ReadWrite)]
public float PushStrength { get; set; } = 0.4f; public float PushStrength { get; set; } = IMobMoverComponent.PushStrengthDefault;
[ViewVariables(VVAccess.ReadWrite)]
public float WeightlessStrength { get; set; } = IMobMoverComponent.WeightlessStrengthDefault;
/// <inheritdoc /> /// <inheritdoc />
[ViewVariables(VVAccess.ReadWrite)] [ViewVariables(VVAccess.ReadWrite)]
public float GrabRange { get; set; } = 0.2f; public float GrabRange { get; set; } = IMobMoverComponent.GrabRangeDefault;
/// <summary> /// <summary>
/// Is the entity Sprinting (running)? /// Is the entity Sprinting (running)?

View File

@@ -6,6 +6,10 @@ namespace Content.Shared.GameObjects.Components.Movement
{ {
public interface IMobMoverComponent : IComponent public interface IMobMoverComponent : IComponent
{ {
const float GrabRangeDefault = 0.6f;
const float PushStrengthDefault = 600.0f;
const float WeightlessStrengthDefault = 0.4f;
EntityCoordinates LastPosition { get; set; } EntityCoordinates LastPosition { get; set; }
public float StepSoundDistance { get; set; } public float StepSoundDistance { get; set; }
@@ -13,5 +17,7 @@ namespace Content.Shared.GameObjects.Components.Movement
float GrabRange { get; set; } float GrabRange { get; set; }
float PushStrength { get; set; } float PushStrength { get; set; }
float WeightlessStrength { get; set; }
} }
} }

View File

@@ -25,9 +25,12 @@ namespace Content.Shared.GameObjects.Components.Movement
private float _stepSoundDistance; private float _stepSoundDistance;
[DataField("grabRange")] [DataField("grabRange")]
private float _grabRange = 0.2f; private float _grabRange = IMobMoverComponent.GrabRangeDefault;
[DataField("pushStrength")] [DataField("pushStrength")]
private float _pushStrength = 0.4f; private float _pushStrength = IMobMoverComponent.PushStrengthDefault;
[DataField("weightlessStrength")]
private float _weightlessStrength = IMobMoverComponent.WeightlessStrengthDefault;
[ViewVariables(VVAccess.ReadWrite)] [ViewVariables(VVAccess.ReadWrite)]
public EntityCoordinates LastPosition { get; set; } public EntityCoordinates LastPosition { get; set; }
@@ -70,6 +73,18 @@ namespace Content.Shared.GameObjects.Components.Movement
} }
} }
[ViewVariables(VVAccess.ReadWrite)]
public float WeightlessStrength
{
get => _weightlessStrength;
set
{
if (MathHelper.CloseTo(_weightlessStrength, value)) return;
_weightlessStrength = value;
Dirty();
}
}
public override void Initialize() public override void Initialize()
{ {
base.Initialize(); base.Initialize();
@@ -86,7 +101,7 @@ namespace Content.Shared.GameObjects.Components.Movement
public override ComponentState GetComponentState(ICommonSession session) public override ComponentState GetComponentState(ICommonSession session)
{ {
return new PlayerMobMoverComponentState(_grabRange, _pushStrength); return new PlayerMobMoverComponentState(_grabRange, _pushStrength, _weightlessStrength);
} }
public override void HandleComponentState(ComponentState? curState, ComponentState? nextState) public override void HandleComponentState(ComponentState? curState, ComponentState? nextState)
@@ -112,11 +127,13 @@ namespace Content.Shared.GameObjects.Components.Movement
{ {
public float GrabRange; public float GrabRange;
public float PushStrength; public float PushStrength;
public float WeightlessStrength;
public PlayerMobMoverComponentState(float grabRange, float pushStrength) : base(ContentNetIDs.PLAYER_MOB_MOVER) public PlayerMobMoverComponentState(float grabRange, float pushStrength, float weightlessStrength) : base(ContentNetIDs.PLAYER_MOB_MOVER)
{ {
GrabRange = grabRange; GrabRange = grabRange;
PushStrength = pushStrength; PushStrength = pushStrength;
WeightlessStrength = weightlessStrength;
} }
} }
} }

View File

@@ -85,7 +85,7 @@ namespace Content.Shared.Physics.Controllers
if (weightless) if (weightless)
{ {
total *= mobMover.PushStrength; total *= mobMover.WeightlessStrength;
} }
if (total != Vector2.Zero) if (total != Vector2.Zero)