This commit is contained in:
2025-03-20 21:56:55 +02:00
parent 294138eac4
commit e6270ff541
3 changed files with 39 additions and 13 deletions

View File

@@ -184,19 +184,24 @@ public class PlayerMovement : Script
PlayerId = playerId;
bool isServerScene = Scene.Name == "ServerScene";
if (isServerScene)
worldStateManager = NetworkManager.serverWorldStateManager;
else
worldStateManager = NetworkManager.clientWorldStateManager;
if (PlayerId == NetworkManager.LocalPlayerClientId && !isServerScene)//if (NetworkReplicator.GetObjectRole(this.Parent) == NetworkObjectRole.OwnedAuthoritative)// if (playerId == NetworkManager.LocalPlayerClientId)
{
Console.Print("local player?: " + playerId.ToString());
//string demoPath = System.IO.Path.Combine(AssetManager.DemoPath, $"{DateTimeOffset.Now.UtcTicks}.gdem");
//input = new PlayerInputLocal(playerActor, demoPath); // TODO: support recording
Input = new PlayerInput2();//new PlayerInputLocal(playerActor);
worldStateManager = NetworkManager.serverWorldStateManager;
}
else
{
Console.Print("network player: " + playerId.ToString());
Input = new PlayerInputNetwork2();
worldStateManager = NetworkManager.clientWorldStateManager;
Input = new PlayerInputNetwork2(playerId, worldStateManager);
}
Assert.IsTrue(worldStateManager != null);
}
@@ -281,6 +286,7 @@ public class PlayerMovement : Script
//if (Input is PlayerInputDemo /*&& currentInputFrame2 >= currentInputFrame*/)
// return;
Input.SetFrame(worldStateManager.ClientFrame);
Input.UpdateState();
/*if (input.frame > 0)
@@ -340,7 +346,7 @@ public class PlayerMovement : Script
//Input.OnFixedUpdate();
PlayerInputState2 inputState = Input.GetState();
if (Input is PlayerInputNetwork2)
if (false && Input is PlayerInputNetwork2)
{
#if false
bool canpredict = true;
@@ -620,7 +626,7 @@ public class PlayerMovement : Script
//Console.Print($"recording frame {input.frame}, client: {GameModeManager.ClientFrame}, server: {GameModeManager.ServerFrame}");
worldStateManager.RecordPlayerInput(PlayerId, worldStateManager.Frame, inputState, movementState); // MAYBE?
//Input.OnEndFrame();
Input.ResetState();
}
if (movementState.position.Length < 0.1)