PaperRandomStorySystem.cs 826 B

12345678910111213141516171819202122232425262728
  1. using Content.Shared.Paper;
  2. using Content.Shared.StoryGen;
  3. namespace Content.Server.Paper;
  4. public sealed class PaperRandomStorySystem : EntitySystem
  5. {
  6. [Dependency] private readonly StoryGeneratorSystem _storyGen = default!;
  7. [Dependency] private readonly PaperSystem _paper = default!;
  8. public override void Initialize()
  9. {
  10. base.Initialize();
  11. SubscribeLocalEvent<PaperRandomStoryComponent, MapInitEvent>(OnMapInit);
  12. }
  13. private void OnMapInit(Entity<PaperRandomStoryComponent> paperStory, ref MapInitEvent ev)
  14. {
  15. if (!TryComp<PaperComponent>(paperStory, out var paper))
  16. return;
  17. if (!_storyGen.TryGenerateStoryFromTemplate(paperStory.Comp.Template, out var story))
  18. return;
  19. _paper.SetContent((paperStory.Owner, paper), story);
  20. }
  21. }