better menu
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user