|
|
|
|
@ -5,16 +5,21 @@ using Godot;
|
|
|
|
|
namespace Evolution.scripts;
|
|
|
|
|
|
|
|
|
|
public partial class World : Node3D {
|
|
|
|
|
|
|
|
|
|
public static World Instance { get; private set; }
|
|
|
|
|
public int BoxCount { get; private set; }
|
|
|
|
|
|
|
|
|
|
private readonly List<PackedScene> boxScenes = new();
|
|
|
|
|
private double maxTimer = 0.1;
|
|
|
|
|
private double maxTimer = 0.01;
|
|
|
|
|
private double timer;
|
|
|
|
|
private double fpsTimer;
|
|
|
|
|
private Label fpsLabel;
|
|
|
|
|
private Label boxesLabel;
|
|
|
|
|
private int frameCount;
|
|
|
|
|
private readonly List<int> frameCounts = new();
|
|
|
|
|
public override void _Ready()
|
|
|
|
|
{
|
|
|
|
|
// boxScenes.AddRange(GD.Load<List<PackedScene>>("res://*Box.tscn"));
|
|
|
|
|
public override void _Ready() {
|
|
|
|
|
Instance = this;
|
|
|
|
|
|
|
|
|
|
boxScenes.Add(GD.Load<PackedScene>("res://scenes/GreenBox.tscn"));
|
|
|
|
|
boxScenes.Add(GD.Load<PackedScene>("res://scenes/OrangeBox.tscn"));
|
|
|
|
|
boxScenes.Add(GD.Load<PackedScene>("res://scenes/PurpleBox.tscn"));
|
|
|
|
|
@ -22,6 +27,7 @@ public partial class World : Node3D {
|
|
|
|
|
boxScenes.Add(GD.Load<PackedScene>("res://scenes/Box.tscn"));
|
|
|
|
|
|
|
|
|
|
fpsLabel = GetNode<Label>("CanvasGroup/FPS");
|
|
|
|
|
boxesLabel = GetNode<Label>("CanvasGroup/Boxes");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override void _Process(double delta) {
|
|
|
|
|
@ -42,7 +48,14 @@ public partial class World : Node3D {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void CreateNewBox() {
|
|
|
|
|
BoxCount++;
|
|
|
|
|
Node newBox = boxScenes[GD.RandRange(0, boxScenes.Count - 1)].Instantiate();
|
|
|
|
|
AddChild(newBox);
|
|
|
|
|
boxesLabel.Text = $"Boxes: {BoxCount}";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void DestroyBox() {
|
|
|
|
|
BoxCount--;
|
|
|
|
|
boxesLabel.Text = $"Boxes: {BoxCount}";
|
|
|
|
|
}
|
|
|
|
|
}
|