@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 gear_id():
	return 0
func model_file():
	return "hammer.glb"
func continuous():
	return false

# this can be redefined to make a custom
# gear mesh, e.g. a SphereMesh
func use(player):
	basis = use_basis
	$Timer.start()
	on_use(player)

func on_use(_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()
