Luanti Bau-Befehl: Boden erzeugen

Boden unter dem Spieler bauen

Dieser Chatbefehl erstellt einen quadratischen Boden unter deinen Füßen, wobei du genau in der Mitte stehst. Du gibst an, wie groß der Boden sein soll und aus welchem Material er gebaut wird.

Verwendung:

minetest.register_chatcommand("boden", {
    params = "<größe> <material>",
    description = "Erzeuge einen quadratischen Boden unter dir",
    func = function(name, param)
        -- Die Eingabe (z.B. "5 stone") wird in zwei Teile aufgeteilt:
        -- Teil 1 ist die Größe, Teil 2 das Material
        -- Beispiel: "5 stone" → args[1] = "5", args[2] = "stone"
        local args = param:split(" ") -- damit wir beide Teile einzeln benutzen können

        local size = tonumber(args[1])  -- Größe als Zahl (z. B. 5)
        local mat = args[2]             -- Material als Text (z. B. "stone")

        -- Wenn etwas fehlt, wird eine freundliche Fehlermeldung zurückgegeben
        if not (size and mat) then
            return false, "Benutze: /boden 5 stone"
        end

        -- Spielerobjekt holen, um auf Position und Blickrichtung zuzugreifen
        local player = minetest.get_player_by_name(name)
        if not player then return false, "Spieler nicht gefunden." end

        -- Die Position wird gerundet, um glatte Blockkoordinaten zu erhalten
        -- (z. B. von 10.3 auf 10)
        local pos = vector.round(player:get_pos())

        -- Die Hälfte berechnen, damit der Boden sich links und rechts vom Spieler verteilt
        local half = math.floor(size / 2)

        -- Wir starten mit dem ersten Block ganz unten links vom Quadrat
        local base = {
            x = pos.x - half,
            y = pos.y - 1,  -- genau ein Block unter dem Spieler
            z = pos.z - half
        }

        -- Zwei Schleifen:
        -- Erste Schleife geht die X-Achse entlang
        for dx = 0, size - 1 do
            -- Zweite Schleife geht die Z-Achse entlang
            for dz = 0, size - 1 do
                -- Berechne die Position jedes einzelnen Blockes
                local p = {
                    x = base.x + dx,
                    y = base.y,
                    z = base.z + dz
                }
                -- Setze an dieser Position einen Block aus dem gewählten Material
                minetest.set_node(p, {name = "default:" .. mat})
            end
        end

        return true, "Boden wurde gebaut!"
    end
})
        
      
Parameter Beschreibung
<größe> Die Seitenlänge des Quadrats (z. B. 5). Am besten ungerade Zahl verwenden.
<material> Der Name des Blocks, z. B. stone, wood, glass.
Tipp: Nimm eine ungerade Zahl, damit du in der Mitte stehst. Beispiel: /boden 5 stone
Erklärung für Kinder:
Dieser Code schaut, wo der Spieler steht, und baut genau unter ihm einen Boden.
Wir teilen zuerst die Eingabe in zwei Teile (Größe und Material), holen uns dann die Spielerposition und setzen Blöcke mithilfe von zwei Schleifen: eine bewegt sich nach rechts (X-Richtung), die andere nach vorne (Z-Richtung).
So entsteht ein schönes Quadrat genau unter deinen Füßen!