summaryrefslogtreecommitdiff
path: root/client/map/tiles
diff options
context:
space:
mode:
Diffstat (limited to 'client/map/tiles')
-rw-r--r--client/map/tiles/floor_mesher.gd31
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):