wip network refactor

This commit is contained in:
2023-12-31 16:03:26 +02:00
parent dd5a86a8b7
commit 03810705bd
8 changed files with 108 additions and 50 deletions

View File

@@ -444,10 +444,10 @@ namespace Game
//viewAngles = viewAnglesLastFrame;
bool canpredict = true;
if (true && input.Predict /*&& !NetworkManager.IsDemoPlaying*/ && GameModeManager.ClientFrame > 0 && GameModeManager.ServerFrame > 0)
if (true && input.Predict /*&& !NetworkManager.IsDemoPlaying*/ && WorldStateManager.ClientFrame > 0 && WorldStateManager.ServerFrame > 0)
{
ulong currentFrame = GameModeManager.ServerFrame;
for (; currentFrame < GameModeManager.ClientFrame; currentFrame++)
ulong currentFrame = WorldStateManager.ServerFrame;
for (; currentFrame < WorldStateManager.ClientFrame; currentFrame++)
{
if (!input.GetState(currentFrame, out var pastInputState, out var pastActorState))
{
@@ -469,7 +469,7 @@ namespace Game
predicting = true;
currentFrame = GameModeManager.ServerFrame;
currentFrame = WorldStateManager.ServerFrame;
for (; currentFrame < lastFrame; currentFrame++)
{
if (!input.GetState(currentFrame, out var pastInputState, out var pastActorState))
@@ -481,7 +481,7 @@ namespace Game
if (currentFrame == inputState.frame)
movementState.jumped = movementState.jumped;
if (currentFrame == GameModeManager.ServerFrame)
if (currentFrame == WorldStateManager.ServerFrame)
{
movementState.position = pastActorState.position;
movementState.currentVelocity = pastActorState.velocity;
@@ -891,8 +891,8 @@ namespace Game
if (false)
{
if (GameModeManager.ServerFrame > 0 && GameModeManager.ClientFrame > 0)
for (ulong frame = GameModeManager.ServerFrame; frame < GameModeManager.ClientFrame; frame++)
if (WorldStateManager.ServerFrame > 0 && WorldStateManager.ClientFrame > 0)
for (ulong frame = WorldStateManager.ServerFrame; frame < WorldStateManager.ClientFrame; frame++)
{
if (!input.GetState(frame, out var pastInputState, out var pastActorState))
continue;
@@ -902,7 +902,7 @@ namespace Game
Float4 color1 = new Float4(Color.Red.R, Color.Red.G, Color.Red.B, Color.Red.A);
Float4 color2 = new Float4(Color.Blue.R, Color.Blue.G, Color.Blue.B, Color.Blue.A);
Float4 color3 = Float4.Lerp(color1, color2, (float)(frame - GameModeManager.ServerFrame) / (float)(GameModeManager.ClientFrame - GameModeManager.ServerFrame));
Float4 color3 = Float4.Lerp(color1, color2, (float)(frame - WorldStateManager.ServerFrame) / (float)(WorldStateManager.ClientFrame - WorldStateManager.ServerFrame));
Color color = new Color(color3.X, color3.Y, color3.Z, color3.W);
DebugDraw.DrawBox(bbox, color * 1f);
}
@@ -910,7 +910,7 @@ namespace Game
else
{
var serverBbox = boxCollider.OrientedBox.GetBoundingBox();
if (input.GetState(GameModeManager.ServerFrame, out var serverInputState, out var serverActorState))
if (input.GetState(WorldStateManager.ServerFrame, out var serverInputState, out var serverActorState))
serverBbox.Center = serverActorState.position;
if (serverBbox.Center == clientBbox.Center)
@@ -1159,7 +1159,7 @@ namespace Game
public void SimulatePlayerMovement(PlayerInputState inputState)
{
simulationTime = GameModeManager.ClientTime + (inputState.frame * (1.0f / Time.PhysicsFPS));
simulationTime = WorldStateManager.ClientTime + (inputState.frame * (1.0f / Time.PhysicsFPS));
Vector3 inputDirection =
new Float3(inputState.moveRight, 0.0f, inputState.moveForward);