Добрый день.
Столкнулся с проблемой - Не могу сделать систему инвентаря
Каждый раз при поднятии предмета на сцене test_level на сцене User_Interface должен создаваться слот (Panel) с этим предметом. Данные для отрисовки эта панель берет из библиотеки предметов: ItemLib, которая является синглтоном.
Только если предмет отсутствует должна выполнять процедура создания новой панели, однако результат не получается. Буду признателен если подскажите более простой способ обращения к дочерним узлам (их количество меняется) и получения доступа к их переменным.
Все действия происходят на сценах User_Interface, Test_level, Panel,
а также в двух синглтонах: ItemLib и Global
Версия движка:
3.5.2
Проект:
https://disk.yandex.ru/d/EWAOs-D9nUHRLg
Если ссылка не рабочая - напишите.
Кажется нашёл более элегантное решение, извините за беспокойство)
Целую неделю пытался сделать, а как здесь спросил - светлая идея самому в голову пришла)
Пришлось убрать колбэки, но оно работает:
USER_INTERFACE:
func locUI_Dict_gen(a, b):
locItemLib = ItemLib.ItemDict
for i in locItemLib:
var itemLibName = i
var itemLibCount = locItemLib
if locUI_Dict.has(itemLibName):
print("YES")
Global.emit_signal("CountChange", itemLibName, itemLibCount)
else:
locUI_Dict[itemLibName] = itemLibCount
print(locUI_Dict)
panelCreator(itemLibName, itemLibCount)
pass
PANEL:
func Change_this_count(iName, iCount):
if iName == localItemName:
localItemCount = iCount
generic()
print(localDictItem, ItemLib.ItemDict)
pass
Тема в архиве.
Тема закрыта.