Basically putting all the translation stuff together before I refactor things to use it.

This commit is contained in:
2025-05-25 12:53:34 -05:00
parent 1e2d971643
commit f5cb84e0c9
31 changed files with 254 additions and 327 deletions

View File

@@ -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