From 3edb37168cee399c6f97782b5f3d42f51d46b118 Mon Sep 17 00:00:00 2001 From: Emmanouil Papadeas <35376950+OverloadedOrama@users.noreply.github.com> Date: Tue, 17 Dec 2024 13:38:18 +0200 Subject: [PATCH] Fix issues with the noise generator node Its nodes now get updated when changing the noise texture, and it waits for `noise_texture.changed` to emit before emitting the `value_changed` signal. See https://docs.godotengine.org/en/stable/classes/class_noisetexture2d.html for the explanation. --- src/Classes/ShaderLoader.gd | 1 - src/UI/Nodes/NoiseGenerator.gd | 216 ++++++++++++++----------------- src/UI/Nodes/NoiseGenerator.tscn | 167 ++++++++++++------------ 3 files changed, 184 insertions(+), 200 deletions(-) diff --git a/src/Classes/ShaderLoader.gd b/src/Classes/ShaderLoader.gd index fa9ac7d51..345e04b06 100644 --- a/src/Classes/ShaderLoader.gd +++ b/src/Classes/ShaderLoader.gd @@ -269,7 +269,6 @@ static func create_ui_for_shader_uniforms( hbox.add_child(curve_edit) elif u_name.begins_with("noise_"): var noise_generator_dialog := NOISE_GENERATOR.instantiate() as AcceptDialog - noise_generator_dialog.always_on_top = true var noise_generator := noise_generator_dialog.get_child(0) as NoiseGenerator if params.has(u_name) and params[u_name] is NoiseTexture2D: noise_generator.noise_texture = params[u_name] diff --git a/src/UI/Nodes/NoiseGenerator.gd b/src/UI/Nodes/NoiseGenerator.gd index 4a8b2a01b..6ec24f893 100644 --- a/src/UI/Nodes/NoiseGenerator.gd +++ b/src/UI/Nodes/NoiseGenerator.gd @@ -11,131 +11,113 @@ var noise_texture: NoiseTexture2D: if not is_instance_valid(preview): await ready preview.texture = noise_texture + _set_node_values() + @onready var preview := %Preview as TextureRect +@onready var size_slider := %SizeSlider as ValueSliderV2 +@onready var properties := { + "invert": %InvertCheckBox, + "in_3d_space": %In3DSpaceCheckBox, + "seamless": %SeamlessCheckBox, + "as_normal_map": %NormalMapCheckBox, + "normalize": %NormalizeCheckBox, + "color_ramp": %ColorRampEdit, + "noise:noise_type": %NoiseTypeOptionButton, + "noise:seed": %SeedSlider, + "noise:frequency": %FrequencySlider, + "noise:offset": %OffsetSlider, + "noise:fractal_type": %FractalTypeOptionButton, + "noise:fractal_octaves": %FractalOctavesSlider, + "noise:fractal_lacunarity": %FractalLacunaritySlider, + "noise:fractal_gain": %FractalGainSlider, + "noise:fractal_weighted_strength": %FractalWeightedStrengthSlider, + "noise:domain_warp_enabled": %DomainWarpEnabledCheckBox, + "noise:domain_warp_type": %DomainWarpTypeOptionButton, + "noise:domain_warp_amplitude": %DomainWarpAmplitudeSlider, + "noise:domain_warp_frequency": %DomainWarpFrequencySlider, + "noise:domain_warp_fractal_type": %DomainWarpFractalTypeOptionButton, + "noise:domain_warp_fractal_octaves": %DomainWarpFractalOctavesSlider, + "noise:domain_warp_fractal_lacunarity": %DomainWarpFractalLacunaritySlider, + "noise:domain_warp_fractal_gain": %DomainWarpFractalGainSlider +} func _init() -> void: noise_texture = NoiseTexture2D.new() +func _ready() -> void: + # Connect the signals of the object property nodes + for prop in properties: + var node: Control = properties[prop] + if node is ValueSliderV3: + node.value_changed.connect(_property_vector3_changed.bind(prop)) + elif node is ValueSliderV2: + var property_path: String = prop + node.value_changed.connect(_property_vector2_changed.bind(property_path)) + elif node is Range: + node.value_changed.connect(_property_value_changed.bind(prop)) + elif node is OptionButton: + node.item_selected.connect(_property_item_selected.bind(prop)) + elif node is CheckBox: + node.toggled.connect(_property_toggled.bind(prop)) + elif node is GradientEditNode: + node.updated.connect(_property_gradient_changed.bind(prop)) + + +func _set_node_values() -> void: + size_slider.value.x = noise_texture.width + size_slider.value.y = noise_texture.height + for prop in properties: + var property_path: String = prop + var value = noise_texture.get_indexed(property_path) + if value == null: + continue + var node: Control = properties[prop] + if node is Range or node is ValueSliderV3 or node is ValueSliderV2: + if typeof(node.value) != typeof(value) and typeof(value) != TYPE_INT: + continue + node.value = value + elif node is OptionButton: + node.selected = value + elif node is CheckBox: + node.button_pressed = value + elif node is GradientEditNode: + node.gradient = value + + +func _set_value_from_node(value, prop: String) -> void: + noise_texture.set_indexed(prop, value) + await noise_texture.changed + value_changed.emit(noise_texture) + + +func _property_vector3_changed(value: Vector3, prop: String) -> void: + _set_value_from_node(value, prop) + + +func _property_vector2_changed(value: Vector2, prop: String) -> void: + _set_value_from_node(value, prop) + + +func _property_value_changed(value: float, prop: String) -> void: + _set_value_from_node(value, prop) + + +func _property_item_selected(value: int, prop: String) -> void: + _set_value_from_node(value, prop) + + +func _property_gradient_changed(value: Gradient, _cc: bool, prop: String) -> void: + _set_value_from_node(value, prop) + + +func _property_toggled(value: bool, prop: String) -> void: + _set_value_from_node(value, prop) + + func _on_size_slider_value_changed(value: Vector2) -> void: noise_texture.width = value.x noise_texture.height = value.y - value_changed.emit(noise_texture) - - -func _on_invert_check_box_toggled(toggled_on: bool) -> void: - noise_texture.invert = toggled_on - value_changed.emit(noise_texture) - - -func _on_in_3d_space_check_box_toggled(toggled_on: bool) -> void: - noise_texture.in_3d_space = toggled_on - value_changed.emit(noise_texture) - - -func _on_seamless_check_box_toggled(toggled_on: bool) -> void: - noise_texture.seamless = toggled_on - value_changed.emit(noise_texture) - - -func _on_normal_map_check_box_toggled(toggled_on: bool) -> void: - noise_texture.as_normal_map = toggled_on - value_changed.emit(noise_texture) - - -func _on_normalize_check_box_toggled(toggled_on: bool) -> void: - noise_texture.normalize = toggled_on - value_changed.emit(noise_texture) - - -func _on_gradient_edit_updated(gradient: Gradient, _cc: bool) -> void: - noise_texture.color_ramp = gradient - value_changed.emit(noise_texture) - - -func _on_noise_type_option_button_item_selected(index: FastNoiseLite.NoiseType) -> void: - (noise_texture.noise as FastNoiseLite).noise_type = index - value_changed.emit(noise_texture) - - -func _on_seed_slider_value_changed(value: float) -> void: - (noise_texture.noise as FastNoiseLite).seed = value - value_changed.emit(noise_texture) - - -func _on_frequency_slider_value_changed(value: float) -> void: - (noise_texture.noise as FastNoiseLite).frequency = value - value_changed.emit(noise_texture) - - -func _on_offset_slider_value_changed(value: Vector3) -> void: - (noise_texture.noise as FastNoiseLite).offset = value - value_changed.emit(noise_texture) - - -func _on_fractal_type_option_button_item_selected(index: FastNoiseLite.FractalType) -> void: - (noise_texture.noise as FastNoiseLite).fractal_type = index - value_changed.emit(noise_texture) - - -func _on_fractal_octaves_slider_value_changed(value: float) -> void: - (noise_texture.noise as FastNoiseLite).fractal_octaves = value - value_changed.emit(noise_texture) - - -func _on_fractal_lacunarity_slider_value_changed(value: float) -> void: - (noise_texture.noise as FastNoiseLite).fractal_lacunarity = value - value_changed.emit(noise_texture) - - -func _on_fractal_gain_slider_value_changed(value: float) -> void: - (noise_texture.noise as FastNoiseLite).fractal_gain = value - value_changed.emit(noise_texture) - - -func _on_fractal_weighted_strength_slider_value_changed(value: float) -> void: - (noise_texture.noise as FastNoiseLite).fractal_weighted_strength = value - value_changed.emit(noise_texture) - - -func _on_domain_warp_enabled_check_box_toggled(toggled_on: bool) -> void: - (noise_texture.noise as FastNoiseLite).domain_warp_enabled = toggled_on - value_changed.emit(noise_texture) - - -func _on_domain_warp_type_option_button_item_selected(index: FastNoiseLite.DomainWarpType) -> void: - (noise_texture.noise as FastNoiseLite).domain_warp_type = index - value_changed.emit(noise_texture) - - -func _on_domain_warp_amplitude_slider_value_changed(value: float) -> void: - (noise_texture.noise as FastNoiseLite).domain_warp_amplitude = value - value_changed.emit(noise_texture) - - -func _on_domain_warp_frequency_slider_value_changed(value: float) -> void: - (noise_texture.noise as FastNoiseLite).domain_warp_frequency = value - value_changed.emit(noise_texture) - - -func _on_domain_warp_fractal_type_option_button_item_selected( - index: FastNoiseLite.DomainWarpFractalType -) -> void: - (noise_texture.noise as FastNoiseLite).domain_warp_fractal_type = index - value_changed.emit(noise_texture) - - -func _on_domain_warp_fractal_octaves_slider_value_changed(value: float) -> void: - (noise_texture.noise as FastNoiseLite).domain_warp_fractal_octaves = value - value_changed.emit(noise_texture) - - -func _on_domain_warp_fractal_lacunarity_slider_value_changed(value: float) -> void: - (noise_texture.noise as FastNoiseLite).domain_warp_fractal_lacunarity = value - value_changed.emit(noise_texture) - - -func _on_domain_warp_fractal_gain_slider_value_changed(value: float) -> void: - (noise_texture.noise as FastNoiseLite).domain_warp_fractal_gain = value + await noise_texture.changed value_changed.emit(noise_texture) diff --git a/src/UI/Nodes/NoiseGenerator.tscn b/src/UI/Nodes/NoiseGenerator.tscn index 5dc5cfe60..8c69b88de 100644 --- a/src/UI/Nodes/NoiseGenerator.tscn +++ b/src/UI/Nodes/NoiseGenerator.tscn @@ -15,14 +15,12 @@ grow_horizontal = 2 grow_vertical = 2 script = ExtResource("1_uxdt4") -[node name="VBoxContainer" type="VBoxContainer" parent="."] +[node name="VSplitContainer" type="VSplitContainer" parent="."] layout_mode = 2 size_flags_horizontal = 3 +size_flags_vertical = 3 -[node name="VSplitContainer" type="VSplitContainer" parent="VBoxContainer"] -layout_mode = 2 - -[node name="Preview" type="TextureRect" parent="VBoxContainer/VSplitContainer"] +[node name="Preview" type="TextureRect" parent="VSplitContainer"] unique_name_in_owner = true custom_minimum_size = Vector2(64, 64) layout_mode = 2 @@ -30,16 +28,21 @@ size_flags_vertical = 3 expand_mode = 1 stretch_mode = 5 -[node name="GridContainer" type="GridContainer" parent="VBoxContainer/VSplitContainer"] +[node name="VBoxContainer" type="VBoxContainer" parent="VSplitContainer"] +layout_mode = 2 +size_flags_horizontal = 3 + +[node name="GridContainer" type="GridContainer" parent="VSplitContainer/VBoxContainer"] layout_mode = 2 columns = 2 -[node name="SizeLabel" type="Label" parent="VBoxContainer/VSplitContainer/GridContainer"] +[node name="SizeLabel" type="Label" parent="VSplitContainer/VBoxContainer/GridContainer"] layout_mode = 2 size_flags_horizontal = 3 text = "Size:" -[node name="SizeSlider" parent="VBoxContainer/VSplitContainer/GridContainer" instance=ExtResource("1_evt0j")] +[node name="SizeSlider" parent="VSplitContainer/VBoxContainer/GridContainer" instance=ExtResource("1_evt0j")] +unique_name_in_owner = true layout_mode = 2 value = Vector2(512, 512) min_value = Vector2(1, 1) @@ -50,71 +53,78 @@ grid_columns = 2 suffix_x = "px" suffix_y = "px" -[node name="InvertLabel" type="Label" parent="VBoxContainer/VSplitContainer/GridContainer"] +[node name="InvertLabel" type="Label" parent="VSplitContainer/VBoxContainer/GridContainer"] layout_mode = 2 size_flags_horizontal = 3 text = "Invert:" -[node name="InvertCheckBox" type="CheckBox" parent="VBoxContainer/VSplitContainer/GridContainer"] +[node name="InvertCheckBox" type="CheckBox" parent="VSplitContainer/VBoxContainer/GridContainer"] +unique_name_in_owner = true layout_mode = 2 mouse_default_cursor_shape = 2 text = "On" -[node name="In3DSpaceLabel" type="Label" parent="VBoxContainer/VSplitContainer/GridContainer"] +[node name="In3DSpaceLabel" type="Label" parent="VSplitContainer/VBoxContainer/GridContainer"] layout_mode = 2 size_flags_horizontal = 3 text = "In 3D space:" -[node name="In3DSpaceCheckBox" type="CheckBox" parent="VBoxContainer/VSplitContainer/GridContainer"] +[node name="In3DSpaceCheckBox" type="CheckBox" parent="VSplitContainer/VBoxContainer/GridContainer"] +unique_name_in_owner = true layout_mode = 2 mouse_default_cursor_shape = 2 text = "On" -[node name="SeamlessLabel" type="Label" parent="VBoxContainer/VSplitContainer/GridContainer"] +[node name="SeamlessLabel" type="Label" parent="VSplitContainer/VBoxContainer/GridContainer"] layout_mode = 2 size_flags_horizontal = 3 text = "Seamless:" -[node name="SeamlessCheckBox" type="CheckBox" parent="VBoxContainer/VSplitContainer/GridContainer"] +[node name="SeamlessCheckBox" type="CheckBox" parent="VSplitContainer/VBoxContainer/GridContainer"] +unique_name_in_owner = true layout_mode = 2 mouse_default_cursor_shape = 2 text = "On" -[node name="NormalMapLabel" type="Label" parent="VBoxContainer/VSplitContainer/GridContainer"] +[node name="NormalMapLabel" type="Label" parent="VSplitContainer/VBoxContainer/GridContainer"] layout_mode = 2 size_flags_horizontal = 3 text = "Normal map:" -[node name="NormalMapCheckBox" type="CheckBox" parent="VBoxContainer/VSplitContainer/GridContainer"] +[node name="NormalMapCheckBox" type="CheckBox" parent="VSplitContainer/VBoxContainer/GridContainer"] +unique_name_in_owner = true layout_mode = 2 mouse_default_cursor_shape = 2 text = "On" -[node name="NormalizeLabel" type="Label" parent="VBoxContainer/VSplitContainer/GridContainer"] +[node name="NormalizeLabel" type="Label" parent="VSplitContainer/VBoxContainer/GridContainer"] layout_mode = 2 size_flags_horizontal = 3 text = "Normalize:" -[node name="NormalizeCheckBox" type="CheckBox" parent="VBoxContainer/VSplitContainer/GridContainer"] +[node name="NormalizeCheckBox" type="CheckBox" parent="VSplitContainer/VBoxContainer/GridContainer"] +unique_name_in_owner = true layout_mode = 2 mouse_default_cursor_shape = 2 button_pressed = true text = "On" -[node name="ColorRampLabel" type="Label" parent="VBoxContainer/VSplitContainer/GridContainer"] +[node name="ColorRampLabel" type="Label" parent="VSplitContainer/VBoxContainer/GridContainer"] layout_mode = 2 size_flags_horizontal = 3 text = "Color ramp:" -[node name="GradientEdit" parent="VBoxContainer/VSplitContainer/GridContainer" instance=ExtResource("2_nxkb0")] +[node name="ColorRampEdit" parent="VSplitContainer/VBoxContainer/GridContainer" instance=ExtResource("2_nxkb0")] +unique_name_in_owner = true layout_mode = 2 -[node name="NoiseTypeLabel" type="Label" parent="VBoxContainer/VSplitContainer/GridContainer"] +[node name="NoiseTypeLabel" type="Label" parent="VSplitContainer/VBoxContainer/GridContainer"] layout_mode = 2 size_flags_horizontal = 3 text = "Noise type:" -[node name="NoiseTypeOptionButton" type="OptionButton" parent="VBoxContainer/VSplitContainer/GridContainer"] +[node name="NoiseTypeOptionButton" type="OptionButton" parent="VSplitContainer/VBoxContainer/GridContainer"] +unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 3 mouse_default_cursor_shape = 2 @@ -132,12 +142,13 @@ popup/item_4/id = 4 popup/item_5/text = "Value" popup/item_5/id = 5 -[node name="SeedLabel" type="Label" parent="VBoxContainer/VSplitContainer/GridContainer"] +[node name="SeedLabel" type="Label" parent="VSplitContainer/VBoxContainer/GridContainer"] layout_mode = 2 size_flags_horizontal = 3 text = "Seed:" -[node name="SeedSlider" type="TextureProgressBar" parent="VBoxContainer/VSplitContainer/GridContainer"] +[node name="SeedSlider" type="TextureProgressBar" parent="VSplitContainer/VBoxContainer/GridContainer"] +unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 3 focus_mode = 2 @@ -153,12 +164,13 @@ stretch_margin_right = 3 stretch_margin_bottom = 3 script = ExtResource("1_pm12o") -[node name="FrequencyLabel" type="Label" parent="VBoxContainer/VSplitContainer/GridContainer"] +[node name="FrequencyLabel" type="Label" parent="VSplitContainer/VBoxContainer/GridContainer"] layout_mode = 2 size_flags_horizontal = 3 text = "Frequency:" -[node name="FrequencySlider" type="TextureProgressBar" parent="VBoxContainer/VSplitContainer/GridContainer"] +[node name="FrequencySlider" type="TextureProgressBar" parent="VSplitContainer/VBoxContainer/GridContainer"] +unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 3 focus_mode = 2 @@ -178,34 +190,36 @@ stretch_margin_bottom = 3 script = ExtResource("1_pm12o") snap_step = 0.1 -[node name="OffsetLabel" type="Label" parent="VBoxContainer/VSplitContainer/GridContainer"] +[node name="OffsetLabel" type="Label" parent="VSplitContainer/VBoxContainer/GridContainer"] layout_mode = 2 size_flags_horizontal = 3 text = "Offset:" -[node name="OffsetSlider" parent="VBoxContainer/VSplitContainer/GridContainer" instance=ExtResource("3_ffklk")] +[node name="OffsetSlider" parent="VSplitContainer/VBoxContainer/GridContainer" instance=ExtResource("3_ffklk")] +unique_name_in_owner = true layout_mode = 2 min_value = Vector3(-1000, -1000, -1000) max_value = Vector3(1000, 1000, 1000) grid_columns = 3 -[node name="FractalOptions" type="VBoxContainer" parent="VBoxContainer"] +[node name="FractalOptions" type="VBoxContainer" parent="VSplitContainer/VBoxContainer"] layout_mode = 2 theme_type_variation = &"CollapsibleContainer" script = ExtResource("4_r1f12") text = "Fractal" -[node name="GridContainer" type="GridContainer" parent="VBoxContainer/FractalOptions"] +[node name="GridContainer" type="GridContainer" parent="VSplitContainer/VBoxContainer/FractalOptions"] visible = false layout_mode = 2 columns = 2 -[node name="FractalTypeLabel" type="Label" parent="VBoxContainer/FractalOptions/GridContainer"] +[node name="FractalTypeLabel" type="Label" parent="VSplitContainer/VBoxContainer/FractalOptions/GridContainer"] layout_mode = 2 size_flags_horizontal = 3 text = "Type:" -[node name="FractalTypeOptionButton" type="OptionButton" parent="VBoxContainer/FractalOptions/GridContainer"] +[node name="FractalTypeOptionButton" type="OptionButton" parent="VSplitContainer/VBoxContainer/FractalOptions/GridContainer"] +unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 3 mouse_default_cursor_shape = 2 @@ -219,12 +233,13 @@ popup/item_2/id = 2 popup/item_3/text = "Ping-Pong" popup/item_3/id = 3 -[node name="FractalOctavesLabel" type="Label" parent="VBoxContainer/FractalOptions/GridContainer"] +[node name="FractalOctavesLabel" type="Label" parent="VSplitContainer/VBoxContainer/FractalOptions/GridContainer"] layout_mode = 2 size_flags_horizontal = 3 text = "Octaves:" -[node name="FractalOctavesSlider" type="TextureProgressBar" parent="VBoxContainer/FractalOptions/GridContainer"] +[node name="FractalOctavesSlider" type="TextureProgressBar" parent="VSplitContainer/VBoxContainer/FractalOptions/GridContainer"] +unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 3 focus_mode = 2 @@ -240,12 +255,13 @@ stretch_margin_right = 3 stretch_margin_bottom = 3 script = ExtResource("1_pm12o") -[node name="FractalLacunarityLabel" type="Label" parent="VBoxContainer/FractalOptions/GridContainer"] +[node name="FractalLacunarityLabel" type="Label" parent="VSplitContainer/VBoxContainer/FractalOptions/GridContainer"] layout_mode = 2 size_flags_horizontal = 3 text = "Lacunarity:" -[node name="FractalLacunaritySlider" type="TextureProgressBar" parent="VBoxContainer/FractalOptions/GridContainer"] +[node name="FractalLacunaritySlider" type="TextureProgressBar" parent="VSplitContainer/VBoxContainer/FractalOptions/GridContainer"] +unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 3 focus_mode = 2 @@ -263,12 +279,13 @@ stretch_margin_right = 3 stretch_margin_bottom = 3 script = ExtResource("1_pm12o") -[node name="FractalGainLabel" type="Label" parent="VBoxContainer/FractalOptions/GridContainer"] +[node name="FractalGainLabel" type="Label" parent="VSplitContainer/VBoxContainer/FractalOptions/GridContainer"] layout_mode = 2 size_flags_horizontal = 3 text = "Gain:" -[node name="FractalGainSlider" type="TextureProgressBar" parent="VBoxContainer/FractalOptions/GridContainer"] +[node name="FractalGainSlider" type="TextureProgressBar" parent="VSplitContainer/VBoxContainer/FractalOptions/GridContainer"] +unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 3 focus_mode = 2 @@ -288,12 +305,13 @@ stretch_margin_bottom = 3 script = ExtResource("1_pm12o") snap_step = 0.01 -[node name="FractalWeightedStrengthLabel" type="Label" parent="VBoxContainer/FractalOptions/GridContainer"] +[node name="FractalWeightedStrengthLabel" type="Label" parent="VSplitContainer/VBoxContainer/FractalOptions/GridContainer"] layout_mode = 2 size_flags_horizontal = 3 text = "Weighted Strength:" -[node name="FractalWeightedStrengthSlider" type="TextureProgressBar" parent="VBoxContainer/FractalOptions/GridContainer"] +[node name="FractalWeightedStrengthSlider" type="TextureProgressBar" parent="VSplitContainer/VBoxContainer/FractalOptions/GridContainer"] +unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 3 focus_mode = 2 @@ -309,33 +327,35 @@ stretch_margin_bottom = 3 script = ExtResource("1_pm12o") snap_step = 0.1 -[node name="DomainWarpOptions" type="VBoxContainer" parent="VBoxContainer"] +[node name="DomainWarpOptions" type="VBoxContainer" parent="VSplitContainer/VBoxContainer"] layout_mode = 2 theme_type_variation = &"CollapsibleContainer" script = ExtResource("4_r1f12") text = "Domain Warp" -[node name="GridContainer" type="GridContainer" parent="VBoxContainer/DomainWarpOptions"] +[node name="GridContainer" type="GridContainer" parent="VSplitContainer/VBoxContainer/DomainWarpOptions"] visible = false layout_mode = 2 columns = 2 -[node name="DomainWarpEnabledLabel" type="Label" parent="VBoxContainer/DomainWarpOptions/GridContainer"] +[node name="DomainWarpEnabledLabel" type="Label" parent="VSplitContainer/VBoxContainer/DomainWarpOptions/GridContainer"] layout_mode = 2 size_flags_horizontal = 3 text = "Enabled:" -[node name="DomainWarpEnabledCheckBox" type="CheckBox" parent="VBoxContainer/DomainWarpOptions/GridContainer"] +[node name="DomainWarpEnabledCheckBox" type="CheckBox" parent="VSplitContainer/VBoxContainer/DomainWarpOptions/GridContainer"] +unique_name_in_owner = true layout_mode = 2 mouse_default_cursor_shape = 2 text = "On" -[node name="DomainWarpTypeLabel" type="Label" parent="VBoxContainer/DomainWarpOptions/GridContainer"] +[node name="DomainWarpTypeLabel" type="Label" parent="VSplitContainer/VBoxContainer/DomainWarpOptions/GridContainer"] layout_mode = 2 size_flags_horizontal = 3 text = "Type:" -[node name="DomainWarpTypeOptionButton" type="OptionButton" parent="VBoxContainer/DomainWarpOptions/GridContainer"] +[node name="DomainWarpTypeOptionButton" type="OptionButton" parent="VSplitContainer/VBoxContainer/DomainWarpOptions/GridContainer"] +unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 3 mouse_default_cursor_shape = 2 @@ -347,12 +367,13 @@ popup/item_1/id = 1 popup/item_2/text = "Basic Grid" popup/item_2/id = 2 -[node name="DomainWarpAmplitudeLabel" type="Label" parent="VBoxContainer/DomainWarpOptions/GridContainer"] +[node name="DomainWarpAmplitudeLabel" type="Label" parent="VSplitContainer/VBoxContainer/DomainWarpOptions/GridContainer"] layout_mode = 2 size_flags_horizontal = 3 text = "Amplitude:" -[node name="DomainWarpAmplitudeSlider" type="TextureProgressBar" parent="VBoxContainer/DomainWarpOptions/GridContainer"] +[node name="DomainWarpAmplitudeSlider" type="TextureProgressBar" parent="VSplitContainer/VBoxContainer/DomainWarpOptions/GridContainer"] +unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 3 focus_mode = 2 @@ -368,12 +389,13 @@ stretch_margin_right = 3 stretch_margin_bottom = 3 script = ExtResource("1_pm12o") -[node name="DomainWarpFrequencyLabel" type="Label" parent="VBoxContainer/DomainWarpOptions/GridContainer"] +[node name="DomainWarpFrequencyLabel" type="Label" parent="VSplitContainer/VBoxContainer/DomainWarpOptions/GridContainer"] layout_mode = 2 size_flags_horizontal = 3 text = "Frequency:" -[node name="DomainWarpFrequencySlider" type="TextureProgressBar" parent="VBoxContainer/DomainWarpOptions/GridContainer"] +[node name="DomainWarpFrequencySlider" type="TextureProgressBar" parent="VSplitContainer/VBoxContainer/DomainWarpOptions/GridContainer"] +unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 3 focus_mode = 2 @@ -393,12 +415,13 @@ stretch_margin_bottom = 3 script = ExtResource("1_pm12o") snap_step = 0.01 -[node name="DomainWarpFractalTypeLabel" type="Label" parent="VBoxContainer/DomainWarpOptions/GridContainer"] +[node name="DomainWarpFractalTypeLabel" type="Label" parent="VSplitContainer/VBoxContainer/DomainWarpOptions/GridContainer"] layout_mode = 2 size_flags_horizontal = 3 text = "Fractal type:" -[node name="DomainWarpFractalTypeOptionButton" type="OptionButton" parent="VBoxContainer/DomainWarpOptions/GridContainer"] +[node name="DomainWarpFractalTypeOptionButton" type="OptionButton" parent="VSplitContainer/VBoxContainer/DomainWarpOptions/GridContainer"] +unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 3 mouse_default_cursor_shape = 2 @@ -410,12 +433,13 @@ popup/item_1/id = 1 popup/item_2/text = "Independent" popup/item_2/id = 2 -[node name="DomainWarpFractalOctavesLabel" type="Label" parent="VBoxContainer/DomainWarpOptions/GridContainer"] +[node name="DomainWarpFractalOctavesLabel" type="Label" parent="VSplitContainer/VBoxContainer/DomainWarpOptions/GridContainer"] layout_mode = 2 size_flags_horizontal = 3 text = "Fractal octaves:" -[node name="DomainWarpFractalOctavesSlider" type="TextureProgressBar" parent="VBoxContainer/DomainWarpOptions/GridContainer"] +[node name="DomainWarpFractalOctavesSlider" type="TextureProgressBar" parent="VSplitContainer/VBoxContainer/DomainWarpOptions/GridContainer"] +unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 3 focus_mode = 2 @@ -431,12 +455,13 @@ stretch_margin_right = 3 stretch_margin_bottom = 3 script = ExtResource("1_pm12o") -[node name="DomainWarpFractalLacunarityLabel" type="Label" parent="VBoxContainer/DomainWarpOptions/GridContainer"] +[node name="DomainWarpFractalLacunarityLabel" type="Label" parent="VSplitContainer/VBoxContainer/DomainWarpOptions/GridContainer"] layout_mode = 2 size_flags_horizontal = 3 text = "Fractal lacunarity:" -[node name="DomainWarpFractalLacunaritySlider" type="TextureProgressBar" parent="VBoxContainer/DomainWarpOptions/GridContainer"] +[node name="DomainWarpFractalLacunaritySlider" type="TextureProgressBar" parent="VSplitContainer/VBoxContainer/DomainWarpOptions/GridContainer"] +unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 3 focus_mode = 2 @@ -454,12 +479,13 @@ stretch_margin_right = 3 stretch_margin_bottom = 3 script = ExtResource("1_pm12o") -[node name="DomainWarpFractalGainLabel" type="Label" parent="VBoxContainer/DomainWarpOptions/GridContainer"] +[node name="DomainWarpFractalGainLabel" type="Label" parent="VSplitContainer/VBoxContainer/DomainWarpOptions/GridContainer"] layout_mode = 2 size_flags_horizontal = 3 text = "Fractal gain:" -[node name="DomainWarpFractalGainSlider" type="TextureProgressBar" parent="VBoxContainer/DomainWarpOptions/GridContainer"] +[node name="DomainWarpFractalGainSlider" type="TextureProgressBar" parent="VSplitContainer/VBoxContainer/DomainWarpOptions/GridContainer"] +unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 3 focus_mode = 2 @@ -479,27 +505,4 @@ stretch_margin_bottom = 3 script = ExtResource("1_pm12o") snap_step = 0.01 -[connection signal="value_changed" from="VBoxContainer/VSplitContainer/GridContainer/SizeSlider" to="." method="_on_size_slider_value_changed"] -[connection signal="toggled" from="VBoxContainer/VSplitContainer/GridContainer/InvertCheckBox" to="." method="_on_invert_check_box_toggled"] -[connection signal="toggled" from="VBoxContainer/VSplitContainer/GridContainer/In3DSpaceCheckBox" to="." method="_on_in_3d_space_check_box_toggled"] -[connection signal="toggled" from="VBoxContainer/VSplitContainer/GridContainer/SeamlessCheckBox" to="." method="_on_seamless_check_box_toggled"] -[connection signal="toggled" from="VBoxContainer/VSplitContainer/GridContainer/NormalMapCheckBox" to="." method="_on_normal_map_check_box_toggled"] -[connection signal="toggled" from="VBoxContainer/VSplitContainer/GridContainer/NormalizeCheckBox" to="." method="_on_normalize_check_box_toggled"] -[connection signal="updated" from="VBoxContainer/VSplitContainer/GridContainer/GradientEdit" to="." method="_on_gradient_edit_updated"] -[connection signal="item_selected" from="VBoxContainer/VSplitContainer/GridContainer/NoiseTypeOptionButton" to="." method="_on_noise_type_option_button_item_selected"] -[connection signal="value_changed" from="VBoxContainer/VSplitContainer/GridContainer/SeedSlider" to="." method="_on_seed_slider_value_changed"] -[connection signal="value_changed" from="VBoxContainer/VSplitContainer/GridContainer/FrequencySlider" to="." method="_on_frequency_slider_value_changed"] -[connection signal="value_changed" from="VBoxContainer/VSplitContainer/GridContainer/OffsetSlider" to="." method="_on_offset_slider_value_changed"] -[connection signal="item_selected" from="VBoxContainer/FractalOptions/GridContainer/FractalTypeOptionButton" to="." method="_on_fractal_type_option_button_item_selected"] -[connection signal="value_changed" from="VBoxContainer/FractalOptions/GridContainer/FractalOctavesSlider" to="." method="_on_fractal_octaves_slider_value_changed"] -[connection signal="value_changed" from="VBoxContainer/FractalOptions/GridContainer/FractalLacunaritySlider" to="." method="_on_fractal_lacunarity_slider_value_changed"] -[connection signal="value_changed" from="VBoxContainer/FractalOptions/GridContainer/FractalGainSlider" to="." method="_on_fractal_gain_slider_value_changed"] -[connection signal="value_changed" from="VBoxContainer/FractalOptions/GridContainer/FractalWeightedStrengthSlider" to="." method="_on_fractal_weighted_strength_slider_value_changed"] -[connection signal="toggled" from="VBoxContainer/DomainWarpOptions/GridContainer/DomainWarpEnabledCheckBox" to="." method="_on_domain_warp_enabled_check_box_toggled"] -[connection signal="item_selected" from="VBoxContainer/DomainWarpOptions/GridContainer/DomainWarpTypeOptionButton" to="." method="_on_domain_warp_type_option_button_item_selected"] -[connection signal="value_changed" from="VBoxContainer/DomainWarpOptions/GridContainer/DomainWarpAmplitudeSlider" to="." method="_on_domain_warp_amplitude_slider_value_changed"] -[connection signal="value_changed" from="VBoxContainer/DomainWarpOptions/GridContainer/DomainWarpFrequencySlider" to="." method="_on_domain_warp_frequency_slider_value_changed"] -[connection signal="item_selected" from="VBoxContainer/DomainWarpOptions/GridContainer/DomainWarpFractalTypeOptionButton" to="." method="_on_domain_warp_fractal_type_option_button_item_selected"] -[connection signal="value_changed" from="VBoxContainer/DomainWarpOptions/GridContainer/DomainWarpFractalOctavesSlider" to="." method="_on_domain_warp_fractal_octaves_slider_value_changed"] -[connection signal="value_changed" from="VBoxContainer/DomainWarpOptions/GridContainer/DomainWarpFractalLacunaritySlider" to="." method="_on_domain_warp_fractal_lacunarity_slider_value_changed"] -[connection signal="value_changed" from="VBoxContainer/DomainWarpOptions/GridContainer/DomainWarpFractalGainSlider" to="." method="_on_domain_warp_fractal_gain_slider_value_changed"] +[connection signal="value_changed" from="VSplitContainer/VBoxContainer/GridContainer/SizeSlider" to="." method="_on_size_slider_value_changed"]