ECS random sprotes (#6355)

This commit is contained in:
metalgearsloth
2022-01-31 01:31:09 +11:00
committed by GitHub
parent 9a5a8a55e1
commit eece26bb7b
3 changed files with 58 additions and 54 deletions

View File

@@ -1,30 +1,14 @@
using System.Collections.Generic;
using Robust.Server.GameObjects;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
using Robust.Shared.Random;
using Robust.Shared.Serialization.Manager.Attributes;
namespace Content.Server.Sprite.Components
{
[RegisterComponent]
[RegisterComponent, ComponentProtoName("RandomSpriteState")]
public class RandomSpriteStateComponent : Component
{
[Dependency] private readonly IRobustRandom _random = default!;
public override string Name => "RandomSpriteState";
[DataField("spriteStates")] public List<string>? SpriteStates;
[DataField("spriteStates")]
private List<string>? _spriteStates;
[DataField("spriteLayer")]
private int _spriteLayer;
protected override void Initialize()
{
base.Initialize();
if (_spriteStates == null) return;
if (!IoCManager.Resolve<IEntityManager>().TryGetComponent(Owner, out SpriteComponent? spriteComponent)) return;
spriteComponent.LayerSetState(_spriteLayer, _random.Pick(_spriteStates));
}
[DataField("spriteLayer")] public int SpriteLayer;
}
}