Refactor seed handling in game start logic and improve packet sending reliability

This commit is contained in:
2025-12-14 23:22:34 +01:00
parent 62db70c1c4
commit 181936e3d4
3 changed files with 20 additions and 7 deletions

View File

@@ -435,7 +435,6 @@ namespace KCM
// Your code here
// Get the name of the last method that called OnPlayerPlacement
string callTree = "";
List<string> strings = new List<string>();
for (int i = 1; i < 10; i++)

View File

@@ -110,7 +110,7 @@ namespace KCM.Packets
{
if (KCServer.IsRunning && toClient != 0)
{
KCServer.server.Send(PacketHandler.SerialisePacket(this), toClient, Riptide.MessageSendMode.Reliable);
KCServer.server.Send(PacketHandler.SerialisePacket(this), toClient, true);
}
}
catch (Exception ex)

View File

@@ -60,8 +60,6 @@ namespace KCM
Falle
}
bool awake = false;
public void Start()
{
Main.helper.Log("ServerLobby start called");
@@ -188,14 +186,30 @@ namespace KCM
StartGameButton.GetComponentInChildren<TextMeshProUGUI>().text = "Start";
StartGameButton.onClick.AddListener(() =>
{
if (World.inst.GetTextSeed() != WorldSeed.text)
int definitiveSeed;
if (string.IsNullOrWhiteSpace(WorldSeed.text))
{
World.inst.seed = World.inst.SeedFromText(WorldSeed.text);
World.inst.Generate();
definitiveSeed = World.inst.seed;
}
else
{
if (int.TryParse(WorldSeed.text, out int parsedSeed))
{
definitiveSeed = parsedSeed;
World.inst.Generate(definitiveSeed);
}
else
{
Main.helper.LogWarning($"Invalid seed '{WorldSeed.text}' entered. Generating a random seed.");
World.inst.Generate();
definitiveSeed = World.inst.seed;
}
}
new WorldSeed()
{
Seed = World.inst.seed
Seed = definitiveSeed
}.SendToAll(KCClient.client.Id);
new StartGame().SendToAll();