diff options
| author | J08nY | 2017-04-24 02:23:37 +0200 |
|---|---|---|
| committer | J08nY | 2017-04-24 02:23:37 +0200 |
| commit | 8f1613ca0fab95fe837d9278e7829f70fb7bc934 (patch) | |
| tree | 572ebdce96d1e1734d5175d646fe2248d483cff2 /scripts/combinator_panel.gd | |
| parent | cfe4ce0fb4705a6c231528d60e4833c4dc2ec68f (diff) | |
| download | ld38-8f1613ca0fab95fe837d9278e7829f70fb7bc934.tar.gz ld38-8f1613ca0fab95fe837d9278e7829f70fb7bc934.tar.zst ld38-8f1613ca0fab95fe837d9278e7829f70fb7bc934.zip | |
Diffstat (limited to 'scripts/combinator_panel.gd')
| -rw-r--r-- | scripts/combinator_panel.gd | 72 |
1 files changed, 63 insertions, 9 deletions
diff --git a/scripts/combinator_panel.gd b/scripts/combinator_panel.gd index c4822e8..65ba69b 100644 --- a/scripts/combinator_panel.gd +++ b/scripts/combinator_panel.gd @@ -1,10 +1,22 @@ extends Panel -var Items = preload("res://scripts/items.gd") +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): @@ -14,8 +26,26 @@ func _on_Tree_gui_input( ev ): #print(ev) pass -func get_items(): - 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") @@ -24,13 +54,37 @@ func _on_add_pressed(): print(player.storage) print(storage.get_selected()) - if player.has_item(storage.get_selected()): - print("has") - player.remove_item(storage.get_selected(), 1) + 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(): - pass # replace with function body - + var player = get_tree().get_root().get_node("Game/Player") + var item = self.get_selected() + if item != null: + print(item) + var node = self.tree.get_selected() + node.deselect(0) + print(node) + 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() + 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
\ No newline at end of file |
