Finished node_drawtypes.md

This commit is contained in:
debiankaios 2022-08-15 17:01:12 +02:00
parent 01f51293b4
commit a77c588056

View File

@ -3,7 +3,7 @@ title: Block Zeichnungstypen
layout: default layout: default
root: ../.. root: ../..
idx: 2.3 idx: 2.3
description: Ratgeber für alle Zeichnungstypen, einschließlich node boxes/nodeboxes und mesh nodes. description: Ratgeber für alle Zeichnungstypen, einschließlich node boxen/Nodeboxen und mesh nodes.
redirect_from: /de/chapters/node_drawtypes.html redirect_from: /de/chapters/node_drawtypes.html
--- ---
@ -26,14 +26,14 @@ Die Blockparameter werden verwendet, um zu steuern, wie ein Block individuell ge
`param1` wird verwendet, um die Beleuchtung eines Blockes zu speichern, und die Bedeutung von `param1` wird verwendet, um die Beleuchtung eines Blockes zu speichern, und die Bedeutung von
`param2` hängt von der Eigenschaft `paramtype2` der Blocktypdefinition ab. `param2` hängt von der Eigenschaft `paramtype2` der Blocktypdefinition ab.
- [Würfelförmiger Block: Normale und Allflächen](#würfelförmiger-block-normale-und-allflächen) - [Würfelförmiger Block: Normale und allfaces](#würfelförmiger-block-normale-und-allfaces)
- [Glasslike Nodes](#glasslike-nodes) - [Glasartige Blöcke](#glasartige-blöcke)
- [Glasslike_Framed](#glasslike_framed) - [Glasartig gerahmt](#glasartig-gerahmt)
- [Airlike Nodes](#airlike-nodes) - [Airlike Nodes](#airlike-nodes)
- [Lighting and Sunlight Propagation](#lighting-and-sunlight-propagation) - [Lighting and Sunlight Propagation](#lighting-and-sunlight-propagation)
- [Liquid Nodes](#liquid-nodes) - [Flüssige Blöcke](#flüssige-blöcke)
- [Node Boxes](#node-boxes) - [Nodeboxen](#nodeboxen)
- [Wallmounted Node Boxes](#wallmounted-node-boxes) - [Wandgehaltene Nodeboxen](#wandgehaltene-nodeboxen)
- [Mesh Nodes](#mesh-nodes) - [Mesh Nodes](#mesh-nodes)
- [Signlike Nodes](#signlike-nodes) - [Signlike Nodes](#signlike-nodes)
- [Plantlike Nodes](#plantlike-nodes) - [Plantlike Nodes](#plantlike-nodes)
@ -41,7 +41,7 @@ Die Blockparameter werden verwendet, um zu steuern, wie ein Block individuell ge
- [More Drawtypes](#more-drawtypes) - [More Drawtypes](#more-drawtypes)
## Würfelförmiger Block: Normale und Allflächen ## Würfelförmiger Block: Normale und allfaces
<figure class="right_image"> <figure class="right_image">
<img src="{{ page.root }}//static/drawtype_normal.png" alt="Normaler Zeichnungstyp"> <img src="{{ page.root }}//static/drawtype_normal.png" alt="Normaler Zeichnungstyp">
@ -77,23 +77,23 @@ Hinweis: Der normale Zeichentyp ist der Standard-Zeichentyp, Sie müssen ihn als
angeben. angeben.
## Glasslike Nodes ## Glasartige Blöcke
The difference between glasslike and normal nodes is that placing a glasslike node Der Unterschied zwischen glasartigen(glasslike) und normalen Blöcken besteht darin, dass die Platzierung eines glasartigen Blockes
next to a normal node won't cause the side of the normal node to be hidden. neben einem normalen Block platziert wird, nicht dazu führt, dass die Seite des normalen Blockes ausgeblendet wird.
This is useful because glasslike nodes tend to be transparent, and so using a normal Dies ist nützlich, weil glasartige Block dazu neigen, transparent zu sein, und daher die Verwendung eines normalen
drawtype would result in the ability to see through the world. Drawtype dazu führen würde, dass man durch die Welt hindurchsehen kann.
<figure> <figure>
<img src="{{ page.root }}//static/drawtype_glasslike_edges.png" alt="Glasslike's Edges"> <img src="{{ page.root }}//static/drawtype_glasslike_edges.png" alt="Glasartige Ränder">
<figcaption> <figcaption>
Glasslike's Edges Glasartige Ränder
</figcaption> </figcaption>
</figure> </figure>
```lua ```lua
minetest.register_node("default:obsidian_glass", { minetest.register_node("default:obsidian_glass", {
description = "Obsidian Glass", description = "Obsidian Glas",
drawtype = "glasslike", drawtype = "glasslike",
tiles = {"default_obsidian_glass.png"}, tiles = {"default_obsidian_glass.png"},
paramtype = "light", paramtype = "light",
@ -104,52 +104,52 @@ minetest.register_node("default:obsidian_glass", {
}) })
``` ```
### Glasslike_Framed ### Glasartig gerahmt
This makes the node's edge go around the whole thing with a 3D effect, rather Dies führt dazu, dass die Kante des Blockes mit einem 3D-Effekt um das ganze Ding herumgeht und nicht
than individual nodes, like the following: als um einzelne Block, wie im Folgenden dargestellt:
<figure> <figure>
<img src="{{ page.root }}//static/drawtype_glasslike_framed.png" alt="Glasslike_framed's Edges"> <img src="{{ page.root }}//static/drawtype_glasslike_framed.png" alt="Glasartig gerahmt Ränder">
<figcaption> <figcaption>
Glasslike_Framed's Edges Glasartig gerahmt Ränder
</figcaption> </figcaption>
</figure> </figure>
You can use the glasslike_framed_optional drawtype to allow the user to *opt-in* Sie können den Zeichnungstyp `glasslike_framed_optional` verwenden, um dem Benutzer die Möglichkeit zu geben, *opt-in*
to the framed appearance. in das gerahmte Erscheinungsbild.
```lua ```lua
minetest.register_node("default:glass", { minetest.register_node("default:glass", {
description = "Glass", description = "Glas",
drawtype = "glasslike_framed", drawtype = "glasslike_framed",
tiles = {"default_glass.png", "default_glass_detail.png"}, tiles = {"default_glass.png", "default_glass_detail.png"},
inventory_image = minetest.inventorycube("default_glass.png"), inventory_image = minetest.inventorycube("default_glass.png"),
paramtype = "light", paramtype = "light",
sunlight_propagates = true, -- Sunlight can shine through block sunlight_propagates = true, -- Sonnenlicht kann durch den Block scheinen
groups = {cracky = 3, oddly_breakable_by_hand = 3}, groups = {cracky = 3, oddly_breakable_by_hand = 3},
sounds = default.node_sound_glass_defaults() sounds = default.node_sound_glass_defaults()
}) })
``` ```
## Airlike Nodes ## Luftartige Blöcke
These nodes are not rendered and thus have no textures. Diese Blöcke werden nicht gerendert und haben daher keine Texturen.
```lua ```lua
minetest.register_node("myair:air", { minetest.register_node("meineluft:luft", {
description = "MyAir (you hacker you!)", description = "MeineLuft (Du hacker du!)",
drawtype = "airlike", drawtype = "airlike",
paramtype = "light", paramtype = "light",
sunlight_propagates = true, sunlight_propagates = true,
walkable = false, -- Would make the player collide with the air node walkable = false, -- Würde den Spieler mit dem Luftblock kollidieren lassen
pointable = false, -- You can't select the node pointable = false, -- Sie können den Block nicht auswählen
diggable = false, -- You can't dig the node diggable = false, -- Sie können den Block nicht abbauen
buildable_to = true, -- Nodes can be replace this node. buildable_to = true, -- Blöcke können diesen Block ersetzen
-- (you can place a node and remove the air node -- (Sie können einen Block platzieren und den Luftblock
-- that used to be there) -- entfernen die früher einmal da waren)
air_equivalent = true, air_equivalent = true,
drop = "", drop = "",
@ -158,46 +158,45 @@ minetest.register_node("myair:air", {
``` ```
## Lighting and Sunlight Propagation ## Beleuchtung und Sonnenlichtausbreitung
The lighting of a node is stored in param1. In order to work out how to shade Die Beleuchtung eines Blockes wird in param1 gespeichert. Um herauszufinden, wie man die
a node's side, the light value of the neighbouring node is used. Seite eines Blockes zu schattieren hat, wird der Lichtwert des benachbarten Blockes verwendet.
Because of this, solid nodes don't have light values because they block light. Aus diesem Grund haben solide Blöcke keine Lichtwerte, da sie das Licht blockieren.
By default, a node type won't allow light to be stored in any node instances. Standardmäßig lässt ein Blocktyp nicht zu, dass Licht in Blockinstanzen gespeichert wird.
It's usually desirable for some nodes such as glass and air to be able to Es ist normalerweise wünschenswert, dass einige Blöcke wie Glas und Luft in der Lage sind
let light through. To do this, there are two properties which need to be defined: Licht durchzulassen. Zu diesem Zweck müssen zwei Eigenschaften definiert werden:
```lua ```lua
paramtype = "light", paramtype = "light",
sunlight_propagates = true, sunlight_propagates = true,
``` ```
The first line means that param1 does, in fact, store the light level. Die erste Zeile bedeutet, dass param1 in der Tat den Lichtwert speichert.
The second line means that sunlight should go through this node without decreasing in value. Die zweite Zeile bedeutet, dass das Sonnenlicht diesen Knoten durchlaufen sollte, ohne an Wert zu verlieren.
## Flüssige Blöcke
## Liquid Nodes
<figure class="right_image"> <figure class="right_image">
<img src="{{ page.root }}//static/drawtype_liquid.png" alt="Liquid Drawtype"> <img src="{{ page.root }}//static/drawtype_liquid.png" alt="Flüssigkeiten Zeichnungstyp">
<figcaption> <figcaption>
Liquid Drawtype Flüssigkeiten Zeichnungstyp
</figcaption> </figcaption>
</figure> </figure>
Each type of liquid requires two node definitions - one for the liquid source, and Jede Art von Flüssigkeit erfordert zwei Blockdefinitionen - eine für die Flüssigkeitsquelle und
another for flowing liquid. eine weitere für die fließende Flüssigkeit.
```lua ```lua
-- Some properties have been removed as they are beyond -- Einige Eigenschaften wurden entfernt, da sie nicht mehr
-- the scope of this chapter. -- den Anwendungsbereich dieses Kapitels entsprechen.
minetest.register_node("default:water_source", { minetest.register_node("default:water_source", {
drawtype = "liquid", drawtype = "liquid",
paramtype = "light", paramtype = "light",
inventory_image = minetest.inventorycube("default_water.png"), inventory_image = minetest.inventorycube("default_water.png"),
-- ^ this is required to stop the inventory image from being animated -- ^ dies ist erforderlich, damit das Inventarbild nicht auch animiert wird
tiles = { tiles = {
{ {
@ -212,7 +211,7 @@ minetest.register_node("default:water_source", {
}, },
special_tiles = { special_tiles = {
-- New-style water source material (mostly unused) -- Wasserquellenmaterial neuen Typs (größtenteils unbenutzt)
{ {
name = "default_water_source_animated.png", name = "default_water_source_animated.png",
animation = {type = "vertical_frames", aspect_w = 16, animation = {type = "vertical_frames", aspect_w = 16,
@ -224,51 +223,50 @@ minetest.register_node("default:water_source", {
-- --
-- Behavior -- Behavior
-- --
walkable = false, -- The player falls through walkable = false, -- Der Spieler fällt durch
pointable = false, -- The player can't highlight it pointable = false, -- Der Spieler kann es nicht auswählen
diggable = false, -- The player can't dig it diggable = false, -- Der Spieler kann es nicht abbauen
buildable_to = true, -- Nodes can be replace this node buildable_to = true, -- Blöcke können diesen Block ersetzen
alpha = 160, alpha = 160,
-- --
-- Liquid Properties -- Flüssigkeits Eigenschaften
-- --
drowning = 1, drowning = 1,
liquidtype = "source", liquidtype = "source",
liquid_alternative_flowing = "default:water_flowing", liquid_alternative_flowing = "default:water_flowing",
-- ^ when the liquid is flowing -- ^ wenn die Flüssigkeit fließt
liquid_alternative_source = "default:water_source", liquid_alternative_source = "default:water_source",
-- ^ when the liquid is a source -- ^ wenn die Flüssigkeit eine Quelle ist
liquid_viscosity = WATER_VISC, liquid_viscosity = WATER_VISC,
-- ^ how fast -- ^ wie schnell
liquid_range = 8, liquid_range = 8,
-- ^ how far -- ^ wie weit
post_effect_color = {a=64, r=100, g=100, b=200}, post_effect_color = {a=64, r=100, g=100, b=200},
-- ^ colour of screen when the player is submerged -- ^ Farbe des Bildschirms, wenn der Spieler untergetaucht ist
}) })
``` ```
Flowing nodes have a similar definition, but with a different name and animation. Fließende Blöcke haben eine ähnliche Definition, allerdings mit einem anderen Namen und einer anderen Animation.
See default:water_flowing in the default mod in minetest_game for a full example. Siehe `default:water_flowing` in der Standard-Mod in `minetest_game` für ein vollständiges Beispiel.
## Nodeboxen
## Node Boxes
<figure class="right_image"> <figure class="right_image">
<img src="{{ page.root }}//static/drawtype_nodebox.gif" alt="Nodebox drawtype"> <img src="{{ page.root }}//static/drawtype_nodebox.gif" alt="Nodebox Zeichnungstyp">
<figcaption> <figcaption>
Nodebox drawtype Nodebox Zeichnungstyp
</figcaption> </figcaption>
</figure> </figure>
Node boxes allow you to create a node which is not cubic, but is instead made out Mit Nodeboxen können Sie einen Block erstellen, der nicht würfelförmig ist, sondern
of as many cuboids as you like. aus beliebig vielen Quadern besteht.
```lua ```lua
minetest.register_node("stairs:stair_stone", { minetest.register_node("stairs:stair_stone", {
@ -284,25 +282,25 @@ minetest.register_node("stairs:stair_stone", {
}) })
``` ```
The most important part is the node box table: Der wichtigste Teil ist die Nodebox-Tabelle:
```lua ```lua
{-0.5, -0.5, -0.5, 0.5, 0, 0.5}, {-0.5, -0.5, -0.5, 0.5, 0, 0.5},
{-0.5, 0, 0, 0.5, 0.5, 0.5} {-0.5, 0, 0, 0.5, 0.5, 0.5}
``` ```
Each row is a cuboid which are joined to make a single node. Jede Zeile ist ein Quader, der zu einem einzigen Blockpunkt verbunden ist.
The first three numbers are the co-ordinates, from -0.5 to 0.5 inclusive, of Die ersten drei Zahlen sind die Koordinaten (von -0,5 bis einschließlich 0,5) der
the bottom front left most corner, the last three numbers are the opposite corner. der unteren, vorderen, linken Ecke, die letzten drei Zahlen sind die gegenüberliegende Ecke.
They are in the form X, Y, Z, where Y is up. Sie haben die Form X, Y, Z, wobei Y für oben steht.
You can use the [NodeBoxEditor](https://forum.minetest.net/viewtopic.php?f=14&t=2840) to Du kannst den [NodeBoxEditor](https://forum.minetest.net/viewtopic.php?f=14&t=2840) benutzen um
create node boxes by dragging the edges, it is more visual than doing it by hand. Erstellen Sie Nodeboxen durch Ziehen der Kanten, das ist anschaulicher als die Arbeit von Hand.
### Wallmounted Node Boxes ### Wandgehaltene Nodeboxen
Sometimes you want different nodeboxes for when it is placed on the floor, wall, or ceiling like with torches. Manchmal möchte man verschiedene Nodeboxen für die Platzierung auf dem Boden, an der Wand oder an der Decke wie bei Fackeln.
```lua ```lua
minetest.register_node("default:sign_wall", { minetest.register_node("default:sign_wall", {
@ -330,44 +328,43 @@ minetest.register_node("default:sign_wall", {
## Mesh Nodes ## Mesh Nodes
Whilst node boxes are generally easier to make, they are limited in that Nodeboxen sind zwar im Allgemeinen einfacher zu erstellen, doch sind sie insofern eingeschränkt, als
they can only consist of cuboids. Node boxes are also unoptimised; sie nur aus Quadern bestehen können. Nodeboxen sind außerdem nicht optimiert;
Inner faces will still be rendered even when they're completely hidden. Innenflächen werden auch dann noch gerendert, wenn sie vollständig ausgeblendet sind.
A face is a flat surface on a mesh. An inner face occurs when the faces of two Eine Fläche ist eine ebene Oberfläche in einem Mesh(Netz). Eine innere Fläche entsteht, wenn sich die Flächen von zwei
different node boxes overlap, causing parts of the node box model to be verschiedenen Nodeboxen überlappen, wodurch Teile des Nodebox-Modells
invisible but still rendered. unsichtbar sind, aber dennoch gerendert werden.
You can register a mesh node as so: So können Sie ein mesh node registrieren:
```lua ```lua
minetest.register_node("mymod:meshy", { minetest.register_node("mymod:meshy", {
drawtype = "mesh", drawtype = "mesh",
-- Holds the texture for each "material" -- Enthält die Textur für jedes "material"
tiles = { tiles = {
"mymod_meshy.png" "mymod_meshy.png"
}, },
-- Path to the mesh -- Verzeichnis zum Mesh
mesh = "mymod_meshy.b3d", mesh = "mymod_meshy.b3d",
}) })
``` ```
Make sure that the mesh is available in a `models` directory. Vergewissern Sie sich, dass das Mesh in einem `models`-Verzeichnis verfügbar ist.
Most of the time the mesh should be in your mod's folder, however, it's okay to Meistens sollte sich das Mesh im eigenen Mod-Ordner befinden, aber es ist auch in Ordnung, wenn
share a mesh provided by another mod you depend on. For example, a mod that ein Mesh zu verwenden, das von einem anderen Mod bereitgestellt wird, von dem du abhängig bist. Zum Beispiel kann ein Mod, der
adds more types of furniture may want to share the model provided by a basic weitere Möbeltypen hinzufügt, das Modell einer grundlegenden
furniture mod. Möbel-Mod sein.
## Signlike Nodes ## Signlike Nodes
Signlike nodes are flat nodes with can be mounted on the sides of other nodes. Signlike nodes sind flache Knoten, die an den Seiten anderer Knoten angebracht werden können.
Trotz des Namens dieses Zeichentyps verwenden Schilder in der Regel nicht signlike,
Despite the name of this drawtype, signs don't actually tend to use signlike but sondern verwenden stattdessen den Zeichnungstyp `Nodebox`, um einen 3D-Effekt zu erzielen. Der Zeichentyp `signlike`
instead use the `nodebox` drawtype to provide a 3D effect. The `signlike` drawtype wird jedoch häufig von Leitern verwendet.
is, however, commonly used by ladders.
```lua ```lua
minetest.register_node("default:ladder_wood", { minetest.register_node("default:ladder_wood", {
@ -375,7 +372,7 @@ minetest.register_node("default:ladder_wood", {
tiles = {"default_ladder_wood.png"}, tiles = {"default_ladder_wood.png"},
-- Required: store the rotation in param2 -- Erforderlich: Speichern der Drehung in param2
paramtype2 = "wallmounted", paramtype2 = "wallmounted",
selection_box = { selection_box = {
@ -388,19 +385,19 @@ minetest.register_node("default:ladder_wood", {
## Plantlike Nodes ## Plantlike Nodes
<figure class="right_image"> <figure class="right_image">
<img src="{{ page.root }}//static/drawtype_plantlike.png" alt="Plantlike Drawtype"> <img src="{{ page.root }}//static/drawtype_plantlike.png" alt="Plantlike Zeichnungstyp">
<figcaption> <figcaption>
Plantlike Drawtype Plantlike Zeichnungstyp
</figcaption> </figcaption>
</figure> </figure>
Plantlike nodes draw their tiles in an X like pattern. Plantlike Nodes ziehen ihre Kacheln in einem X-ähnlichen Muster.
```lua ```lua
minetest.register_node("default:papyrus", { minetest.register_node("default:papyrus", {
drawtype = "plantlike", drawtype = "plantlike",
-- Only one texture used -- Nur eine Textur in Verwendung
tiles = {"default_papyrus.png"}, tiles = {"default_papyrus.png"},
selection_box = { selection_box = {
@ -412,8 +409,8 @@ minetest.register_node("default:papyrus", {
## Firelike Nodes ## Firelike Nodes
Firelike is similar to plantlike, except that it is designed to "cling" to walls Firelike ist ähnlich zu plantlike, mit der Ausnahme, dass es so konzipiert ist für
and ceilings. Wände und Decken.
<figure> <figure>
<img src="{{ page.root }}//static/drawtype_firelike.png" alt="Firelike nodes"> <img src="{{ page.root }}//static/drawtype_firelike.png" alt="Firelike nodes">
@ -423,24 +420,24 @@ and ceilings.
</figure> </figure>
```lua ```lua
minetest.register_node("mymod:clingere", { minetest.register_node("meinemod:klinger", {
drawtype = "firelike", drawtype = "firelike",
-- Only one texture used -- Nur eine Textur in Verwendung
tiles = { "mymod:clinger" }, tiles = { "mymod:klinger" },
}) })
``` ```
## More Drawtypes ## Mehr Zeichnungstypen
This is not a comprehensive list, there are more types including: Dies ist keine vollständige Liste, es gibt noch weitere Arten:
* Fencelike * Fencelike
* Plantlike rooted - for underwater plants * Plantlike rooted - für Unterwasser-Pflanzen
* Raillike - for cart tracks * Raillike - für Schienen
* Torchlike - for 2D wall/floor/ceiling nodes. * Torchlike - für 2D Wand/Boden/Decken-Blöcke.
The torches in Minetest Game actually use two different node definitions of Die Fackeln in Minetest Game verwenden zwei verschiedene Block-Definitionen von
mesh nodes (default:torch and default:torch_wall). mesh nodes (default:torch und default:torch_wall).
As always, read the [Lua API documentation](https://minetest.gitlab.io/minetest/nodes/#node-drawtypes) Und lese immer [Lua API dokumentation](https://minetest.gitlab.io/minetest/nodes/#node-drawtypes)
for the complete list. für eine komplette Liste.