aboutsummaryrefslogtreecommitdiff
path: root/client/map/item_factory.gd
diff options
context:
space:
mode:
Diffstat (limited to 'client/map/item_factory.gd')
-rw-r--r--client/map/item_factory.gd24
1 files changed, 15 insertions, 9 deletions
diff --git a/client/map/item_factory.gd b/client/map/item_factory.gd
index e38ca108..66b43cb2 100644
--- a/client/map/item_factory.gd
+++ b/client/map/item_factory.gd
@@ -17,21 +17,24 @@ class_name ItemFactory
extends Object
class ItemName:
+ var raw: String
var name: String
- var contents: Array
+ var contents: PackedStringArray
func _init(raw_name: String):
+ raw = raw_name
var c = Array(raw_name.split(":"))
name = c[0]
contents = c[1].split(",") if c.size() > 1 else []
static func produce(raw_name: String, owned_by: Node3D) -> Item:
- var item: Item = produce_inner(raw_name, owned_by)
+ var name = ItemName.new(raw_name)
+ var item: Item = produce_inner(name, owned_by)
+ item.add_contents(name.contents)
item.item_name = raw_name
return item
-static func produce_inner(raw_name: String, owned_by: Node3D) -> Item:
- var item = ItemName.new(raw_name)
+static func produce_inner(item: ItemName, owned_by: Node3D) -> Item:
match item.name:
"bun": return Bun.new(owned_by)
"cheese": return Cheese.new(owned_by)
@@ -52,7 +55,7 @@ static func produce_inner(raw_name: String, owned_by: Node3D) -> Item:
"noodles": return GenericItem.new(owned_by, preload("res://map/items/noodles.tscn"))
"rolled-dough": return GenericItem.new(owned_by, preload("res://map/items/rolled_dough.tscn"))
"strawberry-mochi": return Mochi.new(owned_by, Color(.98, .70, .75))
- "nigiri": return Nigiri.new(owned_by)
+ "nigiri": return GenericItem.new(owned_by, preload("res://map/items/nigiri.tscn"))
"steak": return GenericItem.new(owned_by, preload("res://map/items/steak.tscn"))
"seared-steak": return GenericItem.new(owned_by, preload("res://map/items/seared_steak.tscn"))
"patty": return GenericItem.new(owned_by, preload("res://map/items/patty.tscn"))
@@ -66,15 +69,18 @@ static func produce_inner(raw_name: String, owned_by: Node3D) -> Item:
"sliced-lettuce": return SlicedLettuce.new(owned_by)
"potato": return Potato.new(owned_by)
"sliced-potato": return GenericItem.new(owned_by, preload("res://map/items/sliced_potato.tscn"))
- "dirty-plate": return Plate.new(owned_by, ["dirt"])
+ "dirty-plate":
+ var plate = Plate.new(owned_by)
+ plate.add_contents(["dirt"])
+ return plate
"pot": return Pot.new(owned_by, item.contents)
"basket": return Basket.new(owned_by, item.contents)
"pan": return Pan.new(owned_by, item.contents)
- "foodprocessor": return FoodProcessor.new(owned_by, item.contents)
+ "foodprocessor": return FoodProcessor.new(owned_by)
"glass": return Glass.new(owned_by, item.contents)
- "plate": return Plate.new(owned_by, item.contents)
+ "plate": return Plate.new(owned_by)
"unknown-order": return GenericItem.new(owned_by, preload("res://map/items/unknown_order.tscn"))
- _: return UnknownItem.new(owned_by, raw_name)
+ _: return UnknownItem.new(owned_by, item.raw)