class_name Equipment extends Node signal unequipped(item: Item) signal equipped(item: Item) @export var initial_equipment: Usable var current_item: Option = Option.none func _ready() -> void: current_item = Option.from(initial_equipment) func unequip(): if current_item.is_some(): var item = current_item.unwrap() current_item = Option.none unequipped.emit(item) func equip(item: Item): unequip() if item != null: current_item = Option.some(item) equipped.emit(item) func use(): current_item.inspect(func(x: Variant) -> void: x.use())