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

38 lines
910 B
GDScript

@tool
class_name Loadout extends Resource
@export_enum("Light", "Medium", "Heavy") var armor_type: int = 0
var weapons:Array[PackedScene] = []:
set(value):
weapons = value
weapons.resize(3)
notify_property_list_changed()
func _init() -> void:
weapons.resize(3)
notify_property_list_changed()
func _get_property_list() -> Array:
var properties := []
for i in range(weapons.size()):
properties.append({
"name": "weapon_%d" % i,
"type": TYPE_OBJECT,
"hint": PROPERTY_HINT_RESOURCE_TYPE,
"hint_string": "PackedScene"
})
return properties
func _get(prop:StringName) -> Variant:
if prop.begins_with("weapon_"):
var index := prop.get_slice("_", 1).to_int()
return weapons[index]
return null
func _set(prop:StringName, value:Variant) -> bool:
if prop.begins_with("weapon_"):
var index := prop.get_slice("_", 1).to_int()
weapons[index] = value
return true
return false