diff options
-rw-r--r-- | client/scenes/player.tscn | 8 | ||||
-rw-r--r-- | client/scripts/controllable_player.gd | 2 | ||||
-rw-r--r-- | client/scripts/map.gd | 6 | ||||
-rw-r--r-- | client/scripts/multiplayer.gd | 4 | ||||
-rw-r--r-- | client/scripts/tiles/counter.gd | 7 | ||||
-rw-r--r-- | client/scripts/tiles/crate.gd | 3 | ||||
-rw-r--r-- | client/scripts/tiles/flour_counter.gd | 9 | ||||
-rw-r--r-- | client/scripts/tiles/full_tile.gd | 8 | ||||
-rw-r--r-- | client/scripts/tiles/raw_steak_crate.gd | 6 | ||||
-rw-r--r-- | client/scripts/tiles/tomato_crate.gd | 6 | ||||
-rw-r--r-- | client/scripts/tiles/trash.gd | 2 | ||||
-rw-r--r-- | client/scripts/tiles/window.gd | 3 |
12 files changed, 54 insertions, 10 deletions
diff --git a/client/scenes/player.tscn b/client/scenes/player.tscn index d0ebfa75..81fd35e3 100644 --- a/client/scenes/player.tscn +++ b/client/scenes/player.tscn @@ -1,9 +1,15 @@ -[gd_scene load_steps=2 format=3 uid="uid://d30bj2cp1m7gd"] +[gd_scene load_steps=3 format=3 uid="uid://d30bj2cp1m7gd"] + +[ext_resource type="PackedScene" uid="uid://b6m4wnlgfsbwp" path="res://models/glb/guy.glb" id="1_8t728"] [sub_resource type="CapsuleMesh" id="CapsuleMesh_4w71x"] [node name="Player" type="Node3D"] +[node name="guy" parent="." instance=ExtResource("1_8t728")] +transform = Transform3D(-1.09278e-08, 0, 0.25, 0, 0.25, 0, -0.25, 0, -1.09278e-08, 0, 0, 0) + [node name="MeshInstance3D" type="MeshInstance3D" parent="."] transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 0, 0.5, 0) +visible = false mesh = SubResource("CapsuleMesh_4w71x") diff --git a/client/scripts/controllable_player.gd b/client/scripts/controllable_player.gd index adf3f2c0..58ac4401 100644 --- a/client/scripts/controllable_player.gd +++ b/client/scripts/controllable_player.gd @@ -24,7 +24,7 @@ func _process(delta): if input.length() > 0.1: facing = lerp_vector2_exp(facing, input, delta * 10.) - self.rotation.y = facing.angle() + self.rotation.y = -facing.angle() velocity.x += input.x * delta * SPEED velocity.y += input.y * delta * SPEED diff --git a/client/scripts/map.gd b/client/scripts/map.gd index 685c1d69..9d9453e4 100644 --- a/client/scripts/map.gd +++ b/client/scripts/map.gd @@ -14,17 +14,17 @@ func update(pos, tile_name, neighbors): "trash": instance = Trash.new(node_name, neighbors) "tomato-crate": - instance = CounterBase.new(node_name, neighbors) + instance = TomatoCrate.new(node_name, neighbors) "cuttingboard": instance = CuttingBoard.new(node_name, neighbors) "counter": instance = CounterBase.new(node_name, neighbors) "flour-crate": - instance = CounterBase.new(node_name, neighbors) + instance = FlourCounter.new(node_name, neighbors) "oven": instance = Oven.new(node_name, neighbors) "raw-steak-crate": - instance = CounterBase.new(node_name, neighbors) + instance = RawSteakCrate.new(node_name, neighbors) "stove": instance = Stove.new(node_name, neighbors) "sink": diff --git a/client/scripts/multiplayer.gd b/client/scripts/multiplayer.gd index 79c5df76..f3f16387 100644 --- a/client/scripts/multiplayer.gd +++ b/client/scripts/multiplayer.gd @@ -14,6 +14,7 @@ var socket := WebSocketPeer.new() var item_names = [] var tile_names = [] +var item_idx_from_name: Dictionary = {} var player_id = -1 var other_players = {} @@ -52,13 +53,14 @@ func handle_packet(bytes: PackedByteArray): player_id = decoded["id"] item_names = decoded["data"]["item_names"] tile_names = decoded["data"]["tile_names"] + for i in range(item_names.size()): + item_idx_from_name[item_names[i]] = i emit_signal("init", player_id) "add_player": var id = decoded["id"] var player_name = decoded["name"] var pos = decoded["position"] var char = decoded["character"] - other_players[id] = [player_name, char] emit_signal("add_player", id, player_name, pos_to_vec2(pos), char) "remove_player": diff --git a/client/scripts/tiles/counter.gd b/client/scripts/tiles/counter.gd index 22802d36..f4b609d5 100644 --- a/client/scripts/tiles/counter.gd +++ b/client/scripts/tiles/counter.gd @@ -16,6 +16,9 @@ enum CounterKind { var kind: CounterKind = CounterKind.STRAIGHT +static func interact_target() -> Vector3: + return Vector3(0, 0.5, 0) + func _init(rename: String, neighbors: Array): super(rename, neighbors) var facing = 0 @@ -57,7 +60,7 @@ func _init(rename: String, neighbors: Array): turn_facing(facing) -func is_counter(tile_name_t) -> bool: +static func is_counter(tile_name_t) -> bool: if tile_name_t == null: return false - return name.ends_with("crate")||counters.has(name) + return tile_name_t.ends_with("crate")||counters.has(tile_name_t) diff --git a/client/scripts/tiles/crate.gd b/client/scripts/tiles/crate.gd index de154609..3fe43525 100644 --- a/client/scripts/tiles/crate.gd +++ b/client/scripts/tiles/crate.gd @@ -1,7 +1,8 @@ class_name Crate extends Counter -const KIND: int = -1 +static func interact_target() -> Vector3: + return Vector3(0, 0.25, 0) func _init(rename: String, neighbors: Array): super(rename, neighbors) diff --git a/client/scripts/tiles/flour_counter.gd b/client/scripts/tiles/flour_counter.gd new file mode 100644 index 00000000..6c512d92 --- /dev/null +++ b/client/scripts/tiles/flour_counter.gd @@ -0,0 +1,9 @@ +class_name FlourCounter +extends CounterBase + +func _init(rename: String, neighbors: Array): + super(rename, neighbors) + var bag = load("res://models/prefabs/map/bag.tscn").instantiate() + bag.position = interact_target() + bag.rotation_degrees.y = 45 + base.add_child(bag) diff --git a/client/scripts/tiles/full_tile.gd b/client/scripts/tiles/full_tile.gd index 863046ba..7ee1e1fc 100644 --- a/client/scripts/tiles/full_tile.gd +++ b/client/scripts/tiles/full_tile.gd @@ -13,3 +13,11 @@ func _init(rename: String, neighbors: Array): 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 diff --git a/client/scripts/tiles/raw_steak_crate.gd b/client/scripts/tiles/raw_steak_crate.gd new file mode 100644 index 00000000..3a15b942 --- /dev/null +++ b/client/scripts/tiles/raw_steak_crate.gd @@ -0,0 +1,6 @@ +class_name RawSteakCrate +extends Crate + +func _init(rename: String, neighbors: Array): + super(rename, neighbors) + base.add_child(load("res://models/prefabs/map/crate_steak.tscn").instantiate()) diff --git a/client/scripts/tiles/tomato_crate.gd b/client/scripts/tiles/tomato_crate.gd new file mode 100644 index 00000000..f19bdd08 --- /dev/null +++ b/client/scripts/tiles/tomato_crate.gd @@ -0,0 +1,6 @@ +class_name TomatoCrate +extends Crate + +func _init(rename: String, neighbors: Array): + super(rename, neighbors) + base.add_child(load("res://models/prefabs/map/crate_tomatoes.tscn").instantiate()) diff --git a/client/scripts/tiles/trash.gd b/client/scripts/tiles/trash.gd index fd24cbd6..c680e72d 100644 --- a/client/scripts/tiles/trash.gd +++ b/client/scripts/tiles/trash.gd @@ -1,5 +1,5 @@ class_name Trash -extends FullTile +extends Crate func _init(rename: String, neighbors: Array): super(rename, neighbors) diff --git a/client/scripts/tiles/window.gd b/client/scripts/tiles/window.gd index 907377d6..7df5e9db 100644 --- a/client/scripts/tiles/window.gd +++ b/client/scripts/tiles/window.gd @@ -1,6 +1,9 @@ class_name WallWindow extends WallTile +static func interact_target() -> Vector3: + return Vector3(0, 0.625, 0) + func _init(rename: String, neighbors: Array): super(rename, neighbors) match kind: |