summaryrefslogtreecommitdiff
path: root/scripts/items.gd
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/items.gd')
-rw-r--r--scripts/items.gd53
1 files changed, 51 insertions, 2 deletions
diff --git a/scripts/items.gd b/scripts/items.gd
index a6ca8be..e2a1106 100644
--- a/scripts/items.gd
+++ b/scripts/items.gd
@@ -1,5 +1,9 @@
extends Object
+const icon_triangle = preload("res://assets/triangle.png")
+const icon_waves = preload("res://assets/waves.png")
+const icon_triangles = preload("res://assets/triangles.png")
+
var data = null
func _init():
@@ -9,9 +13,54 @@ func _init():
file.close()
self.data = parse_json(content)
+class Item:
+ extends Object
+
+ var data
+ var category
+ var icon
+
+ func _init(category, data, icon):
+ self.category = category
+ self.data = data
+ self.icon = icon
+
+ func id():
+ return data["id"]
+
+ func insert_in_tree(tree, parent=null):
+ var item = tree.create_item(parent)
+ item.set_text(0, data["name"])
+ item.set_tooltip(0, data["desc"])
+ item.set_metadata(0, data)
+ item.set_icon_max_width(0, 20)
+ if self.icon != null:
+ item.set_icon(0, self.icon)
+ return item
+
+ func insert_in_shop(tree, parent=null):
+ var item = self.insert_in_tree(tree, parent)
+ item.set_text(1, str(data["cost"]))
+
+func _get_icon(category):
+ if category == "solid":
+ return self.icon_triangle
+ elif category == "gas":
+ return self.icon_waves
+ elif category == "precursor":
+ pass
+ elif category == "life":
+ return self.icon_triangles
+
func get(id):
for cat in self.data.keys():
for item in self.data[cat]:
if item["id"] == id:
- return item
- return null \ No newline at end of file
+ return Item.new(cat, item, self._get_icon(cat))
+ return null
+
+func category(id):
+ for cat in self.data.keys():
+ for item in self.data[cat]:
+ if item["id"] == id:
+ return cat \ No newline at end of file