GMTKGameJam2024/scripts/arm.gd

32 lines
846 B
GDScript3
Raw Normal View History

2024-08-18 22:04:20 +01:00
@tool
2024-08-16 20:16:19 +01:00
2024-08-18 22:04:20 +01:00
class_name Arm extends SkeletonIK3D
@onready var ik_target = get_node(target_node)
@onready var skeleton: Skeleton3D = get_parent_skeleton()
2024-08-16 20:16:19 +01:00
2024-08-16 23:07:59 +01:00
@export var action: StringName
2024-08-18 22:04:20 +01:00
@export var move_speed: float = 1.5
var input_dir: Vector2
var tip_bone_trans: Transform3D
2024-08-16 20:16:19 +01:00
func _ready() -> void:
2024-08-18 22:04:20 +01:00
modification_processed.connect(_on_modification_processed)
start()
2024-08-16 20:16:19 +01:00
2024-08-18 22:04:20 +01:00
func _unhandled_input(event: InputEvent) -> void:
if event is InputEventMouseMotion:
input_dir = event.relative
2024-08-16 21:24:48 +01:00
2024-08-18 22:04:20 +01:00
func update_target_pos(delta: float) -> void:
ik_target.global_position.z -= input_dir.x * delta * move_speed
ik_target.global_position.y -= input_dir.y * delta * move_speed
input_dir = Vector2.ZERO
func _on_modification_processed() -> void:
var tip_bone_id: int = skeleton.find_bone(tip_bone)
tip_bone_trans = skeleton.get_bone_global_pose(tip_bone_id)