@icon("./gear.png") class_name Gear extends Node3D var idle_basis = Basis( Vector3(1, 0, 0), Vector3(0, 1, 0), Vector3(0, 0, 1)) var use_basis = Basis( Vector3(1, 0, 0), Vector3(0, 0, -1), Vector3(0, 1, 0)) var pickup_basis = idle_basis func gear_name(): return "Gear" func model_file(): return "hammer.glb" func continuous(): return false func use(player): basis = use_basis $Timer.start() on_use(player) func unequip(player): on_unequip(player) func on_use(_player): pass func on_unequip(_player): pass func on_ready(): pass func _on_timer_timeout(): basis = idle_basis func _ready(): basis = idle_basis if get_parent() is GearPickup: basis = pickup_basis on_ready()