From a3019beef12fa599666a675908dc80fdb9ad21a6 Mon Sep 17 00:00:00 2001 From: orosmatthew Date: Tue, 25 Jan 2022 12:33:18 -0500 Subject: [PATCH] randomize seed for menu --- Main.cs | 23 +++- MainMenu/MainMenu.cs | 27 +++-- MainMenu/MainMenu.tscn | 101 +++++++++++------- ParticleSimulation/ParticleSimulationScene.cs | 6 +- 4 files changed, 104 insertions(+), 53 deletions(-) diff --git a/Main.cs b/Main.cs index 71b13b2..465767c 100644 --- a/Main.cs +++ b/Main.cs @@ -1,24 +1,37 @@ using Godot; using System; +using Particles.ParticleSimulation; public class Main : Node { - public void StartSimulation(int seed, int nParticles) + public int Seed; + private int _nParticles; + + public void StartSimulation(int nParticles) { + _nParticles = nParticles; var particleSimulationPackedScene = GD.Load("res://ParticleSimulation/ParticleSimulationScene.tscn"); var particleSimulationScene = particleSimulationPackedScene.Instance(); - particleSimulationScene.Name = "Simulation"; + particleSimulationScene.Name = Seed.ToString(); AddChild(particleSimulationScene); - particleSimulationScene.Initialize(seed, nParticles); + particleSimulationScene.Initialize(nParticles); GetNode("MainMenu").Hide(); - //OS.WindowResizable = false; } public void ExitToMenu() { - GetNode("Simulation").QueueFree(); + GetNode(Seed.ToString()).QueueFree(); GetNode("MainMenu").Show(); + GetNode("MainMenu").RefreshSeedText(); + } + + public void RestartSimulation() + { + GetNode(Seed.ToString()).Hide(); + GetNode(Seed.ToString()).QueueFree(); + Seed = (int) GD.Randi(); + StartSimulation(_nParticles); } } diff --git a/MainMenu/MainMenu.cs b/MainMenu/MainMenu.cs index 572299f..fb72d83 100644 --- a/MainMenu/MainMenu.cs +++ b/MainMenu/MainMenu.cs @@ -1,5 +1,4 @@ using Godot; -using System; public class MainMenu : Control { @@ -10,6 +9,7 @@ public class MainMenu : Control private Button _toggleFullScreenButton; private TextEdit _seedText; private TextEdit _particleCountText; + private Button _randomizeButton; public override void _Ready() { @@ -17,25 +17,33 @@ public class MainMenu : Control _main = GetTree().Root.GetNode
("Main"); _simulateButton = GetNode("MenuButtons").GetNode