summaryrefslogtreecommitdiff
path: root/Tray.gd
blob: 2ff15a982bbf361ac5a85de8b41cf3216885085a (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
extends Control


var TrayItemScene = preload("res://TrayItem.tscn")

var is_open = true


func _ready():
	for i in range(5):
		add_item()
	
	await get_tree().process_frame
	_on_resized()


func add_item():
	var tray_item = TrayItemScene.instantiate()
	%Items.add_child(tray_item)


func open():
	is_open = true
	var tween = create_tween()
	tween.tween_property(
		self,
		"global_position",
		Vector2(get_viewport_rect().end.x - size.x, position.y),
		0.25
	)


func close():
	is_open = false
	var tween = create_tween()
	tween.tween_property(
		self,
		"global_position",
		Vector2(get_viewport_rect().end.x, position.y),
		0.25
	)


func _on_resized():
	%Button.global_position = global_position - Vector2(%Button.size.x, 0)
	
	var shape = RectangleShape2D.new()
	shape.size = size
	$Area2D/CollisionShape2D.shape = shape
	$Area2D/CollisionShape2D.position = size / 2


func _on_button_pressed():
	if is_open:
		close()
	else:
		open()