using Robust.Client.UserInterface.Controls;
using Robust.Shared.Input;
using Robust.Shared.Map;
-using Robust.Shared.Prototypes;
using static Content.Client.Inventory.ClientInventorySystem;
using static Robust.Client.UserInterface.Control;
_inv = EntMan.System<InventorySystem>();
_cuffable = EntMan.System<SharedCuffableSystem>();
+ // TODO update name when identity changes
var title = Loc.GetString("strippable-bound-user-interface-stripping-menu-title", ("ownerName", Identity.Name(Owner, EntMan)));
_strippingMenu = new StrippingMenu(title, this);
_strippingMenu.OnClose += Close;
+
+ // TODO use global entity
+ // BUIs are opened and closed while applying comp sates, so spawning entities here is probably not the best idea.
_virtualHiddenEntity = EntMan.SpawnEntity(HiddenPocketEntityId, MapCoordinates.Nullspace);
}
/// </summary>
public static string Name(EntityUid uid, IEntityManager ent, EntityUid? viewer=null)
{
- var uidName = ent.GetComponent<MetaDataComponent>(uid).EntityName;
+ var meta = ent.GetComponent<MetaDataComponent>(uid);
+ if (meta.EntityLifeStage <= EntityLifeStage.Initializing)
+ return meta.EntityName; // Identity component and such will not yet have initialized and may throw NREs
+
+ var uidName = meta.EntityName;
if (!ent.TryGetComponent<IdentityComponent>(uid, out var identity))
return uidName;
return uidName;
}
- return uidName + $" ({identName})";
+ return $"{uidName} ({identName})";
}
/// <summary>