diff --git a/interior/floors/dungeon_01_interior_floor.res b/interior/floors/dungeon_01_interior_floor.res index 8c9c100..79040f1 100644 --- a/interior/floors/dungeon_01_interior_floor.res +++ b/interior/floors/dungeon_01_interior_floor.res @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8d5a0f5ed6c6c95b7d5041d9c4e3e079501fb10a1563c3fb6d384a34eaf52da5 -size 720 +oid sha256:ac5633d27be71198eed3e605daca451838f94a37503772ff56e5ee2177daf2e0 +size 712 diff --git a/interior/interior_map.gd b/interior/interior_map.gd index 42d3bb3..1d9f20a 100644 --- a/interior/interior_map.gd +++ b/interior/interior_map.gd @@ -95,15 +95,18 @@ class Chunk: # Find floor tile types. for y in _CHUNK_SIZE: for x in _CHUNK_SIZE: - if floor_map.get_bitv(offset + Vector2i(x, y)): + var map_area := Rect2i(Vector2.ZERO, map_size) + var map_coordinates := offset + Vector2i(x, y) + + if map_area.has_point(map_coordinates) and floor_map.get_bitv(map_coordinates): var tile := 0 for i in Orientation.values().size(): - var delta_x := roundi(cos(i * PI / 2.0)) - var delta_y := roundi(sin(i * PI / 2.0)) + var map_neighbor := map_coordinates + Vector2i( + roundi(cos(i * PI / 2.0)), roundi(sin(i * PI / 2.0))) - if (0 <= (y + int(delta_y < map_size.y))) and (0 <= (x + int(delta_x < map_size.x))): - tile += int(floor_map.get_bit(x + delta_x, y + delta_y)) * 2 ** i + if map_area.has_point(map_neighbor): + tile += int(floor_map.get_bitv(map_neighbor)) * 2 ** i positions_by_floor_tile[tile].append(Vector2(x, y)) diff --git a/map_editor.scn b/map_editor.scn index 02becdc..cb425e2 100644 --- a/map_editor.scn +++ b/map_editor.scn @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d12a2d80760eab79b3b1a376f5b8ed1a8f35a4551dee8ee8dd220fce013b18f9 -size 13514 +oid sha256:fade16a9713f46ed71eec62081880231b6f5be125c6401cf0944abc443f1b2c7 +size 13516