continue updating the ui
This commit is contained in:
parent
e1a8424cdd
commit
226c3cf5a7
|
@ -1,6 +1,6 @@
|
|||
shader_type spatial;
|
||||
|
||||
render_mode diffuse_burley, specular_schlick_ggx, blend_mix, cull_disabled, shadows_disabled, depth_prepass_alpha;
|
||||
render_mode diffuse_burley, specular_schlick_ggx, blend_mix, cull_disabled, shadows_disabled;
|
||||
|
||||
group_uniforms Color;
|
||||
uniform vec4 color : source_color = vec4(1.0, 1.0, 1.0, 0.3);
|
||||
|
@ -12,7 +12,7 @@ uniform vec2 size = vec2(1.0, 1.0);
|
|||
uniform float border_size: hint_range(0.0, 0.5) = 0.001;
|
||||
uniform float border_fade_in: hint_range(0.0, 0.5) = 0.005;
|
||||
uniform float border_fade_out: hint_range(0.0, 0.5) = 0.0;
|
||||
uniform float corner_radius: hint_range(0.0, 0.5) = 0.04;
|
||||
uniform float corner_radius = 0.04;
|
||||
|
||||
group_uniforms Roughness;
|
||||
uniform float roughness : hint_range(0.0, 1.0) = 0.3;
|
||||
|
|
|
@ -76,16 +76,16 @@ min_camera_height = 0.01
|
|||
xr_origin = NodePath("../XROrigin3D")
|
||||
|
||||
[node name="Menu" parent="." instance=ExtResource("8_du83w")]
|
||||
transform = Transform3D(0.999998, -0.000514899, -6.55874e-05, 1.96975e-05, 0.163911, -0.986474, 0.000518685, 0.986474, 0.163911, -0.0165588, 0.796337, -0.634317)
|
||||
transform = Transform3D(0.999999, -1.39633e-11, 0, 1.60657e-10, 1, -4.54747e-13, 0, 0, 0.999999, -0.0165677, 0.766337, -0.634317)
|
||||
|
||||
[node name="Keyboard" parent="." instance=ExtResource("9_e5n3p")]
|
||||
transform = Transform3D(0.499999, -0.000139169, -6.50204e-05, 5.24307e-05, 0.353553, -0.353553, 0.000144383, 0.353553, 0.353553, -0.0199266, 0.550784, -0.47368)
|
||||
transform = Transform3D(0.5, -0.000139169, -6.50202e-05, 5.2431e-05, 0.353553, -0.353553, 0.000144384, 0.353553, 0.353553, -0.0199266, 0.550784, -0.47368)
|
||||
|
||||
[node name="Rooms" type="Node3D" parent="."]
|
||||
|
||||
[node name="House" parent="." instance=ExtResource("9_np6mw")]
|
||||
|
||||
[node name="Onboarding" parent="." instance=ExtResource("12_uq2nj")]
|
||||
transform = Transform3D(0.999999, -1.39632e-11, 0, 9.48097e-12, 0.999999, 0, 0, 0, 0.999999, -0.529594, 0.820154, -0.600147)
|
||||
transform = Transform3D(1, -9.48098e-12, 0, 9.48098e-12, 1, 0, 0, 0, 1, -0.529594, 0.820154, -0.600147)
|
||||
|
||||
[editable path="XROrigin3D/XRControllerLeft"]
|
||||
|
|
|
@ -8,15 +8,15 @@
|
|||
[ext_resource type="Script" path="res://content/functions/occludable.gd" id="6_y4sdl"]
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_k5ib7"]
|
||||
size = Vector3(0.79, 0.01, 0.26)
|
||||
size = Vector3(0.86, 0.27, 0.02)
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_x72nd"]
|
||||
render_priority = 0
|
||||
render_priority = -1
|
||||
shader = ExtResource("5_0dbg6")
|
||||
shader_parameter/color = Color(1, 1, 1, 0.3)
|
||||
shader_parameter/border_color = Color(1, 1, 1, 1)
|
||||
shader_parameter/edge_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/size = Vector2(0.79, 0.26)
|
||||
shader_parameter/size = Vector2(0.86, 0.27)
|
||||
shader_parameter/border_size = 0.001
|
||||
shader_parameter/border_fade_in = 0.005
|
||||
shader_parameter/border_fade_out = 0.0
|
||||
|
@ -25,7 +25,7 @@ shader_parameter/roughness = 0.3
|
|||
shader_parameter/grain_amount = 0.02
|
||||
|
||||
[sub_resource type="QuadMesh" id="QuadMesh_88pdc"]
|
||||
size = Vector2(0.79, 0.26)
|
||||
size = Vector2(0.86, 0.27)
|
||||
|
||||
[node name="Keyboard" type="StaticBody3D" groups=["ui_focus_stop"]]
|
||||
transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 0, 0, 0)
|
||||
|
@ -34,7 +34,7 @@ collision_mask = 0
|
|||
script = ExtResource("1_maojw")
|
||||
|
||||
[node name="Backspace" parent="." instance=ExtResource("1_xdpwr")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.35, 0, -0.07)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.38, 0.09, 0)
|
||||
focusable = false
|
||||
label = "backspace"
|
||||
icon = true
|
||||
|
@ -42,34 +42,32 @@ echo = true
|
|||
metadata/key = 4194308
|
||||
|
||||
[node name="Caps" parent="." instance=ExtResource("1_xdpwr")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.370036, 0, 0.059964)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.39, -0.03, 0)
|
||||
focusable = false
|
||||
label = "keyboard_capslock"
|
||||
icon = true
|
||||
toggleable = true
|
||||
|
||||
[node name="Paste" parent="." instance=ExtResource("1_xdpwr")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.349964, 0, 0.089964)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.38, -0.09, 0)
|
||||
focusable = false
|
||||
label = "assignment"
|
||||
icon = true
|
||||
|
||||
[node name="Keys" type="Node3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.310036, 0, -0.090036)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.325, 0.09, 0)
|
||||
script = ExtResource("3_mx544")
|
||||
columns = 11
|
||||
depth_gap = 0.06
|
||||
size = Vector3(0.6, 1, 1)
|
||||
gaps = Vector2(0.01, 0.01)
|
||||
size = Vector3(0.6, 0.15, 1)
|
||||
|
||||
[node name="Movable" type="Node" parent="."]
|
||||
script = ExtResource("4_86fct")
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0093171, -0.009645, 0.00284005)
|
||||
shape = SubResource("BoxShape3D_k5ib7")
|
||||
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.0093171, -0.009645, 0.00284005)
|
||||
material_override = SubResource("ShaderMaterial_x72nd")
|
||||
mesh = SubResource("QuadMesh_88pdc")
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
@tool
|
||||
|
||||
extends Node3D
|
||||
extends Container3D
|
||||
class_name Button3D
|
||||
|
||||
signal on_button_down()
|
||||
|
@ -12,8 +12,13 @@ const ECHO_WAIT_INITIAL = 0.5
|
|||
const ECHO_WAIT_REPEAT = 0.1
|
||||
|
||||
@onready var body: StaticBody3D = $Body
|
||||
@onready var mesh: MeshInstance3D = $Body/MeshInstance3D
|
||||
@onready var collision: CollisionShape3D = $Body/CollisionShape3D
|
||||
@onready var label_node: Label3D = $Body/Label
|
||||
@onready var finger_area: Area3D = $FingerArea
|
||||
@onready var finger_area_collision: CollisionShape3D = $FingerArea/CollisionShape3D
|
||||
@onready var touch_collision: CollisionShape3D = $TouchBody/CollisionShape3D
|
||||
@onready var touch: StaticBody3D = $TouchBody
|
||||
|
||||
@export var focusable: bool = true:
|
||||
set(value):
|
||||
|
@ -72,6 +77,8 @@ func _ready():
|
|||
if initial_active:
|
||||
active = true
|
||||
|
||||
_update()
|
||||
|
||||
Update.props(self, ["active", "external_value", "icon", "label", "font_size", "disabled"])
|
||||
|
||||
if echo:
|
||||
|
@ -92,8 +99,8 @@ func update_animation(value: float):
|
|||
var tween = create_tween()
|
||||
tween.set_parallel(true)
|
||||
|
||||
tween.tween_property(body, "scale:y", lerpf(1.0, 0.5, value), 0.2)
|
||||
tween.tween_property(body, "position:y", lerpf(0.01, 0.005, value), 0.2)
|
||||
tween.tween_property(body, "scale:z", lerpf(1.0, 0.5, value), 0.2)
|
||||
tween.tween_property(body, "position:z", lerpf(size.z / 2, size.z / 4, value), 0.2)
|
||||
|
||||
func _on_press_down(event):
|
||||
if disabled:
|
||||
|
@ -181,12 +188,25 @@ func _touch_change(event: EventTouch):
|
|||
var pos = Vector3(0, 1, 0)
|
||||
for finger in event.fingers:
|
||||
var finger_pos = to_local(finger.area.global_position)
|
||||
if pos.y > finger_pos.y:
|
||||
if pos.z > finger_pos.z:
|
||||
pos = finger_pos
|
||||
|
||||
var button_height = 0.2
|
||||
var button_center = 0.1
|
||||
|
||||
var percent = clamp((button_center + button_height / 2 - pos.y) / (button_height / 2), 0, 1)
|
||||
var percent = clamp((button_center + button_height / 2 - pos.z) / (button_height / 2), 0, 1)
|
||||
|
||||
update_animation(percent)
|
||||
|
||||
func _update():
|
||||
body.position = Vector3(0, 0, size.z / 2)
|
||||
finger_area.position = Vector3(0, 0, -0.015)
|
||||
touch.position = Vector3(0, 0, size.z / 2)
|
||||
|
||||
mesh.mesh.size = Vector2(size.x, size.y)
|
||||
collision.shape.size = Vector3(size.x, size.y, size.z)
|
||||
label_node.width = size.x / label_node.pixel_size
|
||||
mesh.position = Vector3(0, 0, size.z / 2)
|
||||
label_node.position = Vector3(0, 0, size.z / 2 + 0.001)
|
||||
|
||||
finger_area_collision.shape.size = Vector3(size.x, size.y, 0.03)
|
||||
|
|
|
@ -1,45 +1,43 @@
|
|||
[gd_scene load_steps=8 format=3 uid="uid://bsjqdvkt0u87c"]
|
||||
[gd_scene load_steps=7 format=3 uid="uid://bsjqdvkt0u87c"]
|
||||
|
||||
[ext_resource type="Script" path="res://content/ui/components/button/button.gd" id="1_74x7g"]
|
||||
[ext_resource type="Shader" path="res://assets/materials/glass.gdshader" id="4_2xlpt"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_oqan0"]
|
||||
render_priority = 0
|
||||
render_priority = -1
|
||||
shader = ExtResource("4_2xlpt")
|
||||
shader_parameter/color = Color(1, 1, 1, 0.3)
|
||||
shader_parameter/border_color = Color(1, 1, 1, 1)
|
||||
shader_parameter/edge_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/size = Vector2(0.1, 0.1)
|
||||
shader_parameter/border_size = 0.001
|
||||
shader_parameter/border_fade_in = 0.005
|
||||
shader_parameter/size = Vector2(1, 1)
|
||||
shader_parameter/border_size = 0.01
|
||||
shader_parameter/border_fade_in = 0.05
|
||||
shader_parameter/border_fade_out = 0.0
|
||||
shader_parameter/corner_radius = 0.02
|
||||
shader_parameter/corner_radius = 0.2
|
||||
shader_parameter/roughness = 0.3
|
||||
shader_parameter/grain_amount = 0.02
|
||||
|
||||
[sub_resource type="QuadMesh" id="QuadMesh_bt05p"]
|
||||
size = Vector2(0.1, 0.1)
|
||||
size = Vector2(0.05, 0.05)
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_xwopm"]
|
||||
size = Vector3(0.05, 0.02, 0.05)
|
||||
size = Vector3(0.05, 0.05, 0.01)
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_bqjii"]
|
||||
size = Vector3(0.0501598, 0.0390937, 0.0501598)
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_vkbuh"]
|
||||
size = Vector3(0.05, 0.03, 0.05)
|
||||
size = Vector3(0.05, 0.05, 0.03)
|
||||
|
||||
[node name="Button" type="Node3D" groups=["ui_focus"]]
|
||||
script = ExtResource("1_74x7g")
|
||||
label = "Example Text"
|
||||
size = Vector3(0.05, 0.05, 0.01)
|
||||
|
||||
[node name="Body" type="StaticBody3D" parent="." groups=["ui_focus_skip"]]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.01, 0)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.005)
|
||||
collision_layer = 2
|
||||
collision_mask = 0
|
||||
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="Body"]
|
||||
transform = Transform3D(0.5, 0, 0, 0, -2.18557e-08, 0.5, 0, -0.5, -2.18557e-08, 0, 0.009, 0)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.005)
|
||||
material_override = SubResource("ShaderMaterial_oqan0")
|
||||
mesh = SubResource("QuadMesh_bt05p")
|
||||
skeleton = NodePath("../..")
|
||||
|
@ -48,8 +46,9 @@ skeleton = NodePath("../..")
|
|||
shape = SubResource("BoxShape3D_xwopm")
|
||||
|
||||
[node name="Label" type="Label3D" parent="Body"]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0.0107199, 0)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.006)
|
||||
pixel_size = 0.001
|
||||
double_sided = false
|
||||
text = "Example Text"
|
||||
font_size = 10
|
||||
outline_size = 0
|
||||
|
@ -57,19 +56,18 @@ autowrap_mode = 3
|
|||
width = 50.0
|
||||
|
||||
[node name="FingerArea" type="Area3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.0101447, 0)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.015)
|
||||
collision_layer = 4
|
||||
collision_mask = 0
|
||||
monitoring = false
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="FingerArea"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.00975001, 0)
|
||||
shape = SubResource("BoxShape3D_bqjii")
|
||||
|
||||
[node name="TouchBody" type="StaticBody3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.005)
|
||||
collision_layer = 4
|
||||
collision_mask = 0
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="TouchBody"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.005, 0)
|
||||
shape = SubResource("BoxShape3D_vkbuh")
|
||||
shape = SubResource("BoxShape3D_xwopm")
|
||||
|
|
|
@ -1,15 +1,18 @@
|
|||
@tool
|
||||
|
||||
extends Node3D
|
||||
class_name Container3D
|
||||
|
||||
@export var size := Vector3(1.0, 1.0, 1.0) :
|
||||
@export var size := Vector3(1.0, 1.0, 1.0):
|
||||
set(value):
|
||||
size = value
|
||||
_update_container()
|
||||
size = Vector3(max(0, value.x), max(0, value.y), max(0, value.z))
|
||||
|
||||
@export var padding: Vector4 = Vector4(0, 0, 0, 0) :
|
||||
set(value):
|
||||
padding = value
|
||||
_update_container()
|
||||
if !is_inside_tree(): return
|
||||
|
||||
func _update_container():
|
||||
_update()
|
||||
|
||||
func _ready():
|
||||
_update()
|
||||
|
||||
func _update():
|
||||
pass
|
112
app/content/ui/components/flex_container/flex_container.gd
Normal file
112
app/content/ui/components/flex_container/flex_container.gd
Normal file
|
@ -0,0 +1,112 @@
|
|||
@tool
|
||||
extends Container3D
|
||||
class_name FlexContainer3D
|
||||
|
||||
enum Justification {
|
||||
START,
|
||||
CENTER,
|
||||
END,
|
||||
SPACE_BETWEEN,
|
||||
SPACE_AROUND,
|
||||
SPACE_EVENLY,
|
||||
}
|
||||
|
||||
@export var justification: Justification = Justification.START:
|
||||
set(value):
|
||||
justification = value
|
||||
_update()
|
||||
@export var vertical: bool = false:
|
||||
set(value):
|
||||
vertical = value
|
||||
_update()
|
||||
@export var gap: float = 0.0:
|
||||
set(value):
|
||||
gap = value
|
||||
_update()
|
||||
|
||||
func _ready():
|
||||
_update()
|
||||
|
||||
child_entered_tree.connect(func(_arg):
|
||||
_update()
|
||||
)
|
||||
|
||||
child_exiting_tree.connect(func(_arg):
|
||||
_update()
|
||||
)
|
||||
|
||||
child_order_changed.connect(func():
|
||||
_update()
|
||||
)
|
||||
|
||||
func _update():
|
||||
print("update")
|
||||
var width = size.y if vertical else size.x
|
||||
var child_size := Vector2(0, 0)
|
||||
var child_count = 0
|
||||
|
||||
for child in get_children():
|
||||
if child is Container3D == false:
|
||||
continue
|
||||
|
||||
if vertical:
|
||||
child_size.x = max(child.size.x, child_size.x)
|
||||
child_size.y += child.size.y + gap
|
||||
else:
|
||||
child_size.x += child.size.x + gap
|
||||
child_size.y = max(child.size.y, child_size.y)
|
||||
|
||||
child_count += 1
|
||||
|
||||
if child_count == 0:
|
||||
return
|
||||
|
||||
var child_scale = Vector2(size.x, size.y) / child_size
|
||||
child_size.clamp(Vector2(0, 0), Vector2(size.x, size.y))
|
||||
|
||||
child_scale = child_scale.clamp(Vector2(0.001, 0.001), Vector2(1, 1))
|
||||
|
||||
print(child_size)
|
||||
print(child_scale)
|
||||
|
||||
var offset = 0.0
|
||||
|
||||
match justification:
|
||||
Justification.START:
|
||||
offset = 0.0
|
||||
Justification.CENTER:
|
||||
offset = (width - child_size) / 2
|
||||
Justification.END:
|
||||
offset = width - child_size
|
||||
Justification.SPACE_BETWEEN:
|
||||
offset = 0.0
|
||||
Justification.SPACE_AROUND:
|
||||
offset = (width - child_size) / child_count / 2
|
||||
Justification.SPACE_EVENLY:
|
||||
offset = (width - child_size) / (child_count + 1)
|
||||
|
||||
for child in get_children():
|
||||
if child is Container3D == false:
|
||||
continue
|
||||
|
||||
child.scale = Vector3(child_scale.x, child_scale.y, 1)
|
||||
|
||||
if vertical:
|
||||
child.position = Vector3(0, -offset, 0)
|
||||
offset += child.size.y * child_scale.y
|
||||
else:
|
||||
child.position = Vector3(offset, 0, 0)
|
||||
offset += child.size.x * child_scale.x
|
||||
|
||||
print(offset)
|
||||
|
||||
match justification:
|
||||
Justification.START, Justification.CENTER, Justification.END:
|
||||
offset += gap
|
||||
Justification.SPACE_BETWEEN:
|
||||
offset += (width - child_size) / (child_count - 1)
|
||||
Justification.SPACE_AROUND:
|
||||
offset += (width - child_size) / child_count
|
||||
Justification.SPACE_EVENLY:
|
||||
offset += (width - child_size) / (child_count + 1)
|
||||
|
|
@ -2,41 +2,46 @@
|
|||
extends Container3D
|
||||
class_name GridContainer3D
|
||||
|
||||
|
||||
@export var columns := 5 :
|
||||
@export var columns := 5:
|
||||
set(value):
|
||||
columns = value
|
||||
_update_container()
|
||||
_update()
|
||||
|
||||
@export var rows := 1 :
|
||||
@export var gaps := Vector2(0, 0):
|
||||
set(value):
|
||||
rows = value
|
||||
_update_container()
|
||||
|
||||
@export var depth_gap := 1.0 :
|
||||
set(value):
|
||||
depth_gap = value
|
||||
_update_container()
|
||||
gaps = value
|
||||
_update()
|
||||
|
||||
func _ready():
|
||||
_update_container()
|
||||
_update()
|
||||
|
||||
func get_gaps() -> Vector3:
|
||||
return Vector3(
|
||||
(float(size.x) / (columns - 1 )) if columns != 1 else 0.0,
|
||||
(float(size.y) / (rows - 1)) if rows != 1 else 0.0,
|
||||
depth_gap
|
||||
child_entered_tree.connect(func(_arg):
|
||||
_update()
|
||||
)
|
||||
|
||||
child_exiting_tree.connect(func(_arg):
|
||||
_update()
|
||||
)
|
||||
|
||||
func _update_container():
|
||||
var i := 0
|
||||
var gaps := get_gaps()
|
||||
child_order_changed.connect(func():
|
||||
_update()
|
||||
)
|
||||
|
||||
func _update():
|
||||
var column := 0
|
||||
var row_pos := 0.0
|
||||
var column_max_height := 0.0
|
||||
|
||||
for child in get_children():
|
||||
var x := (i % columns) * gaps.x
|
||||
var y := ((i / columns) % rows) * gaps.y
|
||||
var z := (i / (columns * rows)) * gaps.z
|
||||
if child is Container3D == false:
|
||||
continue
|
||||
|
||||
column_max_height = max(column_max_height, child.size.y)
|
||||
|
||||
child.position = Vector3(column * ((size.x / columns) + gaps.x), row_pos, 0)
|
||||
|
||||
column += 1
|
||||
if column >= columns:
|
||||
column = 0
|
||||
row_pos -= column_max_height + gaps.y
|
||||
|
||||
child.set_position(Vector3(x, -y, z))
|
||||
i += 1
|
|
@ -1,24 +1,15 @@
|
|||
@tool
|
||||
extends StaticBody3D
|
||||
extends Container3D
|
||||
class_name Input3D
|
||||
|
||||
var text_handler = preload ("res://content/ui/components/input/text_handler.gd").new()
|
||||
|
||||
@onready var caret: MeshInstance3D = $Label/Caret
|
||||
@onready var mesh_box: MeshInstance3D = $Box
|
||||
@onready var collision: CollisionShape3D = $Collision
|
||||
@onready var caret: MeshInstance3D = $Body/Label/Caret
|
||||
@onready var mesh_box: MeshInstance3D = $Body/Box
|
||||
@onready var body: StaticBody3D = $Body
|
||||
@onready var collision: CollisionShape3D = $Body/Collision
|
||||
@onready var animation: AnimationPlayer = $AnimationPlayer
|
||||
@onready var label: Label3D = $Label
|
||||
|
||||
@export_range(0.1, 2, 0.01, "suffix:m") var width: float = 0.15:
|
||||
set(value):
|
||||
width = value
|
||||
text_handler.width = value
|
||||
if !is_inside_tree(): return
|
||||
|
||||
mesh_box.mesh.size.x = width
|
||||
collision.shape.size.x = width
|
||||
label.position.x = -width / 2 + 0.002
|
||||
@onready var label: Label3D = $Body/Label
|
||||
|
||||
@export var text: String:
|
||||
set(value):
|
||||
|
@ -48,10 +39,11 @@ var keyboard_input: bool = false
|
|||
var input_plane = Plane(Vector3.UP, Vector3.ZERO)
|
||||
|
||||
func _ready():
|
||||
Update.props(self, ["text", "disabled", "width"])
|
||||
|
||||
text_handler.label = label
|
||||
|
||||
Update.props(self, ["text", "disabled", "width"])
|
||||
_update()
|
||||
|
||||
if Engine.is_editor_hint():
|
||||
return
|
||||
|
||||
|
@ -156,3 +148,13 @@ func _draw_debug_text_gaps():
|
|||
label.to_global(Vector3(offset, 0.01, 0)),
|
||||
Color(1, 0, 0) if i != text_handler.overflow_index else Color(0, 1, 0)
|
||||
)
|
||||
|
||||
func _update():
|
||||
text_handler.width = size.x
|
||||
mesh_box.mesh.size = Vector2(size.x, size.y)
|
||||
mesh_box.position.z = size.z / 2
|
||||
mesh_box.material_override.set_shader_parameter("size", mesh_box.mesh.size)
|
||||
collision.shape.size = size
|
||||
label.position = Vector3( - size.x / 2 + 0.002, 0, size.z / 2)
|
||||
label.text = text_handler.get_display_text()
|
||||
body.position = Vector3(0, 0, size.z / 2)
|
|
@ -1,16 +1,32 @@
|
|||
[gd_scene load_steps=10 format=3 uid="uid://blrhy2uccrdn4"]
|
||||
[gd_scene load_steps=12 format=3 uid="uid://blrhy2uccrdn4"]
|
||||
|
||||
[ext_resource type="Material" uid="uid://bujy3egn1oqac" path="res://assets/materials/pri-500.material" id="1_0kd7r"]
|
||||
[ext_resource type="Script" path="res://content/ui/components/input/input.gd" id="1_uml3t"]
|
||||
[ext_resource type="FontVariation" uid="uid://d2ofyimg5s65q" path="res://assets/fonts/ui_font_500.tres" id="3_ij5fh"]
|
||||
[ext_resource type="Shader" path="res://assets/materials/glass.gdshader" id="3_nl02b"]
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_kjbca"]
|
||||
resource_local_to_scene = true
|
||||
size = Vector3(0.15, 0.006, 0.03)
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_c5qdm"]
|
||||
render_priority = -1
|
||||
shader = ExtResource("3_nl02b")
|
||||
shader_parameter/color = Color(1, 1, 1, 0.3)
|
||||
shader_parameter/border_color = Color(1, 1, 1, 1)
|
||||
shader_parameter/edge_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/size = Vector2(0.15, 0.03)
|
||||
shader_parameter/border_size = 0.001
|
||||
shader_parameter/border_fade_in = 0.005
|
||||
shader_parameter/border_fade_out = 0.0
|
||||
shader_parameter/corner_radius = 0.01
|
||||
shader_parameter/roughness = 0.3
|
||||
shader_parameter/grain_amount = 0.02
|
||||
|
||||
[sub_resource type="QuadMesh" id="QuadMesh_5rrua"]
|
||||
size = Vector2(0.15, 0.03)
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_x4yp8"]
|
||||
resource_local_to_scene = true
|
||||
size = Vector3(0.15, 0.006, 0.03)
|
||||
size = Vector3(0.15, 0.03, 0.01)
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_x1ra7"]
|
||||
shading_mode = 0
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_2736g"]
|
||||
size = Vector3(0.001, 0.02, 0.001)
|
||||
|
@ -52,36 +68,44 @@ _data = {
|
|||
"blink": SubResource("Animation_8ny1h")
|
||||
}
|
||||
|
||||
[node name="Input" type="StaticBody3D" groups=["ui_focus"]]
|
||||
[node name="Input" type="Node3D"]
|
||||
script = ExtResource("1_uml3t")
|
||||
text = "Example Text"
|
||||
size = Vector3(0.15, 0.03, 0.01)
|
||||
|
||||
[node name="Body" type="StaticBody3D" parent="." groups=["ui_focus"]]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.005)
|
||||
collision_layer = 6
|
||||
collision_mask = 0
|
||||
script = ExtResource("1_uml3t")
|
||||
text = "Example"
|
||||
|
||||
[node name="Box" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.003, 0)
|
||||
material_override = ExtResource("1_0kd7r")
|
||||
mesh = SubResource("BoxMesh_kjbca")
|
||||
[node name="Box" type="MeshInstance3D" parent="Body"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.005)
|
||||
material_override = SubResource("ShaderMaterial_c5qdm")
|
||||
mesh = SubResource("QuadMesh_5rrua")
|
||||
|
||||
[node name="Collision" type="CollisionShape3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.003, 0)
|
||||
[node name="Collision" type="CollisionShape3D" parent="Body"]
|
||||
shape = SubResource("BoxShape3D_x4yp8")
|
||||
|
||||
[node name="Label" type="Label3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.073, 0.00618291, 0)
|
||||
[node name="Label" type="Label3D" parent="Body"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.073, 0, 0.005)
|
||||
sorting_offset = 0.1
|
||||
pixel_size = 0.001
|
||||
text = "Example"
|
||||
double_sided = false
|
||||
alpha_cut = 2
|
||||
text = "Example Text"
|
||||
font = ExtResource("3_ij5fh")
|
||||
font_size = 18
|
||||
outline_size = 0
|
||||
horizontal_alignment = 0
|
||||
|
||||
[node name="Caret" type="MeshInstance3D" parent="Label"]
|
||||
[node name="Caret" type="MeshInstance3D" parent="Body/Label"]
|
||||
visible = false
|
||||
material_override = SubResource("StandardMaterial3D_x1ra7")
|
||||
mesh = SubResource("BoxMesh_2736g")
|
||||
skeleton = NodePath("../..")
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
root_node = NodePath("../Body")
|
||||
libraries = {
|
||||
"": SubResource("AnimationLibrary_1sy4t")
|
||||
}
|
||||
|
|
|
@ -5,7 +5,12 @@ const FontTools = preload ("res://lib/utils/font_tools.gd")
|
|||
var label: Label3D
|
||||
|
||||
var text: String = ""
|
||||
var width: float = 0.2
|
||||
var width: float = 0.2:
|
||||
set(value):
|
||||
width = max(0.0, value)
|
||||
gap_offsets = _calculate_text_gaps()
|
||||
overflow_index = _calculate_overflow_index()
|
||||
caret_position = 0
|
||||
var gap_offsets = null
|
||||
var overflow_index: int = -1
|
||||
var char_offset: int = 0
|
||||
|
@ -13,9 +18,6 @@ var caret_position: int = 3:
|
|||
set(value):
|
||||
caret_position = clampi(value, 0, text.length())
|
||||
|
||||
func set_width(value: float):
|
||||
width = value
|
||||
|
||||
func set_text(value: String, insert: bool=false):
|
||||
var old_text = text
|
||||
text = value
|
||||
|
|
|
@ -10,7 +10,7 @@ cull_mode = 2
|
|||
shading_mode = 0
|
||||
albedo_color = Color(0.109804, 0.721569, 0.262745, 1)
|
||||
|
||||
[sub_resource type="ArrayMesh" id="ArrayMesh_mec1l"]
|
||||
[sub_resource type="ArrayMesh" id="ArrayMesh_5xylt"]
|
||||
_surfaces = [{
|
||||
"aabb": AABB(-0.000587015, -0.000596339, 0.0005, 0.501171, 0.301189, 1e-05),
|
||||
"format": 34359742465,
|
||||
|
@ -43,7 +43,7 @@ script = ExtResource("1_n7fu8")
|
|||
|
||||
[node name="Line" type="MeshInstance3D" parent="."]
|
||||
material_override = SubResource("StandardMaterial3D_20gpn")
|
||||
mesh = SubResource("ArrayMesh_mec1l")
|
||||
mesh = SubResource("ArrayMesh_5xylt")
|
||||
|
||||
[node name="Plane" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.25, 0.15, -0.001)
|
||||
|
|
|
@ -197,6 +197,7 @@ libraries = {
|
|||
transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 0.12, -0.003, -0.02)
|
||||
label = "close"
|
||||
icon = true
|
||||
size = Vector3(1, 1, 1)
|
||||
|
||||
[node name="Timer" type="Timer" parent="AnimationNode"]
|
||||
wait_time = 3.0
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
@tool
|
||||
extends Node3D
|
||||
extends Container3D
|
||||
class_name Slider3D
|
||||
|
||||
@export var min: float = 0.0:
|
||||
|
@ -42,32 +42,11 @@ class_name Slider3D
|
|||
if !is_inside_tree(): return
|
||||
label.text = str(value) + " " + label_unit
|
||||
|
||||
@export var size: Vector3 = Vector3(0.2, 0.01, 0.02): # Warning, units are in cm
|
||||
set(value):
|
||||
size = value
|
||||
if !is_inside_tree(): return
|
||||
_update_shape()
|
||||
@export var cutout_border: float = 0.02:
|
||||
set(value):
|
||||
cutout_border = value
|
||||
if !is_inside_tree(): return
|
||||
_update_shape()
|
||||
@export var cutout_depth: float = 0.05:
|
||||
set(value):
|
||||
cutout_depth = value
|
||||
if !is_inside_tree(): return
|
||||
_update_shape()
|
||||
|
||||
@onready var outside_rod: CSGBox3D = $Rod/Outside
|
||||
@onready var cutout: CSGCombiner3D = $Rod/Cutout
|
||||
@onready var cutout_box: CSGBox3D = $Rod/Cutout/Length
|
||||
@onready var cutout_end_left: CSGCylinder3D = $Rod/Cutout/EndLeft
|
||||
@onready var cutout_end_right: CSGCylinder3D = $Rod/Cutout/EndRight
|
||||
@onready var label: Label3D = $Label
|
||||
|
||||
@onready var body_collision_shape: CollisionShape3D = $CollisionBody/CollisionShape3D
|
||||
@onready var mesh: MeshInstance3D = $Body/MeshInstance3D
|
||||
@onready var body_collision_shape: CollisionShape3D = $Body/CollisionShape3D
|
||||
@onready var area_collision_shape: CollisionShape3D = $Area3D/CollisionShape3D
|
||||
|
||||
@onready var slider_knob: MeshInstance3D = $Knob
|
||||
|
||||
signal on_value_changed(value: float)
|
||||
|
@ -78,7 +57,7 @@ func _ready():
|
|||
Update.props(self, ["value", "show_label", "label_unit"])
|
||||
|
||||
_update_slider()
|
||||
_update_shape()
|
||||
_update()
|
||||
move_plane = Plane(Vector3.UP, Vector3(0, size.y / 200, 0))
|
||||
|
||||
func _on_press_down(event: EventPointer):
|
||||
|
@ -91,9 +70,7 @@ func _on_touch_enter(event: EventTouch):
|
|||
_handle_touch(event)
|
||||
|
||||
func _get_slider_min_max():
|
||||
var cutout_radius = (size.z - cutout_border * 2) / 2
|
||||
|
||||
return Vector2( - size.x / 2 + cutout_border + cutout_radius, size.x / 2 - cutout_border - cutout_radius) / 100
|
||||
return Vector2( - size.x / 2 + 0.01, size.x / 2 - 0.01)
|
||||
|
||||
func _handle_press(event: EventPointer):
|
||||
var ray_pos = event.ray.global_position
|
||||
|
@ -134,46 +111,20 @@ func _update_slider():
|
|||
|
||||
slider_knob.position.x = lerp(min_max.x, min_max.y, click_percent)
|
||||
|
||||
func _update_shape():
|
||||
outside_rod.size = size
|
||||
func _update():
|
||||
_update_slider()
|
||||
body_collision_shape.shape.size = size
|
||||
body_collision_shape.position = Vector3(0, 0, size.z / 2)
|
||||
|
||||
body_collision_shape.shape.size = size * 0.01
|
||||
area_collision_shape.shape.size = Vector3(size.x, size.y * 2, size.z) * 0.01
|
||||
area_collision_shape.position = Vector3(0, size.y, 0) * 0.01
|
||||
area_collision_shape.shape.size = Vector3(size.x, size.y, 0.01)
|
||||
area_collision_shape.position = Vector3(0, 0, size.z + 0.005)
|
||||
|
||||
var cutout_width = size.z - cutout_border * 2
|
||||
mesh.position = Vector3(0, 0, size.z)
|
||||
mesh.mesh.size = Vector2(size.x, size.y)
|
||||
mesh.material_override.set_shader_parameter("size", Vector2(size.x, size.y) * 10.0)
|
||||
|
||||
cutout_box.size = Vector3(
|
||||
size.x - cutout_border * 2 - (cutout_width),
|
||||
cutout_depth,
|
||||
cutout_width
|
||||
)
|
||||
slider_knob.position.z = size.z + 0.002
|
||||
slider_knob.mesh.size = Vector2(size.y * 0.75, size.y * 0.75)
|
||||
slider_knob.material_override.set_shader_parameter("size", Vector2(size.y * 7.5, size.y * 7.5))
|
||||
|
||||
cutout.position = Vector3(
|
||||
0,
|
||||
size.y / 2 - cutout_depth / 2 + 0.001,
|
||||
0
|
||||
)
|
||||
|
||||
cutout_end_left.radius = cutout_box.size.z / 2
|
||||
cutout_end_right.radius = cutout_box.size.z / 2
|
||||
cutout_end_left.height = cutout_depth
|
||||
cutout_end_right.height = cutout_depth
|
||||
|
||||
cutout_end_left.position = Vector3(
|
||||
- cutout_box.size.x / 2,
|
||||
0,
|
||||
0
|
||||
)
|
||||
|
||||
cutout_end_right.position = Vector3(
|
||||
cutout_box.size.x / 2,
|
||||
0,
|
||||
0
|
||||
)
|
||||
|
||||
label.position = Vector3(
|
||||
size.x / 200 + 0.005,
|
||||
0,
|
||||
0
|
||||
)
|
||||
label.position = Vector3(size.x / 2 + 0.005, 0, size.z)
|
|
@ -1,92 +1,90 @@
|
|||
[gd_scene load_steps=7 format=3 uid="uid://pk5k1q8bx0rj"]
|
||||
[gd_scene load_steps=9 format=3 uid="uid://pk5k1q8bx0rj"]
|
||||
|
||||
[ext_resource type="Script" path="res://content/ui/components/slider/slider.gd" id="1_ylune"]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_eiwwn"]
|
||||
albedo_color = Color(0.133333, 0.133333, 0.133333, 1)
|
||||
|
||||
[sub_resource type="CylinderMesh" id="CylinderMesh_77ny1"]
|
||||
material = SubResource("StandardMaterial3D_eiwwn")
|
||||
top_radius = 0.008
|
||||
bottom_radius = 0.008
|
||||
height = 0.003
|
||||
|
||||
[sub_resource type="CylinderMesh" id="CylinderMesh_v34nn"]
|
||||
top_radius = 0.002
|
||||
bottom_radius = 0.002
|
||||
height = 0.005
|
||||
[ext_resource type="Shader" path="res://assets/materials/glass.gdshader" id="2_by0d8"]
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_h1mn1"]
|
||||
size = Vector3(0.2, 0.004, 0.01)
|
||||
resource_local_to_scene = true
|
||||
size = Vector3(0.15, 0.02, 0.01)
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_vgpd3"]
|
||||
resource_local_to_scene = true
|
||||
render_priority = -2
|
||||
shader = ExtResource("2_by0d8")
|
||||
shader_parameter/color = Color(1, 1, 1, 0.3)
|
||||
shader_parameter/border_color = Color(1, 1, 1, 1)
|
||||
shader_parameter/edge_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/size = Vector2(1.5, 0.2)
|
||||
shader_parameter/border_size = 0.005
|
||||
shader_parameter/border_fade_in = 0.04
|
||||
shader_parameter/border_fade_out = 0.0
|
||||
shader_parameter/corner_radius = 0.12
|
||||
shader_parameter/roughness = 0.3
|
||||
shader_parameter/grain_amount = 0.02
|
||||
|
||||
[sub_resource type="QuadMesh" id="QuadMesh_k78f4"]
|
||||
resource_local_to_scene = true
|
||||
size = Vector2(0.15, 0.02)
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_mv0la"]
|
||||
resource_local_to_scene = true
|
||||
render_priority = -1
|
||||
shader = ExtResource("2_by0d8")
|
||||
shader_parameter/color = Color(1, 1, 1, 0.3)
|
||||
shader_parameter/border_color = Color(1, 1, 1, 1)
|
||||
shader_parameter/edge_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/size = Vector2(0.15, 0.15)
|
||||
shader_parameter/border_size = 0.002
|
||||
shader_parameter/border_fade_in = 0.02
|
||||
shader_parameter/border_fade_out = 0.0
|
||||
shader_parameter/corner_radius = 0.085
|
||||
shader_parameter/roughness = 0.3
|
||||
shader_parameter/grain_amount = 0.02
|
||||
|
||||
[sub_resource type="QuadMesh" id="QuadMesh_vw14o"]
|
||||
resource_local_to_scene = true
|
||||
size = Vector2(0.015, 0.015)
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_s64dk"]
|
||||
size = Vector3(0.2, 0.008, 0.01)
|
||||
resource_local_to_scene = true
|
||||
size = Vector3(0.15, 0.02, 0.01)
|
||||
|
||||
[node name="Slider" type="Node3D"]
|
||||
script = ExtResource("1_ylune")
|
||||
size = Vector3(20, 0.4, 1)
|
||||
cutout_border = 0.2
|
||||
cutout_depth = 0.36
|
||||
show_label = true
|
||||
size = Vector3(0.15, 0.02, 0.01)
|
||||
|
||||
[node name="Rod" type="CSGCombiner3D" parent="."]
|
||||
transform = Transform3D(0.01, 0, 0, 0, 0.01, 0, 0, 0, 0.01, 0, 0, 0)
|
||||
snap = 0.0001
|
||||
|
||||
[node name="Outside" type="CSGBox3D" parent="Rod"]
|
||||
snap = 0.0001
|
||||
size = Vector3(20, 0.4, 1)
|
||||
|
||||
[node name="Cutout" type="CSGCombiner3D" parent="Rod"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.021, 0)
|
||||
operation = 2
|
||||
snap = 0.0001
|
||||
|
||||
[node name="Length" type="CSGBox3D" parent="Rod/Cutout"]
|
||||
snap = 0.0001
|
||||
size = Vector3(19, 0.36, 0.6)
|
||||
|
||||
[node name="EndRight" type="CSGCylinder3D" parent="Rod/Cutout"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9.5, 0, 0)
|
||||
snap = 0.0001
|
||||
radius = 0.3
|
||||
height = 0.36
|
||||
sides = 36
|
||||
|
||||
[node name="EndLeft" type="CSGCylinder3D" parent="Rod/Cutout"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.5, 0, 0)
|
||||
snap = 0.0001
|
||||
radius = 0.3
|
||||
height = 0.36
|
||||
sides = 36
|
||||
|
||||
[node name="Knob" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.057, 0.00409426, 0)
|
||||
mesh = SubResource("CylinderMesh_77ny1")
|
||||
|
||||
[node name="Pin" type="MeshInstance3D" parent="Knob"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.00353538, 0)
|
||||
mesh = SubResource("CylinderMesh_v34nn")
|
||||
|
||||
[node name="CollisionBody" type="StaticBody3D" parent="."]
|
||||
[node name="Body" type="StaticBody3D" parent="."]
|
||||
collision_layer = 6
|
||||
collision_mask = 6
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="CollisionBody"]
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Body"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.005)
|
||||
shape = SubResource("BoxShape3D_h1mn1")
|
||||
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="Body"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.01)
|
||||
material_override = SubResource("ShaderMaterial_vgpd3")
|
||||
mesh = SubResource("QuadMesh_k78f4")
|
||||
|
||||
[node name="Label" type="Label3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0.105, 0, 0)
|
||||
visible = false
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.08, 0, 0.01)
|
||||
pixel_size = 0.001
|
||||
text = "0.2 "
|
||||
font_size = 10
|
||||
outline_size = 4
|
||||
horizontal_alignment = 0
|
||||
|
||||
[node name="Knob" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.039, 0, 0.012)
|
||||
material_override = SubResource("ShaderMaterial_mv0la")
|
||||
mesh = SubResource("QuadMesh_vw14o")
|
||||
skeleton = NodePath("../Body")
|
||||
|
||||
[node name="Area3D" type="Area3D" parent="."]
|
||||
collision_layer = 4
|
||||
collision_mask = 4
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Area3D"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.004, 0)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.015)
|
||||
shape = SubResource("BoxShape3D_s64dk")
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
extends Node3D
|
||||
@tool
|
||||
extends FlexContainer3D
|
||||
class_name Tabs3D
|
||||
|
||||
signal on_select(selected: int)
|
||||
|
@ -8,6 +9,11 @@ var selected = R.state(null)
|
|||
@export var initial_selected: Node3D
|
||||
|
||||
func _ready():
|
||||
_update()
|
||||
|
||||
if Engine.is_editor_hint():
|
||||
return
|
||||
|
||||
if initial_selected:
|
||||
selected.value = initial_selected
|
||||
|
||||
|
|
|
@ -114,8 +114,6 @@ func render_devices():
|
|||
)
|
||||
devices_node.add_child(button_instance)
|
||||
|
||||
devices_node._update_container()
|
||||
|
||||
func render_entities():
|
||||
var entities = get_page()
|
||||
|
||||
|
@ -135,8 +133,6 @@ func render_entities():
|
|||
)
|
||||
devices_node.add_child(button_instance)
|
||||
|
||||
devices_node._update_container()
|
||||
|
||||
func _on_device_click(device_id):
|
||||
selected_device = device_id
|
||||
last_device_page = page
|
||||
|
|
|
@ -8,26 +8,26 @@
|
|||
script = ExtResource("1_34cbn")
|
||||
|
||||
[node name="Devices" type="Node3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.03, 0.01, 0.03)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.015, -0.015, 0.01)
|
||||
script = ExtResource("3_0xvyw")
|
||||
depth_gap = 0.06
|
||||
gaps = Vector2(0.01, 0.01)
|
||||
size = Vector3(0.24, 0.1, 0.1)
|
||||
|
||||
[node name="PageNumberLabel" type="Label3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0.26, 0.01, 0.27)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.26, -0.27, 0.01)
|
||||
pixel_size = 0.001
|
||||
text = "0 / 0"
|
||||
font_size = 18
|
||||
outline_size = 0
|
||||
|
||||
[node name="Buttons" type="Node3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.19, 0.01, 0.27)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.16, -0.24, 0.01)
|
||||
|
||||
[node name="NextPageButton" parent="Buttons" instance=ExtResource("4_tvimg")]
|
||||
label = "navigate_next"
|
||||
icon = true
|
||||
|
||||
[node name="PreviousPageButton" parent="Buttons" instance=ExtResource("4_tvimg")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.08, 0, 0)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.07, 0, 0)
|
||||
label = "navigate_before"
|
||||
icon = true
|
||||
|
|
|
@ -44,6 +44,4 @@ func move_into_view():
|
|||
var camera_transform = main.camera.global_transform
|
||||
camera_transform.origin -= camera_transform.basis.z * 0.5
|
||||
|
||||
camera_transform.basis = camera_transform.basis.rotated(camera_transform.basis.x, deg_to_rad(90))
|
||||
|
||||
global_transform = camera_transform
|
|
@ -1,4 +1,4 @@
|
|||
[gd_scene load_steps=19 format=3 uid="uid://c3kdssrmv84kv"]
|
||||
[gd_scene load_steps=20 format=3 uid="uid://c3kdssrmv84kv"]
|
||||
|
||||
[ext_resource type="Script" path="res://content/ui/menu/menu.gd" id="1_ng4u3"]
|
||||
[ext_resource type="Script" path="res://content/functions/movable.gd" id="2_8coxu"]
|
||||
|
@ -13,18 +13,15 @@
|
|||
[ext_resource type="PackedScene" uid="uid://c6r4higceibif" path="res://content/ui/menu/settings/settings_menu.tscn" id="11_7wm6b"]
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_e1esh"]
|
||||
size = Vector3(0.38, 0.0128076, 0.32)
|
||||
size = Vector3(0.51, 0.32, 0.013)
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_6xn1i"]
|
||||
size = Vector3(0.3, 0.0264844, 0.3)
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_mhqg4"]
|
||||
render_priority = 0
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_du6qr"]
|
||||
render_priority = -3
|
||||
shader = ExtResource("3_htaoi")
|
||||
shader_parameter/color = Color(1, 1, 1, 0.3)
|
||||
shader_parameter/border_color = Color(1, 1, 1, 1)
|
||||
shader_parameter/edge_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/size = Vector2(0.3, 0.3)
|
||||
shader_parameter/size = Vector2(0.42, 0.32)
|
||||
shader_parameter/border_size = 0.001
|
||||
shader_parameter/border_fade_in = 0.005
|
||||
shader_parameter/border_fade_out = 0.0
|
||||
|
@ -33,7 +30,24 @@ shader_parameter/roughness = 0.3
|
|||
shader_parameter/grain_amount = 0.02
|
||||
|
||||
[sub_resource type="QuadMesh" id="QuadMesh_4bh1v"]
|
||||
size = Vector2(0.3, 0.3)
|
||||
size = Vector2(0.42, 0.32)
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_mhqg4"]
|
||||
render_priority = -1
|
||||
shader = ExtResource("3_htaoi")
|
||||
shader_parameter/color = Color(1, 1, 1, 0.3)
|
||||
shader_parameter/border_color = Color(1, 1, 1, 1)
|
||||
shader_parameter/edge_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/size = Vector2(0.07, 0.32)
|
||||
shader_parameter/border_size = 0.001
|
||||
shader_parameter/border_fade_in = 0.005
|
||||
shader_parameter/border_fade_out = 0.0
|
||||
shader_parameter/corner_radius = 0.02
|
||||
shader_parameter/roughness = 0.3
|
||||
shader_parameter/grain_amount = 0.02
|
||||
|
||||
[sub_resource type="QuadMesh" id="QuadMesh_7q1en"]
|
||||
size = Vector2(0.07, 0.32)
|
||||
|
||||
[sub_resource type="Animation" id="Animation_61md4"]
|
||||
length = 0.001
|
||||
|
@ -178,71 +192,81 @@ collision_mask = 2
|
|||
script = ExtResource("1_ng4u3")
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.02, -0.00286309, 1.49012e-08)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.03, 0, 0)
|
||||
shape = SubResource("BoxShape3D_e1esh")
|
||||
|
||||
[node name="Movable" type="Node" parent="."]
|
||||
script = ExtResource("2_8coxu")
|
||||
|
||||
[node name="AnimationContainer" type="StaticBody3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.2, 0, -0.15)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.23, 0.15, 0)
|
||||
collision_layer = 6
|
||||
collision_mask = 6
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="AnimationContainer"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.21, -0.00824219, 0.15)
|
||||
shape = SubResource("BoxShape3D_6xn1i")
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.2, -0.15, 0)
|
||||
shape = SubResource("BoxShape3D_e1esh")
|
||||
|
||||
[node name="Background" type="MeshInstance3D" parent="AnimationContainer"]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0.21, 0.01, 0.15)
|
||||
material_override = SubResource("ShaderMaterial_mhqg4")
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 1.06581e-14, 0, -1.06581e-14, 1, 0.23, -0.15, 0)
|
||||
material_override = SubResource("ShaderMaterial_du6qr")
|
||||
mesh = SubResource("QuadMesh_4bh1v")
|
||||
skeleton = NodePath("../..")
|
||||
|
||||
[node name="Background2" type="MeshInstance3D" parent="AnimationContainer"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 1.06581e-14, 0, -1.06581e-14, 1, -0.02, -0.15, 0)
|
||||
material_override = SubResource("ShaderMaterial_mhqg4")
|
||||
mesh = SubResource("QuadMesh_7q1en")
|
||||
skeleton = NodePath("../..")
|
||||
|
||||
[node name="Tabs" type="Node3D" parent="AnimationContainer" node_paths=PackedStringArray("initial_selected")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.06, 0, 0)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.02, -0.03, 0)
|
||||
script = ExtResource("4_eavfx")
|
||||
initial_selected = NodePath("View")
|
||||
vertical = true
|
||||
gap = 0.01
|
||||
size = Vector3(0.05, 0.4, 1)
|
||||
|
||||
[node name="View" parent="AnimationContainer/Tabs" instance=ExtResource("5_w4i01")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.03, 0, 0.03)
|
||||
label = "visibility"
|
||||
icon = true
|
||||
toggleable = true
|
||||
disabled = true
|
||||
|
||||
[node name="Edit" parent="AnimationContainer/Tabs" instance=ExtResource("5_w4i01")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.03, 0, 0.09)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.06, 0)
|
||||
label = "widgets"
|
||||
icon = true
|
||||
toggleable = true
|
||||
|
||||
[node name="Room" parent="AnimationContainer/Tabs" instance=ExtResource("5_w4i01")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.03, 0, 0.15)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.12, 0)
|
||||
label = "view_in_ar"
|
||||
icon = true
|
||||
toggleable = true
|
||||
|
||||
[node name="Automate" parent="AnimationContainer/Tabs" instance=ExtResource("5_w4i01")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.03, 0, 0.21)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.18, 0)
|
||||
label = "schema"
|
||||
icon = true
|
||||
toggleable = true
|
||||
|
||||
[node name="Settings" parent="AnimationContainer/Tabs" instance=ExtResource("5_w4i01")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.03, 0, 0.27)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.24, 0)
|
||||
label = "settings"
|
||||
icon = true
|
||||
toggleable = true
|
||||
|
||||
[node name="TabsContent" type="Node3D" parent="AnimationContainer" node_paths=PackedStringArray("tabs")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.06, 0, 0)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.01, 0.00999999, 0)
|
||||
script = ExtResource("6_7rntr")
|
||||
tabs = NodePath("../Tabs")
|
||||
|
||||
[node name="ViewMenu" parent="AnimationContainer/TabsContent" instance=ExtResource("8_71pkg")]
|
||||
visible = false
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.01, 0, 0.01)
|
||||
|
||||
[node name="EditMenu" parent="AnimationContainer/TabsContent" instance=ExtResource("4_r2raj")]
|
||||
visible = false
|
||||
|
||||
[node name="RoomMenu" parent="AnimationContainer/TabsContent" instance=ExtResource("10_u4i1x")]
|
||||
visible = false
|
||||
|
@ -254,11 +278,11 @@ visible = false
|
|||
visible = false
|
||||
|
||||
[node name="NotifyPlace" type="Marker3D" parent="AnimationContainer"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.2, 0, -0.05)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.2, 0.06, 0)
|
||||
gizmo_extents = 0.02
|
||||
|
||||
[node name="KeyboardPlace" type="Marker3D" parent="AnimationContainer"]
|
||||
transform = Transform3D(0.5, 0, 0, 0, 0.353553, 0.353553, 0, -0.353553, 0.353553, 0.2, 0.130848, 0.45)
|
||||
transform = Transform3D(0.5, 0, 0, 0, 0.353553, 0.353553, 0, -0.353553, 0.353553, 0.2, -0.38, 0.16)
|
||||
gizmo_extents = 0.02
|
||||
|
||||
[node name="ImmersiveHomePanels" type="MeshInstance3D" parent="."]
|
||||
|
|
|
@ -26,11 +26,10 @@ script = ExtResource("5_ddrep")
|
|||
initial_selected = NodePath("Overview")
|
||||
|
||||
[node name="Overview" parent="Interface/Tabs3D" instance=ExtResource("4_cghmp")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.03, 0, 0.02)
|
||||
label = "Overview"
|
||||
|
||||
[node name="Rooms" parent="Interface/Tabs3D" instance=ExtResource("4_cghmp")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.09, 0, 0.02)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.05, 0, 0)
|
||||
label = "Rooms"
|
||||
|
||||
[node name="TabsContent3D" type="Node3D" parent="Interface" node_paths=PackedStringArray("tabs")]
|
||||
|
|
|
@ -1,108 +1,123 @@
|
|||
[gd_scene load_steps=6 format=3 uid="uid://ddpxthb414unp"]
|
||||
[gd_scene load_steps=7 format=3 uid="uid://ddpxthb414unp"]
|
||||
|
||||
[ext_resource type="Script" path="res://content/ui/menu/view/view_menu.gd" id="1_hxajx"]
|
||||
[ext_resource type="PackedScene" uid="uid://bsjqdvkt0u87c" path="res://content/ui/components/button/button.tscn" id="2_qan1b"]
|
||||
[ext_resource type="Material" uid="uid://bujy3egn1oqac" path="res://assets/materials/pri-500.material" id="2_se6ic"]
|
||||
[ext_resource type="PackedScene" uid="uid://pk5k1q8bx0rj" path="res://content/ui/components/slider/slider.tscn" id="4_d3xhb"]
|
||||
[ext_resource type="Shader" path="res://assets/materials/glass.gdshader" id="5_cjxo5"]
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_qr3bi"]
|
||||
size = Vector3(0.3, 0.01, 0.3)
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_e5hvo"]
|
||||
render_priority = -3
|
||||
shader = ExtResource("5_cjxo5")
|
||||
shader_parameter/color = Color(1, 1, 1, 0.3)
|
||||
shader_parameter/border_color = Color(1, 1, 1, 1)
|
||||
shader_parameter/edge_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/size = Vector2(0.42, 0.32)
|
||||
shader_parameter/border_size = 0.001
|
||||
shader_parameter/border_fade_in = 0.005
|
||||
shader_parameter/border_fade_out = 0.0
|
||||
shader_parameter/corner_radius = 0.02
|
||||
shader_parameter/roughness = 0.3
|
||||
shader_parameter/grain_amount = 0.02
|
||||
|
||||
[sub_resource type="QuadMesh" id="QuadMesh_1j6jf"]
|
||||
size = Vector2(0.42, 0.32)
|
||||
|
||||
[node name="ViewMenu" type="Node3D"]
|
||||
script = ExtResource("1_hxajx")
|
||||
|
||||
[node name="Background" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.15, 0, 0.15)
|
||||
material_override = ExtResource("2_se6ic")
|
||||
mesh = SubResource("BoxMesh_qr3bi")
|
||||
|
||||
[node name="Content" type="Node3D" parent="."]
|
||||
|
||||
[node name="MiniView" parent="Content" instance=ExtResource("2_qan1b")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.03, 0, 0.03)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.04, -0.04, 0)
|
||||
label = "view_comfy"
|
||||
icon = true
|
||||
toggleable = true
|
||||
|
||||
[node name="MiniViewLabel" type="Label3D" parent="Content"]
|
||||
transform = Transform3D(1, 0, 0, 0, 0, 1, 0, -1, 0, 0.07, 0.01, 0.03)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.07, -0.04, 0)
|
||||
pixel_size = 0.001
|
||||
double_sided = false
|
||||
text = "Mini View"
|
||||
font_size = 18
|
||||
outline_size = 0
|
||||
horizontal_alignment = 0
|
||||
|
||||
[node name="HeatMap" parent="Content" instance=ExtResource("2_qan1b")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.03, 0, 0.09)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.04, -0.1, 0)
|
||||
label = "device_thermostat"
|
||||
icon = true
|
||||
toggleable = true
|
||||
|
||||
[node name="HeatMapLabel" type="Label3D" parent="Content"]
|
||||
transform = Transform3D(1, 0, 0, 0, 0, 1, 0, -1, 0, 0.07, 0.01, 0.09)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.07, -0.1, 0)
|
||||
pixel_size = 0.001
|
||||
double_sided = false
|
||||
text = "Heat Map"
|
||||
font_size = 18
|
||||
outline_size = 0
|
||||
horizontal_alignment = 0
|
||||
|
||||
[node name="HumidityMap" parent="Content" instance=ExtResource("2_qan1b")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.03, 0, 0.15)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.04, -0.16, 0)
|
||||
label = "humidity_mid"
|
||||
icon = true
|
||||
toggleable = true
|
||||
|
||||
[node name="HumidityMapLabel" type="Label3D" parent="Content"]
|
||||
transform = Transform3D(1, 0, 0, 0, 0, 1, 0, -1, 0, 0.07, 0.01, 0.15)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.07, -0.16, 0)
|
||||
pixel_size = 0.001
|
||||
double_sided = false
|
||||
text = "Humidity Map"
|
||||
font_size = 18
|
||||
outline_size = 0
|
||||
horizontal_alignment = 0
|
||||
|
||||
[node name="MinSlider" parent="Content" instance=ExtResource("4_d3xhb")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.06, 0.01, 0.2)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.09, -0.21, 0)
|
||||
value = 0.0
|
||||
step = 1.0
|
||||
show_label = true
|
||||
size = Vector3(10, 0.4, 1)
|
||||
|
||||
[node name="MinValue" type="Label3D" parent="Content"]
|
||||
transform = Transform3D(1, 0, 0, 0, 0, 1, 0, -1, 0, 0.15, 0.01, 0.2)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.2, -0.21, 0)
|
||||
pixel_size = 0.001
|
||||
double_sided = false
|
||||
text = "Min Value"
|
||||
font_size = 18
|
||||
outline_size = 0
|
||||
horizontal_alignment = 0
|
||||
|
||||
[node name="MaxSlider" parent="Content" instance=ExtResource("4_d3xhb")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.06, 0.01, 0.24)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.09, -0.25, 0)
|
||||
value = 0.0
|
||||
step = 1.0
|
||||
show_label = true
|
||||
size = Vector3(10, 0.4, 1)
|
||||
|
||||
[node name="MaxValue" type="Label3D" parent="Content"]
|
||||
transform = Transform3D(1, 0, 0, 0, 0, 1, 0, -1, 0, 0.15, 0.01, 0.24)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.2, -0.25, 0)
|
||||
pixel_size = 0.001
|
||||
double_sided = false
|
||||
text = "Max Value"
|
||||
font_size = 18
|
||||
outline_size = 0
|
||||
horizontal_alignment = 0
|
||||
|
||||
[node name="OpacitySlider" parent="Content" instance=ExtResource("4_d3xhb")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.06, 0.01, 0.28)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.09, -0.29, 0)
|
||||
max = 100.0
|
||||
value = 30.0
|
||||
step = 10.0
|
||||
show_label = true
|
||||
label_unit = "%"
|
||||
size = Vector3(10, 0.4, 1)
|
||||
|
||||
[node name="OpacityLabel" type="Label3D" parent="Content"]
|
||||
transform = Transform3D(1, 0, 0, 0, 0, 1, 0, -1, 0, 0.15, 0.01, 0.28)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.2, -0.29, 0)
|
||||
pixel_size = 0.001
|
||||
double_sided = false
|
||||
text = "Opacity"
|
||||
font_size = 18
|
||||
outline_size = 0
|
||||
horizontal_alignment = 0
|
||||
|
||||
[node name="Background" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 1.06581e-14, 0, -1.06581e-14, 1, 0.21, -0.16, 0)
|
||||
material_override = SubResource("ShaderMaterial_e5hvo")
|
||||
mesh = SubResource("QuadMesh_1j6jf")
|
||||
skeleton = NodePath("../..")
|
||||
|
|
Loading…
Reference in New Issue
Block a user