Remove Lua package openmw.settings

This commit is contained in:
Petr Mikheev 2022-05-21 19:23:40 +02:00
parent 860d5899c4
commit c548708a27
5 changed files with 1 additions and 83 deletions

View file

@ -60,7 +60,7 @@ add_openmw_dir (mwscript
add_openmw_dir (mwlua add_openmw_dir (mwlua
luamanagerimp object worldview userdataserializer eventqueue luamanagerimp object worldview userdataserializer eventqueue
luabindings localscripts playerscripts objectbindings cellbindings asyncbindings settingsbindings luabindings localscripts playerscripts objectbindings cellbindings asyncbindings
camerabindings uibindings inputbindings nearbybindings postprocessingbindings stats debugbindings camerabindings uibindings inputbindings nearbybindings postprocessingbindings stats debugbindings
types/types types/door types/actor types/container types/weapon types/npc types/creature types/activator types/book types/lockpick types/probe types/apparatus types/potion types/misc types/repair types/types types/door types/actor types/container types/weapon types/npc types/creature types/activator types/book types/lockpick types/probe types/apparatus types/potion types/misc types/repair
) )

View file

@ -56,10 +56,6 @@ namespace MWLua
// Implemented in inputbindings.cpp // Implemented in inputbindings.cpp
sol::table initInputPackage(const Context&); sol::table initInputPackage(const Context&);
// Implemented in settingsbindings.cpp
sol::table initGlobalSettingsPackage(const Context&);
sol::table initPlayerSettingsPackage(const Context&);
// openmw.self package is implemented in localscripts.cpp // openmw.self package is implemented in localscripts.cpp
} }

View file

@ -88,15 +88,12 @@ namespace MWLua
mLua.addCommonPackage("openmw.core", initCorePackage(context)); mLua.addCommonPackage("openmw.core", initCorePackage(context));
mLua.addCommonPackage("openmw.types", initTypesPackage(context)); mLua.addCommonPackage("openmw.types", initTypesPackage(context));
mGlobalScripts.addPackage("openmw.world", initWorldPackage(context)); mGlobalScripts.addPackage("openmw.world", initWorldPackage(context));
mGlobalScripts.addPackage("openmw.settings", initGlobalSettingsPackage(context));
mGlobalScripts.addPackage("openmw.storage", initGlobalStoragePackage(context, &mGlobalStorage)); mGlobalScripts.addPackage("openmw.storage", initGlobalStoragePackage(context, &mGlobalStorage));
mCameraPackage = initCameraPackage(localContext); mCameraPackage = initCameraPackage(localContext);
mUserInterfacePackage = initUserInterfacePackage(localContext); mUserInterfacePackage = initUserInterfacePackage(localContext);
mInputPackage = initInputPackage(localContext); mInputPackage = initInputPackage(localContext);
mNearbyPackage = initNearbyPackage(localContext); mNearbyPackage = initNearbyPackage(localContext);
mLocalSettingsPackage = initGlobalSettingsPackage(localContext);
mPlayerSettingsPackage = initPlayerSettingsPackage(localContext);
mLocalStoragePackage = initLocalStoragePackage(localContext, &mGlobalStorage); mLocalStoragePackage = initLocalStoragePackage(localContext, &mGlobalStorage);
mPlayerStoragePackage = initPlayerStoragePackage(localContext, &mGlobalStorage, &mPlayerStorage); mPlayerStoragePackage = initPlayerStoragePackage(localContext, &mGlobalStorage, &mPlayerStorage);
mPostprocessingPackage = initPostprocessingPackage(localContext); mPostprocessingPackage = initPostprocessingPackage(localContext);
@ -423,7 +420,6 @@ namespace MWLua
scripts->addPackage("openmw.ui", mUserInterfacePackage); scripts->addPackage("openmw.ui", mUserInterfacePackage);
scripts->addPackage("openmw.camera", mCameraPackage); scripts->addPackage("openmw.camera", mCameraPackage);
scripts->addPackage("openmw.input", mInputPackage); scripts->addPackage("openmw.input", mInputPackage);
scripts->addPackage("openmw.settings", mPlayerSettingsPackage);
scripts->addPackage("openmw.storage", mPlayerStoragePackage); scripts->addPackage("openmw.storage", mPlayerStoragePackage);
scripts->addPackage("openmw.postprocessing", mPostprocessingPackage); scripts->addPackage("openmw.postprocessing", mPostprocessingPackage);
scripts->addPackage("openmw.debug", mDebugPackage); scripts->addPackage("openmw.debug", mDebugPackage);
@ -434,7 +430,6 @@ namespace MWLua
if (!autoStartConf.has_value()) if (!autoStartConf.has_value())
autoStartConf = mConfiguration.getLocalConf(type, ptr.getCellRef().getRefId(), getId(ptr)); autoStartConf = mConfiguration.getLocalConf(type, ptr.getCellRef().getRefId(), getId(ptr));
scripts->setAutoStartConf(std::move(*autoStartConf)); scripts->setAutoStartConf(std::move(*autoStartConf));
scripts->addPackage("openmw.settings", mLocalSettingsPackage);
scripts->addPackage("openmw.storage", mLocalStoragePackage); scripts->addPackage("openmw.storage", mLocalStoragePackage);
} }
scripts->addPackage("openmw.nearby", mNearbyPackage); scripts->addPackage("openmw.nearby", mNearbyPackage);

