--[[ Hier können beliebig viele Lampen registriert werden minetest.register_on_mods_loaded(function() smart_light.register_lamp_control("myschool:light") smart_light.register_lamp_control("morelights_modern:walllamp") smart_light.register_lamp_control("morelights_modern:post_d") smart_light.register_lamp_control("morelights_modern:post_l") smart_light.register_lamp_control("morelights_modern:barlight_c") smart_light.register_lamp_control("morelights_modern:barlight_s") smart_light.register_lamp_control("morelights_modern:ceilinglight") smart_light.register_lamp_control("morelights_modern:canlight_d") smart_light.register_lamp_control("morelights_modern:canlight_l") smart_light.register_lamp_control("morelights_modern:tablelamp_d") smart_light.register_lamp_control("morelights_modern:tablelamp_l") smart_light.register_lamp_control("morelights_modern:pathlight_d") smart_light.register_lamp_control("morelights_modern:pathlight_l") smart_light.register_lamp_control("morelights_vintage:lantern_f") smart_light.register_lamp_control("morelights_vintage:lantern_c") smart_light.register_lamp_control("morelights_vintage:lantern_w") smart_light.register_lamp_control("morelights_vintage:hangingbulb") smart_light.register_lamp_control("morelights_vintage:chandelier") -- smart_light.register_lamp_control("andere_mod:lampe") end) --]] -- 1. SPEZIFISCHE MUSTER (Präzise Filter) local lamp_patterns = { -- ["mod:specific_light"] = true, -- finds specific light -- ["mod_pack:light.*"] = true, -- finds ex. light_normal, light_vintage, ... -- ["mod_pack:light_."] = true, -- finds ex. light_a, light_b, ... "default:mese_post_.*", "ethereal:mese_post_.*", "morelights_modern:walllamp", "morelights_modern:ceilinglight", "morelights_modern:block", "morelights_modern:smallblock", "morelights_modern:post_.", -- post_d, post_l "morelights_modern:barlight_.", -- barlight_c, barlight_s "morelights_modern:canlight_.", -- canlight_d, canlight_l "morelights_modern:tablelamp_.", -- tablelamp_d, tablelamp_l "morelights_modern:pathlight_.", -- pathlight_d, pathlight_l "morelights_vintage:lantern_.", -- lantern_f, lantern_c, lantern_w "morelights_vintage:hangingbulb", "morelights_vintage:chandelier", "myschool:light", "mystreets:street_light", "mystreets:street_dome_light", "xnether:mese_post_.*", } -- 2. BLACKLIST local blacklist = { -- ["mod:specific_light"] = true, -- finds specific light -- ["mod_pack:light.*"] = true, -- finds ex. light_normal, light_vintage, ... -- ["mod_pack:light_."] = true, -- finds ex. light_a, light_b, ... } -- 3. AUTOMATISIERTE REGISTRIERUNG minetest.register_on_mods_loaded(function() local count = 0 -- Wir durchlaufen alle registrierten Nodes in der Engine for node_name, _ in pairs(minetest.registered_nodes) do -- A: Zuerst prüfen, ob der Node auf der Blacklist steht if not blacklist[node_name] then -- B: Dann prüfen, ob der Node zu einem der Muster passt for _, pattern in ipairs(lamp_patterns) do if node_name:find("^" .. pattern) then -- C: Sicherheits-Check gegen Selbst-Registrierung if not node_name:find("^smart_light:") then smart_light.register_lamp_control(node_name) count = count + 1 break -- Gefunden, nächster Node end end end end end minetest.log("action", "[smart_light] Automatisierung aktiv: " .. count .. " Lampen registriert.") end)