gear: make basis properties overridable by child classes

This commit is contained in:
Jeremy Baxter 2026-01-22 23:26:25 +13:00 committed by jeremy
parent 10dd8ce719
commit 907508c4eb

View file

@ -1,25 +1,27 @@
@icon("./gear.png") @icon("./gear.png")
class_name Gear extends Node3D 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(): func gear_name():
return "Gear" return "Gear"
func model_file(): func model_file():
return "hammer.glb" return "hammer.glb"
func continuous(): func continuous():
return false return false
func idle_basis():
return Basis(
Vector3(1, 0, 0),
Vector3(0, 1, 0),
Vector3(0, 0, 1))
func use_basis():
return Basis(
Vector3(1, 0, 0),
Vector3(0, 0, -1),
Vector3(0, 1, 0))
func pickup_basis():
return idle_basis()
func use(player): func use(player):
basis = use_basis basis = use_basis()
$Timer.start() $Timer.start()
on_use(player) on_use(player)
@ -36,10 +38,10 @@ func on_ready():
pass pass
func _on_timer_timeout(): func _on_timer_timeout():
basis = idle_basis basis = idle_basis()
func _ready(): func _ready():
basis = idle_basis basis = idle_basis()
if get_parent() is GearPickup: if get_parent() is GearPickup:
basis = pickup_basis basis = pickup_basis()
on_ready() on_ready()