#include "util.hpp" #include #include #include "adapter.hpp" #include "container.hpp" #include "flex.hpp" #include "image.hpp" #include "text.hpp" #include "textedit.hpp" #include "widget.hpp" #include "window.hpp" #include "element.hpp" namespace LuaUi { void registerAllWidgets() { MyGUI::FactoryManager::getInstance().registerFactory("Widget"); MyGUI::FactoryManager::getInstance().registerFactory("Widget"); MyGUI::FactoryManager::getInstance().registerFactory("Widget"); MyGUI::FactoryManager::getInstance().registerFactory("Widget"); MyGUI::FactoryManager::getInstance().registerFactory("Widget"); MyGUI::FactoryManager::getInstance().registerFactory("Widget"); MyGUI::FactoryManager::getInstance().registerFactory("BasisSkin"); MyGUI::FactoryManager::getInstance().registerFactory("Widget"); MyGUI::FactoryManager::getInstance().registerFactory("Widget"); } const std::unordered_map& widgetTypeToName() { static std::unordered_map types{ { "LuaWidget", "Widget" }, { "LuaText", "Text" }, { "LuaTextEdit", "TextEdit" }, { "LuaWindow", "Window" }, { "LuaImage", "Image" }, { "LuaFlex", "Flex" }, { "LuaContainer", "Container" }, }; return types; } void clearGameInterface() { while (!Element::sGameElements.empty()) Element::erase(Element::sGameElements.begin()->second.get()); } void clearMenuInterface() { while (!Element::sMenuElements.empty()) Element::erase(Element::sMenuElements.begin()->second.get()); } bool warnUnused(std::vector& warnings, sol::object object, const std::string& tableName, const std::vector& usedKeys, bool generateWarningStrings) { auto beginningSize = warnings.size(); if (!object.is()) return false; sol::table table = object.as(); for (const auto& [key, value] : table) { if (!key.is()) continue; auto keyStr = key.as(); if (std::ranges::find(usedKeys, keyStr) == usedKeys.end()) { if (!generateWarningStrings) return true; warnings.push_back("unused key '" + keyStr + "' in " + tableName); } } return beginningSize != warnings.size(); } }