Refactor seed handling in game start logic and improve packet sending reliability
This commit is contained in:
1
Main.cs
1
Main.cs
@@ -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++)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user