59 lines
2.4 KiB
GDScript
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)
|