Browse Source

Add a default clock mod

This mod renders a clock in the top-right corner
and is always available (disabled by default).

It is useful to have a mod available by default
as we work on mod support.
pull/7636/head
Gleb Mazovetskiy 1 year ago
parent
commit
7668de36a4
  1. 1
      CMake/Assets.cmake
  2. 10
      Source/options.cpp
  3. 6
      assets/lua/mods/clock/init.lua

1
CMake/Assets.cmake

@ -149,6 +149,7 @@ set(devilutionx_assets
lua_internal/get_lua_function_signature.lua
lua/devilutionx/events.lua
lua/inspect.lua
lua/mods/clock/init.lua
lua/repl_prelude.lua
nlevels/cutl5w.clx
nlevels/cutl6w.clx

10
Source/options.cpp

@ -1829,7 +1829,15 @@ std::vector<ModOptions::ModEntry> &ModOptions::GetModEntries()
if (modEntries)
return *modEntries;
std::vector<std::string> modNames = ini->getKeys(name);
std::vector<std::string> modNames = ini->getKeys(key);
// Add mods available by default:
for (const std::string_view modName : { "clock" }) {
if (c_find(modNames, modName) != modNames.end()) continue;
ini->set(key, modName, false);
modNames.emplace_back(modName);
}
std::vector<ModOptions::ModEntry> &newModEntries = modEntries.emplace();
for (auto &modName : modNames) {
newModEntries.emplace_back(modName);

6
assets/lua/mods/clock/init.lua

@ -0,0 +1,6 @@
local events = require("devilutionx.events")
local render = require("devilutionx.render")
events.GameDrawComplete.add(function()
render.string(os.date('%H:%M:%S', os.time()), render.screen_width() - 69, 6)
end)
Loading…
Cancel
Save