private void OnMetaFlagRemoval(EntityUid uid, FlashableComponent component, ref MetaFlagRemoveAttemptEvent args)
 {
     if (component.LifeStage == ComponentLifeStage.Running)
     {
         args.ToRemove &= ~MetaDataFlags.EntitySpecific;
     }
 }
 private void OnRiderRemoval(EntityUid uid, RiderComponent component, ref MetaFlagRemoveAttemptEvent args)
 {
     if ((args.ToRemove & MetaDataFlags.EntitySpecific) != 0x0)
     {
         args.ToRemove = MetaDataFlags.None;
     }
 }
Example #3
0
 private void OnMetaFlagRemoval(EntityUid uid, FlashableComponent component, ref MetaFlagRemoveAttemptEvent args)
 {
     if (component.LifeStage == ComponentLifeStage.Running)
     {
         args.Cancelled = true;
     }
 }
Example #4
0
    /// <summary>
    /// Attempts to remove the specific flag from metadata.
    /// Other systems can choose not to allow the removal if it's still relevant.
    /// </summary>
    public void RemoveFlag(EntityUid uid, MetaDataFlags flags, MetaDataComponent?component = null)
    {
        if (!Resolve(uid, ref component) ||
            (component.Flags & flags) == 0x0)
        {
            return;
        }

        var ev = new MetaFlagRemoveAttemptEvent();

        EntityManager.EventBus.RaiseLocalEvent(component.Owner, ref ev);

        if (ev.Cancelled)
        {
            return;
        }

        component.Flags &= ~flags;
    }