Skip to content

Commit

Permalink
make sloth proud
Browse files Browse the repository at this point in the history
  • Loading branch information
EmoGarbage404 committed Jun 29, 2024
1 parent 907c551 commit e4863fc
Showing 1 changed file with 5 additions and 10 deletions.
15 changes: 5 additions & 10 deletions Robust.Shared/Physics/Systems/SharedPhysicsSystem.Island.cs
Original file line number Diff line number Diff line change
Expand Up @@ -196,13 +196,7 @@ internal record struct IslandData(
private const int VelocityConstraintsPerThread = 16;
private const int PositionConstraintsPerThread = 16;

[ByRefEvent]
public struct GetLinearDampingOverrideEvent(Entity<PhysicsComponent, TransformComponent> Entity)
{
public float? LinearDampingOverride;
}

public delegate void LinearDampingOverrideHandler(ref GetLinearDampingOverrideEvent ev);
public delegate void LinearDampingOverrideHandler(ref Entity<PhysicsComponent, TransformComponent> entity, ref float? linearDampingOverride);

/// <summary>
/// Invoked to allow content to override linear damping for objects.
Expand Down Expand Up @@ -759,9 +753,10 @@ private void SolveIsland(

angularVelocity += body.InvI * body.Torque * data.FrameTime;

var ev = new GetLinearDampingOverrideEvent((body.Owner, body, xform));
OnGetLinearDampingOverride?.Invoke(ref ev);
var linearDamping = ev.LinearDampingOverride ?? body.LinearDamping;
float? linearDampingOverride = null;
var entity = new Entity<PhysicsComponent, TransformComponent>(body.Owner, body, xform);
OnGetLinearDampingOverride?.Invoke(ref entity, ref linearDampingOverride);
var linearDamping = linearDampingOverride ?? body.LinearDamping;

linearVelocity *= Math.Clamp(1.0f - data.FrameTime * linearDamping, 0.0f, 1.0f);
angularVelocity *= Math.Clamp(1.0f - data.FrameTime * body.AngularDamping, 0.0f, 1.0f);
Expand Down

0 comments on commit e4863fc

Please sign in to comment.