From e773b9d055f930c0a04862e1ccd049d46b65a55b Mon Sep 17 00:00:00 2001 From: Petr Mikheev Date: Wed, 7 Jun 2023 22:47:05 +0200 Subject: [PATCH] Lua commands debug.toggleGodMode and debug.toggleCollision --- apps/openmw/mwlua/debugbindings.cpp | 9 +++++++++ files/lua_api/openmw/debug.lua | 18 ++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/apps/openmw/mwlua/debugbindings.cpp b/apps/openmw/mwlua/debugbindings.cpp index b9b5698254..7f64188ff5 100644 --- a/apps/openmw/mwlua/debugbindings.cpp +++ b/apps/openmw/mwlua/debugbindings.cpp @@ -35,6 +35,15 @@ namespace MWLua context.mLuaManager->addAction([value] { MWBase::Environment::get().getWorld()->toggleRenderMode(value); }); }; + api["toggleGodMode"] = []() { MWBase::Environment::get().getWorld()->toggleGodMode(); }; + api["isGodMode"] = []() { return MWBase::Environment::get().getWorld()->getGodModeState(); }; + + api["toggleCollision"] = []() { MWBase::Environment::get().getWorld()->toggleCollisionMode(); }; + api["isCollisionEnabled"] = []() { + auto world = MWBase::Environment::get().getWorld(); + return world->isActorCollisionEnabled(world->getPlayerPtr()); + }; + api["NAV_MESH_RENDER_MODE"] = LuaUtil::makeStrictReadOnly(context.mLua->tableFromPairs({ { "AreaType", MWRender::NavMeshMode::AreaType }, diff --git a/files/lua_api/openmw/debug.lua b/files/lua_api/openmw/debug.lua index 578d21a86a..fba649c16e 100644 --- a/files/lua_api/openmw/debug.lua +++ b/files/lua_api/openmw/debug.lua @@ -26,6 +26,24 @@ -- @function [parent=#Debug] toggleRenderMode -- @param #RENDER_MODE value +--- +-- Toggles god mode +-- @function [parent=#Debug] toggleGodMode + +--- +-- Is god mode enabled +-- @function [parent=#Debug] isGodMode +-- @return #boolean + +--- +-- Toggles collisions +-- @function [parent=#Debug] toggleCollision + +--- +-- Is player collision enabled +-- @function [parent=#Debug] isCollisionEnabled +-- @return #boolean + --- -- Navigation mesh rendering modes -- @type NAV_MESH_RENDER_MODE