aboutsummaryrefslogtreecommitdiff
path: root/client/map/item_factory.gd
blob: 014c80b4fada4527bc4fad75741bfabad080dda6 (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
86
87
88
89
90
91
92
93
# Hurry Curry! - a game about cooking
# Copyright 2024 nokoe
# Copyright 2024 metamuffin
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, version 3 of the License only.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program.  If not, see <https://www.gnu.org/licenses/>.
#
class_name ItemFactory
extends Object

static func produce(name: String, owned_by: Node3D) -> Item:
	match name:
		"bread-slice": return BreadSlice.new(owned_by)
		"bread": return Bread.new(owned_by)
		"burned": return Burned.new(owned_by)
		"coconut": return Coconut.new(owned_by)
		"dough": return Dough.new(owned_by)
		"fish": return Fish.new(owned_by)
		"flour": return Flour.new(owned_by)
		"leek": return Leek.new(owned_by)
		"nigiri": return Nigiri.new(owned_by)
		"raw-steak": return RawSteak.new(owned_by)
		"rice": return Rice.new(owned_by)
		"sliced-fish": return SlicedFish.new(owned_by)
		"sliced-tomato-plate": return PlateItems.SlicedTomatoP.new(owned_by)
		"sliced-tomato-steak-plate": return PlateItems.SlicedTomatoSteakP.new(owned_by)
		"sliced-tomato": return SlicedTomato.new(owned_by)
		"strawberry": return Strawberry.new(owned_by)
		"tomato": return Tomato.new(owned_by)

		"pot": return Pot.new(owned_by)
		"burned-pot": return PotItems.BurnedP.new(owned_by)
		"cooked-rice-pot": return PotItems.CookedRiceP.new(owned_by)
		"curry-pot": return PotItems.CurryP.new(owned_by)
		"leek-milk-pot": return PotItems.LeekMilkP.new(owned_by)
		"leek-milk-tomato-pot": return PotItems.LeekMilkTomatoP.new(owned_by)
		"leek-pot": return PotItems.LeekP.new(owned_by)
		"leek-tomato-juice-pot": return PotItems.LeekTomatoJuiceP.new(owned_by)
		"leek-tomato-pot": return PotItems.LeekTomatoP.new(owned_by)
		"milk-pot": return PotItems.MilkP.new(owned_by)
		"milk-tomato-pot": return PotItems.MilkTomatoP.new(owned_by)
		"mochi-dough-pot": return PotItems.MochiDoughP.new(owned_by)
		"raw-steak-pot": return PotItems.RawSteakP.new(owned_by)
		"rice-flour-pot": return PotItems.RiceFlourP.new(owned_by)
		"rice-pot": return PotItems.RiceP.new(owned_by)
		"steak-pot": return PotItems.SteakP.new(owned_by)
		"tomato-juice-pot": return PotItems.TomatoJuiceP.new(owned_by)
		"tomato-pot": return PotItems.TomatoP.new(owned_by)
		"tomato-soup-pot": return PotItems.TomatoSoupP.new(owned_by)

		"foodprocessor": return FoodProcessor.new(owned_by)
		"coconut-foodprocessor": return FoodProcessorItems.CoconutF.new(owned_by)
		"coconut-strawberry-puree-foodprocessor": return FoodProcessorItems.CoconutStrawberryPureeF.new(owned_by)
		"dough-foodprocessor": return FoodProcessorItems.DoughF.new(owned_by)
		"flour-foodprocessor": return FoodProcessorItems.FlourF.new(owned_by)
		"milk-foodprocessor": return FoodProcessorItems.MilkF.new(owned_by)
		"milk-strawberry-foodprocessor": return FoodProcessorItems.MilkStrawberryF.new(owned_by)
		"rice-flour-foodprocessor": return FoodProcessorItems.RiceFlourF.new(owned_by)
		"rice-foodprocessor": return FoodProcessorItems.RiceF.new(owned_by)
		"strawberry-foodprocessor": return FoodProcessorItems.StrawberryF.new(owned_by)
		"strawberry-icecream-foodprocessor": return FoodProcessorItems.StrawberryIcecreamF.new(owned_by)
		"strawberry-puree-foodprocessor": return FoodProcessorItems.StrawberryPureeF.new(owned_by)
		"strawberry-shake-foodprocessor": return FoodProcessorItems.StrawberryShakeF.new(owned_by)
		"tomato-foodprocessor": return FoodProcessorItems.TomatoF.new(owned_by)
		"tomato-juice-foodprocessor": return FoodProcessorItems.TomatoJuiceF.new(owned_by)

		"glass": return Glass.new(owned_by)
		"water-glass": return GlassItems.WaterG.new(owned_by)
		"strawberry-shake-glass": return GlassItems.StrawberryShakeG.new(owned_by)

		"plate": return Plate.new(owned_by)
		"bread-slice-plate": return PlateItems.BreadSliceP.new(owned_by)
		"bread-slice-sliced-tomato-plate": return PlateItems.BreadSliceSlicedTomatoP.new(owned_by)
		"bread-slice-sliced-tomato-steak-plate": return PlateItems.BreadSliceSlicedTomatoSteakP.new(owned_by)
		"bread-slice-steak-plate": return PlateItems.BreadSliceSteakP.new(owned_by)
		"curry-plate": return PlateItems.CurryP.new(owned_by)
		"strawberry-icecream-plate": return PlateItems.StrawberryIcecreamP.new(owned_by)

		"dirty-plate": return PlateItems.DirtyP.new(owned_by)
		"nigiri-plate": return PlateItems.NigiriP.new(owned_by)
		"steak-plate": return PlateItems.SteakP.new(owned_by)
		"tomato-soup-plate": return PlateItems.TomatoSoupP.new(owned_by)

		var t: return GenericItem.new(owned_by, t)