# Undercooked - a game about cooking # Copyright 2024 nokoe # # 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 . # class_name TileFactory extends Object static func produce(tile_name: String, node_name: String, neighbors: Array) -> Tile: match tile_name: "trash": return Trash.new(node_name, neighbors) "tomato-crate": return TomatoCrate.new(node_name, neighbors) "cuttingboard": return CuttingBoard.new(node_name, neighbors) "counter": return CounterBase.new(node_name, neighbors) "flour-crate": return FlourCounter.new(node_name, neighbors) "oven": return Oven.new(node_name, neighbors) "raw-steak-crate": return RawSteakCrate.new(node_name, neighbors) "stove": return Stove.new(node_name, neighbors) "sink": return Sink.new(node_name, neighbors) "dirty-plate-crate": return CounterBase.new(node_name, neighbors) "wall": return Wall.new(node_name, neighbors) "chair": return Chair.new(node_name, neighbors) "table": return Table.new(node_name, neighbors) "floor": return Floor.new(node_name, neighbors) "counter-window": return CounterWindow.new(node_name, neighbors) "wall-window": return WallWindow.new(node_name, neighbors) "door": return Door.new(node_name, neighbors) "leek-crate": return LeekCrate.new(node_name, neighbors) "tree": return ExteriorTree.new(node_name, neighbors) "grass": return Grass.new(node_name, neighbors) var t: push_warning("tile %s unknown" % t) return GenericTile.new(node_name, neighbors, t)