Finished objects.md

This commit is contained in:
debiankaios 2022-08-24 11:32:15 +02:00
parent 42ee2a3ad8
commit a51ef8cb98
2 changed files with 41 additions and 38 deletions

View File

@ -21,8 +21,8 @@ definiert.
- [Objekt-Eigenschaften](#objekt-eigenschaften) - [Objekt-Eigenschaften](#objekt-eigenschaften)
- [Entities](#entities) - [Entities](#entities)
- [Leben und Schaden](#leben-und-schaden) - [Leben und Schaden](#leben-und-schaden)
- [Attachments](#attachments) - [Anhänge](#anhänge)
- [Your Turn](#your-turn) - [Sie sind dran](#sie-sind-dran)
## Was sind Objekte, Spieler, und Entities? ## Was sind Objekte, Spieler, und Entities?
@ -282,76 +282,76 @@ Im obigen Beispiel erleidet das Objekt 90 % `fleshy` Schadens und 50 % des
Wenn ein Spieler ein Objekt schlägt, stammen die Schadensgruppen von dem Gegenstand, das er Wenn ein Spieler ein Objekt schlägt, stammen die Schadensgruppen von dem Gegenstand, das er
gerade trägt. In anderen Fällen entscheiden die Mods, welche Schadensgruppen verwendet werden. gerade trägt. In anderen Fällen entscheiden die Mods, welche Schadensgruppen verwendet werden.
### Example Damage Calculation ### Beispiel für die Schadensberechnung
Let's punch the `target` object: Schlagen wir das Objekt `target`:
```lua ```lua
local tool_capabilities = { local werkzeug_faehigkeiten = {
full_punch_interval = 0.8, full_punch_interval = 0.8,
damage_groups = { fleshy = 5, choppy = 10 }, damage_groups = { fleshy = 5, choppy = 10 },
-- This is only used for digging nodes, but is still required -- Dies wird nur für das abbauen von Nodes verwendet, ist aber dennoch erforderlich
max_drop_level=1, max_drop_level=1,
groupcaps={ groupcaps={
fleshy={times={[1]=2.5, [2]=1.20, [3]=0.35}, uses=30, maxlevel=2}, fleshy={times={[1]=2.5, [2]=1.20, [3]=0.35}, uses=30, maxlevel=2},
}, },
} }
local time_since_last_punch = tool_capabilities.full_punch_interval local zeit_seit_letzten_schlag = werkzeug_faehigkeiten.full_punch_interval
target:punch(object, time_since_last_punch, tool_capabilities) target:punch(object, zeit_seit_letzten_schlag, werkzeug_faehigkeiten)
``` ```
Now, let's work out what the damage will be. The punch's damage groups are Berechnen wir nun, wie hoch der Schaden sein wird. Die Schadensgruppen des Schlags sind
`fleshy=5` and `choppy=10`, and `target` will take 90% damage from fleshy and 0% `fleshy=5` und `choppy=10`, und die Zielperson erleidet 90% Schaden durch fleshy und 0%
from choppy. von choppy.
First, we multiply the damage groups by the vulnerability and sum the result. Zuerst multiplizieren wir die Schadensgruppen mit der Verwundbarkeit und addieren das Ergebnis.
We then multiply by a number between 0 or 1 depending on the `time_since_last_punch`. Dann multiplizieren wir mit einer Zahl zwischen 0 oder 1, abhängig von der `zeit_seit_letzten_schlag`.
```lua ```lua
= (5*90/100 + 10*0/100) * limit(time_since_last_punch / full_punch_interval, 0, 1) = (5*90/100 + 10*0/100) * limit(zeit_seit_letzten_schlag / full_punch_interval, 0, 1)
= (5*90/100 + 10*0/100) * 1 = (5*90/100 + 10*0/100) * 1
= 4.5 = 4.5
``` ```
As HP is an integer, the damage is rounded to 5 points. Da die HP eine ganze Zahl sind, wird der Schaden auf 5 Lebenspunkte gerundet.
## Attachments ## Anhänge
Attached objects will move when the parent - the object they are attached to - Angehängte Objekte bewegen sich, wenn das übergeordnete Objekt - also das Objekt, an das sie angehängt sind -
is moved. An attached object is said to be a child of the parent. bewegt wird. Ein angefügtes Objekt ist ein Kind des übergeordneten Objekts.
An object can have an unlimited number of children, but at most one parent. Ein Objekt kann eine unbegrenzte Anzahl von Kindern haben, aber höchstens ein Elternteil.
```lua ```lua
child:set_attach(parent, bone, position, rotation) kind:set_attach(elternteil, knochen, position, drehung)
``` ```
An object's `get_pos()` will always return the global position of the object, no Die Funktion `get_pos()` eines Objekts gibt immer die globale Position des Objekts zurück,
matter whether it is attached or not. unabhängig davon, ob es angehängt ist oder nicht.
`set_attach` takes a relative position, but not as you'd expect. `set_attach` nimmt eine relative Position, aber nicht so, wie man es erwarten würde.
The attachment position is relative to the parent's origin as scaled up by 10 times. Die Anhängeposition ist relativ zum Ursprung des Elternobjekts und wird um das 10-fache vergrößert.
So, `0,5,0` would be half a node above the parent's origin. Also wäre "0,5,0" ein halber Node über dem Ursprung des Elternobjekts.
{% include notice.html notice=page.degrad %} {% include notice.html notice=page.degrad %}
For 3D models with animations, the bone argument is used to attach the entity Bei 3D-Modellen mit Animationen wird das Argument knochen verwendet, um das Entity
to a bone. an einen Knochen zu binden.
3D animations are based on skeletons - a network of bones in the model where 3D-Animationen basieren auf Skeletten - einem Netzwerk von Knochen im Modell, bei dem
each bone can be given a position and rotation to change the model, for example, jedem Knochen eine Position und Drehung zugewiesen werden kann, um das Modell zu verändern, z. B,
to move the arm. um den Arm zu bewegen.
Attaching to a bone is useful if you want to make a character hold something: Das Anhängen an einen Knochen ist nützlich, wenn Sie eine Figur etwas halten lassen wollen:
```lua ```lua
obj:set_attach(player, obj:set_attach(spieler,
"Arm_Right", -- default bone "Arm_Right", -- normaler Knochen
{x=0.2, y=6.5, z=3}, -- default position {x=0.2, y=6.5, z=3}, -- normale Position
{x=-100, y=225, z=90}) -- default rotation {x=-100, y=225, z=90}) -- normale Drehung
``` ```
## Your Turn ## Sie sind dran
* Make a windmill by combining nodes and an entity. * Erstelle eine Windmühle, indem du Nodes und eine Entity kombinierst.
* Make a mob of your choice (using just the entity API, and without using any other mods). * Erstelle einen Mob deiner Wahl (nur mit der Entity-API und ohne andere Mods zu verwenden).

View File

@ -1,8 +1,10 @@
Active Block Modifiers = Aktive Mapblock Modifikatoren Active Block Modifiers = Aktive Mapblock Modifikatoren
Armor Groups = Armor Groups Armor Groups = Armor Groups
Attachment = Anhang
block = Mapblock block = Mapblock
bulk = bulk bulk = bulk
Chapter = Kapitel Chapter = Kapitel
child = Kind
Cubic Nodes = Würfelförmiger Block Cubic Nodes = Würfelförmiger Block
craft slots = Handwerksplätze craft slots = Handwerksplätze
Damage = Schaden Damage = Schaden
@ -57,6 +59,7 @@ Node inventory = Blockinventar
node timer = Blocktimer node timer = Blocktimer
Object properties = Objekt-Eigenschaften Object properties = Objekt-Eigenschaften
path = Verzeichnis path = Verzeichnis
parent = Elternteil
placer = plazierer placer = plazierer
player inventory = Spielerinventar player inventory = Spielerinventar
player reference = Spielerreferenz player reference = Spielerreferenz