-
Notifications
You must be signed in to change notification settings - Fork 16
/
Copy pathGUI.gd
124 lines (81 loc) · 2.33 KB
/
GUI.gd
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
extends CenterContainer
var grid
var next
var music = 0
var sound = 0
var min_vol
var level = 1 setget set_level
var score = 0 setget set_score
var high_score = 0 setget set_high_score
var lines = 0 setget set_lines
signal button_pressed(button_name)
func set_level(value):
find_node("Level").text = str(value)
level = value
func set_score(value):
find_node("Score").text = str(value)
score = value
func set_high_score(value):
find_node("HighScore").text = "%08d" % value
high_score = value
func set_lines(value):
find_node("Lines").text = str(value)
lines = value
func reset_stats(_high_score = 0, _score = 0, _lines = 0, _level = 1):
self.high_score = _high_score
self.score = _score
self.lines = _lines
self.level = _level
func settings(data):
self.high_score = data.high_score
find_node("Music").value = data.music
find_node("Sound").value = data.sound
func _ready():
grid = find_node("Grid")
next = find_node("Next")
min_vol = find_node("Music").get_min()
find_node("Sound").set_min(min_vol)
add_cells(grid, 200)
clear_all_cells()
func set_next_shape(shape: ShapeData):
clear_cells(next)
var i = 0
for col in shape.coors.size():
for row in [0, 1]:
if shape.grid[row][col]:
next.get_child(i).modulate = shape.color
i += 1
func add_cells(node, n):
var num_cells = node.get_child_count()
while num_cells < n:
node.add_child(node.get_child(0).duplicate())
num_cells += 1
func clear_all_cells():
clear_cells(grid)
clear_cells(next)
func clear_cells(node):
for cell in node.get_children():
cell.modulate = Color(0)
func _on_About_button_down():
$AboutBox.popup_centered()
emit_signal("button_pressed", "About")
func _on_NewGame_button_down():
emit_signal("button_pressed", "NewGame")
func _on_Pause_button_down():
emit_signal("button_pressed", "Pause")
func set_button_state(button, state):
find_node(button).set_disabled(state)
func set_button_text(button, text):
find_node(button).set_text(text)
func _on_AboutBox_popup_hide():
set_button_state("About", false)
func set_button_states(playing):
set_button_state("NewGame", playing)
set_button_state("About", playing)
set_button_state("Pause", !playing)
func _on_Music_value_changed(value):
music = value
emit_signal("button_pressed", "Music")
func _on_Sound_value_changed(value):
sound = value
emit_signal("button_pressed", "Sound")