-
Notifications
You must be signed in to change notification settings - Fork 0
/
Main.cs
49 lines (43 loc) · 1.14 KB
/
Main.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
using Godot;
public partial class Main : Node
{
Game game;
bool paused = false;
public override void _Ready() {
GD.Randomize();
}
public void OnStartGame(bool vsCpu) {
game = ResourceLoader.Load<PackedScene>("res://game.tscn").Instantiate() as Game;
AddChild(game);
GetNode<Menu>("MainMenu").QueueFree();
game.StartGame(vsCpu);
}
public void OnMainMenu() {
Menu menu = ResourceLoader.Load<PackedScene>("res://main_menu.tscn").Instantiate() as Menu;
AddChild(menu);
menu.StartGame += OnStartGame;
game.QueueFree();
game = null;
GetNode<PauseMenu>("PauseMenu")?.QueueFree();
GetTree().Paused = false;
}
public void OnUnpause() {
GetTree().Paused = false;
GetNode<PauseMenu>("PauseMenu")?.QueueFree();
}
public override void _UnhandledInput(InputEvent @event) {
if(game == null) return;
if(@event.IsActionPressed("pause")) {
if(GetTree().Paused) {
OnUnpause();
}
else {
GetTree().Paused = true;
PauseMenu pause = ResourceLoader.Load<PackedScene>("res://pause_menu.tscn").Instantiate() as PauseMenu;
AddChild(pause);
pause.Resume += OnUnpause;
pause.MainMenu += OnMainMenu;
}
}
}
}