StationNameSystem.cs 1.0 KB

1234567891011121314151617181920212223242526272829303132333435
  1. using Content.Server.Station.Components;
  2. namespace Content.Server.Station.Systems;
  3. /// <summary>
  4. /// This handles naming stations.
  5. /// </summary>
  6. public sealed class StationNameSystem : EntitySystem
  7. {
  8. [Dependency] private readonly StationSystem _station = default!;
  9. /// <inheritdoc/>
  10. public override void Initialize()
  11. {
  12. SubscribeLocalEvent<StationNameSetupComponent, ComponentInit>(OnStationNameSetupInit);
  13. }
  14. private void OnStationNameSetupInit(EntityUid uid, StationNameSetupComponent component, ComponentInit args)
  15. {
  16. if (!HasComp<StationDataComponent>(uid))
  17. return;
  18. _station.RenameStation(uid, GenerateStationName(component), false);
  19. }
  20. /// <summary>
  21. /// Generates a station name from the given config.
  22. /// </summary>
  23. private static string GenerateStationName(StationNameSetupComponent config)
  24. {
  25. return config.NameGenerator is not null
  26. ? config.NameGenerator.FormatName(config.StationNameTemplate)
  27. : config.StationNameTemplate;
  28. }
  29. }