@tool class_name ItemStorage extends Resource ## An array of [Item] var items: Array[Item] = [] @export var size:int = 3: set = set_size func set_size(new_size:int) -> void: size = new_size items.resize(size) notify_property_list_changed() func _get_property_list() -> Array: var properties := [] for i in range(items.size()): properties.append({ "name": "slot_%d" % i, "type": TYPE_DICTIONARY, #"hint": PROPERTY_HINT_DICTIONARY_TYPE, "hint_string": "Item" }) return properties func _get(name:StringName) -> Item: if name.begins_with("slot_"): var index := name.get_slice("_", 1).to_int() return items[index] return null func _set(name:StringName, value:Variant) -> bool: if name.begins_with("slot_"): var index := name.get_slice("_", 1).to_int() items[index] = value return true return false