From d213fa30c1ad067363f374a059d5f3b066a0d0ea Mon Sep 17 00:00:00 2001 From: nokoe Date: Fri, 27 Sep 2024 17:09:19 +0200 Subject: rectangle mesh and uv as constant --- client/map/tiles/floor_mesher.gd | 31 +++++++++++-------------------- 1 file 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): -- cgit v1.2.3-70-g09d2