RandomAppearanceSystem.cs 824 B

12345678910111213141516171819202122232425
  1. using Robust.Server.GameObjects;
  2. using Robust.Shared.Random;
  3. namespace Content.Server.RandomAppearance;
  4. public sealed class RandomAppearanceSystem : EntitySystem
  5. {
  6. [Dependency] private readonly IRobustRandom _random = default!;
  7. [Dependency] private readonly SharedAppearanceSystem _appearance = default!;
  8. public override void Initialize()
  9. {
  10. base.Initialize();
  11. SubscribeLocalEvent<RandomAppearanceComponent, ComponentInit>(OnComponentInit);
  12. }
  13. private void OnComponentInit(EntityUid uid, RandomAppearanceComponent component, ComponentInit args)
  14. {
  15. if (TryComp(uid, out AppearanceComponent? appearance) && component.EnumKey != null)
  16. {
  17. _appearance.SetData(uid, component.EnumKey, _random.Pick(component.SpriteStates), appearance);
  18. }
  19. }
  20. }