diff options
Diffstat (limited to 'client/map/tiles/full_tile.gd')
| -rw-r--r-- | client/map/tiles/full_tile.gd | 49 | 
1 files changed, 49 insertions, 0 deletions
diff --git a/client/map/tiles/full_tile.gd b/client/map/tiles/full_tile.gd new file mode 100644 index 00000000..2da54237 --- /dev/null +++ b/client/map/tiles/full_tile.gd @@ -0,0 +1,49 @@ +# 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 <https://www.gnu.org/licenses/>. +#  +class_name FullTile +extends Floor + +var static_body = StaticBody3D.new() +var item: Node3D = null + +func _init(rename: String, neighbors: Array): +	super(rename, neighbors) +	var shape = CollisionShape3D.new() +	var box = BoxShape3D.new() +	shape.position.y += .5 +	shape.shape = box +	shape.name = "Box" +	static_body.add_child(shape) +	static_body.name = "Body" +	base.add_child(static_body) + +# defines where items go when interacting +static func interact_target() -> Vector3: +	return Vector3(0, 0, 0) + +# actions when interacting, e.g. animations +func interact(): +	pass + +func put_item(i: Node3D): +	if item != null: +		push_error("already holding an item") +	item = i + +func take_item() -> Node3D: +	var i = item +	item = null +	return i  |