-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathShells.gd
More file actions
31 lines (27 loc) · 1.01 KB
/
Shells.gd
File metadata and controls
31 lines (27 loc) · 1.01 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
extends Node3D
@export var shell_count: int
@export var mesh: Mesh
@export var shader: Shader
@export_range (1,1000) var frond_count: float
@export var light: DirectionalLight3D
@export_range (0,1) var thickness: float
@export_color_no_alpha var color: Color
@export_range (0, 1) var height: float
var material: Material
var shells = []
# Called when the node enters the scene tree for the first time.
func _ready():
for i in range(shell_count):
var mesh_instance = MeshInstance3D.new()
mesh_instance.mesh = mesh.duplicate()
var mat = ShaderMaterial.new()
mat.set_shader(shader.duplicate())
mat.set_shader_parameter("shell_index", i)
mat.set_shader_parameter("shell_count", shell_count)
mat.set_shader_parameter("frond_count", frond_count)
mat.set_shader_parameter("light_pos", light.transform)
mat.set_shader_parameter("thickness", thickness)
mat.set_shader_parameter("color", color)
mat.set_shader_parameter("height", height)
mesh_instance.mesh.surface_set_material(0, mat)
add_child(mesh_instance)