48 lines
1.4 KiB
Lua
48 lines
1.4 KiB
Lua
--[[
|
||
|
||
mcl_lever_status – Minetest mod that makes “on” levers have a red tip.
|
||
Copyright © 2022 Nils Dagsson Moskopp (erlehmann)
|
||
|
||
This program is free software: you can redistribute it and/or modify
|
||
it under the terms of the GNU Affero General Public License as
|
||
published by the Free Software Foundation, either version 3 of the
|
||
License, or (at your option) any later version.
|
||
|
||
Dieses Programm hat das Ziel, die Medienkompetenz der Leser zu
|
||
steigern. Gelegentlich packe ich sogar einen handfesten Buffer
|
||
Overflow oder eine Format String Vulnerability zwischen die anderen
|
||
Codezeilen und schreibe das auch nicht dran.
|
||
|
||
]]--
|
||
|
||
local get_tiles = function(node_name)
|
||
local tiles
|
||
if string.match(node_name, ":wall_lever_on") then
|
||
local base = "jeija_wall_lever_lever_light_on.png"
|
||
-- TODO: Construct the overlay using texture modifiers
|
||
-- directly from jeija_torches_on.png so that it works
|
||
-- with other texture packs than the default one, too.
|
||
local overlay = "mcl_lever_status_lever_on.png"
|
||
tiles = {
|
||
base .. "^" .. overlay,
|
||
}
|
||
end
|
||
return tiles
|
||
end
|
||
|
||
local add_lever_on_status = function()
|
||
for node_name, node_def in pairs(minetest.registered_nodes) do
|
||
local tiles = get_tiles(node_name)
|
||
if nil ~= tiles then
|
||
minetest.override_item(
|
||
node_name,
|
||
{
|
||
tiles = tiles,
|
||
}
|
||
)
|
||
end
|
||
end
|
||
end
|
||
|
||
minetest.register_on_mods_loaded(add_lever_on_status)
|