diff options
35 files changed, 418 insertions, 69 deletions
| diff --git a/client/game.gd b/client/game.gd index 74842768..f3c2f81c 100644 --- a/client/game.gd +++ b/client/game.gd @@ -62,7 +62,7 @@ func _ready():  	)  	mp.connect("set_tile_item", func(tile: Vector2i, item: int): -		var t: Floor = map.tile_by_pos[str(tile)] +		var t: Tile = map.tile_by_pos[str(tile)]  		var i = ItemFactory.produce(mp.item_names[item], t.item_base)  		add_child(i)  		i.name = mp.item_names[item] @@ -70,7 +70,7 @@ func _ready():  	)  	mp.connect("remove_tile_item", func(tile: Vector2i): -		var t: Floor = map.tile_by_pos[str(tile)] +		var t: Tile = map.tile_by_pos[str(tile)]  		t.take_item().queue_free()  	) @@ -88,24 +88,24 @@ func _ready():  	)  	mp.connect("take_item", func(tile: Vector2i, player: int): -		var t: Floor = map.tile_by_pos[str(tile)] +		var t: Tile = map.tile_by_pos[str(tile)]  		var p: Player = players[player]  		p.take_item(t)  	)  	mp.connect("put_item", func(tile: Vector2i, player: int): -		var t: Floor = map.tile_by_pos[str(tile)] +		var t: Tile = map.tile_by_pos[str(tile)]  		var p: Player = players[player]  		p.put_item(t)  	)  	mp.connect("set_progress", func(tile: Vector2i, progress: float, warn: bool): -		var t: Floor = map.tile_by_pos[str(tile)] +		var t: Tile = map.tile_by_pos[str(tile)]  		t.progress(progress, warn)  	)  	mp.connect("set_finished", func(tile: Vector2i, warn: bool): -		var t: Floor = map.tile_by_pos[str(tile)] +		var t: Tile = map.tile_by_pos[str(tile)]  		t.finish(warn)  	) diff --git a/client/map/item_factory.gd b/client/map/item_factory.gd index 863a079d..86e69d1d 100644 --- a/client/map/item_factory.gd +++ b/client/map/item_factory.gd @@ -66,5 +66,9 @@ static func produce(name: String, owned_by: Node3D) -> Item:  			return LeekTomatoJuicePot.new(owned_by)  		"tomato-soup-pot":  			return TomatoSoupPot.new(owned_by) +		"tomato-soup-plate": +			return TomatoSoupPlate.new(owned_by) +		"burned": +			return Burned.new(owned_by)  		var t:  			return GenericItem.new(owned_by, t) diff --git a/client/map/items/burned.gd b/client/map/items/burned.gd new file mode 100644 index 00000000..5c98817a --- /dev/null +++ b/client/map/items/burned.gd @@ -0,0 +1,28 @@ +# 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 Burned +extends Item + +func _init(owned_by_: Node3D): +	super(owned_by_) +	var steam: CPUParticles3D = load("res://map/items/steam.tscn").instantiate() +	steam.emitting = true +	steam.color = Color(0., 0., 0.) +	add_child(load("res://map/items/burned.tscn").instantiate()) +	base.add_child(steam) + +static func base_position() -> Vector3: +	return Vector3(0., .2, 0.) diff --git a/client/map/items/burned.res b/client/map/items/burned.resBinary files differ new file mode 100644 index 00000000..b8150bc7 --- /dev/null +++ b/client/map/items/burned.res diff --git a/client/map/items/burned.tscn b/client/map/items/burned.tscn new file mode 100644 index 00000000..23cd450a --- /dev/null +++ b/client/map/items/burned.tscn @@ -0,0 +1,10 @@ +[gd_scene load_steps=2 format=3 uid="uid://b48ximtiqbwvo"] + +[ext_resource type="ArrayMesh" uid="uid://bpndpup4f6g6v" path="res://map/items/burned.res" id="1_wu5eo"] + +[node name="Burned" type="Node3D"] + +[node name="Mesh" type="MeshInstance3D" parent="."] +transform = Transform3D(0.75, 0, 0, 0, 0.75, 0, 0, 0, 0.75, 0, 0, 0) +mesh = ExtResource("1_wu5eo") +skeleton = NodePath("") diff --git a/client/map/items/exterior_tree.gd b/client/map/items/exterior_tree.gd new file mode 100644 index 00000000..d1e0b6b3 --- /dev/null +++ b/client/map/items/exterior_tree.gd @@ -0,0 +1,24 @@ +# 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 ExteriorTree +extends Grass + +func _init(rename: String, _neighbors: Array): +	super(rename, _neighbors) +	var random = RandomNumberGenerator.new() +	random.seed = rename.hash() +	var path = "res://map/tiles/tree_%s.tscn" % random.randi_range(1,5) +	base.add_child(load(path).instantiate()) diff --git a/client/map/items/grass.gd b/client/map/items/grass.gd new file mode 100644 index 00000000..3b8d4016 --- /dev/null +++ b/client/map/items/grass.gd @@ -0,0 +1,23 @@ +# 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 Grass +extends Tile + +func _init(rename: String, _neighbors: Array): +	super(rename, _neighbors) +	#var grass_tile = load("res://map/tiles/grass.tscn").instantiate() +	#grass_tile.position += Vector3(0.5, 0, 0.5) +	#add_child(floor_tile) diff --git a/client/map/items/plate_fill.gd b/client/map/items/plate_fill.gd new file mode 100644 index 00000000..ead71f11 --- /dev/null +++ b/client/map/items/plate_fill.gd @@ -0,0 +1,27 @@ +# 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 PlateFill +extends Plate + +var fill: MeshInstance3D = load("res://map/items/plate_fill.tscn").instantiate() + +func _init(owned_by_: Node3D): +	super(owned_by_) +	add_child(fill) + +func set_color(c: Color): +	var mat: BaseMaterial3D = fill.get_active_material(0) +	mat.albedo_color = c diff --git a/client/map/items/plate_fill.res b/client/map/items/plate_fill.resBinary files differ new file mode 100644 index 00000000..b21e4690 --- /dev/null +++ b/client/map/items/plate_fill.res diff --git a/client/map/items/plate_fill.tscn b/client/map/items/plate_fill.tscn new file mode 100644 index 00000000..0ecb2294 --- /dev/null +++ b/client/map/items/plate_fill.tscn @@ -0,0 +1,12 @@ +[gd_scene load_steps=3 format=3 uid="uid://btktb7yb1y0yq"] + +[ext_resource type="ArrayMesh" uid="uid://c8l6gbfjikyv3" path="res://map/items/plate_fill.res" id="1_dgygv"] + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_5o82g"] +resource_local_to_scene = true + +[node name="PlateFill" type="MeshInstance3D"] +transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 0, 0, 0) +mesh = ExtResource("1_dgygv") +skeleton = NodePath("") +surface_material_override/0 = SubResource("StandardMaterial3D_5o82g") diff --git a/client/map/items/tomato_soup_plate.gd b/client/map/items/tomato_soup_plate.gd new file mode 100644 index 00000000..91b396c4 --- /dev/null +++ b/client/map/items/tomato_soup_plate.gd @@ -0,0 +1,21 @@ +# 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 TomatoSoupPlate +extends PlateFill + +func _init(owned_by_: Node3D): +	super(owned_by_) +	set_color(Color(1., .3, .2)) diff --git a/client/map/map.gd b/client/map/map.gd index 14e7698a..d43d7b45 100644 --- a/client/map/map.gd +++ b/client/map/map.gd @@ -26,7 +26,7 @@ func update(pos, tile_name, neighbors):  	if has_node(node_name):  		queue_free_rename(get_node(node_name)) -	var instance: Floor = TileFactory.produce(tile_name, node_name, neighbors) +	var instance: Tile = 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 diff --git a/client/map/tile_factory.gd b/client/map/tile_factory.gd index bbd6e52f..9869270d 100644 --- a/client/map/tile_factory.gd +++ b/client/map/tile_factory.gd @@ -16,7 +16,7 @@  class_name TileFactory  extends Object -static func produce(tile_name: String, node_name: String, neighbors: Array) -> Floor: +static func produce(tile_name: String, node_name: String, neighbors: Array) -> Tile:  	match tile_name:  		"trash":  			return Trash.new(node_name, neighbors) @@ -52,6 +52,10 @@ static func produce(tile_name: String, node_name: String, neighbors: Array) -> F  			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 tile %s unknown" % t)  			return GenericTile.new(node_name, neighbors, t) diff --git a/client/map/tiles/bark.tres b/client/map/tiles/bark.tres new file mode 100644 index 00000000..9bfae2fe --- /dev/null +++ b/client/map/tiles/bark.tres @@ -0,0 +1,12 @@ +[gd_resource type="StandardMaterial3D" load_steps=3 format=3 uid="uid://beyncaufbtoay"] + +[ext_resource type="Texture2D" uid="uid://bgh74bmrp46qc" path="res://map/tiles/bark.webp" id="1_3mn2u"] +[ext_resource type="Texture2D" uid="uid://bmvab6kdyccm4" path="res://map/tiles/bark_normal.webp" id="2_v3ray"] + +[resource] +resource_name = "NormalTree_Bark" +albedo_texture = ExtResource("1_3mn2u") +metallic = 0.4 +roughness = 0.301511 +normal_enabled = true +normal_texture = ExtResource("2_v3ray") diff --git a/client/map/tiles/bark.webp b/client/map/tiles/bark.webpBinary files differ new file mode 100644 index 00000000..4918e43c --- /dev/null +++ b/client/map/tiles/bark.webp diff --git a/client/map/tiles/bark.webp.import b/client/map/tiles/bark.webp.import new file mode 100644 index 00000000..c8fa875c --- /dev/null +++ b/client/map/tiles/bark.webp.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bgh74bmrp46qc" +path.s3tc="res://.godot/imported/bark.webp-ca303b7b3d58abe022cf53cf86095d8e.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} + +[deps] + +source_file="res://map/tiles/bark.webp" +dest_files=["res://.godot/imported/bark.webp-ca303b7b3d58abe022cf53cf86095d8e.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/client/map/tiles/bark_normal.webp b/client/map/tiles/bark_normal.webpBinary files differ new file mode 100644 index 00000000..3bc641e4 --- /dev/null +++ b/client/map/tiles/bark_normal.webp diff --git a/client/map/tiles/bark_normal.webp.import b/client/map/tiles/bark_normal.webp.import new file mode 100644 index 00000000..8ec39b6f --- /dev/null +++ b/client/map/tiles/bark_normal.webp.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bmvab6kdyccm4" +path.s3tc="res://.godot/imported/bark_normal.webp-a959f1e563d7021f4de54162a0386942.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} + +[deps] + +source_file="res://map/tiles/bark_normal.webp" +dest_files=["res://.godot/imported/bark_normal.webp-a959f1e563d7021f4de54162a0386942.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=1 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=1 +roughness/src_normal="res://map/tiles/Trees_NormalTree_Bark_Normal.webp" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/client/map/tiles/floor.gd b/client/map/tiles/floor.gd index c5089feb..6a158c67 100644 --- a/client/map/tiles/floor.gd +++ b/client/map/tiles/floor.gd @@ -14,66 +14,10 @@  # along with this program.  If not, see <https://www.gnu.org/licenses/>.  #   class_name Floor -extends Node3D - -var base = Node3D.new() -var item: Item = null -var item_base: Node3D - -enum Facing { -	NEG_Y = 0, -	NEG_X = 1, -	Y = 2, -	X = 3, -} +extends Tile  func _init(rename: String, _neighbors: Array): +	super(rename, _neighbors)  	var floor_tile = load("res://map/tiles/floor.tscn").instantiate()  	floor_tile.position += Vector3(0.5, 0, 0.5)  	add_child(floor_tile) -	base.name = "Base" -	base.position += Vector3(0.5, 0, 0.5) -	add_child(base) -	self.name = rename -	var item_base_ = Node3D.new() -	# this method is supposed to be overriden -	@warning_ignore("static_called_on_instance") -	item_base_.position = interact_target() -	item_base_.name = "ItemBase" -	base.add_child(item_base_) -	item_base = item_base_ - -func turn_facing(facing: Facing): -	base.rotate_y(facing * 0.5 * PI + PI) - -# 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 progress(p: float, warn: bool): -	if item != null: -		item.progress(p, warn) - -func finish(warn: bool): -	if item != null: -		item.finish(warn) - -func put_item(i: Item): -	if item != null: -		push_error("already holding an item") -	set_item(i) - -func set_item(i: Item): -	if item != null: -		item.queue_free() -	item = i -	i.owned_by = item_base - -func take_item() -> Item: -	var i = item -	item = null -	return i diff --git a/client/map/tiles/leaves.tres b/client/map/tiles/leaves.tres new file mode 100644 index 00000000..d243916b --- /dev/null +++ b/client/map/tiles/leaves.tres @@ -0,0 +1,9 @@ +[gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://bwkrkt2cb0wa"] + +[ext_resource type="Texture2D" uid="uid://bxxh66na6bumt" path="res://map/tiles/leaves.webp" id="1_jg4r8"] + +[resource] +resource_name = "NormalTree_Leaves" +transparency = 4 +albedo_texture = ExtResource("1_jg4r8") +metallic_specular = 0.0 diff --git a/client/map/tiles/leaves.webp b/client/map/tiles/leaves.webpBinary files differ new file mode 100644 index 00000000..2485e489 --- /dev/null +++ b/client/map/tiles/leaves.webp diff --git a/client/map/tiles/leaves.webp.import b/client/map/tiles/leaves.webp.import new file mode 100644 index 00000000..4f1c2217 --- /dev/null +++ b/client/map/tiles/leaves.webp.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bxxh66na6bumt" +path.s3tc="res://.godot/imported/leaves.webp-74b6f011fe2782672168a48c177030ec.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} + +[deps] + +source_file="res://map/tiles/leaves.webp" +dest_files=["res://.godot/imported/leaves.webp-74b6f011fe2782672168a48c177030ec.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/client/map/tiles/tile.gd b/client/map/tiles/tile.gd new file mode 100644 index 00000000..039a6c1b --- /dev/null +++ b/client/map/tiles/tile.gd @@ -0,0 +1,76 @@ +# 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 Tile +extends Node3D + +var base = Node3D.new() +var item: Item = null +var item_base: Node3D + +enum Facing { +	NEG_Y = 0, +	NEG_X = 1, +	Y = 2, +	X = 3, +} + +func _init(rename: String, _neighbors: Array): +	base.name = "Base" +	base.position += Vector3(0.5, 0, 0.5) +	add_child(base) +	self.name = rename +	var item_base_ = Node3D.new() +	# this method is supposed to be overriden +	@warning_ignore("static_called_on_instance") +	item_base_.position = interact_target() +	item_base_.name = "ItemBase" +	base.add_child(item_base_) +	item_base = item_base_ + +func turn_facing(facing: Facing): +	base.rotate_y(facing * 0.5 * PI + PI) + +# 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 progress(p: float, warn: bool): +	if item != null: +		item.progress(p, warn) + +func finish(warn: bool): +	if item != null: +		item.finish(warn) + +func put_item(i: Item): +	if item != null: +		push_error("already holding an item") +	set_item(i) + +func set_item(i: Item): +	if item != null: +		item.queue_free() +	item = i +	i.owned_by = item_base + +func take_item() -> Item: +	var i = item +	item = null +	return i diff --git a/client/map/tiles/tree_1.res b/client/map/tiles/tree_1.resBinary files differ new file mode 100644 index 00000000..9b97c062 --- /dev/null +++ b/client/map/tiles/tree_1.res diff --git a/client/map/tiles/tree_1.tscn b/client/map/tiles/tree_1.tscn new file mode 100644 index 00000000..c8aeade2 --- /dev/null +++ b/client/map/tiles/tree_1.tscn @@ -0,0 +1,10 @@ +[gd_scene load_steps=2 format=3 uid="uid://de2vaemb2p66q"] + +[ext_resource type="ArrayMesh" uid="uid://bkilmwqdhtiq2" path="res://map/tiles/tree_1.res" id="1_mgdye"] + +[node name="Tree1" type="Node3D"] + +[node name="Tree1" type="MeshInstance3D" parent="."] +transform = Transform3D(100, 0, 0, 0, -4.37114e-06, 100, 0, -100, -4.37114e-06, 0, 0, 0) +mesh = ExtResource("1_mgdye") +skeleton = NodePath("") diff --git a/client/map/tiles/tree_2.res b/client/map/tiles/tree_2.resBinary files differ new file mode 100644 index 00000000..52c20e7c --- /dev/null +++ b/client/map/tiles/tree_2.res diff --git a/client/map/tiles/tree_2.tscn b/client/map/tiles/tree_2.tscn new file mode 100644 index 00000000..ab5e34bc --- /dev/null +++ b/client/map/tiles/tree_2.tscn @@ -0,0 +1,10 @@ +[gd_scene load_steps=2 format=3 uid="uid://elpjoxfe3bje"] + +[ext_resource type="ArrayMesh" uid="uid://k8t6vgd4o31j" path="res://map/tiles/tree_2.res" id="1_o34ab"] + +[node name="Tree2" type="Node3D"] + +[node name="Tree2" type="MeshInstance3D" parent="."] +transform = Transform3D(100, 0, 0, 0, -1.19209e-05, 100, 0, -100, -1.19209e-05, 0, 0, 0) +mesh = ExtResource("1_o34ab") +skeleton = NodePath("") diff --git a/client/map/tiles/tree_3.res b/client/map/tiles/tree_3.resBinary files differ new file mode 100644 index 00000000..4fd635ca --- /dev/null +++ b/client/map/tiles/tree_3.res diff --git a/client/map/tiles/tree_3.tscn b/client/map/tiles/tree_3.tscn new file mode 100644 index 00000000..d553965e --- /dev/null +++ b/client/map/tiles/tree_3.tscn @@ -0,0 +1,10 @@ +[gd_scene load_steps=2 format=3 uid="uid://bw0rhtux5p04x"] + +[ext_resource type="ArrayMesh" uid="uid://b2ckqbw7inroj" path="res://map/tiles/tree_3.res" id="1_jt2l7"] + +[node name="Tree3" type="Node3D"] + +[node name="Tree3" type="MeshInstance3D" parent="."] +transform = Transform3D(100, 0, 0, 0, -1.19209e-05, 100, 0, -100, -1.19209e-05, 0, 0, 0) +mesh = ExtResource("1_jt2l7") +skeleton = NodePath("") diff --git a/client/map/tiles/tree_4.res b/client/map/tiles/tree_4.resBinary files differ new file mode 100644 index 00000000..f7b322d2 --- /dev/null +++ b/client/map/tiles/tree_4.res diff --git a/client/map/tiles/tree_4.tscn b/client/map/tiles/tree_4.tscn new file mode 100644 index 00000000..022cb3df --- /dev/null +++ b/client/map/tiles/tree_4.tscn @@ -0,0 +1,10 @@ +[gd_scene load_steps=2 format=3 uid="uid://bqpl3ogd58klf"] + +[ext_resource type="ArrayMesh" uid="uid://cenl3hbfhqagu" path="res://map/tiles/tree_4.res" id="1_ss0d8"] + +[node name="Tree4" type="Node3D"] + +[node name="Tree4" type="MeshInstance3D" parent="."] +transform = Transform3D(100, 0, 0, 0, -1.19209e-05, 100, 0, -100, -1.19209e-05, 0, 0, 0) +mesh = ExtResource("1_ss0d8") +skeleton = NodePath("") diff --git a/client/map/tiles/tree_5.res b/client/map/tiles/tree_5.resBinary files differ new file mode 100644 index 00000000..f4ddde72 --- /dev/null +++ b/client/map/tiles/tree_5.res diff --git a/client/map/tiles/tree_5.tscn b/client/map/tiles/tree_5.tscn new file mode 100644 index 00000000..9ec34ee8 --- /dev/null +++ b/client/map/tiles/tree_5.tscn @@ -0,0 +1,10 @@ +[gd_scene load_steps=2 format=3 uid="uid://gwj164os66pq"] + +[ext_resource type="ArrayMesh" uid="uid://m2wjeka2butc" path="res://map/tiles/tree_5.res" id="1_2mx8y"] + +[node name="Tree5" type="Node3D"] + +[node name="Tree5" type="MeshInstance3D" parent="."] +transform = Transform3D(100, 0, 0, 0, -1.19209e-05, 100, 0, -100, -1.19209e-05, 0, 0, 0) +mesh = ExtResource("1_2mx8y") +skeleton = NodePath("") diff --git a/client/player/controllable_player.gd b/client/player/controllable_player.gd index a85d6c84..7d143a60 100644 --- a/client/player/controllable_player.gd +++ b/client/player/controllable_player.gd @@ -97,7 +97,7 @@ func update_position(new_position: Vector2, _new_rotation: float):  func interact():  	var tile_idx = str(target) -	var t: Floor = game.map.tile_by_pos.get(tile_idx) +	var t: Tile = game.map.tile_by_pos.get(tile_idx)  	if t != null:  		game.marker.set_interactive(game.mp.get_tile_interactive(target))  		game.marker.visible = true diff --git a/client/player/player.gd b/client/player/player.gd index 41ba1059..5873c9ef 100644 --- a/client/player/player.gd +++ b/client/player/player.gd @@ -66,13 +66,13 @@ func remove_item() -> Item:  	character.holding = false  	return i -func take_item(tile: Floor): +func take_item(tile: Tile):  	if hand != null:  		push_error("already holding an item")  	var i = tile.take_item()  	set_item(i) -func put_item(tile: Floor): +func put_item(tile: Tile):  	var i = remove_item()  	tile.put_item(i) | 
