-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathLevelButton.gd
58 lines (41 loc) · 1.29 KB
/
LevelButton.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
@tool
extends PanelContainer
@export var locked = false:
set = set_locked
@export var level_num = 1:
set = set_level
@onready var lock = $MarginContainer/Lock
@onready var label = $Label
func _ready():
locked = level_num > (GlobalVariables.load_data()).levels
var resource = load("res://sprites/ui/levels/" + str(level_num) + ".png")
label.texture = resource
func set_locked(value):
locked = value
if not is_inside_tree():
await ready
lock.visible = value
label.visible = not value
func set_level(value):
level_num = value
if not is_inside_tree():
await ready
var resource = load("res://sprites/ui/levels/" + str(level_num) + ".png")
label.texture = resource
func _on_gui_input(event):
if locked:
return
if event is InputEventMouseButton and event.pressed:
print("ENTERING LEVEL...", level_num)
var data = GlobalVariables.load_data();
data.CurrentLevel = level_num
data.CurrentEnemies = []
GlobalVariables.save_data(data)
Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)
GlobalVariables.CheckPointPosition = null
get_tree().change_scene_to_file("res://levels/level_" + str(level_num) + ".tscn")
func _on_mouse_entered():
if (!locked):
GlobalVariables.CurrentSelectedLevel = level_num
func _on_mouse_exited():
GlobalVariables.CurrentSelectedLevel = -1