aboutsummaryrefslogtreecommitdiff
path: root/client/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'client/scripts')
-rw-r--r--client/scripts/controllable_player.gd2
-rw-r--r--client/scripts/multiplayer.gd7
2 files changed, 8 insertions, 1 deletions
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]