summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornokoe <nokoe@mailbox.org>2024-09-27 17:09:19 +0200
committernokoe <nokoe@mailbox.org>2024-09-27 17:09:59 +0200
commitd213fa30c1ad067363f374a059d5f3b066a0d0ea (patch)
tree352ef856aa2db41a24f11c2874e82c542d7d0c3f
parent7b454895d60ce647cfc20dd62d62450804f6463f (diff)
downloadhurrycurry-d213fa30c1ad067363f374a059d5f3b066a0d0ea.tar
hurrycurry-d213fa30c1ad067363f374a059d5f3b066a0d0ea.tar.bz2
hurrycurry-d213fa30c1ad067363f374a059d5f3b066a0d0ea.tar.zst
rectangle mesh and uv as constant
-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):