Use new ComponentPauseGenerator (#25183)
Also includes some (non critical) changes to the solution file to re-organize the Roslyn components.
This commit is contained in:
committed by
GitHub
parent
2a2324ecaf
commit
e00f74505c
@@ -6,7 +6,7 @@ namespace Content.Server.Explosion.Components.OnTrigger;
|
||||
/// <summary>
|
||||
/// After being triggered applies the specified components and runs triggers again.
|
||||
/// </summary>
|
||||
[RegisterComponent]
|
||||
[RegisterComponent, AutoGenerateComponentPause]
|
||||
public sealed partial class TwoStageTriggerComponent : Component
|
||||
{
|
||||
/// <summary>
|
||||
@@ -23,6 +23,7 @@ public sealed partial class TwoStageTriggerComponent : Component
|
||||
public ComponentRegistry SecondStageComponents = new();
|
||||
|
||||
[DataField("nextTriggerTime", customTypeSerializer: typeof(TimeOffsetSerializer))]
|
||||
[AutoPausedField]
|
||||
public TimeSpan? NextTriggerTime;
|
||||
|
||||
[DataField("triggered")]
|
||||
|
||||
@@ -13,7 +13,7 @@ namespace Content.Server.Explosion.Components
|
||||
/// <summary>
|
||||
/// Raises a <see cref="TriggerEvent"/> whenever an entity collides with a fixture attached to the owner of this component.
|
||||
/// </summary>
|
||||
[RegisterComponent]
|
||||
[RegisterComponent, AutoGenerateComponentPause]
|
||||
public sealed partial class TriggerOnProximityComponent : SharedTriggerOnProximityComponent
|
||||
{
|
||||
public const string FixtureID = "trigger-on-proximity-fixture";
|
||||
@@ -58,6 +58,7 @@ namespace Content.Server.Explosion.Components
|
||||
/// </summary>
|
||||
[ViewVariables(VVAccess.ReadWrite)]
|
||||
[DataField("nextTrigger", customTypeSerializer: typeof(TimeOffsetSerializer))]
|
||||
[AutoPausedField]
|
||||
public TimeSpan NextTrigger = TimeSpan.Zero;
|
||||
|
||||
/// <summary>
|
||||
@@ -65,6 +66,7 @@ namespace Content.Server.Explosion.Components
|
||||
/// </summary>
|
||||
[ViewVariables(VVAccess.ReadWrite)]
|
||||
[DataField("nextVisualUpdate", customTypeSerializer: typeof(TimeOffsetSerializer))]
|
||||
[AutoPausedField]
|
||||
public TimeSpan NextVisualUpdate = TimeSpan.Zero;
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -17,7 +17,6 @@ public sealed partial class TriggerSystem
|
||||
SubscribeLocalEvent<TriggerOnProximityComponent, StartCollideEvent>(OnProximityStartCollide);
|
||||
SubscribeLocalEvent<TriggerOnProximityComponent, EndCollideEvent>(OnProximityEndCollide);
|
||||
SubscribeLocalEvent<TriggerOnProximityComponent, MapInitEvent>(OnMapInit);
|
||||
SubscribeLocalEvent<TriggerOnProximityComponent, EntityUnpausedEvent>(OnUnpaused);
|
||||
SubscribeLocalEvent<TriggerOnProximityComponent, ComponentShutdown>(OnProximityShutdown);
|
||||
// Shouldn't need re-anchoring.
|
||||
SubscribeLocalEvent<TriggerOnProximityComponent, AnchorStateChangedEvent>(OnProximityAnchor);
|
||||
@@ -65,12 +64,6 @@ public sealed partial class TriggerSystem
|
||||
collisionLayer: component.Layer);
|
||||
}
|
||||
|
||||
private void OnUnpaused(EntityUid uid, TriggerOnProximityComponent component, ref EntityUnpausedEvent args)
|
||||
{
|
||||
component.NextTrigger += args.PausedTime;
|
||||
component.NextVisualUpdate += args.PausedTime;
|
||||
}
|
||||
|
||||
private void OnProximityStartCollide(EntityUid uid, TriggerOnProximityComponent component, ref StartCollideEvent args)
|
||||
{
|
||||
if (args.OurFixtureId != TriggerOnProximityComponent.FixtureID)
|
||||
|
||||
@@ -14,16 +14,9 @@ public sealed class TwoStageTriggerSystem : EntitySystem
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
SubscribeLocalEvent<TwoStageTriggerComponent, EntityUnpausedEvent>(OnTriggerUnpaused);
|
||||
SubscribeLocalEvent<TwoStageTriggerComponent, TriggerEvent>(OnTrigger);
|
||||
}
|
||||
|
||||
private void OnTriggerUnpaused(EntityUid uid, TwoStageTriggerComponent component, ref EntityUnpausedEvent args)
|
||||
{
|
||||
if (component.NextTriggerTime != null)
|
||||
component.NextTriggerTime = component.NextTriggerTime.Value + args.PausedTime;
|
||||
}
|
||||
|
||||
private void OnTrigger(EntityUid uid, TwoStageTriggerComponent component, TriggerEvent args)
|
||||
{
|
||||
if (component.Triggered)
|
||||
|
||||
Reference in New Issue
Block a user