Editor Terrain Size Options #1
							
								
								
									
										
											BIN
										
									
								
								editor.scn
									 (Stored with Git LFS)
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								editor.scn
									 (Stored with Git LFS)
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							| @ -53,6 +53,15 @@ window/size/viewport_height=800 | ||||
| window/stretch/mode="canvas_items" | ||||
| window/stretch/aspect="keep_height" | ||||
| 
 | ||||
| [editor] | ||||
| 
 | ||||
| version_control/plugin_name="GitPlugin" | ||||
| version_control/autoload_on_startup=true | ||||
| 
 | ||||
| [editor_plugins] | ||||
| 
 | ||||
| enabled=PackedStringArray() | ||||
| 
 | ||||
| [input] | ||||
| 
 | ||||
| player_controller_left={ | ||||
|  | ||||
| @ -1,6 +1,8 @@ | ||||
| @tool | ||||
| class_name TerrainInstance3D extends GeometryInstance3D | ||||
| 
 | ||||
| const _TERRAIN_MAX := 1024 | ||||
| 
 | ||||
| var _mesh := PlaneMesh.new() | ||||
| 
 | ||||
| var _material := ShaderMaterial.new() | ||||
| @ -14,18 +16,22 @@ var size: Vector2i = Vector2i.ZERO: | ||||
| 		return size | ||||
| 
 | ||||
| 	set(value): | ||||
| 		var width := value.x | ||||
| 		var height := value.y | ||||
| 		var width := clampi(value.x, 0, _TERRAIN_MAX) | ||||
| 		var height := clampi(value.y, 0, _TERRAIN_MAX) | ||||
| 
 | ||||
| 		if (width != 0) and (height != 0): | ||||
| 			if (width != size.x) or (height != size.y): | ||||
| 		if (width != size.x) or (height != size.y): | ||||
| 			if (width == 0) and (height == 0): | ||||
| 				RenderingServer.instance_set_base(self.get_instance(), RID()) | ||||
| 
 | ||||
| 			else: | ||||
| 				self._mesh.subdivide_width = width | ||||
| 				self._mesh.subdivide_depth = height | ||||
| 				self._mesh.size = value | ||||
| 
 | ||||
| 				self._material.set_shader_parameter("SIZE", Vector2(value)) | ||||
| 				RenderingServer.instance_set_base(self.get_instance(), self._mesh) | ||||
| 
 | ||||
| 		size = value | ||||
| 		size = Vector2i(width, height) | ||||
| 
 | ||||
| ## | ||||
| ## | ||||
| @ -161,4 +167,3 @@ func _init() -> void: | ||||
| 	self._material.shader = preload("res://terrain_shader.gdshader") | ||||
| 
 | ||||
| 	self._mesh.surface_set_material(0, self._material) | ||||
| 	RenderingServer.instance_set_base(self.get_instance(), self._mesh) | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user