Refactor AccentManager to be an entity system, makes accents ECS. (#4825)

This commit is contained in:
Vera Aguilera Puerto
2021-10-11 20:18:39 +02:00
committed by GitHub
parent 55b4edb895
commit 4c80fb9586
16 changed files with 226 additions and 234 deletions

View File

@@ -0,0 +1,32 @@
using System.Collections.Generic;
using Content.Server.Speech.Components;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
using Robust.Shared.Random;
namespace Content.Server.Speech.EntitySystems
{
// TODO: Code in-game languages and make this a language
public class MouseAccentSystem : EntitySystem
{
[Dependency] private readonly IRobustRandom _random = default!;
private static readonly IReadOnlyList<string> Squeek = new List<string>{ "Squeak!", "Piep!", "Chuu!" };
public override void Initialize()
{
SubscribeLocalEvent<MouseAccentComponent, AccentGetEvent>(OnAccent);
}
public string Accentuate(string message)
{
// TODO: Maybe add more than one squeek when there are more words?
return _random.Pick(Squeek);
}
private void OnAccent(EntityUid uid, MouseAccentComponent component, AccentGetEvent args)
{
args.Message = Accentuate(args.Message);
}
}
}