diff options
| author | nokoe <nokoe@mailbox.org> | 2024-09-27 17:09:19 +0200 | 
|---|---|---|
| committer | nokoe <nokoe@mailbox.org> | 2024-09-27 17:09:59 +0200 | 
| commit | d213fa30c1ad067363f374a059d5f3b066a0d0ea (patch) | |
| tree | 352ef856aa2db41a24f11c2874e82c542d7d0c3f /client/map/tiles | |
| parent | 7b454895d60ce647cfc20dd62d62450804f6463f (diff) | |
| download | hurrycurry-d213fa30c1ad067363f374a059d5f3b066a0d0ea.tar hurrycurry-d213fa30c1ad067363f374a059d5f3b066a0d0ea.tar.bz2 hurrycurry-d213fa30c1ad067363f374a059d5f3b066a0d0ea.tar.zst | |
rectangle mesh and uv as constant
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): | 
