xiandie/scene/hud/prop_inventory.gd

32 lines
775 B
GDScript3
Raw Normal View History

class_name PropInventory extends Resource
@export var enabled_items := [] as Array[String]
@export var current_index := 0
func current_item_key():
if enabled_items.size() == 0:
return null
return enabled_items[current_index]
func enable_item(prop_key: String) -> void:
if not enabled_items.has(prop_key):
enabled_items.append(prop_key)
# emit_changed()
func disable_item(prop_key: String) -> void:
if enabled_items.has(prop_key):
enabled_items.erase(prop_key)
# wrap index
current_index = wrapi(current_index, 0, enabled_items.size())
# return true if the index changed
func index_wrap_add(delta: int) -> bool:
current_index += delta
current_index = wrapi(current_index, 0, enabled_items.size())
# emit_changed()
return not enabled_items.is_empty()