feat: noise/plane primitiveinspectors

This commit is contained in:
Sara Gerretsen 2025-12-14 21:32:10 +01:00
parent e22aeb49f6
commit a1881f2af3
7 changed files with 107 additions and 48 deletions

View file

@ -3,6 +3,20 @@
[ext_resource type="PackedScene" uid="uid://bwrqsnetcn8yr" path="res://assets/models/point_handle.blend" id="1_njtj3"]
[ext_resource type="Material" uid="uid://b4ip0oq8o76mc" path="res://assets/materials/peak_handle_depth_tested.tres" id="2_mx0s0"]
[sub_resource type="GDScript" id="GDScript_am0ml"]
resource_name = "PointPrimitiveHandles"
script/source = "extends PointPrimitiveNode
@onready var terrain : TerrainMeshEditor = get_parent()
func _ready():
terrain.selection_changed.connect(_selection_changed)
visible = false
func _selection_changed(primitive : TerrainPrimitive):
visible = primitive == self.get_primitive()
"
[sub_resource type="GDScript" id="GDScript_njtj3"]
resource_name = "HeightHandle"
script/source = "extends Area3D
@ -136,6 +150,7 @@ height = 10000.0
[node name="PointPrimitiveNode" type="PointPrimitiveNode" unique_id=1472259146]
transform = Transform3D(0.2, 0, 0, 0, 0.2, 0, 0, 0, 0.2, 0, 0, 0)
script = SubResource("GDScript_am0ml")
[node name="point_handle" parent="." unique_id=1807952123 instance=ExtResource("1_njtj3")]
transform = Transform3D(10, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0)

View file

@ -8,43 +8,13 @@
[ext_resource type="Texture2D" uid="uid://bl3gn6qruuy8w" path="res://assets/icons/plane.svg" id="4_xg7d5"]
[ext_resource type="Texture2D" uid="uid://d1te42w7wpkrx" path="res://assets/icons/noise.svg" id="5_eqbpn"]
[ext_resource type="PackedScene" uid="uid://bsvvhue5x4rb" path="res://ui/primitive_inspectors/point_primitive_inspector.tscn" id="8_5tm2q"]
[ext_resource type="PackedScene" uid="uid://c5desl3kt72c7" path="res://ui/primitive_inspectors/noise_primitive_inspector.tscn" id="9_3vi5u"]
[ext_resource type="PackedScene" uid="uid://bl16us512blpp" path="res://ui/primitive_inspectors/base_primitive_inspector.tscn" id="9_j8y2p"]
[sub_resource type="PointPrimitive" id="PointPrimitive_5tm2q"]
[sub_resource type="FastNoiseLite" id="FastNoiseLite_pxqd5"]
frequency = 0.015
fractal_octaves = 3
[sub_resource type="NoisePrimitive" id="NoisePrimitive_ba0ut"]
blend_range = 5.0
noise = SubResource("FastNoiseLite_pxqd5")
noise_amplitude = 20.0
[sub_resource type="FastNoiseLite" id="FastNoiseLite_b1cmn"]
noise_type = 0
frequency = 0.03
fractal_type = 2
metadata/_preview_in_3d_space_ = true
[sub_resource type="NoisePrimitive" id="NoisePrimitive_pxqd5"]
blend_range = 10.0
noise = SubResource("FastNoiseLite_b1cmn")
noise_amplitude = 5.0
[sub_resource type="FastNoiseLite" id="FastNoiseLite_ba0ut"]
noise_type = 4
frequency = 0.588
fractal_gain = 1.0
fractal_weighted_strength = 1.0
[sub_resource type="NoisePrimitive" id="NoisePrimitive_q68jb"]
blend_mode = 1
noise = SubResource("FastNoiseLite_ba0ut")
[ext_resource type="PackedScene" uid="uid://cq25h75v1bnn1" path="res://ui/primitive_inspectors/plane_primitive_inspector.tscn" id="9_o435n"]
[sub_resource type="PlanePrimitive" id="PlanePrimitive_ba0ut"]
blend_range = 20.0
baseline = -1.0
blend_range = 1.0
baseline = 0.0
[sub_resource type="Gradient" id="Gradient_b1cmn"]
interpolation_mode = 2
@ -128,12 +98,17 @@ load_path = "res://.godot/imported/point.svg-e68fd7c1e788d2c48d769cc58eba6e98.ct
[sub_resource type="PlanePrimitive" id="PlanePrimitive_5lcyj"]
[sub_resource type="FastNoiseLite" id="FastNoiseLite_3vi5u"]
frequency = 0.0326
fractal_octaves = 3
[sub_resource type="NoisePrimitive" id="NoisePrimitive_5lcyj"]
noise = SubResource("FastNoiseLite_3vi5u")
[node name="Editor" type="Node3D" unique_id=1027707839]
[node name="TerrainMeshEditor" type="TerrainMeshEditor" parent="." unique_id=1382595562]
primitives = [SubResource("PointPrimitive_5tm2q"), SubResource("NoisePrimitive_ba0ut"), SubResource("NoisePrimitive_pxqd5"), SubResource("NoisePrimitive_q68jb"), SubResource("PlanePrimitive_ba0ut")]
primitives = [SubResource("PlanePrimitive_ba0ut")]
vertex_color_gradient = SubResource("Gradient_b1cmn")
color_gradient_end_height = 100.0
chunk_count = 8
@ -232,8 +207,8 @@ layout_mode = 2
size_flags_vertical = 3
inspectors = {
&"ExpressionPrimitive": ExtResource("9_j8y2p"),
&"NoisePrimitive": ExtResource("9_j8y2p"),
&"PlanePrimitive": ExtResource("9_j8y2p"),
&"NoisePrimitive": ExtResource("9_3vi5u"),
&"PlanePrimitive": ExtResource("9_o435n"),
&"PointPrimitive": ExtResource("8_5tm2q")
}
terrain = NodePath("../../../TerrainMeshEditor")

