init; removed all software/lua from mod
This commit is contained in:
commit
5ecc8ef2c7
154 changed files with 1323 additions and 0 deletions
70
hardware_fw.lua
Normal file
70
hardware_fw.lua
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
-- hardware_fw.lua (Minimal-Version für Deko-Zwecke)
|
||||
|
||||
laptop.node_config = {}
|
||||
|
||||
-- 1. Die neue, extrem vereinfachte Punch-Funktion
|
||||
-- Diese Funktion tut nur noch eine Sache: Sie schaltet zum nächsten Node in der Sequenz um.
|
||||
local function on_punch(pos, node, puncher)
|
||||
-- Finde die Konfiguration des aktuellen Nodes
|
||||
local hwdef = laptop.node_config[node.name]
|
||||
|
||||
-- Wenn ein "nächster Node" definiert ist, wechsle zu diesem.
|
||||
if hwdef and hwdef.next_node then
|
||||
-- KORREKTUR: Wir übergeben auch den alten param2-Wert, um die Ausrichtung beizubehalten.
|
||||
minetest.swap_node(pos, {name = hwdef.next_node, param2 = node.param2})
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
-- 2. Die neue, entschlackte Registrierungs-Funktion
|
||||
-- Diese "Fabrik" baut die Nodes. Wir haben alles entfernt, was nicht für die reine
|
||||
-- Darstellung und die simple Punch-Funktion gebraucht wird.
|
||||
function laptop.register_hardware(name, hwdef)
|
||||
local default_nodename = name.."_"..hwdef.sequence[1]
|
||||
|
||||
for idx, variant in ipairs(hwdef.sequence) do
|
||||
local nodename = name.."_"..variant
|
||||
local def = table.copy(hwdef.node_defs[variant])
|
||||
|
||||
def.description = hwdef.description
|
||||
|
||||
-- Basis-Gruppen, damit man den Node abbauen kann
|
||||
if def.groups then
|
||||
def.groups = table.copy(def.groups) -- Behalte ggf. spezifische Gruppen
|
||||
else
|
||||
def.groups = {choppy=2, oddly_breakably_by_hand=2, dig_immediate=2}
|
||||
end
|
||||
|
||||
-- Wenn es nicht der Standard-Node ist, droppe den Standard-Node
|
||||
if nodename ~= default_nodename then
|
||||
def.drop = default_nodename
|
||||
def.groups.not_in_creative_inventory = 1
|
||||
end
|
||||
|
||||
-- Weise unsere simple Punch-Funktion zu
|
||||
def.on_punch = on_punch
|
||||
|
||||
-- Registriere den Node bei Minetest
|
||||
minetest.register_node(nodename, def)
|
||||
|
||||
-- Speichere die Konfiguration für unsere Punch-Funktion
|
||||
local merged_hwdef = {}
|
||||
merged_hwdef.name = name
|
||||
merged_hwdef.nodename = nodename
|
||||
|
||||
-- Finde den nächsten Node in der Sequenz (z.B. "on" -> "off")
|
||||
local next_seq = hwdef.sequence[idx+1] or hwdef.sequence[1]
|
||||
local next_node = name.."_"..next_seq
|
||||
if next_node ~= nodename then
|
||||
merged_hwdef.next_node = next_node
|
||||
end
|
||||
|
||||
laptop.node_config[nodename] = merged_hwdef
|
||||
end
|
||||
|
||||
-- Wenn eine spezielle Item-Definition für Batterien etc. da war,
|
||||
-- ersetzen wir sie durch einen simplen Alias, damit die Crafting-Rezepte nicht ins Leere laufen.
|
||||
if hwdef.inventory_image then
|
||||
minetest.register_alias(name.."_item", default_nodename)
|
||||
end
|
||||
end
|
||||
Loading…
Add table
Add a link
Reference in a new issue