aboutsummaryrefslogtreecommitdiff
path: root/client/map/map.gd
diff options
context:
space:
mode:
authornokoe <nokoe@mailbox.org>2024-06-25 00:14:48 +0200
committernokoe <nokoe@mailbox.org>2024-06-25 00:15:24 +0200
commitcf11d11099b8ddc03dc0c26f590193d35ba1bafd (patch)
treebe36250dd56e7a064d09335379de9770101fd484 /client/map/map.gd
parenta0572f92fddb1ddc1f4d62f22f8ecfb1f623bf21 (diff)
downloadhurrycurry-cf11d11099b8ddc03dc0c26f590193d35ba1bafd.tar
hurrycurry-cf11d11099b8ddc03dc0c26f590193d35ba1bafd.tar.bz2
hurrycurry-cf11d11099b8ddc03dc0c26f590193d35ba1bafd.tar.zst
more recipes, add tile factory
Diffstat (limited to 'client/map/map.gd')
-rw-r--r--client/map/map.gd46
1 files changed, 5 insertions, 41 deletions
diff --git a/client/map/map.gd b/client/map/map.gd
index a26da0fd..14e7698a 100644
--- a/client/map/map.gd
+++ b/client/map/map.gd
@@ -2,67 +2,31 @@
# Copyright 2024 nokoe
# Copyright 2024 tpart
# 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 Map
extends Node3D
var tile_by_pos: Dictionary = {}
func update(pos, tile_name, neighbors):
- var instance: Floor
var node_name = str(pos)
if has_node(node_name):
queue_free_rename(get_node(node_name))
- match tile_name:
- "trash":
- instance = Trash.new(node_name, neighbors)
- "tomato-crate":
- instance = TomatoCrate.new(node_name, neighbors)
- "cuttingboard":
- instance = CuttingBoard.new(node_name, neighbors)
- "counter":
- instance = CounterBase.new(node_name, neighbors)
- "flour-crate":
- instance = FlourCounter.new(node_name, neighbors)
- "oven":
- instance = Oven.new(node_name, neighbors)
- "raw-steak-crate":
- instance = RawSteakCrate.new(node_name, neighbors)
- "stove":
- instance = Stove.new(node_name, neighbors)
- "sink":
- instance = Sink.new(node_name, neighbors)
- "dirty-plate-crate":
- instance = CounterBase.new(node_name, neighbors)
- "wall":
- instance = Wall.new(node_name, neighbors)
- "chair":
- instance = Chair.new(node_name, neighbors)
- "table":
- instance = Table.new(node_name, neighbors)
- "floor":
- instance = Floor.new(node_name, neighbors)
- "window":
- instance = WallWindow.new(node_name, neighbors)
- "door":
- instance = Door.new(node_name, neighbors)
- var t:
- push_warning("tile tile %s unknown" % t)
- instance = GenericTile.new(node_name, neighbors, t)
+ var instance: Floor = TileFactory.produce(tile_name, node_name, neighbors)
instance.position = Vector3(pos[0], 0, pos[1])
tile_by_pos[str(Vector2i(pos[0], pos[1]))] = instance