better menu

This commit is contained in:
2022-01-25 12:02:24 -05:00
parent d2ebbdef62
commit 17017d631e
7 changed files with 554 additions and 42 deletions

View File

@@ -4,24 +4,51 @@ using System;
public class MainMenu : Control
{
// Nodes for menu items
private Main _main;
private Button _simulateButton;
private Button _toggleFullScreenButton;
private TextEdit _seedText;
private TextEdit _particleCountText;
public override void _Ready()
{
// Init nodes
_main = GetTree().Root.GetNode<Main>("Main");
_simulateButton = GetNode("MenuButtons").GetNode<Button>("SimulateButton");
_toggleFullScreenButton = GetNode("MenuButtons").GetNode<Button>("ToggleFullscreenButton");
_seedText = GetNode("MenuButtons").GetNode<TextEdit>("SeedText");
_particleCountText = GetNode("MenuButtons").GetNode<TextEdit>("ParticleCountText");
// Connect signals
_simulateButton.Connect("pressed", this, nameof(_OnSimulatePressed));
_toggleFullScreenButton.Connect("pressed", this, nameof(_OnToggleFullscreenPressed));
// Random seed
GD.Randomize();
var randomSeed = (int)GD.Randi();
_seedText.Text = randomSeed.ToString();
}
public void _on_Button_pressed()
public void _OnSimulatePressed()
{
var nParticles = GetNode<VBoxContainer>("MenuButtons").GetNode<TextEdit>("TextEdit").Text.ToInt();
_main.StartSimulation(nParticles);
// Start simulation with seed and number of particles
var nParticles = _particleCountText.Text.ToInt();
var seed = _seedText.Text.ToInt();
_main.StartSimulation(seed, nParticles);
}
public void _on_ToggleFullscreen_pressed()
public void _OnToggleFullscreenPressed()
{
if (OS.WindowFullscreen)
OS.WindowFullscreen = false;
else
OS.WindowFullscreen = true;
OS.WindowFullscreen = !OS.WindowFullscreen;
}
public override void _Input(InputEvent @event)
{
// Quit only if menu is visible
if (Visible && @event.IsActionPressed("quit"))
{
GetTree().Quit();
}
}
}