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
|
// Your code here
|
||||||
|
|
||||||
// Get the name of the last method that called OnPlayerPlacement
|
// Get the name of the last method that called OnPlayerPlacement
|
||||||
string callTree = "";
|
|
||||||
List<string> strings = new List<string>();
|
List<string> strings = new List<string>();
|
||||||
|
|
||||||
for (int i = 1; i < 10; i++)
|
for (int i = 1; i < 10; i++)
|
||||||
|
|||||||
@@ -110,7 +110,7 @@ namespace KCM.Packets
|
|||||||
{
|
{
|
||||||
if (KCServer.IsRunning && toClient != 0)
|
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)
|
catch (Exception ex)
|
||||||
|
|||||||
@@ -60,8 +60,6 @@ namespace KCM
|
|||||||
Falle
|
Falle
|
||||||
}
|
}
|
||||||
|
|
||||||
bool awake = false;
|
|
||||||
|
|
||||||
public void Start()
|
public void Start()
|
||||||
{
|
{
|
||||||
Main.helper.Log("ServerLobby start called");
|
Main.helper.Log("ServerLobby start called");
|
||||||
@@ -188,14 +186,30 @@ namespace KCM
|
|||||||
StartGameButton.GetComponentInChildren<TextMeshProUGUI>().text = "Start";
|
StartGameButton.GetComponentInChildren<TextMeshProUGUI>().text = "Start";
|
||||||
StartGameButton.onClick.AddListener(() =>
|
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()
|
new WorldSeed()
|
||||||
{
|
{
|
||||||
Seed = World.inst.seed
|
Seed = definitiveSeed
|
||||||
}.SendToAll(KCClient.client.Id);
|
}.SendToAll(KCClient.client.Id);
|
||||||
|
|
||||||
new StartGame().SendToAll();
|
new StartGame().SendToAll();
|
||||||
|
|||||||
Reference in New Issue
Block a user