stick-the-quick/props/speedpad_artificial.gd

59 lines
2.4 KiB
GDScript

class_name SpeedpadArtificial extends Speedpad
@export var model: MeshInstance3D
@onready var _sk1: int = model.find_blend_shape_by_name(&'Key 1')
@onready var _sk2: int = model.find_blend_shape_by_name(&'Key 2')
@onready var _sk3: int = model.find_blend_shape_by_name(&'Key 3')
@onready var _sk4: int = model.find_blend_shape_by_name(&'Key 4')
@onready var _sk5: int = model.find_blend_shape_by_name(&'Key 5')
@onready var _sk6: int = model.find_blend_shape_by_name(&'Key 6')
var _anim_progress: float = 0.0
func _process(delta: float) -> void:
_anim_progress = fposmod(_anim_progress + speed_boost*delta/4.0, 6.0)
var _subprogress: float = fposmod(_anim_progress, 1.0)
if _anim_progress <= 1.0:
model.set_blend_shape_value(_sk1, _subprogress)
model.set_blend_shape_value(_sk2, 0.0)
model.set_blend_shape_value(_sk3, 0.0)
model.set_blend_shape_value(_sk4, 0.0)
model.set_blend_shape_value(_sk5, 0.0)
model.set_blend_shape_value(_sk6, 1.0 - _subprogress)
elif _anim_progress <= 2.0:
model.set_blend_shape_value(_sk1, 1.0 - _subprogress)
model.set_blend_shape_value(_sk2, _subprogress)
model.set_blend_shape_value(_sk3, 0.0)
model.set_blend_shape_value(_sk4, 0.0)
model.set_blend_shape_value(_sk5, 0.0)
model.set_blend_shape_value(_sk6, 0.0)
elif _anim_progress <= 3.0:
model.set_blend_shape_value(_sk1, 0.0)
model.set_blend_shape_value(_sk2, 1.0 - _subprogress)
model.set_blend_shape_value(_sk3, _subprogress)
model.set_blend_shape_value(_sk4, 0.0)
model.set_blend_shape_value(_sk5, 0.0)
model.set_blend_shape_value(_sk6, 0.0)
elif _anim_progress <= 4.0:
model.set_blend_shape_value(_sk1, 0.0)
model.set_blend_shape_value(_sk2, 0.0)
model.set_blend_shape_value(_sk3, 1.0 - _subprogress)
model.set_blend_shape_value(_sk4, _subprogress)
model.set_blend_shape_value(_sk5, 0.0)
model.set_blend_shape_value(_sk6, 0.0)
elif _anim_progress <= 5.0:
model.set_blend_shape_value(_sk1, 0.0)
model.set_blend_shape_value(_sk2, 0.0)
model.set_blend_shape_value(_sk3, 0.0)
model.set_blend_shape_value(_sk4, 1.0 - _subprogress)
model.set_blend_shape_value(_sk5, _subprogress)
model.set_blend_shape_value(_sk6, 0.0)
else:
model.set_blend_shape_value(_sk1, 0.0)
model.set_blend_shape_value(_sk2, 0.0)
model.set_blend_shape_value(_sk3, 0.0)
model.set_blend_shape_value(_sk4, 0.0)
model.set_blend_shape_value(_sk5, 1.0 - _subprogress)
model.set_blend_shape_value(_sk6, _subprogress)