83 lines
6.6 KiB
Plaintext
83 lines
6.6 KiB
Plaintext
[gd_scene load_steps=9 format=3 uid="uid://cg70r0102t8nl"]
|
|
|
|
[ext_resource type="Texture2D" uid="uid://i75aktvgsdwg" path="res://base-environments/youth_room/import/textures/wires_normal.png" id="1_p3lcj"]
|
|
[ext_resource type="Texture2D" uid="uid://chisldkpt6bf5" path="res://base-environments/youth_room/import/textures/wires_albedo.png" id="1_xsr58"]
|
|
[ext_resource type="Script" path="res://addons/LineRenderer/line_renderer.gd" id="2_javfj"]
|
|
[ext_resource type="ArrayMesh" uid="uid://f5fr2e5gq313" path="res://base-environments/youth_room/shaders/fairy_light_diode.res" id="4_qh8yy"]
|
|
|
|
[sub_resource type="GDScript" id="GDScript_2caij"]
|
|
script/source = "@tool
|
|
extends Node3D
|
|
|
|
@export var light_array: Array[Vector3]:
|
|
set(points):
|
|
light_array = points
|
|
if is_inside_tree():
|
|
rebuild()
|
|
|
|
@onready var wires:LineRenderer3D = $wires
|
|
@onready var diodes:MultiMeshInstance3D = $diodes
|
|
@export var seed:int = 42
|
|
var rng = RandomNumberGenerator.new()
|
|
@export var size:float = 0.1:
|
|
set(new_size):
|
|
size = new_size
|
|
rebuild()
|
|
if is_inside_tree():
|
|
wires.end_thickness = size*0.1
|
|
wires.start_thickness = size*0.1
|
|
|
|
# Called when the node enters the scene tree for the first time.
|
|
func _ready():
|
|
rebuild()
|
|
|
|
func rebuild():
|
|
rng.seed = seed
|
|
rng.state = 0
|
|
for child in wires.get_children(): child.free()
|
|
wires.points = light_array
|
|
diodes.multimesh.instance_count = light_array.size()
|
|
var meshBuffer:PackedFloat32Array
|
|
for point in light_array:
|
|
rng
|
|
var base:Basis = Basis(Vector3(rng.randf_range(-1, 1), rng.randf_range(-1, 1), rng.randf_range(-1, 1)).normalized(), rng.randf_range(0, PI*2))
|
|
base = base.scaled(Vector3(size, size, size))
|
|
meshBuffer.append_array([base.x.x, base.x.y, base.x.z, point.x, base.y.x, base.y.y, base.y.z, point.y, base.z.x, base.z.y, base.z.z, point.z])
|
|
diodes.multimesh.buffer = meshBuffer
|
|
"
|
|
|
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_5ca5e"]
|
|
transparency = 2
|
|
alpha_scissor_threshold = 0.5
|
|
alpha_antialiasing_mode = 0
|
|
cull_mode = 2
|
|
albedo_color = Color(0.368627, 0.368627, 0.368627, 1)
|
|
albedo_texture = ExtResource("1_xsr58")
|
|
normal_enabled = true
|
|
normal_texture = ExtResource("1_p3lcj")
|
|
|
|
[sub_resource type="ImmediateMesh" id="ImmediateMesh_b56ch"]
|
|
|
|
[sub_resource type="MultiMesh" id="MultiMesh_ic3h7"]
|
|
transform_format = 1
|
|
instance_count = 30
|
|
mesh = ExtResource("4_qh8yy")
|
|
buffer = PackedFloat32Array(0.0998169, 0.00482103, -0.00365424, -0.545, -0.00428558, 0.0989875, 0.0135316, 0.915, 0.0042696, -0.0133502, 0.0990128, 1.035, 0.0700075, -0.0358849, 0.0617351, -0.47, 0.0525334, 0.0844406, -0.0104897, 0.855, -0.0483653, 0.0397751, 0.0779663, 0.905, 0.0042587, 0.0920312, -0.0388859, -0.44, -0.00571533, 0.0390819, 0.0918692, 0.871, 0.0997457, -0.00168997, 0.00692427, 0.78, 0.0219999, -0.0870806, -0.0439656, -0.385, 0.0800974, 0.041851, -0.0428124, 0.91, 0.0556813, -0.0257966, 0.0789565, 0.69, 0.0923335, 0.0288341, -0.0253597, -0.38, -0.0359662, 0.088075, -0.0308096, 0.995, 0.0134518, 0.0375685, 0.0916933, 0.595, 0.0410372, 0.0236122, 0.0880819, -0.39, -0.0818364, -0.0330796, 0.0469951, 0.925, 0.0402337, -0.0913685, 0.00574842, 0.465, 0.0963897, 0.0249758, -0.00923199, -0.364, -0.025153, 0.0967818, -0.000788714, 0.86, 0.0087379, 0.00308236, 0.0995698, 0.211, 0.0905162, -0.0353528, 0.0236008, -0.295, 0.00980512, 0.0713907, 0.0693341, 0.82, -0.0413604, -0.0604445, 0.0680866, 0.06, 0.0999699, -0.000440024, 0.00241425, -0.255, 0.00037743, 0.0999657, 0.0025912, 0.805, -0.00242483, -0.00258131, 0.0999373, -0.15, 0.0666952, -0.0744692, 0.00246829, -0.175, 0.0669796, 0.0613729, 0.0417982, 0.83, -0.0326417, -0.0262242, 0.090812, -0.355, 0.00827521, 0.0528018, -0.0845191, -0.135, 0.0951837, -0.0293119, -0.00899272, 0.955, -0.0295225, -0.0797043, -0.0526844, -0.515, 0.0983988, -0.0102168, 0.0146044, -0.025, 0.00642553, 0.0967642, 0.0244007, 0.78, -0.0166249, -0.0230716, 0.0958714, -0.615, -0.0341773, -0.0716575, -0.0608039, 0.115, 0.0144934, 0.059907, -0.078747, 0.63, 0.0928539, -0.0357262, -0.010089, -0.695, -0.0232891, -0.0711249, 0.066324, 0.245, 0.0795472, -0.0531651, -0.0290812, 0.555, 0.0559451, 0.0459861, 0.0689595, -0.745, -0.0599926, -0.0254553, -0.075848, 0.37, -0.0708402, 0.0609612, 0.0355725, 0.595, 0.0371828, 0.0750717, -0.0546048, -0.805, 0.0107775, 0.0912119, 0.0395505, 0.455, 0.0273445, -0.0409675, 0.0870284, 0.745, 0.0955831, 0.00143545, -0.0293567, -0.84, 0.0745873, 0.00700857, -0.0662391, 0.505, -0.0366242, 0.0873785, -0.0319947, 0.89, 0.0556363, 0.0481236, 0.0677401, -0.87, -0.0524777, -0.0408163, -0.0747002, 0.445, -0.0771795, -0.0142038, 0.0619805, 1.175, -0.0359084, 0.0901791, -0.024048, -0.87, 0.0652616, -0.0746751, 0.0128275, 0.26, -0.071962, -0.0663868, -0.0203536, 1.28, 0.0237149, 0.00405218, -0.0970628, -0.815, 0.0477617, -0.0860534, 0.0177096, 0.125, -0.0450234, -0.00666441, 0.089042, 1.35, -0.0754435, -0.0505014, -0.0419272, -0.8, 0.0526553, -0.07791, -0.0340215, -0.037, -0.0570784, -0.00274075, -0.0820643, 1.479, 0.0630038, 0.0626301, -0.0459129, -0.834, 0.0726285, 0.053708, 0.0429017, -0.2, -0.0349996, 0.0826095, -0.0441667, 1.601, -0.0591619, 0.0170622, 0.0787956, -0.851, 0.0581542, 0.0297762, -0.0757065, -0.359, -0.0464154, 0.0885717, -0.000817926, 1.769, 0.0668109, 0.0356151, 0.0653289, -0.85, 0.0875991, -0.0425381, 0.0227357, -0.5, 0.0336438, 0.0876653, 0.0343932, 1.949, -0.0345616, -0.022479, 0.0911054, -0.85, 0.0946831, -0.0299322, -0.0117972, -0.594, 0.0199689, 0.0259233, 0.0944946, 2.126, -0.0252261, -0.0918261, 0.0305222, -0.85, 0.0626413, -0.0766232, 0.0143161, -0.634, 0.0779479, 0.0616799, -0.0109416, 2.238, -0.000446323, 0.0180131, 0.0983633, -0.85, 0.0510754, -0.0397606, 0.076226, -0.634, -0.0155809, 0.0829139, 0.0536891, 2.035, -0.084549, -0.0392986, 0.0361536, -0.85, -0.055891, -0.072196, -0.0407913, -0.614, -0.0700671, 0.0148083, 0.0697948, 1.875, -0.0443486, 0.0675903, -0.0588622, -0.85, -0.0545317, 0.0517385, -0.0659501, -0.65, 0.0389976, 0.0853039, 0.0346761, 1.655, 0.0741989, -0.00680947, -0.0666945, -0.85, 0.0858331, 0.0430527, -0.0279131, -0.65, 0.0302511, -0.0864024, -0.040243, 1.475, -0.0414433, 0.0260978, -0.0871858, -0.87)
|
|
|
|
[node name="fairylights" type="Node3D"]
|
|
script = SubResource("GDScript_2caij")
|
|
light_array = Array[Vector3]([Vector3(0, 0, 0), Vector3(0, 1, 0)])
|
|
|
|
[node name="wires" type="MeshInstance3D" parent="."]
|
|
material_override = SubResource("StandardMaterial3D_5ca5e")
|
|
mesh = SubResource("ImmediateMesh_b56ch")
|
|
script = ExtResource("2_javfj")
|
|
points = Array[Vector3]([Vector3(0, 0, 0), Vector3(0, 1, 0)])
|
|
start_thickness = 0.01
|
|
end_thickness = 0.01
|
|
use_global_coords = false
|
|
tile_texture = false
|
|
|
|
[node name="diodes" type="MultiMeshInstance3D" parent="."]
|
|
multimesh = SubResource("MultiMesh_ic3h7")
|