View file

@ -11,16 +11,10 @@ var value_before : float = 0.0
var dragging := false
func connect_changes():
$HSlider.connect(\"drag_ended\", _drag_ended)
$HSlider.connect(\"drag_started\", _drag_started)
$HSlider.connect(\"value_changed\", _slider_value_changed)
$SpinBox.connect(\"value_changed\", _spin_value_changed)
func disconnect_changes():
$HSlider.disconnect(\"drag_ended\", _drag_ended)
$HSlider.disconnect(\"drag_started\", _drag_started)
$HSlider.disconnect(\"value_changed\", _slider_value_changed)
$SpinBox.disconnect(\"value_changed\", _spin_value_changed)
$HSlider.drag_ended.connect(_drag_ended)
$HSlider.drag_started.connect(_drag_started)
$HSlider.value_changed.connect(_slider_value_changed)
$SpinBox.value_changed.connect(_spin_value_changed)
func _ready() -> void:
primitive.changed.connect(_primitive_changed)
@ -56,11 +50,16 @@ offset_bottom = 31.0
script = SubResource("GDScript_aclmm")
[node name="SpinBox" type="SpinBox" parent="." unique_id=580598896]
custom_minimum_size = Vector2(100, 0)
layout_mode = 2
min_value = -10000.0
max_value = 100000.0
step = 0.01
value = 10.0
allow_greater = true
alignment = 2
custom_arrow_step = 1.0
custom_arrow_round = true
[node name="HSlider" type="HSlider" parent="." unique_id=163542019]
layout_mode = 2
@ -69,3 +68,4 @@ size_flags_vertical = 1
max_value = 300.0
step = 0.01
value = 200.0
tick_count = 4

View file

@ -10,13 +10,19 @@ script/source = "extends OptionButton
@onready var terrain : TerrainMeshEditor = $\"../../..\".terrain
@onready var primitive : TerrainPrimitive = terrain.current_selected
func _ready():
selected = primitive.blend_mode
primitive.changed.connect(_primitive_changed)
func _primitive_changed():
selected = primitive.blend_mode
func _on_item_selected(index: int) -> void:
var before : int = primitive.blend_mode
EditHistory.push_action(primitive.set_blend_mode.bind(index), primitive.set_blend_mode.bind(before))
"
[node name="PointPrimitive" type="MarginContainer" unique_id=905749607]
[node name="Primitive" type="MarginContainer" unique_id=905749607]
offset_right = 302.0
offset_bottom = 230.0
theme_override_constants/margin_left = 5

View file

@ -0,0 +1,47 @@
[gd_scene format=3 uid="uid://c5desl3kt72c7"]
[ext_resource type="PackedScene" uid="uid://bl16us512blpp" path="res://ui/primitive_inspectors/base_primitive_inspector.tscn" id="1_xrxbf"]
[ext_resource type="PackedScene" uid="uid://cwby0in0f2wi2" path="res://ui/editor_elements/float_editor.tscn" id="2_sg7mg"]
[node name="NoisePrimitive" unique_id=905749607 instance=ExtResource("1_xrxbf")]
[node name="Label" type="Label" parent="VBoxContainer" parent_id_path=PackedInt32Array(236606520) index="0" unique_id=273381442]
layout_mode = 2
text = "Noise Scale"
[node name="FloatEditor" parent="VBoxContainer" parent_id_path=PackedInt32Array(236606520) index="1" unique_id=1730998858 instance=ExtResource("2_sg7mg")]
layout_mode = 2
changes_value = "noise_scale"
[node name="SpinBox" parent="VBoxContainer/FloatEditor" index="0" unique_id=580598896]
min_value = 0.01
suffix = "x"
[node name="HSlider" parent="VBoxContainer/FloatEditor" index="1" unique_id=163542019]
min_value = 0.01
max_value = 100.0
value = 10.0
exp_edit = true
tick_count = 3
[node name="Label2" type="Label" parent="VBoxContainer" parent_id_path=PackedInt32Array(236606520) index="2" unique_id=1672112548]
layout_mode = 2
text = "Noise Amplitude"
[node name="FloatEditor2" parent="VBoxContainer" parent_id_path=PackedInt32Array(236606520) index="3" unique_id=826068898 instance=ExtResource("2_sg7mg")]
layout_mode = 2
changes_value = "noise_amplitude"
[node name="SpinBox" parent="VBoxContainer/FloatEditor2" index="0" unique_id=580598896]
min_value = 0.01
prefix = "±"
suffix = "m"
[node name="HSlider" parent="VBoxContainer/FloatEditor2" index="1" unique_id=163542019]
min_value = 0.01
exp_edit = true
tick_count = 3
[editable path="VBoxContainer/FloatEditor"]
[editable path="VBoxContainer/FloatEditor2"]
[editable path="VBoxContainer/FloatEditor3"]

View file

@ -0,0 +1,16 @@
[gd_scene format=3 uid="uid://cq25h75v1bnn1"]
[ext_resource type="PackedScene" uid="uid://bl16us512blpp" path="res://ui/primitive_inspectors/base_primitive_inspector.tscn" id="1_6yw1a"]
[ext_resource type="PackedScene" uid="uid://cwby0in0f2wi2" path="res://ui/editor_elements/float_editor.tscn" id="2_rbqm7"]
[node name="PlanePrimitive" unique_id=905749607 instance=ExtResource("1_6yw1a")]
[node name="Label" type="Label" parent="VBoxContainer" parent_id_path=PackedInt32Array(236606520) index="0" unique_id=1175716242]
layout_mode = 2
text = "Baseline"
[node name="FloatEditor" parent="VBoxContainer" parent_id_path=PackedInt32Array(236606520) index="1" unique_id=1730998858 instance=ExtResource("2_rbqm7")]
layout_mode = 2
changes_value = "baseline"
[editable path="VBoxContainer/FloatEditor3"]

Binary file not shown.