diff options
author | metamuffin <metamuffin@disroot.org> | 2024-06-22 19:07:00 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2024-06-23 19:28:50 +0200 |
commit | fd01e27d3bed73fd216cbe9bce24de34e6859a7f (patch) | |
tree | 93d6695a313571e614ba15170fa2a46d0021b7cf /client | |
parent | fbb81024ea206bfad1436e27f49175a815b010b7 (diff) | |
download | hurrycurry-fd01e27d3bed73fd216cbe9bce24de34e6859a7f.tar hurrycurry-fd01e27d3bed73fd216cbe9bce24de34e6859a7f.tar.bz2 hurrycurry-fd01e27d3bed73fd216cbe9bce24de34e6859a7f.tar.zst |
server-side collision values
Diffstat (limited to 'client')
-rw-r--r-- | client/scenes/player.tscn | 2 | ||||
-rw-r--r-- | client/scripts/controllable_player.gd | 2 | ||||
-rw-r--r-- | client/scripts/multiplayer.gd | 7 |
3 files changed, 9 insertions, 2 deletions
diff --git a/client/scenes/player.tscn b/client/scenes/player.tscn index 0ce5c953..a0ca9251 100644 --- a/client/scenes/player.tscn +++ b/client/scenes/player.tscn @@ -7,7 +7,7 @@ [node name="Player" type="Node3D"] [node name="guy" parent="." instance=ExtResource("1_8t728")] -transform = Transform3D(0.25, 0, -4.70735e-14, 0, 0.25, 0, 4.70735e-14, 0, 0.25, 0, 0, 0) +transform = Transform3D(0.35, 0, -6.59029e-14, 0, 0.35, 0, 6.59029e-14, 0, 0.35, 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) diff --git a/client/scripts/controllable_player.gd b/client/scripts/controllable_player.gd index d27f28e3..59f4c3de 100644 --- a/client/scripts/controllable_player.gd +++ b/client/scripts/controllable_player.gd @@ -37,7 +37,7 @@ func collide(dt: float): for xo in range(-1,2): for yo in range(-1,2): var tile = Vector2i(xo, yo) + Vector2i(self.position_); - if not is_instance_of(game.map.tile_by_pos.get(str(tile)), FullTile): continue + if !Multiplayer.get_tile_collision(tile): continue tile = Vector2(tile) var d = aabb_point_distance(tile, tile + Vector2.ONE, self.position_); if d > PLAYER_SIZE: continue diff --git a/client/scripts/multiplayer.gd b/client/scripts/multiplayer.gd index 3386d99b..4e05fad5 100644 --- a/client/scripts/multiplayer.gd +++ b/client/scripts/multiplayer.gd @@ -26,6 +26,7 @@ var item_idx_from_name: Dictionary = {} var player_id = -1 var other_players = {} +var tileid_by_pos: Dictionary = {} func connectClient(url: String): socket.connect_to_url(url) @@ -107,6 +108,7 @@ func handle_packet(bytes: PackedByteArray): var tile: int = decoded["tile"] var pos: Array = decoded["pos"] var neighbors: Array = decoded["neighbors"] + tileid_by_pos[str(Vector2i(pos[0],pos[1]))] = tile emit_signal("update_map", pos, tile_names[tile], neighbors) "communicate": var player = decoded["player"] @@ -161,3 +163,8 @@ func pos_to_vec2(pos: Array) -> Vector2: func pos_to_vec2i(pos: Array) -> Vector2i: return Vector2i(pos[0], pos[1]) + +func get_tile_collision(pos: Vector2i) -> bool: + var t = tileid_by_pos[str(pos)] + if t == null: return false + else: return tile_collide[t] |