1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2024-12-29 12:20:41 +00:00
OpenMW/apps/openmw/mwlua/markupbindings.cpp

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

32 lines
964 B
C++
Raw Normal View History

2024-03-05 06:07:35 +00:00
#include "markupbindings.hpp"
#include <components/lua/luastate.hpp>
#include <components/lua/yamlloader.hpp>
#include <components/resource/resourcesystem.hpp>
#include <components/vfs/manager.hpp>
#include <components/vfs/pathutil.hpp>
#include "../mwbase/environment.hpp"
#include "context.hpp"
namespace MWLua
{
sol::table initMarkupPackage(const Context& context)
{
sol::table api(context.mLua->sol(), sol::create);
auto vfs = MWBase::Environment::get().getResourceSystem()->getVFS();
api["loadYaml"] = [lua = context.mLua, vfs](std::string_view fileName) {
2024-03-16 13:22:07 +00:00
Files::IStreamPtr file = vfs->get(VFS::Path::Normalized(fileName));
2024-03-17 14:15:23 +00:00
return LuaUtil::loadYaml(*file, lua->sol());
2024-03-05 06:07:35 +00:00
};
api["decodeYaml"] = [lua = context.mLua](std::string_view inputData) {
2024-03-17 14:15:23 +00:00
return LuaUtil::loadYaml(std::string(inputData), lua->sol());
2024-03-05 06:07:35 +00:00
};
return LuaUtil::makeReadOnly(api);
}
}