View file

@ -137,8 +137,6 @@ namespace MWLua
sol::table mUserInterfacePackage; sol::table mUserInterfacePackage;
sol::table mCameraPackage; sol::table mCameraPackage;
sol::table mInputPackage; sol::table mInputPackage;
sol::table mLocalSettingsPackage;
sol::table mPlayerSettingsPackage;
sol::table mLocalStoragePackage; sol::table mLocalStoragePackage;
sol::table mPlayerStoragePackage; sol::table mPlayerStoragePackage;
sol::table mPostprocessingPackage; sol::table mPostprocessingPackage;

View file

@ -1,71 +0,0 @@
#include "luabindings.hpp"
#include <components/settings/settings.hpp>
#include "../mwworld/esmstore.hpp"
#include "../mwworld/store.hpp"
namespace MWLua
{
static sol::table initSettingsPackage(const Context& context, bool player)
{
LuaUtil::LuaState* lua = context.mLua;
sol::table config(lua->sol(), sol::create);
// Access to settings.cfg. Temporary, will be removed at some point.
auto checkRead = [player](std::string_view category)
{
if ((category == "Camera" || category == "GUI" || category == "Hud" ||
category == "Windows" || category == "Input") && !player)
throw std::runtime_error("This setting is only available in player scripts");
};
config["_getBoolFromSettingsCfg"] = [=](const std::string& category, const std::string& setting)
{
checkRead(category);
return Settings::Manager::getBool(setting, category);
};
config["_getIntFromSettingsCfg"] = [=](const std::string& category, const std::string& setting)
{
checkRead(category);
return Settings::Manager::getInt(setting, category);
};
config["_getFloatFromSettingsCfg"] = [=](const std::string& category, const std::string& setting)
{
checkRead(category);
return Settings::Manager::getFloat(setting, category);
};
config["_getStringFromSettingsCfg"] = [=](const std::string& category, const std::string& setting)
{
checkRead(category);
return Settings::Manager::getString(setting, category);
};
config["_getVector2FromSettingsCfg"] = [=](const std::string& category, const std::string& setting)
{
checkRead(category);
return Settings::Manager::getVector2(setting, category);
};
config["_getVector3FromSettingsCfg"] = [=](const std::string& category, const std::string& setting)
{
checkRead(category);
return Settings::Manager::getVector3(setting, category);
};
const MWWorld::Store<ESM::GameSetting>* gmst = &MWBase::Environment::get().getWorld()->getStore().get<ESM::GameSetting>();
config["getGMST"] = [lua, gmst](const std::string setting) -> sol::object
{
const ESM::Variant& value = gmst->find(setting)->mValue;
if (value.getType() == ESM::VT_String)
return sol::make_object<std::string>(lua->sol(), value.getString());
else if (value.getType() == ESM::VT_Int)
return sol::make_object<int>(lua->sol(), value.getInteger());
else
return sol::make_object<float>(lua->sol(), value.getFloat());
};
return LuaUtil::makeReadOnly(config);
}
sol::table initGlobalSettingsPackage(const Context& context) { return initSettingsPackage(context, false); }
sol::table initPlayerSettingsPackage(const Context& context) { return initSettingsPackage(context, true); }
}