diff options
Diffstat (limited to 'client/map/item_factory.gd')
-rw-r--r-- | client/map/item_factory.gd | 24 |
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) |