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; } }
private void OnMetaFlagRemoval(EntityUid uid, FlashableComponent component, ref MetaFlagRemoveAttemptEvent args) { if (component.LifeStage == ComponentLifeStage.Running) { args.Cancelled = true; } }
/// <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; }