sunder/scripts/entities/components/item_storage.gd
2026-03-16 03:44:38 -04:00

37 lines
839 B
GDScript

@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