Finished inventories.md

This commit is contained in:
debiankaios 2022-08-16 13:34:53 +02:00
parent 670ab06a97
commit 02ab233deb

View File

@ -19,15 +19,15 @@ ob es sich um ein Spielerinventar, ein Knoteninventar oder ein freistehendes Inv
- [Was sind ItemStacks und Inventare?](#was-sind-itemstacks-und-inventare) - [Was sind ItemStacks und Inventare?](#was-sind-itemstacks-und-inventare)
- [ItemStacks](#itemstacks) - [ItemStacks](#itemstacks)
- [Inventarstandorte](#inventarstandorte) - [Inventarstandorte](#inventarstandorte)
- [Lists](#lists) - [Listen](#listen)
- [Size and Width](#size-and-width) - [Größe und Breite](#größe-und-breite)
- [Checking Contents](#checking-contents) - [Inhalt überprüfen](#inhalt-überprüfen)
- [Modifying Inventories and ItemStacks](#modifying-inventories-and-itemstacks) - [Ändern von Inventaren und ItemStacks](#ändern-von-inventaren-und-itemstacks)
- [Adding to a List](#adding-to-a-list) - [Zu einer Liste hinzufügen](#zu-einer-liste-hinzufügen)
- [Taking Items](#taking-items) - [Items nehmen](#items-nehmen)
- [Manipulating Stacks](#manipulating-stacks) - [Stacks manipulieren](stacks-manipulieren)
- [Wear](#wear) - [Abnutzung](#abnutzung)
- [Lua Tables](#lua-tables) - [Lua Tabellen](#lua-tabellen)
## Was sind ItemStacks und Inventare? ## Was sind ItemStacks und Inventare?
@ -173,173 +173,171 @@ der zu übertragenden Items zurück, wobei 0 verwendet wird, um die Übertragung
Im Gegensatz dazu haben Aktionsrückrufe - beginnend mit `on_` - keinen Rückgabewert. Im Gegensatz dazu haben Aktionsrückrufe - beginnend mit `on_` - keinen Rückgabewert.
## Lists ## Listen
Inventory Lists are a concept used to allow multiple grids to be stored inside a single location. Inventarlisten sind ein Konzept, das es ermöglicht, mehrere Raster an einem einzigen Ort zu speichern.
This is especially useful for the player as there are a number of common lists Dies ist besonders nützlich für den Spieler, da es eine Reihe von allgemeinen Listen
which all games have, such as the *main* inventory and *craft* slots. gibt die alle Spiele haben, wie das *Hauptinventar* und die *Handwerksplätze*.
### Size and Width ### Größe und Breite
Lists have a size, which is the total number of cells in the grid, and a width, Listen haben eine Größe, die die Gesamtzahl der Zellen im Raster angibt, und eine
which is only used within the engine. Breite, die nur innerhalb der Engine verwendet wird.
The width of the list is not used when drawing the inventory in a window, Die Breite der Liste wird beim Zeichnen des Inventars in einem Fenster nicht verwendet, denn der Code hinter dem Fenster bestimmt die zu verwendende Breite.
because the code behind the window determines the width to use.
```lua ```lua
if inv:set_size("main", 32) then if inv:set_size("main", 32) then
inv:set_width("main", 8) inv:set_width("main", 8)
print("size: " .. inv:get_size("main")) print("Größe: " .. inv:get_size("main"))
print("width: " .. inv:get_width("main")) print("Breite: " .. inv:get_width("main"))
else else
print("Error! Invalid itemname or size to set_size()") print("Fehler! Ungültiger itemname oder ungültige Größe für set_size()")
end end
``` ```
`set_size` will fail and return false if the listname or size is invalid. `set_size` wird fehlschlagen und false zurückgeben, wenn der Listenname oder die Größe ungültig ist.
For example, the new size may be too small to fit all the current items Zum Beispiel kann die neue Größe zu klein sein, damit alle aktuellen Gegenstände
in the inventory. im Inventar zu passen.
### Checking Contents ### Inhalt überprüfen
`is_empty` can be used to see if a list contains any items: `is_empty` kann benutzt werden, um zu sehen, ob eine Liste Items enthält:
```lua ```lua
if inv:is_empty("main") then if inv:is_empty("main") then
print("The list is empty!") print("Die Liste ist leer!")
end end
``` ```
`contains_item` can be used to see if a list contains a specific item: `contains_item` kann verwendet werden, um festzustellen, ob eine Liste ein bestimmtes Item enthält:
```lua ```lua
if inv:contains_item("main", "default:stone") then if inv:contains_item("main", "default:stone") then
print("I've found some stone!") print("Ich habe ein paar Steine gefunden!")
end end
``` ```
## Modifying Inventories and ItemStacks ## Ändern von Inventaren und ItemStacks
### Adding to a List ### Zu einer Liste hinzufügen
`add_item` adds items to a list (in this case `"main"`). In the example below, `add_item` fügt Items zu einer Liste hinzu (in diesem Fall `"main"`). Im folgenden
the maximum stack size is also respected: Beispiel, wird auch die maximale Stapelgröße beachtet:
```lua ```lua
local stack = ItemStack("default:stone 99") local stack = ItemStack("default:stone 99")
local leftover = inv:add_item("main", stack) local reste = inv:add_item("main", stack)
if leftover:get_count() > 0 then if reste:get_count() > 0 then
print("Inventory is full! " .. print("Inventar ist voll! " ..
leftover:get_count() .. " items weren't added") reste:get_count() .. " Items wurden nicht hinzugefügt")
end end
``` ```
### Taking Items ### Items nehmen
To remove items from a list: Um Items von einer Liste zu löschen:
```lua ```lua
local taken = inv:remove_item("main", stack) local genommen = inv:remove_item("main", stack)
print("Took " .. taken:get_count()) print("Nahm " .. genommen:get_count())
``` ```
### Manipulating Stacks ### Stacks manipulieren
You can modify individual stacks by first getting them: Sie können einzelne Stacks ändern, indem Sie sie zuerst erhalten:
```lua ```lua
local stack = inv:get_stack(listname, 0) local stack = inv:get_stack(listenname, 0)
``` ```
Then modifying them by setting properties or by using the methods which Dann ändern Sie sie durch das Setzen von Eigenschaften oder durch die Verwendung von
respect `stack_size`: Methoden, welche die `stack_size` respektieren:
```lua ```lua
local stack = ItemStack("default:stone 50") local stack = ItemStack("default:stone 50")
local to_add = ItemStack("default:stone 100") local zum_hinzufuegen = ItemStack("default:stone 100")
local leftover = stack:add_item(to_add) local reste = stack:add_item(to_add)
local taken = stack:take_item(19) local genommen = stack:take_item(19)
print("Could not add" .. leftover:get_count() .. " of the items.") print("Konnte nicht" .. reste:get_count() .. " der items hinzufügen.")
-- ^ will be 51 -- ^ wird 51 seind
print("Have " .. stack:get_count() .. " items") print("Habe " .. stack:get_count() .. " items")
-- ^ will be 80 -- ^ wird 80 sein
-- min(50+100, stack_max) - 19 = 80 -- min(50+100, stack_max) - 19 = 80
-- where stack_max = 99 -- wobei stack_max = 99
``` ```
`add_item` will add items to an ItemStack and return any that could not be added. `add_item` fügt Items zu einem ItemStack hinzu und gibt alle zurück, die nicht hinzugefügt werden konnten.
`take_item` will take up to the number of items but may take less, and returns the stack taken. `take_item` nimmt bis zu der Anzahl der Items, kann aber auch weniger nehmen, und gibt den genommenen Stack zurück.
Finally, set the item stack: Legen Sie schließlich den ItemStack fest:
```lua ```lua
inv:set_stack(listname, 0, stack) inv:set_stack(listenname, 0, stack)
``` ```
## Wear ## Abnutzung
Tools can have wear; wear shows a progress bar and makes the tool break when completely worn. Werkzeuge können abgenutzt sein; die Abnutzung wird in einem Fortschrittsbalken angezeigt und führt zum Abbruch des Werkzeugs, wenn es vollständig abgenutzt ist.
Wear is a number out of 65535; the higher it is, the more worn the tool is. Die Abnutzung ist eine Zahl bis 65535; je höher sie ist, desto mehr ist das Werkzeug abgenutzt.
Wear can be manipulated using `add_wear()`, `get_wear()`, and `set_wear(wear)`. Die Abnutzung kann mit `add_wear()`, `get_wear()` und `set_wear(wear)` beeinflusst werden.
```lua ```lua
local stack = ItemStack("default:pick_mese") local stack = ItemStack("default:pick_mese")
local max_uses = 10 local max_nutzungen = 10
-- This is done automatically when you use a tool that digs things -- Dies geschieht automatisch, wenn Sie ein Werkzeug verwenden, das Dinge abbaut
-- It increases the wear of an item by one use. -- Sie erhöht die Abnutzung eines Gegenstandes um einen Einsatz.
stack:add_wear(65535 / (max_uses - 1)) stack:add_wear(65535 / (max_nutzungen - 1))
``` ```
When digging a node, the amount of wear a tool gets may depend on the node Beim abbauen eines Blockes kann die Abnutzung des Werkzeugs von dem Block abhängen
being dug. So max_uses varies depending on what is being dug. der gegraben wird. Daher variiert max_nutzungen je nachdem, was gegraben wird.
## Lua Tables ## Lua Tabellen
ItemStacks and Inventories can be converted to and from tables. ItemStacks und Inventare können in und aus Tabellen konvertiert werden.
This is useful for copying and bulk operations. Dies ist nützlich für Kopier- und Bulk-Operationen.
```lua ```lua
-- Entire inventory -- Gesamtes Inventar
local data = inv1:get_lists() local daten = inv1:get_lists()
inv2:set_lists(data) inv2:set_lists(daten)
-- One list -- Eine Liste
local listdata = inv1:get_list("main") local listendaten = inv1:get_list("main")
inv2:set_list("main", listdata) inv2:set_list("main", listendaten)
``` ```
The table of lists returned by `get_lists()` will be in this form: Die Tabelle der Listen, die von `get_lists()` zurückgegeben wird, wird in dieser Form vorliegen:
```lua ```lua
{ {
list_one = { liste_eins = {
ItemStack, ItemStack,
ItemStack, ItemStack,
ItemStack, ItemStack,
ItemStack, ItemStack,
-- inv:get_size("list_one") elements -- inv:get_size("liste_eins") Elemente
}, },
list_two = { liste_zwei = {
ItemStack, ItemStack,
ItemStack, ItemStack,
ItemStack, ItemStack,
ItemStack, ItemStack,
-- inv:get_size("list_two") elements -- inv:get_size("liste_zwei") Elemente
} }
} }
``` ```
`get_list()` will return a single list as just a list of ItemStacks. `get_list()` gibt eine einzelne Liste zurück, die lediglich eine Liste von ItemStacks ist.
One important thing to note is that the set methods above don't change the size Ein wichtiger Punkt ist, dass die obigen Set-Methoden die Größe der Listen nicht verändern.
of the lists. Das bedeutet, dass Sie eine Liste löschen können, indem Sie sie auf eine leere Tabelle setzen, und sie wird nicht
This means that you can clear a list by setting it to an empty table and it won't verkleinert:
decrease in size:
```lua ```lua
inv:set_list("main", {}) inv:set_list("main", {})