SharedSpiderSystem.cs 1.1 KB

12345678910111213141516171819202122232425262728293031
  1. using Content.Shared.Actions;
  2. using Robust.Shared.Network;
  3. using Robust.Shared.Random;
  4. namespace Content.Shared.Spider;
  5. public abstract class SharedSpiderSystem : EntitySystem
  6. {
  7. [Dependency] private readonly SharedActionsSystem _action = default!;
  8. [Dependency] private readonly IRobustRandom _robustRandom = default!;
  9. [Dependency] private readonly SharedAppearanceSystem _appearance = default!;
  10. public override void Initialize()
  11. {
  12. base.Initialize();
  13. SubscribeLocalEvent<SpiderComponent, MapInitEvent>(OnInit);
  14. SubscribeLocalEvent<SpiderWebObjectComponent, ComponentStartup>(OnWebStartup);
  15. }
  16. private void OnInit(EntityUid uid, SpiderComponent component, MapInitEvent args)
  17. {
  18. _action.AddAction(uid, ref component.Action, component.WebAction, uid);
  19. }
  20. private void OnWebStartup(EntityUid uid, SpiderWebObjectComponent component, ComponentStartup args)
  21. {
  22. // TODO dont use this. use some general random appearance system
  23. _appearance.SetData(uid, SpiderWebVisuals.Variant, _robustRandom.Next(1, 3));
  24. }
  25. }