frame-of-mind/src/base-environments/youth_room/fairylights.tscn

84 lines
7.0 KiB
Plaintext
Raw Normal View History

2024-02-10 12:34:34 +00:00
[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" uid="uid://f26vfrf8n4l" path="res://addons/LineRenderer/line_renderer.gd" id="2_javfj"]
2024-02-10 12:34:34 +00:00
[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 = "
2024-02-10 12:34:34 +00:00
extends Node3D
@export var light_array: Array[Vector3]:
2024-10-18 16:12:40 +00:00
set(points):
light_array = points
if is_inside_tree():
rebuild()
2024-02-10 12:34:34 +00:00
@onready var wires:LineRenderer3D = $wires
@onready var diodes:MultiMeshInstance3D = $diodes
@export var rng_seed:int = 42
2024-02-10 12:34:34 +00:00
var rng = RandomNumberGenerator.new()
@export var size:float = 0.1:
2024-10-18 16:12:40 +00:00
set(new_size):
size = new_size
rebuild()
if is_inside_tree():
wires.end_thickness = size*0.1
wires.start_thickness = size*0.1
2024-02-10 12:34:34 +00:00
# Called when the node enters the scene tree for the first time.
func _ready():
2024-10-18 16:12:40 +00:00
rebuild()
2024-02-10 12:34:34 +00:00
func rebuild():
2025-03-24 16:07:43 +00:00
rng.seed = rng_seed
2024-10-18 16:12:40 +00:00
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:
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
2024-02-10 12:34:34 +00:00
"
[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_30v5y"]
2024-02-10 12:34:34 +00:00
[sub_resource type="MultiMesh" id="MultiMesh_ic3h7"]
transform_format = 1
instance_count = 30
2024-02-10 12:34:34 +00:00
mesh = ExtResource("4_qh8yy")
2025-10-07 22:35:55 +00:00
buffer = PackedFloat32Array(0.09981685, 0.0048210253, -0.0036542376, -0.545, -0.004285584, 0.09898752, 0.013531633, 0.915, 0.0042696027, -0.013350244, 0.09901284, 1.035, 0.07000746, -0.035884943, 0.061735135, -0.47, 0.052533384, 0.084440574, -0.010489702, 0.855, -0.048365276, 0.03977513, 0.077966265, 0.905, 0.004258701, 0.09203124, -0.038885914, -0.44, -0.0057153255, 0.039081898, 0.09186915, 0.871, 0.09974567, -0.0016899735, 0.00692427, 0.78, 0.021999925, -0.08708059, -0.0439656, -0.385, 0.08009742, 0.041850984, -0.042812362, 0.91, 0.055681296, -0.025796626, 0.0789565, 0.69, 0.09233354, 0.028834114, -0.025359664, -0.38, -0.035966184, 0.08807498, -0.0308096, 0.995, 0.013451844, 0.0375685, 0.091693275, 0.595, 0.041037153, 0.023612177, 0.08808186, -0.39, -0.08183642, -0.033079606, 0.0469951, 0.925, 0.040233698, -0.091368504, 0.005748424, 0.465, 0.096389726, 0.024975834, -0.009231994, -0.364, -0.025152955, 0.09678175, -0.0007887144, 0.86, 0.008737898, 0.0030823578, 0.09956982, 0.211, 0.09051618, -0.035352834, 0.023600822, -0.295, 0.009805123, 0.07139074, 0.06933414, 0.82, -0.04136038, -0.060444523, 0.06808656, 0.06, 0.099969886, -0.00044002375, 0.0024142524, -0.255, 0.00037742994, 0.099965714, 0.0025912046, 0.805, -0.0024248264, -0.0025813123, 0.09993727, -0.15, 0.06669522, -0.074469164, 0.002468294, -0.175, 0.066979624, 0.061372936, 0.04179824, 0.83, -0.03264166, -0.026224172, 0.090811975, -0.355, 0.008275211, 0.052801844, -0.08451915, -0.135, 0.09518374, -0.029311886, -0.008992719, 0.955, -0.029522488, -0.07970432, -0.052684378, -0.515, 0.09839882, -0.010216827, 0.014604448, -0.025, 0.0064255283, 0.09676424, 0.024400702, 0.78, -0.01662486, -0.023071585, 0.09587135, -0.615, -0.034177337, -0.07165746, -0.06080394, 0.115, 0.014493376, 0.059907008, -0.07874703, 0.63, 0.092853926, -0.035726182, -0.010089032, -0.695, -0.023289097, -0.071124874, 0.06632399, 0.245, 0.07954721, -0.053165104, -0.02908116, 0.555, 0.055945147, 0.045986135, 0.06895951, -0.745, -0.05999255, -0.025455302, -0.07584802, 0.37, -0.07084022, 0.060961187, 0.03557245, 0.595, 0.03718277, 0.07507172, -0.054604758, -0.805, 0.010777453, 0.09121187, 0.03955051, 0.455, 0.027344523, -0.04096749, 0.08702841, 0.745, 0.09558308, 0.0014354527, -0.029356688, -0.84, 0.0745873, 0.007008575, -0.06623908, 0.505, -0.03662421, 0.08737851, -0.03199474, 0.89, 0.055636343, 0.048123557, 0.067740105, -0.87, -0.052477725, -0.040816348, -0.07470016, 0.445, -0.07717951, -0.014203754, 0.061980464, 1.175, -0.035908382, 0.090179145, -0.024048049, -0.87, 0.065261625, -0.074675135, 0.012827498, 0.26, -0.071961984, -0.06638678, -0.020353615, 1.28, 0.023714853, 0.004052181, -0.0970628, -0.815, 0.04776166, -0.086053446, 0.017709581, 0.125, -0.045023393, -0.0066644074, 0.08904202, 1.35, -0.075443484, -0.050501395, -0.04192721, -0.8, 0.05265527, -0.07790997, -0.034021474, -0.037, -0.057078417, -0.0027407527, -0.08206426, 1.479, 0.06300379, 0.06263008, -0.04591292, -0.834, 0.07262851, 0.053707976, 0.042901676, -0.2, -0.03499957, 0.082609534, -0.044166677, 1.601, -0.0591619, 0.017062197, 0.07879563, -0.851, 0.058154207, 0.02977618, -0.07570646, -0.359, -0.046415366, 0.0885717, -0.00081792625, 1.769, 0.06681094, 0.035615087, 0.06532889, -0.85, 0.08759906, -0.04253812, 0.022735743, -0.5, 0.033643764, 0.0876653, 0.034393217, 1.949, -0.034561586, -0.022478973, 0.091105394, -0.85, 0.09468309, -0.029932225, -0.011797212, -0.594, 0.019968888, 0.025923345, 0.09449457, 2.126, -0.0252261, -0.09182615, 0.030522157, -0.85, 0.062641285, -0.07662324, 0.014316082, -0.634, 0.07794788, 0.0616799, -0.010941619, 2.238, -0.0004463233, 0.01801305, 0.098363265, -0.85, 0.051075388, -0.039760582, 0.07622598, -0.634, -0.015580878, 0.0829139, 0.053689104, 2.035, -0.08454904, -0.0392986, 0.03615355, -0.85, -0.055891007, -0.07219604, -0.040791273, -0.614, -0.07006708, 0.014808285, 0.06979484, 1.875, -0.044348616, 0.06759029, -0.058862157, -0.85, -0.05453172, 0.05173852, -0.06595012, -0.65, 0.038997572, 0.085303895, 0.034676112, 1.655, 0.07419893, -0.006809469, -0.06669445, -0.85, 0.08583314, 0.043052655, -0.027913136, -0.65,
2024-02-10 12:34:34 +00:00
[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")
2025-10-07 22:35:55 +00:00
gi_mode = 0
mesh = SubResource("ImmediateMesh_30v5y")
2024-02-10 12:34:34 +00:00
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="."]
2025-10-07 22:35:55 +00:00
gi_mode = 0
2024-02-10 12:34:34 +00:00
multimesh = SubResource("MultiMesh_ic3h7")