diff --git a/addons/gaea/generators/2D/heightmap_generator/heightmap_generator_2d_settings.gd b/addons/gaea/generators/2D/heightmap_generator/heightmap_generator_2d_settings.gd index 3e7bd8fe..42b2f128 100644 --- a/addons/gaea/generators/2D/heightmap_generator/heightmap_generator_2d_settings.gd +++ b/addons/gaea/generators/2D/heightmap_generator/heightmap_generator_2d_settings.gd @@ -6,7 +6,10 @@ extends GeneratorSettings2D @export var tile: TileInfo @export var noise: FastNoiseLite = FastNoiseLite.new() ## Infinite worlds only work with a [ChunkLoader2D]. -@export var infinite := false +@export var infinite := false : + set(value): + infinite = value + notify_property_list_changed() @export var world_length := 128 ## The medium height at which the heightmap will start displacing from y=0. ## The heightmap displaces this height by a random number @@ -19,3 +22,8 @@ extends GeneratorSettings2D @export var min_height := 0 ## If [code]true[/code], adds a layer of air ([code]null[/code] tiles above the generated terrain. @export var air_layer := true + + +func _validate_property(property: Dictionary) -> void: + if property.name == "world_size" and infinite == true: + property.usage = PROPERTY_USAGE_NONE diff --git a/addons/gaea/generators/2D/noise_generator/noise_generator_settings.gd b/addons/gaea/generators/2D/noise_generator/noise_generator_settings.gd index 9c22fd98..df597f23 100644 --- a/addons/gaea/generators/2D/noise_generator/noise_generator_settings.gd +++ b/addons/gaea/generators/2D/noise_generator/noise_generator_settings.gd @@ -16,7 +16,10 @@ extends GeneratorSettings2D tile_data.settings = self @export var noise: FastNoiseLite = FastNoiseLite.new() ## Infinite worlds only work with a [ChunkLoader]. -@export var infinite: bool = false +@export var infinite: bool = false : + set(value): + infinite = value + notify_property_list_changed() @export var world_size: Vector2i = Vector2i(256, 256): set(value): world_size = value @@ -35,3 +38,8 @@ extends GeneratorSettings2D falloff_map = value if falloff_map != null: falloff_map.size = world_size + + +func _validate_property(property: Dictionary) -> void: + if property.name == "world_size" and infinite == true: + property.usage = PROPERTY_USAGE_NONE diff --git a/addons/gaea/generators/3D/heightmap_generator_3d/heightmap_generator_3d_settings.gd b/addons/gaea/generators/3D/heightmap_generator_3d/heightmap_generator_3d_settings.gd index a612def9..b6da4dcb 100644 --- a/addons/gaea/generators/3D/heightmap_generator_3d/heightmap_generator_3d_settings.gd +++ b/addons/gaea/generators/3D/heightmap_generator_3d/heightmap_generator_3d_settings.gd @@ -6,7 +6,10 @@ extends GeneratorSettings3D @export var tile: TileInfo @export var noise: FastNoiseLite = FastNoiseLite.new() ## Infinite worlds only work with a [ChunkLoader3D]. -@export var infinite := false +@export var infinite := false : + set(value): + infinite = value + notify_property_list_changed() ## The size in the x and z axis. @export var world_size := Vector2i(16, 16) ## The medium height at which the heightmap will start displacing from y=0. @@ -33,3 +36,8 @@ extends GeneratorSettings3D falloff_map = value if falloff_map != null: falloff_map.size = world_size + + +func _validate_property(property: Dictionary) -> void: + if property.name == "world_size" and infinite == true: + property.usage = PROPERTY_USAGE_NONE diff --git a/docs/assets/tutorials/chunk_generation/infinite.png b/docs/assets/tutorials/chunk_generation/infinite.png new file mode 100644 index 00000000..9ee2f783 Binary files /dev/null and b/docs/assets/tutorials/chunk_generation/infinite.png differ diff --git a/docs/tutorials/chunk_generation.md b/docs/tutorials/chunk_generation.md index 990b26ad..e6e149b6 100644 --- a/docs/tutorials/chunk_generation.md +++ b/docs/tutorials/chunk_generation.md @@ -32,6 +32,10 @@ Once this node has been added to the tree, you need to assign the `Generator` an ![assign-nodes.gif](..%2Fassets%2Ftutorials%2Fchunk_generation%2Fassign-nodes.gif) +![Set the settings' infinite property to true](../assets/tutorials/chunk_generation/infinite.png) + +It's also important that you set the settings' `infinite` property to `true`! + After this has been done ... **_VOILĂ€!_** You now have Chunk Generation enabled for your 2D world! Once this is done, you can play around with the settings of the ChunkLoader to tune it to your liking! ### It's running really slowly...