37 lines
634 B
GDScript
37 lines
634 B
GDScript
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] |