blob: b8351f730ff98422efa234ec462a9cafa9d7cd4b (
plain)
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
|
extends CanvasLayer
@onready var grid_selector: GridSelector = get_tree().get_first_node_in_group("grid_selector")
func _ready() -> void:
visible = false
grid_selector.selected.connect(func(node: Node2D):
grid_selector.process_mode = Node.PROCESS_MODE_DISABLED
visible = true
if node.current_team == grid_selector.current_team:
$PanelContainer/VBoxContainer/Button.visible = true
$PanelContainer/VBoxContainer/Button2.visible = true
$PanelContainer/VBoxContainer/Button.grab_focus()
else:
$PanelContainer/VBoxContainer/Button.visible = false
$PanelContainer/VBoxContainer/Button2.visible = false
$PanelContainer/VBoxContainer/Button3.grab_focus()
)
grid_selector.move_mode_exited.connect(func():
grid_selector.current_state = grid_selector.state_select
grid_selector.process_mode = Node.PROCESS_MODE_DISABLED
visible = true
$PanelContainer/VBoxContainer/Button.grab_focus()
)
grid_selector.range_select_confirmed.connect(func(grid_position: Vector2i, _entity: Node2D):
grid_selector.current_state = grid_selector.state_select
grid_selector.current_state.draw(grid_position)
)
grid_selector.range_select_exited.connect(func():
grid_selector.current_state = grid_selector.state_select
)
func _input(event: InputEvent) -> void:
if not visible:
return
if event.is_action_pressed("left_click"):
for button: Button in $PanelContainer/VBoxContainer.get_children():
if button.has_focus():
button.pressed.emit()
break
elif event.is_action_pressed("right_click"):
visible = false
grid_selector.process_mode = Node.PROCESS_MODE_INHERIT
func _on_button_pressed() -> void:
grid_selector.process_mode = Node.PROCESS_MODE_INHERIT
grid_selector.current_state = grid_selector.state_move_mode
visible = false
func _on_button_2_pressed() -> void:
grid_selector.process_mode = Node.PROCESS_MODE_INHERIT
grid_selector.current_state = grid_selector.state_range_select
visible = false
|