public SuicideKind Suicide(EntityUid uid, EntityUid victimUid, ToiletComponent?component = null, MetaDataComponent?meta = null, MetaDataComponent?victimMeta = null) { // check that victim even have head if (EntityManager.TryGetComponent <SharedBodyComponent>(victimUid, out var body) && body.HasPartOfType(BodyPartType.Head)) { var othersMessage = Loc.GetString("toilet-component-suicide-head-message-others", ("victim", victimUid), ("owner", uid)); _popupSystem.PopupEntity(othersMessage, uid, Filter.Pvs(victimUid).RemoveWhereAttachedEntity(puid => puid == victimUid)); var selfMessage = Loc.GetString("toilet-component-suicide-head-message", ("owner", uid)); _popupSystem.PopupEntity(selfMessage, uid, Filter.Entities(victimUid)); return(SuicideKind.Asphyxiation); } else { var othersMessage = Loc.GetString("toilet-component-suicide-message-others", ("victim", victimUid), ("owner", uid)); _popupSystem.PopupEntity(othersMessage, uid, Filter.Pvs(uid).RemoveWhereAttachedEntity(puid => puid == victimUid)); var selfMessage = Loc.GetString("toilet-component-suicide-message", ("owner", uid)); _popupSystem.PopupEntity(selfMessage, uid, Filter.Entities(victimUid)); return(SuicideKind.Blunt); } }
protected EntityPrototype?Prototype(EntityUid uid, MetaDataComponent?metaData = null) { if (!Resolve(uid, ref metaData, false)) { throw CompNotFound <MetaDataComponent>(uid); } return(metaData.EntityPrototype); }
public bool Paused(EntityUid uid, MetaDataComponent?metaData = null) { if (!Resolve(uid, ref metaData, false)) { throw CompNotFound <MetaDataComponent>(uid); } return(metaData.EntityPaused); }
/// <summary> /// Retrieves the last <see cref="GameTick"/> the entity was modified at. /// </summary> /// <exception cref="KeyNotFoundException">Thrown when the entity doesn't exist.</exception> public GameTick LastModifiedTick(EntityUid uid, MetaDataComponent?metaData = null) { if (!Resolve(uid, ref metaData, false)) { throw CompNotFound <MetaDataComponent>(uid); } return(metaData.EntityLastModifiedTick); }
protected string Name(EntityUid uid, MetaDataComponent?metaData = null) { if (!Resolve(uid, ref metaData, false)) { throw CompNotFound <MetaDataComponent>(uid); } return(metaData.EntityName); }
public bool Deleted(EntityUid uid, MetaDataComponent?metaData = null) { if (!Resolve(uid, ref metaData, false)) { return(true); } return(metaData.EntityDeleted); }
public string Description(EntityUid uid, MetaDataComponent?metaData = null) { if (!Resolve(uid, ref metaData, false)) { throw CompNotFound <MetaDataComponent>(uid); } return(metaData.EntityName); }
public EntityLifeStage LifeStage(EntityUid uid, MetaDataComponent?metaData = null) { if (!Resolve(uid, ref metaData, false)) { throw CompNotFound <MetaDataComponent>(uid); } return(metaData.EntityLifeStage); }
public void AddFlag(EntityUid uid, MetaDataFlags flags, MetaDataComponent?component = null) { if (!Resolve(uid, ref component)) { return; } component.Flags |= flags; }
public void SetPaused(EntityUid uid, bool paused, MetaDataComponent?metaData = null) { if (!Resolve(uid, ref metaData, false)) { throw CompNotFound <MetaDataComponent>(uid); } metaData.EntityPaused = paused; }
public bool TrySetPaused(EntityUid uid, bool paused, MetaDataComponent?metaData = null) { if (!Resolve(uid, ref metaData, false)) { return(false); } metaData.EntityPaused = paused; return(true); }
public bool TryPaused(EntityUid uid, [NotNullWhen(true)] out bool?paused, MetaDataComponent?metaData = null) { if (!Resolve(uid, ref metaData, false)) { paused = null; return(false); } paused = metaData.EntityPaused; return(true); }
public bool TryName(EntityUid uid, [NotNullWhen(true)] out string?name, MetaDataComponent?metaData = null) { if (!Resolve(uid, ref metaData, false)) { name = null; return(false); } name = metaData.EntityName; return(true); }
public void RefreshVisibility(EntityUid uid, MetaDataComponent?metaDataComponent = null, VisibilityComponent?visibilityComponent = null) { if (!Resolve(uid, ref metaDataComponent, false)) { // This means it's deleting or some shit; I'd love to make it a GetComponent<T> in future. return; } var visMask = 1; metaDataComponent.VisibilityMask = GetVisibilityMask(uid, ref visMask, visibilityComponent); }
/// <summary> /// Tries to hide item inside secret stash from hands of user. /// </summary> /// <returns>True if item was hidden inside stash</returns> public bool TryHideItem(EntityUid uid, EntityUid userUid, EntityUid itemToHideUid, SecretStashComponent?component = null, ItemComponent?item = null, MetaDataComponent?itemMeta = null, SharedHandsComponent?hands = null) { if (!Resolve(uid, ref component)) { return(false); } if (!Resolve(itemToHideUid, ref item, ref itemMeta)) { return(false); } if (!Resolve(userUid, ref hands)) { return(false); } // check if secret stash is already occupied var container = component.ItemContainer; if (container.ContainedEntity != null) { var msg = Loc.GetString("comp-secret-stash-action-hide-container-not-empty"); _popupSystem.PopupEntity(msg, uid, Filter.Entities(userUid)); return(false); } // check if item is too big to fit into secret stash var itemName = itemMeta.EntityName; if (item.Size > component.MaxItemSize) { var msg = Loc.GetString("comp-secret-stash-action-hide-item-too-big", ("item", itemName), ("stash", component.SecretPartName)); _popupSystem.PopupEntity(msg, uid, Filter.Entities(userUid)); return(false); } // try to move item from hands to stash container if (!_handsSystem.TryDropIntoContainer(userUid, itemToHideUid, container)) { return(false); } // all done, show success message var successMsg = Loc.GetString("comp-secret-stash-action-hide-success", ("item", itemName), ("this", component.SecretPartName)); _popupSystem.PopupEntity(successMsg, uid, Filter.Entities(userUid)); return(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; }
protected bool Initializing(EntityUid uid, MetaDataComponent?metaData = null) { return(LifeStage(uid, metaData) == EntityLifeStage.Initializing); }
public bool TryInitialized(EntityUid uid, [NotNullWhen(true)] out bool?initialized, MetaDataComponent?metaData = null) { if (!TryLifeStage(uid, out var lifeStage, metaData)) { initialized = null; return(false); } initialized = lifeStage >= EntityLifeStage.Initialized; return(true); }
public bool Terminating(EntityUid uid, MetaDataComponent?metaData = null) { return(LifeStage(uid, metaData) == EntityLifeStage.Terminating); }
/// <summary> /// Set the alert level based on the station's entity ID. /// </summary> /// <param name="station">Station entity UID.</param> /// <param name="level">Level to change the station's alert level to.</param> /// <param name="playSound">Play the alert level's sound.</param> /// <param name="announce">Say the alert level's announcement.</param> /// <param name="force">Force the alert change. This applies if the alert level is not selectable or not.</param> /// <param name="locked">Will it be possible to change level by crew.</param> public void SetLevel(EntityUid station, string level, bool playSound, bool announce, bool force = false, bool locked = false, MetaDataComponent?dataComponent = null, AlertLevelComponent?component = null) { if (!Resolve(station, ref component, ref dataComponent) || component.AlertLevels == null || !component.AlertLevels.Levels.TryGetValue(level, out var detail) || component.CurrentLevel == level) { return; } if (!force) { if (!detail.Selectable || component.CurrentDelay > 0 || component.IsLevelLocked) { return; } component.CurrentDelay = AlertLevelComponent.Delay; component.ActiveDelay = true; } component.CurrentLevel = level; component.IsLevelLocked = locked; var stationName = dataComponent.EntityName; var name = level.ToLower(); if (Loc.TryGetString($"alert-level-{level}", out var locName)) { name = locName.ToLower(); } // Announcement text. Is passed into announcementFull. var announcement = detail.Announcement; if (Loc.TryGetString(detail.Announcement, out var locAnnouncement)) { announcement = locAnnouncement; } // The full announcement to be spat out into chat. var announcementFull = Loc.GetString("alert-level-announcement", ("name", name), ("announcement", announcement)); var playDefault = false; if (playSound) { if (detail.Sound != null) { SoundSystem.Play(detail.Sound.GetSound(), Filter.Broadcast()); } else { playDefault = true; } } if (announce) { _chatSystem.DispatchStationAnnouncement(station, announcementFull, playDefaultSound: playDefault, colorOverride: detail.Color, sender: stationName); } RaiseLocalEvent(new AlertLevelChangedEvent(station, level)); }
public bool Initialized(EntityUid uid, MetaDataComponent?metaData = null) { return(LifeStage(uid, metaData) >= EntityLifeStage.Initialized); }
public bool TryTerminating(EntityUid uid, [NotNullWhen(true)] out bool?terminating, MetaDataComponent?metaData = null) { if (!TryLifeStage(uid, out var lifeStage, metaData)) { terminating = null; return(false); } terminating = lifeStage == EntityLifeStage.Terminating; return(true); }
public bool TryLifeStage(EntityUid uid, [NotNullWhen(true)] out EntityLifeStage?lifeStage, MetaDataComponent?metaData = null) { if (!Resolve(uid, ref metaData)) { lifeStage = null; return(false); } lifeStage = metaData.EntityLifeStage; return(true); }
public bool TryLastModifiedTick(EntityUid uid, [NotNullWhen(true)] out GameTick?lastModifiedTick, MetaDataComponent?metaData = null) { if (!Resolve(uid, ref metaData, false)) { lastModifiedTick = null; return(false); } lastModifiedTick = metaData.EntityLastModifiedTick; return(true); }
public bool TryPrototype(EntityUid uid, [NotNullWhen(true)] out EntityPrototype?prototype, MetaDataComponent?metaData = null) { if (!Resolve(uid, ref metaData, false)) { prototype = null; return(false); } prototype = metaData.EntityPrototype; return(prototype != null); }
public bool TryDescription(EntityUid uid, [NotNullWhen(true)] out string?description, MetaDataComponent?metaData = null) { if (!Resolve(uid, ref metaData, false)) { description = null; return(false); } description = metaData.EntityDescription; return(true); }
protected bool TryInitializing(EntityUid uid, [NotNullWhen(true)] out bool?initializing, MetaDataComponent?metaData = null) { if (!TryLifeStage(uid, out var lifeStage, metaData)) { initializing = null; return(false); } initializing = lifeStage == EntityLifeStage.Initializing; return(true); }