# Hurry Curry! - a game about cooking # Copyright 2024 nokoe # Copyright 2024 tpart # # 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 Plate extends Item func _init(owned_by_: Node3D, contents: Array): super(owned_by_) add_child(load("res://map/items/plate.tscn").instantiate()) # Custom logic for handling burgers with buns on bottom and top if contents.has("sliced-bun"): contents.erase("sliced-bun") contents.push_front("sliced-bun-bottom") contents.push_back("sliced-bun-top") # Stack content items on top of each other var height_sum := 0. for c in contents: var item: Item match c: "curry": item = PlateFill.new(self, Color(.75, .45, .1)) "tomato-soup": item = PlateFill.new(self, Color(1., .3, .2)) _: item = ItemFactory.produce(c, base) base.add_child(item) item.position.y = height_sum @warning_ignore("static_called_on_instance") height_sum += item.height() func setup_sounds(): take_sound.setup([preload("res://map/items/sounds/plate_take.ogg")]) put_sound.setup([preload("res://map/items/sounds/plate_put.ogg")]) static func base_position() -> Vector3: return Vector3(0., 0.05, 0.)