blob: 18c91ca574ee05874222b56eec699e816e065575 (
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
extends Panel
const Items = preload("res://scripts/items.gd")
var items = null
var tree
func _ready():
self.items = Items.new()
self.tree = get_node("tree")
self.tree.create_item()
self.tree.set_columns(2)
self.tree.set_column_title(0, "Item")
self.tree.set_column_title(1, "Amount")
self.tree.set_column_titles_visible(true)
self.tree.set_column_expand(1, false)
self.tree.set_column_min_width(1,60)
self.tree.set_hide_root(true)
self.tree.set_select_mode(Tree.SELECT_ROW)
set_process_input(true)
func _input(event):
print(event)
func _on_Tree_gui_input( ev ):
#print(ev)
pass
func get_ids():
var ids = []
var root = self.tree.get_root()
if root == null:
return ids
var node = root.get_children()
while node != null:
ids.append(node.get_metadata(0)["id"])
node = node.get_next()
return ids
func clear_all():
var root = self.tree.get_root()
if root == null:
return
var node = root.get_children()
while node != null:
root.remove_child(node)
node = node.get_next()
self.tree.update()
func _on_add_pressed():
var player = get_tree().get_root().get_node("Game/Player")
var storage = get_tree().get_root().get_node("Game/HUD/right/storage")
var item = storage.get_selected()
if item != null and player.has_item(item["id"]):
var itm = player.get_item(item["id"])
player.remove_item(item["id"], 1)
var root = self.tree.get_root()
var line = itm.insert_in_tree(tree, root)
line.set_text(1, "1")
func _on_remove_pressed():
var player = get_tree().get_root().get_node("Game/Player")
var item = self.get_selected()
if item != null:
var node = self.tree.get_selected()
node.deselect(0)
var root = self.tree.get_root()
root.remove_child(node)
self.tree.update()
player.add_item(item["id"], 1)
func _on_storage_pressed():
get_tree().get_root().get_node("Game/HUD").popup("storage")
func get_selected():
var root = self.tree.get_root()
if root == null:
return null
var itm = root.get_children()
while itm != null:
if itm.is_selected(0):
return itm.get_metadata(0)
itm = itm.get_next()
return null
|