[+] 接入ET8服务端

[+] 接入ET8服务端
This commit is contained in:
ALEXTANG
2023-07-13 12:23:48 +08:00
parent e0be062006
commit 336d4b2eb9
1316 changed files with 130657 additions and 626 deletions

View File

@@ -0,0 +1,67 @@
using System;
namespace ET.Client
{
[EntitySystemOf(typeof(LSReplayUpdater))]
[FriendOf(typeof(LSReplayUpdater))]
public static partial class LSReplayUpdaterSystem
{
[EntitySystem]
private static void Awake(this LSReplayUpdater self)
{
}
[EntitySystem]
private static void Update(this LSReplayUpdater self)
{
Room room = self.GetParent<Room>();
Fiber fiber = self.Fiber();
long timeNow = fiber.TimeInfo.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 = fiber.TimeInfo.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);
}
}
}