]> Untitled Git - william-skin.git/blob - jigglebone_setup.gd
Bugfixes
[william-skin.git] / jigglebone_setup.gd
1 extends Skeleton3D
2
3 const JIGGLEBONE_SCENE = preload("res://addons/jigglebones/jigglebone.gd")
4
5
6 @export var enable_jigglebones := true
7 @export var jigglebone_configs: Array[JiggleboneConfig]
8
9
10 # Called when the node enters the scene tree for the first time.
11 func _ready() -> void:
12         if enable_jigglebones:
13                 print("Adding jigglebones to skeleton: " + name)
14                 _add_jigglebones()
15
16
17 func _add_jigglebones() -> void:
18         for i in get_bone_count():
19                 var bone_name = get_bone_name(i)
20                 for cfg in jigglebone_configs:
21                         if bone_name.contains(cfg.name_pattern):
22                                 var jigglebone = JIGGLEBONE_SCENE.new()
23                                 jigglebone.name = "Jigglebone_" + bone_name
24                                 jigglebone.bone_name = bone_name
25                                 jigglebone.stiffness = cfg.stiffness
26                                 jigglebone.damping = cfg.damping
27                                 jigglebone.forward_axis = cfg.forward_axis
28                                 jigglebone.use_gravity = cfg.use_gravity
29                                 add_child(jigglebone)
30                                 print("Jigglebone added: \"" + jigglebone.name + "\" -> \"" + bone_name + "\"")