diff --git a/_de/items/callbacks.md b/_de/items/callbacks.md index 4118f93..d6a8332 100644 --- a/_de/items/callbacks.md +++ b/_de/items/callbacks.md @@ -75,7 +75,7 @@ Wenn man versteht, wie item_eat funktioniert, indem es einfach eine Funktion zur ### on_place und on_secondary_use -Der Unterschied zwischen `on_place` und `on_secondary_use` ist, dass `on_place` aufgerufen wird, +Der Unterschied zwischen `on_place` und `on_secondary_use` ist, dass `on_place` aufgerufen wird, wenn der Spieler auf einen Node zeigt und `on_secondary_use`, wenn der Spieler dies nicht tut. @@ -163,7 +163,7 @@ minetest.register_node("mymod:mynode", { end, on_construct = function(pos, node) local meta = minetest.get_meta(pos) - meta:set_string("infotext", "Mein Block!") + meta:set_string("infotext", "Mein Node!") end, after_place_node = function(pos, placer, itemstack, pointed_thing) -- Überprüfen des Platzierers diff --git a/_de/items/nodes_items_crafting.md b/_de/items/nodes_items_crafting.md index eb2dba7..087d1e3 100644 --- a/_de/items/nodes_items_crafting.md +++ b/_de/items/nodes_items_crafting.md @@ -9,7 +9,7 @@ redirect_from: /de/chapters/nodes_items_crafting.html ## Einführung -Neue Nodes, Craftitems und Rezepte zu erstellen +Neue Nodes, Craftitems und Rezepte zu erstellen sind Grundlagen von vielen Mods - [Was sind Nodes und Craftitems?](#was-sind-nodes-und-craftitems) @@ -73,7 +73,7 @@ itemname = minetest.registered_aliases[itemname] or itemname ### Texturen -Texturen solten in den textures/ Pfad mit Namen im Format +Texturen solten in den textures/ Pfad mit Namen im Format `modname_itemname.png`.\\ platziert werden. JPEG Texturen werden unterstüzt, aber sie unterstützen keine Transparenz und haben generell schlechte Qualität und eine niedrige Auflösung. @@ -205,13 +205,13 @@ minetest.register_craft({ }) ``` -Der einzige wirklich Unterschied im Code ist, dass das Rezept nur ein Item +Der einzige wirklich Unterschied im Code ist, dass das Rezept nur ein Item im Vergleich zu einer Tabelle (zwischen geschweiften Klammern) beinhaltet. Sie haben optional auch einen "cooktime" Parameter, welcher definiert wie lange die Items zu kochen brauchen. Wenn dies nicht gesetzt ist, ist der Standard 3. -Das Rezept oben funktioniert, wenn der Kohleblock im Input-Slot ist, +Das Rezept oben funktioniert, wenn der Kohlenode im Input-Slot ist, mit irgendeiner Form von Brennstoff darunter. Es stellt nach 10 Sekunden ein Diamant-Fragment her! @@ -285,7 +285,7 @@ Werkzeuge können auch eine maximal unterstützte Härte für jeden Typ haben, w schwächere Werkzeuge daran zu hindern, härtere Nodes zu graben. Es ist sehr üblich, dass Werkzeuge alle Grabtypen in ihren Fähigkeiten enthalten. Die weniger geeigneten haben dabei sehr ineffiziente Eigenschaften. -Wenn der Gegenstand, den ein Spieler gerade trägt, keine explizite Werkzeugfähigkeit +Wenn der Gegenstand, den ein Spieler gerade trägt, keine explizite Werkzeugfähigkeit hat, dann wird stattdessen die Fähigkeit der aktuellen Hand verwendet. ```lua diff --git a/_de/map/environment.md b/_de/map/environment.md index 8c0b316..0b64a61 100644 --- a/_de/map/environment.md +++ b/_de/map/environment.md @@ -26,10 +26,10 @@ In diesem Kapitel erfahren Sie, wie Sie grundlegende Aktionen auf der Karte durc Die Minetest-Karte ist in Map-Blöcke(nicht zu verwechseln mit Blöcken in deutschen) aufgeteilt, wobei jeder Map-Block ein Würfel der Kantenlänge 16 ist. Während die Spieler auf der Karte unterwegs sind, werden Map-Blöcke erstellt, geladen, aktiv und entladen. Bereiche der Karte, die noch nicht geladen sind, sind voll von -*ignore*-Blöcken, einem unpassierbaren, nicht auswählbaren Platzhalterblock. Leerer Raum ist -voll von *Luft*-Blöcken, einem unsichtbaren Block, durch den man hindurchgehen kann. +*ignore*-Nodes, einem unpassierbaren, nicht auswählbaren Platzhalternode. Leerer Raum ist +voll von *Luft*-Blöcken, einem unsichtbaren Node, durch den man hindurchgehen kann. -Ein aktiver Map-Block ist ein Block, der geladen ist und für den Aktualisierungen durchgeführt werden. +Ein aktiver Map-Block ist ein Node, der geladen ist und für den Aktualisierungen durchgeführt werden. Geladene Map-Blöcke werden oft als *aktive Blöcke* bezeichnet. Aktive Blöcke können von Mods oder Spielern gelesen oder beschrieben werden und haben aktive Entities. Die Engine diff --git a/_de/map/objects.md b/_de/map/objects.md index 68522db..cf5b019 100644 --- a/_de/map/objects.md +++ b/_de/map/objects.md @@ -27,7 +27,7 @@ definiert. ## Was sind Objekte, Spieler, und Entities? Spieler und Entities sind beide Arten von Objekten. Ein Objekt ist etwas, das sich unabhängig -vom Block-Raster bewegen kann und Eigenschaften wie Geschwindigkeit und Skalierung besitzt. +vom Node-Raster bewegen kann und Eigenschaften wie Geschwindigkeit und Skalierung besitzt. Objekte sind keine Gegenstände, und sie haben ihr eigenes Registrierungssystem. Es gibt ein paar Unterschiede zwischen Spielern und Entities. @@ -203,12 +203,12 @@ end ``` Minetest kann `get_staticdata()` so oft wie gewünscht und zu jeder Zeit aufrufen. -Der Grund dafür ist, dass Minetest nicht darauf wartet, dass ein MapBlock inaktiv wird, -um ihn zu speichern, da dies zu Datenverlusten führen würde. MapBlocks werden ungefähr alle 18 +Der Grund dafür ist, dass Minetest nicht darauf wartet, dass ein Map-Block inaktiv wird, +um ihn zu speichern, da dies zu Datenverlusten führen würde. Map-Blöcke werden ungefähr alle 18 Sekunden gespeichert, also sollten Sie ein ähnliches Intervall für den Aufruf von `get_staticdata()` feststellen. `on_activate()` wird dagegen nur aufgerufen, wenn eine Entity -aktiv wird, entweder wenn der MapBlock aktiv wird oder wenn die Entity spawnen wird. +aktiv wird, entweder wenn der Map-Block aktiv wird oder wenn die Entity spawnen wird. Dies bedeutet, dass staticdata leer sein könnte. Schließlich müssen Sie die Typentabelle mit der treffenden Bezeichnung `register_entity` registrieren. diff --git a/_de/map/storage.md b/_de/map/storage.md index 6510cc9..a95684f 100644 --- a/_de/map/storage.md +++ b/_de/map/storage.md @@ -31,26 +31,26 @@ In diesem Kapitel erfahren Sie, wie Sie Daten speichern können. ### Was sind Metadaten? In Minetest sind Metadaten ein Key-Value-Speicher, der verwendet wird, um benutzerdefinierte Daten an etwas anzuhängen. -Sie können Metadaten verwenden, um Informationen zu einem Block, Spieler oder ItemStack zu speichern. +Sie können Metadaten verwenden, um Informationen zu einem Node, Spieler oder ItemStack zu speichern. Jede Art von Metadaten verwendet genau dieselbe API. Metadaten speichern Werte als Strings, aber es gibt eine Reihe von Methoden um andere primitive Typen zu konvertieren und zu speichern. Einige Schlüssel in Metadaten können eine besondere Bedeutung haben. -Zum Beispiel wird `infotext` in den Block-Metadaten verwendet, um den Tooltip zu speichern, -der angezeigt wird, wenn man mit dem Fadenkreuz über den Block fährt. +Zum Beispiel wird `infotext` in den Node-Metadaten verwendet, um den Tooltip zu speichern, +der angezeigt wird, wenn man mit dem Fadenkreuz über den Node fährt. Um Konflikte mit anderen Mods zu vermeiden, sollten Sie die Standard-Namensraum Konvention für Schlüssel verwenden: `Modname:Schlüsselname`. Die Ausnahme sind konventionelle Daten wie der Name des Besitzers, der als `owner` abgespeichert wird. Metadaten sind Daten über Daten. -Die Daten selbst, wie der Typ eines Blockes oder die Anzahl eines Stapels, sind keine Metadaten. +Die Daten selbst, wie der Typ eines Nodes oder die Anzahl eines Stapels, sind keine Metadaten. ### Abrufen eines Metadatenobjekts -Wenn Sie die Position eines Blockes kennen, können Sie seine Metadaten abrufen: +Wenn Sie die Position eines Nodes kennen, können Sie seine Metadaten abrufen: ```lua local meta = minetest.get_meta({ x = 1, y = 2, z = 3 }) @@ -94,15 +94,15 @@ print(meta:get_string("count")) --> "3" ### Besondere Schlüssel -`infotext` wird in Block-Metadaten verwendet, um einen Tooltip anzuzeigen, wenn das Fadenkreuz über einem Block schwebt. -Dies ist nützlich, um die Eigentümerschaft oder den Status eines Blockes anzuzeigen. +`infotext` wird in Node-Metadaten verwendet, um einen Tooltip anzuzeigen, wenn das Fadenkreuz über einem Node schwebt. +Dies ist nützlich, um die Eigentümerschaft oder den Status eines Nodes anzuzeigen. `description` wird in ItemStack-Metadaten verwendet, um die Beschreibung zu überschreiben, wenn der Mauszeiger über den Stack in einem Inventar bewegt wird. Sie können Farben verwenden, indem Sie sie mit `minetest.colorize()` kodieren. `owner` ist ein allgemeiner Schlüssel, der verwendet wird, um den Benutzernamen des Spielers zu speichern, -der Eigentümer des Elements oder Blocks ist. +der Eigentümer des Elements oder Node ist. ### Speichern von Tabellen @@ -123,7 +123,7 @@ daten = minetest.deserialize(minetest:get_string("foo")) ### Private Metadaten -Standardmäßig werden alle Block-Metadaten an den Client gesendet. +Standardmäßig werden alle Node-Metadaten an den Client gesendet. Sie können Schlüssel als privat markieren, um dies zu verhindern. ```lua @@ -226,7 +226,7 @@ wie sie formatiert sind und wie groß sie sind. Als Richtlinie gilt, dass kleine Daten bis zu 10K, mittlere Daten bis zu 10MB und große Daten jede Größe darüber sind. -Block-Metadaten sind eine gute Wahl, wenn Sie blockbezogene Daten speichern müssen. +Node-Metadaten sind eine gute Wahl, wenn Sie nodebezogene Daten speichern müssen. Die Speicherung mittlerer Daten ist recht effizient, wenn Sie sie privat machen. Item-Metadaten sollten nur zum Speichern kleiner Datenmengen verwendet werden, da es nicht möglich ist, @@ -243,5 +243,5 @@ Sie sind gut geeignet für große Datenmengen. ## Sie sind dran -* Erstellen Sie einen Block, der verschwindet, nachdem er fünfmal geschlagen wurde. -(Verwenden Sie `on_punch` in der Definition des Blockes und `minetest.set_node`.) +* Erstellen Sie einen Node, der verschwindet, nachdem er fünfmal geschlagen wurde. +(Verwenden Sie `on_punch` in der Definition des Nodes und `minetest.set_node`.) diff --git a/_de/map/timers.md b/_de/map/timers.md index c5b8082..291fc18 100644 --- a/_de/map/timers.md +++ b/_de/map/timers.md @@ -12,7 +12,7 @@ redirect_from: ## Einleitung Die periodische Ausführung einer Funktion auf bestimmten Knoten ist eine häufige Aufgabe. -Minetest bietet dafür zwei Methoden: Aktive Mapblock Modifikatoren (ABMs) und Block-Timer(node timers). +Minetest bietet dafür zwei Methoden: Aktive Map-Block Modifikatoren (ABMs) und Node-Timer(node timers). ABMs scannen alle geladenen Map-Blöcke auf der Suche nach Blöcken, die einem Kriterium entsprechen. Sie eignen sich am besten für Blöcken, die in der Welt häufig vorkommen, @@ -20,29 +20,29 @@ wie zum Beispiel Gras. Sie haben einen hohen CPU-Overhead, aber einen geringen Speicher- und Storage-Overhead. Für Blöcke, die ungewöhnlich sind oder bereits Metadaten verwenden, wie Öfen -und Maschinen, sollten stattdessen Blocktimer verwendet werden. -Blocktimer funktionieren, indem sie die ausstehenden Timer in jedem MapBlock verfolgen und dann ausführen +und Maschinen, sollten stattdessen Nodetimer verwendet werden. +Nodetimer funktionieren, indem sie die ausstehenden Timer in jedem Map-Block verfolgen und dann ausführen wenn sie ablaufen. Dies bedeutet, dass die Zeitgeber nicht alle geladenen Blöcke durchsuchen müssen, um Übereinstimmungen zu finden, sondern stattdessen etwas mehr Speicherplatz für die Verfolgung der ausstehenden Timer benötigen. -- [Blocktimer](#blocktimer) -- [Aktive Mapblock Modifikatoren](#aktive-mapblock-modifikatoren) +- [Nodetimer](#nodetimer) +- [Aktive Map-Block Modifikatoren](#aktive-mapblock-modifikatoren) - [Sie sind dran](#sie-sind-dran) -## Blocktimer +## Nodetimer -Blocktimer sind direkt an einen einzelnen Knoten gebunden. -Sie können Blocktimer verwalten, indem Sie ein NodeTimerRef-Objekt erhalten. +Nodetimer sind direkt an einen einzelnen Knoten gebunden. +Sie können Nodetimer verwalten, indem Sie ein NodeTimerRef-Objekt erhalten. ```lua local timer = minetest.get_node_timer(pos) timer:start(10.5) -- in Sekunden ``` -Wenn der Zeitgeber eines Blockes abgelaufen ist, wird die Methode `on_timer` in der Definitionstabelle des Blockes -aufgerufen. Die Methode benötigt nur einen einzigen Parameter, die Position des Blockes: +Wenn der Zeitgeber eines Nodes abgelaufen ist, wird die Methode `on_timer` in der Definitionstabelle des Nodes +aufgerufen. Die Methode benötigt nur einen einzigen Parameter, die Position des Nodes: ```lua minetest.register_node("autotuer:offene_tuer", { @@ -58,7 +58,7 @@ Es ist auch möglich, `get_node_timer(pos)` innerhalb von `on_timer` zu verwende dass Sie false zurückgeben, um Konflikte zu vermeiden. Sie haben vielleicht eine Einschränkung bei den Zeitgebern bemerkt: Aus Optimierungsgründen ist -nur eine Art von Timern pro Blocktyp und nur ein Timer pro Block möglich. +nur eine Art von Timern pro Nodetyp und nur ein Timer pro Node möglich. ## Aktive Mapblock Modifikatoren @@ -69,7 +69,7 @@ in der Nähe von Wasser vorkommen kann. ```lua minetest.register_node("aliens:gras", { description = "Aliengras", - light_source = 3, -- Der Block strahlt Licht aus. Min 0, max 14 + light_source = 3, -- Der Node strahlt Licht aus. Min 0, max 14 tiles = {"aliens_grass.png"}, groups = {choppy=1}, on_use = minetest.item_eat(20) @@ -79,7 +79,7 @@ minetest.register_abm({ nodenames = {"default:dirt_with_grass"}, neighbors = {"default:water_source", "default:water_flowing"}, interval = 10.0, -- Wird alle 10 Sekunden ausgeführt - chance = 50, -- Jeder Block hat eine Chance von 1 zu 50 ausgewählt zu werden + chance = 50, -- Jeder Node hat eine Chance von 1 zu 50 ausgewählt zu werden action = function(pos, node, active_object_count, active_object_count_wider) local pos = {x = pos.x, y = pos.y + 1, z = pos.z} @@ -88,9 +88,9 @@ minetest.register_abm({ }) ``` -Dieser ABM läuft alle zehn Sekunden, und für jeden passenden Block besteht eine +Dieser ABM läuft alle zehn Sekunden, und für jeden passenden Node besteht eine Chance von 1 zu 50, dass es ausgeführt wird. -Wenn die ABM auf einem Block ausgeführt wird, wird ein fremder Grasblock über ihm platziert. +Wenn die ABM auf einem Node ausgeführt wird, wird ein fremder Grasnode über ihm platziert. Bitte seien Sie gewarnt, dies löscht alle Blöcke, die sich zuvor an dieser Position befanden. Um dies zu verhindern, sollten Sie eine Überprüfung mit minetest.get_node einbauen, um sicherzustellen, dass Platz für das Gras vorhanden ist.