ReplayUpdaterSystem.cs 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. using System;
  2. namespace ET.Client
  3. {
  4. [FriendOf(typeof(ReplayUpdater))]
  5. public static class ReplayComponentSystem
  6. {
  7. [ObjectSystem]
  8. public class UpdateSystem: UpdateSystem<ReplayUpdater>
  9. {
  10. protected override void Update(ReplayUpdater self)
  11. {
  12. self.Update();
  13. }
  14. }
  15. private static void Update(this ReplayUpdater self)
  16. {
  17. Room room = self.GetParent<Room>();
  18. long timeNow = TimeHelper.ServerFrameTime();
  19. if (timeNow < room.FixedTimeCounter.FrameTime(room.AuthorityFrame + 1))
  20. {
  21. return;
  22. }
  23. ++room.AuthorityFrame;
  24. if (room.AuthorityFrame >= room.Replay.FrameInputs.Count)
  25. {
  26. return;
  27. }
  28. OneFrameInputs oneFrameInputs = room.Replay.FrameInputs[room.AuthorityFrame];
  29. room.Update(oneFrameInputs, room.AuthorityFrame);
  30. }
  31. }
  32. }