diff options
Diffstat (limited to 'client/map/tiles')
-rw-r--r-- | client/map/tiles/floor_mesher.gd | 31 |
1 files changed, 11 insertions, 20 deletions
diff --git a/client/map/tiles/floor_mesher.gd b/client/map/tiles/floor_mesher.gd index 2345a834..602fe18d 100644 --- a/client/map/tiles/floor_mesher.gd +++ b/client/map/tiles/floor_mesher.gd @@ -16,9 +16,15 @@ class_name FloorMesher extends Object +const RECTANGLE: Array[Vector3] = [ + Vector3.ZERO, Vector3.RIGHT, Vector3.BACK + Vector3.RIGHT, Vector3.BACK, Vector3.ZERO, Vector3.BACK + Vector3.RIGHT, +] + +const UV: Array[Vector2] = [ + Vector2.ZERO, Vector2.RIGHT, Vector2.DOWN + Vector2.RIGHT, Vector2.DOWN, Vector2.ZERO, Vector2.DOWN + Vector2.RIGHT, +] var tiles: Dictionary -var instance: MeshInstance3D func add_tile(pos: Vector2i): tiles[str(pos)] = pos @@ -59,25 +65,10 @@ func flush() -> ArrayMesh: rectangle.x += 1 else: break - st.set_normal(Vector3.UP) - st.set_uv(Vector2.ZERO) - st.add_vertex(Vector3(rectangle_origin.x, 0., rectangle_origin.y)) - st.set_normal(Vector3.UP) - st.set_uv(Vector2(rectangle.x, 0.)) - st.add_vertex(Vector3(rectangle_origin.x + rectangle.x, 0., rectangle_origin.y)) - st.set_normal(Vector3.UP) - st.set_uv(rectangle) - st.add_vertex(Vector3(rectangle_origin.x + rectangle.x, 0., rectangle_origin.y + rectangle.y)) - - st.set_normal(Vector3.UP) - st.set_uv(Vector2(0., rectangle.y)) - st.add_vertex(Vector3(rectangle_origin.x, 0., rectangle_origin.y + rectangle.y)) - st.set_normal(Vector3.UP) - st.set_uv(Vector2.ZERO) - st.add_vertex(Vector3(rectangle_origin.x, 0., rectangle_origin.y)) - st.set_normal(Vector3.UP) - st.set_uv(rectangle) - st.add_vertex(Vector3(rectangle_origin.x + rectangle.x, 0., rectangle_origin.y + rectangle.y)) + for i in range(UV.size()): + st.set_normal(Vector3.UP) + st.set_uv(UV[i] * Vector2(rectangle)) + st.add_vertex(RECTANGLE[i] * Vector3(rectangle.x, 0., rectangle.y) + Vector3(rectangle_origin.x, 0., rectangle_origin.y)) # remove the rectangle from the "queue" for x in range(rectangle_origin.x, rectangle_origin.x + rectangle.x): |