class_name Item # Enum Types enum ItemType { NULL, MEDICINE, KEY_ITEM, } enum ItemId { NULL, POTION, } # Properties var itemType:ItemType var key:String # Item Constructor func _init(key:String, itemType:ItemType) -> void: self.key = key self.itemType = itemType func getName() -> String: # For now just return key return self.key # Item Table static var ITEM_DEFINITIONS = { [ItemId.NULL]: Item.new("NULL", ItemType.NULL), [ItemId.POTION]: Item.new("POTION", ItemType.MEDICINE), } static func getItemById(itemId:ItemId) -> Item: assert(ITEM_DEFINITIONS.has(itemId)) return ITEM_DEFINITIONS[itemId]