Add metadata flags to actions component (#6922)

This commit is contained in:
Leon Friedrich
2022-02-28 14:21:44 +13:00
committed by GitHub
parent 9a54ea67c4
commit 587de74ac3
2 changed files with 22 additions and 2 deletions

View File

@@ -10,12 +10,32 @@ namespace Content.Server.Actions
public sealed class ActionsSystem : SharedActionsSystem
{
[Dependency] private readonly IChatManager _chatMan = default!;
[Dependency] private readonly MetaDataSystem _metaSystem = default!;
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<ActionsComponent, PlayerAttachedEvent>(OnPlayerAttached);
SubscribeLocalEvent<ActionsComponent, ComponentStartup>(OnStartup);
SubscribeLocalEvent<ActionsComponent, ComponentShutdown>(OnShutdown);
SubscribeLocalEvent<ActionsComponent, MetaFlagRemoveAttemptEvent>(OnMetaFlagRemoval);
}
private void OnMetaFlagRemoval(EntityUid uid, ActionsComponent component, ref MetaFlagRemoveAttemptEvent args)
{
if (component.LifeStage == ComponentLifeStage.Running)
args.Cancelled = true;
}
private void OnStartup(EntityUid uid, ActionsComponent component, ComponentStartup args)
{
_metaSystem.AddFlag(uid, MetaDataFlags.EntitySpecific);
}
private void OnShutdown(EntityUid uid, ActionsComponent component, ComponentShutdown args)
{
_metaSystem.RemoveFlag(uid, MetaDataFlags.EntitySpecific);
}
private void OnPlayerAttached(EntityUid uid, ActionsComponent component, PlayerAttachedEvent args)

View File

@@ -44,7 +44,7 @@ namespace Content.Server.Flash
private void OnMetaFlagRemoval(EntityUid uid, FlashableComponent component, ref MetaFlagRemoveAttemptEvent args)
{
if (component.LifeStage > ComponentLifeStage.Initialized) return;
if (component.LifeStage == ComponentLifeStage.Running)
args.Cancelled = true;
}