Random station names! (#5548)
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
using Robust.Shared.Serialization.Manager.Attributes;
|
||||
|
||||
namespace Content.Server.Maps.NameGenerators;
|
||||
|
||||
[ImplicitDataDefinitionForInheritors]
|
||||
public abstract class GameMapNameGenerator
|
||||
{
|
||||
public abstract string FormatName(string input);
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
using JetBrains.Annotations;
|
||||
using Robust.Shared.IoC;
|
||||
using Robust.Shared.Random;
|
||||
using Robust.Shared.Serialization.Manager.Attributes;
|
||||
|
||||
namespace Content.Server.Maps.NameGenerators;
|
||||
|
||||
[UsedImplicitly]
|
||||
public class NanotrasenNameGenerator : GameMapNameGenerator
|
||||
{
|
||||
/// <summary>
|
||||
/// Where the map comes from. Should be a two or three letter code, for example "VG" for Packedstation.
|
||||
/// </summary>
|
||||
[DataField("prefixCreator")] public string PrefixCreator = default!;
|
||||
|
||||
private string Prefix => "NT";
|
||||
private string[] SuffixCodes => new []{ "LV", "NX", "EV", "QT", "PR" };
|
||||
|
||||
public override string FormatName(string input)
|
||||
{
|
||||
var random = IoCManager.Resolve<IRobustRandom>();
|
||||
|
||||
// No way in hell am I writing custom format code just to add nice names. You can live with {0}
|
||||
return string.Format(input, $"{Prefix}{PrefixCreator}", $"{random.Pick(SuffixCodes)}-{random.Next(0, 999):D3}");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user