DiceSystem.cs 812 B

12345678910111213141516171819202122232425262728
  1. using Content.Shared.Dice;
  2. using Robust.Client.GameObjects;
  3. namespace Content.Client.Dice;
  4. public sealed class DiceSystem : SharedDiceSystem
  5. {
  6. public override void Initialize()
  7. {
  8. base.Initialize();
  9. SubscribeLocalEvent<DiceComponent, AfterAutoHandleStateEvent>(OnDiceAfterHandleState);
  10. }
  11. private void OnDiceAfterHandleState(Entity<DiceComponent> entity, ref AfterAutoHandleStateEvent args)
  12. {
  13. if (!TryComp<SpriteComponent>(entity, out var sprite))
  14. return;
  15. // TODO maybe just move each die to its own RSI?
  16. var state = sprite.LayerGetState(0).Name;
  17. if (state == null)
  18. return;
  19. var prefix = state.Substring(0, state.IndexOf('_'));
  20. sprite.LayerSetState(0, $"{prefix}_{entity.Comp.CurrentValue}");
  21. }
  22. }