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)