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
@@ -28,16 +28,9 @@ public sealed class PacificationSystem : EntitySystem
|
||||
SubscribeLocalEvent<PacifiedComponent, BeforeThrowEvent>(OnBeforeThrow);
|
||||
SubscribeLocalEvent<PacifiedComponent, AttackAttemptEvent>(OnAttackAttempt);
|
||||
SubscribeLocalEvent<PacifiedComponent, ShotAttemptedEvent>(OnShootAttempt);
|
||||
SubscribeLocalEvent<PacifiedComponent, EntityUnpausedEvent>(OnUnpaused);
|
||||
SubscribeLocalEvent<PacifismDangerousAttackComponent, AttemptPacifiedAttackEvent>(OnPacifiedDangerousAttack);
|
||||
}
|
||||
|
||||
private void OnUnpaused(Entity<PacifiedComponent> ent, ref EntityUnpausedEvent args)
|
||||
{
|
||||
if (ent.Comp.NextPopupTime != null)
|
||||
ent.Comp.NextPopupTime = ent.Comp.NextPopupTime.Value + args.PausedTime;
|
||||
}
|
||||
|
||||
private bool PacifiedCanAttack(EntityUid user, EntityUid target, [NotNullWhen(false)] out string? reason)
|
||||
{
|
||||
var ev = new AttemptPacifiedAttackEvent(user);
|
||||
|
||||
@@ -11,7 +11,7 @@ namespace Content.Shared.CombatMode.Pacification;
|
||||
///
|
||||
/// If you want full-pacifism (no combat mode at all), you can simply set <see cref="DisallowAllCombat"/> before adding.
|
||||
/// </summary>
|
||||
[RegisterComponent, NetworkedComponent]
|
||||
[RegisterComponent, NetworkedComponent, AutoGenerateComponentPause]
|
||||
[Access(typeof(PacificationSystem))]
|
||||
public sealed partial class PacifiedComponent : Component
|
||||
{
|
||||
@@ -33,6 +33,7 @@ public sealed partial class PacifiedComponent : Component
|
||||
public TimeSpan PopupCooldown = TimeSpan.FromSeconds(3.0);
|
||||
|
||||
[DataField]
|
||||
[AutoPausedField]
|
||||
public TimeSpan? NextPopupTime = null;
|
||||
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user