Select Git revision
SynthLine.tscn
Forked from
IVMI / Ivmi-Builder
Source project has a limited visibility.
-
Florent Berthaut authoredFlorent Berthaut authored
SynthLine.tscn 2.72 KiB
[gd_scene load_steps=4 format=3 uid="uid://drd8ir0kn6r4u"]
[sub_resource type="GDScript" id="1"]
script/source = "tool
extends \"res://addons/ivmi-builder/core/IvmiNode.gd\"
@export var _modulation setget set_modulation # (float, 0, 1)
@export var _filter setget set_filter # (float, 0, 1)
@export var _noisiness setget set_noisiness # (float, 0, 1)
@export var _pitch setget set_pitch # (float, 30, 60)
var _hsv = [0, 1, 1]
func _ready():
_set_ivmi_type(\"synth_line\")
set_property(\"color_hsv\", _hsv)
_add_property(\"modulation\", [_modulation])
_add_property(\"filter\", [_filter])
_add_property(\"noisiness\", [_noisiness])
_add_property(\"pitch\", [_pitch])
func set_modulation(m) :
_modulation = m
if is_inside_tree() :
set_property(\"modulation\", [_modulation])
rotation_degrees[2] = m*45
func set_filter(f) :
_filter = f
_hsv[2] = f*0.5+0.5
if is_inside_tree() :
set_property(\"filter\", [_filter])
set_property(\"color_hsv\", _hsv)
func set_noisiness(n) :
_noisiness = n
_hsv[1] = 1-n
if is_inside_tree() :
set_property(\"noisiness\", [_noisiness])
set_property(\"color_hsv\", _hsv)
func set_pitch(p) :
_pitch = p
_hsv[0] = p/127
if is_inside_tree() :
set_property(\"pitch\", [_pitch])
set_property(\"color_hsv\", _hsv)
func _set_property(prop, vals) :
super._set_property(prop, vals)
match prop:
\"transparency\" :
get_node(\"MeshInstance3D\").get_surface_override_material(0).albedo_color.a=vals[0]
\"color_hsv\" :
get_node(\"MeshInstance3D\").get_surface_override_material(0).albedo_color.h=vals[0]
get_node(\"MeshInstance3D\").get_surface_override_material(0).albedo_color.s=vals[1]
get_node(\"MeshInstance3D\").get_surface_override_material(0).albedo_color.v=vals[2]
func get_property(prop) :
match prop :
\"transparency\" :
return get_node(\"MeshInstance3D\").get_surface_override_material(0).albedo_color.a
\"color_hsv\" :
return [get_node(\"MeshInstance3D\").get_surface_override_material(0).albedo_color.h,
get_node(\"MeshInstance3D\").get_surface_override_material(0).albedo_color.s,
get_node(\"MeshInstance3D\").get_surface_override_material(0).albedo_color.v]
return super.get_property(prop)
"
[sub_resource type="CylinderMesh" id="2"]
top_radius = 0.1
bottom_radius = 0.1
height = 500.0
[sub_resource type="StandardMaterial3D" id="3"]
resource_local_to_scene = true
transparency = 1
albedo_color = Color(1, 0.023622, 0, 1)
[node name="SynthLine" type="Node3D"]
script = SubResource("1")
__meta__ = {
"IVMI": true,
"IVMI_Node_Type": "synth_line"
}
_pitch = 0.5
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
transform = Transform3D(-4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0, 1, 0, 0, 0)
mesh = SubResource("2")
material/0 = SubResource("3")