class_name PropInventory extends Resource signal current_item_changed(prop_key: String) # prop_空手 默认就存在,并且不可删除 @export var enabled_items := ["prop_空手"] @export var current_index := 0: set(val): if current_index != val: val = wrapi(val, 0, enabled_items.size()) current_index = val current_item_changed.emit(enabled_items[current_index]) 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) # 新增后直接选中 current_index = enabled_items.find(prop_key) func disable_item(prop_key: String) -> void: if prop_key == "prop_空手": printerr("Cannot disable prop_空手") return # 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: # auto wrapped in setter current_index += delta return not enabled_items.is_empty()