diff --git a/README.md b/README.md index e69de29..f8d9fd0 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,87 @@ +# 💡 Smart Light System for Luanti + +Ein hocheffizientes Beleuchtungssystem für Luanti (Minetest), das eine zentrale Steuerung von Lichtquellen über Areas und Channels ermöglicht. Es bietet Unterstützung für Dimmen, Bewegungsmelder und eine automatisierte Einbindung externer Licht-Mods. + +--- + +## 🚀 Kern-Features + +* **Zentrales Management:** Steuerung beliebig vieler Lampen über ein einziges Panel. +* **Area & Channel Logik:** Gruppierung von Lichtquellen (z.B. "Erdgeschoss" -> "Küche"). +* **Programmer-Tool:** Schnelle Zuweisung von Konfigurationen per Klick – kein mühsames Eintippen von Koordinaten. +* **Motion Sensors:** Automatisches Schalten bei Bewegung mit einstellbarer Reichweite und Zeit. +* **Smart Overrides:** Einzigartiges System zur automatischen Integration von Lampen aus Mods wie **morelights** oder **myschool**. + +--- + +## 🛠 Installation + +1. Navigiere in deinen Luanti **mods** Ordner. +2. Klone das Repository: +```bash +git clone https://git.geigernet.eu/Luanti-Minetest/smart_light.git +``` +3. Stelle sicher, dass die Mod in der **world.mt** aktiviert ist. +``` +load_mod_smart_light = mods/smart_light +``` + +--- + +## 📋 Konfiguration der Lampen-Filter (overrides.lua) + +Das System nutzt spezifische Lua-Patterns, um externe Lampen automatisch zu erkennen und mit Smart-Light-Funktionen auszustatten. Dies geschieht in der **overrides.lua**. + +### 1. Muster-Definition (Patterns) +Anstatt jede Lampe einzeln zu registrieren, werden Muster verwendet: + +| Muster | Ziel | Erklärt | +| :--- | :--- | :--- | +| **mod:name** | Exakter Node | Registriert nur diesen einen Node. | +| **mod:name_.* ** | Alle Untertypen | Findet alles, was mit dem Präfix beginnt. | +| **mod:name_.** | Varianten | Der Punkt **.** steht für genau ein Zeichen (z.B. **_d**, **_l**, **_c**). | + +```lua +local lamp_patterns = { + "mod:specific_light", -- finds specific light + "mod_pack:light.*", -- finds ex. light_normal, light_vintage, ... + "mod_pack:light_.", -- finds ex. light_a, light_b, ... +} +``` + +### 2. Blacklist +Falls ein Muster zu weit greift, können Nodes explizit ausgeschlossen werden: +```lua +local blacklist = { + ["lights_mod:light_cable"] = true, -- Wird ignoriert +} +``` + +--- + +## 🎮 Bedienung + +### Der Programmer +Das wichtigste Werkzeug für den Aufbau deines Netzwerks: +* **Rechtsklick in die Luft:** Öffnet das Setup (Area/Channel Wahl). +* **Linksklick auf Node:** "Paste" – Überträgt die Konfiguration auf Lampen, Schalter oder Sensoren. +* **Rechtsklick auf Node:** Öffnet das gerätespezifische Menü (z.B. Sensor-Reichweite). + +### Das Controller-Panel +* Zeigt alle aktiven Kanäle einer Area an. +* Ermöglicht das Dimmen in Stufen (Max, Med, Min, Off). +* **Admin-Modus:** Linksklick mit dem Programmer auf das Panel öffnet die Kanal-Verwaltung. + +--- + +## 🏗 Technische Funktionsweise (Shadow Nodes) + +Um fremde Lampen steuerbar zu machen, ohne deren Code zu ändern, erstellt Smart Light beim Serverstart automatisch **Shadow-Nodes**. Diese übernehmen die Texturen und Eigenschaften der Original-Nodes, werden aber um die Smart-Light-Logik erweitert. + + + +--- + +## 📜 Lizenz + +Dieses Projekt ist unter der **MIT-Lizenz** lizenziert. Du kannst es frei verwenden, modifizieren und teilen. \ No newline at end of file