particles/Main.cs

45 lines
1.2 KiB
C#

using Godot;
using System;
using Particles.ParticleSimulation;
public class Main : Node
{
public int Seed;
public float Zoom;
private int _nParticles;
public override void _Ready()
{
OS.MinWindowSize = new Vector2(1024, 600);
}
public void StartSimulation(int nParticles)
{
_nParticles = nParticles;
var particleSimulationPackedScene = GD.Load<PackedScene>("res://ParticleSimulation/ParticleSimulationScene.tscn");
var particleSimulationScene = particleSimulationPackedScene.Instance<ParticleSimulationScene>();
particleSimulationScene.Name = Seed.ToString();
AddChild(particleSimulationScene);
particleSimulationScene.Initialize(Seed, nParticles, Zoom);
GetNode<Control>("MainMenu").Hide();
}
public void ExitToMenu()
{
GetNode(Seed.ToString()).QueueFree();
GetNode<Control>("MainMenu").Show();
GetNode<MainMenu>("MainMenu").RefreshSeedText();
}
public void RestartSimulation()
{
GetNode<ParticleSimulationScene>(Seed.ToString()).Hide();
GetNode(Seed.ToString()).QueueFree();
Seed = Mathf.Abs((int)GD.Randi());
StartSimulation(_nParticles);
}
}