1
0
Fork 0
mirror of https://github.com/Orama-Interactive/Pixelorama.git synced 2025-01-18 00:59:47 +00:00

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.
This commit is contained in:
Emmanouil Papadeas 2024-12-17 13:38:18 +02:00
parent 0f53fc32fe
commit 3edb37168c
3 changed files with 184 additions and 200 deletions

View file

@ -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]

View file

@ -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)

View file

@ -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"]