-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPipes.gd
More file actions
81 lines (66 loc) · 2.65 KB
/
Pipes.gd
File metadata and controls
81 lines (66 loc) · 2.65 KB
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
extends Node2D
class_name Pipes
signal door_opened(door : int)
signal door_closed(door : int)
enum {
TOP_LEFT,
TOP_RIGHT,
BOTTOM_LEFT,
BOTTOM_RIGHT
}
func open_door(door : int) -> void:
match door:
TOP_LEFT:
var tween = get_tree().create_tween().set_parallel(true)
tween.tween_property($TopDoor1L, "position", $TopDoor1L.get_meta("open"), 1)
tween.tween_property($TopDoor1R, "position", $TopDoor1R.get_meta("open"), 1)
tween.finished.connect(_top_left_opened)
TOP_RIGHT:
var tween = get_tree().create_tween().set_parallel(true)
tween.tween_property($TopDoor2L, "position", $TopDoor2L.get_meta("open"), 1)
tween.tween_property($TopDoor2R, "position", $TopDoor2R.get_meta("open"), 1)
tween.finished.connect(_top_right_opened)
BOTTOM_LEFT:
var tween = get_tree().create_tween().set_parallel(true)
tween.tween_property($LeftDoor, "position", $LeftDoor.get_meta("open"), 1)
tween.finished.connect(_bottom_left_opened)
BOTTOM_RIGHT:
var tween = get_tree().create_tween().set_parallel(true)
tween.tween_property($RightDoor, "position", $RightDoor.get_meta("open"), 1)
tween.finished.connect(_bottom_right_opened)
func _top_left_opened() -> void:
door_opened.emit(TOP_LEFT)
func _top_right_opened() -> void:
door_opened.emit(TOP_RIGHT)
func _bottom_left_opened() -> void:
door_opened.emit(BOTTOM_LEFT)
func _bottom_right_opened() -> void:
door_opened.emit(BOTTOM_LEFT)
func close_door(door : int) -> void:
match door:
TOP_LEFT:
var tween = get_tree().create_tween().set_parallel(true)
tween.tween_property($TopDoor1L, "position", $TopDoor1L.get_meta("closed"), 1)
tween.tween_property($TopDoor1R, "position", $TopDoor1R.get_meta("closed"), 1)
tween.finished.connect(_top_left_closed)
TOP_RIGHT:
var tween = get_tree().create_tween().set_parallel(true)
tween.tween_property($TopDoor2L, "position", $TopDoor2L.get_meta("closed"), 1)
tween.tween_property($TopDoor2R, "position", $TopDoor2R.get_meta("closed"), 1)
tween.finished.connect(_top_right_closed)
BOTTOM_LEFT:
var tween = get_tree().create_tween().set_parallel(true)
tween.tween_property($LeftDoor, "position", $LeftDoor.get_meta("closed"), 1)
tween.finished.connect(_bottom_left_closed)
BOTTOM_RIGHT:
var tween = get_tree().create_tween().set_parallel(true)
tween.tween_property($RightDoor, "position", $RightDoor.get_meta("closed"), 1)
tween.finished.connect(_bottom_right_closed)
func _top_left_closed() -> void:
door_closed.emit(TOP_LEFT)
func _top_right_closed() -> void:
door_closed.emit(TOP_RIGHT)
func _bottom_left_closed() -> void:
door_closed.emit(BOTTOM_LEFT)
func _bottom_right_closed() -> void:
door_closed.emit(BOTTOM_LEFT)