1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-02-04 03:40:14 +00:00

Add bindings for container record

This commit is contained in:
adam 2022-05-26 01:11:22 +00:00
parent 29328867dc
commit aa56e40bc3

View File

@ -1,5 +1,9 @@
#include "types.hpp"
#include <components/esm3/loadcont.hpp>
#include <apps/openmw/mwworld/esmstore.hpp>
#include "../luabindings.hpp"
namespace MWLua
@ -13,6 +17,21 @@ namespace MWLua
[](const LObject& o) { containerPtr(o); return Inventory<LObject>{o}; },
[](const GObject& o) { containerPtr(o); return Inventory<GObject>{o}; }
);
}
//container["capacity"] = [](const Object& o) {
//const MWWorld::Class& cls = o.ptr().getClass();
//return cls.getCapacity(o);
//};
const MWWorld::Store<ESM::Container>* store = &MWBase::Environment::get().getWorld()->getStore().get<ESM::Container>();
container["record"] = sol::overload(
[](const Object& obj) -> const ESM::Container* { return obj.ptr().get<ESM::Container>()->mBase; },
[store](const std::string& recordId) -> const ESM::Container* { return store->find(recordId); });
sol::usertype<ESM::Container> record = context.mLua->sol().new_usertype<ESM::Container>("ESM3_Container");
record[sol::meta_function::to_string] = [](const ESM::Container& rec) -> std::string { return "ESM3_Container[" + rec.mId + "]"; };
record["id"] = sol::readonly_property([](const ESM::Container& rec) -> std::string { return rec.mId; });
record["name"] = sol::readonly_property([](const ESM::Container& rec) -> std::string { return rec.mName; });
record["model"] = sol::readonly_property([](const ESM::Container& rec) -> std::string { return rec.mModel; });
record["mwscript"] = sol::readonly_property([](const ESM::Container& rec) -> std::string { return rec.mScript; });
record["weight"] = sol::readonly_property([](const ESM::Container& rec) -> float { return rec.mWeight; });
}
}