mirror of
https://github.com/OpenMW/openmw.git
synced 2025-07-03 00:11:34 +00:00
Address feedback
This commit is contained in:
parent
66d9d7e585
commit
9772845f7b
2 changed files with 20 additions and 11 deletions
|
@ -22,27 +22,36 @@ namespace MWLua
|
|||
{
|
||||
void addLevelledCreatureBindings(sol::table list, const Context& context)
|
||||
{
|
||||
auto item = context.mLua->sol().new_usertype<ESM::LevelledListBase::LevelItem>("ESM3_LevelledListItem");
|
||||
auto& state = context.mLua->sol();
|
||||
auto item = state.new_usertype<ESM::LevelledListBase::LevelItem>("ESM3_LevelledListItem");
|
||||
item["id"] = sol::readonly_property(
|
||||
[](const ESM::LevelledListBase::LevelItem& rec) { return rec.mId.serializeText(); });
|
||||
item["level"] = sol::readonly_property([](const ESM::LevelledListBase::LevelItem& rec) { return rec.mLevel; });
|
||||
item[sol::meta_function::to_string] = [](const ESM::LevelledListBase::LevelItem& rec) {
|
||||
[](const ESM::LevelledListBase::LevelItem& rec) -> std::string { return rec.mId.serializeText(); });
|
||||
item["level"]
|
||||
= sol::readonly_property([](const ESM::LevelledListBase::LevelItem& rec) -> int { return rec.mLevel; });
|
||||
item[sol::meta_function::to_string] = [](const ESM::LevelledListBase::LevelItem& rec) -> std::string {
|
||||
return "ESM3_LevelledListItem[" + rec.mId.toDebugString() + ", " + std::to_string(rec.mLevel) + "]";
|
||||
};
|
||||
|
||||
addRecordFunctionBinding<ESM::CreatureLevList>(list, context);
|
||||
|
||||
auto record = context.mLua->sol().new_usertype<ESM::CreatureLevList>("ESM3_CreatureLevelledList");
|
||||
record[sol::meta_function::to_string] = [](const ESM::CreatureLevList& rec) {
|
||||
auto record = state.new_usertype<ESM::CreatureLevList>("ESM3_CreatureLevelledList");
|
||||
record[sol::meta_function::to_string] = [](const ESM::CreatureLevList& rec) -> std::string {
|
||||
return "ESM3_CreatureLevelledList[" + rec.mId.toDebugString() + "]";
|
||||
};
|
||||
record["id"] = sol::readonly_property([](const ESM::CreatureLevList& rec) { return rec.mId.serializeText(); });
|
||||
record["chanceNone"] = sol::readonly_property([](const ESM::CreatureLevList& rec) { return rec.mChanceNone; });
|
||||
record["creatures"] = sol::readonly_property([](const ESM::CreatureLevList& rec) { return rec.mList; });
|
||||
record["id"] = sol::readonly_property(
|
||||
[](const ESM::CreatureLevList& rec) -> std::string { return rec.mId.serializeText(); });
|
||||
record["chanceNone"] = sol::readonly_property(
|
||||
[](const ESM::CreatureLevList& rec) -> float { return std::clamp(rec.mChanceNone / 100.f, 0.f, 1.f); });
|
||||
record["creatures"] = sol::readonly_property([&](const ESM::CreatureLevList& rec) -> sol::table {
|
||||
sol::table res(state, sol::create);
|
||||
for (size_t i = 0; i < rec.mList.size(); ++i)
|
||||
res[i + 1] = rec.mList[i];
|
||||
return res;
|
||||
});
|
||||
record["calculateFromAllLevels"] = sol::readonly_property(
|
||||
[](const ESM::CreatureLevList& rec) -> bool { return rec.mFlags & ESM::CreatureLevList::AllLevels; });
|
||||
|
||||
record["getRandomId"] = [](const ESM::CreatureLevList& rec, int level) {
|
||||
record["getRandomId"] = [](const ESM::CreatureLevList& rec, int level) -> std::string {
|
||||
auto& prng = MWBase::Environment::get().getWorld()->getPrng();
|
||||
return MWMechanics::getLevelledItem(&rec, true, prng, level).serializeText();
|
||||
};
|
||||
|
|
|
@ -1405,7 +1405,7 @@
|
|||
---
|
||||
-- @type CreatureLevelledListRecord
|
||||
-- @field #string id Record id
|
||||
-- @field #number chanceNone Chance this list won't spawn anything [0-100]
|
||||
-- @field #number chanceNone Chance this list won't spawn anything [0-1]
|
||||
-- @field #boolean calculateFromAllLevels Calculate from all levels <= player level, not just the closest below player
|
||||
-- @field #list<#LevelledListItem> creatures
|
||||
|
||||
|
|
Loading…
Reference in a new issue