NukeLabelSystem.cs 787 B

1234567891011121314151617181920212223
  1. namespace Content.Server.Nuke;
  2. /// <summary>
  3. /// This handles labelling an entity with a nuclear bomb label.
  4. /// </summary>
  5. public sealed class NukeLabelSystem : EntitySystem
  6. {
  7. [Dependency] private readonly NukeSystem _nuke = default!;
  8. [Dependency] private readonly MetaDataSystem _metaData = default!;
  9. /// <inheritdoc/>
  10. public override void Initialize()
  11. {
  12. SubscribeLocalEvent<NukeLabelComponent, MapInitEvent>(OnMapInit);
  13. }
  14. private void OnMapInit(EntityUid uid, NukeLabelComponent nuke, MapInitEvent args)
  15. {
  16. var label = Loc.GetString(nuke.Prefix, ("serial", _nuke.GenerateRandomNumberString(nuke.SerialLength)));
  17. var meta = MetaData(uid);
  18. _metaData.SetEntityName(uid, $"{meta.EntityName} ({label})", meta);
  19. }
  20. }