| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- using System;
- namespace ET.Client
- {
- [FriendOf(typeof(LSReplayUpdater))]
- public static partial class LSReplayComponentSystem
- {
- [EntitySystem]
- private static void Update(this LSReplayUpdater self)
- {
- Room room = self.GetParent<Room>();
- long timeNow = TimeHelper.ServerNow();
- int i = 0;
- while (true)
- {
- if (room.AuthorityFrame + 1 >= room.Replay.FrameInputs.Count)
- {
- break;
- }
-
- if (timeNow < room.FixedTimeCounter.FrameTime(room.AuthorityFrame + 1))
- {
- break;
- }
- ++room.AuthorityFrame;
- OneFrameInputs oneFrameInputs = room.Replay.FrameInputs[room.AuthorityFrame];
-
- room.Update(oneFrameInputs);
- room.SpeedMultiply = ++i;
-
- long timeNow2 = TimeHelper.ServerNow();
- if (timeNow2 - timeNow > 5)
- {
- break;
- }
- }
- }
- public static void ChangeReplaySpeed(this LSReplayUpdater self)
- {
- Room room = self.Room();
- LSReplayUpdater lsReplayUpdater = room.GetComponent<LSReplayUpdater>();
- if (lsReplayUpdater.ReplaySpeed == 8)
- {
- lsReplayUpdater.ReplaySpeed = 1;
- }
- else
- {
- lsReplayUpdater.ReplaySpeed *= 2;
- }
-
- int updateInterval = LSConstValue.UpdateInterval / lsReplayUpdater.ReplaySpeed;
- room.FixedTimeCounter.ChangeInterval(updateInterval, room.AuthorityFrame);
- }
- }
- }
|