Update trivial components to use auto comp states (#20539)

This commit is contained in:
DrSmugleaf
2023-09-28 16:20:29 -07:00
committed by GitHub
parent 14cfe44ece
commit a44fa86b68
158 changed files with 806 additions and 2866 deletions

View File

@@ -1,6 +1,5 @@
using Content.Shared.Gravity;
using Content.Shared.StepTrigger.Components;
using Robust.Shared.GameStates;
using Robust.Shared.Map.Components;
using Robust.Shared.Physics;
using Robust.Shared.Physics.Components;
@@ -16,8 +15,7 @@ public sealed class StepTriggerSystem : EntitySystem
public override void Initialize()
{
UpdatesOutsidePrediction = true;
SubscribeLocalEvent<StepTriggerComponent, ComponentGetState>(TriggerGetState);
SubscribeLocalEvent<StepTriggerComponent, ComponentHandleState>(TriggerHandleState);
SubscribeLocalEvent<StepTriggerComponent, AfterAutoHandleStateEvent>(TriggerHandleState);
SubscribeLocalEvent<StepTriggerComponent, StartCollideEvent>(OnStartCollide);
SubscribeLocalEvent<StepTriggerComponent, EndCollideEvent>(OnEndCollide);
@@ -103,7 +101,7 @@ public sealed class StepTriggerSystem : EntitySystem
// this is hard to explain
var intersect = Box2.Area(otherAabb.Intersect(ourAabb));
var ratio = Math.Max(intersect / Box2.Area(otherAabb), intersect / Box2.Area(ourAabb));
if (otherPhysics.LinearVelocity.Length() < component.RequiredTriggerSpeed
if (otherPhysics.LinearVelocity.Length() < component.RequiredTriggeredSpeed
|| component.CurrentlySteppedOn.Contains(otherUid)
|| ratio < component.IntersectRatio
|| !CanTrigger(uid, otherUid, component))
@@ -171,24 +169,8 @@ public sealed class StepTriggerSystem : EntitySystem
}
}
private void TriggerHandleState(EntityUid uid, StepTriggerComponent component, ref ComponentHandleState args)
private void TriggerHandleState(EntityUid uid, StepTriggerComponent component, ref AfterAutoHandleStateEvent args)
{
if (args.Current is not StepTriggerComponentState state)
return;
component.RequiredTriggerSpeed = state.RequiredTriggerSpeed;
component.IntersectRatio = state.IntersectRatio;
component.Active = state.Active;
var stepped = EnsureEntitySet<StepTriggerComponent>(state.CurrentlySteppedOn, uid);
var colliding = EnsureEntitySet<StepTriggerComponent>(state.CurrentlySteppedOn, uid);
component.CurrentlySteppedOn.Clear();
component.CurrentlySteppedOn.UnionWith(stepped);
component.Colliding.Clear();
component.Colliding.UnionWith(colliding);
if (component.Colliding.Count > 0)
{
EnsureComp<StepTriggerActiveComponent>(uid);
@@ -199,16 +181,6 @@ public sealed class StepTriggerSystem : EntitySystem
}
}
private void TriggerGetState(EntityUid uid, StepTriggerComponent component, ref ComponentGetState args)
{
args.State = new StepTriggerComponentState(
component.IntersectRatio,
GetNetEntitySet(component.CurrentlySteppedOn),
GetNetEntitySet(component.Colliding),
component.RequiredTriggerSpeed,
component.Active);
}
public void SetIntersectRatio(EntityUid uid, float ratio, StepTriggerComponent? component = null)
{
if (!Resolve(uid, ref component))
@@ -226,10 +198,10 @@ public sealed class StepTriggerSystem : EntitySystem
if (!Resolve(uid, ref component))
return;
if (MathHelper.CloseToPercent(component.RequiredTriggerSpeed, speed))
if (MathHelper.CloseToPercent(component.RequiredTriggeredSpeed, speed))
return;
component.RequiredTriggerSpeed = speed;
component.RequiredTriggeredSpeed = speed;
Dirty(uid, component);
}