Basically putting all the translation stuff together before I refactor things to use it.
This commit is contained in:
@@ -1,9 +1,57 @@
|
||||
extends Node
|
||||
class_name ItemSystem extends Node
|
||||
const Inventory = preload("res://scripts/Item/Inventory.gd")
|
||||
|
||||
# # Item Constants
|
||||
# static var POTION = preload("res://scripts/Item/Potion.gd").new();
|
||||
# static var ONION = preload("res://scripts/Item/Ingredient/Onion.gd").new();
|
||||
|
||||
# Static inventories
|
||||
static var PLAYER_INVENTORY = Inventory.new();
|
||||
static var ITEM_MAP:Dictionary[Item.Type,Item]
|
||||
|
||||
func _addItemRecursively(node:Node) -> void:
|
||||
if node is Item:
|
||||
if ITEM_MAP.has(node.type):
|
||||
assert(false, "Duplicate item type found: " + str(node.type))
|
||||
ITEM_MAP[node.type] = node
|
||||
|
||||
for childIndex in node.get_child_count():
|
||||
_addItemRecursively(node.get_child(childIndex))
|
||||
|
||||
func _enter_tree() -> void:
|
||||
# Add all items
|
||||
ITEM_MAP = {}
|
||||
_addItemRecursively(self)
|
||||
|
||||
# Check if we are missing any item types.
|
||||
for itemType in Item.Type.values():
|
||||
if !ITEM_MAP.has(itemType):
|
||||
assert(false, "Missing item type: " + Item.Type.find_key(itemType))
|
||||
|
||||
|
||||
static func isStackable(itemType:Item.Type) -> bool:
|
||||
if not ITEM_MAP.has(itemType):
|
||||
return false
|
||||
|
||||
var item:Item = ITEM_MAP[itemType]
|
||||
return item.stackable
|
||||
|
||||
static func getItemName(itemType:Item.Type, count:int = 1) -> String:
|
||||
if not ITEM_MAP.has(itemType):
|
||||
return ""
|
||||
|
||||
var item:Item = ITEM_MAP[itemType]
|
||||
if count > 1:
|
||||
return str(count) + "x " + item.title
|
||||
else:
|
||||
return item.title
|
||||
|
||||
static func getItemDescription(itemType:Item.Type) -> String:
|
||||
if not ITEM_MAP.has(itemType):
|
||||
return ""
|
||||
|
||||
var item:Item = ITEM_MAP[itemType]
|
||||
return item.description_text
|
||||
|
||||
static func getItemCategory(itemType:Item.Type) -> Item.Category:
|
||||
if not ITEM_MAP.has(itemType):
|
||||
return Item.Category.INGREDIENT
|
||||
|
||||
var item:Item = ITEM_MAP[itemType]
|
||||
return item.category
|
||||
|
Reference in New Issue
Block a user