diff --git a/.vitepress/update.ts b/.vitepress/update.ts index 0a7ba387e..91cbcee91 100644 --- a/.vitepress/update.ts +++ b/.vitepress/update.ts @@ -1,6 +1,5 @@ import * as glob from "glob"; import fs from "node:fs"; -import { EOL } from "node:os"; import prompts from "prompts"; import develop from "./sidebars/develop"; diff --git a/versions/1.21/translated/de_de/contributing.md b/versions/1.21/translated/de_de/contributing.md index 67600502e..d4ddb23cf 100644 --- a/versions/1.21/translated/de_de/contributing.md +++ b/versions/1.21/translated/de_de/contributing.md @@ -188,10 +188,10 @@ Dies wird die Zeilen 15-21 der Datei `FabricDocsReference.java` des Referenz-Mod ::: code-group ```md -<<< @/reference/latest/src/main/java/com/example/docs/FabricDocsReference.java{15-21} +<<< @/reference/1.21/src/main/java/com/example/docs/FabricDocsReference.java{15-21} ``` -<<< @/reference/latest/src/main/java/com/example/docs/FabricDocsReference.java{15-21}[java] +<<< @/reference/1.21/src/main/java/com/example/docs/FabricDocsReference.java{15-21}[java] ::: @@ -202,10 +202,10 @@ So werden beispielsweise die Abschnitte der obigen Datei eingebettet, die mit de ::: code-group ```md -@[code transcludeWith=#entrypoint](@/reference/latest/src/main/java/com/example/docs/FabricDocsReference.java) +@[code transcludeWith=#entrypoint](@/reference/1.21/src/main/java/com/example/docs/FabricDocsReference.java) ``` -@[code transcludeWith=#entrypoint](@/reference/latest/src/main/java/com/example/docs/FabricDocsReference.java) +@[code transcludeWith=#entrypoint](@/reference/1.21/src/main/java/com/example/docs/FabricDocsReference.java) ::: diff --git a/versions/1.21/translated/de_de/develop/automatic-testing.md b/versions/1.21/translated/de_de/develop/automatic-testing.md index 4b098baa8..4cf0fe53b 100644 --- a/versions/1.21/translated/de_de/develop/automatic-testing.md +++ b/versions/1.21/translated/de_de/develop/automatic-testing.md @@ -27,7 +27,7 @@ Zuerst müssen wir Fabric Loader JUnit zu der Entwicklungsumgebung hinzufügen. Dann müssen wir Gradle anweisen, Fabric Loader JUnit zum Testen zu verwenden. Du kannst dies tun, indem du den folgenden Code zu deiner `build.gradle`-Datei hinzufügst: -@[code lang=groovy transcludeWith=:::automatic-testing:2](@/reference/latest/build.gradle) +@[code lang=groovy transcludeWith=:::automatic-testing:2](@/reference/1.21/build.gradle) ### Tests schreiben {#writing-tests} @@ -55,7 +55,7 @@ Beachte die grünen Pfeilindikatoren in dem Zwischenraum: Du kannst ganz einfach Nun ist es an der Zeit, den eigentlichen Testcode zu schreiben. Du kannst Bedingungen mit Hilfe von `org.junit.jupiter.api.Assertions` prüfen. Siehe dazu den folgenden Test an: -@[code lang=java transcludeWith=:::automatic-testing:4](@/reference/latest/src/test/java/com/example/docs/codec/BeanTypeTest.java) +@[code lang=java transcludeWith=:::automatic-testing:4](@/reference/1.21/src/test/java/com/example/docs/codec/BeanTypeTest.java) Für eine Erklärung, was dieser Code tatsächlich tut, siehe [Codecs](./codecs#registry-dispatch). @@ -63,11 +63,11 @@ Für eine Erklärung, was dieser Code tatsächlich tut, siehe [Codecs](./codecs# Großartig, der erste Test war erfolgreich! Aber Moment, der zweite Test ist fehlgeschlagen? In den Logs wird einer der folgenden Fehler angezeigt. -@[code lang=java transcludeWith=:::automatic-testing:5](@/reference/latest/src/test/java/com/example/docs/codec/BeanTypeTest.java) +@[code lang=java transcludeWith=:::automatic-testing:5](@/reference/1.21/src/test/java/com/example/docs/codec/BeanTypeTest.java) Dies liegt daran, dass wir versuchen, auf die Registry oder eine Klasse zuzugreifen, die von der Registry abhängt (oder, in seltenen Fällen, von anderen Minecraft-Klassen wie `SharedConstants`), aber Minecraft wurde noch nicht initialisiert. Wir müssen es nur ein wenig initialisieren, damit die Registries funktionieren. Fügen einfach den folgenden Code an den Anfang deiner Methode `beforeAll`. -@[code lang=java transcludeWith=:::automatic-testing:7](@/reference/latest/src/test/java/com/example/docs/codec/BeanTypeTest.java) +@[code lang=java transcludeWith=:::automatic-testing:7](@/reference/1.21/src/test/java/com/example/docs/codec/BeanTypeTest.java) ### Github Actions einrichten {#setting-up-github-actions} diff --git a/versions/1.21/translated/de_de/develop/blocks/block-entities.md b/versions/1.21/translated/de_de/develop/blocks/block-entities.md index b9789a117..150e5205e 100644 --- a/versions/1.21/translated/de_de/develop/blocks/block-entities.md +++ b/versions/1.21/translated/de_de/develop/blocks/block-entities.md @@ -16,11 +16,11 @@ Als Beispiel werden wir einen Block erstellen, der zählt, wie oft er mit der re Damit Minecraft die neuen Block Entitäten erkennt und lädt, müssen wir einen Block Entität Typen erstellen. Das machen wir, indem wir die `BlockEntity` Klasse erweitern und in einer neuen `ModBlockEntities` Klasse registrieren. -@[code transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/block/entity/custom/CounterBlockEntity.java) +@[code transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/block/entity/custom/CounterBlockEntity.java) Wenn eine `BlockEntity` registriert wird, gibt es einen `BlockEntityType` zurück, wie bei dem `COUNTER_BLOCK_ENTITY`, welches wir oben benutzt haben: -@[code transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/block/entity/ModBlockEntities.java) +@[code transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/block/entity/ModBlockEntities.java) :::tip Man beachte, dass der Konstruktor von der `CounterBlockEntity` zwei Parameter benötigt, der Konstruktor von der `BlockEntity` jedoch drei: den `BlockEntityType`, `BlockPos` und den `BlockState`. @@ -40,7 +40,7 @@ Es gibt zwei Wege, um das zu machen: Wir werden in diesem Beispiel den ersten Weg nutzen, da `BlockWithEntity` ein paar nützliche Funktionen anbietet. ::: -@[code transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/block/custom/CounterBlock.java) +@[code transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/block/custom/CounterBlock.java) Da wir die `BlockWithEntity` Klasse erweitern, müssen wir auch die `createCodec` Methode implementieren, was aber recht leicht ist. @@ -48,19 +48,19 @@ Im Gegensatz zu Blöcken, die Singletons sind, wird für jede Instanz des Blocks Vergiss nicht, den Block in der Klasse `ModBlocks` zu registrieren, genau wie in der Anleitung [Deinen ersten Block erstellen](../blocks/first-block): -@[code transcludeWith=:::5](@/reference/latest/src/main/java/com/example/docs/block/ModBlocks.java) +@[code transcludeWith=:::5](@/reference/1.21/src/main/java/com/example/docs/block/ModBlocks.java) ## Nutzen der Block Entität {#using-the-block-entity} Jetzt, da wir eine Blockentität haben, können wir sie verwenden, um die Anzahl der Rechtsklicks auf den Block zu speichern. Dafür werden wir der Klasse `CounterBlockEntity` ein Feld `clicks` hinzufügen: -@[code transcludeWith=:::2](@/reference/latest/src/main/java/com/example/docs/block/entity/custom/CounterBlockEntity.java) +@[code transcludeWith=:::2](@/reference/1.21/src/main/java/com/example/docs/block/entity/custom/CounterBlockEntity.java) Die Methode `markDirty`, die in `incrementClicks` verwendet wird, teilt dem Spiel mit, dass die Daten dieser Entität aktualisiert wurden; dies wird nützlich sein, wenn wir die Methoden hinzufügen, um den Zähler zu serialisieren und ihn aus der Speicherdatei zurückzuladen. Als Nächstes müssen wir dieses Feld jedes Mal erhöhen, wenn der Block mit der rechten Maustaste angeklickt wird. Dies geschieht indem die Methode `onUse` in der Klasse `CounterBlock` überschrieben wird: -@[code transcludeWith=:::2](@/reference/latest/src/main/java/com/example/docs/block/custom/CounterBlock.java) +@[code transcludeWith=:::2](@/reference/1.21/src/main/java/com/example/docs/block/custom/CounterBlock.java) Da die `BlockEntity` nicht an die Methode übergeben wird, verwenden wir `world.getBlockEntity(pos)`, und wenn die `BlockEntity` nicht gültig ist, kehren wir aus der Methode zurück. @@ -72,13 +72,13 @@ Da wir nun einen funktionierenden Block haben, sollten wir dafür sorgen, dass d Die Serialisierung erfolgt mit der Methode `writeNbt`: -@[code transcludeWith=:::3](@/reference/latest/src/main/java/com/example/docs/block/entity/custom/CounterBlockEntity.java) +@[code transcludeWith=:::3](@/reference/1.21/src/main/java/com/example/docs/block/entity/custom/CounterBlockEntity.java) Hier fügen wir die Felder hinzu, die in dem übergebenen `NbtCompound` gespeichert werden sollen: im Fall des Zählerblocks ist das das Feld `clicks`. Das Lesen ist ähnlich, aber anstatt in dem `NbtCompound` zu speichern, holt man sich die Werte, die man vorher gespeichert hat, und speichert sie in den Feldern der BlockEntity: -@[code transcludeWith=:::4](@/reference/latest/src/main/java/com/example/docs/block/entity/custom/CounterBlockEntity.java) +@[code transcludeWith=:::4](@/reference/1.21/src/main/java/com/example/docs/block/entity/custom/CounterBlockEntity.java) Wenn wir nun speichern und das Spiel neu laden, sollte der Zählerblock dort weitermachen, wo er beim Speichern aufgehört hat. @@ -88,19 +88,19 @@ Das Interface `BlockEntityProvider` definiert auch eine Methode namens `getTicke Die Methode `getTicker` sollte auch prüfen, ob der übergebene `BlockEntityType` derselbe ist wie der, den wir verwenden, und wenn ja, die Funktion zurückgeben, die bei jedem Tick aufgerufen wird. Glücklicherweise gibt es eine Hilfsfunktion, die diese Prüfung in `BlockWithEntity` durchführt: -@[code transcludeWith=:::3](@/reference/latest/src/main/java/com/example/docs/block/custom/CounterBlock.java) +@[code transcludeWith=:::3](@/reference/1.21/src/main/java/com/example/docs/block/custom/CounterBlock.java) `CounterBlockEntity::tick` ist ein Verweis auf die statische Methode `tick`, die wir in der Klasse `CounterBlockEntity` erstellen sollten. Eine solche Strukturierung ist nicht erforderlich, aber es ist eine gute Praxis, um den Code sauber und übersichtlich zu halten. Nehmen wir an, wir wollen, dass der Zähler nur alle 10 Ticks (2 Mal pro Sekunde) erhöht werden kann. Wir können dies tun, indem wir der Klasse `CounterBlockEntity` ein Feld `ticksSinceLast` hinzufügen und es bei jedem Tick erhöhen: -@[code transcludeWith=:::5](@/reference/latest/src/main/java/com/example/docs/block/entity/custom/CounterBlockEntity.java) +@[code transcludeWith=:::5](@/reference/1.21/src/main/java/com/example/docs/block/entity/custom/CounterBlockEntity.java) Vergiss nicht, dieses Feld zu serialisieren und zu deserialisieren! Jetzt können wir `ticksSinceLast` verwenden, um zu prüfen, ob der Zähler in `incrementClicks` erhöht werden kann: -@[code transcludeWith=:::6](@/reference/latest/src/main/java/com/example/docs/block/entity/custom/CounterBlockEntity.java) +@[code transcludeWith=:::6](@/reference/1.21/src/main/java/com/example/docs/block/entity/custom/CounterBlockEntity.java) :::tip Wenn die Blockentität nicht zu ticken scheint, überprüfe den Registrierungscode! Es sollte die Blöcke, die für diese Entität gültig sind, an den `BlockEntityType.Builder`, übergeben, sonst wird eine Warnung in der Konsole ausgegeben: diff --git a/versions/1.21/translated/de_de/develop/blocks/block-entity-renderer.md b/versions/1.21/translated/de_de/develop/blocks/block-entity-renderer.md index 466bb85c5..c93f354ba 100644 --- a/versions/1.21/translated/de_de/develop/blocks/block-entity-renderer.md +++ b/versions/1.21/translated/de_de/develop/blocks/block-entity-renderer.md @@ -17,12 +17,12 @@ Zuerst müssen wir einen `BlockEntityRenderer` für unsere `CounterBlockEntity` Beim Erstellen eines `BlockEntityRenderer` für die `CounterBlockEntity` ist es wichtig, wenn das Projekt geteilte Quellen für den Client und den Server nutzt, die Klasse in das passende Quellenverzeichnis, wie `src/client/`, zu platzieren. Der Zugriff auf Rendering-bezogene Klassen direkt im `src/main/` Quellenverzeichnis ist nicht sicher, da diese Klassen möglicherweise am Server nicht geladen sind. -@[code transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/rendering/blockentity/CounterBlockEntityRenderer.java) +@[code transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/rendering/blockentity/CounterBlockEntityRenderer.java) Die neue Klasse hat einen Konstruktor mit einem `BlockEntityRendererFactory.Context` als Parameter. Der `Context` hat einige nützliche Rendering-Hilfsmittel, wie den `ItemRenderer` oder `TextRenderer`. Durch die Aufnahme eines derartigen Konstruktors, wird es außerdem möglich den Konstuktor als funktionales Interface der `BlockEntityRendererFactory` selbst zu verwenden: -@[code transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/FabricDocsBlockEntityRenderer.java) +@[code transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/FabricDocsBlockEntityRenderer.java) Füge den Einstiegspunkt zu der Datei `fabric.mod.json` hinzu, damit der Renderer registriert ist. @@ -77,7 +77,7 @@ matrices.scale(1/18f, 1/18f, 1/18f); Jetzt sieht die ganze Transformation wie folgt aus: -@[code transcludeWith=:::2](@/reference/latest/src/client/java/com/example/docs/rendering/blockentity/CounterBlockEntityRenderer.java) +@[code transcludeWith=:::2](@/reference/1.21/src/client/java/com/example/docs/rendering/blockentity/CounterBlockEntityRenderer.java) ### Zeichnen von Text {#drawing-text} @@ -85,7 +85,7 @@ Wie bereits früher erwähnt, hat der an den Konstruktor unseres Renderers über Der `TextRenderer` hat Methoden um Text zu messen (`getWidth`), welche für das Zentrieren nützlich ist, und um ihn zu zeichnen (`draw`). -@[code transcludeWith=:::3](@/reference/latest/src/client/java/com/example/docs/rendering/blockentity/CounterBlockEntityRenderer.java) +@[code transcludeWith=:::3](@/reference/1.21/src/client/java/com/example/docs/rendering/blockentity/CounterBlockEntityRenderer.java) Die Methode `draw` nimmt einige Paramter, aber die Wichtigsten sind: diff --git a/versions/1.21/translated/de_de/develop/blocks/blockstates.md b/versions/1.21/translated/de_de/develop/blocks/blockstates.md index b1f60546d..1260bd16c 100644 --- a/versions/1.21/translated/de_de/develop/blocks/blockstates.md +++ b/versions/1.21/translated/de_de/develop/blocks/blockstates.md @@ -25,7 +25,7 @@ Minecraft verfügt bereits über einige benutzerdefinierte Klassen, mit denen ma Die Vanilla `PillarBlock` Klasse erlaubt, dass der Block in der X, Y oder Z Axe platziert werden kann. -@[code transcludeWith=:::3](@/reference/latest/src/main/java/com/example/docs/block/ModBlocks.java) +@[code transcludeWith=:::3](@/reference/1.21/src/main/java/com/example/docs/block/ModBlocks.java) Säulenblöcke haben zwei Texturen, oben und an der Seite - sie verwenden das Modell `block/cube_column`. @@ -40,7 +40,7 @@ Da der Säulenblock zwei Positionen hat, eine horizontale und eine vertikale, m Ein Beispiel der Datei `condensed_oak_log_horizontal.json`: -@[code](@/reference/latest/src/main/resources/assets/fabric-docs-reference/models/block/condensed_oak_log_horizontal.json) +@[code](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/models/block/condensed_oak_log_horizontal.json) --- @@ -56,7 +56,7 @@ Als nächstes müssen wir eine Blockzustand-Datei erstellen. Die Blockzustand-Da - `axis=y` - Wenn der Block entlang der Y-Achse platziert wird, verwenden wir das normale vertikale Modell. - `axis=z` - Wenn der Block entlang der Z-Achse platziert wird, drehen wir das Modell so, dass es in die positive X-Richtung zeigt. -@[code](@/reference/latest/src/main/resources/assets/fabric-docs-reference/blockstates/condensed_oak_log.json) +@[code](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/blockstates/condensed_oak_log.json) Wie immer musst du eine Übersetzung für deinen Block und ein Objektmodell erstellen, das einem der beiden Modelle übergeordnet ist. @@ -72,15 +72,15 @@ Dieses Beispiel wird eine einzigartiges boolesche Eigenschaft mit dem Namen `act Zunächst musst du die Eigenschaft selbst erstellen - da es sich um eine boolesche Eigenschaft handelt, wird die Methode `BooleanProperty.of` verwendet. -@[code transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) +@[code transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) Als Nächstes müssen wir die Eigenschaft mit der Methode `appendProperties` an den Blockzustand-Manager anhängen. Du musst die Methode überschreiben, um auf den Builder zuzugreifen: -@[code transcludeWith=:::2](@/reference/latest/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) +@[code transcludeWith=:::2](@/reference/1.21/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) Außerdem musst du im Konstruktor deines benutzerdefinierten Blocks einen Standardzustand für die Eigenschaft `activated` festlegen. -@[code transcludeWith=:::3](@/reference/latest/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) +@[code transcludeWith=:::3](@/reference/1.21/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) :::warning Vergiss nicht, deinen Block mit der benutzerdefinierten Klasse anstelle von `Block` zu registrieren! @@ -90,7 +90,7 @@ Vergiss nicht, deinen Block mit der benutzerdefinierten Klasse anstelle von `Blo In diesem Beispiel wird die boolesche Eigenschaft `activated` umgeschaltet, wenn der Spieler mit dem Block interagiert. Hierfür können wir die Methode `onUse` überschreiben: -@[code transcludeWith=:::3](@/reference/latest/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) +@[code transcludeWith=:::3](@/reference/1.21/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) ### Die Eigenschaft visualisieren {#visualizing-the-property} @@ -106,7 +106,7 @@ Wenn du mehrere Eigenschaften bei einem Block hast, musst du alle möglichen Kom Da es für diesen Block nur zwei mögliche Varianten gibt, da er nur eine Eigenschaft hat (`activated`), sieht der Blockzustand JSON etwa so aus: -@[code](@/reference/latest/src/main/resources/assets/fabric-docs-reference/blockstates/prismarine_lamp.json) +@[code](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/blockstates/prismarine_lamp.json) --- @@ -114,9 +114,9 @@ Da es sich bei dem Beispielblock um eine Lampe handelt, müssen wir auch dafür Du kannst die `luminance`-Methode verwenden, um die vom Block ausgestrahlte Lichtstärke einzustellen. Wir können eine statische Methode in der `PrismarineLampBlock`-Klasse erstellen, um die Lichtstärke auf der Grundlage der `activated`-Eigenschaft zurückzugeben, und sie als Methodenreferenz an die `luminance`-Methode übergeben: -@[code transcludeWith=:::5](@/reference/latest/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) +@[code transcludeWith=:::5](@/reference/1.21/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) -@[code transcludeWith=:::4](@/reference/latest/src/main/java/com/example/docs/block/ModBlocks.java) +@[code transcludeWith=:::4](@/reference/1.21/src/main/java/com/example/docs/block/ModBlocks.java) --- diff --git a/versions/1.21/translated/de_de/develop/blocks/first-block.md b/versions/1.21/translated/de_de/develop/blocks/first-block.md index 5a6419e7c..e5fe63059 100644 --- a/versions/1.21/translated/de_de/develop/blocks/first-block.md +++ b/versions/1.21/translated/de_de/develop/blocks/first-block.md @@ -19,7 +19,7 @@ Du solltest diese Methode in eine Klasse mit dem Namen `ModBlocks` (oder wie auc Mojang macht etwas sehr ähnliches mit Vanilleblöcken; Sie können sich die Klasse `Blocks` ansehen, um zu sehen, wie sie es machen. -@[code transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/block/ModBlocks.java) +@[code transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/block/ModBlocks.java) --- @@ -39,7 +39,7 @@ public class ModBlocks { } ``` -@[code transcludeWith=:::2](@/reference/latest/src/main/java/com/example/docs/block/ModBlocks.java) +@[code transcludeWith=:::2](@/reference/1.21/src/main/java/com/example/docs/block/ModBlocks.java) ## Erstellen und Registrieren deines Blocks {#creating-and-registering-your-block} @@ -53,7 +53,7 @@ Als Beispiel werden wir einen einfachen Block erstellen, der die Eigenschaften v Du kannst auch `AbstractBlock.Settings.copy(AbstractBlock block)` verwenden, um die Einstellungen eines bestehenden Blocks zu kopieren. In diesem Fall hätten wir auch `Blocks.DIRT` verwenden können, um die Einstellungen von Erde zu kopieren, aber für das Beispiel verwenden wir den Builder. ::: -@[code transcludeWith=:::2](@/reference/latest/src/main/java/com/example/docs/block/ModBlocks.java) +@[code transcludeWith=:::2](@/reference/1.21/src/main/java/com/example/docs/block/ModBlocks.java) Um das Blockitem automatisch zu erstellen, können wir dem Parameter `shouldRegisterItem` der Methode `register`, die wir im vorherigen Schritt erstellt haben, `true` übergeben. @@ -63,7 +63,7 @@ Da das `BlockItem` automatisch erstellt und registriert wird, musst du, um ihn z In diesem Beispiel wird eine benutzerdefinierte Itemgruppe verwendet, die auf der Seite [Benutzerdefinierte Itemgruppe](../items/custom-item-groups) erstellt wurde. -@[code transcludeWith=:::3](@/reference/latest/src/main/java/com/example/docs/block/ModBlocks.java) +@[code transcludeWith=:::3](@/reference/1.21/src/main/java/com/example/docs/block/ModBlocks.java) --- @@ -100,11 +100,11 @@ Damit die Textur im Spiel angezeigt wird, musst du einen Block und ein Itemmodel Das Itemmodell ist ziemlich einfach, es kann einfach das Blockmodell als Elternteil verwenden - da die meisten Blockmodelle Unterstützung für die Darstellung in einer grafischen Benutzeroberfläche haben: -@[code](@/reference/latest/src/main/resources/assets/fabric-docs-reference/models/item/condensed_dirt.json) +@[code](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/models/item/condensed_dirt.json) Das Blockmodell muss jedoch in unserem Fall dem Modell `block/cube_all` übergeordnet sein: -@[code](@/reference/latest/src/main/resources/assets/fabric-docs-reference/models/block/condensed_dirt.json) +@[code](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/models/block/condensed_dirt.json) Wenn du das Spiel lädst, wirst du feststellen, dass die Textur noch fehlt. Dies liegt daran, dass du eine Blockzustand-Definition hinzufügen musst. @@ -116,7 +116,7 @@ Für den Beispielblock, der keinen komplexen Blockzustand hat, ist nur ein Eintr Diese Datei sollte sich im Ordner `assets/mod_id/blockstates` befinden, und ihr Name sollte mit der Block-ID übereinstimmen, die bei der Registrierung des Blocks in der Klasse `ModBlocks` verwendet wurde. Wenn die Block-ID beispielsweise `condensed_dirt` lautet, sollte die Datei `condensed_dirt.json` heißen. -@[code](@/reference/latest/src/main/resources/assets/fabric-docs-reference/blockstates/condensed_dirt.json) +@[code](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/blockstates/condensed_dirt.json) Blockzustände sind sehr komplex, weshalb sie auf einer späteren Seite behandelt werden: [Blockzustände](./blockstates) @@ -132,7 +132,7 @@ Wenn man den Block im Survival-Modus abbaut, kann es sein, dass der Block nicht Für ein besseres Verständnis der Beutetabellen kannst du dir die Seite [Minecraft Wiki - Beutetabellen](https://de.minecraft.wiki/w/Beutetabellen) ansehen. ::: -@[code](@/reference/latest/src/main/resources/data/fabric-docs-reference/loot_tables/blocks/condensed_dirt.json) +@[code](@/reference/1.21/src/main/resources/data/fabric-docs-reference/loot_tables/blocks/condensed_dirt.json) Diese Beutetabelle enthält einen einzelnen Gegenstand, der fallen gelassen wird, wenn der Block abgebaut wird und wenn er durch eine Explosion gesprengt wird. @@ -151,7 +151,7 @@ Der Inhalt der Datei ist recht einfach - es handelt sich um eine Liste von Eleme In diesem Beispiel wird der Block "Condensed Dirt" zum Tag `shovel` hinzugefügt. -@[code](@/reference/latest/src/main/resources/data/minecraft/tags/mineable/shovel.json) +@[code](@/reference/1.21/src/main/resources/data/minecraft/tags/mineable/shovel.json) Wenn du möchtest, dass ein Tool zum Abbau des Blocks erforderlich ist, musst du die Blockeinstellungen um den Zusatz `.requiresTool()` erweitern und das entsprechende Mining-Tag hinzufügen. diff --git a/versions/1.21/translated/de_de/develop/codecs.md b/versions/1.21/translated/de_de/develop/codecs.md index 1085a79c5..2cdf7a753 100644 --- a/versions/1.21/translated/de_de/develop/codecs.md +++ b/versions/1.21/translated/de_de/develop/codecs.md @@ -316,11 +316,11 @@ Nehmen wir an, wir haben ein abstraktes `Bean`-Interface mit zwei implementieren Mit all dem können wir einen Registry Dispatch Codec für Bohnen erstellen: -@[code transcludeWith=:::](@/reference/latest/src/main/java/com/example/docs/codec/Bean.java) -@[code transcludeWith=:::](@/reference/latest/src/main/java/com/example/docs/codec/BeanType.java) -@[code transcludeWith=:::](@/reference/latest/src/main/java/com/example/docs/codec/StringyBean.java) -@[code transcludeWith=:::](@/reference/latest/src/main/java/com/example/docs/codec/CountingBean.java) -@[code transcludeWith=:::](@/reference/latest/src/main/java/com/example/docs/codec/BeanTypes.java) +@[code transcludeWith=:::](@/reference/1.21/src/main/java/com/example/docs/codec/Bean.java) +@[code transcludeWith=:::](@/reference/1.21/src/main/java/com/example/docs/codec/BeanType.java) +@[code transcludeWith=:::](@/reference/1.21/src/main/java/com/example/docs/codec/StringyBean.java) +@[code transcludeWith=:::](@/reference/1.21/src/main/java/com/example/docs/codec/CountingBean.java) +@[code transcludeWith=:::](@/reference/1.21/src/main/java/com/example/docs/codec/BeanTypes.java) ```java // Jetzt können wir einen Codec für Bohnen-Typen erstellen diff --git a/versions/1.21/translated/de_de/develop/commands/arguments.md b/versions/1.21/translated/de_de/develop/commands/arguments.md index af9079724..5d27a41a0 100644 --- a/versions/1.21/translated/de_de/develop/commands/arguments.md +++ b/versions/1.21/translated/de_de/develop/commands/arguments.md @@ -8,8 +8,8 @@ description: Lerne, wie man Befehle mit komplexen Parametern erstellt. Parameter werden in den meisten Befehlen verwendet. Manchmal sind sie optional, das heißt, wenn du diesen Parameter nicht angibst, wird der Befehl dennoch ausgeführt. Ein Knoten kann mehrere Parametertypen haben, aber es ist zu beachten, dass die Möglichkeit einer Mehrdeutigkeit besteht, die vermieden werden sollte. -@[code lang=java highlight={3} transcludeWith=:::command_with_arg](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code lang=java transcludeWith=:::execute_command_with_arg](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={3} transcludeWith=:::command_with_arg](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::execute_command_with_arg](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) In diesem Fall musst du nach dem Befehlstext `/command_with_arg` eine ganze Zahl eingeben. Wenn du zum Beispiel `/command_with_arg 3` ausführst, erhältst du eine Rückmeldungsnachricht: @@ -19,15 +19,15 @@ Wenn du `/command_with_arg` ohne Argumente eingibst, kann der Befehl nicht korre Dann fügen wir ein optionales zweites Argument hinzu: -@[code lang=java highlight={3,5} transcludeWith=:::command_with_two_args](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code lang=java transcludeWith=:::execute_command_with_two_args](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={3,5} transcludeWith=:::command_with_two_args](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::execute_command_with_two_args](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) Jetzt kannst du eine oder zwei ganze Zahlen eingeben. Wenn du eine ganze Zahl eingibst, wird ein Feedback-Text mit einem einzigen Wert ausgegeben. Wenn du zwei Ganzzahlen angibst, wird ein Feedback-Text mit zwei Werten ausgegeben. Du kannst es unnötig finden, ähnliche Ausführungen zweimal anzugeben. Daher können wir eine Methode erstellen, die in beiden Ausführungen verwendet wird. -@[code lang=java highlight={4,6} transcludeWith=:::command_with_common_exec](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code lang=java transcludeWith=:::execute_common](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={4,6} transcludeWith=:::command_with_common_exec](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::execute_common](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) ## Benutzerdefinierte Argumenttypen {#custom-argument-types} @@ -37,7 +37,7 @@ Du musst die Methode "parse" implementieren, die die Eingabezeichenfolge zu dem Du kannst zum Beispiel einen Argumenttyp erstellen, der eine `BlockPos` aus einer Zeichenkette mit dem folgenden Format parst: `{x, y, z}` -@[code lang=java highlight={3,5,6,7} transcludeWith=:::6](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={3,5,6,7} transcludeWith=:::6](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) ### Benutzerdefinierte Argumenttypen registrieren {#registering-custom-argument-types} @@ -47,14 +47,14 @@ Du musst den benutzerdefinierten Argumenttyp sowohl im Server als auch im Client Du kannst deinen benutzerdefinierten Argumenttyp in der Methode `onInitialize` deines [Mod-Initialisierers](./getting-started/project-structure#entrypoints) mit der Klasse `ArgumentTypeRegistry` registrieren: -@[code lang=java transcludeWith=:::register_custom_arg](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::register_custom_arg](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) ### Benutzerdefinierte Argumenttypen verwenden {#using-custom-argument-types} Wir können unseren benutzerdefinierten Argumenttyp in einem Befehl verwenden, indem wir eine Instanz davon an die Methode `.argument` im Builder des Befehls übergeben. -@[code lang=java highlight={3} transcludeWith=:::custom_arg_command](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code lang=java highlight={2} transcludeWith=:::execute_custom_arg_command](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={3} transcludeWith=:::custom_arg_command](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={2} transcludeWith=:::execute_custom_arg_command](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) Durch das Ausführen des Befehls, können wir testen, ob der Argumenttyp funktioniert oder nicht: diff --git a/versions/1.21/translated/de_de/develop/commands/basics.md b/versions/1.21/translated/de_de/develop/commands/basics.md index e6afb3552..62d2e6270 100644 --- a/versions/1.21/translated/de_de/develop/commands/basics.md +++ b/versions/1.21/translated/de_de/develop/commands/basics.md @@ -78,7 +78,7 @@ Der Callback hat drei Parameter: Im Mod-Initialisierer registrieren wir nur einen einfachen Befehl: -@[code lang=java transcludeWith=:::test_command](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::test_command](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) In der Methode `sendFeedback()` ist der erste Parameter der zu sendende Text, der ein `Supplier` ist, um zu vermeiden, dass Text-Objekte instanziert werden, wenn sie nicht benötigt werden. @@ -98,15 +98,15 @@ Von diesem Punkt an werden wir die Logik, die innerhalb des Lambdas an den `.exe Falls gewünscht, kannst du auch dafür sorgen, dass ein Befehl nur unter bestimmten Umständen registriert wird, zum Beispiel nur in der dedizierten Umgebung: -@[code lang=java highlight={2} transcludeWith=:::dedicated_command](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code lang=java transcludeWith=:::execute_dedicated_command](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={2} transcludeWith=:::dedicated_command](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::execute_dedicated_command](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) ### Befehlsanforderungen {#command-requirements} Angenommen, du hast einen Befehl, den nur Operatoren ausführen können sollen. An dieser Stelle kommt die Methode `requires()` ins Spiel. Die Methode `requires()` hat ein Argument eines `Predicate`, das eine `ServerCommandSource` liefert, mit der getestet werden kann, ob die `CommandSource` den Befehl ausführen kann. -@[code lang=java highlight={3} transcludeWith=:::required_command](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code lang=java transcludeWith=:::execute_required_command](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={3} transcludeWith=:::required_command](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::execute_required_command](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) Dieser Befehl wird nur ausgeführt, wenn die Quelle des Befehls mindestens ein Operator der Ebene 2 ist, einschließlich Befehlsblöcke. Andernfalls ist der Befehl nicht registriert. @@ -116,19 +116,19 @@ Dies hat den Nebeneffekt, dass dieser Befehl in der Tab-Vervollständigung für Um einen Unterbefehl hinzuzufügen, registriere den ersten buchstäblichen Knoten des Befehls ganz normal. Um einen Unterbefehl zu haben, musst du den nächsten buchstäblichen Knoten an den bestehenden Knoten anhängen. -@[code lang=java highlight={3} transcludeWith=:::sub_command_one](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code lang=java transcludeWith=:::execute_sub_command_one](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={3} transcludeWith=:::sub_command_one](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::execute_sub_command_one](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) Ähnlich wie die Argumente können auch die Unterbefehlsknoten auf optional gesetzt werden. Im folgenden Fall sind sowohl `/command_two` als auch `/command_two sub_command_two` gültig. -@[code lang=java highlight={2,8} transcludeWith=:::sub_command_two](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code lang=java transcludeWith=:::execute_command_sub_command_two](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={2,8} transcludeWith=:::sub_command_two](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::execute_command_sub_command_two](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) ## Client-Befehle {#client-commands} Die Fabric API verfügt über einen `ClientCommandManager` im Paket `net.fabricmc.fabric.api.client.command.v2`, der zur Registrierung clientseitiger Befehle verwendet werden kann. Der Code sollte nur im clientseitigen Code vorhanden sein. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/client/command/FabricDocsReferenceClientCommands.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/client/command/FabricDocsReferenceClientCommands.java) ## Befehlsumleitungen {#command-redirects} @@ -138,8 +138,8 @@ Befehlsumleitungen - auch bekannt als Aliase - sind eine Möglichkeit, die Funkt Brigadier [wird nur Befehlsknoten mit Argumenten umleiten](https://github.com/Mojang/brigadier/issues/46). Wenn du einen Befehlsknoten ohne Argumente umleiten willst, gib einen `.executes()` Builder mit einem Verweis auf die gleiche Logik wie im Beispiel beschrieben an. ::: -@[code lang=java transcludeWith=:::redirect_command](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code lang=java transcludeWith=:::execute_redirected_by](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::redirect_command](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::execute_redirected_by](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) ## FAQ {#faq} diff --git a/versions/1.21/translated/de_de/develop/commands/suggestions.md b/versions/1.21/translated/de_de/develop/commands/suggestions.md index d71a51b0f..b7b027ba2 100644 --- a/versions/1.21/translated/de_de/develop/commands/suggestions.md +++ b/versions/1.21/translated/de_de/develop/commands/suggestions.md @@ -17,8 +17,8 @@ Ein `SuggestionProvider` wird verwendet, um eine Liste von Vorschlägen zu erste Um einen Vorschlaganbieter zu verwenden, musst du die Methode `suggests` auf dem Argument Builder aufrufen. Diese Methode nimmt einen `SuggestionProvider` und gibt den geänderten Argument Builder mit dem angehängten Suggestion Provider zurück. -@[code java highlight={4} transcludeWith=:::command_with_suggestions](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code java transcludeWith=:::execute_command_with_suggestions](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code java highlight={4} transcludeWith=:::command_with_suggestions](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code java transcludeWith=:::execute_command_with_suggestions](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) ## Eingebaute Vorschlaganbieter {#built-in-suggestion-providers} @@ -37,12 +37,12 @@ Wenn ein eingebauter Anbieter deine Anforderungen nicht erfüllt, kannst du eine In diesem Beispiel erstellen wir einen Vorschlaganbieter, der alle Benutzernamen der Spieler auf dem Server vorschlägt. -@[code java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/command/PlayerSuggestionProvider.java) +@[code java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/command/PlayerSuggestionProvider.java) Um diesen Vorschlaganbieter zu verwenden, übergebe einfach eine Instanz davon an die Methode `.suggests` im Argument Builder. -@[code java highlight={4} transcludeWith=:::command_with_custom_suggestions](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code java transcludeWith=:::execute_command_with_custom_suggestions](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code java highlight={4} transcludeWith=:::command_with_custom_suggestions](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code java transcludeWith=:::execute_command_with_custom_suggestions](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) Natürlich können die Anbieter von Vorschlägen komplexer sein, da sie auch den Befehlskontext lesen können, um Vorschläge zu machen, die auf dem Zustand des Befehls basieren - zum Beispiel auf den Argumenten, die bereits angegeben wurden. diff --git a/versions/1.21/translated/de_de/develop/data-generation/advancements.md b/versions/1.21/translated/de_de/develop/data-generation/advancements.md index 3c155ac3a..4876ba9e9 100644 --- a/versions/1.21/translated/de_de/develop/data-generation/advancements.md +++ b/versions/1.21/translated/de_de/develop/data-generation/advancements.md @@ -20,11 +20,11 @@ Stelle sicher, dass du den Prozess der [Einrichtung der Datengenerierung](./setu Zuerst müssen wir unseren Provider erstellen. Erstelle eine Klasse, die `extends FabricAdvancementProvider` beinhaltet und fülle die Basismethoden aus: -@[code lang=java transcludeWith=:::datagen-advancements:provider-start](@/reference/latest/src/client/java/com/example/docs/datagen/FabricDocsReferenceAdvancementProvider.java) +@[code lang=java transcludeWith=:::datagen-advancements:provider-start](@/reference/1.21/src/client/java/com/example/docs/datagen/FabricDocsReferenceAdvancementProvider.java) Um die Einrichtung abzuschließen, füge den Provider zu deinem `DataGeneratorEntrypoint` in der `onInitializeDataGenerator` Methode hinzu. -@[code lang=java transclude={24-24}](@/reference/latest/src/client/java/com/example/docs/datagen/FabricDocsReferenceDataGenerator.java) +@[code lang=java transclude={24-24}](@/reference/1.21/src/client/java/com/example/docs/datagen/FabricDocsReferenceDataGenerator.java) ## Struktur eines Fortschritts {#advancement-structure} @@ -40,17 +40,17 @@ Ein Fortschritt setzt sich aus mehreren Komponenten zusammen. Neben den Vorausse Hier ist ein einfacher Fortschritt, um einen Erdblock zu erhalten: -@[code lang=java transcludeWith=:::datagen-advancements:simple-advancement](@/reference/latest/src/client/java/com/example/docs/datagen/FabricDocsReferenceAdvancementProvider.java) +@[code lang=java transcludeWith=:::datagen-advancements:simple-advancement](@/reference/1.21/src/client/java/com/example/docs/datagen/FabricDocsReferenceAdvancementProvider.java) :::details JSON Ausgabe -@[code lang=json](@/reference/latest/src/main/generated/data/fabric-docs-reference/advancement/fabric-docs-reference/get_dirt.json) +@[code lang=json](@/reference/1.21/src/main/generated/data/fabric-docs-reference/advancement/fabric-docs-reference/get_dirt.json) ::: ## Ein weiteres Beispiel {#one-more-example} Um den Dreh raus zu bekommen, fügen wir noch einen weiteren Fortschritt hinzu. Wir üben das Hinzufügen von Belohnungen, die Verwendung mehrerer Kriterien und die Zuweisung von Eltern: -@[code lang=java transcludeWith=:::datagen-advancements:second-advancement](@/reference/latest/src/client/java/com/example/docs/datagen/FabricDocsReferenceAdvancementProvider.java) +@[code lang=java transcludeWith=:::datagen-advancements:second-advancement](@/reference/1.21/src/client/java/com/example/docs/datagen/FabricDocsReferenceAdvancementProvider.java) Vergiss nicht, sie zu generieren! Nutze den untenstehenden Terminal-Befehl oder die Laufkonfiguration in IntelliJ. @@ -84,13 +84,13 @@ Ein **Prädikat** ist etwas, das einen Wert entgegennimmt und einen `boolean` zu Zuerst müssen wir eine neue Mechanik implementieren. Wir können dem Spieler jedes Mal, wenn er einen Block abbaut, mitteilen, welches Werkzeug er benutzt hat. -@[code lang=java transcludeWith=:::datagen-advancements:entrypoint](@/reference/latest/src/main/java/com/example/docs/advancement/FabricDocsReferenceDatagenAdvancement.java) +@[code lang=java transcludeWith=:::datagen-advancements:entrypoint](@/reference/1.21/src/main/java/com/example/docs/advancement/FabricDocsReferenceDatagenAdvancement.java) Beachte, dass dieser Code wirklich schlecht ist. Die `HashMap` wird nirgendwo dauerhaft gespeichert, daher wird sie bei jedem Neustart des Spiels zurückgesetzt. Es geht nur darum, `Criterion`s aufzuzeigen. Starte das Spiel und teste es! Als Nächstes erstellen wir unser benutzerdefiniertes Kriterium `UseToolCriterion`. Es wird seine eigene Klasse `Conditions` benötigen, also werden wir beide auf einmal erstellen: -@[code lang=java transcludeWith=:::datagen-advancements:criterion-base](@/reference/latest/src/main/java/com/example/docs/advancement/UseToolCriterion.java) +@[code lang=java transcludeWith=:::datagen-advancements:criterion-base](@/reference/1.21/src/main/java/com/example/docs/advancement/UseToolCriterion.java) Puh, das ist eine Menge! Schauen wir uns das mal genauer an. @@ -104,31 +104,31 @@ Um mehr über Codecs zu erfahren, sieh dir die [Codecs](../codecs) Seite an. Wir brauchen einen Weg, um zu überprüfen, ob Bedingungen erfüllt sind. Lasst uns eine Hilfsmethode zu `Conditions` hinzufügen: -@[code lang=java transcludeWith=:::datagen-advancements:conditions-test](@/reference/latest/src/main/java/com/example/docs/advancement/UseToolCriterion.java) +@[code lang=java transcludeWith=:::datagen-advancements:conditions-test](@/reference/1.21/src/main/java/com/example/docs/advancement/UseToolCriterion.java) Da wir nun ein Kriterium und seine Bedingungen haben, brauchen wir eine Möglichkeit, es auszulösen. Füge eine Auslösungsmethode zu `UseToolCriterion` hinzu: -@[code lang=java transcludeWith=:::datagen-advancements:criterion-trigger](@/reference/latest/src/main/java/com/example/docs/advancement/UseToolCriterion.java) +@[code lang=java transcludeWith=:::datagen-advancements:criterion-trigger](@/reference/1.21/src/main/java/com/example/docs/advancement/UseToolCriterion.java) Fast geschafft! Als nächstes benötigen wir eine Instanz unseres Kriteriums, mit der wir arbeiten können. Fügen wir sie in eine neue Klasse mit dem Namen `ModCriteria` ein. -@[code lang=java transcludeWith=:::datagen-advancements:mod-criteria](@/reference/latest/src/main/java/com/example/docs/advancement/ModCriteria.java) +@[code lang=java transcludeWith=:::datagen-advancements:mod-criteria](@/reference/1.21/src/main/java/com/example/docs/advancement/ModCriteria.java) Um sicherzustellen, dass unsere Kriterien zum richtigen Zeitpunkt initialisiert werden, füge eine leere `init`-Methode hinzu: -@[code lang=java transcludeWith=:::datagen-advancements:mod-criteria-init](@/reference/latest/src/main/java/com/example/docs/advancement/ModCriteria.java) +@[code lang=java transcludeWith=:::datagen-advancements:mod-criteria-init](@/reference/1.21/src/main/java/com/example/docs/advancement/ModCriteria.java) Und rufe es in deinem Mod-Initialisierer auf: -@[code lang=java transcludeWith=:::datagen-advancements:call-init](@/reference/latest/src/main/java/com/example/docs/advancement/FabricDocsReferenceDatagenAdvancement.java) +@[code lang=java transcludeWith=:::datagen-advancements:call-init](@/reference/1.21/src/main/java/com/example/docs/advancement/FabricDocsReferenceDatagenAdvancement.java) Schließlich müssen wir unsere Kriterien auslösen. Füge dies zu der Stelle hinzu, an der wir in der Hauptmodklasse eine Nachricht an den Spieler geschickt haben. -@[code lang=java transcludeWith=:::datagen-advancements:trigger-criterion](@/reference/latest/src/main/java/com/example/docs/advancement/FabricDocsReferenceDatagenAdvancement.java) +@[code lang=java transcludeWith=:::datagen-advancements:trigger-criterion](@/reference/1.21/src/main/java/com/example/docs/advancement/FabricDocsReferenceDatagenAdvancement.java) Dein neues Kriterium ist jetzt einsatzbereit! Lasst es uns zu unserem provider hinzufügen: -@[code lang=java transcludeWith=:::datagen-advancements:custom-criteria-advancement](@/reference/latest/src/client/java/com/example/docs/datagen/FabricDocsReferenceAdvancementProvider.java) +@[code lang=java transcludeWith=:::datagen-advancements:custom-criteria-advancement](@/reference/1.21/src/client/java/com/example/docs/datagen/FabricDocsReferenceAdvancementProvider.java) Führe den Datengenerator Task erneut aus und du hast einen neuen Fortschritt bekommen, mit dem du spielen kannst! @@ -138,30 +138,30 @@ Das ist alles schön und gut, aber was ist, wenn wir einen Fortschritt nur dann Lass uns von unten nach oben arbeiten. Wir müssen prüfen, ob die Anforderungen erfüllt sind, also bearbeiten wir unsere Methode `Condtions#requirementsMet`: -@[code lang=java transcludeWith=:::datagen-advancements:new-requirements-met](@/reference/latest/src/main/java/com/example/docs/advancement/ParameterizedUseToolCriterion.java) +@[code lang=java transcludeWith=:::datagen-advancements:new-requirements-met](@/reference/1.21/src/main/java/com/example/docs/advancement/ParameterizedUseToolCriterion.java) `requiredTimes` existiert nicht, also mache es zu einem Parameter von `Conditions`: -@[code lang=java transcludeWith=:::datagen-advancements:new-parameter](@/reference/latest/src/main/java/com/example/docs/advancement/ParameterizedUseToolCriterion.java) +@[code lang=java transcludeWith=:::datagen-advancements:new-parameter](@/reference/1.21/src/main/java/com/example/docs/advancement/ParameterizedUseToolCriterion.java) Jetzt ist unser Codec fehlerhaft. Lass uns einen neuen Codec für die neuen Änderungen schreiben: -@[code lang=java transcludeWith=:::datagen-advancements:new-codec](@/reference/latest/src/main/java/com/example/docs/advancement/ParameterizedUseToolCriterion.java) +@[code lang=java transcludeWith=:::datagen-advancements:new-codec](@/reference/1.21/src/main/java/com/example/docs/advancement/ParameterizedUseToolCriterion.java) Nun müssen wir unsere `trigger`-Methode korrigieren: -@[code lang=java transcludeWith=:::datagen-advancements:new-trigger](@/reference/latest/src/main/java/com/example/docs/advancement/ParameterizedUseToolCriterion.java) +@[code lang=java transcludeWith=:::datagen-advancements:new-trigger](@/reference/1.21/src/main/java/com/example/docs/advancement/ParameterizedUseToolCriterion.java) Wenn du ein neues Kriterium erstellt hast, müssen wir es zu `ModCriteria` hinzufügen -@[code lang=java transcludeWith=:::datagen-advancements:new-mod-criteria](@/reference/latest/src/main/java/com/example/docs/advancement/ModCriteria.java) +@[code lang=java transcludeWith=:::datagen-advancements:new-mod-criteria](@/reference/1.21/src/main/java/com/example/docs/advancement/ModCriteria.java) Und rufe sie in unserer Hauptklasse auf, genau dort, wo die alte Klasse ist: -@[code lang=java transcludeWith=:::datagen-advancements:trigger-new-criterion](@/reference/latest/src/main/java/com/example/docs/advancement/FabricDocsReferenceDatagenAdvancement.java) +@[code lang=java transcludeWith=:::datagen-advancements:trigger-new-criterion](@/reference/1.21/src/main/java/com/example/docs/advancement/FabricDocsReferenceDatagenAdvancement.java) Füge den Fortschritt zu deinem Provider hinzu: -@[code lang=java transcludeWith=:::datagen-advancements:new-custom-criteria-advancement](@/reference/latest/src/client/java/com/example/docs/datagen/FabricDocsReferenceAdvancementProvider.java) +@[code lang=java transcludeWith=:::datagen-advancements:new-custom-criteria-advancement](@/reference/1.21/src/client/java/com/example/docs/datagen/FabricDocsReferenceAdvancementProvider.java) Führe den Datengenerator erneut aus, und du bist endlich fertig! diff --git a/versions/1.21/translated/de_de/develop/data-generation/loot-tables.md b/versions/1.21/translated/de_de/develop/data-generation/loot-tables.md index 09851a9c4..08ca976f2 100644 --- a/versions/1.21/translated/de_de/develop/data-generation/loot-tables.md +++ b/versions/1.21/translated/de_de/develop/data-generation/loot-tables.md @@ -20,7 +20,7 @@ Stelle sicher, dass du den Prozess der [Einrichtung der Datengenerierung](./setu Du wirst unterschiedliche Provider (Klassen) für Blöcke, Truhen und Entitäten benötigen. Vergesse nicht, alle diese zu deinem Pack in deinem `DataGeneratorEntrypoint` innerhalb der `onInitializeDataGenerator` Methode hinzuzufügen. -@[code lang=java transclude={32-33}](@/reference/latest/src/client/java/com/example/docs/datagen/FabricDocsReferenceDataGenerator.java) +@[code lang=java transclude={32-33}](@/reference/1.21/src/client/java/com/example/docs/datagen/FabricDocsReferenceDataGenerator.java) ## Beutetabellen erklärt {#loot-tables-explained} @@ -32,7 +32,7 @@ Beutepools haben **Einträge**, **Bedingungen**, Funktionen, **Rollen** und **Bo Damit Blöcke Items - auch sich selbst - fallen lassen können, müssen wir eine Beutetabelle erstellen. Erstelle eine Klasse, die `extends FabricBlockLootTableProvider`: -@[code lang=java transcludeWith=:::datagen-loot-tables:block-provider](@/reference/latest/src/client/java/com/example/docs/datagen/FabricDocsReferenceBlockLootTableProvider.java) +@[code lang=java transcludeWith=:::datagen-loot-tables:block-provider](@/reference/1.21/src/client/java/com/example/docs/datagen/FabricDocsReferenceBlockLootTableProvider.java) Füge diesen Provider unbedingt zu deinem Pack hinzu! @@ -40,18 +40,18 @@ Es gibt eine Reihe von Hilfsmethoden, die dir bei der Erstellung deiner Beutetab Lasst uns ein paar Drops in der Methode `generate` hinzufügen: -@[code lang=java transcludeWith=:::datagen-loot-tables:block-drops](@/reference/latest/src/client/java/com/example/docs/datagen/FabricDocsReferenceBlockLootTableProvider.java) +@[code lang=java transcludeWith=:::datagen-loot-tables:block-drops](@/reference/1.21/src/client/java/com/example/docs/datagen/FabricDocsReferenceBlockLootTableProvider.java) ## Truhen {#chests} Beute von Truhen sind ein wenig komplizierter als Beute von Blöcken. Erstelle eine Klasse, die `extends SimpleFabricLootTableProvider` ähnlich zu dem Beispiel unterhalb \*\* und füge sie zu deinem Pack hinzu\*\*. -@[code lang=java transcludeWith=:::datagen-loot-tables:chest-provider](@/reference/latest/src/client/java/com/example/docs/datagen/FabricDocsReferenceChestLootTableProvider.java) +@[code lang=java transcludeWith=:::datagen-loot-tables:chest-provider](@/reference/1.21/src/client/java/com/example/docs/datagen/FabricDocsReferenceChestLootTableProvider.java) Wir werden einen `RegistryKey` für unsere Beutetabelle benötigen. Lasst uns dies in eine neue Klasse mit dem Namen `ModLootTables` packen. Stelle sicher, dass dies dein `main` Quellenverzeichnis ist, wenn du geteilte Quellen nutzt. -@[code lang=java transcludeWith=:::datagen-loot-tables:mod-loot-tables](@/reference/latest/src/main/java/com/example/docs/ModLootTables.java) +@[code lang=java transcludeWith=:::datagen-loot-tables:mod-loot-tables](@/reference/1.21/src/main/java/com/example/docs/ModLootTables.java) Dann können wir eine Beutetabelle innerhalb der `generate` Methode unseres Providers generieren. -@[code lang=java transcludeWith=:::datagen-loot-tables:chest-loot](@/reference/latest/src/client/java/com/example/docs/datagen/FabricDocsReferenceChestLootTableProvider.java) +@[code lang=java transcludeWith=:::datagen-loot-tables:chest-loot](@/reference/1.21/src/client/java/com/example/docs/datagen/FabricDocsReferenceChestLootTableProvider.java) diff --git a/versions/1.21/translated/de_de/develop/data-generation/recipes.md b/versions/1.21/translated/de_de/develop/data-generation/recipes.md index c66a2ab1f..5d63fdaed 100644 --- a/versions/1.21/translated/de_de/develop/data-generation/recipes.md +++ b/versions/1.21/translated/de_de/develop/data-generation/recipes.md @@ -19,23 +19,23 @@ Stelle sicher, dass du den Prozess der [Einrichtung der Datengenerierung](./setu Zuerst benötigen wir unseren Provider. Erstelle eine Klasse, die `extends FabricRecipeProvider`. Die ganze Generierung der Rezepte wird innerhalb der `generate` Methode unseres Provider geschehen. -@[code lang=java transcludeWith=:::datagen-recipes:provider](@/reference/latest/src/client/java/com/example/docs/datagen/FabricDocsReferenceRecipeProvider.java) +@[code lang=java transcludeWith=:::datagen-recipes:provider](@/reference/1.21/src/client/java/com/example/docs/datagen/FabricDocsReferenceRecipeProvider.java) Um die Einrichtung abzuschließen, füge den Provider zu deinem `DataGeneratorEntrypoint` in der `onInitializeDataGenerator` Methode hinzu. -@[code lang=java transclude={30-30}](@/reference/latest/src/client/java/com/example/docs/datagen/FabricDocsReferenceDataGenerator.java) +@[code lang=java transclude={30-30}](@/reference/1.21/src/client/java/com/example/docs/datagen/FabricDocsReferenceDataGenerator.java) ## Formlose Rezepte {#shapeless-recipes} Formlose Rezepte sind relativ unkompliziert. Füge sie einfach zu der `generate` Methode in deinem Provider hinzu: -@[code lang=java transcludeWith=:::datagen-recipes:shapeless](@/reference/latest/src/client/java/com/example/docs/datagen/FabricDocsReferenceRecipeProvider.java) +@[code lang=java transcludeWith=:::datagen-recipes:shapeless](@/reference/1.21/src/client/java/com/example/docs/datagen/FabricDocsReferenceRecipeProvider.java) ## Geformte Rezepte {#shaped-recipes} Für ein geformtes Rezept, definierst du die Form unter Verwendung eines `String`, dann definiere, was jedes `char` in dem `String` repräsentiert. -@[code lang=java transcludeWith=:::datagen-recipes:shaped](@/reference/latest/src/client/java/com/example/docs/datagen/FabricDocsReferenceRecipeProvider.java) +@[code lang=java transcludeWith=:::datagen-recipes:shaped](@/reference/1.21/src/client/java/com/example/docs/datagen/FabricDocsReferenceRecipeProvider.java) :::tip Es gibt viele Hilfsmethoden für die Erstellung von allgemeinen Rezepten. Sieh dir an, was der `RecipeProvider` anbietet! Nutze `Alt + 7` in IntelliJ, um die Struktur, einschließlich einer Liste an Methoden, einer Klasse zu öffnen. @@ -45,6 +45,6 @@ Es gibt viele Hilfsmethoden für die Erstellung von allgemeinen Rezepten. Sieh d Andere Rezepte funktionieren ähnlich, aber erfordern einige zusätzliche Parameter. Zum Beispiel, Schmelzrezepte müssen wissen, wie viel Erfahrung zu vergeben ist. -@[code lang=java transcludeWith=:::datagen-recipes:other](@/reference/latest/src/client/java/com/example/docs/datagen/FabricDocsReferenceRecipeProvider.java) +@[code lang=java transcludeWith=:::datagen-recipes:other](@/reference/1.21/src/client/java/com/example/docs/datagen/FabricDocsReferenceRecipeProvider.java) ## Benutzerdefinierte Rezepttypen {#custom-recipe-types} diff --git a/versions/1.21/translated/de_de/develop/data-generation/setup.md b/versions/1.21/translated/de_de/develop/data-generation/setup.md index a53a1be42..282bb51aa 100644 --- a/versions/1.21/translated/de_de/develop/data-generation/setup.md +++ b/versions/1.21/translated/de_de/develop/data-generation/setup.md @@ -42,7 +42,7 @@ Zuerst müssen wir die Datengenerierung in der `build.Gradle`-Datei aktivieren. Als nächstes, benötigen wir eine Klasse für den Einstiegspunkt. Dies ist dort, wo unsere Datengenerierung startet. Platziere diese irgendwo in dem `client` Packet - dieses Beispiel platziert diese in `src/client/java/com/example/docs/datagen/FabricDocsReferenceDataGenerator.java`. -@[code lang=java transcludeWith=:::datagen-setup:generator](@/reference/latest/src/client/java/com/example/docs/datagen/FabricDocsReferenceDataGenerator.java) +@[code lang=java transcludeWith=:::datagen-setup:generator](@/reference/1.21/src/client/java/com/example/docs/datagen/FabricDocsReferenceDataGenerator.java) Schließlich müsen wir Fabric in der `fabric.mod.json` über den Einstiegspunkt informieren: @@ -71,7 +71,7 @@ Schließe IntelliJ und öffne es erneut, um eine Laufkonfiguration für die Date Innerhalb der Methode `onInitializeDataGenerator` deines Einstiegspunktes für die Datengenerierung m+ssen wir ein `Pack` erstellen. Später fügst du **Provider** hinzu, die generierte Daten in dieses `Pack` einfügen. -@[code lang=java transcludeWith=:::datagen-setup:pack](@/reference/latest/src/client/java/com/example/docs/datagen/FabricDocsReferenceDataGenerator.java) +@[code lang=java transcludeWith=:::datagen-setup:pack](@/reference/1.21/src/client/java/com/example/docs/datagen/FabricDocsReferenceDataGenerator.java) ## Ausführen des Datengenerators {#running-data-generation} diff --git a/versions/1.21/translated/de_de/develop/data-generation/tags.md b/versions/1.21/translated/de_de/develop/data-generation/tags.md index 2f4a89260..412167108 100644 --- a/versions/1.21/translated/de_de/develop/data-generation/tags.md +++ b/versions/1.21/translated/de_de/develop/data-generation/tags.md @@ -19,7 +19,7 @@ Stelle sicher, dass du den Prozess der [Einrichtung der Datengenerierung](./setu Erstelle zunächst eine eigene Klasse, die `extends FabricTagProvider`, wobei `T` der Typ der Sache ist, für die du ein Tag bereitstellen möchtest. Dies ist dein **Provider**. Hier werden wir zeigen, wie man `Item` Tags erstellt, aber das gleiche Prinzip lässt sich auf alle anderen Sachen anwenden. Lass deiner IDE den erforderlichen Code ausfüllen und ersetze dann den Konstruktorparameter `registryKey` durch den `RegistryKey` für deinen Typ: -@[code lang=java transcludeWith=:::datagen-tags:provider](@/reference/latest/src/client/java/com/example/docs/datagen/FabricDocsReferenceItemTagProvider.java) +@[code lang=java transcludeWith=:::datagen-tags:provider](@/reference/1.21/src/client/java/com/example/docs/datagen/FabricDocsReferenceItemTagProvider.java) :::info HINWEIS Du wirst für jeden Tag-Typ einen anderen Provider benötigen (z. B. einen `FabricTagProvider>` und einen `FabricTagProvider`). @@ -27,13 +27,13 @@ Du wirst für jeden Tag-Typ einen anderen Provider benötigen (z. B. einen `Fabr Um die Einrichtung abzuschließen, füge den Provider zu deinem `DataGeneratorEntrypoint` in der `onInitializeDataGenerator` Methode hinzu. -@[code lang=java transclude={28-28}](@/reference/latest/src/client/java/com/example/docs/datagen/FabricDocsReferenceDataGenerator.java) +@[code lang=java transclude={28-28}](@/reference/1.21/src/client/java/com/example/docs/datagen/FabricDocsReferenceDataGenerator.java) ## Erstellen eines Tags {#creating-a-tag} Jetzt, nachdem du den Provider erstellt hast, lasst uns ein Tag zu diesem hinzufpgen. Zuerst, erstelle ein `TagKey`: -@[code lang=java transcludeWith=:::datagen-tags:tag-key](@/reference/latest/src/client/java/com/example/docs/datagen/FabricDocsReferenceItemTagProvider.java) +@[code lang=java transcludeWith=:::datagen-tags:tag-key](@/reference/1.21/src/client/java/com/example/docs/datagen/FabricDocsReferenceItemTagProvider.java) Als nächstes, rufe `getOrCreateTagBuilder` innerhalb deiner Provider `configure` Methode auf. Von dort aus kannst du einzelne Items oder andere Tags hinzufügen oder diese Tags bereits vorhandene Tags ersetzen lassen. @@ -41,4 +41,4 @@ Wenn du ein Tag hinzufügen willst, verwende `addOptionalTag`, da der Inhalt des Um zwangsweise ein Tag hinzuzufügen und das defekte Format zu ignorieren, verwende `forceAddTag`. -@[code lang=java transcludeWith=:::datagen-tags:build](@/reference/latest/src/client/java/com/example/docs/datagen/FabricDocsReferenceItemTagProvider.java) +@[code lang=java transcludeWith=:::datagen-tags:build](@/reference/1.21/src/client/java/com/example/docs/datagen/FabricDocsReferenceItemTagProvider.java) diff --git a/versions/1.21/translated/de_de/develop/data-generation/translations.md b/versions/1.21/translated/de_de/develop/data-generation/translations.md index abfcafe22..7f49442a5 100644 --- a/versions/1.21/translated/de_de/develop/data-generation/translations.md +++ b/versions/1.21/translated/de_de/develop/data-generation/translations.md @@ -22,7 +22,7 @@ Stelle sicher, dass du den Prozess der [Einrichtung der Datengenerierung](./setu Zuerst werden wir unseren **Provider** vorbereiten. Denke daran, dass es die Provider sind, die die Daten für uns generieren. Erstelle eine Klasse, die `extends FabricLanguageProvider` beinhaltet und fülle die Basismethoden aus: -@[code lang=java transcludeWith=:::datagen-translations:provider](@/reference/latest/src/client/java/com/example/docs/datagen/FabricDocsReferenceEnglishLangProvider.java) +@[code lang=java transcludeWith=:::datagen-translations:provider](@/reference/1.21/src/client/java/com/example/docs/datagen/FabricDocsReferenceEnglishLangProvider.java) :::info HINWEIS Du wirst für jede Sprache, die du generieren möchtest, einen eigenen Provider benötigen (z. B. einen `ExampleEnglishLangProvider` und einen `ExamplePirateLangProvider`). @@ -30,13 +30,13 @@ Du wirst für jede Sprache, die du generieren möchtest, einen eigenen Provider Um die Einrichtung abzuschließen, füge den Provider zu deinem `DataGeneratorEntrypoint` in der `onInitializeDataGenerator` Methode hinzu. -@[code lang=java transclude={26-26}](@/reference/latest/src/client/java/com/example/docs/datagen/FabricDocsReferenceDataGenerator.java) +@[code lang=java transclude={26-26}](@/reference/1.21/src/client/java/com/example/docs/datagen/FabricDocsReferenceDataGenerator.java) ## Erstellen von Übersetzungen {#creating-translations} Neben der Erstellung von Rohübersetzungen, Übersetzungen aus einem `Identifier` und dem Kopieren aus einer bereits existierenden Datei (durch die Übergabe eines `Path`), gibt es Hilfsmethoden für die Übersetzung von Items, Blöcken, Tags, Statistiken, Entitäten, Statuseffekten, Itemgruppen, Entitätsattributen und Verzauberungen. Rufe einfach `add` beim `translationBuilder` auf und gebe an, was du übersetzen willst und in zu was es übersetzt werden soll: -@[code lang=java transcludeWith=:::datagen-translations:build](@/reference/latest/src/client/java/com/example/docs/datagen/FabricDocsReferenceEnglishLangProvider.java) +@[code lang=java transcludeWith=:::datagen-translations:build](@/reference/1.21/src/client/java/com/example/docs/datagen/FabricDocsReferenceEnglishLangProvider.java) ## Nutzen einer Übersetzung {#using-translations} diff --git a/versions/1.21/translated/de_de/develop/entities/damage-types.md b/versions/1.21/translated/de_de/develop/entities/damage-types.md index be7b9e3cc..1d2dac068 100644 --- a/versions/1.21/translated/de_de/develop/entities/damage-types.md +++ b/versions/1.21/translated/de_de/develop/entities/damage-types.md @@ -21,7 +21,7 @@ resources/data/fabric-docs-reference/damage_type/tater.json Sie hat folgende Struktur: -@[code lang=json](@/reference/latest/src/main/generated/data/fabric-docs-reference/damage_type/tater.json) +@[code lang=json](@/reference/1.21/src/main/generated/data/fabric-docs-reference/damage_type/tater.json) Diese benutzerdefinierte Schadensart verursacht jedes Mal, wenn ein Spieler Schaden erleidet, einen Anstieg von 0,1 an [Erschöpfung](https://de.minecraft.wiki/w/Hunger#Ersch%C3%B6pfung), wenn der Schaden von einer lebenden Nicht-Spieler-Quelle (z.B. Weiterhin skaliert sich die Höhe des verursachten Schadens mit dem Schwierigkeitsgrad der Welt. @@ -37,7 +37,7 @@ Wenn wir über den Code auf unsere benutzerdefinierte Schadensart zugreifen müs Der `RegistryKey` kann wie folgt ermittelt werden: -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/damage/FabricDocsReferenceDamageTypes.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/damage/FabricDocsReferenceDamageTypes.java) ### Schadensarten verwenden {#using-damage-types} @@ -47,15 +47,15 @@ Du kannst `onSteppedOn` überschreiben, um diesen Schaden zu zuzufügen. Wir beginnen mit der Erstellung einer `DamageSource` unserer benutzerdefinierten Schadensart. -@[code lang=java transclude={21-24}](@/reference/latest/src/main/java/com/example/docs/damage/TaterBlock.java) +@[code lang=java transclude={21-24}](@/reference/1.21/src/main/java/com/example/docs/damage/TaterBlock.java) Dann rufen wir `entity.damage()` mit unserer `DamageSource` und einem Betrag auf. -@[code lang=java transclude={25-25}](@/reference/latest/src/main/java/com/example/docs/damage/TaterBlock.java) +@[code lang=java transclude={25-25}](@/reference/1.21/src/main/java/com/example/docs/damage/TaterBlock.java) Die vollständige Implementierung des Blocks: -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/damage/TaterBlock.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/damage/TaterBlock.java) Wenn nun eine lebende Entität auf unseren benutzerdefinierten Block tritt, erleidet sie mit unserer benutzerdefinierten Schadensart 5 Schaden (2,5 Herzen). @@ -63,7 +63,7 @@ Wenn nun eine lebende Entität auf unseren benutzerdefinierten Block tritt, erle Du kannst eine Todesnachricht für die Schadensart im Format `death.attack.` in der Datei `en_us.json` unseres Mods definieren. -@[code lang=json transclude={4-4}](@/reference/latest/src/main/resources/assets/fabric-docs-reference/lang/en_us.json) +@[code lang=json transclude={4-4}](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/lang/en_us.json) Beim Tod durch unsere Schadensart wirst du die folgende Todesnachricht sehen: @@ -91,6 +91,6 @@ data/minecraft/tags/damage_type/bypasses_armor.json Mit folgendem Inhalt: -@[code lang=json](@/reference/latest/src/main/generated/data/minecraft/tags/damage_type/bypasses_armor.json) +@[code lang=json](@/reference/1.21/src/main/generated/data/minecraft/tags/damage_type/bypasses_armor.json) Stelle sicher, dass dein Tag das bestehende Tag nicht ersetzt, indem du den Schlüssel `replace` auf `false` setzt. diff --git a/versions/1.21/translated/de_de/develop/entities/effects.md b/versions/1.21/translated/de_de/develop/entities/effects.md index dde75a0d3..292376a8f 100644 --- a/versions/1.21/translated/de_de/develop/entities/effects.md +++ b/versions/1.21/translated/de_de/develop/entities/effects.md @@ -27,13 +27,13 @@ In diesem Tutorial fügen wir einen neuen benutzerdefinierten Effekt namens _Tat Lasst uns eine benutzerdefinierte Effektklasse erstellen, indem wir `StatusEffect` erweitern, die die Basisklasse für alle Effekte ist. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/effect/TaterEffect.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/effect/TaterEffect.java) ### Deinen benutzerdefinierten Effekt registrieren {#registering-your-custom-effect} Ähnlich wie bei der Registrierung von Blöcken und Items verwenden wir `Registry.register`, um unseren benutzerdefinierten Effekt in der `STATUS_EFFECT`-Registry zu registrieren. Dies kann in unserem Initialisierer geschehen. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/effect/FabricDocsReferenceEffects.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/effect/FabricDocsReferenceEffects.java) ### Texturen {#texture} @@ -71,7 +71,7 @@ effect give @p fabric-docs-reference:tater Um einen Effekt intern anzuwenden, sollte man die Methode `LivingEntity#addStatusEffect` verwenden, die eine eine `StatusEffectInstance` entgegennimmt und einen boolean zurückgibt, der angibt, ob der Effekt erfolgreich angewendet wurde. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/ReferenceMethods.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/ReferenceMethods.java) | Argument | Typ | Beschreibung | | ----------- | ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | diff --git a/versions/1.21/translated/de_de/develop/events.md b/versions/1.21/translated/de_de/develop/events.md index 39adaa3e8..9a4940f4f 100644 --- a/versions/1.21/translated/de_de/develop/events.md +++ b/versions/1.21/translated/de_de/develop/events.md @@ -41,7 +41,7 @@ Alle Event-Callback-Interfaces, die von der Fabric API bereitgestellt werden, si Dieses Beispiel registriert einen `AttackBlockCallback`, um dem Spieler Schaden zuzufügen, wenn er Blöcke trifft, die keinen Gegenstand fallen lassen, wenn sie von Hand abgebaut werden. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/event/FabricDocsReferenceEvents.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/event/FabricDocsReferenceEvents.java) ### Items zu existierenden Beutetabellen hinzufügen {#adding-items-to-existing-loot-tables} @@ -55,7 +55,7 @@ Wir werden die Beutetabelle für Kohleerz um Eier erweitern. Die Fabric API hat ein Event, das ausgelöst wird, wenn Beutetabellen geladen werden, `LootTableEvents.MODIFY`. Du kannst hierfür einen Callback in deinem [Mod Initialisierer](./getting-started/project-structure#entrypoints) registrieren. Überprüfen wir auch, ob die aktuelle Beutetabelle die Beutetabelle für Kohleerz ist. -@[code lang=java transclude={38-40}](@/reference/latest/src/main/java/com/example/docs/event/FabricDocsReferenceEvents.java) +@[code lang=java transclude={38-40}](@/reference/1.21/src/main/java/com/example/docs/event/FabricDocsReferenceEvents.java) #### Hinzufügen von Items zur Beutetabelle {#adding-items-to-the-loot-table} @@ -65,7 +65,7 @@ Wir können einen Pool mit `LootPool#builder` erstellen, und ihn zur Beutetabell Unser Pool hat auch keine Items, also erstellen wir einen Item-Eintrag mit `ItemEntry#builder` und fügen ihn dem Pool hinzu. -@[code highlight={6-7} transcludeWith=:::2](@/reference/latest/src/main/java/com/example/docs/event/FabricDocsReferenceEvents.java) +@[code highlight={6-7} transcludeWith=:::2](@/reference/1.21/src/main/java/com/example/docs/event/FabricDocsReferenceEvents.java) ## Benutzerdefinierte Events {#custom-events} @@ -89,34 +89,34 @@ Die Verwendung von `ActionResult` als Rückgabewert ist ein konventioneller Weg, Du musst ein Interface erstellen, das eine `Event`-Instanz und eine Methode zur Implementierung der Antwort hat. Ein Grundaufbau für unseren Schafschur-Callback ist: -@[code lang=java transcludeWith=:::](@/reference/latest/src/main/java/com/example/docs/event/SheepShearCallback.java) +@[code lang=java transcludeWith=:::](@/reference/1.21/src/main/java/com/example/docs/event/SheepShearCallback.java) Schauen wir uns das genauer an. Wenn der Invoker aufgerufen wird, wird über alle Listener iteriert: -@[code lang=java transclude={21-22}](@/reference/latest/src/main/java/com/example/docs/event/SheepShearCallback.java) +@[code lang=java transclude={21-22}](@/reference/1.21/src/main/java/com/example/docs/event/SheepShearCallback.java) Dann rufen wir unsere Methode (in diesem Fall `interact`) auf dem Listener auf, um seine Antwort zu erhalten: -@[code lang=java transclude={33-33}](@/reference/latest/src/main/java/com/example/docs/event/SheepShearCallback.java) +@[code lang=java transclude={33-33}](@/reference/1.21/src/main/java/com/example/docs/event/SheepShearCallback.java) Wenn der Listener sagt, dass wir abbrechen (`ActionResult.FAIL`) oder vollständig beenden (`ActionResult.SUCCESS`) müssen, gibt der Callback das Ergebnis zurück und beendet die Schleife. `ActionResult.PASS` geht zum nächsten Listener über und sollte in den meisten Fällen zum Erfolg führen, wenn keine weiteren Listener registriert sind: -@[code lang=java transclude={25-30}](@/reference/latest/src/main/java/com/example/docs/event/SheepShearCallback.java) +@[code lang=java transclude={25-30}](@/reference/1.21/src/main/java/com/example/docs/event/SheepShearCallback.java) Wir können Javadoc-Kommentare an die oberste Stelle der Callback-Klassen setzen, um zu dokumentieren, was jedes `ActionResult` macht. In unserem Fall könnte das wie folgt sein: -@[code lang=java transclude={9-16}](@/reference/latest/src/main/java/com/example/docs/event/SheepShearCallback.java) +@[code lang=java transclude={9-16}](@/reference/1.21/src/main/java/com/example/docs/event/SheepShearCallback.java) ### Auslösen des Events von einem Mixin {#triggering-the-event-from-a-mixin} Jetzt haben wir das Grundgerüst für ein Event, aber wir müssen es auslösen. Da wir das Ereignis auslösen wollen, wenn ein Spieler versucht, ein Schaf zu scheren, rufen wir das Ereignis `invoker` in `SheepEntity#interactMob` auf, wenn `sheared()` aufgerufen wird (d.h. -@[code lang=java transcludeWith=:::](@/reference/latest/src/main/java/com/example/docs/mixin/event/SheepEntityMixin.java) +@[code lang=java transcludeWith=:::](@/reference/1.21/src/main/java/com/example/docs/mixin/event/SheepEntityMixin.java) ### Erstellen einer Testimplementierung {#creating-a-test-implementation} Jetzt müssen wir unser Event testen. Du kannst einen Listener in deiner Initialisierungsmethode (oder in einem anderen Bereich, wenn du das bevorzugst) registrieren und dort benutzerdefinierte Logik hinzufügen. Hier ist ein Beispiel, bei dem dem ein Diamant anstelle von Wolle auf die Füße des Schafs fällt: -@[code lang=java transcludeWith=:::3](@/reference/latest/src/main/java/com/example/docs/event/FabricDocsReferenceEvents.java) +@[code lang=java transcludeWith=:::3](@/reference/1.21/src/main/java/com/example/docs/event/FabricDocsReferenceEvents.java) Wenn du im Spiel ein Schaf scherst, sollte anstelle von Wolle ein Diamant fallen. diff --git a/versions/1.21/translated/de_de/develop/getting-started/project-structure.md b/versions/1.21/translated/de_de/develop/getting-started/project-structure.md index 4ca46e2db..0aed813a6 100644 --- a/versions/1.21/translated/de_de/develop/getting-started/project-structure.md +++ b/versions/1.21/translated/de_de/develop/getting-started/project-structure.md @@ -25,7 +25,7 @@ Die wichtigsten Felder in der Datei `fabric.mod.json` sind: Nachfolgend siehst du eine Beispieldatei `fabric.mod.json` - dies ist die Datei `fabric.mod.json` für das Referenzprojekt, das diese Dokumentationsseite betreibt. :::details Referenzprojekt `fabric.mod.json` -@[code lang=json](@/reference/latest/src/main/resources/fabric.mod.json) +@[code lang=json](@/reference/1.21/src/main/resources/fabric.mod.json) ::: ## Einstiegspunkte {#entrypoints} @@ -41,7 +41,7 @@ Diese Einstiegspunkte werden jeweils aufgerufen, wenn das Spiel beginnt. Hier ist ein Beispiel für einen einfachen `main`-Einstiegspunkt, der eine Nachricht an die Konsole ausgibt, wenn das Spiel startet: -@[code lang=java transcludeWith=#entrypoint](@/reference/latest/src/main/java/com/example/docs/FabricDocsReference.java) +@[code lang=java transcludeWith=#entrypoint](@/reference/1.21/src/main/java/com/example/docs/FabricDocsReference.java) ## `src/main/resources` {#src-main-resources} diff --git a/versions/1.21/translated/de_de/develop/index.md b/versions/1.21/translated/de_de/develop/index.md index ae9665bd9..1bbde2eba 100644 --- a/versions/1.21/translated/de_de/develop/index.md +++ b/versions/1.21/translated/de_de/develop/index.md @@ -9,6 +9,6 @@ Diese von der Community verfassten Leitfäden decken ein breites Spektrum an The In der Seitenleiste findest du eine Liste aller verfügbaren Leitfäden. Wenn du nach etwas Bestimmtem suchst, ist die Suchleiste oben auf der Seite dein bester Freund. -Merke: Ein voll lauffähiger Mod mit all dem Code für diese Dokumentation ist in dem [`/reference` Order auf GitHub](https://github.com/FabricMC/fabric-docs/tree/main/reference/latest) verfügbar. +Merke: Ein voll lauffähiger Mod mit all dem Code für diese Dokumentation ist in dem [`/reference` Order auf GitHub](https://github.com/FabricMC/fabric-docs/tree/main/reference/1.21) verfügbar. Wenn du zur Fabric-Dokumentation beitragen möchtest, findest du den Quellcode auf [GitHub](https://github.com/FabricMC/fabric-docs), und die entsprechenden [Beitragsrichtlinien](../contributing). diff --git a/versions/1.21/translated/de_de/develop/items/custom-armor.md b/versions/1.21/translated/de_de/develop/items/custom-armor.md index 11685ef5d..7b1018339 100644 --- a/versions/1.21/translated/de_de/develop/items/custom-armor.md +++ b/versions/1.21/translated/de_de/develop/items/custom-armor.md @@ -35,7 +35,7 @@ public void onInitialize() { Innerhalb dieser `ModArmorMaterials` Klasse, musst du eine statische Methode erstellen, welche das Rüstungsmaterial registrieren wird. Diese Methode sollte einen Registrierungseintrag für das Material zurückgeben, da dieser Eintrag vom Rüstungsitem-Konstruktor zur Erstellung des Rüstungsitem verwendet wird. -@[code transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/item/armor/ModArmorMaterials.java) +@[code transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/item/armor/ModArmorMaterials.java) ## Rüstungsmaterial Eigenschaften {#armor-material-properties} @@ -85,7 +85,7 @@ Nachdem du nun eine Utility-Methode erstellt hast, die zur Registrierung von Rü In diesem Beispiel werden wir eine Guidite-Rüstung mit den folgenden Eigenschaften erstellen: -@[code transcludeWith=:::2](@/reference/latest/src/main/java/com/example/docs/item/armor/ModArmorMaterials.java) +@[code transcludeWith=:::2](@/reference/1.21/src/main/java/com/example/docs/item/armor/ModArmorMaterials.java) ## Rüstungsitems erstellen {#creating-the-armor-items} @@ -103,11 +103,11 @@ Die verschiedenen Rüstungsslots haben unterschiedliche Grundhaltbarkeiten, die Für die Guidite-Rüstung werden wir einen gemeinsamen Multiplikator für die Rüstung verwenden, der zusammen mit dem Rüstungsmaterial gespeichert wird: -@[code transcludeWith=:::3](@/reference/latest/src/main/java/com/example/docs/item/armor/ModArmorMaterials.java) +@[code transcludeWith=:::3](@/reference/1.21/src/main/java/com/example/docs/item/armor/ModArmorMaterials.java) Anschließend können wir die Rüstungsitems unter Verwendung der Haltbarkeitskonstante erstellen: -@[code transcludeWith=:::6](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::6](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) Außerdem musst du die Items **einer Itemgruppe hinzufügen**, wenn du möchtest, dass sie über das kreative Inventar zugänglich sind. @@ -132,7 +132,7 @@ Als Beispiel dient das folgende Textur- und Modell-JSON als Referenz. Du benötigst JSON-Modelldateien für alle Gegenstände, nicht nur für den Helm. Es ist das gleiche Prinzip wie bei anderen Itemmodellen. ::: -@[code](@/reference/latest/src/main/resources/assets/fabric-docs-reference/models/item/guidite_helmet.json) +@[code](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/models/item/guidite_helmet.json) Wie du sehen kannst, sollten die Rüstungsitems im Spiel geeignete Modelle haben: diff --git a/versions/1.21/translated/de_de/develop/items/custom-data-components.md b/versions/1.21/translated/de_de/develop/items/custom-data-components.md index 2f5abf166..78e0a733b 100644 --- a/versions/1.21/translated/de_de/develop/items/custom-data-components.md +++ b/versions/1.21/translated/de_de/develop/items/custom-data-components.md @@ -19,7 +19,7 @@ Wie bei allem anderen in deinem Mod musst du deine benutzerdefinierte Komponente Wähle eine sinnvolle Klasse, in der du dies unterbringen kannst. Für dieses Beispiel werden wir ein neues Paket namens `component` und eine Klasse erstellen, die alle unsere Komponententypen enthält und `ModComponents` heißt. Stelle sicher, dass du `ModComponents.initialize()` in deinem [Mod-Initialisierer](./getting-started/project-structure#entrypoints) aufrufst. -@[code transcludeWith=::1](@/reference/latest/src/main/java/com/example/docs/component/ModComponents.java) +@[code transcludeWith=::1](@/reference/1.21/src/main/java/com/example/docs/component/ModComponents.java) Dies ist die grundlegende Vorlage für die Registrierung eines Component Typs: @@ -43,7 +43,7 @@ Einfache Datenkomponenten (wie `minecraft:damage`) bestehen aus einzelnen Datenw Als Beispiel wollen wir einen `Integer`-Wert erstellen, der festhält, wie oft der Spieler mit der rechten Maustaste geklickt hat, während er unseren Gegenstand hielt. Aktualisieren wir unsere Komponentenregistrierung wie folgt: -@[code transcludeWith=::2](@/reference/latest/src/main/java/com/example/docs/component/ModComponents.java) +@[code transcludeWith=::2](@/reference/1.21/src/main/java/com/example/docs/component/ModComponents.java) Du kannst sehen, dass wir jetzt `` als unseren generischen Typ übergeben, was anzeigt, dass diese Komponente als ein einzelner `int` Wert gespeichert wird. Für unseren Codec verwenden wir den mitgelieferten `Codec.INT` Codec. Für einfache Komponenten wie diese können wir mit einfachen Codecs auskommen, aber komplexere Szenarien erfordern möglicherweise einen benutzerdefinierten Codec (dies wird später kurz behandelt). @@ -57,7 +57,7 @@ Wenn du den Befehl ausführst, solltest du das Element erhalten, das die Kompone Fügen wir ein neues Item hinzu, das den Zähler jedes Mal erhöht, wenn es mit der rechten Maustaste angeklickt wird. Du solltest die Seite [Benutzerdefinierte Iteminteraktionen](./custom-item-interactions) lesen, die die Techniken behandelt, die wir in diesem Leitfaden verwenden werden. -@[code transcludeWith=::1](@/reference/latest/src/main/java/com/example/docs/item/custom/CounterItem.java) +@[code transcludeWith=::1](@/reference/1.21/src/main/java/com/example/docs/item/custom/CounterItem.java) Denke wie üblich daran, das Item in deiner Klasse `ModItems` zu registrieren. @@ -117,7 +117,7 @@ Es gibt drei Lösungen, mit denen wir dieses Problem angehen können. Wenn du deinen Artikel registrierst und ein `Item.Settings`-Objekt an deinen Item Konstruktor übergibst, kannst du auch eine Liste von Standardkomponenten angeben, die auf alle neuen Items angewendet werden. Wenn wir zu unserer Klasse `ModItems` zurückkehren, wo wir das `CounterItem`, registrieren, können wir einen Standardwert für unsere benutzerdefinierte Komponente hinzufügen. Füge dies hinzu, damit bei neuen Einträgen die Anzahl `0` angezeigt wird. -@[code transcludeWith=::_13](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=::_13](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) Wenn ein neues Item erstellt wird, wird automatisch unsere benutzerdefinierte Komponente mit dem angegebenen Wert angewendet. @@ -147,7 +147,7 @@ boolean exists = stack.contains(ModComponents.CLICK_COUNT_COMPONENT); Wir fahren mit der dritten Option fort. Wir fügen also nicht nur einen Standardkomponentenwert hinzu, sondern prüfen auch, ob die Komponente auf dem Stack vorhanden ist, und zeigen den Tooltip nur an, wenn dies der Fall ist. -@[code transcludeWith=::3](@/reference/latest/src/main/java/com/example/docs/item/custom/CounterItem.java) +@[code transcludeWith=::3](@/reference/1.21/src/main/java/com/example/docs/item/custom/CounterItem.java) Starte das Spiel erneut und fahre mit dem Mauszeiger über das Item ohne die Komponente. Du solltest sehen, dass er "Used 0 times" anzeigt und das Spiel nicht mehr abstürzt. @@ -179,7 +179,7 @@ int oldValue = stack.set(ModComponents.CLICK_COUNT_COMPONENT, newValue); Richten wir eine neue Methode `use()` ein, um die alte Klickzahl zu lesen, sie um eins zu erhöhen und dann die aktualisierte Klickzahl zu setzen. -@[code transcludeWith=::2](@/reference/latest/src/main/java/com/example/docs/item/custom/CounterItem.java) +@[code transcludeWith=::2](@/reference/1.21/src/main/java/com/example/docs/item/custom/CounterItem.java) Starte nun das Spiel und klicke mit der rechten Maustaste auf den Counter in deiner Hand. Wenn du dein Inventar öffnest und dir das Item noch einmal ansiehst, solltest du sehen, dass die Nutzungszahl um die Anzahl der Klicks gestiegen ist, die du darauf gemacht hast. @@ -212,11 +212,11 @@ public record MyCustomComponent() { Beachte, dass sich nach dem Klassennamen Klammern befinden. Hier definieren wir die Liste der Eigenschaften, die unsere Komponente haben soll. Fügen wir eine Fließkommazahl und einen booleschen Wert mit den Bezeichnungen `temperature` und `burnt` hinzu. -@[code transcludeWith=::1](@/reference/latest/src/main/java/com/example/docs/component/MyCustomComponent.java) +@[code transcludeWith=::1](@/reference/1.21/src/main/java/com/example/docs/component/MyCustomComponent.java) Da wir eine benutzerdefinierte Datenstruktur definieren, gibt es für unseren Anwendungsfall keinen bereits vorhandenen `Codec` wie bei den [einfachen Komponenten](#basic-data-components). Das bedeutet, dass wir unseren eigenen Codec konstruieren müssen. Definieren wir einen in unsere Record-Klasse mit einem `RecordCodecBuilder`, auf den wir verweisen können, sobald wir die Komponente registrieren. Weitere Einzelheiten zur Verwendung eines `RecordCodecBuilder` findest du in [diesem Abschnitt der Codecs-Seite](../codecs#merging-codecs-for-record-like-classes). -@[code transcludeWith=::2](@/reference/latest/src/main/java/com/example/docs/component/MyCustomComponent.java) +@[code transcludeWith=::2](@/reference/1.21/src/main/java/com/example/docs/component/MyCustomComponent.java) Du kannst sehen, dass wir eine Liste von benutzerdefinierten Feldern auf der Grundlage der primitiven `Codec`-Typen definieren. Wir teilen dem Spiel jedoch auch mit, wie unsere Felder heißen, indem wir `fieldOf()` verwenden und dann `forGetter()` benutzen, um dem Spiel mitzuteilen, welches Attribut unseres Datensatzes es füllen soll. @@ -226,7 +226,7 @@ Schließlich rufen wir `apply()` auf und übergeben den Konstruktor unseres Date Die Registrierung einer zusammengesetzten Komponente ist ähnlich wie zuvor. Wir übergeben einfach unsere Record-Klasse als generischen Typ und unseren benutzerdefinierten `Codec` an die Methode `codec()`. -@[code transcludeWith=::3](@/reference/latest/src/main/java/com/example/docs/component/ModComponents.java) +@[code transcludeWith=::3](@/reference/1.21/src/main/java/com/example/docs/component/ModComponents.java) Starte jetzt das Spiel. Versuche, die Komponente mit dem Befehl `/give` anzuwenden. Zusammengesetzte Komponentenwerte werden als ein mit `{}` umschlossenes Objekt übergeben. Wenn du leere geschweifte Klammern einfügst, wird eine Fehlermeldung angezeigt, die besagt, dass der erforderliche Schlüssel `temperature` fehlt. diff --git a/versions/1.21/translated/de_de/develop/items/custom-enchantment-effects.md b/versions/1.21/translated/de_de/develop/items/custom-enchantment-effects.md index bdaae06d1..53c41f1dc 100644 --- a/versions/1.21/translated/de_de/develop/items/custom-enchantment-effects.md +++ b/versions/1.21/translated/de_de/develop/items/custom-enchantment-effects.md @@ -23,7 +23,7 @@ Als nächstes können wir einen Konstruktor erstellen und die Methoden des Inter Der Großteil unseres Codes wird in das Ereignis `apply()` einfließen, das aufgerufen wird, wenn die Kriterien für die Wirkung der Verzauberung erfüllt sind. Wir werden diesen `Effect` später so konfigurieren, dass er aufgerufen wird, wenn eine Entität getroffen wird, aber für den Moment wollen wir einfachen Code schreiben, um das Ziel mit einem Blitz zu treffen. -@[code transcludeWith=#entrypoint](@/reference/latest/src/main/java/com/example/docs/enchantment/effect/LightningEnchantmentEffect.java) +@[code transcludeWith=#entrypoint](@/reference/1.21/src/main/java/com/example/docs/enchantment/effect/LightningEnchantmentEffect.java) Hier gibt die Variable `amount` einen Wert an, der auf die Stufe der Verzauberung abgestimmt ist. Auf diese Weise können wir die Wirksamkeit der Verzauberung je nach Stufe verändern. Im obigen Code verwenden wir die Stufe der Verzauberung, um zu bestimmen, wie viele Blitze erzeugt werden. @@ -31,7 +31,7 @@ Hier gibt die Variable `amount` einen Wert an, der auf die Stufe der Verzauberun Wie jede andere Komponente deines Mods müssen wir auch diesen `EnchantmentEffect` zur Minecraft-Registry hinzufügen. Füge hierzu eine Klasse `ModEnchantmentEffects` (oder wie immer du sie nennen willst) und eine Hilfsmethode zur Registrierung der Verzauberung hinzu. Stelle sicher, dass die Methode `registerModEnchantmentEffects()` in deiner Hauptklasse aufrufen wird, die die Methode `onInitialize()` enthält. -@[code transcludeWith=#entrypoint](@/reference/latest/src/main/java/com/example/docs/enchantment/ModEnchantmentEffects.java) +@[code transcludeWith=#entrypoint](@/reference/1.21/src/main/java/com/example/docs/enchantment/ModEnchantmentEffects.java) ## Die Verzauberung erstellen {#creating-the-enchantment} @@ -39,17 +39,17 @@ Jetzt haben wir einen Verzauberungseffekt! Der letzte Schritt besteht darin, ein In dieser Klasse werden wir zunächst eine neue Verzauberung registrieren und dann die Methode `configure()` verwenden, um unser JSON programmatisch zu erstellen. -@[code transcludeWith=#entrypoint](@/reference/latest/src/client/java/com/example/docs/datagen/EnchantmentGenerator.java) +@[code transcludeWith=#entrypoint](@/reference/1.21/src/client/java/com/example/docs/datagen/EnchantmentGenerator.java) Bevor du fortfährst, solltest du sicherstellen, dass dein Projekt für die Datengenerierung konfiguriert ist; wenn du dir unsicher bist, [sieh dir die entsprechende Dokumentations-Seite an](../data-generation/setup). Zum Schluss müssen wir unserem Mod sagen, dass er unseren `EnchantmentGenerator` zur Liste der Datenerzeugungsaufgaben hinzufügen soll. Um dies zu tun, füge einfach den `EnchantmentGenerator` innerhalb der Methode `onInitializeDataGenerator` zu dieser hinzu. -@[code transclude={22-22}](@/reference/latest/src/client/java/com/example/docs/datagen/FabricDocsReferenceDataGenerator.java) +@[code transclude={22-22}](@/reference/1.21/src/client/java/com/example/docs/datagen/FabricDocsReferenceDataGenerator.java) Wenn du nun die Datengenerierungsaufgabe deines Mods ausführst, werden die Verzauberungs-JSONs im Ordner `generated` generiert. Ein Beispiel ist unten zu sehen: -@[code](@/reference/latest/src/main/generated/data/fabric-docs-reference/enchantment/thundering.json) +@[code](@/reference/1.21/src/main/generated/data/fabric-docs-reference/enchantment/thundering.json) Du solltest auch Übersetzungen zu deiner `en_us.json` Datei hinzufügen, um deiner Verzauberung einen lesbaren Namen zu geben: diff --git a/versions/1.21/translated/de_de/develop/items/custom-item-groups.md b/versions/1.21/translated/de_de/develop/items/custom-item-groups.md index 15fed940a..a09eb887b 100644 --- a/versions/1.21/translated/de_de/develop/items/custom-item-groups.md +++ b/versions/1.21/translated/de_de/develop/items/custom-item-groups.md @@ -13,9 +13,9 @@ Itemgruppen sind die Registerkarten im kreativen Inventar, in denen Items gespei Es ist überaschend einfach eine Itemgruppe zu erstellen. Erstell einfach ein neues statisches finales Feld in deiner Itemklasse, um die Itemgruppe und einen Registrierungsschlüssel dafür zu speichern, dann kannst du das Itemgruppen-Ereignis ähnlich verwenden, wie du deine Items zu den Vanilla Itemgruppen hinzugefügt hast: -@[code transcludeWith=:::9](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::9](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) -@[code transcludeWith=:::_12](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::_12](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java)
diff --git a/versions/1.21/translated/de_de/develop/items/custom-item-interactions.md b/versions/1.21/translated/de_de/develop/items/custom-item-interactions.md index b2da1a1d8..9cda5804c 100644 --- a/versions/1.21/translated/de_de/develop/items/custom-item-interactions.md +++ b/versions/1.21/translated/de_de/develop/items/custom-item-interactions.md @@ -58,11 +58,11 @@ Ein hervorragendes Beispiel für die Verwendung dieser Events findet sich auf de Angenommen, du möchtest ein Item erstellen, das einen Blitz vor dem Spieler herbeiruft - dann musst du eine benutzerdefinierte Klasse erstellen. -@[code transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/item/custom/LightningStick.java) +@[code transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/item/custom/LightningStick.java) Das `use`-Event ist wahrscheinlich das nützlichste von allen - du kannst dieses Event benutzen, um unseren Blitz zu erschaffen, du solltest ihn 10 Blöcke vor dem Spieler spawnen, in dessen Richtung er schaut. -@[code transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/item/custom/LightningStick.java) +@[code transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/item/custom/LightningStick.java) Wie üblich solltest du deine Items registrieren, ein Modell und eine Textur hinzufügen. diff --git a/versions/1.21/translated/de_de/develop/items/custom-tools.md b/versions/1.21/translated/de_de/develop/items/custom-tools.md index cd3637eba..2f9f20538 100644 --- a/versions/1.21/translated/de_de/develop/items/custom-tools.md +++ b/versions/1.21/translated/de_de/develop/items/custom-tools.md @@ -19,11 +19,11 @@ Diese Klasse kann auch verwendet werden, um die Eigenschaften deines Werkzeugmat Du kannst ein Werkzeugmaterial erstellen, indem du eine neue Klasse erstellst, die es erbt - in diesem Beispiel werde ich "Guidite"-Werkzeuge erstellen: -@[code transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) +@[code transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) Sobald du dein Werkzeugmaterial erstellt und nach deinen Wünschen angepasst hast, kannst du eine Instanz davon erstellen, die in den Konstruktoren der Werkzeugitems verwendet werden kann. -@[code transcludeWith=:::8](@/reference/latest/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) +@[code transcludeWith=:::8](@/reference/1.21/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) Das Werkzeugmaterial gibt dem Spiel die folgenden Informationen: @@ -31,13 +31,13 @@ Das Werkzeugmaterial gibt dem Spiel die folgenden Informationen: Wie oft das Werkzeug verwendet werden kann, bevor es bricht: -@[code transcludeWith=:::2](@/reference/latest/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) +@[code transcludeWith=:::2](@/reference/1.21/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) ### Abbaugeschwindigkeit - `getMiningSpeedMultiplier()` {#mining-speed} Wenn das Werkzeug zum Brechen von Blöcken verwendet wird, wie schnell sollte es die Blöcke brechen? -@[code transcludeWith=:::3](@/reference/latest/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) +@[code transcludeWith=:::3](@/reference/1.21/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) Zu Referenzzwecken hat das Diamantwerkzeugmaterial eine Abbaugeschwindigkeit von `8.0F`, während das Steinwerkzeugmaterial eine Abbaugeschwindigkeit von `4.0F` hat. @@ -45,7 +45,7 @@ Zu Referenzzwecken hat das Diamantwerkzeugmaterial eine Abbaugeschwindigkeit von Wie viele Schadenspunkte sollte das Werkzeug verursachen, wenn es als Waffe gegen eine andere Entität eingesetzt wird? -@[code transcludeWith=:::4](@/reference/latest/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) +@[code transcludeWith=:::4](@/reference/1.21/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) ### Inverse Tag - `getMiningLevel()` {#inverse-tag} @@ -65,7 +65,7 @@ Das bedeutet, dass das Werkzeug keine Blöcke abbauen kann, die ein Diamant-, Ei Lass das Eisenwerkzeug-Tag verwenden. Dies verhindert, dass Guidite-Werkzeuge Blöcke abbauen, die ein stärkeres Werkzeug als Eisen erfordern. -@[code transcludeWith=:::5](@/reference/latest/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) +@[code transcludeWith=:::5](@/reference/1.21/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) Du kannst `TagKey.of(...)` verwenden, um einen benutzerdefinierten Tag-Schlüssel zu erstellen, wenn du einen benutzerdefiniertes Tag verwenden willst. @@ -73,29 +73,29 @@ Du kannst `TagKey.of(...)` verwenden, um einen benutzerdefinierten Tag-Schlüsse Wie einfach ist es, mit diesem Gegenstand bessere und höherstufige Verzauberungen zu erhalten? Zum Vergleich: Gold hat eine Verzauberungsfähigkeit von 22, während Netherit eine Verzauberungsfähigkeit von 15 hat. -@[code transcludeWith=:::6](@/reference/latest/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) +@[code transcludeWith=:::6](@/reference/1.21/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) ### Reparatur-Zutat(en) - `getRepairIngredient()` {#repair-ingredient} Welche Items werden zur Reparatur des Werkzeugs verwendet? -@[code transcludeWith=:::7](@/reference/latest/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) +@[code transcludeWith=:::7](@/reference/1.21/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) ## Werkzeugitems erstellen {#creating-tool-items} Mit der gleichen Hilfsfunktion wie in der Anleitung [Erstelle dein ersten Item](./first-item) kannst du deine Werkzeugitems erstellen: -@[code transcludeWith=:::7](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::7](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) Vergiss nicht, sie zu einer Itemgruppe hinzuzufügen, wenn du vom Kreativ-Inventar aus auf sie zugreifen willst! -@[code transcludeWith=:::8](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::8](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) Du musst auch eine Textur, eine Itemübersetzung und ein Itemmodell hinzufügen. Für das Itemmodell solltest du jedoch das Modell `item/handheld` als übergeordnetes Modell verwenden. In diesem Beispiel verwende ich das folgende Modell und die folgende Textur für den Gegenstand "Guidite Sword": -@[code](@/reference/latest/src/main/resources/assets/fabric-docs-reference/models/item/guidite_sword.json) +@[code](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/models/item/guidite_sword.json) Textur diff --git a/versions/1.21/translated/de_de/develop/items/first-item.md b/versions/1.21/translated/de_de/develop/items/first-item.md index 7bf0b33ec..c318449ad 100644 --- a/versions/1.21/translated/de_de/develop/items/first-item.md +++ b/versions/1.21/translated/de_de/develop/items/first-item.md @@ -22,7 +22,7 @@ Du kannst diese Methode in eine Klasse namens `ModItems` (oder wie immer du die Mojang macht das auch mit ihren Items! Inspiriere dich von der Klasse `Items`. -@[code transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) ## Ein Item registrieren {#registering-an-item} @@ -36,15 +36,15 @@ If you want to change your item's stack size, you can use the `maxCount` method Dies funktioniert nicht, wenn du das Item als beschädigungsfähig markiert hast, da die Stackgröße für beschädigungsfähige Gegenstände immer 1 ist, um Duplikations-Exploits zu verhindern. ::: -@[code transcludeWith=:::2](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::2](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) Wenn du nun jedoch versuchst, den modifizierten Client auszuführen, kannst du sehen, dass unser Item im Spiel noch nicht existiert! Der Grund dafür ist, dass du die Klasse nicht statisch initialisiert hast. Um dies zu tun, kannst du eine öffentliche, statische Methode zur initialisierung deiner Klasse hinzufügen und diese in deiner [Mod-Initialisierer](./getting-started/project-structure#entrypoints) Klasse aufrufen. Derzeit braucht diese Methode nichts zu enthalten. -@[code transcludeWith=:::3](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::3](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) -@[code transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/item/FabricDocsReferenceItems.java) +@[code transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/item/FabricDocsReferenceItems.java) Der Aufruf einer Methode einer Klasse initialisiert diese statisch, wenn sie nicht vorher geladen wurde - das bedeutet, dass alle `static` Felder ausgewertet werden. Dafür ist diese Dummy-Methode `initialize` gedacht. @@ -58,7 +58,7 @@ Für ein Beispiel, in dem wir dieses Element zu den Zutaten `ItemGroup` hinzufü Dies kann in der Methode `initialize` deiner Itemklasse geschehen. -@[code transcludeWith=:::4](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::4](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) Wenn du das Spiel lädst, kannst du sehen, dass unser Item registriert wurde und sich in der Gruppe der Zutaten befindet: @@ -98,7 +98,7 @@ Du wirst ein einfaches `item/generated`-Modell erstellen, das eine Eingabetextur Erzeuge das Modell JSON im Ordner `assets//models/item`, mit dem gleichen Namen wie das Element; `suspicious_substance.json` -@[code](@/reference/latest/src/main/resources/assets/fabric-docs-reference/models/item/suspicious_substance.json) +@[code](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/models/item/suspicious_substance.json) ### Das Modell JSON niederbrechen {#breaking-down-the-model-json} @@ -119,11 +119,11 @@ Die Fabric API bietet verschiedene Register, die verwendet werden können, um zu Wenn du zum Beispiel dein Item kompostierbar machen willst, kannst du die `CompostableItemRegistry` verwenden: -@[code transcludeWith=:::_10](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::_10](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) Alternativ, wenn du dein Item zu einem Brennstoff machen willst, kannst du alternativ die Klasse `FuelRegistry` verwenden: -@[code transcludeWith=:::_11](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::_11](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) ## Hinzufügen eines einfachen Craftingrezepts {#adding-a-basic-crafting-recipe} @@ -144,7 +144,7 @@ Wenn du möchtest, dass dein Item einen benutzerdefinierten Tooltip hat, musst d In diesem Beispiel wird die Klasse `LightningStick` verwendet, die auf der Seite [Benutzerdefinierte Iteminteraktionen](./custom-item-interactions) erstellt wurde. ::: -@[code lang=java transcludeWith=:::3](@/reference/latest/src/main/java/com/example/docs/item/custom/LightningStick.java) +@[code lang=java transcludeWith=:::3](@/reference/1.21/src/main/java/com/example/docs/item/custom/LightningStick.java) Jeder Aufruf von `add()` fügt dem Tooltip eine Zeile hinzu. diff --git a/versions/1.21/translated/de_de/develop/items/food.md b/versions/1.21/translated/de_de/develop/items/food.md index 2e36c0ba0..122656048 100644 --- a/versions/1.21/translated/de_de/develop/items/food.md +++ b/versions/1.21/translated/de_de/develop/items/food.md @@ -37,11 +37,11 @@ Die Klasse `FoodComponent.Builder` hat viele Methoden, mit denen du ändern kann Wenn du den Builder nach deinen Wünschen verändert hast, kannst du die Methode `build()` aufrufen, um den `FoodComponent` zu erhalten. -@[code transcludeWith=:::5](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::5](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) Ähnlich wie in dem Beispiel auf der Seite [Dein erstes Item erstellen](./first-item) werde ich den obigen Component verwenden: -@[code transcludeWith=:::poisonous_apple](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::poisonous_apple](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) Dies macht das Item: diff --git a/versions/1.21/translated/de_de/develop/items/potions.md b/versions/1.21/translated/de_de/develop/items/potions.md index e2603f7cf..f72a05c00 100644 --- a/versions/1.21/translated/de_de/develop/items/potions.md +++ b/versions/1.21/translated/de_de/develop/items/potions.md @@ -20,7 +20,7 @@ Genauso wie Items und Blöcke, müssen auch Tränke registriert werden. Als Erstes wird die `Potion` Instanz in einer Variable deklariert. Wir werden hierfür die `ModInitializer` implementierende Klasse nutzen. -@[code lang=java transclude={18-27}](@/reference/latest/src/main/java/com/example/docs/potion/FabricDocsReferencePotions.java) +@[code lang=java transclude={18-27}](@/reference/1.21/src/main/java/com/example/docs/potion/FabricDocsReferencePotions.java) Es wird eine Instanz der `StatusEffectInstance` benutzt, die drei Parameter besitzt: @@ -36,7 +36,7 @@ Um deinen eigenen Effekt zu erstellen, schau bitte in den Leitfaden [Effekte](.. In unserer Initialisierungsmethode benutzen wir das `FabricBrewingRecipeRegistryBuilder.BUILD` Event um unseren Trank mithilfe der `BrewingRecipeRegistry.registerPotionRecipe` Methode zu registrieren. -@[code lang=java transclude={29-42}](@/reference/latest/src/main/java/com/example/docs/potion/FabricDocsReferencePotions.java) +@[code lang=java transclude={29-42}](@/reference/1.21/src/main/java/com/example/docs/potion/FabricDocsReferencePotions.java) Die `registerPotionRecipe` Methode besitzt 3 Parameter: diff --git a/versions/1.21/translated/de_de/develop/rendering/basic-concepts.md b/versions/1.21/translated/de_de/develop/rendering/basic-concepts.md index 3db150112..dd5b9b025 100644 --- a/versions/1.21/translated/de_de/develop/rendering/basic-concepts.md +++ b/versions/1.21/translated/de_de/develop/rendering/basic-concepts.md @@ -111,7 +111,7 @@ Dies sollte einen schönen Diamanten ergeben - da wir den Zeichenmodus `TRIANGLE Da wir in diesem Beispiel auf dem HUD zeichnen, verwenden wir das Event `HudRenderCallback`: -@[code lang=java transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/rendering/RenderingConceptsEntrypoint.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/rendering/RenderingConceptsEntrypoint.java) Dies führt dazu, dass auf dem HUD folgendes gezeichnet wird: @@ -143,7 +143,7 @@ You must first push the matrix stack and then pop it after you're done with it. Stelle sicher, dass du den Matrixstapel verschiebst, bevor du eine Transformationsmatrix erhältst! ::: -@[code lang=java transcludeWith=:::2](@/reference/latest/src/client/java/com/example/docs/rendering/RenderingConceptsEntrypoint.java) +@[code lang=java transcludeWith=:::2](@/reference/1.21/src/client/java/com/example/docs/rendering/RenderingConceptsEntrypoint.java) ![Ein Video, das die Vergrößerung und Verkleinerung eines Diamanten zeigt](/assets/develop/rendering/concepts-matrix-stack.webp) @@ -155,7 +155,7 @@ Es ist sehr unwahrscheinlich, dass du jemals eine Quaternion-Klasse direkt benut Nehmen wir an, wir wollen unseren Diamanten um die Z-Achse drehen. Wir können dies tun, indem wir den `MatrixStack` und die Methode `multiply(Quaternion, x, y, z)` verwenden. -@[code lang=java transcludeWith=:::3](@/reference/latest/src/client/java/com/example/docs/rendering/RenderingConceptsEntrypoint.java) +@[code lang=java transcludeWith=:::3](@/reference/1.21/src/client/java/com/example/docs/rendering/RenderingConceptsEntrypoint.java) Daraus ergibt sich Folgendes: diff --git a/versions/1.21/translated/de_de/develop/rendering/draw-context.md b/versions/1.21/translated/de_de/develop/rendering/draw-context.md index 54a4a7982..093ff4403 100644 --- a/versions/1.21/translated/de_de/develop/rendering/draw-context.md +++ b/versions/1.21/translated/de_de/develop/rendering/draw-context.md @@ -19,7 +19,7 @@ Die Klasse `DrawContext` kann verwendet werden, um auf einfache Weise **quadrati Du kannst die Methode `DrawContext.fill(...)` verwenden, um ein gefülltes Rechteck zu zeichnen. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) ![Ein Rechteck](/assets/develop/rendering/draw-context-rectangle.png) @@ -27,7 +27,7 @@ Du kannst die Methode `DrawContext.fill(...)` verwenden, um ein gefülltes Recht Nehmen wir an, wir wollen das Rechteck, das wir gerade gezeichnet haben, umreißen. Wir können die Methode `DrawContext.drawBorder(...)` verwenden, um einen Umriss zu zeichnen. -@[code lang=java transcludeWith=:::2](@/reference/latest/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) +@[code lang=java transcludeWith=:::2](@/reference/1.21/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) ![Ein Rechteck mit einer Umrandung](/assets/develop/rendering/draw-context-rectangle-border.png) @@ -35,7 +35,7 @@ Nehmen wir an, wir wollen das Rechteck, das wir gerade gezeichnet haben, umreiß Wir können die Methoden `DrawContext.drawHorizontalLine(...)` und `DrawContext.drawVerticalLine(...)` verwenden, um Linien zu zeichnen. -@[code lang=java transcludeWith=:::3](@/reference/latest/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) +@[code lang=java transcludeWith=:::3](@/reference/1.21/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) ![Linien](/assets/develop/rendering/draw-context-lines.png) @@ -51,7 +51,7 @@ Scheren-Regionen können verschachtelt werden! Stelle sicher, dass du den Schere Um den Scheren-Manager zu aktivieren, verwende einfach die Methode `DrawContext.enableScissor(...)`. Um den Scheren-Manager zu deaktivieren, verwende die Methode `DrawContext.disableScissor()`. -@[code lang=java transcludeWith=:::4](@/reference/latest/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) +@[code lang=java transcludeWith=:::4](@/reference/1.21/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) [Scheren-Region in Aktion](/assets/develop/rendering/draw-context-scissor.png) @@ -65,7 +65,7 @@ Es gibt nicht den einen "richtigen" Weg, um Texturen auf einen Bildschirm zu zei Im Allgemeinen wird empfohlen, dass man die Überladung verwendet, die die Parameter `textureWidth` und `textureHeight` angibt. Der Grund dafür ist, dass die Klasse `DrawContext` diese Werte entgegennimmt, wenn du sie nicht angibst, was manchmal falsch sein kann. -@[code lang=java transcludeWith=:::5](@/reference/latest/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) +@[code lang=java transcludeWith=:::5](@/reference/1.21/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) ![Beispiel für das Zeichnen einer ganzen Textur](/assets/develop/rendering/draw-context-whole-texture.png) @@ -79,7 +79,7 @@ Nehmen wir diese Textur als Beispiel. Wenn wir nur einen Bereich zeichnen wollen, der die Lupe enthält, können wir die folgenden Werte `u`, `v`, `regionWidth` und `regionHeight` verwenden: -@[code lang=java transcludeWith=:::6](@/reference/latest/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) +@[code lang=java transcludeWith=:::6](@/reference/1.21/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) ![Textur der Region](/assets/develop/rendering/draw-context-region-texture.png) @@ -89,6 +89,6 @@ Die Klasse `DrawContext` verfügt über verschiedene selbsterklärende Methoden Nehmen wir an, wir wollen "Hello World" auf die Oberfläche zeichnen. Wir können dazu die Methode `DrawContext.drawText(...)` verwenden. -@[code lang=java transcludeWith=:::7](@/reference/latest/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) +@[code lang=java transcludeWith=:::7](@/reference/1.21/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) ![Einen Text zeichnen](/assets/develop/rendering/draw-context-text.png) diff --git a/versions/1.21/translated/de_de/develop/rendering/gui/custom-screens.md b/versions/1.21/translated/de_de/develop/rendering/gui/custom-screens.md index b4b251507..e39e212a6 100644 --- a/versions/1.21/translated/de_de/develop/rendering/gui/custom-screens.md +++ b/versions/1.21/translated/de_de/develop/rendering/gui/custom-screens.md @@ -28,7 +28,7 @@ Folgendes solltest du beachten: Als Beispiel können wir eine einfache Oberfläche erstellen, der eine Schaltfläche und eine Beschriftung darüber enthält. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/rendering/screens/CustomScreen.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/rendering/screens/CustomScreen.java) ![Benutzerdefinierte Oberfläche 1](/assets/develop/rendering/gui/custom-1-example.png) @@ -52,7 +52,7 @@ MinecraftClient.getInstance().setScreen(null); Wenn du ausgefallen sein und zum vorherigen Bildschirm zurückkehren willst, kannst du die aktuelle Oberfläche an den `CustomScreen`-Konstruktor übergeben und ihn in einem Attribut speichern und ihn dann verwenden, um zum vorherigen Bildschirm zurückzukehren, wenn die Methode `close` aufgerufen wird. -@[code lang=java transcludeWith=:::2](@/reference/latest/src/client/java/com/example/docs/rendering/screens/CustomScreen.java) +@[code lang=java transcludeWith=:::2](@/reference/1.21/src/client/java/com/example/docs/rendering/screens/CustomScreen.java) Jetzt kannst du beim Öffnen der benutzerdefinierten Oberfläche den aktuellen Bildschirm als zweites Argument übergeben - wenn du also `CustomScreen#close` aufrufst, wird er zur vorherigen Oberfläche zurückkehren. diff --git a/versions/1.21/translated/de_de/develop/rendering/gui/custom-widgets.md b/versions/1.21/translated/de_de/develop/rendering/gui/custom-widgets.md index f49dbe8a4..b1c64922e 100644 --- a/versions/1.21/translated/de_de/develop/rendering/gui/custom-widgets.md +++ b/versions/1.21/translated/de_de/develop/rendering/gui/custom-widgets.md @@ -18,13 +18,13 @@ Es gibt mehrere Möglichkeiten, eine Widget-Klasse zu erstellen, beispielsweise - `Narratable` - für die Barrierefreiheit - Erforderlich, um dein Widget für Bildschirmleser und andere Barrierefreiheitstools zugänglich zu machen. - `Selectable` - für die Auswahl - Erforderlich, wenn du dein Widget mit der Tab-Taste auswählbar machen willst - dies hilft auch bei der Barrierefreiheit. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/rendering/screens/CustomWidget.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/rendering/screens/CustomWidget.java) ## Das Widget zur Oberfläche hinzufügen {#adding-the-widget-to-the-screen} Wie alle Widgets musst du es mit der Methode `addDrawableChild`, die von der Klasse `Screen` bereitgestellt wird, zur Oberfläche hinzufügen. Stelle sicher, dass du dies in der Methode `init` machst. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/rendering/screens/CustomWidget.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/rendering/screens/CustomWidget.java) ![Ein benutzerdefiniertes Widget in einer Oberfläche](/assets/develop/rendering/gui/custom-widget-example.png) @@ -34,6 +34,6 @@ Du kannst Events wie Mausklicks und Tastendrücke behandeln, indem du die Method Du kannst zum Beispiel dafür sorgen, dass das Widget die Farbe wechselt, wenn man mit dem Mauszeiger darüber fährt, indem du die Methode `isHovered()` verwendest, die von der Klasse `ClickableWidget` bereitgestellt wird: -@[code lang=java transcludeWith=:::2](@/reference/latest/src/client/java/com/example/docs/rendering/screens/CustomWidget.java) +@[code lang=java transcludeWith=:::2](@/reference/1.21/src/client/java/com/example/docs/rendering/screens/CustomWidget.java) ![Hover-Event Beispiel](/assets/develop/rendering/gui/custom-widget-events.webp) diff --git a/versions/1.21/translated/de_de/develop/rendering/hud.md b/versions/1.21/translated/de_de/develop/rendering/hud.md index 70ca45989..f5778b416 100644 --- a/versions/1.21/translated/de_de/develop/rendering/hud.md +++ b/versions/1.21/translated/de_de/develop/rendering/hud.md @@ -25,6 +25,6 @@ Der `deltaTick` bezieht sich auf die Zeit seit dem letzten Frame in Sekunden. Di Nehmen wir an, du möchtest eine Farbe im Laufe der Zeit auslöschen. Du kannst den `deltaTickManager` verwenden, um den deltaTick zu erhalten und ihn über die Zeit zu speichern, um die Farbe zu lerpen: -@[code lang=java transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/rendering/HudRenderingEntrypoint.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/rendering/HudRenderingEntrypoint.java) ![](/assets/develop/rendering/hud-rendering-deltatick.webp) diff --git a/versions/1.21/translated/de_de/develop/rendering/particles/creating-particles.md b/versions/1.21/translated/de_de/develop/rendering/particles/creating-particles.md index d9f791074..d0147bb0e 100644 --- a/versions/1.21/translated/de_de/develop/rendering/particles/creating-particles.md +++ b/versions/1.21/translated/de_de/develop/rendering/particles/creating-particles.md @@ -15,7 +15,7 @@ Wir werden einen neuen Glitzerpartikel hinzufügen, der die Bewegung eines Parti Wir müssen zuerst einen `ParticleType` in deiner [Mod-Initialisierer](./getting-started/project-structure#entrypoints) Klasse unter Verwendung deiner Mod ID registrieren. -@[code lang=java transcludeWith=#particle_register_main](@/reference/latest/src/main/java/com/example/docs/FabricDocsReference.java) +@[code lang=java transcludeWith=#particle_register_main](@/reference/1.21/src/main/java/com/example/docs/FabricDocsReference.java) Der "sparkle_particle" in Kleinbuchstaben ist der JSON-Pfad für die Textur des Partikels. Du wirst später eine neue JSON-Datei mit genau diesem Namen erstellen. @@ -23,7 +23,7 @@ Der "sparkle_particle" in Kleinbuchstaben ist der JSON-Pfad für die Textur des Nachdem du den Partikel in dem Mod-Initialisierer registriert hast, musst du den Partikel auch in dem clientseitigen Initialisierer registrieren. -@[code lang=java transcludeWith=#particle_register_client](@/reference/latest/src/client/java/com/example/docs/FabricDocsReferenceClient.java) +@[code lang=java transcludeWith=#particle_register_client](@/reference/1.21/src/client/java/com/example/docs/FabricDocsReferenceClient.java) In diesem Beispiel registrieren wir unseren Partikel Client-seitig. Dann geben wir dem Partikel ein wenig Bewegung, indem wir die Factory des Endstabpartikels benutzen. Das bedeutet, dass sich unser Partikel genau wie ein Partikel eines Endstabs bewegt. @@ -47,7 +47,7 @@ Für dieses Beispiel werden wir nur eine Textur in `textures/particle` haben, di Als nächstes erstelle eine neue JSON-Datei in `particles` mit demselben Namen wie der JSON-Pfad, den du bei der Registrierung deines ParticleType verwendet hast. Für dieses Beispiel müssen wir `sparkle_particle.json` erstellen. Diese Datei ist wichtig, weil sie Minecraft wissen lässt, welche Texturen unsere Partikel verwenden sollen. -@[code lang=json](@/reference/latest/src/main/resources/assets/fabric-docs-reference/particles/sparkle_particle.json) +@[code lang=json](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/particles/sparkle_particle.json) :::tip Du kannst weitere Texturen in das Array `textures` einfügen, um eine Partikelanimation zu erstellen. Der Partikel durchläuft die Texturen im Array, beginnend mit der ersten Textur. diff --git a/versions/1.21/translated/de_de/develop/sounds/custom.md b/versions/1.21/translated/de_de/develop/sounds/custom.md index 29256882b..744b8db57 100644 --- a/versions/1.21/translated/de_de/develop/sounds/custom.md +++ b/versions/1.21/translated/de_de/develop/sounds/custom.md @@ -33,7 +33,7 @@ Füge das neue Verzeichnis `resources/assets//sounds` für die Soun Fahre mit der Erstellung der Datei `resources/assets//sounds.json` fort, falls sie noch nicht existiert und füge deinen Sound zu den Sound-Einträgen hinzu. -@[code lang=json](@/reference/latest/src/main/resources/assets/fabric-docs-reference/sounds.json) +@[code lang=json](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/sounds.json) Der Untertiteleintrag bietet dem Spieler mehr Kontext. Der Name des Untertitels wird in den Sprachdateien im Verzeichnis `resources/assets//lang` verwendet und wird angezeigt, wenn die Untertitel-Einstellung im Spiel aktiviert ist und dieser benutzerdefinierte Sound abgespielt wird. @@ -52,11 +52,11 @@ Je nachdem, wie viele Einträge in der Registry vorhanden sind, kann dies schnel Füge zwei neue Methoden zu der neu erstellten Hilfsklasse hinzu. Eine, die alle Sounds registriert, und eine, die dazu dient, diese Klasse überhaupt erst zu initialisieren. Danach kannst du bequem neue benutzerdefinierte statische Klassenvariablen der Klasse `SoundEvent` nach Bedarf hinzufügen. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/sound/CustomSounds.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/sound/CustomSounds.java) Auf diese Weise, muss der Mod-Initialisierer nur eine Zeile zur Registrierung aller benutzerdefinierten SoundEvents implementieren. -@[code lang=java transcludeWith=:::2](@/reference/latest/src/main/java/com/example/docs/sound/FabricDocsReferenceSounds.java) +@[code lang=java transcludeWith=:::2](@/reference/1.21/src/main/java/com/example/docs/sound/FabricDocsReferenceSounds.java) ## Das benutzerdefinierte SoundEvent nutzen {#using-the-custom-soundevent} diff --git a/versions/1.21/translated/de_de/develop/sounds/dynamic-sounds.md b/versions/1.21/translated/de_de/develop/sounds/dynamic-sounds.md index 77441405b..acc8e2de5 100644 --- a/versions/1.21/translated/de_de/develop/sounds/dynamic-sounds.md +++ b/versions/1.21/translated/de_de/develop/sounds/dynamic-sounds.md @@ -132,7 +132,7 @@ Wenn du nur so etwas wie einen Klick auf ein UI-Element abspielen willst, gibt e Beachte, dass dies nur auf dem spezifischen Client abgespielt wird, der diesen Teil des Codes ausgeführt hat. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/FabricDocsDynamicSound.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/FabricDocsDynamicSound.java) :::warning Bitte beachte, dass die Klasse `AbstractSoundInstance`, von der `SoundInstance` erbt, die Annotation `@Environment(EnvType.CLIENT)` hat. @@ -156,7 +156,7 @@ Wenn wir dann einen Blick auf die Unterklasse `MovingSoundInstance` werfen, sehe Um diese Hilfsmittel zu nutzen, erstelle einfach eine neue Klasse für deine benutzerdefinierte `SoundInstance` und lass sie von `MovingSoundInstance` erben. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/sound/instance/CustomSoundInstance.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/sound/instance/CustomSoundInstance.java) Die Verwendung einer eigenen `Entity` oder `BlockEntity` anstelle der grundlegenden `LivingEntity`-Instanz kann dir noch mehr Kontrolle geben, z.B. in der `tick()`-Methode, die auf Accessor-Methoden basiert, aber du benötigst nicht unbedingt einen Verweis auf eine solche Soundquelle. Stattdessen könntest du auch von irgendwo anders auf eine `BlockPos` zugreifen oder sogar nur einmal im Konstruktor von Hand setzen. @@ -167,7 +167,7 @@ Wenn du feststellst, dass deine Werte nicht übereinstimmen, stelle sicher, dass Nachdem du deine benutzerdefinierte `SoundInstance` erstellt hast, kann sie überall verwendet werden, solange sie auf der Client-Seite mit dem Sound-Manager ausgeführt wurde. Auf die gleiche Weise kannst du die benutzerdefinierte `SoundInstance` auch manuell stoppen, falls erforderlich. -@[code lang=java transcludeWith=:::2](@/reference/latest/src/client/java/com/example/docs/FabricDocsDynamicSound.java) +@[code lang=java transcludeWith=:::2](@/reference/1.21/src/client/java/com/example/docs/FabricDocsDynamicSound.java) Die Audioschleife wird nun nur noch für den Client abgespielt, der diese SoundInstance ausgeführt hat. In diesem Fall folgt der Ton dem `ClientPlayerEntity` selbst. @@ -221,7 +221,7 @@ Anstatt z.B. eine benutzerdefinierte `BlockEntity` direkt zu referenzieren, reic In Zukunft werden wir ein benutzerdefiniertes Interface namens `DynamicSoundSource` verwenden. Es wird in allen Klassen implementiert, die diese dynamische Soundfunktionalität nutzen wollen, wie z. B. deine benutzerdefinierte `BlockEntity`, Entities oder sogar, unter Verwendung von Mixins, auf bereits existierenden Klassen, wie `ZombieEntity`. Sie stellt im Grunde nur die notwendigen Daten der Soundquelle dar. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/sound/DynamicSoundSource.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/sound/DynamicSoundSource.java) Nachdem du dieses Interface erstellt hast, stelle sicher, dass du es auch in den notwendigen Klassen implementierst. @@ -253,7 +253,7 @@ public enum TransitionState { Aber wenn diese Werte über das Netzwerk gesendet werden, möchtest du vielleicht einen `Identifier` für sie definieren oder sogar andere benutzerdefinierte Werte hinzufügen. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/sound/TransitionState.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/sound/TransitionState.java) :::info Auch hier gilt: Wenn du "geteilte Quellen" verwendest, musst du überlegen, wo du dieses Enum einsetzen willst. @@ -266,7 +266,7 @@ Wenn dieses Enum jedoch an anderer Stelle verwendet wird, z. B. in benutzerdefin Dieses Interface wird als Callback genutzt. Im Moment brauchen wir nur eine `onFinished`-Methode, aber du kannst deine eigenen Methoden hinzufügen, wenn du auch andere Signale vom `SoundInstance`-Objekt senden musst. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/sound/instance/SoundInstanceCallback.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/sound/instance/SoundInstanceCallback.java) Implementiere dieses Interface in jeder Klasse, die in der Lage sein sollte, die eingehenden Signale zu verarbeiten, z. B. in der `AbstractDynamicSoundInstance`, die wir in Kürze erstellen werden, um die Funktionalität in der benutzerdefinierten `SoundInstance` selbst zu erzeugen. @@ -286,39 +286,39 @@ Zusätzlich, werden wir mehr Eigenschaften definieren. - Tick-Halter, um den Fortschritt des aktuellen Sounds zu verfolgen. - ein Callback, welcher für das finale Aufräumen ein Signal zurück zu dem `DynamicSoundManager` sendet, wenn die `SoundInstance` tatsächlich fertig ist -@[code lang=java transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/sound/AbstractDynamicSoundInstance.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/sound/AbstractDynamicSoundInstance.java) Lege dann die Standard-Startwerte für die benutzerdefinierte `SoundInstance` im Konstruktor der abstrakten Klasse fest. -@[code lang=java transcludeWith=:::2](@/reference/latest/src/client/java/com/example/docs/sound/AbstractDynamicSoundInstance.java) +@[code lang=java transcludeWith=:::2](@/reference/1.21/src/client/java/com/example/docs/sound/AbstractDynamicSoundInstance.java) Nachdem der Konstruktor fertig ist, musst du der `SoundInstance` erlauben, zu spielen. -@[code lang=java transcludeWith=:::3](@/reference/latest/src/client/java/com/example/docs/sound/AbstractDynamicSoundInstance.java) +@[code lang=java transcludeWith=:::3](@/reference/1.21/src/client/java/com/example/docs/sound/AbstractDynamicSoundInstance.java) Jetzt kommt der wichtige Teil für diese dynamische `SoundInstance`. Je nachdem, wie die Instanz gerade tickt, kann sie verschiedene Werte und Verhaltensweisen anwenden. -@[code lang=java transcludeWith=:::4](@/reference/latest/src/client/java/com/example/docs/sound/AbstractDynamicSoundInstance.java) +@[code lang=java transcludeWith=:::4](@/reference/1.21/src/client/java/com/example/docs/sound/AbstractDynamicSoundInstance.java) Wie du sehen kannst, haben wir die Lautstärke- und Tonhöhenmodulation hier noch nicht angewendet. Wir wenden nur das gemeinsame Verhalten an. In dieser `AbstractDynamicSoundInstance` Klasse stellen wir also nur die Grundstruktur und die Werkzeuge für die Unterklassen zur Verfügung, die selbst entscheiden können, welche Art der Klangmodulation sie tatsächlich anwenden wollen. Werfen wir also einen Blick auf einige Beispiele für solche Klangmodulationsmethoden. -@[code lang=java transcludeWith=:::5](@/reference/latest/src/client/java/com/example/docs/sound/AbstractDynamicSoundInstance.java) +@[code lang=java transcludeWith=:::5](@/reference/1.21/src/client/java/com/example/docs/sound/AbstractDynamicSoundInstance.java) Wie du sehen kannst, helfen normalisierte Werte in Kombination mit linearer Interpolation (lerp) dabei, die Werte an die bevorzugten Audio-Grenzwerte anzupassen. Denk daran, dass du, wenn du mehrere Methoden hinzufügst, die denselben Wert ändern, beobachten und anpassen musst, wie sie miteinander zusammenarbeiten. Jetzt müssen wir nur noch die verbleibenden Hilfsmethoden hinzufügen und wir sind fertig mit der Klasse `AbstractDynamicSoundInstance`. -@[code lang=java transcludeWith=:::6](@/reference/latest/src/client/java/com/example/docs/sound/AbstractDynamicSoundInstance.java) +@[code lang=java transcludeWith=:::6](@/reference/1.21/src/client/java/com/example/docs/sound/AbstractDynamicSoundInstance.java) ### Beispiel `SoundInstance` Implementation {#example-soundinstance-implementation} Wenn wir uns die eigentliche benutzerdefinierte Klasse `SoundInstance` ansehen, die von der neu erstellten Klasse `AbstractDynamicSoundInstance` abgeleitet ist, müssen wir uns nur überlegen, unter welchen Bedingungen der Klang zum Stillstand kommt und welche Klangmodulation wir anwenden wollen. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/sound/instance/EngineSoundInstance.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/sound/instance/EngineSoundInstance.java) ### `DynamicSoundManager` Klasse {#dynamicsoundmanager-class} @@ -327,7 +327,7 @@ Wir haben [früher](#using-a-soundinstance) besprochen, wie man eine `SoundInsta Diese neue Klasse `DynamicSoundManager` wird die benutzerdefinierten `SoundInstances` verwalten, so dass sie auch nur auf der Client-Seite zur Verfügung stehen wird. Darüber hinaus sollte ein Client immer nur eine Instanz dieser Klasse zulassen. Mehrere Soundmanager für einen einzigen Client wären nicht sehr sinnvoll und würden die Interaktionen noch komplizierter machen. Lasst uns ein ["Singleton Design Pattern"](https://refactoring.guru/design-patterns/singleton/java/example) nutzen. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/sound/DynamicSoundManager.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/sound/DynamicSoundManager.java) Wenn die Grundstruktur stimmt, kannst du die Methoden hinzufügen, die für die Interaktion mit dem Soundsystem erforderlich sind. @@ -335,7 +335,7 @@ Wenn die Grundstruktur stimmt, kannst du die Methoden hinzufügen, die für die - Sounds stoppen - Prüfen, ob ein Sound gerade abgespielt wird -@[code lang=java transcludeWith=:::2](@/reference/latest/src/client/java/com/example/docs/sound/DynamicSoundManager.java) +@[code lang=java transcludeWith=:::2](@/reference/1.21/src/client/java/com/example/docs/sound/DynamicSoundManager.java) Anstatt nur eine Liste aller aktuell spielenden `SoundInstances` zu haben, könnte man auch verfolgen, welche Soundquellen welche Sounds spielen. So würde es beispielsweise keinen Sinn machen, wenn ein Motor zwei Motorengeräusche gleichzeitig abspielt, während mehrere Motoren, die ihre jeweiligen Motorengeräusche abspielen, einen zulässigen Sonderfall darstellen. Der Einfachheit halber haben wir nur eine `Liste` erstellt, aber in vielen Fällen könnte eine `HashMap` aus `DynamicSoundSource` und einer AbstractDynamicSoundInstance\` eine bessere Wahl sein. @@ -344,7 +344,7 @@ So würde es beispielsweise keinen Sinn machen, wenn ein Motor zwei Motorengerä Um dieses Soundsystem zu verwenden, musst du entweder die Methoden von `DynamicSoundManager` oder die Methoden von `SoundInstance` verwenden. Mit Hilfe von `onStartedTrackingBy` und `onStoppedTrackingBy` von Entitäten oder einfach nur benutzerdefinierten S2C-Netzwerkpacketen kannst du jetzt deine benutzerdefinierten dynamischen `SoundInstance`s starten und stoppen. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/network/ReceiveS2C.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/network/ReceiveS2C.java) Das Endprodukt kann seine Lautstärke auf der Grundlage der Soundphase anpassen, um die Übergänge zu glätten, und die Tonhöhe auf der Grundlage eines Stresswertes ändern, der von der Soundquelle stammt. diff --git a/versions/1.21/translated/de_de/develop/sounds/using-sounds.md b/versions/1.21/translated/de_de/develop/sounds/using-sounds.md index 61b41451c..5b1524563 100644 --- a/versions/1.21/translated/de_de/develop/sounds/using-sounds.md +++ b/versions/1.21/translated/de_de/develop/sounds/using-sounds.md @@ -15,11 +15,11 @@ Stelle sicher, dass du die Methode `playSound()` auf der logischen Serverseite a In diesem Beispiel werden die Methoden `useOnEntity()` und `useOnBlock()` für ein benutzerdefiniertes interaktives Item verwendet, um einen "platzierenden Kupferblock" und einen Plünderer-Sound abzuspielen. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/item/CustomSoundItem.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/item/CustomSoundItem.java) Die Methode `playSound()` wird mit dem `LivingEntity` Objekt verwendet. Nur das SoundEvent, die Lautstärke und die Tonhöhe müssen angegeben werden. Es kann auch die Methode `playSound()` aus der Weltinstanz verwenden werden, um mehr Möglichkeiten bei der Parameterauswahl zu haben. -@[code lang=java transcludeWith=:::2](@/reference/latest/src/main/java/com/example/docs/item/CustomSoundItem.java) +@[code lang=java transcludeWith=:::2](@/reference/1.21/src/main/java/com/example/docs/item/CustomSoundItem.java) ### SoundEvent und SoundCategory {#soundevent-and-soundcategory} diff --git a/versions/1.21/translated/de_de/develop/text-and-translations.md b/versions/1.21/translated/de_de/develop/text-and-translations.md index 0434df7d1..56e2cfb24 100644 --- a/versions/1.21/translated/de_de/develop/text-and-translations.md +++ b/versions/1.21/translated/de_de/develop/text-and-translations.md @@ -84,7 +84,7 @@ Wenn du auf den Angreifer verweisen möchtest, würdest du %2\$s verwenden, weil Wie bereits erwähnt, kann Text mit dem Text Codec in JSON serialisiert werden. Weitere Informationen über Codecs findest du auf der Seite [Codec](./codecs). -@[code transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/rendering/TextTests.java) +@[code transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/rendering/TextTests.java) Dadurch wird JSON erzeugt, das in Datenpaketen, Befehlen und an anderen Stellen verwendet werden kann, die das JSON-Format von Text anstelle von literalen oder übersetzbarem Text akzeptieren. @@ -92,7 +92,7 @@ Dadurch wird JSON erzeugt, das in Datenpaketen, Befehlen und an anderen Stellen Um ein JSON-Textobjekt in eine tatsächliche `Text`-Klasse zu deserialisieren, ist ebenfalls der Codec zu verwenden. -@[code transcludeWith=:::2](@/reference/latest/src/client/java/com/example/docs/rendering/TextTests.java) +@[code transcludeWith=:::2](@/reference/1.21/src/client/java/com/example/docs/rendering/TextTests.java) ## Text formatieren {#formatting-text} diff --git a/versions/1.21/translated/es_es/contributing.md b/versions/1.21/translated/es_es/contributing.md index 98c5cc403..5b775b571 100644 --- a/versions/1.21/translated/es_es/contributing.md +++ b/versions/1.21/translated/es_es/contributing.md @@ -84,7 +84,7 @@ La guía de estilo es la siguiente: **Por ejemplo:** ```md - <<< @/reference/latest/src/main/java/com/example/docs/FabricDocsReference.java{15-21 java} + <<< @/reference/1.21/src/main/java/com/example/docs/FabricDocsReference.java{15-21 java} ``` Esto adjuntará las líneas 15-21 del archivo `FabricDocsReference.java` del mod de referencia. diff --git a/versions/1.21/translated/es_es/develop/codecs.md b/versions/1.21/translated/es_es/develop/codecs.md index b5d09b77b..909d757c6 100644 --- a/versions/1.21/translated/es_es/develop/codecs.md +++ b/versions/1.21/translated/es_es/develop/codecs.md @@ -315,11 +315,11 @@ Por ejemplo, digamos que tenemos una interfaz abstracta `Bean`, con dos clases i Con todo esto, puedes crear un despacho de registros para beans: -@[code transcludeWith=:::](@/reference/latest/src/main/java/com/example/docs/codec/Bean.java) -@[code transcludeWith=:::](@/reference/latest/src/main/java/com/example/docs/codec/BeanType.java) -@[code transcludeWith=:::](@/reference/latest/src/main/java/com/example/docs/codec/StringyBean.java) -@[code transcludeWith=:::](@/reference/latest/src/main/java/com/example/docs/codec/CountingBean.java) -@[code transcludeWith=:::](@/reference/latest/src/main/java/com/example/docs/codec/BeanTypes.java) +@[code transcludeWith=:::](@/reference/1.21/src/main/java/com/example/docs/codec/Bean.java) +@[code transcludeWith=:::](@/reference/1.21/src/main/java/com/example/docs/codec/BeanType.java) +@[code transcludeWith=:::](@/reference/1.21/src/main/java/com/example/docs/codec/StringyBean.java) +@[code transcludeWith=:::](@/reference/1.21/src/main/java/com/example/docs/codec/CountingBean.java) +@[code transcludeWith=:::](@/reference/1.21/src/main/java/com/example/docs/codec/BeanTypes.java) ```java // Ahora podemos crear un codec para los tipos de bean diff --git a/versions/1.21/translated/es_es/develop/commands/arguments.md b/versions/1.21/translated/es_es/develop/commands/arguments.md index d0d1b7568..d128cf4be 100644 --- a/versions/1.21/translated/es_es/develop/commands/arguments.md +++ b/versions/1.21/translated/es_es/develop/commands/arguments.md @@ -7,19 +7,19 @@ description: Aprende a crear comandos con argumentos complejos. Los argumentos son usados en la mayoría de los comandos. Algunas veces pueden ser opcionales, lo que significa que el usuario no tiene que dar un argumento para que el comando corra. Un nodo puede tener múltiples tipos de argumentos, pero ten cuidado de no crear ambigüedades. -@[code lang=java highlight={3} transcludeWith=:::4](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={3} transcludeWith=:::4](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) En este caso, después del texto del comando `/argtater`, debes escribir un número entero. Por ejemplo, si corres `/argtater 3`, obtendrás el mensaje de respuesta `Called /argtater with value = 3`. Si escribes `/argtater` sin argumentos, el comando no puede ser leído y analizado correctamente. Ahora añadimos un segundo argumento opcional: -@[code lang=java highlight={3,13} transcludeWith=:::5](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={3,13} transcludeWith=:::5](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) Ahora puedes escribir uno o dós números enteros. Si le das un número entero, se mostrará un mensaje de respuesta con un solo valor. Si das dos números enteros, se mostrará un mensaje de respuesta con dos valores. Puede que sientas que sea innecesario tener que especificar ejecuciones similares dos veces. Para ello, crearemos un método que se usará para ambas ejecuciones. -@[code lang=java highlight={3,5,6,7} transcludeWith=:::6](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={3,5,6,7} transcludeWith=:::6](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) ## Tipos de Argumentos Personalizados @@ -29,7 +29,7 @@ Necesitarás implementar el método `parse`, el cual leerá y analizará la cade Por ejemplo, puedes crear un tipo de argumento que lea un `BlockPos` a partir de una cadena de caracteres con el siguiente formato: `{x, y, z}` -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/command/BlockPosArgumentType.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/command/BlockPosArgumentType.java) ### Registrar Tipos de Argumentos Personalizados @@ -39,13 +39,13 @@ Por ejemplo, puedes crear un tipo de argumento que lea un `BlockPos` a partir de Puedes registrar tu propio tipo de argumento personalizado en el método `onInitialize` del inicializador de tu mod usando la clase `ArgumentTypeRegistry`: -@[code lang=java transcludeWith=:::11](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::11](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) ### Usar Argumentos de Comandos Personalizados Podemos usar nuestro tipo de argumento personalizado en un comando pasando una instancia de él al método `.argument` en el constructor del comando. -@[code lang=java transcludeWith=:::10 highlight={3}](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::10 highlight={3}](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) Al correr el comando, podemos verificar que el tipo de argumento funciona: diff --git a/versions/1.21/translated/es_es/develop/commands/basics.md b/versions/1.21/translated/es_es/develop/commands/basics.md index f5e5feaa8..21cd4e671 100644 --- a/versions/1.21/translated/es_es/develop/commands/basics.md +++ b/versions/1.21/translated/es_es/develop/commands/basics.md @@ -73,7 +73,7 @@ El callback tiene tres parámetros: En el inicializador de mod, solo registramos un comando simple: -@[code lang=java transcludeWith=:::_1](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::_1](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) En el método `sendFeedback()`, el primer parámetro es el texto a ser enviado, el cual está en un `Supplier` (Proveedor) para no tener que instanciar nuevos objetos `Text` (Texto) cuando no es necesario. @@ -89,13 +89,13 @@ Para ejecutar este comando, debes escribir `/foo`; aquí importan las mayúscula Si se desea, también puedes asegurarte que un comando solo es registrado bajo ciertas circunstancias específicas, por ejemplo, solo en el ambiente dedicado: -@[code lang=java highlight={2} transcludeWith=:::2](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={2} transcludeWith=:::2](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) ### Requerimientos de Comandos Digamos que tienes un comando y que quieres que solo los operadores puedan ejecutarlo. Aquí entra el método `requires()`. El método `requieres()` tiene un argumento de un `Predicate` (Condición) el cual proveerá un `ServerCommandSource` el cual será probado con la condición data para determinar si el `CommandSource` puede ejecutar el comando. -@[code lang=java highlight={3} transcludeWith=:::3](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={3} transcludeWith=:::3](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) Este comando solo se ejecutará si la fuente del comando es un operador nivel 2 como mínimo, incluyendo bloques de comandos. De lo contrario, el comando no es registrado. @@ -105,23 +105,23 @@ Esto tiene el efecto secundario de que el comando no se muestra con la auto comp Para agregar un sub comando, registras el primer nodo de comando normalmente. Para tener un sub comando, tienes que adjuntar el siguiente literal de nodo de comando al nodo existente. -@[code lang=java highlight={3} transcludeWith=:::7](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={3} transcludeWith=:::7](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) Similarmente a los argumentos, los nodos de sub comandos pueden ser opcionales. En el siguiente caso ambos comandos `/subtater` y `/subtater subcommand` serán válidos. -@[code lang=java highlight={2,8} transcludeWith=:::8](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={2,8} transcludeWith=:::8](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) ## Comandos de Cliente El Fabric API tiene una clase `ClientCommandManager` en el paquete de `net.fabricmc.fabric.api.client.command.v2` que puede ser usado para registrar comandos en el lado del cliente. Este código solo debe existir en el lado del cliente. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/client/command/FabricDocsReferenceClientCommands.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/client/command/FabricDocsReferenceClientCommands.java) ## Redireccionando Comandos Redireccionadores de comandos - también llamados aliases - son una manea de redireccionar la funcionalidad de un comando a otro. Esto es útil cuando quieres cambiar el nombre de un comando, pero todavía quieres mantener soporte para el nombre viejo. -@[code lang=java transcludeWith=:::12](@/reference/latest/src/client/java/com/example/docs/client/command/FabricDocsReferenceClientCommands.java) +@[code lang=java transcludeWith=:::12](@/reference/1.21/src/client/java/com/example/docs/client/command/FabricDocsReferenceClientCommands.java) ## Preguntas Frequentes diff --git a/versions/1.21/translated/es_es/develop/commands/suggestions.md b/versions/1.21/translated/es_es/develop/commands/suggestions.md index 517a71938..544d1093d 100644 --- a/versions/1.21/translated/es_es/develop/commands/suggestions.md +++ b/versions/1.21/translated/es_es/develop/commands/suggestions.md @@ -17,7 +17,7 @@ Un `SuggestionProvider` (Proveedor de Sugerencias) es usado para crear una lista Para usar un proveedor de sugerencias, tienes que llamar el método `suggests` en el constructor del argumento. Este método tiene un parámetro `SuggestionProvider` y retorna un nuevo constructor de argumento con el proveedor de sugerencias adjuntado. -@[code java transcludeWith=:::9 highlight={4}](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code java transcludeWith=:::9 highlight={4}](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) ## Proveedores de Sugerencias Incluidos @@ -36,7 +36,7 @@ Si un proveedor incluido no suficiente para tus necesidades, puedes crear tu pro Para este ejemplo, haremos un proveedor de sugerencias que sugiere todos los nombres de usuario de los jugadores en el servidor. -@[code java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/command/PlayerSuggestionProvider.java) +@[code java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/command/PlayerSuggestionProvider.java) Para usar este proveedor de sugerencias, simplemente pasa una instancia de él en el método `.suggests` en el constructor del argumento. diff --git a/versions/1.21/translated/es_es/develop/entities/damage-types.md b/versions/1.21/translated/es_es/develop/entities/damage-types.md index 41dbe1506..42018b2c5 100644 --- a/versions/1.21/translated/es_es/develop/entities/damage-types.md +++ b/versions/1.21/translated/es_es/develop/entities/damage-types.md @@ -21,7 +21,7 @@ resources/data/fabric-docs-reference/damage_type/tater.json Tiene la siguiente estructura: -@[code lang=json](@/reference/latest/src/main/generated/data/fabric-docs-reference/damage_type/tater.json) +@[code lang=json](@/reference/1.21/src/main/generated/data/fabric-docs-reference/damage_type/tater.json) Este tipo de daño personalizado causa un aumento de 0.1 en [cansancio de hambre](https://minecraft.wiki/w/Hunger#Exhaustion_level_increase) cada vez que el jugador toma daño, cuando el daño es ocasionado por una fuente viviente que no sea otro jugador (por ejemplo, un bloque). Adicionalmente, la cantidad de daño dado dependerá de la dificultad del mundo @@ -37,7 +37,7 @@ Cuando necesitamos acceder nuestro tipo de daño en el código, necesitaremos us El `RegistryKey` puede ser obtenida de la siguiente manera: -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/damage/FabricDocsReferenceDamageTypes.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/damage/FabricDocsReferenceDamageTypes.java) ### Usando los Tipos de Daño @@ -47,15 +47,15 @@ Puedes anular el método `onSteppedOn` para dar este daño. Empezamos creando un `DamageSource` de nuestro tipo de daño personalizado. -@[code lang=java transclude={21-24}](@/reference/latest/src/main/java/com/example/docs/damage/TaterBlock.java) +@[code lang=java transclude={21-24}](@/reference/1.21/src/main/java/com/example/docs/damage/TaterBlock.java) Después, llamamos `entity.damage()` con nuestro `DamageSource` y una cantidad. -@[code lang=java transclude={25-25}](@/reference/latest/src/main/java/com/example/docs/damage/TaterBlock.java) +@[code lang=java transclude={25-25}](@/reference/1.21/src/main/java/com/example/docs/damage/TaterBlock.java) La implementación del bloque completa: -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/damage/TaterBlock.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/damage/TaterBlock.java) Ahora cuando una entidad viviente pise sobre nuestro bloque personalizado, tomará 5 de daño (2.5 corazones) usando nuestro tipo de daño personalizado. @@ -63,7 +63,7 @@ Ahora cuando una entidad viviente pise sobre nuestro bloque personalizado, tomar Puedes definir un mensje de muerte para el tipo de daño en el formato de `death.attack.` en nuestro archivo `en_us.json` de nuestro mod. -@[code lang=json transclude={4-4}](@/reference/latest/src/main/resources/assets/fabric-docs-reference/lang/en_us.json) +@[code lang=json transclude={4-4}](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/lang/en_us.json) Cuando suceda una muerta por nuestro tipo de daño, verás el siguiente mensaje: @@ -91,6 +91,6 @@ data/minecraft/tags/damage_type/bypasses_armor.json Con el siguiente contenido: -@[code lang=json](@/reference/latest/src/main/generated/data/minecraft/tags/damage_type/bypasses_armor.json) +@[code lang=json](@/reference/1.21/src/main/generated/data/minecraft/tags/damage_type/bypasses_armor.json) Asegúrate que tu tag no reemplace el tag existente dándole un valor de `false` a la llave de `replace`. diff --git a/versions/1.21/translated/es_es/develop/entities/effects.md b/versions/1.21/translated/es_es/develop/entities/effects.md index aabc8ea4b..48511f7a8 100644 --- a/versions/1.21/translated/es_es/develop/entities/effects.md +++ b/versions/1.21/translated/es_es/develop/entities/effects.md @@ -26,13 +26,13 @@ En este tutorial añadiremos un nuevo efecto de estado personalizado llamado _Ta Vamos a crear una para nuestro efecto de estado personalizado extendiendo la clase `StatusEffect`, el cual es la clase base para todos los efectos. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/effect/TaterEffect.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/effect/TaterEffect.java) ### Registrar tu Efecto Personalizado Similar a la registración de bloques e items, usamos `Registry.register` para registrar nuestro efecto personalizado en el registro de `STATUS_EFFECT`. Esto se puede hacer en nuestro inicializador. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/effect/FabricDocsReferenceEffects.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/effect/FabricDocsReferenceEffects.java) ### Traducciones y Texturas diff --git a/versions/1.21/translated/es_es/develop/events.md b/versions/1.21/translated/es_es/develop/events.md index 25de86e20..c26845e0b 100644 --- a/versions/1.21/translated/es_es/develop/events.md +++ b/versions/1.21/translated/es_es/develop/events.md @@ -43,7 +43,7 @@ Todas las interfaces de callbacks para eventos proveídas por el Fabric API pued Este ejemplo registra un `AttackBlockCallback` para atacar el jugador cuando este golpea bloques que no sueltan un item cuando son minados con la mano. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/event/FabricDocsReferenceEvents.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/event/FabricDocsReferenceEvents.java) ### Añadiendo Items a Loot Tables Existentes @@ -57,7 +57,7 @@ Agregaremos huevos al loot table del bloque de mena de hierro. El Fabric API tiene un evento que es llamado cuando los loot tables son cargados, llamado `LootTableEvents.MODIFY`. Puedes registrar un callback para el evento en tu inicializador de mod. Verifiquemos también que el loot table actual sea el del bloque de mena de hierro. -@[code lang=java transclude={38-40}](@/reference/latest/src/main/java/com/example/docs/event/FabricDocsReferenceEvents.java) +@[code lang=java transclude={38-40}](@/reference/1.21/src/main/java/com/example/docs/event/FabricDocsReferenceEvents.java) #### Agregando Items al Loot Table @@ -67,7 +67,7 @@ Podemos crear un grupo con `LootPool#builder`, y agregarlo al loot table. Nuestro grupo no tiene ningún item, asique haremos una entrada de item usando `ItemEntry#builder`, y la agregaremos al grupo. -@[code highlight={6-7} transcludeWith=:::2](@/reference/latest/src/main/java/com/example/docs/event/FabricDocsReferenceEvents.java) +@[code highlight={6-7} transcludeWith=:::2](@/reference/1.21/src/main/java/com/example/docs/event/FabricDocsReferenceEvents.java) ## Eventos Personalizados @@ -91,34 +91,34 @@ Usar `ActionResult` como valor de retorno es una manera convencional para hacer Necesitarás crear una interfaz que tiene una instancia de `Event` y un método para la implementación de la respuesta. Una configuración básica para nuestro callback de esquilado de oveja es: -@[code lang=java transcludeWith=:::](@/reference/latest/src/main/java/com/example/docs/event/SheepShearCallback.java) +@[code lang=java transcludeWith=:::](@/reference/1.21/src/main/java/com/example/docs/event/SheepShearCallback.java) Veamos este códigdo con más detalle. Cuando el invocador es llamado, iteramos sobre todos los escuchadores: -@[code lang=java transclude={21-22}](@/reference/latest/src/main/java/com/example/docs/event/SheepShearCallback.java) +@[code lang=java transclude={21-22}](@/reference/1.21/src/main/java/com/example/docs/event/SheepShearCallback.java) Entonces llamamos nuestro método (en este caso, `interact`), en el escuchador para obtener su respuesta: -@[code lang=java transclude={33-33}](@/reference/latest/src/main/java/com/example/docs/event/SheepShearCallback.java) +@[code lang=java transclude={33-33}](@/reference/1.21/src/main/java/com/example/docs/event/SheepShearCallback.java) Si el escuchador dice que tenemos que cancelar (`ActionResult.FAIL`) o terminar completamente (`ActionResult.SUCCESS`), el callback retorna el resultado y termina el loop. `ActionResult.PASS` prosigue al siguiente escuchador, y en la mayoría de los casos debería resultar en éxito si no hay más escuchadores registrados: -@[code lang=java transclude={25-30}](@/reference/latest/src/main/java/com/example/docs/event/SheepShearCallback.java) +@[code lang=java transclude={25-30}](@/reference/1.21/src/main/java/com/example/docs/event/SheepShearCallback.java) Podemos agregar Javadocs por encima de las clases de callback para documentar que es lo que hace cada `ActionResult`. En nuestro caso, puede ser: -@[code lang=java transclude={9-16}](@/reference/latest/src/main/java/com/example/docs/event/SheepShearCallback.java) +@[code lang=java transclude={9-16}](@/reference/1.21/src/main/java/com/example/docs/event/SheepShearCallback.java) ### Activando el Evento Desde un Mixin Ya tenemos el esqueleto básico de nuestro evento, pero necesitamos llamarlo o activarlo. Ya que queremos que nuestro evento sea llamado cuando un jugador trata de esquilar una oveja, podemos llamado el invocador `invoker` del evento en `SheepEntity#interactMob`, cuando el método `sheared()` es llamado (osea que la oveja puede ser esquilada, y el jugador está sosteniendo tijeras): -@[code lang=java transcludeWith=:::](@/reference/latest/src/main/java/com/example/docs/mixin/event/SheepEntityMixin.java) +@[code lang=java transcludeWith=:::](@/reference/1.21/src/main/java/com/example/docs/mixin/event/SheepEntityMixin.java) ### Creando una Implementación de Prueba Ahora necesitamos probar nuestro evento. Puedes registrar un escuchador en tu método de inicialización (o en otro lugar, si lo prefieres) y poner tu propio código ahí. En este ejemplo, cuando la oveja es esquilada, suelta un diamante en vez de lana: -@[code lang=java transcludeWith=:::3](@/reference/latest/src/main/java/com/example/docs/event/FabricDocsReferenceEvents.java) +@[code lang=java transcludeWith=:::3](@/reference/1.21/src/main/java/com/example/docs/event/FabricDocsReferenceEvents.java) Si entras al juego y esquilas una oveja, un diamante debería ser soltado en vez de lana. diff --git a/versions/1.21/translated/es_es/develop/getting-started/project-structure.md b/versions/1.21/translated/es_es/develop/getting-started/project-structure.md index 8923742a1..139328511 100644 --- a/versions/1.21/translated/es_es/develop/getting-started/project-structure.md +++ b/versions/1.21/translated/es_es/develop/getting-started/project-structure.md @@ -25,7 +25,7 @@ Los campos más importantes en el archivo `fabric.mod.json` son: Puedes ver un ejemplo del archivo `fabric.mod.json` abajo - este es el archivo `fabric.mod.json` del proyecto de referencia que este sitio de documentación utiliza. :::details Proyecto de Referencia `fabric.mod.json` -@[code lang=json](@/reference/latest/src/main/resources/fabric.mod.json) +@[code lang=json](@/reference/1.21/src/main/resources/fabric.mod.json) ::: ## Puntos de Entrada @@ -34,7 +34,7 @@ Como ya fue mencionado, el archivo `fabric.mod.json` contiene un campo llamado ` El generador de plantillas de mods crea los puntos de entrada `main` y `client` por defecto - el punto de entrada de `main` es usado para código común, mientras que el punto de entrada de `client` es usado para código exclusivo o específico para el cliente. Estos puntos de entrada son llamados respectivamente cuando el juego comienza. -@[code lang=java transcludeWith=#entrypoint](@/reference/latest/src/main/java/com/example/docs/FabricDocsReference.java) +@[code lang=java transcludeWith=#entrypoint](@/reference/1.21/src/main/java/com/example/docs/FabricDocsReference.java) Lo anterior es un ejemplo de un punto de entrada de `main` simple, el cual manda un mensaje a la consola cuando el juego empieza. diff --git a/versions/1.21/translated/es_es/develop/rendering/draw-context.md b/versions/1.21/translated/es_es/develop/rendering/draw-context.md index f9b1b7ba5..9df0a0337 100644 --- a/versions/1.21/translated/es_es/develop/rendering/draw-context.md +++ b/versions/1.21/translated/es_es/develop/rendering/draw-context.md @@ -19,7 +19,7 @@ La clase `DrawContext` puede ser usada para fácilmente dibujar formas **basadas Puedes usar el método `DrawContext.fill(...)` para dibujar un rectángulo rellenado. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) ![Un rectángulo](/assets/develop/rendering/draw-context-rectangle.png) @@ -27,7 +27,7 @@ Puedes usar el método `DrawContext.fill(...)` para dibujar un rectángulo relle Digamos que queremos delinear el rectángulo que acabamos de dibujar. Podemos usar el método `DrawContext.drawBorder(...)` para dibujar un contorno. -@[code lang=java transcludeWith=:::2](@/reference/latest/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) +@[code lang=java transcludeWith=:::2](@/reference/1.21/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) ![Rectángulo con bordes](/assets/develop/rendering/draw-context-rectangle-border.png) @@ -35,7 +35,7 @@ Digamos que queremos delinear el rectángulo que acabamos de dibujar. Podemos us Podemos usar los métodos `DrawContext.drawHorizontalLine(...)` y `DrawContext.drawVerticalLine(...)` para dibujar líneas. -@[code lang=java transcludeWith=:::3](@/reference/latest/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) +@[code lang=java transcludeWith=:::3](@/reference/1.21/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) ![Líneas](/assets/develop/rendering/draw-context-lines.png) @@ -51,7 +51,7 @@ La clase `DrawContext` tiene un _scissor manager_ ya incluido. Esto te permite c Para habilitar el _scissor manager_, simplemente usa el método `DrawContext.enableScissor(...)`. De igual forma, para deshabilitar el _scissor manager_, usa el método `DrawContext.disableScissor()`. -@[code lang=java transcludeWith=:::4](@/reference/latest/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) +@[code lang=java transcludeWith=:::4](@/reference/1.21/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) ![Regiones de tijera en acción](/assets/develop/rendering/draw-context-scissor.png) @@ -65,7 +65,7 @@ No hay una sola manera "correcta" de dibujar texturas en la pantalla, ya que el Generalmente, es recomendado que uses la sobrecarga que especifique los parámetros de `textureWidth` y el `textureHeight`. Esto es porque la clase `DrawContext` asumirá estos valores si no los provees, los cuales pueden estar incorrectos algunas veces. -@[code lang=java transcludeWith=:::5](@/reference/latest/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) +@[code lang=java transcludeWith=:::5](@/reference/1.21/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) ![Ejemplo de diubjar la textura entera](/assets/develop/rendering/draw-context-whole-texture.png) @@ -79,7 +79,7 @@ Tomemos esta textura como ejemplo. Si solo queremos dibujar una región que contiene el lente magnificador, podemos usar los siguientes valores para `u`, `v`, `regionWidth`, y `regionHeight`: -@[code lang=java transcludeWith=:::6](@/reference/latest/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) +@[code lang=java transcludeWith=:::6](@/reference/1.21/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) ![Región de Textura](/assets/develop/rendering/draw-context-region-texture.png) @@ -89,6 +89,6 @@ La clase `DrawContext` tiene varios métodos fáciles de entender para renderiza Digamos que queremos dibujar "Hello World" en la pantalla. Podemos usar el método `DrawContext.drawText(...)` para esto. -@[code lang=java transcludeWith=:::7](@/reference/latest/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) +@[code lang=java transcludeWith=:::7](@/reference/1.21/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) ![Dibujar Texto](/assets/develop/rendering/draw-context-text.png) diff --git a/versions/1.21/translated/es_es/develop/rendering/gui/custom-screens.md b/versions/1.21/translated/es_es/develop/rendering/gui/custom-screens.md index 93895aa00..18dddd3b7 100644 --- a/versions/1.21/translated/es_es/develop/rendering/gui/custom-screens.md +++ b/versions/1.21/translated/es_es/develop/rendering/gui/custom-screens.md @@ -28,7 +28,7 @@ Toma en cuenta que: Por ejemplo, podemos crear una pantalla simple que tiene un botón y una etiqueta arriba. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/rendering/screens/CustomScreen.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/rendering/screens/CustomScreen.java) ![Pantalla Personalizada 1](/assets/develop/rendering/gui/custom-1-example.png) @@ -52,7 +52,7 @@ MinecraftClient.getInstance().setScreen(null); Si quieres ser más elegante, y retornar a la pantalla anterior, puedes pasar la pantalla actual al constructor de la clase de `CustomScreen` y guardarla en un miembro, y después puedes usarlo para volver a la pantalla anterior cuando el método `close` es llamado. -@[code lang=java transcludeWith=:::2](@/reference/latest/src/client/java/com/example/docs/rendering/screens/CustomScreen.java) +@[code lang=java transcludeWith=:::2](@/reference/1.21/src/client/java/com/example/docs/rendering/screens/CustomScreen.java) Ahora, cuando abramos la pantalla personalizada, puedes pasar la pantalla actual como el segundo argumento - para que cuando llames `CustomScreen#close` - volverá a la pantalla anterior. diff --git a/versions/1.21/translated/es_es/develop/rendering/gui/custom-widgets.md b/versions/1.21/translated/es_es/develop/rendering/gui/custom-widgets.md index fe9476afc..a8d3d57c2 100644 --- a/versions/1.21/translated/es_es/develop/rendering/gui/custom-widgets.md +++ b/versions/1.21/translated/es_es/develop/rendering/gui/custom-widgets.md @@ -18,13 +18,13 @@ Hay varias maneras de crear una clase widget, como extender `ClickableWidget` (W - `Narratable` - para accesibilidad - Requerido para que tu widget sea accesible a lectores de pantalla y otras herramientas de accesibilidad. - `Seleccionable` - para selecciones - Requerido si quieres que tu widget sea seleccionable usando la tecla Tab - esto también ayuda en accesibilidad. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/rendering/screens/CustomWidget.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/rendering/screens/CustomWidget.java) ## Agregar el Widget a La Pantalla Como todos los widgets, necesitarás agregarlo a la pantalla mediante el método `addDrawableChild`, el cual es proveído por la clase `Screen`. Asegúrate de hacerlo en el método `init`. -@[code lang=java transcludeWith=:::3](@/reference/latest/src/client/java/com/example/docs/rendering/screens/CustomScreen.java) +@[code lang=java transcludeWith=:::3](@/reference/1.21/src/client/java/com/example/docs/rendering/screens/CustomScreen.java) ![Widget personalizado en la pantalla](/assets/develop/rendering/gui/custom-widget-example.png) @@ -34,6 +34,6 @@ Puedes manejar eventos como clicks del mouse, cuando se presiona una tecla, anul Por ejemplo, puedes hacer que el widget cambie color cuando el mouse está flotando encima del widget usando el método `isHovering()` proveído por la clase `ClickableWidget`: -@[code lang=java transcludeWith=:::2](@/reference/latest/src/client/java/com/example/docs/rendering/screens/CustomWidget.java) +@[code lang=java transcludeWith=:::2](@/reference/1.21/src/client/java/com/example/docs/rendering/screens/CustomWidget.java) ![Ejemplo de Evento de Mouse Flotando](/assets/develop/rendering/gui/custom-widget-events.webp) diff --git a/versions/1.21/translated/es_es/develop/rendering/particles/creating-particles.md b/versions/1.21/translated/es_es/develop/rendering/particles/creating-particles.md index 735b80df7..f1c81138f 100644 --- a/versions/1.21/translated/es_es/develop/rendering/particles/creating-particles.md +++ b/versions/1.21/translated/es_es/develop/rendering/particles/creating-particles.md @@ -15,7 +15,7 @@ Agregaremos una nueva partícula brillante cuyo movimiento se asemejara al de la Primero tenemos que registrar un `ParticleType` (Tipo de Partícula) en nuestra clase inicializadora de mod usando nuestro _mod id_. -@[code lang=java transcludeWith=#particle_register_main](@/reference/latest/src/main/java/com/example/docs/FabricDocsReference.java) +@[code lang=java transcludeWith=#particle_register_main](@/reference/1.21/src/main/java/com/example/docs/FabricDocsReference.java) El "sparkle_particle" en letras minúsculas es la dirección JSON para la textura de la partícula. Crearás un archivo JSON con ese mismo nombre más adelante. @@ -23,7 +23,7 @@ El "sparkle_particle" en letras minúsculas es la dirección JSON para la textur Después de registrar la partícula en la entrada de `ModInitializer`, también necesitarás registrar la partícula en la entrada de `ClientModInitializer` (Inicializador del Mod de Cliente). -@[code lang=java transcludeWith=#particle_register_client](@/reference/latest/src/client/java/com/example/docs/FabricDocsReferenceClient.java) +@[code lang=java transcludeWith=#particle_register_client](@/reference/1.21/src/client/java/com/example/docs/FabricDocsReferenceClient.java) En este ejemplo, estamos registrando nuestra partícula en el lado del cliente. Después estamos dándole movimiento usando la fábrica de partículas de la vara del end. Esto significa que nuestra partícula se moverá exactamente como una partícula de vara del end. @@ -47,7 +47,7 @@ Para este ejemplo, solo tendremos una textura en `textures/particle` llamada "sp Después, creamos un nuevo archivo JSON en `particles` con el mismo nombre que la dirección JSON que usaste para registrar tu `ParticleType`. Para este ejemplo, tendremos que crear `sparkle_particle.json`. Este archivo es importante, ya que le hace saber a Minecraft que texturas debería usar para nuestra partícula. -@[code lang=json](@/reference/latest/src/main/resources/assets/fabric-docs-reference/particles/sparkle_particle.json) +@[code lang=json](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/particles/sparkle_particle.json) :::tip Puedes agregar más texturas al array de `texturas` para crear una animación de partícula. La partícula rotará las texturas en el array, empezando con la primera textura. diff --git a/versions/1.21/translated/es_es/develop/sounds/custom.md b/versions/1.21/translated/es_es/develop/sounds/custom.md index 7298c6624..5f5425b5a 100644 --- a/versions/1.21/translated/es_es/develop/sounds/custom.md +++ b/versions/1.21/translated/es_es/develop/sounds/custom.md @@ -33,7 +33,7 @@ Agrega un nuevo folder `resources/assets//sounds` para los sonidos Continúa creando el archivo `resources/assets//sounds.json` si no existe todavía y agrega tu sonido a las entradas de sonido. -@[code lang=json](@/reference/latest/src/main/resources/assets/fabric-docs-reference/sounds.json) +@[code lang=json](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/sounds.json) La entrada de subtítulo provee más contexto para el jugador. El nombre del subtítulo es usado en los archivos de lenguaje en el folder de `resources/assets//lang` y serán mostrados si la opción de subtítulos en el juego es activada y el sonido personalizado está siendo reproducido. @@ -52,11 +52,11 @@ Dependiendo de cuantas entradas de Registro hayan, las cosas pueden enredarse r Agrega dos nuevos métodos a la nueva clase ayudante creada. Uno, que registre todos los sonidos y uno que es usado para inicializar esta clase en primer lugar. Después de eso, puedes agregar nuevos miembros estáticos de `SoundEvent` cómodamente como sea necesario. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/sound/CustomSounds.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/sound/CustomSounds.java) De esta manera, la clase implementadora de `ModInitializer` solo tiene que implementar una línea para registrar todos los SoundEvents personalizados. -@[code lang=java transcludeWith=:::2](@/reference/latest/src/main/java/com/example/docs/sound/FabricDocsReferenceSounds.java) +@[code lang=java transcludeWith=:::2](@/reference/1.21/src/main/java/com/example/docs/sound/FabricDocsReferenceSounds.java) ## Usando el SoundEvent Personalizado diff --git a/versions/1.21/translated/es_es/develop/sounds/using-sounds.md b/versions/1.21/translated/es_es/develop/sounds/using-sounds.md index 13e12558c..0046e3a7c 100644 --- a/versions/1.21/translated/es_es/develop/sounds/using-sounds.md +++ b/versions/1.21/translated/es_es/develop/sounds/using-sounds.md @@ -13,11 +13,11 @@ Minecraft tiene una gran selección de sonidos para elegir. Mira la clase de `So En este ejemplo, los métodos de `useOnEntity()` y `useOnBlock()` para un item interactivo personalizado son usados para reproducir sonidos de "colocar un bloque de cobre" y de saqueador. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/item/CustomSoundItem.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/item/CustomSoundItem.java) El método `playSound()` es usado con el objeto de `LivingEntity` (Entidad Viviente). Solamente se tienen que especificar el SoundEvent, el volumen y el tono. También puedes usar el método de `playSound()` de la instancia del mundo para tener un mayor grado de control. -@[code lang=java transcludeWith=:::2](@/reference/latest/src/main/java/com/example/docs/item/CustomSoundItem.java) +@[code lang=java transcludeWith=:::2](@/reference/1.21/src/main/java/com/example/docs/item/CustomSoundItem.java) ### SoundEvent y SoundCategory (Categoría de Sonido) diff --git a/versions/1.21/translated/fr_fr/contributing.md b/versions/1.21/translated/fr_fr/contributing.md index 6995a6b5e..490a647e1 100644 --- a/versions/1.21/translated/fr_fr/contributing.md +++ b/versions/1.21/translated/fr_fr/contributing.md @@ -188,10 +188,10 @@ Par exemple, pour mettre en évidence les lignes 15-21 du fichier `FabricDocsRef ::: code-group ```md -<<< @/reference/latest/src/main/java/com/example/docs/FabricDocsReference.java{15-21} +<<< @/reference/1.21/src/main/java/com/example/docs/FabricDocsReference.java{15-21} ``` -<<< @/reference/latest/src/main/java/com/example/docs/FabricDocsReference.java{15-21}[java] +<<< @/reference/1.21/src/main/java/com/example/docs/FabricDocsReference.java{15-21}[java] ::: @@ -202,10 +202,10 @@ Par exemple, ceci intégrera les sections du fichier ci-dessus qui sont marquée ::: code-group ```md -@[code transcludeWith=#entrypoint](@/reference/latest/src/main/java/com/example/docs/FabricDocsReference.java) +@[code transcludeWith=#entrypoint](@/reference/1.21/src/main/java/com/example/docs/FabricDocsReference.java) ``` -@[code transcludeWith=#entrypoint](@/reference/latest/src/main/java/com/example/docs/FabricDocsReference.java) +@[code transcludeWith=#entrypoint](@/reference/1.21/src/main/java/com/example/docs/FabricDocsReference.java) ::: diff --git a/versions/1.21/translated/fr_fr/develop/codecs.md b/versions/1.21/translated/fr_fr/develop/codecs.md index 88fc29747..d4870b43f 100644 --- a/versions/1.21/translated/fr_fr/develop/codecs.md +++ b/versions/1.21/translated/fr_fr/develop/codecs.md @@ -314,11 +314,11 @@ Par exemple, imaginons une interface abstraite `Bean` avec deux classes qui l'im Une fois tout ceci fait, on peut créer un codec de répartition par registre pour les beans : -@[code transcludeWith=:::](@/reference/latest/src/main/java/com/example/docs/codec/Bean.java) -@[code transcludeWith=:::](@/reference/latest/src/main/java/com/example/docs/codec/BeanType.java) -@[code transcludeWith=:::](@/reference/latest/src/main/java/com/example/docs/codec/StringyBean.java) -@[code transcludeWith=:::](@/reference/latest/src/main/java/com/example/docs/codec/CountingBean.java) -@[code transcludeWith=:::](@/reference/latest/src/main/java/com/example/docs/codec/BeanTypes.java) +@[code transcludeWith=:::](@/reference/1.21/src/main/java/com/example/docs/codec/Bean.java) +@[code transcludeWith=:::](@/reference/1.21/src/main/java/com/example/docs/codec/BeanType.java) +@[code transcludeWith=:::](@/reference/1.21/src/main/java/com/example/docs/codec/StringyBean.java) +@[code transcludeWith=:::](@/reference/1.21/src/main/java/com/example/docs/codec/CountingBean.java) +@[code transcludeWith=:::](@/reference/1.21/src/main/java/com/example/docs/codec/BeanTypes.java) ```java // On peut créer un codec pour les types de bean diff --git a/versions/1.21/translated/fr_fr/develop/commands/arguments.md b/versions/1.21/translated/fr_fr/develop/commands/arguments.md index c881ef0a7..772a3640d 100644 --- a/versions/1.21/translated/fr_fr/develop/commands/arguments.md +++ b/versions/1.21/translated/fr_fr/develop/commands/arguments.md @@ -7,19 +7,19 @@ description: Apprenez comment créer des commandes avec des paramètres complexe La notion de paramètres (`Argument`) est utilisée dans la plupart des commandes. Des fois, ces paramètres peuvent être optionnels, ce qui veut dire que si vous ne donnez pas ce paramètre, la commande va quand même s'exécuter. Un nœud peut avoir plusieurs types de paramètres, mais n'oubliez pas qu'il y a une possibilité d'ambiguïté, qui devrait toujours être évitée. -@[code lang=java highlight={3} transcludeWith=:::4](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={3} transcludeWith=:::4](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) Dans ce cas d'exemple, après la commande textuelle `/argtater`, vous devez donner un nombre. Par exemple, si vous exécutez `/argtater 3`, vous allez avoir en retour le message `Called /argtater with value = 3`. Si vous tapez `/argater` sans arguments, la commande ne pourra pas être correctement analysée. Nous ajoutons ensuite un second paramètre optionnel : -@[code lang=java highlight={3,13} transcludeWith=:::5](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={3,13} transcludeWith=:::5](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) Maintenant, vous pouvez donner un ou deux arguments de type nombre à la commande. Si vous donnez un seul nombre, vous allez avoir en retour un texte avec une seule valeur d'affichée. Si vous donnez deux nombres, vous allez avoir en retour un texte avec deux valeurs d'affichées. Vous pouvez penser qu'il n'est pas nécessaire de spécifier plusieurs fois des exécutions similaires. Donc, nous allons créer une méthode qui va être utilisée pour les deux cas d'exécution. -@[code lang=java highlight={3,5,6,7} transcludeWith=:::6](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={3,5,6,7} transcludeWith=:::6](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) ## Types de paramètre personnalisé {#custom-argument-types} @@ -29,7 +29,7 @@ Vous devrez implémenter la méthode `parse`, qui va donc analyser la saisie de Par exemple, vous pouvez créer un type de paramètre qui transforme une chaine de caractères en `BlockPos` avec le format suivant : `{x, y, z}` -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/command/BlockPosArgumentType.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/command/BlockPosArgumentType.java) ### Enregistrer des types de paramètres personnalisés {#registering-custom-argument-types} @@ -39,13 +39,13 @@ Vous devez enregistrer votre paramètre de commande personnalisée à la fois su Vous pouvez enregistrer votre paramètre de commande personnalisé dans la méthode `onInitialize` de l'initialiseur de votre mod en utilisant la classe `ArgumentTypeRegistry` : -@[code lang=java transcludeWith=:::11](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::11](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) ### Utiliser des types de paramètre personnalisé {#using-custom-argument-types} Nous pouvons utiliser notre paramètre de commande personnalisé dans une commande, en passant une instance de ce dernier dans la méthode `.argument` du constructeur de commande. -@[code lang=java transcludeWith=:::10 highlight={3}](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::10 highlight={3}](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) En exécutant la commande, on peut vérifier si le paramètre de commande fonctionne ou pas : diff --git a/versions/1.21/translated/it_it/contributing.md b/versions/1.21/translated/it_it/contributing.md index 97f1b3a68..510a33770 100644 --- a/versions/1.21/translated/it_it/contributing.md +++ b/versions/1.21/translated/it_it/contributing.md @@ -188,10 +188,10 @@ Per esempio, per evidenziare le linee 15-21 del file `FabricDocsReference.java` ::: code-group ```md -<<< @/reference/latest/src/main/java/com/example/docs/FabricDocsReference.java{15-21} +<<< @/reference/1.21/src/main/java/com/example/docs/FabricDocsReference.java{15-21} ``` -<<< @/reference/latest/src/main/java/com/example/docs/FabricDocsReference.java{15-21}[java] +<<< @/reference/1.21/src/main/java/com/example/docs/FabricDocsReference.java{15-21}[java] ::: @@ -202,10 +202,10 @@ Per esempio, questo incorporerà le sezioni del suddetto file che sono contrasse ::: code-group ```md -@[code transcludeWith=#entrypoint](@/reference/latest/src/main/java/com/example/docs/FabricDocsReference.java) +@[code transcludeWith=#entrypoint](@/reference/1.21/src/main/java/com/example/docs/FabricDocsReference.java) ``` -@[code transcludeWith=#entrypoint](@/reference/latest/src/main/java/com/example/docs/FabricDocsReference.java) +@[code transcludeWith=#entrypoint](@/reference/1.21/src/main/java/com/example/docs/FabricDocsReference.java) ::: diff --git a/versions/1.21/translated/it_it/develop/automatic-testing.md b/versions/1.21/translated/it_it/develop/automatic-testing.md index 57736e789..a1068d04e 100644 --- a/versions/1.21/translated/it_it/develop/automatic-testing.md +++ b/versions/1.21/translated/it_it/develop/automatic-testing.md @@ -27,7 +27,7 @@ Anzitutto, dobbiamo aggiungere Fabric Loader JUnit all'ambiente di sviluppo. Agg Poi, dobbiamo informare Gradle su come usare Fabric Loader JUnit per il testing. Puoi fare ciò aggiungendo il codice seguente al tuo `build.gradle`: -@[code lang=groovy transcludeWith=:::automatic-testing:2](@/reference/latest/build.gradle) +@[code lang=groovy transcludeWith=:::automatic-testing:2](@/reference/1.21/build.gradle) ### Scrivere Test {#writing-tests} @@ -55,7 +55,7 @@ Nota gli indicatori a freccia verde nel margine: puoi facilmente eseguire un tes Ora è il tempo di scrivere il tuo codice di test effettivo. Puoi assicurare condizioni con `org.junit.jupiter.api.Assertions`. Dai un'occhiata ai test seguenti: -@[code lang=java transcludeWith=:::automatic-testing:4](@/reference/latest/src/test/java/com/example/docs/codec/BeanTypeTest.java) +@[code lang=java transcludeWith=:::automatic-testing:4](@/reference/1.21/src/test/java/com/example/docs/codec/BeanTypeTest.java) Per una spiegazione di cosa fa questo codice, consulta la pagina [Codec](./codecs#registry-dispatch). @@ -63,11 +63,11 @@ Per una spiegazione di cosa fa questo codice, consulta la pagina [Codec](./codec Ottimo, il primo test è funzionato! Ma aspetta, il secondo test è fallito? Nei log, otteniamo uno dei seguenti errori. -@[code lang=java transcludeWith=:::automatic-testing:5](@/reference/latest/src/test/java/com/example/docs/codec/BeanTypeTest.java) +@[code lang=java transcludeWith=:::automatic-testing:5](@/reference/1.21/src/test/java/com/example/docs/codec/BeanTypeTest.java) Questo è perché stiamo provando ad accedere alla registry o a una classe che dipende su queste (o, in casi rari, dipende su altre classi Minecraft come `SharedConstants`), ma Minecraft non è stato inizializzato. Dobbiamo solo inizializzarlo un po' perché funzionino le registry. Ti basta aggiungere il codice seguente all'inizio del tuo metodo `beforeAll`. -@[code lang=java transcludeWith=:::automatic-testing:7](@/reference/latest/src/test/java/com/example/docs/codec/BeanTypeTest.java) +@[code lang=java transcludeWith=:::automatic-testing:7](@/reference/1.21/src/test/java/com/example/docs/codec/BeanTypeTest.java) ### Configurare le GitHub Actions {#setting-up-github-actions} diff --git a/versions/1.21/translated/it_it/develop/blocks/block-entities.md b/versions/1.21/translated/it_it/develop/blocks/block-entities.md index a65202e15..09c7f4e51 100644 --- a/versions/1.21/translated/it_it/develop/blocks/block-entities.md +++ b/versions/1.21/translated/it_it/develop/blocks/block-entities.md @@ -16,11 +16,11 @@ Come esempio, creeremo un blocco che conta quante volte esso è stato cliccato c Per fare in modo che Minecraft riconosca e carichi i nuovi blocchi-entità, dobbiamo creare un tipo di blocco-entità. Questo si fa estendendo la classe `BlockEntity` e registrandola in una nuova classe `ModBlockEntities`. -@[code transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/block/entity/custom/CounterBlockEntity.java) +@[code transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/block/entity/custom/CounterBlockEntity.java) La registrazione di un `BlockEntity` produce un `BlockEntityType` come il `COUNTER_BLOCK_ENTITY` che abbiamo usato sopra: -@[code transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/block/entity/ModBlockEntities.java) +@[code transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/block/entity/ModBlockEntities.java) :::tip Nota come il costruttore del `CounterBlockEntity` prenda due parametri, ma il costruttore del `BlockEntity` ne prenda tre: il `BlockEntityType`, la `BlockPos`, e lo `BlockState`. @@ -40,7 +40,7 @@ Ci sono due modi per approcciarsi a questo: Useremo il primo approccio in questo esempio, poiché `BlockWithEntity` fornisce anche alcune utilità comode. ::: -@[code transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/block/custom/CounterBlock.java) +@[code transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/block/custom/CounterBlock.java) Usare `BlockWithEntity` come classe genitore significa che dobbiamo anche implementare il metodo `createCodec`, il che è piuttosto semplice. @@ -48,19 +48,19 @@ A differenza dei blocchi, che sono dei singleton, viene creato un nuovo blocco-e Non dimenticare di registrare il blocco nella classe `ModBlocks`, proprio come nella guida [Creare il Tuo Primo Blocco](../blocks/first-block): -@[code transcludeWith=:::5](@/reference/latest/src/main/java/com/example/docs/block/ModBlocks.java) +@[code transcludeWith=:::5](@/reference/1.21/src/main/java/com/example/docs/block/ModBlocks.java) ## Usare il Blocco-Entità {#using-the-block-entity} Ora che abbiamo un blocco-entità, possiamo usarlo per memorizzare il numero di clic con il tasto destro sul blocco. Faremo questo aggiungendo un attributo `clicks` alla classe `CounterBlockEntity`: -@[code transcludeWith=:::2](@/reference/latest/src/main/java/com/example/docs/block/entity/custom/CounterBlockEntity.java) +@[code transcludeWith=:::2](@/reference/1.21/src/main/java/com/example/docs/block/entity/custom/CounterBlockEntity.java) Il metodo `markDirty`, usato in `incrementClicks`, informa il gioco che i dati dell'entità sono stati aggiornati; questo sarà utile quando aggiungeremo i metodi per serializzare il contatore e ricaricarlo dal file di salvataggio. Il prossimo passaggio è incrementare questo attributo ogni volta che il blocco viene cliccato con il tasto destro. Questo si fa facendo override del metodo `onUse` nella classe `CounterBlock`: -@[code transcludeWith=:::2](@/reference/latest/src/main/java/com/example/docs/block/custom/CounterBlock.java) +@[code transcludeWith=:::2](@/reference/1.21/src/main/java/com/example/docs/block/custom/CounterBlock.java) Poiché il `BlockEntity` non viene passato nel metodo, usiamo `world.getBlockEntity(pos)`, e se il `BlockEntity` non è valido, usciamo dal metodo. @@ -72,13 +72,13 @@ Ora che abbiamo un blocco funzionante, dovremmo anche fare in modo che il contat La serializzazione avviene con il metodo `writeNbt`: -@[code transcludeWith=:::3](@/reference/latest/src/main/java/com/example/docs/block/entity/custom/CounterBlockEntity.java) +@[code transcludeWith=:::3](@/reference/1.21/src/main/java/com/example/docs/block/entity/custom/CounterBlockEntity.java) Qui, aggiungiamo gli attributi che dovrebbero essere salvati al `NbtCompound` passato: nel caso del blocco contatore, l'attributo `clicks`. La lettura è simile, ma invece di salvare nel `NbtCompound` si ottengono i valori salvati precendentemente, e salvarli negli attributi del `BlockEntity`: -@[code transcludeWith=:::4](@/reference/latest/src/main/java/com/example/docs/block/entity/custom/CounterBlockEntity.java) +@[code transcludeWith=:::4](@/reference/1.21/src/main/java/com/example/docs/block/entity/custom/CounterBlockEntity.java) Ora, salvando e ricaricando il gioco, il blocco contatore dovrebbe riprendere da dove è stato salvato. @@ -88,19 +88,19 @@ L'interfaccia `BlockEntityProvider` definisce anche un metodo chiamato `getTicke Il metodo `getTicker` dovrebbe anche controllare che il `BlockEntityType` passato sia quello che stiamo usando; se lo è, restituirà la funzione da chiamare a ogni tick. Vi è una funzione di utilità che fa il controllo in `BlockWithEntity`: -@[code transcludeWith=:::3](@/reference/latest/src/main/java/com/example/docs/block/custom/CounterBlock.java) +@[code transcludeWith=:::3](@/reference/1.21/src/main/java/com/example/docs/block/custom/CounterBlock.java) `CounterBlockEntity::tick` è un riferimento al metodo statico `tick` che dobbiamo creare nella classe `CounterBlockEntity`. Non è necessario seguire questa struttura, ma buona pratica per mantenere del codice pulito e organizzato. Diciamo di voler fare in modo che il contatore possa essere incrementato soltanto ogni 10 tick (2 volte al secondo). Possiamo fare ciò aggiungendo un attributo `ticksSinceLast` alla classe `CounterBlockEntity`, e incrementandolo a ogni tick: -@[code transcludeWith=:::5](@/reference/latest/src/main/java/com/example/docs/block/entity/custom/CounterBlockEntity.java) +@[code transcludeWith=:::5](@/reference/1.21/src/main/java/com/example/docs/block/entity/custom/CounterBlockEntity.java) Non dimenticare di serializzare e deserializzare questo attributo! Ora possiamo usare `ticksSinceLast` per controllare se il contatore può essere incrementato in `incrementClicks`: -@[code transcludeWith=:::6](@/reference/latest/src/main/java/com/example/docs/block/entity/custom/CounterBlockEntity.java) +@[code transcludeWith=:::6](@/reference/1.21/src/main/java/com/example/docs/block/entity/custom/CounterBlockEntity.java) :::tip Se sembra che il blocco-entità non faccia tick, prova a controllare il codice della registrazione! Dovrebbe passare i blocchi validi per questa entità nel `BlockEntityType.Builder`, o altrimenti scriverà un avviso nella console: diff --git a/versions/1.21/translated/it_it/develop/blocks/block-entity-renderer.md b/versions/1.21/translated/it_it/develop/blocks/block-entity-renderer.md index 5407027ca..de01601ff 100644 --- a/versions/1.21/translated/it_it/develop/blocks/block-entity-renderer.md +++ b/versions/1.21/translated/it_it/develop/blocks/block-entity-renderer.md @@ -17,12 +17,12 @@ Anzitutto, dobbiamo creare un `BlockEntityRenderer` per il nostro `CounterBlockE Nel creare un `BlockEntityRenderer` per il `CounterBlockEntity`, è importante inserire la classe nell'insieme delle fonti corretto, come `src/client/`, se il tuo progetto divide gli insiemi delle fonti tra client e server. Accedere a classi legate al rendering direttamente nell'insieme delle fonti `src/main/` non è sicuro perché quelle classi potrebbero essere caricare su un server. -@[code transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/rendering/blockentity/CounterBlockEntityRenderer.java) +@[code transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/rendering/blockentity/CounterBlockEntityRenderer.java) La nuova classe ha un costruttore con un `BlockEntityRendererFactory.Context` come parametro. Il `Context` ha alcune utilità per il rendering, come l'`ItemRenderer` o il `TextRenderer`. Inoltre, includendo un costruttore come questo, è possibile usare il costruttore come interfaccia funzionale per la `BlockEntityRendererFactory`: -@[code transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/FabricDocsBlockEntityRenderer.java) +@[code transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/FabricDocsBlockEntityRenderer.java) Aggiungi l'entrypoint al file `fabric.mod.json`, in modo che il renderer sia registrato. @@ -77,7 +77,7 @@ matrices.scale(1/18f, 1/18f, 1/18f); Ora la trasformazione completa ha questo aspetto: -@[code transcludeWith=:::2](@/reference/latest/src/client/java/com/example/docs/rendering/blockentity/CounterBlockEntityRenderer.java) +@[code transcludeWith=:::2](@/reference/1.21/src/client/java/com/example/docs/rendering/blockentity/CounterBlockEntityRenderer.java) ### Disegnare Testo {#drawing-text} @@ -85,7 +85,7 @@ Come menzionato in precedenza, il `Context` passato al costruttore del nostro re Il `TextRenderer` ha metodi per misurare il testo (`getWidth`), il che è utile per centrarlo, e per disegnarlo (`draw`). -@[code transcludeWith=:::3](@/reference/latest/src/client/java/com/example/docs/rendering/blockentity/CounterBlockEntityRenderer.java) +@[code transcludeWith=:::3](@/reference/1.21/src/client/java/com/example/docs/rendering/blockentity/CounterBlockEntityRenderer.java) Il metodo `draw` prende molti parametri, ma quelli più importanti sono: diff --git a/versions/1.21/translated/it_it/develop/blocks/blockstates.md b/versions/1.21/translated/it_it/develop/blocks/blockstates.md index 96dd61313..f0cab4acc 100644 --- a/versions/1.21/translated/it_it/develop/blocks/blockstates.md +++ b/versions/1.21/translated/it_it/develop/blocks/blockstates.md @@ -25,7 +25,7 @@ Minecraft ha già delle classi che permettono di creare velocemente alcuni tipi La classe vanilla `PillarBlock` permette di piazzare il blocco lungo gli assi X, Y o Z. -@[code transcludeWith=:::3](@/reference/latest/src/main/java/com/example/docs/block/ModBlocks.java) +@[code transcludeWith=:::3](@/reference/1.21/src/main/java/com/example/docs/block/ModBlocks.java) I pilastri hanno due texture diverse, superiore e laterale - e usano il modello `block/cube_column`. @@ -40,7 +40,7 @@ Dato che un pilastro ha due posizioni, orizzontale e verticale, dobbiamo creare Un esempio di come deve essere il file `condensed_oak_log_horizontal.json`: -@[code](@/reference/latest/src/main/resources/assets/fabric-docs-reference/models/block/condensed_oak_log_horizontal.json) +@[code](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/models/block/condensed_oak_log_horizontal.json) --- @@ -57,7 +57,7 @@ Ora dobbiamo creare un file per lo stato. Il file dello stato è dove avviene la - `axis=y` - Quando il blocco è piazzato sull'asse Y, useremo il modello verticale normale. - `axis=z` - Quando il blocco è piazzato sull'asse Z, ne ruoteremo il modello in modo che guardi verso la parte positiva delle X. -@[code](@/reference/latest/src/main/resources/assets/fabric-docs-reference/blockstates/condensed_oak_log.json) +@[code](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/blockstates/condensed_oak_log.json) Come sempre, dovrai creare una traduzione per il tuo blocco, oltre ad un modello dell'oggetto il quale deve essere figlio di uno dei due modelli. @@ -73,15 +73,15 @@ Questo esempio creerà una proprietà booleana chiamata `activated` - quando un Anzitutto, dovrai creare la proprietà in sé - poiché questo è un booleano, useremo il metodo `BooleanProperty.of`. -@[code transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) +@[code transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) Dopo di che, dovremo aggiungere la proprietà al gestore degli stati del blocco nel metodo `appendProperties`. Dovrai fare override del metodo per accedere al costruttore: -@[code transcludeWith=:::2](@/reference/latest/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) +@[code transcludeWith=:::2](@/reference/1.21/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) Dovrai anche impostare un valore predefinito per la proprietà `activated` nel costruttore del tuo blocco personalizzato. -@[code transcludeWith=:::3](@/reference/latest/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) +@[code transcludeWith=:::3](@/reference/1.21/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) :::warning Non dimenticare di registrare il tuo blocco usando la classe personalizzata invece di `Block`! @@ -91,7 +91,7 @@ Non dimenticare di registrare il tuo blocco usando la classe personalizzata inve Questo esempio invertirà la proprietà booleana `activated` quando il giocatore interagisce con il blocco. Possiamo fare override del metodo `onUse` per questo: -@[code transcludeWith=:::4](@/reference/latest/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) +@[code transcludeWith=:::4](@/reference/1.21/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) ### Visualizzare la Proprietà {#visualizing-the-property} @@ -107,7 +107,7 @@ Se hai proprietà multiple su un blocco, dovrai tenere in conto tutte le possibi Poiché questo blocco ha solo due possibili varianti, dato che ha solo una proprietà (`activated`), il file JSON degli stati del blocco avrà il seguente aspetto: -@[code](@/reference/latest/src/main/resources/assets/fabric-docs-reference/blockstates/prismarine_lamp.json) +@[code](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/blockstates/prismarine_lamp.json) --- @@ -115,9 +115,9 @@ Poiché il blocco nell'esempio è una lampada, dovremo anche fargli emettere luc Puoi usare il metodo `luminance` per impostare il livello di luce emessa dal blocco, possiamo creare un metodo statico nella classe `PrismarineLampBlock` per restituire il livello di luce in base alla proprietà `activated`, e passarlo come riferimento a un metodo nel metodo `luminance`: -@[code transcludeWith=:::5](@/reference/latest/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) +@[code transcludeWith=:::5](@/reference/1.21/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) -@[code transcludeWith=:::4](@/reference/latest/src/main/java/com/example/docs/block/ModBlocks.java) +@[code transcludeWith=:::4](@/reference/1.21/src/main/java/com/example/docs/block/ModBlocks.java) --- diff --git a/versions/1.21/translated/it_it/develop/blocks/first-block.md b/versions/1.21/translated/it_it/develop/blocks/first-block.md index 958944cb4..b90f58e76 100644 --- a/versions/1.21/translated/it_it/develop/blocks/first-block.md +++ b/versions/1.21/translated/it_it/develop/blocks/first-block.md @@ -19,7 +19,7 @@ Dovresti mettere questo metodo in una classe chiamata `ModBlocks` (o qualsiasi a Mojang fa qualcosa di simile con i suoi blocchi vanilla; informati riguardo alla classe `Blocks` per sapere come fanno loro. -@[code transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/block/ModBlocks.java) +@[code transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/block/ModBlocks.java) --- @@ -39,7 +39,7 @@ public class ModBlocks { } ``` -@[code transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/block/FabricDocsReferenceBlocks.java) +@[code transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/block/FabricDocsReferenceBlocks.java) ## Creare e Registrare il Tuo Blocco {#creating-and-registering-your-block} @@ -53,7 +53,7 @@ Per questo esempio, creeremo un blocco semplice, con le proprietà della terra m Puoi anche usare `AbstractBlock.Settings.copy(AbstractBlock block)` per copiare le impostazioni di un blocco esistente, in questo caso avremmo potuto usare `Blocks.DIRT` per copiare le impostazioni della terra, ma per questo esempio useremo il costruttore. ::: -@[code transcludeWith=:::2](@/reference/latest/src/main/java/com/example/docs/block/ModBlocks.java) +@[code transcludeWith=:::2](@/reference/1.21/src/main/java/com/example/docs/block/ModBlocks.java) Per creare l'oggetto del blocco in automatico, possiamo passare `true` al parametro `shouldRegisterItem` del metodo `register` che abbiamo creato nel passaggio precedente. @@ -63,7 +63,7 @@ Poiché il `BlockItem` viene creato e registrato in automatico, per aggiungerlo Per questo esempio, useremo un gruppo di oggetti personalizzato, che abbiamo creato nella pagina [Gruppi di Oggetti Personalizzati](../items/custom-item-groups). -@[code transcludeWith=:::3](@/reference/latest/src/main/java/com/example/docs/block/ModBlocks.java) +@[code transcludeWith=:::3](@/reference/1.21/src/main/java/com/example/docs/block/ModBlocks.java) --- @@ -100,11 +100,11 @@ Per fare in modo che la texture sia visibile nel gioco, devi creare un blocco e Il modello dell'oggetto è piuttosto semplice, basta che usi il modello del blocco come genitore - poiché la GUI supporta il rendering della maggior parte dei modelli dei blocchi: -@[code](@/reference/latest/src/main/resources/assets/fabric-docs-reference/models/item/condensed_dirt.json) +@[code](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/models/item/condensed_dirt.json) Nel nostro caso, però, il modello del blocco deve avere come genitore il modello `block/cube_all`: -@[code](@/reference/latest/src/main/resources/assets/fabric-docs-reference/models/block/condensed_dirt.json) +@[code](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/models/block/condensed_dirt.json) Quando carichi il gioco, potresti notare che la texture è ancora mancante. Questo perché devi aggiungere la definizione degli stati del blocco. @@ -116,7 +116,7 @@ Per il blocco di esempio, che non ha stati complessi, basta una sola voce nella Questo file si dovrebbe trovare nella cartella `assets/mod_id/blockstates`, e il suo nome dovrebbe corrispondere all'ID del blocco che hai usato quando l'hai registrato nella classe `ModBlocks`. Per esempio, se l'ID è `condensed_dirt`, il file dovrebbe chiamarsi `condensed_dirt.json`. -@[code](@/reference/latest/src/main/resources/assets/fabric-docs-reference/blockstates/condensed_dirt.json) +@[code](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/blockstates/condensed_dirt.json) Gli stati dei blocchi sono piuttosto complessi, per cui li tratteremo in un'altra pagina: [Stati dei Blocchi](./blockstates) @@ -132,7 +132,7 @@ Quando si rompe il blocco in sopravvivenza, potresti notare che il blocco non dr Per comprendere le loot table nel profondo, fai riferimento alla pagina [Minecraft Wiki - Loot Tables](https://minecraft.wiki/w/Loot_table). ::: -@[code](@/reference/latest/src/main/resources/data/fabric-docs-reference/loot_tables/blocks/condensed_dirt.json) +@[code](@/reference/1.21/src/main/resources/data/fabric-docs-reference/loot_tables/blocks/condensed_dirt.json) Questa loot table fornisce un solo drop come oggetto del blocco quando viene rotto, o distrutto da un'esplosione. @@ -151,7 +151,7 @@ I contenuti del file sono piuttosto semplici - è una lista di oggetti da aggiun Questo esempio aggiunge il blocco "Terra Condensata" al tag `shovel`. -@[code](@/reference/latest/src/main/resources/data/minecraft/tags/mineable/shovel.json) +@[code](@/reference/1.21/src/main/resources/data/minecraft/tags/mineable/shovel.json) Se desideri che uno strumento sia necessario per minare il blocco, dovrai aggiungere `.requiresTool()` alle impostazioni del tuo blocco, oltre che aggiungere il tag dello scavo appropriato. diff --git a/versions/1.21/translated/it_it/develop/codecs.md b/versions/1.21/translated/it_it/develop/codecs.md index be8144fd7..e4551c1ae 100644 --- a/versions/1.21/translated/it_it/develop/codecs.md +++ b/versions/1.21/translated/it_it/develop/codecs.md @@ -315,11 +315,11 @@ Per esempio, immaginiamo di avere un'interfaccia astratta `Bean` con due classi Con tutto questo, possiamo creare un codec di dispatch di registry per i fagioli: -@[code transcludeWith=:::](@/reference/latest/src/main/java/com/example/docs/codec/Bean.java) -@[code transcludeWith=:::](@/reference/latest/src/main/java/com/example/docs/codec/BeanType.java) -@[code transcludeWith=:::](@/reference/latest/src/main/java/com/example/docs/codec/StringyBean.java) -@[code transcludeWith=:::](@/reference/latest/src/main/java/com/example/docs/codec/CountingBean.java) -@[code transcludeWith=:::](@/reference/latest/src/main/java/com/example/docs/codec/BeanTypes.java) +@[code transcludeWith=:::](@/reference/1.21/src/main/java/com/example/docs/codec/Bean.java) +@[code transcludeWith=:::](@/reference/1.21/src/main/java/com/example/docs/codec/BeanType.java) +@[code transcludeWith=:::](@/reference/1.21/src/main/java/com/example/docs/codec/StringyBean.java) +@[code transcludeWith=:::](@/reference/1.21/src/main/java/com/example/docs/codec/CountingBean.java) +@[code transcludeWith=:::](@/reference/1.21/src/main/java/com/example/docs/codec/BeanTypes.java) ```java // Ora possiamo creare un codec per i tipi di fagioli diff --git a/versions/1.21/translated/it_it/develop/commands/arguments.md b/versions/1.21/translated/it_it/develop/commands/arguments.md index 4d5e87c26..5d97cbbac 100644 --- a/versions/1.21/translated/it_it/develop/commands/arguments.md +++ b/versions/1.21/translated/it_it/develop/commands/arguments.md @@ -7,8 +7,8 @@ description: Impara come creare comandi con parametri complessi. La maggior parte dei comandi usa i parametri. A volte possono essere opzionali, il che significa che se non viene fornito quel parametri, il comando verrà eseguito comunque. Ogni nodo può avere tipi di parametri multipli, ma ricorda che c'è una possibilità di ambiguità, che dovrebbe essere evitata. -@[code lang=java highlight={3} transcludeWith=:::command_with_arg](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code lang=java transcludeWith=:::execute_command_with_arg](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={3} transcludeWith=:::command_with_arg](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::execute_command_with_arg](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) In questo caso, dopo il testo del comando `/command_with_arg`, dovresti scrivere un intero. Per esempio, se eseguissi `/command_with_arg 3`, otterresti come risposta il messaggio: @@ -18,15 +18,15 @@ Se scrivessi `/command_with_arg` senza parametri, non sarebbe possibile fare il Dopo di che aggiungiamo un secondo parametro opzionale: -@[code lang=java highlight={3,5} transcludeWith=:::command_with_two_args](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code lang=java transcludeWith=:::execute_command_with_two_args](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={3,5} transcludeWith=:::command_with_two_args](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::execute_command_with_two_args](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) Ora puoi scrivere uno oppure due interi. Se fornisci un intero, un testo di feedback con un singolo valore verrà stampato. Se fornisci due interi, un testo di feedback con due interi verrà stampato. Potresti pensare che sia inutile specificare esecuzioni simili due volte. Per cui possiamo creare un metodo che verrà usato in entrambe le esecuzioni. -@[code lang=java highlight={4,6} transcludeWith=:::command_with_common_exec](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code lang=java transcludeWith=:::execute_common](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={4,6} transcludeWith=:::command_with_common_exec](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::execute_common](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) ## Tipi di Parametri Personalizzati {#custom-argument-types} @@ -36,7 +36,7 @@ Avrai bisogno d'implementare il metodo `parse`, che farà il parsing della strin Per esempio, puoi creare un tipo di parametro che fa il parsing di un `BlockPos` da una stringa con il formato seguente: `{x, y, z}` -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/command/BlockPosArgumentType.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/command/BlockPosArgumentType.java) ### Registrare i Tipi di Parametri Personalizzati {#registering-custom-argument-types} @@ -46,14 +46,14 @@ Avrai bisogno di registrare i tipi di parametri personalizzati sia sul server si Puoi registrare il tuo tipo di parametro personalizzato nel metodo `onInitialize` dell'[inizializer della tua mod](./getting-started/project-structure#entrypoints) usando la classe `ArgumentTypeRegistry`: -@[code lang=java transcludeWith=:::register_custom_arg](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::register_custom_arg](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) ### Usare i Tipi di Parametri Personalizzati {#using-custom-argument-types} Possiamo usare il nostro tipo di parametro personalizzato in un comando - passando un'istanza di esso nel metodo `.argument` del costruttore del comando. -@[code lang=java highlight={3} transcludeWith=:::custom_arg_command](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code lang=java highlight={2} transcludeWith=:::execute_custom_arg_command](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={3} transcludeWith=:::custom_arg_command](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={2} transcludeWith=:::execute_custom_arg_command](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) Eseguendo il comando possiamo testare se il tipo di parametro funziona o meno: diff --git a/versions/1.21/translated/it_it/develop/commands/basics.md b/versions/1.21/translated/it_it/develop/commands/basics.md index cbb0877a7..9047b3f0f 100644 --- a/versions/1.21/translated/it_it/develop/commands/basics.md +++ b/versions/1.21/translated/it_it/develop/commands/basics.md @@ -77,7 +77,7 @@ Il callback ha tre parametri: Nell'initializer della mod, registriamo un semplice comando: -@[code lang=java transcludeWith=:::test_command](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::test_command](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) Nel metodo `sendFeedback()` il primo parametro è il testo che viene mandato, che è un `Supplier` per evitare d'istanziare oggetti Text quando non è necessario. @@ -97,15 +97,15 @@ Da ora in poi, estrarremo la logica scritta all'interno della lambda passata nei Se vuoi, puoi anche assicurarti che un comando venga registrato solo sotto circostanze specifiche, per esempio, solo nell'ambiente dedicato: -@[code lang=java highlight={2} transcludeWith=:::dedicated_command](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code lang=java transcludeWith=:::execute_dedicated_command](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={2} transcludeWith=:::dedicated_command](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::execute_dedicated_command](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) ### Requisiti dei Comandi {#command-requirements} Immagina di avere un comando e vuoi che solo gli operatori lo possano eseguire. Questo è dove il metodo `requires()` entra in gioco. Il metodo `requires()` ha un solo argomento `Predicate` che fornirà una `ServerCommandSource` con cui testare e determinare se la `CommandSource` può eseguire il comando. -@[code lang=java highlight={3} transcludeWith=:::required_command](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code lang=java transcludeWith=:::execute_required_command](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={3} transcludeWith=:::required_command](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::execute_required_command](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) Questo comando verrà eseguito solo se la fonte del comando è un operatore di livello 2 almeno, inclusi i blocchi comandi. Altrimenti, il comando non è registrato. @@ -115,19 +115,19 @@ Questo ha l'effetto collaterale di non mostrare il comando se si completa con ta Per aggiungere un sotto comando, devi registrare il primo nodo letterale del comando normalmente. Per avere un sotto comando, devi aggiungere il nodo letterale successivo al nodo esistente. -@[code lang=java highlight={3} transcludeWith=:::sub_command_one](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code lang=java transcludeWith=:::execute_sub_command_one](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={3} transcludeWith=:::sub_command_one](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::execute_sub_command_one](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) Similarmente agli argomenti, i nodi dei sotto comandi possono anch'essi essere opzionali. Nel caso seguente, sia `/command_two` che `/command_two sub_command_two` saranno validi. -@[code lang=java highlight={2,8} transcludeWith=:::sub_command_two](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code lang=java transcludeWith=:::execute_command_sub_command_two](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={2,8} transcludeWith=:::sub_command_two](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::execute_command_sub_command_two](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) ## Comandi Lato Client {#client-commands} L'API di Fabric ha un `ClientCommandManager` nel package `net.fabricmc.fabric.api.client.command.v2` che può essere usato per registrare comandi lato client. Il codice dovrebbe esistere solo nel codice lato client. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/client/command/FabricDocsReferenceClientCommands.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/client/command/FabricDocsReferenceClientCommands.java) ## Reindirizzare Comandi {#command-redirects} @@ -137,8 +137,8 @@ I comandi reindirizzati - anche noti come alias - sono un modo di reindirizzare Brigadier [reinderizzerà soltanto i nodi di comandi contenenti parametri](https://github.com/Mojang/brigadier/issues/46). Se volessi reinderizzare il nodo di un comando senza parametri, fornisci un costruttore `.executes()` con un riferimento alla stessa logica presentata nell'esempio. ::: -@[code lang=java transcludeWith=:::redirect_command](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code lang=java transcludeWith=:::execute_redirected_by](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::redirect_command](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::execute_redirected_by](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) ## Domande Frequenti (FAQ) {#faq} diff --git a/versions/1.21/translated/it_it/develop/commands/suggestions.md b/versions/1.21/translated/it_it/develop/commands/suggestions.md index 0a710d514..9f2a13820 100644 --- a/versions/1.21/translated/it_it/develop/commands/suggestions.md +++ b/versions/1.21/translated/it_it/develop/commands/suggestions.md @@ -17,8 +17,8 @@ Un `SuggestionProvider` viene usato per creare una lista di suggerimenti che ver Per usare un provider di suggerimenti, devi chiamare il metodo `suggests` nel costruttore di argomenti. Questo metodo prende un `SuggestionProvider` e restituisce il costruttore di argomenti modificato con l'aggiunta del suggestion provider. -@[code java highlight={4} transcludeWith=:::command_with_suggestions](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code java transcludeWith=:::execute_command_with_suggestions](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code java highlight={4} transcludeWith=:::command_with_suggestions](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code java transcludeWith=:::execute_command_with_suggestions](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) ## Provider di Suggerimenti Predefiniti {#built-in-suggestion-providers} @@ -37,12 +37,12 @@ Se un provider predefinito non soddisfa i tuoi requisiti, puoi creare il tuo pro Per questo esempio, creeremo un provider di suggerimenti che suggerisce tutti i nomi utente dei giocatori sul server. -@[code java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/command/PlayerSuggestionProvider.java) +@[code java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/command/PlayerSuggestionProvider.java) Per usare questo provider di suggerimenti, passeresti semplicemente una sua istanza al metodo `.suggests` nel costruttore di comandi. -@[code java highlight={4} transcludeWith=:::command_with_custom_suggestions](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code java transcludeWith=:::execute_command_with_custom_suggestions](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code java highlight={4} transcludeWith=:::command_with_custom_suggestions](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code java transcludeWith=:::execute_command_with_custom_suggestions](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) Ovviamente, i provider di suggerimenti possono essere più complessi, siccome possono anche leggere il contesto dei comandi per fornire suggerimenti basati sullo stato del comando - per esempio quali argomenti sono già stati forniti. diff --git a/versions/1.21/translated/it_it/develop/data-generation/advancements.md b/versions/1.21/translated/it_it/develop/data-generation/advancements.md index 378a7f776..a24ae8b44 100644 --- a/versions/1.21/translated/it_it/develop/data-generation/advancements.md +++ b/versions/1.21/translated/it_it/develop/data-generation/advancements.md @@ -20,11 +20,11 @@ Assicurati di aver prima completato il processo di [configurazione della datagen Anzitutto, dobbiamo creare il nostro fornitore. Crea una classe che `extends FabricAdvancementProvider` e compilane i metodi di base: -@[code lang=java transcludeWith=:::datagen-advancements:provider-start](@/reference/latest/src/client/java/com/example/docs/datagen/FabricDocsReferenceAdvancementProvider.java) +@[code lang=java transcludeWith=:::datagen-advancements:provider-start](@/reference/1.21/src/client/java/com/example/docs/datagen/FabricDocsReferenceAdvancementProvider.java) Per completare la configurazione, aggiungi questo fornitore alla tua `DataGeneratorEntrypoint` nel metodo `onInitializeDataGenerator`. -@[code lang=java transclude={24-24}](@/reference/latest/src/client/java/com/example/docs/datagen/FabricDocsReferenceDataGenerator.java) +@[code lang=java transclude={24-24}](@/reference/1.21/src/client/java/com/example/docs/datagen/FabricDocsReferenceDataGenerator.java) ## Struttura dei Progressi {#advancement-structure} @@ -40,17 +40,17 @@ Un progresso è composto di alcune componenti diverse. Assieme ai requisiti, det Ecco un semplice progresso per aver ottenuto un blocco di terra: -@[code lang=java transcludeWith=:::datagen-advancements:simple-advancement](@/reference/latest/src/client/java/com/example/docs/datagen/FabricDocsReferenceAdvancementProvider.java) +@[code lang=java transcludeWith=:::datagen-advancements:simple-advancement](@/reference/1.21/src/client/java/com/example/docs/datagen/FabricDocsReferenceAdvancementProvider.java) :::details Output JSON -@[code lang=json](@/reference/latest/src/main/generated/data/fabric-docs-reference/advancement/fabric-docs-reference/get_dirt.json) +@[code lang=json](@/reference/1.21/src/main/generated/data/fabric-docs-reference/advancement/fabric-docs-reference/get_dirt.json) ::: ## Un Altro Esempio Ancora {#one-more-example} Solo per capirne il funzionamento, aggiungiamo un altro progresso. Faremo pratica con l'aggiunta di ricompense, l'utilizzo di criterio multiplo, e l'assegnazione di genitori: -@[code lang=java transcludeWith=:::datagen-advancements:second-advancement](@/reference/latest/src/client/java/com/example/docs/datagen/FabricDocsReferenceAdvancementProvider.java) +@[code lang=java transcludeWith=:::datagen-advancements:second-advancement](@/reference/1.21/src/client/java/com/example/docs/datagen/FabricDocsReferenceAdvancementProvider.java) Non dimenticare di generarli! Usa il comando da terminale qui sotto o esegui la configurazione in IntelliJ. @@ -84,13 +84,13 @@ Un **predicato** è qualcosa che prende un valore e restituisce un `boolean`. Pe Anzitutto ci serve una meccanica da implementare. Informiamo il giocatore riguardo a quale strumento ha utilizzato ogni volta che rompe un blocco. -@[code lang=java transcludeWith=:::datagen-advancements:entrypoint](@/reference/latest/src/main/java/com/example/docs/advancement/FabricDocsReferenceDatagenAdvancement.java) +@[code lang=java transcludeWith=:::datagen-advancements:entrypoint](@/reference/1.21/src/main/java/com/example/docs/advancement/FabricDocsReferenceDatagenAdvancement.java) Nota che questo è del codice molto brutto. La `HashMap` non viene memorizzata persistentemente, quindi sarà resettata ad ogni riavvio del gioco. È solo per mostrare i `Criterion`. Avvia il gioco e provalo! Ora, creiamo il nostro criterio personalizzato, `UseToolCriterion`. Avrà bisogno di una sua classe `Conditions`, quindi creeremo entrambe insieme: -@[code lang=java transcludeWith=:::datagen-advancements:criterion-base](@/reference/latest/src/main/java/com/example/docs/advancement/UseToolCriterion.java) +@[code lang=java transcludeWith=:::datagen-advancements:criterion-base](@/reference/1.21/src/main/java/com/example/docs/advancement/UseToolCriterion.java) Wow, questo è un sacco! Analizziamolo poco per volta. @@ -104,31 +104,31 @@ Per saperne di più sui codec, controlla la pagina [Codec](../codecs). Ci serve un modo per controllare se le condizioni sono soddisfatte. Aggiungiamo un metodo ausiliare a `Conditions`: -@[code lang=java transcludeWith=:::datagen-advancements:conditions-test](@/reference/latest/src/main/java/com/example/docs/advancement/UseToolCriterion.java) +@[code lang=java transcludeWith=:::datagen-advancements:conditions-test](@/reference/1.21/src/main/java/com/example/docs/advancement/UseToolCriterion.java) Ora che abbiamo un criterio e le sue condizioni, ci serve un modo per innescarlo. Aggiungi un metodo d'innesco a `UseToolCriterion`: -@[code lang=java transcludeWith=:::datagen-advancements:criterion-trigger](@/reference/latest/src/main/java/com/example/docs/advancement/UseToolCriterion.java) +@[code lang=java transcludeWith=:::datagen-advancements:criterion-trigger](@/reference/1.21/src/main/java/com/example/docs/advancement/UseToolCriterion.java) Ci siamo quasi! Ora, ci serve un'istanza del nostro criterio con cui lavorare. Mettiamola in una nuova classe, chiamata `ModCriteria`. -@[code lang=java transcludeWith=:::datagen-advancements:mod-criteria](@/reference/latest/src/main/java/com/example/docs/advancement/ModCriteria.java) +@[code lang=java transcludeWith=:::datagen-advancements:mod-criteria](@/reference/1.21/src/main/java/com/example/docs/advancement/ModCriteria.java) Per assicurarci che i nostri criteri siano inizializzati al tempo giusto, aggiungi un metodo vuoto `init`: -@[code lang=java transcludeWith=:::datagen-advancements:mod-criteria-init](@/reference/latest/src/main/java/com/example/docs/advancement/ModCriteria.java) +@[code lang=java transcludeWith=:::datagen-advancements:mod-criteria-init](@/reference/1.21/src/main/java/com/example/docs/advancement/ModCriteria.java) E chiamalo nell'initializer della tua mod: -@[code lang=java transcludeWith=:::datagen-advancements:call-init](@/reference/latest/src/main/java/com/example/docs/advancement/FabricDocsReferenceDatagenAdvancement.java) +@[code lang=java transcludeWith=:::datagen-advancements:call-init](@/reference/1.21/src/main/java/com/example/docs/advancement/FabricDocsReferenceDatagenAdvancement.java) Infine, dobbiamo innescare i nostri criteri. Aggiungi questo a dove inviamo un messaggio al giocatore nella classe main della mod. -@[code lang=java transcludeWith=:::datagen-advancements:trigger-criterion](@/reference/latest/src/main/java/com/example/docs/advancement/FabricDocsReferenceDatagenAdvancement.java) +@[code lang=java transcludeWith=:::datagen-advancements:trigger-criterion](@/reference/1.21/src/main/java/com/example/docs/advancement/FabricDocsReferenceDatagenAdvancement.java) Il tuo criterio nuovo e luccicante è ora pronto per l'uso! Aggiungiamolo al nostro fornitore: -@[code lang=java transcludeWith=:::datagen-advancements:custom-criteria-advancement](@/reference/latest/src/client/java/com/example/docs/datagen/FabricDocsReferenceAdvancementProvider.java) +@[code lang=java transcludeWith=:::datagen-advancements:custom-criteria-advancement](@/reference/1.21/src/client/java/com/example/docs/datagen/FabricDocsReferenceAdvancementProvider.java) Esegui l'operazione di datagen di nuovo, e avrai con te un nuovo progresso con cui giocare! @@ -138,30 +138,30 @@ Tutto questo è bello e tutto, ma, e se volessimo solo concedere il progresso do Lavoriamo dal basso verso l'alto. Dovremo verificare se i requisiti sono soddisfatti, quindi modifichiamo il nostro metodo `Conditions#requirementsMet`: -@[code lang=java transcludeWith=:::datagen-advancements:new-requirements-met](@/reference/latest/src/main/java/com/example/docs/advancement/ParameterizedUseToolCriterion.java) +@[code lang=java transcludeWith=:::datagen-advancements:new-requirements-met](@/reference/1.21/src/main/java/com/example/docs/advancement/ParameterizedUseToolCriterion.java) `requiredTimes` non esiste, quindi rendilo un parametro di `Conditions`: -@[code lang=java transcludeWith=:::datagen-advancements:new-parameter](@/reference/latest/src/main/java/com/example/docs/advancement/ParameterizedUseToolCriterion.java) +@[code lang=java transcludeWith=:::datagen-advancements:new-parameter](@/reference/1.21/src/main/java/com/example/docs/advancement/ParameterizedUseToolCriterion.java) Ora il nostro codec dà errore. Scriviamo un nuovo codec per le nuove modifiche: -@[code lang=java transcludeWith=:::datagen-advancements:new-codec](@/reference/latest/src/main/java/com/example/docs/advancement/ParameterizedUseToolCriterion.java) +@[code lang=java transcludeWith=:::datagen-advancements:new-codec](@/reference/1.21/src/main/java/com/example/docs/advancement/ParameterizedUseToolCriterion.java) Andando avanti, dobbiamo ora aggiustare il nostro metodo `trigger`: -@[code lang=java transcludeWith=:::datagen-advancements:new-trigger](@/reference/latest/src/main/java/com/example/docs/advancement/ParameterizedUseToolCriterion.java) +@[code lang=java transcludeWith=:::datagen-advancements:new-trigger](@/reference/1.21/src/main/java/com/example/docs/advancement/ParameterizedUseToolCriterion.java) Se hai creato un nuov criterio, dobbiamo aggiungerlo a `ModCriteria` -@[code lang=java transcludeWith=:::datagen-advancements:new-mod-criteria](@/reference/latest/src/main/java/com/example/docs/advancement/ModCriteria.java) +@[code lang=java transcludeWith=:::datagen-advancements:new-mod-criteria](@/reference/1.21/src/main/java/com/example/docs/advancement/ModCriteria.java) E chiamarlo nella nostra classe principale, proprio dove c'è quello vecchio: -@[code lang=java transcludeWith=:::datagen-advancements:trigger-new-criterion](@/reference/latest/src/main/java/com/example/docs/advancement/FabricDocsReferenceDatagenAdvancement.java) +@[code lang=java transcludeWith=:::datagen-advancements:trigger-new-criterion](@/reference/1.21/src/main/java/com/example/docs/advancement/FabricDocsReferenceDatagenAdvancement.java) Aggiungi il progresso al tuo fornitore: -@[code lang=java transcludeWith=:::datagen-advancements:new-custom-criteria-advancement](@/reference/latest/src/client/java/com/example/docs/datagen/FabricDocsReferenceAdvancementProvider.java) +@[code lang=java transcludeWith=:::datagen-advancements:new-custom-criteria-advancement](@/reference/1.21/src/client/java/com/example/docs/datagen/FabricDocsReferenceAdvancementProvider.java) Esegui nuovamente la datagen, e hai finalmente finito! diff --git a/versions/1.21/translated/it_it/develop/data-generation/loot-tables.md b/versions/1.21/translated/it_it/develop/data-generation/loot-tables.md index 350993bc6..cdf470740 100644 --- a/versions/1.21/translated/it_it/develop/data-generation/loot-tables.md +++ b/versions/1.21/translated/it_it/develop/data-generation/loot-tables.md @@ -20,7 +20,7 @@ Assicurati di aver prima completato il processo di [configurazione della datagen Ti serviranno fornitori (classi) diversi per blocchi, bauli, ed entità. Ricorda di aggiungerli tutto al tuo pack nella tua `DataGeneratorEntrypoint` nel metodo `onInitializeDataGenerator`. -@[code lang=java transclude={32-33}](@/reference/latest/src/client/java/com/example/docs/datagen/FabricDocsReferenceDataGenerator.java) +@[code lang=java transclude={32-33}](@/reference/1.21/src/client/java/com/example/docs/datagen/FabricDocsReferenceDataGenerator.java) ## Loot Table Spiegate {#loot-tables-explained} @@ -32,7 +32,7 @@ Le loot pool hanno **voci**, **condizioni**, funzioni, **roll** e **roll bonus** Perché i blocchi droppino oggetti - inclusi se stessi - dobbiamo creare una loot table. Crea una classe che `extends FabricBlockLootTableProvider`: -@[code lang=java transcludeWith=:::datagen-loot-tables:block-provider](@/reference/latest/src/client/java/com/example/docs/datagen/FabricDocsReferenceBlockLootTableProvider.java) +@[code lang=java transcludeWith=:::datagen-loot-tables:block-provider](@/reference/1.21/src/client/java/com/example/docs/datagen/FabricDocsReferenceBlockLootTableProvider.java) Assicurati di aggiungere questo fornitore al tuo pack! @@ -40,18 +40,18 @@ Ci sono parecchi metodi ausiliari per aiutarti a costruire le tue loot table. No Aggiungiamo alcuni drop nel metodo `generate`: -@[code lang=java transcludeWith=:::datagen-loot-tables:block-drops](@/reference/latest/src/client/java/com/example/docs/datagen/FabricDocsReferenceBlockLootTableProvider.java) +@[code lang=java transcludeWith=:::datagen-loot-tables:block-drops](@/reference/1.21/src/client/java/com/example/docs/datagen/FabricDocsReferenceBlockLootTableProvider.java) ## Bauli {#chests} Il loot dei bauli è un po' più complesso del loot dei blocchi. Crea una classe che `extends SimpleFabricLootTableProvider` come nell'esempio sotto **e aggiungila al tuo pack**. -@[code lang=java transcludeWith=:::datagen-loot-tables:chest-provider](@/reference/latest/src/client/java/com/example/docs/datagen/FabricDocsReferenceChestLootTableProvider.java) +@[code lang=java transcludeWith=:::datagen-loot-tables:chest-provider](@/reference/1.21/src/client/java/com/example/docs/datagen/FabricDocsReferenceChestLootTableProvider.java) Ci servirà una `RegistryKey` per la nostra loot table. Mettiamola in una nuova classe chiamata `ModLootTables`. Assicurati che sia nel tuo insieme di sorgenti `main` se usi fonti suddivise. -@[code lang=java transcludeWith=:::datagen-loot-tables:mod-loot-tables](@/reference/latest/src/main/java/com/example/docs/ModLootTables.java) +@[code lang=java transcludeWith=:::datagen-loot-tables:mod-loot-tables](@/reference/1.21/src/main/java/com/example/docs/ModLootTables.java) Poi possiamo generare una loot table nel metodo `generate` del tuo fornitore. -@[code lang=java transcludeWith=:::datagen-loot-tables:chest-loot](@/reference/latest/src/client/java/com/example/docs/datagen/FabricDocsReferenceChestLootTableProvider.java) +@[code lang=java transcludeWith=:::datagen-loot-tables:chest-loot](@/reference/1.21/src/client/java/com/example/docs/datagen/FabricDocsReferenceChestLootTableProvider.java) diff --git a/versions/1.21/translated/it_it/develop/data-generation/recipes.md b/versions/1.21/translated/it_it/develop/data-generation/recipes.md index 2536fdc82..55a0a6cd5 100644 --- a/versions/1.21/translated/it_it/develop/data-generation/recipes.md +++ b/versions/1.21/translated/it_it/develop/data-generation/recipes.md @@ -19,23 +19,23 @@ Assicurati di aver prima completato il processo di [configurazione della datagen Anzitutto, ci serve il nostro fornitore. Crea una classe che `extends FabricRecipeProvider`. Tutta la nostra generazione di ricette avverrà nel metodo `generate` del nostro fornitore. -@[code lang=java transcludeWith=:::datagen-recipes:provider](@/reference/latest/src/client/java/com/example/docs/datagen/FabricDocsReferenceRecipeProvider.java) +@[code lang=java transcludeWith=:::datagen-recipes:provider](@/reference/1.21/src/client/java/com/example/docs/datagen/FabricDocsReferenceRecipeProvider.java) Per completare la configurazione, aggiungi questo fornitore alla tua `DataGeneratorEntrypoint` nel metodo `onInitializeDataGenerator`. -@[code lang=java transclude={30-30}](@/reference/latest/src/client/java/com/example/docs/datagen/FabricDocsReferenceDataGenerator.java) +@[code lang=java transclude={30-30}](@/reference/1.21/src/client/java/com/example/docs/datagen/FabricDocsReferenceDataGenerator.java) ## Ricette Senza Forma {#shapeless-recipes} Le ricette senza forma non sono complesse. Basta aggiungerle al metodo `generate` nel tuo fornitore: -@[code lang=java transcludeWith=:::datagen-recipes:shapeless](@/reference/latest/src/client/java/com/example/docs/datagen/FabricDocsReferenceRecipeProvider.java) +@[code lang=java transcludeWith=:::datagen-recipes:shapeless](@/reference/1.21/src/client/java/com/example/docs/datagen/FabricDocsReferenceRecipeProvider.java) ## Ricette Con Forma {#shaped-recipes} Per una ricetta con forma, dovrai definire la forma con una `String`, poi definire ciò che ogni `char` della `String` rappresenta. -@[code lang=java transcludeWith=:::datagen-recipes:shaped](@/reference/latest/src/client/java/com/example/docs/datagen/FabricDocsReferenceRecipeProvider.java) +@[code lang=java transcludeWith=:::datagen-recipes:shaped](@/reference/1.21/src/client/java/com/example/docs/datagen/FabricDocsReferenceRecipeProvider.java) :::tip Ci sono tanti metodi ausiliari per la creazione di ricette tipiche. Controlla ciò che `RecipeProvider` ha da offrire! Usa `Alt + 7` in IntelliJ per aprire la struttura di una classe, inclusa una lista dei metodi. @@ -45,6 +45,6 @@ Ci sono tanti metodi ausiliari per la creazione di ricette tipiche. Controlla ci Altre ricette funzionano in maniera simile, ma richiedono alcuni parametri aggiuntivi. Per esempio, le ricette di fusioni devono includere la quantità di esperienza da assegnare. -@[code lang=java transcludeWith=:::datagen-recipes:other](@/reference/latest/src/client/java/com/example/docs/datagen/FabricDocsReferenceRecipeProvider.java) +@[code lang=java transcludeWith=:::datagen-recipes:other](@/reference/1.21/src/client/java/com/example/docs/datagen/FabricDocsReferenceRecipeProvider.java) ## Tipi di Ricette Personalizzati {#custom-recipe-types} diff --git a/versions/1.21/translated/it_it/develop/data-generation/setup.md b/versions/1.21/translated/it_it/develop/data-generation/setup.md index a58c308ed..6721afd92 100644 --- a/versions/1.21/translated/it_it/develop/data-generation/setup.md +++ b/versions/1.21/translated/it_it/develop/data-generation/setup.md @@ -42,7 +42,7 @@ Anzitutto, dobbiamo attivare la datagen nel file `build.gradle`. Poi ci serve una classe entrypoint. È qui che comincia la nostra datagen. Mettila da qualche parte nel package `client` - questo esempio la inserisce in `src/client/java/com/example/docs/datagen/FabricDocsReferenceDataGenerator.java`. -@[code lang=java transcludeWith=:::datagen-setup:generator](@/reference/latest/src/client/java/com/example/docs/datagen/FabricDocsReferenceDataGenerator.java) +@[code lang=java transcludeWith=:::datagen-setup:generator](@/reference/1.21/src/client/java/com/example/docs/datagen/FabricDocsReferenceDataGenerator.java) Infine, informiamo Fabric dell'entrypoint nel nostro `fabric.mod.json`: @@ -71,7 +71,7 @@ Chiudi e riapri IntelliJ per creare una configurazione di esecuzione per la data Nel metodo `onInitializeDataGenerator` del tuo entrypoint di datagen, dobbiamo creare un `Pack`. Dopo aggiungerai dei **fornitori**, che metteranno i dati generati in questo `Pack`. -@[code lang=java transcludeWith=:::datagen-setup:pack](@/reference/latest/src/client/java/com/example/docs/datagen/FabricDocsReferenceDataGenerator.java) +@[code lang=java transcludeWith=:::datagen-setup:pack](@/reference/1.21/src/client/java/com/example/docs/datagen/FabricDocsReferenceDataGenerator.java) ## Eseguire la Generazione di Dati {#running-data-generation} diff --git a/versions/1.21/translated/it_it/develop/data-generation/tags.md b/versions/1.21/translated/it_it/develop/data-generation/tags.md index c0eddc549..5dda48f48 100644 --- a/versions/1.21/translated/it_it/develop/data-generation/tags.md +++ b/versions/1.21/translated/it_it/develop/data-generation/tags.md @@ -19,7 +19,7 @@ Assicurati di aver prima completato il processo di [configurazione della datagen Anzitutto, crea la tua classe che `extends FabricTagProvider`, dove `T` è il tipo di cosa per la quale vuoi fornire un tag. Questo è il tuo **fornitore**. Qui mostreremo come creare tag di `Item`, ma lo stesso principio si applica ad altre cose. Lascia che il tuo IDE compili il codice richiesto, poi sostituisci il parametro `registryKey` del costruttore con la `RegistryKey` per il tuo tipo: -@[code lang=java transcludeWith=:::datagen-tags:provider](@/reference/latest/src/client/java/com/example/docs/datagen/FabricDocsReferenceItemTagProvider.java) +@[code lang=java transcludeWith=:::datagen-tags:provider](@/reference/1.21/src/client/java/com/example/docs/datagen/FabricDocsReferenceItemTagProvider.java) :::info NOTA Ti servirà un fornitore diverso per ogni tipo di tag (per esempio un `FabricTagProvider>` e un `FabricTagProvider`). @@ -27,13 +27,13 @@ Ti servirà un fornitore diverso per ogni tipo di tag (per esempio un `FabricTag Per completare la configurazione, aggiungi questo fornitore alla tua `DataGeneratorEntrypoint` nel metodo `onInitializeDataGenerator`. -@[code lang=java transclude={28-28}](@/reference/latest/src/client/java/com/example/docs/datagen/FabricDocsReferenceDataGenerator.java) +@[code lang=java transclude={28-28}](@/reference/1.21/src/client/java/com/example/docs/datagen/FabricDocsReferenceDataGenerator.java) ## Creare un Tag {#creating-a-tag} Ora che hai creato un fornitore, aggiungiamoci un tag. Anzitutto, crea una `TagKey`: -@[code lang=java transcludeWith=:::datagen-tags:tag-key](@/reference/latest/src/client/java/com/example/docs/datagen/FabricDocsReferenceItemTagProvider.java) +@[code lang=java transcludeWith=:::datagen-tags:tag-key](@/reference/1.21/src/client/java/com/example/docs/datagen/FabricDocsReferenceItemTagProvider.java) Poi, chiama `getOrCreateTagBuilder` nel metodo `configure` del tuo fornitore. Da lì, puoi aggiungere oggetti individualmente, aggiungere altri tag, o fare in modo che questo tag ne sostituisca di preesistenti. @@ -41,4 +41,4 @@ Se vuoi aggiungere un tag, usa `addOptionalTag`, poiché i contenuti del tag pot Per aggiungere un tag forzatamente ignorando il formato errato, usa `forceAddTag`. -@[code lang=java transcludeWith=:::datagen-tags:build](@/reference/latest/src/client/java/com/example/docs/datagen/FabricDocsReferenceItemTagProvider.java) +@[code lang=java transcludeWith=:::datagen-tags:build](@/reference/1.21/src/client/java/com/example/docs/datagen/FabricDocsReferenceItemTagProvider.java) diff --git a/versions/1.21/translated/it_it/develop/data-generation/translations.md b/versions/1.21/translated/it_it/develop/data-generation/translations.md index ece201934..e996cb052 100644 --- a/versions/1.21/translated/it_it/develop/data-generation/translations.md +++ b/versions/1.21/translated/it_it/develop/data-generation/translations.md @@ -22,7 +22,7 @@ Assicurati di aver prima completato il processo di [configurazione della datagen Anzitutto, creeremo il nostro **fornitore**. Ricorda: i fornitori sono ciò che ci genera effettivamente i dati. Crea una classe che `extends FabricLanguageProvider` e compilane i metodi di base: -@[code lang=java transcludeWith=:::datagen-translations:provider](@/reference/latest/src/client/java/com/example/docs/datagen/FabricDocsReferenceEnglishLangProvider.java) +@[code lang=java transcludeWith=:::datagen-translations:provider](@/reference/1.21/src/client/java/com/example/docs/datagen/FabricDocsReferenceEnglishLangProvider.java) :::info NOTA Ti servirà un fornitore diverso per ogni lingua che vorrai generare (per esempio un `ExampleEnglishLangProvider` e un `ExamplePirateLangProvider`). @@ -30,13 +30,13 @@ Ti servirà un fornitore diverso per ogni lingua che vorrai generare (per esempi Per completare la configurazione, aggiungi questo fornitore alla tua `DataGeneratorEntrypoint` nel metodo `onInitializeDataGenerator`. -@[code lang=java transclude={26-26}](@/reference/latest/src/client/java/com/example/docs/datagen/FabricDocsReferenceDataGenerator.java) +@[code lang=java transclude={26-26}](@/reference/1.21/src/client/java/com/example/docs/datagen/FabricDocsReferenceDataGenerator.java) ## Creare Traduzioni {#creating-translations} Oltre a creare traduzioni crude, traduzioni da `Identifier`, e copiarli da un altro file esistente (passando un `Path`), ci sono metodi ausiliari per tradurre oggetti, blocchi, tag, statistiche, entità, effetti di stato, gruppi di oggetti, attributi di entità, e incantesimi. Basta chiamare `add` sul `translationBuilder` con ciò che vuoi tradurre e ciò a cui dovrebbe essere tradotto: -@[code lang=java transcludeWith=:::datagen-translations:build](@/reference/latest/src/client/java/com/example/docs/datagen/FabricDocsReferenceEnglishLangProvider.java) +@[code lang=java transcludeWith=:::datagen-translations:build](@/reference/1.21/src/client/java/com/example/docs/datagen/FabricDocsReferenceEnglishLangProvider.java) ## Usare le Traduzioni {#using-translations} diff --git a/versions/1.21/translated/it_it/develop/entities/damage-types.md b/versions/1.21/translated/it_it/develop/entities/damage-types.md index 498e655ae..13f61df90 100644 --- a/versions/1.21/translated/it_it/develop/entities/damage-types.md +++ b/versions/1.21/translated/it_it/develop/entities/damage-types.md @@ -21,7 +21,7 @@ resources/data/fabric-docs-reference/damage_type/tater.json Ha la struttura seguente: -@[code lang=json](@/reference/latest/src/main/generated/data/fabric-docs-reference/damage_type/tater.json) +@[code lang=json](@/reference/1.21/src/main/generated/data/fabric-docs-reference/damage_type/tater.json) Questo tipo di danno personalizzato causa un aumento di 0.1 nel livello di esaurimento ([exhaustion level](https://minecraft.wiki/w/Hunger#Exhaustion_level_increase)) ogni volta che il giocatore prende danno, quando il danno è causato da una fonte vivente che non sia un giocatore (per esempio un blocco). Inoltre, la quantità di danno subita cambierà a seconda della difficoltà del mondo @@ -37,7 +37,7 @@ Quando abbiamo bisogno di accedere al nostro tipo di danno personalizzato tramit La `RegistryKey` può essere ottenuta nel modo seguente: -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/damage/FabricDocsReferenceDamageTypes.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/damage/FabricDocsReferenceDamageTypes.java) ### Usare i Tipi di Danno {#using-damage-types} @@ -47,15 +47,15 @@ Puoi fare override di `onSteppedOn` per infliggere questo danno. Cominciamo creando una `DamageSource` del nostro tipo di danno personalizzato. -@[code lang=java transclude={21-24}](@/reference/latest/src/main/java/com/example/docs/damage/TaterBlock.java) +@[code lang=java transclude={21-24}](@/reference/1.21/src/main/java/com/example/docs/damage/TaterBlock.java) Poi, chiamiamo `entity.damage()` con la nostra `DamageSource` e con una quantità. -@[code lang=java transclude={25-25}](@/reference/latest/src/main/java/com/example/docs/damage/TaterBlock.java) +@[code lang=java transclude={25-25}](@/reference/1.21/src/main/java/com/example/docs/damage/TaterBlock.java) L'intera implementazione del blocco: -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/damage/TaterBlock.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/damage/TaterBlock.java) Ora quando un'entità vivente calpesta il nostro blocco personalizzato, subirà 5 di danno (2.5 cuori) usando il nostro tipo di danno personalizzato. @@ -63,7 +63,7 @@ Ora quando un'entità vivente calpesta il nostro blocco personalizzato, subirà Puoi definire un messaggio di morte per il tipo di danno nel formato `death.attack.` nel file `en_us.json` della nostra mod. -@[code lang=json transclude={4-4}](@/reference/latest/src/main/resources/assets/fabric-docs-reference/lang/en_us.json) +@[code lang=json transclude={4-4}](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/lang/en_us.json) Al momento della morte dal nostro tipo di danno personalizzato, vedrete il messaggio di morte seguente: @@ -91,6 +91,6 @@ data/minecraft/tags/damage_type/bypasses_armor.json Con il contenuto seguente: -@[code lang=json](@/reference/latest/src/main/generated/data/minecraft/tags/damage_type/bypasses_armor.json) +@[code lang=json](@/reference/1.21/src/main/generated/data/minecraft/tags/damage_type/bypasses_armor.json) Assicurati che il tuo tag non sostituisca il tag esistente impostando la chiave `replace` a `false`. diff --git a/versions/1.21/translated/it_it/develop/entities/effects.md b/versions/1.21/translated/it_it/develop/entities/effects.md index 5368046b9..8915641d5 100644 --- a/versions/1.21/translated/it_it/develop/entities/effects.md +++ b/versions/1.21/translated/it_it/develop/entities/effects.md @@ -27,13 +27,13 @@ In questo tutorial aggiungeremo un nuovo effetto personalizzato chiamato _Tater_ Creiamo una classe per il nostro effetto personalizzato estendendo `StatusEffect`, che è la classe base per tutti gli effetti. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/effect/TaterEffect.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/effect/TaterEffect.java) ### Registrare il tuo Effetto Personalizzato {#registering-your-custom-effect} Come nella registrazione di blocchi e oggetti, usiamo `Registry.register` per registrare i nostri effetti personalizzati nella registry `STATUS_EFFECT`. Questo può essere fatto nel nostro initializer. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/effect/FabricDocsReferenceEffects.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/effect/FabricDocsReferenceEffects.java) ### Texture {#texture} @@ -70,7 +70,7 @@ effect give @p fabric-docs-reference:tater Per applicare un effetto internamente, vorrai usare il metodo `LivingEntity#addStatusEffect`, che prende una `StatusEffectInstance`, e restituisce un booleano, che indica se l'effetto è stato applicato con successo. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/ReferenceMethods.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/ReferenceMethods.java) | Argomento | Tipo | Descrizione | | ----------- | ----------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | diff --git a/versions/1.21/translated/it_it/develop/events.md b/versions/1.21/translated/it_it/develop/events.md index e94995b4c..2f1a768cd 100644 --- a/versions/1.21/translated/it_it/develop/events.md +++ b/versions/1.21/translated/it_it/develop/events.md @@ -41,7 +41,7 @@ Tutti le interfacce callback degli eventi fornite dall'API di Fabric possono ess Questo esempio registra un `AttackBlockCallback` per danneggiare il giocatore quando egli colpisce dei blocchi che non droppano un oggetto se rotti senza strumenti. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/event/FabricDocsReferenceEvents.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/event/FabricDocsReferenceEvents.java) ### Aggiungere Oggetti alle Loot Table Esistenti {#adding-items-to-existing-loot-tables} @@ -55,7 +55,7 @@ Aggiungeremo le uova alla loot table del minerale di carbone. L'API di Fabric ha un evento che si attiva quando le loot table sono caricate, `LootTableEvents.MODIFY`. Puoi registrare un callback per quell'evento nell'[initializer della tua mod](./getting-started/project-structure#entrypoints). Controlliamo anche che la loot table corrente sia quella del minerale di carbone. -@[code lang=java transclude={38-40}](@/reference/latest/src/main/java/com/example/docs/event/FabricDocsReferenceEvents.java) +@[code lang=java transclude={38-40}](@/reference/1.21/src/main/java/com/example/docs/event/FabricDocsReferenceEvents.java) #### Aggiungere Oggetti alla Loot Table {#adding-items-to-the-loot-table} @@ -65,7 +65,7 @@ Possiamo creare una pool con `LootPool#builder`, e aggiungerla alla loot table. La nostra pool non ha nemmeno un oggetto, quindi dovremo creare una voce oggetto usando `ItemEntry#builder` e aggiungerla alla pool. -@[code highlight={6-7} transcludeWith=:::2](@/reference/latest/src/main/java/com/example/docs/event/FabricDocsReferenceEvents.java) +@[code highlight={6-7} transcludeWith=:::2](@/reference/1.21/src/main/java/com/example/docs/event/FabricDocsReferenceEvents.java) ## Eventi Personalizzati {#custom-events} @@ -89,34 +89,34 @@ Usare `ActionResult` come valore restituito è una convenzione per far cooperare Dovrai creare un'interfaccia che ha un'istanza `Event` e un metodo per implementare la risposta. Una semplice configurazione per il nostro callback di tosatura di una pecora è: -@[code lang=java transcludeWith=:::](@/reference/latest/src/main/java/com/example/docs/event/SheepShearCallback.java) +@[code lang=java transcludeWith=:::](@/reference/1.21/src/main/java/com/example/docs/event/SheepShearCallback.java) Diamogli un'occhiata più precisa. Quando l'invocatore viene chiamato, iteriamo su tutti i listener: -@[code lang=java transclude={21-22}](@/reference/latest/src/main/java/com/example/docs/event/SheepShearCallback.java) +@[code lang=java transclude={21-22}](@/reference/1.21/src/main/java/com/example/docs/event/SheepShearCallback.java) Poi chiamiamo il nostro metodo (in questo caso, `interact`) sul listener per ottenere la sua risposta: -@[code lang=java transclude={33-33}](@/reference/latest/src/main/java/com/example/docs/event/SheepShearCallback.java) +@[code lang=java transclude={33-33}](@/reference/1.21/src/main/java/com/example/docs/event/SheepShearCallback.java) Se il listener dice che dobbiamo annullare (`ActionResult.FAIL`), oppure finire completamente (`ActionResult.SUCCESS`), il callback restituisce il risultato e finisce il loop. `ActionResult.PASS` si sposta sul prossimo listener, e nella maggior parte dei casi dovrebbe risultare in un successo se non ci sono altri listener registrati: -@[code lang=java transclude={25-30}](@/reference/latest/src/main/java/com/example/docs/event/SheepShearCallback.java) +@[code lang=java transclude={25-30}](@/reference/1.21/src/main/java/com/example/docs/event/SheepShearCallback.java) Possiamo aggiungere commenti Javadoc in cima alle classi di callback per documentare cosa fa ogni `ActionResult`. Nel nostro caso, potrebbe essere: -@[code lang=java transclude={9-16}](@/reference/latest/src/main/java/com/example/docs/event/SheepShearCallback.java) +@[code lang=java transclude={9-16}](@/reference/1.21/src/main/java/com/example/docs/event/SheepShearCallback.java) ### Innescare l'Evento da un Mixin {#triggering-the-event-from-a-mixin} Ora abbiamo lo scheletro di base dell'evento, ma dobbiamo anche innescarlo. Siccome vogliamo che l'evento venga chiamato quando un giocatore prova a tosare una pecora, chiamiamo l'`invoker` dell'evento in `SheepEntity#interactMob` quando `sheared()` viene chiamata (ovvero quando la pecora può essere tosata, e il giocatore sta tenendo delle cesoie): -@[code lang=java transcludeWith=:::](@/reference/latest/src/main/java/com/example/docs/mixin/event/SheepEntityMixin.java) +@[code lang=java transcludeWith=:::](@/reference/1.21/src/main/java/com/example/docs/mixin/event/SheepEntityMixin.java) ### Creare un Implementazione di Prova {#creating-a-test-implementation} Ora dobbiamo testare il nostro evento. Puoi registrare un listener nel tuo metodo d'inizializzazione (o in un'altra area, se preferisci) e aggiungere logica personalizzata lì. Qui c'è un esempio che droppa un diamante anziché lana ai piedi della pecora: -@[code lang=java transcludeWith=:::3](@/reference/latest/src/main/java/com/example/docs/event/FabricDocsReferenceEvents.java) +@[code lang=java transcludeWith=:::3](@/reference/1.21/src/main/java/com/example/docs/event/FabricDocsReferenceEvents.java) Se entri nel gioco e tosi una pecora, un diamante dovrebbe essere droppato anziché lana. diff --git a/versions/1.21/translated/it_it/develop/getting-started/project-structure.md b/versions/1.21/translated/it_it/develop/getting-started/project-structure.md index 617218466..9df71f63e 100644 --- a/versions/1.21/translated/it_it/develop/getting-started/project-structure.md +++ b/versions/1.21/translated/it_it/develop/getting-started/project-structure.md @@ -25,7 +25,7 @@ Gli attributi più importanti nel file `fabric.mod.json` sono: Puoi trovare un esempio del file `fabric.mod.json` sotto - questo è il file `fabric.mod.json` per il progetto di riferimento su cui è basato questo sito di documentazione. :::details `fabric.mod.json` del Progetto di Riferimento -@[code lang=json](@/reference/latest/src/main/resources/fabric.mod.json) +@[code lang=json](@/reference/1.21/src/main/resources/fabric.mod.json) ::: ## Entrypoint {#entrypoints} @@ -41,7 +41,7 @@ Questi entrypoint vengono chiamati rispettivamente quando il gioco viene avviato Ecco un esempio di un entrypoint `main` molto semplice che logga un messaggio alla console quando si avvia il gioco: -@[code lang=java transcludeWith=#entrypoint](@/reference/latest/src/main/java/com/example/docs/FabricDocsReference.java) +@[code lang=java transcludeWith=#entrypoint](@/reference/1.21/src/main/java/com/example/docs/FabricDocsReference.java) ## `src/main/resources` {#src-main-resources} diff --git a/versions/1.21/translated/it_it/develop/index.md b/versions/1.21/translated/it_it/develop/index.md index 0100f3001..2bc91b677 100644 --- a/versions/1.21/translated/it_it/develop/index.md +++ b/versions/1.21/translated/it_it/develop/index.md @@ -9,6 +9,6 @@ Scritte dalla community, queste guide trattano una vasta gamma di argomenti, dal Controlla la barra laterale per una lista delle guide disponibili. Se cerchi qualcosa in particolare, la barra di ricerca in cima alla pagina è la tua migliore amica. -Ricorda: è disponibile una mod completamente funzionante con tutto il codice di questa documentazione nella [cartella `/reference` su GitHub](https://github.com/FabricMC/fabric-docs/tree/main/reference/latest). +Ricorda: è disponibile una mod completamente funzionante con tutto il codice di questa documentazione nella [cartella `/reference` su GitHub](https://github.com/FabricMC/fabric-docs/tree/main/reference/1.21). Se vuoi contribuire alla Documentazione di Fabric, puoi trovare il codice sorgente su [GitHub](https://github.com/FabricMC/fabric-docs), e le corrispondenti [linee guida per la contribuzione](../contributing). diff --git a/versions/1.21/translated/it_it/develop/items/custom-armor.md b/versions/1.21/translated/it_it/develop/items/custom-armor.md index 8a9a8e6a0..48688313b 100644 --- a/versions/1.21/translated/it_it/develop/items/custom-armor.md +++ b/versions/1.21/translated/it_it/develop/items/custom-armor.md @@ -35,7 +35,7 @@ public void onInitialize() { All'interno di questa classe `ModArmorMaterials`, dovrai creare un metodo statico che registrerà il materiale dell'armatura. Questo metodo dovrebbe restituire una voce di registry per il materiale, perché questa voce verrà usata dal costruttore di ArmorItem per creare le componenti dell'armatura. -@[code transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/item/armor/ModArmorMaterials.java) +@[code transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/item/armor/ModArmorMaterials.java) ## Proprietà dei Materiali delle Armature {#armor-material-properties} @@ -85,7 +85,7 @@ Ora che hai creato un metodo di utilità che può essere usato per registrare ma Per questo esempio, creeremo l'armatura di Guidite, con le seguenti proprietà: -@[code transcludeWith=:::2](@/reference/latest/src/main/java/com/example/docs/item/armor/ModArmorMaterials.java) +@[code transcludeWith=:::2](@/reference/1.21/src/main/java/com/example/docs/item/armor/ModArmorMaterials.java) ## Creare gli Oggetti dell'Armatura {#creating-the-armor-items} @@ -103,11 +103,11 @@ Le varie parti dell'armatura hanno durabilità base diverse, solitamente ottenut Per l'armatura di Guidite useremo un fattore condiviso memorizzato assieme al materiale dell'armatura: -@[code transcludeWith=:::3](@/reference/latest/src/main/java/com/example/docs/item/armor/ModArmorMaterials.java) +@[code transcludeWith=:::3](@/reference/1.21/src/main/java/com/example/docs/item/armor/ModArmorMaterials.java) Possiamo quindi creare gli oggetti dell'armatura con la costante di durabilità: -@[code transcludeWith=:::6](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::6](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) Dovrai anche **aggiungere gli oggetti ad un gruppo** se vorrai che essi siano accessibili dall'inventario in creativa. @@ -132,7 +132,7 @@ Come esempio, puoi usare le seguenti texture e modelli JSON come riferimento. Ti serviranno modelli in file JSON per tutti gli oggetti, non solo l'elmo, stesso principio di altri modelli di oggetti. ::: -@[code](@/reference/latest/src/main/resources/assets/fabric-docs-reference/models/item/guidite_helmet.json) +@[code](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/models/item/guidite_helmet.json) Come puoi notare, gli oggetti dell'armatura avranno i modelli appropriati nel gioco: diff --git a/versions/1.21/translated/it_it/develop/items/custom-data-components.md b/versions/1.21/translated/it_it/develop/items/custom-data-components.md index 7965523f3..b61c44663 100644 --- a/versions/1.21/translated/it_it/develop/items/custom-data-components.md +++ b/versions/1.21/translated/it_it/develop/items/custom-data-components.md @@ -19,7 +19,7 @@ Come per qualsiasi altra cosa nella tua mod dovrai registrare la tua componente Scegli sensibilmente una classe in cui mettere ciò. Per questo esempio creeremo un nuovo package chiamato `component` e una classe che conterrà tutti i tipi delle nostre componenti chiamate `ModComponents`. Assicurati di richiamare `ModComponents.initialize()` nell'[initializer della tua mod](./getting-started/project-structure#entrypoints). -@[code transcludeWith=::1](@/reference/latest/src/main/java/com/example/docs/component/ModComponents.java) +@[code transcludeWith=::1](@/reference/1.21/src/main/java/com/example/docs/component/ModComponents.java) Questo è il modello generico per registrare un tipo di componente: @@ -43,7 +43,7 @@ Le componenti di dati basilari (come `minecraft:damage`) consiste di un valore d Per questo esempio, creiamo un valore `Integer` che traccierà quante volte il giocatore ha cliccato con il tasto destro mente teneva il nostro oggetto. Aggiorniamo la registrazione della nostra componente alla seguente: -@[code transcludeWith=::2](@/reference/latest/src/main/java/com/example/docs/component/ModComponents.java) +@[code transcludeWith=::2](@/reference/1.21/src/main/java/com/example/docs/component/ModComponents.java) Puoi ora notare che abbiamo passato `` come nostro tipo generico, indicando che questa componente sarà memorizzata come un valore `int` singolo. Per il nostro codec, cusiamo il codec `Codec.INT` fornito. Possiamo cavarcela usando codec basilari per componenti semplici come questa, ma scenari più complessi potrebbero richiedere un codec personalizzato (questo sarà trattato tra poco). @@ -57,7 +57,7 @@ Quando esegui il comando, dovresti ricevere l'oggetto contenente la componente. Aggiungiamo un nuovo oggetto che aumenterà il contatore ogni volta che viene cliccato con il tasto destro. Dovresti leggere la pagina [Interazioni tra Oggetti Personalizzate](./custom-item-interactions) che tratterà delle tecniche utilizzate in questa guida. -@[code transcludeWith=::1](@/reference/latest/src/main/java/com/example/docs/item/custom/CounterItem.java) +@[code transcludeWith=::1](@/reference/1.21/src/main/java/com/example/docs/item/custom/CounterItem.java) Ricorda come sempre di registrare l'oggetto nella tua classe `ModItems`. @@ -117,7 +117,7 @@ Ci sono tre soluzioni a questo problema. Quando registri il tuo oggetto e passi un'istanza di `Item.Settings` al suo costruttore, puoi anche fornire una lista di componenti predefinite applicate a tutti i nuovi oggetti. Tornando alla nostra classe `ModItems`, dove registriamo il `CounterItem`, possiamo aggiungere un valore predefinito alla nostra componente. Aggiungi questo così i nuovi oggetti mostreranno un conto di `0`. -@[code transcludeWith=::_13](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=::_13](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) Quando un nuovo oggetto viene creato, applicherà automaticamente la nostra componente personalizzata con il valore dato. @@ -147,7 +147,7 @@ boolean exists = stack.contains(ModComponents.CLICK_COUNT_COMPONENT); Sceglieremo la terza opzione. Quindi, oltre ad aggiungere un valore predefinito alla componente, controlleremo anche se la componente esiste sullo stack, e mostreremo il tooltip solo se lo è. -@[code transcludeWith=::3](@/reference/latest/src/main/java/com/example/docs/item/custom/CounterItem.java) +@[code transcludeWith=::3](@/reference/1.21/src/main/java/com/example/docs/item/custom/CounterItem.java) Riavvia il gioco e passa il mouse sopra all'oggetto senza la componente, dovresti notare che mostra "Used 0 times" e non fa più crashare il gioco. @@ -179,7 +179,7 @@ int oldValue = stack.set(ModComponents.CLICK_COUNT_COMPONENT, newValue); Configuriamo un nuovo metodo `use()` per leggere il vecchio conto dei clic, aumentarlo di uno, e impostare il conto dei clic aggiornato. -@[code transcludeWith=::2](@/reference/latest/src/main/java/com/example/docs/item/custom/CounterItem.java) +@[code transcludeWith=::2](@/reference/1.21/src/main/java/com/example/docs/item/custom/CounterItem.java) Ora prova ad avviare il gioco e a cliccare con il tasto destro l'oggetto Counter nella tua mano. Aprendo l'inventario dovresti notare che il numero di utilizzi dell'oggetto è aumentato di tante volte quante hai cliccato. @@ -212,11 +212,11 @@ public record MyCustomComponent() { Nota che c'è un paio di parentesi dopo il nome della classe. Questo è dove definiremo la lista di proprietà che vogliamo dare alla nostra componente. Aggiungiamo un float e un booleano chiamati `temperature` e `burnt` rispettivamente. -@[code transcludeWith=::1](@/reference/latest/src/main/java/com/example/docs/component/MyCustomComponent.java) +@[code transcludeWith=::1](@/reference/1.21/src/main/java/com/example/docs/component/MyCustomComponent.java) Poiché stiamo definendo una struttura dai personalizzata, non ci sarà un `Codec` preesistente per il nostro caso come c'era per le [componenti basilari](#basic-data-components). Questo significa che dovremo costruire il nostro codec. Definiamone uno nella nostra classe record con un `RecordCodecBuilder` a cui potremo far riferimento quando registriamo la componente. Per maggiori dettagli sull'utilizzo di un `RecordCodecBuilder` fai riferimento a [questa sezione della pagina sui Codec](../codecs#merging-codecs-for-record-like-classes). -@[code transcludeWith=::2](@/reference/latest/src/main/java/com/example/docs/component/MyCustomComponent.java) +@[code transcludeWith=::2](@/reference/1.21/src/main/java/com/example/docs/component/MyCustomComponent.java) Puoi notare che stiamo definendo una lista di attributi personalizzati basata sui tipi di `Codec` primitivi. Tuttavia, stiamo anche indicando come si chiamano i nostri attributi con `fieldOf()`, e poi usando `forGetter()` per dire al gioco quale attributo del nostro record deve essere riempito. @@ -226,7 +226,7 @@ Infine, possiamo chiamare `apply()` e passare il costruttore del nostro record. Registrare una componente composita funziona come prima. Basta passare la nostra classe record come tipo generico, e il nostro `Codec` personalizzato al metodo `codec()`. -@[code transcludeWith=::3](@/reference/latest/src/main/java/com/example/docs/component/ModComponents.java) +@[code transcludeWith=::3](@/reference/1.21/src/main/java/com/example/docs/component/ModComponents.java) Ora avvia il gioco. Usando il comando `/give`, prova ad applicare la componente. I valori delle componenti composite si passano come oggetto racchiuso da `{}`. Se lasci le graffe vuote, vedrai un errore che ti dice che la chiave `temperature` necessaria è mancante. diff --git a/versions/1.21/translated/it_it/develop/items/custom-enchantment-effects.md b/versions/1.21/translated/it_it/develop/items/custom-enchantment-effects.md index b0e22dba3..265620d9f 100644 --- a/versions/1.21/translated/it_it/develop/items/custom-enchantment-effects.md +++ b/versions/1.21/translated/it_it/develop/items/custom-enchantment-effects.md @@ -23,7 +23,7 @@ Poi possiamo creare un costruttore e fare override dei metodi dell'interfaccia ` La maggior parte del nostro codice andrà nell'evento `apply()`, che viene chiamato quando i criteri perché il tuo incantesimo funzioni sono soddisfatti. Dopo di che configureremo questo `Effect` in modo che sia chiamato quando un'entità è colpita, ma per ora scriviamo codice semplice per colpire l'obiettivo con un fulmine. -@[code transcludeWith=#entrypoint](@/reference/latest/src/main/java/com/example/docs/enchantment/effect/LightningEnchantmentEffect.java) +@[code transcludeWith=#entrypoint](@/reference/1.21/src/main/java/com/example/docs/enchantment/effect/LightningEnchantmentEffect.java) Qui, la variabile `amount` indica un valore ridimensionato in base al livello dell'incantesimo. Possiamo usare questa per modificare l'efficacia dell'incantesimo in base al livello. Nel codice sopra, stiamo usando il livello dell'incantesimo per determinare quanti fulmini vengono generati. @@ -31,7 +31,7 @@ Qui, la variabile `amount` indica un valore ridimensionato in base al livello de Come ogni altra componente della tua mod, dovremo aggiungere questo `EnchantmentEffect` alla registry di Minecraft. Per fare ciò, aggiungi una classe `ModEnchantmentEffects` (o un qualsiasi nome che tu voglia darle) e un metodo ausiliare per registrare l'incantesimo. Assicurati di chiamare il `registerModEnchantmentEffects()` nella tua classe principale, che contiene il metodo `onInitialize()`. -@[code transcludeWith=#entrypoint](@/reference/latest/src/main/java/com/example/docs/enchantment/ModEnchantmentEffects.java) +@[code transcludeWith=#entrypoint](@/reference/1.21/src/main/java/com/example/docs/enchantment/ModEnchantmentEffects.java) ## Creare l'Incantesimo {#creating-the-enchantment} @@ -39,17 +39,17 @@ Ora abbiamo un effetto d'incantesimo! Il passaggio finale è creare un incantesi All'interno di questa classe registreremo anzitutto un nuovo incantesimo, e poi useremo il metodo `configure()` per creare il nostro JSON programmaticamente. -@[code transcludeWith=#entrypoint](@/reference/latest/src/client/java/com/example/docs/datagen/EnchantmentGenerator.java) +@[code transcludeWith=#entrypoint](@/reference/1.21/src/client/java/com/example/docs/datagen/EnchantmentGenerator.java) Prima di procedere dovresti assicurarti che il tuo progetto sia configurato per la generazione di dati; se non sei sicuro, [controlla la pagina corrispondente della documentazione](../data-generation/setup). Infine, dobbiamo dire alla nostra mod di aggiungere il nostro `EnchantmentGenerator` alla lista di operazioni di generazione dati. Per fare questo, basta aggiungere il `EnchantmentGenerator` a questo all'interno del metodo `onInitializeDataGenerator`. -@[code transclude={22-22}](@/reference/latest/src/client/java/com/example/docs/datagen/FabricDocsReferenceDataGenerator.java) +@[code transclude={22-22}](@/reference/1.21/src/client/java/com/example/docs/datagen/FabricDocsReferenceDataGenerator.java) Ora, eseguendo l'operazione di generazione dati della tua mod, i file JSON degli incantesimi verranno generati nella cartella `generated`. Ecco un esempio qua sotto: -@[code](@/reference/latest/src/main/generated/data/fabric-docs-reference/enchantment/thundering.json) +@[code](@/reference/1.21/src/main/generated/data/fabric-docs-reference/enchantment/thundering.json) Dovresti anche aggiungere le traduzioni al tuo file `en_us.json` per dare al tuo incantesimo un nome leggibile: diff --git a/versions/1.21/translated/it_it/develop/items/custom-item-groups.md b/versions/1.21/translated/it_it/develop/items/custom-item-groups.md index 658305b46..47651bc56 100644 --- a/versions/1.21/translated/it_it/develop/items/custom-item-groups.md +++ b/versions/1.21/translated/it_it/develop/items/custom-item-groups.md @@ -13,9 +13,9 @@ I gruppi di oggetti sono le schede nell'inventario in creativa che memorizzano o È sorprendentemente facile creare un gruppo di oggetti. Basta creare un nuovo attributo `static final` nella classe dei tuoi oggetti per memorizzare il gruppo di oggetti e una chiave di registry per esso, puoi quindi usare l'evento del gruppo di oggetti come quando hai aggiunti i tuoi oggetti ai gruppi vanilla: -@[code transcludeWith=:::9](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::9](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) -@[code transcludeWith=:::_12](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::_12](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java)
diff --git a/versions/1.21/translated/it_it/develop/items/custom-item-interactions.md b/versions/1.21/translated/it_it/develop/items/custom-item-interactions.md index da0635b4b..f4590a096 100644 --- a/versions/1.21/translated/it_it/develop/items/custom-item-interactions.md +++ b/versions/1.21/translated/it_it/develop/items/custom-item-interactions.md @@ -58,11 +58,11 @@ Un ottimo esempio di questi eventi in uso si trova nella pagina [Riprodurre Suon Immaginiamo che tu voglia fare in modo che l'oggetto crei un lampo davanti al giocatore - dovrai creare una classe personalizzata. -@[code transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/item/custom/LightningStick.java) +@[code transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/item/custom/LightningStick.java) L'evento `use` è probabilmente il più utile tra tutti - puoi usare questo evento per generare il lampo, dovresti generarlo 10 blocchi davanti al giocatore, nella direzione verso cui è diretto. -@[code transcludeWith=:::2](@/reference/latest/src/main/java/com/example/docs/item/custom/LightningStick.java) +@[code transcludeWith=:::2](@/reference/1.21/src/main/java/com/example/docs/item/custom/LightningStick.java) Come sempre, dovresti registrare il tuo oggetto, aggiungere un modello e una texture. diff --git a/versions/1.21/translated/it_it/develop/items/custom-tools.md b/versions/1.21/translated/it_it/develop/items/custom-tools.md index f452b3e3a..59a472b28 100644 --- a/versions/1.21/translated/it_it/develop/items/custom-tools.md +++ b/versions/1.21/translated/it_it/develop/items/custom-tools.md @@ -19,11 +19,11 @@ Questa classe può anche essere usata per determinare le proprietà del material Puoi creare un materiale dello strumento creando una nuova classe che lo eredita - in questo esempio, creeremo strumenti di "Guidite": -@[code transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) +@[code transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) Quando avrai creato il materiale del tuo strumento e l'avrai modificato a piacere, puoi creare un'istanza di esso da usare nei costruttori degli oggetti. -@[code transcludeWith=:::8](@/reference/latest/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) +@[code transcludeWith=:::8](@/reference/1.21/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) Il materiale dello strumento informa il gioco sulle seguenti proprietà: @@ -31,13 +31,13 @@ Il materiale dello strumento informa il gioco sulle seguenti proprietà: Quante volte si può usare lo strumento prima che si rompa: -@[code transcludeWith=:::2](@/reference/latest/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) +@[code transcludeWith=:::2](@/reference/1.21/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) ### Velocità di Rottura - `getMiningSpeedMultiplier()` {#mining-speed} Se lo strumento viene usato per rompere blocchi, quanto velocemente deve fare ciò? -@[code transcludeWith=:::3](@/reference/latest/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) +@[code transcludeWith=:::3](@/reference/1.21/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) Per darti un riferimento, il materiale diamante ha come velocità di rottura `8.0F`, mentre quello di pietra ha come velocità `4.0F`. @@ -45,7 +45,7 @@ Per darti un riferimento, il materiale diamante ha come velocità di rottura `8. Quanti punti di danno deve causare lo strumento quando lo si usa come arma contro un'altra entità? -@[code transcludeWith=:::4](@/reference/latest/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) +@[code transcludeWith=:::4](@/reference/1.21/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) ### Tag Invertito - `getMiningLevel()` {#inverse-tag} @@ -65,7 +65,7 @@ Questo significa che lo strumento non può rompere blocchi che richiedono strume Usiamo il tag degli strumenti di ferro. Questo non permetterà agli strumenti di Guidite di rompere blocchi che richiedono uno strumento più forte del ferro. -@[code transcludeWith=:::5](@/reference/latest/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) +@[code transcludeWith=:::5](@/reference/1.21/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) Puoi usare `TagKey.of(...)` per creare una chiave di tag personalizzata se vuoi usare un tag personalizzato. @@ -73,29 +73,29 @@ Puoi usare `TagKey.of(...)` per creare una chiave di tag personalizzata se vuoi Quanto facile è ottenere livelli maggiori e migliori degli incantesimi con questo oggetto? Per riferimento, l'oro ha incantabilità 22, mentre la netherite ha incantabilità 15. -@[code transcludeWith=:::6](@/reference/latest/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) +@[code transcludeWith=:::6](@/reference/1.21/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) ### Ingredienti di Riparo - `getRepairIngredient()` {#repair-ingredient} Quale oggetto o oggetti si usano per riparare lo strumento? -@[code transcludeWith=:::7](@/reference/latest/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) +@[code transcludeWith=:::7](@/reference/1.21/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) ## Creare Oggetti per gli Strumenti {#creating-tool-items} Con la stessa funzione di utilità della guida [Creare il Tuo Primo Oggetto](./first-item), puoi creare gli oggetti dei tuoi strumenti: -@[code transcludeWith=:::7](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::7](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) Ricorda di aggiungerli ad un gruppo di oggetti se vuoi accedere ad essi dall'inventario in creativa! -@[code transcludeWith=:::8](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::8](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) Dovrai anche aggiungere una texture, una traduzione e un modello per l'oggetto. Tuttavia, per i modelli, dovrai usare il modello `item/handheld` come genitore. Per questo esempio, useremo il modello e la texture seguenti per l'oggetto "Spada di Guidite": -@[code](@/reference/latest/src/main/resources/assets/fabric-docs-reference/models/item/guidite_sword.json) +@[code](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/models/item/guidite_sword.json) Texture diff --git a/versions/1.21/translated/it_it/develop/items/first-item.md b/versions/1.21/translated/it_it/develop/items/first-item.md index a115a9201..8d2b21f0b 100644 --- a/versions/1.21/translated/it_it/develop/items/first-item.md +++ b/versions/1.21/translated/it_it/develop/items/first-item.md @@ -22,7 +22,7 @@ Puoi mettere questo metodo in una classe chiamata `ModItems` (o qualsiasi altro Anche Mojang fa lo stesso per i suoi oggetti! Prendi ispirazione dalla classe `Items`. -@[code transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) ## Registrare un Oggetto {#registering-an-item} @@ -36,15 +36,15 @@ If you want to change your item's stack size, you can use the `maxCount` method Questo non funzionerà se hai segnato un oggetto come danneggiabile, poiché la dimensione di uno stack è sempre 1 per oggetti danneggiabili per evitare duplicazioni. ::: -@[code transcludeWith=:::2](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::2](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) Tuttavia, provando ora ad eseguire il client modificato, noterai che il nostro oggetto non esiste ancora nel gioco! Questo perché non hai inizializzato la classe staticamente. Per fare questo puoi aggiungere un metodo `initialize()` pubblico e statico alla tua classe e richiamarlo dall'[initializer della tua mod](./getting-started/project-structure#entrypoints). Per ora il metodo non deve contenere nulla. -@[code transcludeWith=:::3](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::3](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) -@[code transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/item/FabricDocsReferenceItems.java) +@[code transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/item/FabricDocsReferenceItems.java) Chiamare un metodo su una classe la inizializza staticamente se non è mai stata caricata prima - questo significa che tutti gli attributi `static` vengono calcolati. Questo è il motivo di questo metodo `initialize` fasullo. @@ -58,7 +58,7 @@ Per questo esempio, aggiungeremo questo oggetto all'`ItemGroup` ingredienti, dov Questo si può fare nel metodo `initialize` della tua classe degli oggetti. -@[code transcludeWith=:::4](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::4](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) Appena caricato il gioco, vedrai che il nostro oggetto è stato registrato, ed è nel gruppo di oggetti Ingredienti: @@ -98,7 +98,7 @@ Creeremo un semplice modello `item/generated`, che prende come input solo una te Crea il modello JSON nella cartella `assets//models/item`, con lo stesso nome dell'oggetto; `suspicious_substance.json` -@[code](@/reference/latest/src/main/resources/assets/fabric-docs-reference/models/item/suspicious_substance.json) +@[code](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/models/item/suspicious_substance.json) ### Comprendere il Modello in JSON {#breaking-down-the-model-json} @@ -119,11 +119,11 @@ L'API di Fabric fornisce varie registry che si possono usare per aggiungere altr Per esempio, per rendere il tuo oggetto compostabile, puoi usare la `CompostableItemRegistry`: -@[code transcludeWith=:::_10](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::_10](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) In alternativa, se vuoi rendere il tuo oggetto combustibile, puoi usare la classe `FuelRegistry`: -@[code transcludeWith=:::_11](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::_11](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) ## Aggiungere una Ricetta Basilare {#adding-a-basic-crafting-recipe} @@ -144,7 +144,7 @@ Se vuoi che il tuo oggetto abbia un tooltip personalizzato, dovrai creare una cl Questo esempio usa la classe `LightningStick` creata nella pagina [Interazioni Personalizzate tra Oggetti](./custom-item-interactions). ::: -@[code lang=java transcludeWith=:::3](@/reference/latest/src/main/java/com/example/docs/item/custom/LightningStick.java) +@[code lang=java transcludeWith=:::3](@/reference/1.21/src/main/java/com/example/docs/item/custom/LightningStick.java) Ogni chiamata di `add()` aggiungerà una linea al tooltip. diff --git a/versions/1.21/translated/it_it/develop/items/food.md b/versions/1.21/translated/it_it/develop/items/food.md index 257f72815..16bc8e81a 100644 --- a/versions/1.21/translated/it_it/develop/items/food.md +++ b/versions/1.21/translated/it_it/develop/items/food.md @@ -37,11 +37,11 @@ La classe `FoodComponent.Builder` ha molti metodo che ti permettono di modificar Quando avrai modificato il costruttore come preferisci, puoi chiamare il metodo `build()` per ottenere la `FoodComponent`. -@[code transcludeWith=:::5](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::5](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) Come nell'esempio della pagina [Creare il Tuo Primo Oggetto](./first-item), useremo la componente sopra: -@[code transcludeWith=:::poisonous_apple](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::poisonous_apple](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) Questo rende l'oggetto: diff --git a/versions/1.21/translated/it_it/develop/items/potions.md b/versions/1.21/translated/it_it/develop/items/potions.md index a8ea4703b..29296b702 100644 --- a/versions/1.21/translated/it_it/develop/items/potions.md +++ b/versions/1.21/translated/it_it/develop/items/potions.md @@ -20,7 +20,7 @@ Proprio come gli oggetti e i blocchi, le pozioni devono essere registrate. Iniziamo dichiarando un attributo per conservare la tua istanza `Potion`. Useremo direttamente una classe che implementi `ModInitializer` per conservarla. -@[code lang=java transclude={18-27}](@/reference/latest/src/main/java/com/example/docs/potion/FabricDocsReferencePotions.java) +@[code lang=java transclude={18-27}](@/reference/1.21/src/main/java/com/example/docs/potion/FabricDocsReferencePotions.java) Passiamo una istanza di `StatusEffectInstance`, che prende 3 parametri: @@ -36,7 +36,7 @@ Per creare il tuo effetto personalizzato per la pozione, per favore guarda la gu Nel nostro initializer, useremo l'evento `FabricBrewingRecipeRegistryBuilder.BUILD` per registrare la nostra pozione usando il metodo `BrewingRecipeRegistry.registerPotionRecipe`. -@[code lang=java transclude={29-42}](@/reference/latest/src/main/java/com/example/docs/potion/FabricDocsReferencePotions.java) +@[code lang=java transclude={29-42}](@/reference/1.21/src/main/java/com/example/docs/potion/FabricDocsReferencePotions.java) `registerPotionRecipe` prende 3 parametri: diff --git a/versions/1.21/translated/it_it/develop/rendering/basic-concepts.md b/versions/1.21/translated/it_it/develop/rendering/basic-concepts.md index 8192d4a1c..7b42a8498 100644 --- a/versions/1.21/translated/it_it/develop/rendering/basic-concepts.md +++ b/versions/1.21/translated/it_it/develop/rendering/basic-concepts.md @@ -111,7 +111,7 @@ Questo dovrebbe darci un diamante carino - siccome stiamo usando la modalità di Siccome stiamo disegnando sulla HUD in questo esempio, useremo l'evento `HudRenderCallback`: -@[code lang=java transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/rendering/RenderingConceptsEntrypoint.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/rendering/RenderingConceptsEntrypoint.java) Questo risulta nel seguente disegno sul HUD: @@ -143,7 +143,7 @@ You must first push the matrix stack and then pop it after you're done with it. Assicurati di spingere lo stack di matrici prima di prendere una matrice di trasformazione! ::: -@[code lang=java transcludeWith=:::2](@/reference/latest/src/client/java/com/example/docs/rendering/RenderingConceptsEntrypoint.java) +@[code lang=java transcludeWith=:::2](@/reference/1.21/src/client/java/com/example/docs/rendering/RenderingConceptsEntrypoint.java) ![Un video che mostra il diamante ingrandito e rimpicciolito](/assets/develop/rendering/concepts-matrix-stack.webp) @@ -155,7 +155,7 @@ Difficilmente dovrai usare una classe Quaternion direttamente, siccome Minecraft Immaginiamo di voler ruotare il nostro diamante attorno all'asse z. Possiamo farlo usando il `MatrixStack` e il metodo `multiply(Quaternion, x, y, z)`. -@[code lang=java transcludeWith=:::3](@/reference/latest/src/client/java/com/example/docs/rendering/RenderingConceptsEntrypoint.java) +@[code lang=java transcludeWith=:::3](@/reference/1.21/src/client/java/com/example/docs/rendering/RenderingConceptsEntrypoint.java) Il risultato è il seguente: diff --git a/versions/1.21/translated/it_it/develop/rendering/draw-context.md b/versions/1.21/translated/it_it/develop/rendering/draw-context.md index fce25acf2..012d72a79 100644 --- a/versions/1.21/translated/it_it/develop/rendering/draw-context.md +++ b/versions/1.21/translated/it_it/develop/rendering/draw-context.md @@ -19,7 +19,7 @@ La classe `DrawContext` può essere usata per disegnare facilmente forme **basat Puoi usare il metodo `DrawContext.fill(...)` per disegnare un rettangolo pieno. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) ![Un rettangolo](/assets/develop/rendering/draw-context-rectangle.png) @@ -27,7 +27,7 @@ Puoi usare il metodo `DrawContext.fill(...)` per disegnare un rettangolo pieno. Immaginiamo di voler aggiungere un contorno al rettangolo che abbiamo disegnato. Possiamo usare il metodo `DrawContext.drawBorder(...)` per disegnare un contorno. -@[code lang=java transcludeWith=:::2](@/reference/latest/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) +@[code lang=java transcludeWith=:::2](@/reference/1.21/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) ![Rettangolo con bordo](/assets/develop/rendering/draw-context-rectangle-border.png) @@ -35,7 +35,7 @@ Immaginiamo di voler aggiungere un contorno al rettangolo che abbiamo disegnato. Possiamo usare i metodi `DrawContext.drawHorizontalLine(...)` e `DrawContext.drawVerticalLine(...)` per disegnare linee. -@[code lang=java transcludeWith=:::3](@/reference/latest/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) +@[code lang=java transcludeWith=:::3](@/reference/1.21/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) ![Linee](/assets/develop/rendering/draw-context-lines.png) @@ -51,7 +51,7 @@ Le regioni di taglio possono essere annidate! Ma assicurati di disabilitare il g Per abilitare il gestore di tagli, semplicemente usa il metodo `DrawContext.enableScissor(...)`. Similarmente per disabilitarlo usa il metodo `DrawContext.disableScissor()`. -@[code lang=java transcludeWith=:::4](@/reference/latest/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) +@[code lang=java transcludeWith=:::4](@/reference/1.21/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) ![Regione di taglio in azione](/assets/develop/rendering/draw-context-scissor.png) @@ -65,7 +65,7 @@ Non c'è un solo modo "corretto" per disegnare texture su uno schermo, siccome i Generalmente, è raccomandato usare l'overload che specifica i parametri `textureWidth` e `textureHeight`. Questo perché la classe `DrawContext` assumerà questi valori se non li specifichi, e a volte potrebbe sbagliare. -@[code lang=java transcludeWith=:::5](@/reference/latest/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) +@[code lang=java transcludeWith=:::5](@/reference/1.21/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) ![Esempio di tutta la texture disegnata](/assets/develop/rendering/draw-context-whole-texture.png) @@ -79,7 +79,7 @@ Prendiamo questa texture come esempio. Se vogliamo solo disegnare una regione che contiene la lente, possiamo usare i seguenti valori per `u`, `v`, `regionWidth` e `regionHeight`: -@[code lang=java transcludeWith=:::6](@/reference/latest/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) +@[code lang=java transcludeWith=:::6](@/reference/1.21/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) ![Regione di Texture](/assets/develop/rendering/draw-context-region-texture.png) @@ -89,6 +89,6 @@ La classe `DrawContext` ha vari metodi autoesplicativi per renderizzare testo - Immaginiamo di voler disegnare "Hello World" sullo schermo. Possiamo usare il metodo `DrawContext.drawText(...)` per farlo. -@[code lang=java transcludeWith=:::7](@/reference/latest/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) +@[code lang=java transcludeWith=:::7](@/reference/1.21/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) ![Disegnare testo](/assets/develop/rendering/draw-context-text.png) diff --git a/versions/1.21/translated/it_it/develop/rendering/gui/custom-screens.md b/versions/1.21/translated/it_it/develop/rendering/gui/custom-screens.md index e76c245f7..1134a2171 100644 --- a/versions/1.21/translated/it_it/develop/rendering/gui/custom-screens.md +++ b/versions/1.21/translated/it_it/develop/rendering/gui/custom-screens.md @@ -28,7 +28,7 @@ Dovresti prendere nota del fatto che: Ad esempio, possiamo creare una semplice schermata che ha un pulsante e un'etichetta al di sopra. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/rendering/screens/CustomScreen.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/rendering/screens/CustomScreen.java) ![Schermata Personalizzata 1](/assets/develop/rendering/gui/custom-1-example.png) @@ -52,7 +52,7 @@ MinecraftClient.getInstance().setScreen(null); Se vuoi essere sofisticato, e tornare alla schermata precedente, puoi passare la schermata corrente nel costruttore `CustomScreen` e conservala in una variabile, per poi tornare alla schermata precedente usando il metodo `close`. -@[code lang=java transcludeWith=:::2](@/reference/latest/src/client/java/com/example/docs/rendering/screens/CustomScreen.java) +@[code lang=java transcludeWith=:::2](@/reference/1.21/src/client/java/com/example/docs/rendering/screens/CustomScreen.java) Ora, aprendo la schermata personalizzata, puoi passare la schermata corrente come secondo argomento - quindi quando chiami `CustomScreen#close` - ritornerà alla schermata precedente. diff --git a/versions/1.21/translated/it_it/develop/rendering/gui/custom-widgets.md b/versions/1.21/translated/it_it/develop/rendering/gui/custom-widgets.md index 2b87331c9..bd992c29b 100644 --- a/versions/1.21/translated/it_it/develop/rendering/gui/custom-widgets.md +++ b/versions/1.21/translated/it_it/develop/rendering/gui/custom-widgets.md @@ -18,13 +18,13 @@ Si possono seguire varie strade per creare una classe widget, come estendere `Cl - `Narratable` - per l'accessibilità - Necessario per rendere il tuo widget accessibile a lettori di schermi e ad altri strumenti per l'accessibilità. - `Selectable` - per la selezione - Necessario se vuoi rendere il tuo widget selezionabile usando il tasto Tab - anche questo aiuta per l'accessibilità. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/rendering/screens/CustomWidget.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/rendering/screens/CustomWidget.java) ## Aggiungere il Widget alla Schermata {#adding-the-widget-to-the-screen} Come tutti i widget, devi aggiungerlo alla schermata usando il metodo `addDrawableChild`, che è fornito dalla classe `Screen`. Assicurati di farlo nel metodo `init`. -@[code lang=java transcludeWith=:::3](@/reference/latest/src/client/java/com/example/docs/rendering/screens/CustomScreen.java) +@[code lang=java transcludeWith=:::3](@/reference/1.21/src/client/java/com/example/docs/rendering/screens/CustomScreen.java) ![Widget personalizzato sullo schermo](/assets/develop/rendering/gui/custom-widget-example.png) @@ -34,6 +34,6 @@ Puoi gestire eventi come clic del mouse, pressione di tasti, facendo override de Per esempio, puoi far cambiare colore al widget quando il mouse ci passa sopra usando il metodo `isHovered()` fornito dalla classe `ClickableWidget`: -@[code lang=java transcludeWith=:::2](@/reference/latest/src/client/java/com/example/docs/rendering/screens/CustomWidget.java) +@[code lang=java transcludeWith=:::2](@/reference/1.21/src/client/java/com/example/docs/rendering/screens/CustomWidget.java) ![Esempio Evento Hovering](/assets/develop/rendering/gui/custom-widget-events.webp) diff --git a/versions/1.21/translated/it_it/develop/rendering/hud.md b/versions/1.21/translated/it_it/develop/rendering/hud.md index 4eb6c49ba..3e2a07335 100644 --- a/versions/1.21/translated/it_it/develop/rendering/hud.md +++ b/versions/1.21/translated/it_it/develop/rendering/hud.md @@ -25,6 +25,6 @@ Il `deltaTick` è il tempo trascorso dall'ultimo frame, in secondi. Questo può Per esempio, immagina di voler interpolare linearmente un colore nel tempo. Puoi usare il `deltaTickManager` per ottenere il deltaTick, e memorizzarlo nel tempo per interpolare il colore: -@[code lang=java transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/rendering/HudRenderingEntrypoint.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/rendering/HudRenderingEntrypoint.java) ![Interpolare un colore nel tempo](/assets/develop/rendering/hud-rendering-deltatick.webp) diff --git a/versions/1.21/translated/it_it/develop/rendering/particles/creating-particles.md b/versions/1.21/translated/it_it/develop/rendering/particles/creating-particles.md index 0948cb283..320076082 100644 --- a/versions/1.21/translated/it_it/develop/rendering/particles/creating-particles.md +++ b/versions/1.21/translated/it_it/develop/rendering/particles/creating-particles.md @@ -15,7 +15,7 @@ Aggiungeremo una nuova particella "sparkle" che mimerà il movimento di una part Devi prima registrare un `ParticleType` nell'[initializer della tua mod](./getting-started/project-structure#entrypoints) usando l'id della mod. -@[code lang=java transcludeWith=#particle_register_main](@/reference/latest/src/main/java/com/example/docs/FabricDocsReference.java) +@[code lang=java transcludeWith=#particle_register_main](@/reference/1.21/src/main/java/com/example/docs/FabricDocsReference.java) La stringa "sparkle_particle" in minuscolo è il percorso JSON per la texture della particella. Dovrai successivamente creare un nuovo file JSON con lo stesso nome. @@ -23,7 +23,7 @@ La stringa "sparkle_particle" in minuscolo è il percorso JSON per la texture de Dopo aver registrato la particella nell'initializer della tua mod, dovrai anche registrare la particella nell'initializer lato client. -@[code lang=java transcludeWith=#particle_register_client](@/reference/latest/src/client/java/com/example/docs/FabricDocsReferenceClient.java) +@[code lang=java transcludeWith=#particle_register_client](@/reference/1.21/src/client/java/com/example/docs/FabricDocsReferenceClient.java) In questo esempio, stiamo registrando la nostra particella dal lato client. Stiamo dando un po' di movimento alla particella usando la fabbrica della particella della barra dell'End. Questo vuol dire che la nostra particella si muoverà proprio come una particella di una barra dell'End. @@ -47,7 +47,7 @@ Per questo esempio, avremo una sola texture in `textures/particle` chiamata "spa Dopo, crea un nuovo file JSON in `particles` con lo stesso nome del percorso JSON che hai usato quando hai registrato il tuo ParticleType. Per questo esempio, dovremo creare `sparkle_particle.json`. Questo file è importante perché fa conoscere a Minecraft quali texture dovrebbe usare la nostra particella. -@[code lang=json](@/reference/latest/src/main/resources/assets/fabric-docs-reference/particles/sparkle_particle.json) +@[code lang=json](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/particles/sparkle_particle.json) :::tip Puoi aggiungere altre texture al vettore `textures` per creare un animazione per la particella. La particella scorrerà attraverso le texture nel vettore, iniziando dalla prima. diff --git a/versions/1.21/translated/it_it/develop/sounds/custom.md b/versions/1.21/translated/it_it/develop/sounds/custom.md index 37e3a68c9..2482190e4 100644 --- a/versions/1.21/translated/it_it/develop/sounds/custom.md +++ b/versions/1.21/translated/it_it/develop/sounds/custom.md @@ -33,7 +33,7 @@ Aggiungi un nuovo percorso `resources/assets//sounds` per i suoni d Se non esiste ancora, crea il file `resources/assets//sounds.json` e aggiungici i tuoi suoni. -@[code lang=json](@/reference/latest/src/main/resources/assets/fabric-docs-reference/sounds.json) +@[code lang=json](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/sounds.json) La voce subtitle fornisce un contesto più approfondito per il giocatore. Il nome del sottotitolo è usato nei file di lingua nel percorso `resources/assets//lang` e verrà visualizzato se l'impostazione dei sottotitoli nel gioco è attiva e se questo suono personalizzato viene riprodotto. @@ -52,11 +52,11 @@ A seconda di quante voci ci sono nella Registry, le cose potrebbero presto sfugg Aggiungi due nuovi metodi alla classe ausiliaria appena creata. Uno che registra tutti i suoni, e uno che viene usato per inizializzare questa classe in primo luogo. Dopo di che, puoi comodamente aggiungere nuovi attributi `SoundEvent` statici personalizzati a seconda delle necessità. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/sound/CustomSounds.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/sound/CustomSounds.java) Facendo così, basta che l'initializer della tua mod implementi una riga sola per registrare tutti i SoundEvent personalizzati. -@[code lang=java transcludeWith=:::2](@/reference/latest/src/main/java/com/example/docs/sound/FabricDocsReferenceSounds.java) +@[code lang=java transcludeWith=:::2](@/reference/1.21/src/main/java/com/example/docs/sound/FabricDocsReferenceSounds.java) ## Usare il SoundEvent Personalizzato {#using-the-custom-soundevent} diff --git a/versions/1.21/translated/it_it/develop/sounds/dynamic-sounds.md b/versions/1.21/translated/it_it/develop/sounds/dynamic-sounds.md index f9d3cb3c9..a7c1e7b50 100644 --- a/versions/1.21/translated/it_it/develop/sounds/dynamic-sounds.md +++ b/versions/1.21/translated/it_it/develop/sounds/dynamic-sounds.md @@ -132,7 +132,7 @@ Se vuoi solo riprodurre qualcosa come un clic su un elemento dell'interfaccia gr Tieni a mente che questo sarà riprodotto solo sul client che ha eseguito questa parte del codice in particolare. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/FabricDocsDynamicSound.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/FabricDocsDynamicSound.java) :::warning Si prega di notare che la classe `AbstractSoundInstance`, da cui le `SoundInstance` ereditano, ha l'annotazione `@Environment(EnvType.CLIENT)`. @@ -156,7 +156,7 @@ Poi, dando un'occhiata alla sua sottoclasse `MovingSoundInstance, viene anche in Per cui per sfruttare queste utilità, basta creare una nuova classe per la tua `SoundInstance` personalizzata ed estendere `MovingSoundInstance`. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/sound/instance/CustomSoundInstance.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/sound/instance/CustomSoundInstance.java) Usare la tua `Entity` o il tuo `BlockEntity` personalizzati invece dell'istanza basilare `LivingEntity` può darti ancora più controllo, per esempio nel metodo `tick()` basato su metodi accessori, ma non devi per forza far riferimento ad una fonte di suono del genere. Invece di ciò puoi anche accedere alla `BlockPos` da altrove, o addirittura impostarla manualmente una volta sola nel costruttore soltanto. @@ -167,7 +167,7 @@ Se noti che i tuoi valori non si allineano, assicurati che siano sincronizzati o Dopo aver finito di creare la tua `SoundInstance` personalizzata, è tutto pronto per usarla ovunque, a condizione che venga eseguita lato client con il gestore di suoni. Allo stesso modo, puoi anche fermare la `SoundInstance` personalizzata manualmente, se necessario. -@[code lang=java transcludeWith=:::2](@/reference/latest/src/client/java/com/example/docs/FabricDocsDynamicSound.java) +@[code lang=java transcludeWith=:::2](@/reference/1.21/src/client/java/com/example/docs/FabricDocsDynamicSound.java) Il loop di suono sarà adesso riprodotto solo sul client che ha eseguito quella `SoundInstance`. In questo caso, il suono seguirà la `ClientPlayerEntity` stessa. @@ -221,7 +221,7 @@ Invece di fare riferimento, per esempio, direttamente a un `BlockEntity` person D'ora in poi useremo un'interfaccia personalizzata chiamata `DynamicSoundSource`. È da implementare in tutte le classi che vogliono sfruttare quelle funzionalità di suoni dinamici, come il tuo `BlockEntity` personalizzato, le entità o addirittura, usando Mixin, su classi preesistenti come `ZombieEntity`. In pratica contiene solo i dati necessari della fonte di suono. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/sound/DynamicSoundSource.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/sound/DynamicSoundSource.java) Dopo aver creato questa interfaccia, assicurati di implementarla anche nelle classi ove necessario. @@ -252,7 +252,7 @@ public enum TransitionState { Ma quando quei valori vengono inviati tramite rete, potresti voler definire un `Identifier` per esse o anche aggiungere altri valori personalizzati. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/sound/TransitionState.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/sound/TransitionState.java) :::info Ripeto, se stai usando le "split sources" devi ragionare su dove si posiziona questo enum. @@ -265,7 +265,7 @@ Ma se questo enum venisse usato altrove, per esempio in pacchetti di rete person Questa interfaccia viene usata come callback. Per ora ci basta un metodo `onFinished`, ma puoi anche aggiungere i tuoi metodi personalizzati se dovessi inviare anche altri segnali dall'oggetto `SoundInstance`. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/sound/instance/SoundInstanceCallback.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/sound/instance/SoundInstanceCallback.java) Implementa quest'interfaccia in qualsiasi classe che deve poter gestire segnali in ingresso, per esempio la `AbstractDynamicSoundInstance` che presto creeremo, e aggiungi le funzionalità nella `SoundInstance` personalizzata stessa. @@ -285,39 +285,39 @@ Inoltre definiremo altre proprietà. - Gestori dei tick per tener traccia del progresso corrente del suono - Un callback che restituisce un segnale finale al `DynamicSoundManager` per la ripulizia, quando la `SoundInstance` è terminata -@[code lang=java transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/sound/AbstractDynamicSoundInstance.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/sound/AbstractDynamicSoundInstance.java) Poi configuriamo i valori iniziali predefiniti per la `SoundInstance` personalizzata nel costruttore della classe astratta. -@[code lang=java transcludeWith=:::2](@/reference/latest/src/client/java/com/example/docs/sound/AbstractDynamicSoundInstance.java) +@[code lang=java transcludeWith=:::2](@/reference/1.21/src/client/java/com/example/docs/sound/AbstractDynamicSoundInstance.java) Dopo aver finito il costruttore, devi permettere alla `SoundInstance` di essere riprodotta. -@[code lang=java transcludeWith=:::3](@/reference/latest/src/client/java/com/example/docs/sound/AbstractDynamicSoundInstance.java) +@[code lang=java transcludeWith=:::3](@/reference/1.21/src/client/java/com/example/docs/sound/AbstractDynamicSoundInstance.java) Ecco qui la parte fondamentale di questa `SoundInstance` dinamica. In base al tick corrente dell'istanza, può applicare vari valori e comportamenti. -@[code lang=java transcludeWith=:::4](@/reference/latest/src/client/java/com/example/docs/sound/AbstractDynamicSoundInstance.java) +@[code lang=java transcludeWith=:::4](@/reference/1.21/src/client/java/com/example/docs/sound/AbstractDynamicSoundInstance.java) Come puoi notare, non abbiamo ancora applicato alcuna modulazione a volume e tono qui. Applichiamo solo il comportamento condiviso. Per cui, in questa classe `AbstractDynamicSoundInstance`, forniamo solo la struttura basilare e gli strumenti per le sottoclassi, e saranno queste a decidere il genere di modulazione che vogliono applicare. Diamo un'occhiata ad alcuni esempi di strategie per quella modulazione del suono. -@[code lang=java transcludeWith=:::5](@/reference/latest/src/client/java/com/example/docs/sound/AbstractDynamicSoundInstance.java) +@[code lang=java transcludeWith=:::5](@/reference/1.21/src/client/java/com/example/docs/sound/AbstractDynamicSoundInstance.java) Come noti, valori normalizzati combinati con interpolazione lineare (lerp) permettodo di adattare i valori ai limiti sonori preferiti. Tieni a mente che, aggiungendo metodi multipli che modificano lo stesso valore, devi fare attenzione e regolare il modo in cui lavorano insieme tra loro. Ora dobbiamo solo aggiungere il resto dei metodi di utilità, e abbiamo finito la classe `AbstractDynamicSoundInstance`. -@[code lang=java transcludeWith=:::6](@/reference/latest/src/client/java/com/example/docs/sound/AbstractDynamicSoundInstance.java) +@[code lang=java transcludeWith=:::6](@/reference/1.21/src/client/java/com/example/docs/sound/AbstractDynamicSoundInstance.java) ### Esempio d'Implementazione di `SoundInstance` {#example-soundinstance-implementation} Dando un'occhiata all'effettiva classe `SoundInstance` personalizzata, che estende l'`AbstractDynamicSoundInstance` appena creata, dobbiamo solo pensare a quali condizioni porterebbero all'interruzione del suono e a quale modulazione vogliamo applicare al suono. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/sound/instance/EngineSoundInstance.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/sound/instance/EngineSoundInstance.java) ### Classe `DynamicSoundManager` {#dynamicsoundmanager-class} @@ -326,7 +326,7 @@ Abbiamo discusso [poco fa](#using-a-soundinstance) come si riproduce e interromp Questa nuova classe `DynamicSoundManager` gestirà le `SoundInstance` personalizzate, quindi anch'essa sarà solo disponibile lato client. Oltre a ciò, un client dovrebbe permettere l'esistenza solo di un'istanza di questa classe. Gestori multipli di suoni per un client solo non hanno molto senso, e complicano ulteriormente le interazioni. Usiamo quindi il ["Modello di Progettazione Singleton"](https://refactoring.guru/design-patterns/singleton/java/example). -@[code lang=java transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/sound/DynamicSoundManager.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/sound/DynamicSoundManager.java) Dopo aver creato la corretta struttura basilare, puoi aggiungere i metodi necessari per interagire con il sistema sonoro. @@ -334,7 +334,7 @@ Dopo aver creato la corretta struttura basilare, puoi aggiungere i metodi necess - Interrompere suoni - Controllare se un suono è attualmente in riproduzione -@[code lang=java transcludeWith=:::2](@/reference/latest/src/client/java/com/example/docs/sound/DynamicSoundManager.java) +@[code lang=java transcludeWith=:::2](@/reference/1.21/src/client/java/com/example/docs/sound/DynamicSoundManager.java) Invece di avere solo una lista di tutte le `SoundInstance` attualmente in riproduzione, puoi anche tener traccia di quali fonti sonore stanno riproducendo quali suoni. Per esempio, un motore che riproduce due suoni di un motore allo stesso tempo non ha senso, però più motori, ciascuno dei quali riproduce i propri suoni, è un caso valido. Per semplicità abbiamo solo creato una `List`, ma spesso una `HashMap` di una `DynamicSoundSource` e una `AbstractDynamicSoundInstance` potrebbe essere una scelta migliore. @@ -343,7 +343,7 @@ Per esempio, un motore che riproduce due suoni di un motore allo stesso tempo no Per usare questo sistema sonoro, basta sfruttare i metodi di `DynamicSoundManager` o di `SoundInstance`. Usando `onStartedTrackingBy` e `onStoppedTrackingBy` delle entità, o anche solo networking S2C personalizzato, puoi ora avviare e interrompere le tue `SoundInstance` dinamiche personalizzate. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/network/ReceiveS2C.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/network/ReceiveS2C.java) Il prodotto finale può regolare il proprio volume in base alla fase di suono, per rendere fluide le transizioni, e cambiare il tono in base a un valore di stress che proviene dalla fonte sonora. diff --git a/versions/1.21/translated/it_it/develop/sounds/using-sounds.md b/versions/1.21/translated/it_it/develop/sounds/using-sounds.md index c6d675f34..6b9de3032 100644 --- a/versions/1.21/translated/it_it/develop/sounds/using-sounds.md +++ b/versions/1.21/translated/it_it/develop/sounds/using-sounds.md @@ -15,11 +15,11 @@ Assicurati di eseguire il metodo `playSound()` sul lato del server logico quando In questo esempio, i metodi `useOnEntity()` e `useOnBlock()` per un oggetto interattivo personalizzato sono usati per riprodurre un suono "piazzando blocco di rame" e un suono "predone". -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/item/CustomSoundItem.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/item/CustomSoundItem.java) Il metodo `playSound()` è usato con l'oggetto `LivingEntity`. Solo il SoundEvent, il volume e il tono devono essere specificati. Puoi anche usare il metodo `playSound()` dall'istanza del mondo per avere un livello di controllo più alto. -@[code lang=java transcludeWith=:::2](@/reference/latest/src/main/java/com/example/docs/item/CustomSoundItem.java) +@[code lang=java transcludeWith=:::2](@/reference/1.21/src/main/java/com/example/docs/item/CustomSoundItem.java) ### SoundEvent e SoundCategory {#soundevent-and-soundcategory} diff --git a/versions/1.21/translated/it_it/develop/text-and-translations.md b/versions/1.21/translated/it_it/develop/text-and-translations.md index da9fd1d39..19fb3116a 100644 --- a/versions/1.21/translated/it_it/develop/text-and-translations.md +++ b/versions/1.21/translated/it_it/develop/text-and-translations.md @@ -84,7 +84,7 @@ Se vuoi fare riferimento a ciò che, nel nostro caso, è l'attaccante, useresti Come già accennato prima, puoi serializzare testo a JSON con il codec di testo. Per maggiori informazioni, vedi la pagina sui [Codec](./codecs). -@[code transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/rendering/TextTests.java) +@[code transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/rendering/TextTests.java) Questo produce JSON che può essere usato in datapack, comandi e altri posti che accettano il formato JSON di testo invece che il formato letterale o traducibile. @@ -92,7 +92,7 @@ Questo produce JSON che può essere usato in datapack, comandi e altri posti che Inoltre, per deserializzare un oggetto testo da JSON a un oggetto della classe `Text`, di nuovo, usa il codec. -@[code transcludeWith=:::2](@/reference/latest/src/client/java/com/example/docs/rendering/TextTests.java) +@[code transcludeWith=:::2](@/reference/1.21/src/client/java/com/example/docs/rendering/TextTests.java) ## Formattare Testo {#formatting-text} diff --git a/versions/1.21/translated/ja_jp/contributing.md b/versions/1.21/translated/ja_jp/contributing.md index ca9947eee..404daee6d 100644 --- a/versions/1.21/translated/ja_jp/contributing.md +++ b/versions/1.21/translated/ja_jp/contributing.md @@ -188,10 +188,10 @@ authors: ::: code-group ```md -<<< @/reference/latest/src/main/java/com/example/docs/FabricDocsReference.java{15-21} +<<< @/reference/1.21/src/main/java/com/example/docs/FabricDocsReference.java{15-21} ``` -<<< @/reference/latest/src/main/java/com/example/docs/FabricDocsReference.java{15-21}[java] +<<< @/reference/1.21/src/main/java/com/example/docs/FabricDocsReference.java{15-21}[java] ::: @@ -202,10 +202,10 @@ authors: ::: code-group ```md -@[code transcludeWith=#entrypoint](@/reference/latest/src/main/java/com/example/docs/FabricDocsReference.java) +@[code transcludeWith=#entrypoint](@/reference/1.21/src/main/java/com/example/docs/FabricDocsReference.java) ``` -@[code transcludeWith=#entrypoint](@/reference/latest/src/main/java/com/example/docs/FabricDocsReference.java) +@[code transcludeWith=#entrypoint](@/reference/1.21/src/main/java/com/example/docs/FabricDocsReference.java) ::: diff --git a/versions/1.21/translated/ja_jp/develop/getting-started/project-structure.md b/versions/1.21/translated/ja_jp/develop/getting-started/project-structure.md index 3bddbcc60..560702716 100644 --- a/versions/1.21/translated/ja_jp/develop/getting-started/project-structure.md +++ b/versions/1.21/translated/ja_jp/develop/getting-started/project-structure.md @@ -25,7 +25,7 @@ authors: 以下に `fabric.mod.json` ファイルの例を示します。これは、このドキュメント上のサンプルプロジェクトで使われる `fabric.mod.json` ファイルです。 :::details サンプルプロジェクト `fabric.mod.json` -@[code lang=json](@/reference/latest/src/main/resources/fabric.mod.json) +@[code lang=json](@/reference/1.21/src/main/resources/fabric.mod.json) ::: ## エントリポイント {#entrypoints} @@ -34,7 +34,7 @@ authors: テンプレート Mod ジェネレータはデフォルトで `main` と `client` のエントリポイントを作成します。`main` エントリポイントは共通するコードに使用され、`client` エントリポイントはクライアントでのみ実行されるコードに使用されます。 これらのエントリポイントは、ゲーム開始時にそれぞれ呼び出されます。 -@[code lang=java transcludeWith=#entrypoint](@/reference/latest/src/main/java/com/example/docs/FabricDocsReference.java) +@[code lang=java transcludeWith=#entrypoint](@/reference/1.21/src/main/java/com/example/docs/FabricDocsReference.java) 上記のコードは、ゲーム開始時にコンソールにログを出力する、シンプルな `main` エントリポイントの例です。 diff --git a/versions/1.21/translated/ja_jp/develop/index.md b/versions/1.21/translated/ja_jp/develop/index.md index 621417e5b..e959b99f2 100644 --- a/versions/1.21/translated/ja_jp/develop/index.md +++ b/versions/1.21/translated/ja_jp/develop/index.md @@ -9,6 +9,6 @@ description: Fabricのコミュニティによって書かれたこのデベロ ガイドの一覧はサイドバーで見ることができます。 何か知りたい内容があるなら、このページの一番上にある検索バーを使うと良いですよ。 -このドキュメントに対応した動作するModのコードは、[GitHubの `/reference` フォルダ](https://github.com/FabricMC/fabric-docs/tree/main/reference/latest) にあります。 +このドキュメントに対応した動作するModのコードは、[GitHubの `/reference` フォルダ](https://github.com/FabricMC/fabric-docs/tree/main/reference/1.21) にあります。 もしFabricのドキュメントに貢献したいなら、 [投稿ガイドライン](../contributing)を参照してください。ソースコードは [GitHub](https://github.com/FabricMC/fabric-docs)にあります。 diff --git a/versions/1.21/translated/ko_kr/contributing.md b/versions/1.21/translated/ko_kr/contributing.md index 14466231e..38c25b336 100644 --- a/versions/1.21/translated/ko_kr/contributing.md +++ b/versions/1.21/translated/ko_kr/contributing.md @@ -188,10 +188,10 @@ authors: ::: code-group ```md -<<< @/reference/latest/src/main/java/com/example/docs/FabricDocsReference.java{15-21} +<<< @/reference/1.21/src/main/java/com/example/docs/FabricDocsReference.java{15-21} ``` -<<< @/reference/latest/src/main/java/com/example/docs/FabricDocsReference.java{15-21}[java] +<<< @/reference/1.21/src/main/java/com/example/docs/FabricDocsReference.java{15-21}[java] ::: @@ -202,10 +202,10 @@ authors: ::: code-group ```md -@[code transcludeWith=#entrypoint](@/reference/latest/src/main/java/com/example/docs/FabricDocsReference.java) +@[code transcludeWith=#entrypoint](@/reference/1.21/src/main/java/com/example/docs/FabricDocsReference.java) ``` -@[code transcludeWith=#entrypoint](@/reference/latest/src/main/java/com/example/docs/FabricDocsReference.java) +@[code transcludeWith=#entrypoint](@/reference/1.21/src/main/java/com/example/docs/FabricDocsReference.java) ::: diff --git a/versions/1.21/translated/ko_kr/develop/blocks/blockstates.md b/versions/1.21/translated/ko_kr/develop/blocks/blockstates.md index e43b615ac..ff512a1b0 100644 --- a/versions/1.21/translated/ko_kr/develop/blocks/blockstates.md +++ b/versions/1.21/translated/ko_kr/develop/blocks/blockstates.md @@ -25,7 +25,7 @@ Minecraft는 이미 빠르게 특정 종류의 블록을 만들 수 있도록 바닐라 `PillarBlock` 클래스는 블록이 X, Y 혹은 Z축에 배치할 수 있도록 합니다. -@[code transcludeWith=:::3](@/reference/latest/src/main/java/com/example/docs/block/ModBlocks.java) +@[code transcludeWith=:::3](@/reference/1.21/src/main/java/com/example/docs/block/ModBlocks.java) 기둥 블록은 두 가지의 텍스처 — 윗면과 옆면 — 이 있습니다. `block/cube_column` 모델을 사용합니다. @@ -40,7 +40,7 @@ Minecraft는 이미 빠르게 특정 종류의 블록을 만들 수 있도록 `condensed_oak_log_horizontal.json` 파일의 예시: -@[code](@/reference/latest/src/main/resources/assets/fabric-docs-reference/models/block/condensed_oak_log_horizontal.json) +@[code](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/models/block/condensed_oak_log_horizontal.json) --- @@ -56,7 +56,7 @@ Remember, blockstate files can be found in the `assets//blockstates - `axis=y` - 블록이 Y축을 따라 설치되면, 기본 수직 모델을 사용할 것입니다. - `axis=z` - 블록이 Z축을 따라 설치되면, 양의 Z축 방향을 향하도록 모델을 회전할 것입니다. -@[code](@/reference/latest/src/main/resources/assets/fabric-docs-reference/blockstates/condensed_oak_log.json) +@[code](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/blockstates/condensed_oak_log.json) 언제나 블록에 대한 번역과 두 모델 중 하나의 부모격이 되는 아이템 모델을 만들어야 할 것입니다. @@ -72,15 +72,15 @@ Remember, blockstate files can be found in the `assets//blockstates 먼저, 속성이 불이기 때문에 속성 자체를 만들어야 합니다. `BooleanProperty.of` 메서드를 사용할 것입니다. -@[code transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) +@[code transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) 다음으로, `appendProperties` 메서드에 있는 블록 상태 관리자에 속성을 추가하여야 합니다. 빌더에 접근하기 위하여 메서드를 덮어써야 할 것입니다: -@[code transcludeWith=:::2](@/reference/latest/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) +@[code transcludeWith=:::2](@/reference/1.21/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) 또한 사용자 정의 블록의 생성자에서 `activated` 속성의 기본 상태를 설정하여야 합니다. -@[code transcludeWith=:::3](@/reference/latest/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) +@[code transcludeWith=:::3](@/reference/1.21/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) :::warning `Block` 대신 사용자 지정 클래스를 이용하여 블록을 등록하는 것을 잊지 마세요! @@ -90,7 +90,7 @@ Remember, blockstate files can be found in the `assets//blockstates 이 예시는 플레이어가 블록과 상호작용을 할 때 불 `activated` 속성을 뒤집습니다. 이를 위하여 `onUse` 메서드를 재정의할 수 있습니다: -@[code transcludeWith=:::4](@/reference/latest/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) +@[code transcludeWith=:::4](@/reference/1.21/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) ### 속성 시각화하기 {#visualizing-the-property} @@ -106,7 +106,7 @@ Remember, blockstate files can be found in the `assets//blockstates 블록이 오직 두 개의 가능한 변형이 있고, 오직 한 개의 속성 (`activated`)가 있으므로, 블록 상태 JSON 파일은 다음과 같을 것입니다. -@[code](@/reference/latest/src/main/resources/assets/fabric-docs-reference/blockstates/prismarine_lamp.json) +@[code](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/blockstates/prismarine_lamp.json) --- @@ -114,9 +114,9 @@ Remember, blockstate files can be found in the `assets//blockstates `luminance` 메서드를 통하여 블록이 발광할 때의 빛 단계를 조정할 수 있고, `activated` 속성에 기반한 빛 단계를 반환하기 위하여 `PrismarineLampBlock` 클래스에 정적 메서드를 만들 수 있으며, 메서드 참조로서 `luminance` 메서드에 대하여 전달할 수도 있습니다: -@[code transcludeWith=:::5](@/reference/latest/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) +@[code transcludeWith=:::5](@/reference/1.21/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) -@[code transcludeWith=:::4](@/reference/latest/src/main/java/com/example/docs/block/ModBlocks.java) +@[code transcludeWith=:::4](@/reference/1.21/src/main/java/com/example/docs/block/ModBlocks.java) --- diff --git a/versions/1.21/translated/ko_kr/develop/blocks/first-block.md b/versions/1.21/translated/ko_kr/develop/blocks/first-block.md index b6b24ef74..7027c3714 100644 --- a/versions/1.21/translated/ko_kr/develop/blocks/first-block.md +++ b/versions/1.21/translated/ko_kr/develop/blocks/first-block.md @@ -19,7 +19,7 @@ authors: Mojang은 바닐라 블록과 매우 비슷한 무언가를 수행합니다. `Blocks` 클래스를 참조하여 어떻게 하였는지 참고해도 됩니다. -@[code transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/block/ModBlocks.java) +@[code transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/block/ModBlocks.java) --- @@ -39,7 +39,7 @@ public class ModBlocks { } ``` -@[code transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/block/FabricDocsReferenceBlocks.java) +@[code transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/block/FabricDocsReferenceBlocks.java) ## 블록을 추가하고 등록하기 {#creating-and-registering-your-block} @@ -53,7 +53,7 @@ public class ModBlocks { 또한 이미 존재하는 블록의 설정을 복사하기 위하여 `AbstractBlock.Settings.copy(AbstractBlock block)을 사용할 수 있습니다. 이 상황에서, 흙의 설정을 복사하기 위해 `Blocks.DIRT\`를 사용할 수도 있지만 예시를 위해 빌더를 사용할 것입니다. ::: -@[code transcludeWith=:::2](@/reference/latest/src/main/java/com/example/docs/block/ModBlocks.java) +@[code transcludeWith=:::2](@/reference/1.21/src/main/java/com/example/docs/block/ModBlocks.java) 자동으로 블록 아이템을 만들기 위하여, 이전 단계에서 만든 `register` 메서드의 `shouldRegisterItem` 매개변수를 `true`를 전달하면 됩니다. @@ -63,7 +63,7 @@ public class ModBlocks { 예시로, [사용자 지정 아이템 그룹](../items/custom-item-groups) 페이지에서 만든 사용자 지정 그룹을 사용할 것입니다. -@[code transcludeWith=:::3](@/reference/latest/src/main/java/com/example/docs/block/ModBlocks.java) +@[code transcludeWith=:::3](@/reference/1.21/src/main/java/com/example/docs/block/ModBlocks.java) --- @@ -100,11 +100,11 @@ Minecraft는 이 번역을 크리에이티브 인벤토리나 명령어 피드 이 아이템 모델은 꽤 단순합니다. 대부분의 블록 모델이 GUI에서 렌더되는 것을 지원하기 때문에그저 상위 모델로 블록 모델을 사용할 수 있습니다: -@[code](@/reference/latest/src/main/resources/assets/fabric-docs-reference/models/item/condensed_dirt.json) +@[code](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/models/item/condensed_dirt.json) 하지만, 이 블록 모델은, 이 상황에서, `block/cube_all` 모델의 상위 모델이어야 합니다: -@[code](@/reference/latest/src/main/resources/assets/fabric-docs-reference/models/block/condensed_dirt.json) +@[code](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/models/block/condensed_dirt.json) 게임으로 불러왔을 때, 여전히 텍스처가 없을 수도 있습니다. 왜냐하면 블록 상태 정의를 추가해야 하기 때문입니다. @@ -116,7 +116,7 @@ Minecraft는 이 번역을 크리에이티브 인벤토리나 명령어 피드 파일은 `assets/mod_id/blockstates` 폴더에 위치해야 하며, 이름은 `ModBlocks` 클래스를 등록했을 때 사용한 블록 ID와 일치하여야 합니다. 예시로, 만약 블록 ID가 `condensed_dirt`라면, 파일 이름은 `condensed_dirt.json`이 되어야 합니다. -@[code](@/reference/latest/src/main/resources/assets/fabric-docs-reference/blockstates/condensed_dirt.json) +@[code](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/blockstates/condensed_dirt.json) 블록 상태는 정말 복잡합니다. 그러므로, [블록 상태](./blockstates) 페이지에서 다루겠습니다. @@ -132,7 +132,7 @@ Minecraft는 이 번역을 크리에이티브 인벤토리나 명령어 피드 노획물 목록에 대하여 더 자세히 알고 싶으면, [Minecraft 위키 - 노획물 목록](https://ko.minecraft.wiki/w/%EB%85%B8%ED%9A%8D%EB%AC%BC_%EB%AA%A9%EB%A1%9D) 페이지를 참고할 수 있습니다. ::: -@[code](@/reference/latest/src/main/resources/data/fabric-docs-reference/loot_tables/blocks/condensed_dirt.json) +@[code](@/reference/1.21/src/main/resources/data/fabric-docs-reference/loot_tables/blocks/condensed_dirt.json) 이 노획물 목록은 블록이 부서질 때나 폭발할 때 단일 블록 아이템의 떨굼을 제공합니다. @@ -151,7 +151,7 @@ Minecraft는 이 번역을 크리에이티브 인벤토리나 명령어 피드 이 예시는 "거친 흙" (Condensed Dirt) 블록을 `shovel` (삽) 태그에 추가시킵니다. -@[code](@/reference/latest/src/main/resources/data/minecraft/tags/mineable/shovel.json) +@[code](@/reference/1.21/src/main/resources/data/minecraft/tags/mineable/shovel.json) 만약 블록을 부수기 위하여 특정한 도구를 사용하여야 하게 하길 원한다면, 블록 설정에 `.requiresTool()`을 추가하고 적절한 채굴 태그를 추가하여야 합니다. diff --git a/versions/1.21/translated/ko_kr/develop/commands/arguments.md b/versions/1.21/translated/ko_kr/develop/commands/arguments.md index 32a539b9e..310c9a015 100644 --- a/versions/1.21/translated/ko_kr/develop/commands/arguments.md +++ b/versions/1.21/translated/ko_kr/develop/commands/arguments.md @@ -7,8 +7,8 @@ description: 복잡한 인수를 가진 명령어를 만드는 방법을 알아 인수는 대부분의 명령어에서 사용됩니다. 인수는 항상 필수적이진 않습니다. 다시 말해, 어떤 인수는 값을 입력하지 않더라도 명령어가 정상 작동한다는 의미입니다. 하나의 노드는 여러 개의 타입을 가질 수 있지만, 타입이 모호해지면 오류의 원인이 될 수 있으므로 그런 경우는 최대한 피해야 합니다. -@[code lang=java highlight={3} transcludeWith=:::command_with_arg](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code lang=java transcludeWith=:::execute_command_with_arg](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={3} transcludeWith=:::command_with_arg](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::execute_command_with_arg](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) 이런 경우에는, `/command_with_arg` 명령어 다음에 정수를 입력해야 합니다. 예를 들어, 만약 `/command_with_arg 3`를 실행하면, 다음과 같은 피드백 메시지를 받을 것입니다: @@ -18,15 +18,15 @@ description: 복잡한 인수를 가진 명령어를 만드는 방법을 알아 이제 선택적인 두 번째 인수를 추가해보겠습니다. -@[code lang=java highlight={3,5} transcludeWith=:::command_with_two_args](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code lang=java transcludeWith=:::execute_command_with_two_args](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={3,5} transcludeWith=:::command_with_two_args](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::execute_command_with_two_args](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) 이렇게 하면 한 개 또는 두 개의 정수형을 입력할 수 있게 됩니다. 만약 한 개의 정수만 입력하면, 피드백 메세지에선 한 가지 값만 출력될 것입니다. 반대로 두 개의 정수을 모두 입력하면, 피드백 메세지에선 두 개의 값을 모두 출력할 것입니다. 비슷한 처리를 두 번이나 정의할 필요는 없습니다. 대신, 비슷한 처리를 하는 두 가지 인수는 이렇게 만들 수 있습니다. -@[code lang=java highlight={4,6} transcludeWith=:::command_with_common_exec](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code lang=java transcludeWith=:::execute_common](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={4,6} transcludeWith=:::command_with_common_exec](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::execute_common](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) ## 사용자 정의 인수 타입 {#custom-argument-types} @@ -36,7 +36,7 @@ description: 복잡한 인수를 가진 명령어를 만드는 방법을 알아 예를 들어, `{x, y, z}` 형태로 입력된 문자열을 `BlockPos`로 변환해보겠습니다. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/command/BlockPosArgumentType.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/command/BlockPosArgumentType.java) ### 사용자 정의 인수 타입의 등록 {#registering-custom-argument-types} @@ -46,14 +46,14 @@ description: 복잡한 인수를 가진 명령어를 만드는 방법을 알아 모드 초기화 단계의 `onInitialize` 메서드 에서 `ArgumentTypeRegistry` 클래스를 통해 사용자 정의 인수 타입을 등록할 수 있습니다. -@[code lang=java transcludeWith=:::register_custom_arg](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::register_custom_arg](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) ### 사용자 정의 인수 타입의 사용 {#using-custom-argument-types} 명령어 빌더의 `.argument` 메서드에 인스턴스를 입력하여 명령어에 사용자 정의 인수 타입을 사용할 수 있습니다. -@[code lang=java highlight={3} transcludeWith=:::custom_arg_command](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code lang=java highlight={2} transcludeWith=:::execute_custom_arg_command](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={3} transcludeWith=:::custom_arg_command](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={2} transcludeWith=:::execute_custom_arg_command](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) 명령어를 실행하여 인수 형태가 작동하는지 여부를 확인할 수 있습니다. diff --git a/versions/1.21/translated/ko_kr/develop/commands/basics.md b/versions/1.21/translated/ko_kr/develop/commands/basics.md index a51b8ed93..334f3441a 100644 --- a/versions/1.21/translated/ko_kr/develop/commands/basics.md +++ b/versions/1.21/translated/ko_kr/develop/commands/basics.md @@ -75,7 +75,7 @@ Command command = context -> { 이제 모드 초기화에서 간단한 명령어를 한번 등록해봅시다. -@[code lang=java transcludeWith=:::test_command](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::test_command](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) `sendFeedback()` 메서드의 첫 번째 인수는 보내질 텍스트이며, 텍스트 오브젝트의 필요 없는 인스턴스화를 막기 위해 `Supplier` 로 제공됩니다. @@ -95,15 +95,15 @@ Command command = context -> { 원하는 경우 명령어가 특정한 상황에만 등록되도록 할 수도 있습니다. 예를 들어, 명령어가 전용 서버 환경에서만 등록되도록 해보겠습니다. -@[code lang=java highlight={2} transcludeWith=:::dedicated_command](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code lang=java transcludeWith=:::execute_dedicated_command](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={2} transcludeWith=:::dedicated_command](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::execute_dedicated_command](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) ### 명령어의 요구 사항 {#command-requirements} 관리자만 실행 가능한 명령어를 만들고 싶다고 가정해봅시다. `require()` 메서드를 사용하기 딱 좋은 상황이군요. `require()` 메서드는 `ServerCommandSource`를 제공하고 `CommandSource`가 명령어를 실행할 수 있는지 판단하는 `Predicate`을 인수로 가집니다. -@[code lang=java highlight={3} transcludeWith=:::required_command](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code lang=java transcludeWith=:::execute_required_command](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={3} transcludeWith=:::required_command](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::execute_required_command](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) 이렇게 하면 명령 블록을 포함해 명령어 소스가 적어도 레벨 2 관리자는 되어야 명령어를 실행할 수 있게 됩니다. 요구 사항을 충족하지 못한다면 명령어는 등록조차 되지 않게 됩니다. @@ -113,19 +113,19 @@ Command command = context -> { 하위 명령어를 추가하려면, 먼저 상위 명령어의 리터럴 노드를 등록해야 합니다. 그런 다음, 상위 명령어의 리터럴 노드 다음에 하위 명령어의 리터럴 노드를 덧붙이면 됩니다. -@[code lang=java highlight={3} transcludeWith=:::sub_command_one](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code lang=java transcludeWith=:::execute_sub_command_one](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={3} transcludeWith=:::sub_command_one](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::execute_sub_command_one](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) 인수처럼, 하위 명령어 노드도 필수적이진 않습니다. 아래와 같은 상황에선, `/command_two`와 `/command_two sub_command_two` 모두 올바른 명령어가 되게 됩니다. -@[code lang=java highlight={2,8} transcludeWith=:::sub_command_two](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code lang=java transcludeWith=:::execute_command_sub_command_two](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={2,8} transcludeWith=:::sub_command_two](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::execute_command_sub_command_two](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) ## 클라이언트 명령어 {#client-commands} Fabric API는 `net.fabricmc.fabric.api.client.command.v2` 패키지에 클라이언트측 명령어를 등록할 때 사용되는 `ClientCommandManager` 클래스를 가지고 있습니다. 이러한 코드는 오로지 클라이언트측 코드에만 있어야 합니다. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/client/command/FabricDocsReferenceClientCommands.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/client/command/FabricDocsReferenceClientCommands.java) ## 명령어 리다이렉션 {#command-redirects} @@ -135,8 +135,8 @@ Fabric API는 `net.fabricmc.fabric.api.client.command.v2` 패키지에 클라이 Brigadier는 [인수를 사용해 명령 노드만 리다이렉트 시킬 것입니다](https://github.com/Mojang/brigadier/issues/46). 만약 인수 없이 명령 노드를 리다이렉션하려면 예제에 설명된 것과 동일한 로직에 대한 참조와 함께 '.executes()\` 빌더를 제공하세요. ::: -@[code lang=java transcludeWith=:::redirect_command](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code lang=java transcludeWith=:::execute_redirected_by](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::redirect_command](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::execute_redirected_by](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) ## 자주 묻는 질문 {#faq} diff --git a/versions/1.21/translated/ko_kr/develop/commands/suggestions.md b/versions/1.21/translated/ko_kr/develop/commands/suggestions.md index a52bfa76c..97f3c3b7d 100644 --- a/versions/1.21/translated/ko_kr/develop/commands/suggestions.md +++ b/versions/1.21/translated/ko_kr/develop/commands/suggestions.md @@ -17,8 +17,8 @@ Minecraft에는 `/give` 명령어처럼 많은 경우에서 사용되는 강력 제안 공급자를 사용하려면, 인수 빌더의 `suggests` 메서드를 호출해야 합니다. 이 메서드는 `SuggestionProvider`를 인수로 받고 제안 공급자가 덧붙여진 새로운 인수 빌더를 반환합니다. -@[code java highlight={4} transcludeWith=:::command_with_suggestions](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code java transcludeWith=:::execute_command_with_suggestions](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code java highlight={4} transcludeWith=:::command_with_suggestions](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code java transcludeWith=:::execute_command_with_suggestions](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) ## 내장된 제안 공급자 {#built-in-suggestion-providers} @@ -37,12 +37,12 @@ Minecraft에는 `/give` 명령어처럼 많은 경우에서 사용되는 강력 예를 들어, 서버의 모든 플레이어 이름을 제안하는 제안 공급자를 만들어 보겠습니다. -@[code java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/command/PlayerSuggestionProvider.java) +@[code java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/command/PlayerSuggestionProvider.java) 이 제안 공급자를 사용하려면, 그냥 간단하게 인수 빌더의 `.suggests` 메서드에 만든 인스턴스를 전달하기만 하면 됩니다. -@[code java highlight={4} transcludeWith=:::command_with_custom_suggestions](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code java transcludeWith=:::execute_command_with_custom_suggestions](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code java highlight={4} transcludeWith=:::command_with_custom_suggestions](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code java transcludeWith=:::execute_command_with_custom_suggestions](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) 물론, 제안 공급자는 (이미 제공된 인수처럼) 명령어 컨텍스트를 읽어 명령어의 상태에 따라 제안을 변경할 수 있기 때문에, 제안 공급자가 더 복잡해질 수 있습니다. diff --git a/versions/1.21/translated/ko_kr/develop/entities/damage-types.md b/versions/1.21/translated/ko_kr/develop/entities/damage-types.md index 300633ee4..d9ab68559 100644 --- a/versions/1.21/translated/ko_kr/develop/entities/damage-types.md +++ b/versions/1.21/translated/ko_kr/develop/entities/damage-types.md @@ -21,7 +21,7 @@ resources/data/fabric-docs-reference/damage_type/tater.json 파일은 다음과 같은 구조를 가집니다. -@[code lang=json](@/reference/latest/src/main/generated/data/fabric-docs-reference/damage_type/tater.json) +@[code lang=json](@/reference/1.21/src/main/generated/data/fabric-docs-reference/damage_type/tater.json) 이 사용자 정의 피해 유형을 플레이어가 살아있는 엔티티가 아닌 것에서 피해를 입었을 때 [허기 피로](https://minecraft.wiki/w/Hunger#Exhaustion_level_increase)를 0.1만큼 올리도록 만들어 봅시다. 참고로, 피해 크기는 세계의 난이도에 비례합니다. @@ -37,7 +37,7 @@ JSON 파일 구조에 대한 자세한 내용은 [Minecraft 위키 (영문)](htt `RegistryKey` 는 다음 코드로 불러올 수 있습니다. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/damage/FabricDocsReferenceDamageTypes.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/damage/FabricDocsReferenceDamageTypes.java) ### 피해 유형 사용하기 {#using-damage-types} @@ -47,15 +47,15 @@ JSON 파일 구조에 대한 자세한 내용은 [Minecraft 위키 (영문)](htt 사용자 정의 피해 유형의 `DamageSource`를 생성하며 시작합니다. -@[code lang=java transclude={21-24}](@/reference/latest/src/main/java/com/example/docs/damage/TaterBlock.java) +@[code lang=java transclude={21-24}](@/reference/1.21/src/main/java/com/example/docs/damage/TaterBlock.java) 그리고, `entity.damage()` 메서드에 `DamageSource`와 피해 크기를 입력하여 호출합니다. -@[code lang=java transclude={25-25}](@/reference/latest/src/main/java/com/example/docs/damage/TaterBlock.java) +@[code lang=java transclude={25-25}](@/reference/1.21/src/main/java/com/example/docs/damage/TaterBlock.java) 블록의 코드 전문은 다음과 같습니다. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/damage/TaterBlock.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/damage/TaterBlock.java) 이제 살아있는 엔티티가 블록 위에 서면, 사용자 정의 피해 유형으로 크기 5 (2.5 하트) 의 피해를 입게 됩니다. @@ -63,7 +63,7 @@ JSON 파일 구조에 대한 자세한 내용은 [Minecraft 위키 (영문)](htt `en_us.json` 파일의 `death.attack.` 키를 수정해 사용자 정의 피해 유형의 사망 메시지를 수정할 수 있습니다. -@[code lang=json transclude={4-4}](@/reference/latest/src/main/resources/assets/fabric-docs-reference/lang/en_us.json) +@[code lang=json transclude={4-4}](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/lang/en_us.json) 이제 사용자 정의 피해 유형으로 사망하면, 다음 사망 메시지를 보게 될 것입니다. @@ -91,6 +91,6 @@ data/minecraft/tags/damage_type/bypasses_armor.json 파일은 다음과 같은 구조를 가집니다. -@[code lang=json](@/reference/latest/src/main/generated/data/minecraft/tags/damage_type/bypasses_armor.json) +@[code lang=json](@/reference/1.21/src/main/generated/data/minecraft/tags/damage_type/bypasses_armor.json) `replace` 키를 `false` 로 설정하여 기존 태그의 값을 제거하지 않도록 주의하세요. diff --git a/versions/1.21/translated/ko_kr/develop/entities/effects.md b/versions/1.21/translated/ko_kr/develop/entities/effects.md index b3b8c9b6e..dfa891ade 100644 --- a/versions/1.21/translated/ko_kr/develop/entities/effects.md +++ b/versions/1.21/translated/ko_kr/develop/entities/effects.md @@ -26,13 +26,13 @@ authors-nogithub: 모든 효과의 기본이 되는 `StatusEffect` 클래스의 사용자 정의 확장 클래스를 만들어 봅시다. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/effect/TaterEffect.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/effect/TaterEffect.java) ### 사용자 정의 효과 등록하기 {#registering-your-custom-effect} 블록, 아이템 등록처럼, `Registry.register`를 통해 `STATUS_EFFECT` 레지스트리에 사용자 정의 효과를 등록할 수 있습니다. 이는 모드 초기화 단계에서 완료되어야 합니다. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/effect/FabricDocsReferenceEffects.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/effect/FabricDocsReferenceEffects.java) ### 텍스쳐 {#texture} diff --git a/versions/1.21/translated/ko_kr/develop/items/food.md b/versions/1.21/translated/ko_kr/develop/items/food.md index cbaa65fea..dcaff6789 100644 --- a/versions/1.21/translated/ko_kr/develop/items/food.md +++ b/versions/1.21/translated/ko_kr/develop/items/food.md @@ -37,11 +37,11 @@ new Item.Settings().food(new FoodComponent.Builder().build()) 원하는 대로 빌더를 수정한 후, `FoodComponent`를 가지기 위해 `build()` 메서드를 호출할 수 있습니다. -@[code transcludeWith=:::5](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::5](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) [Creating Your First Item](./first-item) 페이지의 예시와 비슷하게 위의 구성 요소를 사용하겠습니다: -@[code transcludeWith=:::poisonous_apple](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::poisonous_apple](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) 이렇게 하면 아이템이 다음과 같이 됩니다: diff --git a/versions/1.21/translated/ko_kr/develop/items/potions.md b/versions/1.21/translated/ko_kr/develop/items/potions.md index df07a6a65..80d691cb7 100644 --- a/versions/1.21/translated/ko_kr/develop/items/potions.md +++ b/versions/1.21/translated/ko_kr/develop/items/potions.md @@ -20,7 +20,7 @@ authors: `Potion` 인스턴스를 저장할 필드를 만들며 시작해 봅시다. 이를 보관하기 위해 `ModInitializer` 구현 클래스를 직접 사용하겠습니다. -@[code lang=java transclude={18-27}](@/reference/latest/src/main/java/com/example/docs/potion/FabricDocsReferencePotions.java) +@[code lang=java transclude={18-27}](@/reference/1.21/src/main/java/com/example/docs/potion/FabricDocsReferencePotions.java) `StatusEffectInstance` 인스턴스에는 세 가지 매개 변수를 입력해야 합니다. @@ -36,7 +36,7 @@ authors: 이니셜라이저에서 `BrewingRecipeRegistry.registerPotionRecipe` 메서드를 사용해 물약 효과를 등록하기 위해 `FabricBrewingRecipeRegistryBuilder.BUILD` 이벤트를 사용할 것입니다. -@[code lang=java transclude={29-42}](@/reference/latest/src/main/java/com/example/docs/potion/FabricDocsReferencePotions.java) +@[code lang=java transclude={29-42}](@/reference/1.21/src/main/java/com/example/docs/potion/FabricDocsReferencePotions.java) `registerPotionRecipe`는 세 가지 매개변수를 가집니다. diff --git a/versions/1.21/translated/ko_kr/develop/rendering/basic-concepts.md b/versions/1.21/translated/ko_kr/develop/rendering/basic-concepts.md index 4fac244b4..ab7d3de56 100644 --- a/versions/1.21/translated/ko_kr/develop/rendering/basic-concepts.md +++ b/versions/1.21/translated/ko_kr/develop/rendering/basic-concepts.md @@ -111,7 +111,7 @@ drawContext.getMatrices().peek().getPositionMatrix(); 이 튜토리얼에서는 HUD에 그리고 있으므로, `HudRenderCallback` 이벤트를 사용하겠습니다. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/rendering/RenderingConceptsEntrypoint.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/rendering/RenderingConceptsEntrypoint.java) 이렇게 하면 HUD에 두 삼각형이 그려지게 됩니다. @@ -143,7 +143,7 @@ You must first push the matrix stack and then pop it after you're done with it. 행렬을 변환하기 전에 행렬 스택을 넣었는지 확인하세요! ::: -@[code lang=java transcludeWith=:::2](@/reference/latest/src/client/java/com/example/docs/rendering/RenderingConceptsEntrypoint.java) +@[code lang=java transcludeWith=:::2](@/reference/1.21/src/client/java/com/example/docs/rendering/RenderingConceptsEntrypoint.java) ![다이아몬드의 크기가 변화하는 모습을 보여주는 영상](/assets/develop/rendering/concepts-matrix-stack.webp) @@ -155,7 +155,7 @@ Minecraft가 `RotationAxis` 도구 클래스에 여러 쿼터니언 인스턴스 그럼 다이아몬드의 Z축을 회전해 봅시다. `MatrixStack`과 `multiply(Quaternion, x, y, z)` 메소드를 통해 회전할 수 있습니다. -@[code lang=java transcludeWith=:::3](@/reference/latest/src/client/java/com/example/docs/rendering/RenderingConceptsEntrypoint.java) +@[code lang=java transcludeWith=:::3](@/reference/1.21/src/client/java/com/example/docs/rendering/RenderingConceptsEntrypoint.java) 결과는 다음과 같습니다. diff --git a/versions/1.21/translated/ko_kr/develop/rendering/gui/custom-screens.md b/versions/1.21/translated/ko_kr/develop/rendering/gui/custom-screens.md index 6c73a43bb..8deb19751 100644 --- a/versions/1.21/translated/ko_kr/develop/rendering/gui/custom-screens.md +++ b/versions/1.21/translated/ko_kr/develop/rendering/gui/custom-screens.md @@ -28,7 +28,7 @@ authors: 예를 들어, 라벨이 위에 있는 버튼이 있는 간단한 화면을 만들어 보겠습니다. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/rendering/screens/CustomScreen.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/rendering/screens/CustomScreen.java) ![사용자 정의 화면 1](/assets/develop/rendering/gui/custom-1-example.png) @@ -52,7 +52,7 @@ MinecraftClient.getInstance().setScreen(null); 만약 디테일하게 이전 화면으로 되돌아가는 기능을 추가하고 싶다면, 현재 화면을 `CustomScreen` 생성자에 입력하여 필드에 저장하고, `close` 메소드가 호출되었을 때 해당 필드를 사용하여 이전 화면으로 되돌아가면 됩니다. -@[code lang=java transcludeWith=:::2](@/reference/latest/src/client/java/com/example/docs/rendering/screens/CustomScreen.java) +@[code lang=java transcludeWith=:::2](@/reference/1.21/src/client/java/com/example/docs/rendering/screens/CustomScreen.java) 이제, 사용자 정의 화면이 열릴 때, 현재 화면을 두 번째 매개변수에 입력하면, `CustomScreen#close`가 호출되었을 때 이전 화면으로 되돌아갈 것입니다. diff --git a/versions/1.21/translated/ko_kr/develop/rendering/gui/custom-widgets.md b/versions/1.21/translated/ko_kr/develop/rendering/gui/custom-widgets.md index 0ee52458a..63301debd 100644 --- a/versions/1.21/translated/ko_kr/develop/rendering/gui/custom-widgets.md +++ b/versions/1.21/translated/ko_kr/develop/rendering/gui/custom-widgets.md @@ -18,13 +18,13 @@ authors: - `Narratable` - 접근성 - 스크린 리더 등 여러 접근성 도구가 사용자 정의 위젯에 접근하려면 필수적입니다. - `Selectable` - 탭 선택 - 위젯이 키를 통해 선택 가능하게 하려면 필수적입니다. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/rendering/screens/CustomWidget.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/rendering/screens/CustomWidget.java) ## 화면에 위젯 추가하기 다른 위젯와 같이, 위젯을 화면에 추가하려면 `Screen` 클래스에서 제공되는 `addDrawableChild` 메소드를 사용해야 합니다. 이러한 작업은 `init` 메소드에서 수행되어야 합니다. -@[code lang=java transcludeWith=:::3](@/reference/latest/src/client/java/com/example/docs/rendering/screens/CustomScreen.java) +@[code lang=java transcludeWith=:::3](@/reference/1.21/src/client/java/com/example/docs/rendering/screens/CustomScreen.java) ![화면에 표시되는 사용자 정의 위젯](/assets/develop/rendering/gui/custom-widget-example.png) @@ -34,6 +34,6 @@ authors: 예를 들어, `ClickableWidget` 클래스에서 제공되는 `isHovered()` 메소드를 통해 마우스가 호버되면 위젯 색이 변경되도록 해보겠습니다. -@[code lang=java transcludeWith=:::2](@/reference/latest/src/client/java/com/example/docs/rendering/screens/CustomWidget.java) +@[code lang=java transcludeWith=:::2](@/reference/1.21/src/client/java/com/example/docs/rendering/screens/CustomWidget.java) ![호버 이벤트 예시](/assets/develop/rendering/gui/custom-widget-events.webp) diff --git a/versions/1.21/translated/ko_kr/develop/rendering/particles/creating-particles.md b/versions/1.21/translated/ko_kr/develop/rendering/particles/creating-particles.md index 6ad4df72d..1ff112a8e 100644 --- a/versions/1.21/translated/ko_kr/develop/rendering/particles/creating-particles.md +++ b/versions/1.21/translated/ko_kr/develop/rendering/particles/creating-particles.md @@ -15,7 +15,7 @@ authors: 먼저, 모드 초기화 클래스에 모드 ID로 `ParticleType` 을 등록해 봅시다. -@[code lang=java transcludeWith=#particle_register_main](@/reference/latest/src/main/java/com/example/docs/FabricDocsReference.java) +@[code lang=java transcludeWith=#particle_register_main](@/reference/1.21/src/main/java/com/example/docs/FabricDocsReference.java) 소문자로 "sparkle_particle"은 이후 입자의 텍스쳐를 위한 JSON 파일의 이름이 되게 됩니다. 곧 JSON 파일을 어떻게 생성하는지 알아볼 것입니다. @@ -23,7 +23,7 @@ authors: `ModInitializer` 엔트리포인트에 입자를 등록했다면, `ClientModInitializer`의 엔트리포인트에도 입자를 등록해야 합니다. -@[code lang=java transcludeWith=#particle_register_client](@/reference/latest/src/client/java/com/example/docs/FabricDocsReferenceClient.java) +@[code lang=java transcludeWith=#particle_register_client](@/reference/1.21/src/client/java/com/example/docs/FabricDocsReferenceClient.java) 위 예시는 입자를 클라이언트측에 등록하는 방법입니다. 이제 엔드 막대기 입자 팩토리를 통해 입자에 움직임을 줘보겠습니다. 이렇게 하면 입자가 엔드 막대기 입자와 똑같이 움직이게 됩니다. @@ -47,7 +47,7 @@ You can see all the particle factories by looking at all the implementations of 그리고, `particles` 폴더에는 ParticleType에 등록한 것과 같은 이름의 소문자를 이름으로 가지는 JSON 파일을 생성합니다. 이 예제에서는, `sparkle_particle.json` 으로 생성하겠습니다. 이 파일은 Minecraft가 입자에 어떠한 텍스쳐를 사용해야 하는지 정의하기 때문에 매우 중요합니다. -@[code lang=json](@/reference/latest/src/main/resources/assets/fabric-docs-reference/particles/sparkle_particle.json) +@[code lang=json](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/particles/sparkle_particle.json) :::tip 입자에 애니메이션을 적용하고 싶다면 `textures` 배열 노드에 더 많은 텍스쳐를 추가하면 됩니다. 입자는 배열의 순서대로 반복될 것입니다. diff --git a/versions/1.21/translated/nl_nl/develop/blocks/blockstates.md b/versions/1.21/translated/nl_nl/develop/blocks/blockstates.md index 8248a32d7..5ef78c6d7 100644 --- a/versions/1.21/translated/nl_nl/develop/blocks/blockstates.md +++ b/versions/1.21/translated/nl_nl/develop/blocks/blockstates.md @@ -25,7 +25,7 @@ Minecraft heeft al een paar zelfgemaakte classen die je gemakkelijk bepaalde typ Met de vanilla class `PillarBlock` kan het blok in de X-, Y- of Z-as worden geplaatst. -@[code transcludeWith=:::3](@/reference/latest/src/main/java/com/example/docs/block/ModBlocks.java) +@[code transcludeWith=:::3](@/reference/1.21/src/main/java/com/example/docs/block/ModBlocks.java) Pilaren hebben twee texturen, de bovenkant en de zijkant - ze maken gebruik van het `block/cube_collumn` model. @@ -40,7 +40,7 @@ Omdat de pilaar twee posities heeft, horizontaal en verticaal, zullen we twee ve Hier een voorbeeld van het bestand `condensed_oak_log_horizontal.json`: -@[code](@/reference/latest/src/main/resources/assets/fabric-docs-reference/models/block/condensed_oak_log_horizontal.json) +@[code](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/models/block/condensed_oak_log_horizontal.json) --- @@ -56,7 +56,7 @@ Vervolgens zullen we een blok staat bestand moeten maken. Het blok staat bestand - `axis=y` - Wanneer het blok langs de Y-as wordt geplaatst, gebruiken we het normale verticale model. - `axis=z` - Wanneer het blok langs de Z-as wordt geplaatst, roteren we het model in de positieve X-richting. -@[code](@/reference/latest/src/main/resources/assets/fabric-docs-reference/blockstates/condensed_oak_log.json) +@[code](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/blockstates/condensed_oak_log.json) Zoals altijd moet je een vertaling voor uw blok maken, en een voorwerp model dat de "parent" is van een van de twee modellen. @@ -72,15 +72,15 @@ Dit voorbeeld creëert een unieke boolean eigenschap met de naam `activated` - w Ten eerste moet je de eigenschap zelf maken - sinds dit een boolean is, zullen we de `BooleanProperty.of` methode gebruiken. -@[code transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) +@[code transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) Vervolgens moeten we de eigenschap toevoegen aan de blok staat manager in de methode `appendProperties`. Je zult de methode moeten overschrijven om toegang te krijgen tot de builder: -@[code transcludeWith=:::2](@/reference/latest/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) +@[code transcludeWith=:::2](@/reference/1.21/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) Je moet ook een standaardstaat instellen voor de eigenschap `activated` in de constructor van jouw aangepaste blok. -@[code transcludeWith=:::3](@/reference/latest/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) +@[code transcludeWith=:::3](@/reference/1.21/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) :::warning Vergeet niet om je blok te registreren met de zelfgemaakte class in plaats val `Block`! @@ -90,7 +90,7 @@ Vergeet niet om je blok te registreren met de zelfgemaakte class in plaats val ` In dit voorbeeld wordt de boolean eigenschap `activated` omgedraaid wanneer de speler interactie heeft met het blok. We kunnen hiervoor de `onUse` methode overschrijven: -@[code transcludeWith=:::4](@/reference/latest/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) +@[code transcludeWith=:::4](@/reference/1.21/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) ### Het Visualiseren van De Eigenschap {#visualizing-the-property} @@ -106,7 +106,7 @@ Als je meerdere eigenschappen hebt voor een blok, moet je met alle mogelijke com Omdat dit blok maar twee mogelijke varianten heeft, omdat er maar een eigenschap is (`activated`), zal de blok staat JSON er ongeveer zo uitzien: -@[code](@/reference/latest/src/main/resources/assets/fabric-docs-reference/blockstates/prismarine_lamp.json) +@[code](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/blockstates/prismarine_lamp.json) --- @@ -114,9 +114,9 @@ Omdat het voorbeeldblok een lamp is, zullen we er ook voor moeten zorgen dat het U kunt de `luminance`-methode gebruiken om het lichtniveau in te stellen dat door het blok wordt uitgezonden. We kunnen een statische methode maken in de `PrismarineLampBlock` class om het lichtniveau terug te geven op basis van de `activated`-eigenschap, en dit doorgeven als een methodereferentie naar de `luminance`-methode: -@[code transcludeWith=:::5](@/reference/latest/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) +@[code transcludeWith=:::5](@/reference/1.21/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) -@[code transcludeWith=:::4](@/reference/latest/src/main/java/com/example/docs/block/ModBlocks.java) +@[code transcludeWith=:::4](@/reference/1.21/src/main/java/com/example/docs/block/ModBlocks.java) --- diff --git a/versions/1.21/translated/nl_nl/develop/blocks/first-block.md b/versions/1.21/translated/nl_nl/develop/blocks/first-block.md index c51bc12e0..718a08617 100644 --- a/versions/1.21/translated/nl_nl/develop/blocks/first-block.md +++ b/versions/1.21/translated/nl_nl/develop/blocks/first-block.md @@ -19,7 +19,7 @@ Je kunt deze methode het beste in een soort klasse genaamd `ModBlokken` (of wat Mojang doet iets soortgelijks als dit met vanilla blokken; je kunt de klasse `Blocks` raadplegen om te zien hoe zij het doen. -@[code transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/block/ModBlocks.java) +@[code transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/block/ModBlocks.java) --- @@ -39,7 +39,7 @@ public class ModBlocks { } ``` -@[code transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/block/FabricDocsReferenceBlocks.java) +@[code transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/block/FabricDocsReferenceBlocks.java) ## Het Maken En Registreren Van Je Blok {#creating-and-registering-your-block} @@ -53,7 +53,7 @@ Ter voorbeeld zullen we een simpel blok maken dat de eigenschappen heeft van aar Je kunt ook `AbstractBlock.Settings.copy(AbstractBlock block)` gebruiken om de instellingen van een bestaand blok te kopiëren. In dit geval hadden we `Blocks.DIRT` kunnen gebruiken om de instellingen van aarde te kopiëren, maar voor het voorbeeld gebruiken we de bouwer. ::: -@[code transcludeWith=:::2](@/reference/latest/src/main/java/com/example/docs/block/ModBlocks.java) +@[code transcludeWith=:::2](@/reference/1.21/src/main/java/com/example/docs/block/ModBlocks.java) Om het blokvoorwerp automatisch te maken, kunnen we `true` doorgeven aan de parameter `shouldRegisterItem` van de `register`-methode die we in de vorige stap hebben gemaakt. @@ -63,7 +63,7 @@ Omdat 'BlockItem' automatisch wordt aangemaakt en geregistreerd, moet je, om het Voor dit voorbeeld gebruiken we een aangepaste artikelgroep die is gemaakt op de pagina [Aangepaste Voorwerpgroepen](../items/custom-item-groups). -@[code transcludeWith=:::3](@/reference/latest/src/main/java/com/example/docs/block/ModBlocks.java) +@[code transcludeWith=:::3](@/reference/1.21/src/main/java/com/example/docs/block/ModBlocks.java) --- @@ -100,11 +100,11 @@ Om de textuur in het spel te laten verschijnen, moet je een blok- en voorwerpmod Het voorwerpmodel is vrij eenvoudig, het kan gewoon het blokmodel als ouder gebruiken - aangezien de meeste blokmodellen ondersteuning bieden voor weergave in een GUI: -@[code](@/reference/latest/src/main/resources/assets/fabric-docs-reference/models/item/condensed_dirt.json) +@[code](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/models/item/condensed_dirt.json) Het blokmodel moet in ons geval echter als ouder het `block/cube_all`-model hebben: -@[code](@/reference/latest/src/main/resources/assets/fabric-docs-reference/models/block/condensed_dirt.json) +@[code](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/models/block/condensed_dirt.json) Wanneer je het spel laadt, merk je misschien dat de textuur nog steeds ontbreekt. Dit komt omdat je een blockstaat-definitie moet toevoegen. @@ -116,7 +116,7 @@ Voor het voorbeeldblok, dat geen complexe blokstaat heeft, is slechts één invo Dit bestand moet zich in de map `assets/mod_id/blockstates` bevinden en de naam ervan moet overeenkomen met het blok-ID dat is gebruikt bij het registreren van uw blok in de klasse `ModBlokken`. Als het blok-ID bijvoorbeeld `condensed_dirt` is, moet het bestand `condensed_dirt.json` heten. -@[code](@/reference/latest/src/main/resources/assets/fabric-docs-reference/blockstates/condensed_dirt.json) +@[code](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/blockstates/condensed_dirt.json) Blockstaten zijn erg complex en daarom worden ze op een volgende pagina behandeld: [Blockstaten](./blockstates) @@ -132,7 +132,7 @@ Wanneer je het blok breekt in overleefmodus, zie je misschien dat het blok niet Voor een beter begrip van buittabellen kun je de pagina [Minecraft Wiki - Buittabellen](https://nl.minecraft.wiki/w/Buittabel) raadplegen. ::: -@[code](@/reference/latest/src/main/resources/data/fabric-docs-reference/loot_tables/blocks/condensed_dirt.json) +@[code](@/reference/1.21/src/main/resources/data/fabric-docs-reference/loot_tables/blocks/condensed_dirt.json) Deze buittabel biedt een eenmalige voorwerpval van het blokvoorwerp wanneer het blok wordt gebroken en wanneer het wordt opgeblazen door een explosie. @@ -151,7 +151,7 @@ De inhoud van het bestand is vrij eenvoudig: het is een lijst met items die aan In dit voorbeeld wordt het blok "Condensed Dirt" toegevoegd aan de tag `shovel`. -@[code](@/reference/latest/src/main/resources/data/minecraft/tags/mineable/shovel.json) +@[code](@/reference/1.21/src/main/resources/data/minecraft/tags/mineable/shovel.json) Als je wilt dat er een tool nodig is om het blok te breken, kun je `.requiresTool()` toevoegen aan je blokinstellingen, en ook de juiste mining-tag toevoegen. diff --git a/versions/1.21/translated/nl_nl/develop/items/first-item.md b/versions/1.21/translated/nl_nl/develop/items/first-item.md index 01034942f..7da683c75 100644 --- a/versions/1.21/translated/nl_nl/develop/items/first-item.md +++ b/versions/1.21/translated/nl_nl/develop/items/first-item.md @@ -22,7 +22,7 @@ Je kunt deze methode het beste in een soort klasse genaamd `ModVoorwerpen` (of w Mojang doet dit ook voor hun voorwerpen! Neem maar eens een kijkje naar de `Items` klasse voor inspiratie. -@[code transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) ## Het Registreren van een Voorwerp {#registering-an-item} @@ -36,15 +36,15 @@ If you want to change your item's stack size, you can use the `maxCount` method Dit werkt niet als je het item als beschadigbaar hebt gemarkeerd, omdat de stapelgrootte voor beschadigbare items altijd 1 is om duplicatie-exploits te voorkomen. ::: -@[code transcludeWith=:::2](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::2](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) Als je echter in het spel gaat, kun je zien dat ons item niet bestaat! Dit komt omdat u de klasse niet statisch initialiseert. Om dit te doen, kunt u een openbare statische initialisatiemethode aan uw klasse toevoegen en deze vanuit uw klasse `ModInitializer` aanroepen. Momenteel heeft deze methode niets nodig. -@[code transcludeWith=:::3](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::3](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) -@[code transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/item/FabricDocsReferenceItems.java) +@[code transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/item/FabricDocsReferenceItems.java) Het aanroepen van een methode voor een klasse initialiseert deze statisch als deze nog niet eerder is geladen - dit betekent dat alle `static` velden worden geëvalueerd. Dit is waar de dummy `initialize` voor is. @@ -58,7 +58,7 @@ We zullen dit item bijvoorbeeld toevoegen aan de ingrediënten `ItemGroup`, u zu Dit kan gedaan worden in de `initialize`-methode van uw voorwerpen klasse. -@[code transcludeWith=:::4](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::4](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) Als je het spel inlaadt, kun je zien dat ons item is geregistreerd en zich in de voorwerpgroep Ingrediënten bevindt: @@ -98,7 +98,7 @@ Je gaat een eenvoudig `item/generated`-model maken, dat een invoertextuur bevat Maak de model-JSON in de map `assets//models/item`, met dezelfde naam als het item; `suspicious_substance.json` -@[code](@/reference/latest/src/main/resources/assets/fabric-docs-reference/models/item/suspicious_substance.json) +@[code](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/models/item/suspicious_substance.json) ### Het Model-JSON Afbreken {#breaking-down-the-model-json} @@ -119,11 +119,11 @@ Fabric API biedt verschillende registers die kunnen worden gebruikt om extra eig Als je je voorwerp bijvoorbeeld composteerbaar wilt maken, kun je het `CompostableItemRegistry` gebruiken: -@[code transcludeWith=:::_10](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::_10](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) Als je van je voorwerp een ​​brandstof wilt maken, kun je ook de klasse `FuelRegistry` gebruiken: -@[code transcludeWith=:::_11](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::_11](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) ## Een Basisrecept Toevoegen {#adding-a-basic-crafting-recipe} @@ -144,7 +144,7 @@ Als je wilt dat je voorwerp een ​​aangepaste tooltip heeft, moet je een klas In dit voorbeeld wordt de klasse `LightningStick` gebruikt die is gemaakt op de pagina [Aangepaste Voorwerpinteracties](./custom-item-interactions). ::: -@[code lang=java transcludeWith=:::3](@/reference/latest/src/main/java/com/example/docs/item/custom/LightningStick.java) +@[code lang=java transcludeWith=:::3](@/reference/1.21/src/main/java/com/example/docs/item/custom/LightningStick.java) Elke aanroep van `add()` zal één regel aan de tooltip toevoegen. diff --git a/versions/1.21/translated/pl_pl/contributing.md b/versions/1.21/translated/pl_pl/contributing.md index 4c1c1c7b5..641ef6940 100644 --- a/versions/1.21/translated/pl_pl/contributing.md +++ b/versions/1.21/translated/pl_pl/contributing.md @@ -188,10 +188,10 @@ Na przykład, aby wyróżnić linie 15-21 pliku `FabricDocsReference.java` z mod ::: code-group ```md -<<< @/reference/latest/src/main/java/com/example/docs/FabricDocsReference.java{15-21} +<<< @/reference/1.21/src/main/java/com/example/docs/FabricDocsReference.java{15-21} ``` -<<< @/reference/latest/src/main/java/com/example/docs/FabricDocsReference.java{15-21}[java] +<<< @/reference/1.21/src/main/java/com/example/docs/FabricDocsReference.java{15-21}[java] ::: @@ -202,10 +202,10 @@ Dla przykładu ten kod osadzi sekcje powyższego pliku, które są oznaczone tag ::: code-group ```md -@[code transcludeWith=#entrypoint](@/reference/latest/src/main/java/com/example/docs/FabricDocsReference.java) +@[code transcludeWith=#entrypoint](@/reference/1.21/src/main/java/com/example/docs/FabricDocsReference.java) ``` -@[code transcludeWith=#entrypoint](@/reference/latest/src/main/java/com/example/docs/FabricDocsReference.java) +@[code transcludeWith=#entrypoint](@/reference/1.21/src/main/java/com/example/docs/FabricDocsReference.java) ::: diff --git a/versions/1.21/translated/pt_br/contributing.md b/versions/1.21/translated/pt_br/contributing.md index 791e7ca13..2aab6e44e 100644 --- a/versions/1.21/translated/pt_br/contributing.md +++ b/versions/1.21/translated/pt_br/contributing.md @@ -84,7 +84,7 @@ As diretrizes a serem seguidas: **Exemplo.** ```md - <<< @/reference/latest/src/main/java/com/example/docs/FabricDocsReference.java{15-21 java} + <<< @/reference/1.21/src/main/java/com/example/docs/FabricDocsReference.java{15-21 java} ``` Isso incorporará as linhas 15-21 do arquivo `FabricDocsReference.java` no mod de referência. diff --git a/versions/1.21/translated/pt_br/develop/entities/damage-types.md b/versions/1.21/translated/pt_br/develop/entities/damage-types.md index a617f4058..d9202ccfe 100644 --- a/versions/1.21/translated/pt_br/develop/entities/damage-types.md +++ b/versions/1.21/translated/pt_br/develop/entities/damage-types.md @@ -21,7 +21,7 @@ resources/data/fabric-docs-reference/damage_type/tater.json Ele terá a seguinte estrutura: -@[code lang=json](@/reference/latest/src/main/generated/data/fabric-docs-reference/damage_type/tater.json) +@[code lang=json](@/reference/1.21/src/main/generated/data/fabric-docs-reference/damage_type/tater.json) Esse tipo de dano causa aumento de 0.1 na [exaustão de fome](https://minecraft.wiki/w/Hunger#Exhaustion_level_increase) toda vez que um jogador sofrer dano, quando o dano for causado por uma fonte viva que não seja um jogador (ex: um bloco). Além disso, a quantidade de dano causado escalonará com a dificuldade do mundo. @@ -37,7 +37,7 @@ Quando precisarmos acessar nosso tipo de dano através de código, usaremos a su A `RegistryKey` pode ser obtida da seguinte maneira: -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/damage/FabricDocsReferenceDamageTypes.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/damage/FabricDocsReferenceDamageTypes.java) ### Usando Tipos de Dano {#using-damage-types} @@ -47,15 +47,15 @@ Você pode substituir `onSteppedOn` para infligir este dano. Começaremos criando uma `DamageSource` do nosso tipo de dano customizado. -@[code lang=java transclude={21-24}](@/reference/latest/src/main/java/com/example/docs/damage/TaterBlock.java) +@[code lang=java transclude={21-24}](@/reference/1.21/src/main/java/com/example/docs/damage/TaterBlock.java) Então, chamamos `entity.damage()` com o nosso `DamageSource`e uma quantidade. -@[code lang=java transclude={25-25}](@/reference/latest/src/main/java/com/example/docs/damage/TaterBlock.java) +@[code lang=java transclude={25-25}](@/reference/1.21/src/main/java/com/example/docs/damage/TaterBlock.java) A implementação completa do bloco: -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/damage/TaterBlock.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/damage/TaterBlock.java) Agora, quando uma entidade viva pisar no nosso bloco, ela sofrerá 5 de dano (2,5 corações) usando nosso tipo de dano personalizado. @@ -63,7 +63,7 @@ Agora, quando uma entidade viva pisar no nosso bloco, ela sofrerá 5 de dano (2, Você pode definir uma mensagem de morte para o tipo de dano no formato de `death.attack.` no arquivo `en_us.json` do mod. -@[code lang=json transclude={4-4}](@/reference/latest/src/main/resources/assets/fabric-docs-reference/lang/en_us.json) +@[code lang=json transclude={4-4}](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/lang/en_us.json) Ao morrer devido ao nosso tipo de dano, você verá a seguinte mensagem: @@ -91,6 +91,6 @@ data/minecraft/tags/damage_type/bypasses_armor.json Com o seguinte conteúdo: -@[code lang=json](@/reference/latest/src/main/generated/data/minecraft/tags/damage_type/bypasses_armor.json) +@[code lang=json](@/reference/1.21/src/main/generated/data/minecraft/tags/damage_type/bypasses_armor.json) Certifique-se de que sua tag não substitua a tag existente definindo a chave `replace` como `false`. diff --git a/versions/1.21/translated/pt_br/develop/entities/effects.md b/versions/1.21/translated/pt_br/develop/entities/effects.md index c47a15c49..78f41cac9 100644 --- a/versions/1.21/translated/pt_br/develop/entities/effects.md +++ b/versions/1.21/translated/pt_br/develop/entities/effects.md @@ -26,13 +26,13 @@ Neste tutorial adicionaremos um novo efeito personalizado chamado _Tater_, que l Vamos criar uma classe de efeito personalizado estendendo `StatusEffect`, sendo uma classe base para todos os efeitos. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/effect/TaterEffect.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/effect/TaterEffect.java) ### Registrando seu Efeito Personalizado Similar a registração de blocos e itens, usamos `Registry.register` para registrar nosso efeito ao registro de `STATUS_EFFECT`. Isso pode ser feito no nosso inicializador. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/effect/FabricDocsReferenceEffects.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/effect/FabricDocsReferenceEffects.java) ### Textura diff --git a/versions/1.21/translated/ru_ru/contributing.md b/versions/1.21/translated/ru_ru/contributing.md index 8f13ac654..e23fe6db7 100644 --- a/versions/1.21/translated/ru_ru/contributing.md +++ b/versions/1.21/translated/ru_ru/contributing.md @@ -188,10 +188,10 @@ authors: ::: code-group ```md -<<< @/reference/latest/src/main/java/com/example/docs/FabricDocsReference.java{15-21} +<<< @/reference/1.21/src/main/java/com/example/docs/FabricDocsReference.java{15-21} ``` -<<< @/reference/latest/src/main/java/com/example/docs/FabricDocsReference.java{15-21}[java] +<<< @/reference/1.21/src/main/java/com/example/docs/FabricDocsReference.java{15-21}[java] ::: @@ -202,10 +202,10 @@ authors: ::: code-group ```md -@[code transcludeWith=#entrypoint](@/reference/latest/src/main/java/com/example/docs/FabricDocsReference.java) +@[code transcludeWith=#entrypoint](@/reference/1.21/src/main/java/com/example/docs/FabricDocsReference.java) ``` -@[code transcludeWith=#entrypoint](@/reference/latest/src/main/java/com/example/docs/FabricDocsReference.java) +@[code transcludeWith=#entrypoint](@/reference/1.21/src/main/java/com/example/docs/FabricDocsReference.java) ::: diff --git a/versions/1.21/translated/ru_ru/develop/automatic-testing.md b/versions/1.21/translated/ru_ru/develop/automatic-testing.md index 2af182287..00b615e36 100644 --- a/versions/1.21/translated/ru_ru/develop/automatic-testing.md +++ b/versions/1.21/translated/ru_ru/develop/automatic-testing.md @@ -27,7 +27,7 @@ authors: Затем нам нужно указать Gradle использовать Fabric Loader JUnit для тестирования. Это можно сделать, добавив следующий код в `build.gradle`: -@[code lang=groovy transcludeWith=:::automatic-testing:2](@/reference/latest/build.gradle) +@[code lang=groovy transcludeWith=:::automatic-testing:2](@/reference/1.21/build.gradle) ### Написание тестов {#writing-tests} @@ -55,7 +55,7 @@ authors: Теперь пришло время написать настоящий тестовый код. Вы можете утверждать условия, используя `org.junit.jupiter.api.Assertions`. Проверьте следующий тест: -@[code lang=java transcludeWith=:::automatic-testing:4](@/reference/latest/src/test/java/com/example/docs/codec/BeanTypeTest.java) +@[code lang=java transcludeWith=:::automatic-testing:4](@/reference/1.21/src/test/java/com/example/docs/codec/BeanTypeTest.java) Объяснение того, что на самом деле делает этот код, см. в [Кодеки](codecs#registry-dispatch). @@ -63,11 +63,11 @@ authors: Отлично, первый тест сработал! Но подождите, второй тест не прошёл? В журналах мы получаем одну из следующих ошибок. -@[code lang=java transcludeWith=:::automatic-testing:5](@/reference/latest/src/test/java/com/example/docs/codec/BeanTypeTest.java) +@[code lang=java transcludeWith=:::automatic-testing:5](@/reference/1.21/src/test/java/com/example/docs/codec/BeanTypeTest.java) Это происходит потому, что мы пытаемся получить доступ к реестру или классу, который зависит от реестра (или, в редких случаях, зависит от других классов Minecraft таких, как `SharedConstants`), но Minecraft не инициализирован. Нам нужно просто немного инициализировать его, чтобы реестры заработали. Просто добавьте следующий код в начало метода `beforeAll`. -@[code lang=java transcludeWith=:::automatic-testing:7](@/reference/latest/src/test/java/com/example/docs/codec/BeanTypeTest.java) +@[code lang=java transcludeWith=:::automatic-testing:7](@/reference/1.21/src/test/java/com/example/docs/codec/BeanTypeTest.java) ### Настройка действий GitHub {#setting-up-github-actions} diff --git a/versions/1.21/translated/ru_ru/develop/blocks/blockstates.md b/versions/1.21/translated/ru_ru/develop/blocks/blockstates.md index 9226bb0ca..07b3c8ee5 100644 --- a/versions/1.21/translated/ru_ru/develop/blocks/blockstates.md +++ b/versions/1.21/translated/ru_ru/develop/blocks/blockstates.md @@ -25,7 +25,7 @@ Minecraft уже имеет несколько пользовательских Стандартный класс `PillarBlock` позволяет размещать блоки вдоль осей X, Y или Z. -@[code transcludeWith=:::3](@/reference/latest/src/main/java/com/example/docs/block/ModBlocks.java) +@[code transcludeWith=:::3](@/reference/1.21/src/main/java/com/example/docs/block/ModBlocks.java) Колоновые блоки имеют две текстуры: верхнюю и боковую. Они используют модель `block/cube_column`. @@ -40,7 +40,7 @@ Minecraft уже имеет несколько пользовательских Пример файла `condensed_oak_log_horizontal.json`: -@[code](@/reference/latest/src/main/resources/assets/fabric-docs-reference/models/block/condensed_oak_log_horizontal.json) +@[code](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/models/block/condensed_oak_log_horizontal.json) --- @@ -56,7 +56,7 @@ Remember, blockstate files can be found in the `assets//blockstates - `axis=y` - Когда блок помещён вдоль оси Y, мы будем использовать нормальную вертикальную модель. - `axis=z` - Когда блок помещён вдоль оси Z, мы повернём модель так, чтобы она была ориентирована в положительном направлении оси X. -@[code](@/reference/latest/src/main/resources/assets/fabric-docs-reference/blockstates/condensed_oak_log.json) +@[code](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/blockstates/condensed_oak_log.json) Как всегда, вам нужно создать перевод для вашего блока и модель предмета, которая будет наследовать одну из двух моделей. @@ -72,15 +72,15 @@ Remember, blockstate files can be found in the `assets//blockstates Сначала вам нужно создать свойство — так как это булево значение, мы будем использовать метод `BooleanProperty.of`. -@[code transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) +@[code transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) Далее нам необходимо добавить свойство к менеджеру состояний блока в методе `appendProperties`. Вам необходимо переопределить метод для доступа к конструктору: -@[code transcludeWith=:::2](@/reference/latest/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) +@[code transcludeWith=:::2](@/reference/1.21/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) Вам также придется установить состояние по умолчанию для свойства `activated` в конструкторе вашего пользовательского блока. -@[code transcludeWith=:::3](@/reference/latest/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) +@[code transcludeWith=:::3](@/reference/1.21/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) :::warning Не забудьте зарегистрировать свой блок, используя пользовательский класс вместо `Block`! @@ -90,7 +90,7 @@ Remember, blockstate files can be found in the `assets//blockstates В этом примере булево свойство `activated` инвертируется, когда игрок взаимодействует с блоком. Для этого мы можем переопределить метод `onUse`: -@[code transcludeWith=:::4](@/reference/latest/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) +@[code transcludeWith=:::4](@/reference/1.21/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) ### Визуализация недвижимости {#visualizing-the-property} @@ -106,7 +106,7 @@ Remember, blockstate files can be found in the `assets//blockstates Поскольку этот блок имеет только два возможных варианта, поскольку у него есть только одно свойство (`activated`), JSON-код состояния блока будет выглядеть примерно так: -@[code](@/reference/latest/src/main/resources/assets/fabric-docs-reference/blockstates/prismarine_lamp.json) +@[code](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/blockstates/prismarine_lamp.json) --- @@ -114,9 +114,9 @@ Remember, blockstate files can be found in the `assets//blockstates Вы можете использовать метод `luminance` для установки уровня освещенности, излучаемой блоком. Мы можем создать статический метод в классе `PrismarineLampBlock` для возврата уровня освещенности на основе свойства `activated` и передать его как ссылку на метод `luminance`: -@[code transcludeWith=:::5](@/reference/latest/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) +@[code transcludeWith=:::5](@/reference/1.21/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) -@[code transcludeWith=:::4](@/reference/latest/src/main/java/com/example/docs/block/ModBlocks.java) +@[code transcludeWith=:::4](@/reference/1.21/src/main/java/com/example/docs/block/ModBlocks.java) --- diff --git a/versions/1.21/translated/ru_ru/develop/blocks/first-block.md b/versions/1.21/translated/ru_ru/develop/blocks/first-block.md index 94acd810c..b9ebe10ed 100644 --- a/versions/1.21/translated/ru_ru/develop/blocks/first-block.md +++ b/versions/1.21/translated/ru_ru/develop/blocks/first-block.md @@ -17,7 +17,7 @@ authors: Что-то подобное Mojang делают с ванильными блоками. Вы можете обратиться к классу `Blocks`, чтобы увидеть, как они это делают. -@[code transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/block/ModBlocks.java) +@[code transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/block/ModBlocks.java) --- @@ -37,7 +37,7 @@ public class ModBlocks { } ``` -@[code transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/block/FabricDocsReferenceBlocks.java) +@[code transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/block/FabricDocsReferenceBlocks.java) ## Создание и регистрация вашего блока {#creating-and-registering-your-block} @@ -51,7 +51,7 @@ public class ModBlocks { Вы можете использовать `AbstractBlock.Settings.copy(AbstractBlock block)`, чтобы скопировать параметры существующего блока. В данном случае мы могли бы использовать `Blocks.DIRT` для копирования параметров блока земли, но для примера мы используем конструктор. ::: -@[code transcludeWith=:::2](@/reference/latest/src/main/java/com/example/docs/block/ModBlocks.java) +@[code transcludeWith=:::2](@/reference/1.21/src/main/java/com/example/docs/block/ModBlocks.java) Для автоматического создания предмета блока мы можем передать `true` параметру `shouldRegisterItem` метода `register`, который мы создали на предыдущем шаге. @@ -61,7 +61,7 @@ public class ModBlocks { Для этого примера мы используем пользовательскую группу предметов, созданную на странице [Собственные вкладки предметов](../items/custom-item-groups). -@[code transcludeWith=:::3](@/reference/latest/src/main/java/com/example/docs/block/ModBlocks.java) +@[code transcludeWith=:::3](@/reference/1.21/src/main/java/com/example/docs/block/ModBlocks.java) --- @@ -98,11 +98,11 @@ Minecraft будет использовать этот перевод в тво Модель элемента довольно проста, она может просто использовать модель блока в качестве родительской, поскольку большинство моделей блоков поддерживают визуализацию в графическом интерфейсе: -@[code](@/reference/latest/src/main/resources/assets/fabric-docs-reference/models/item/condensed_dirt.json) +@[code](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/models/item/condensed_dirt.json) Однако в нашем случае модель блока должна быть родительской для модели `block/cube_all`: -@[code](@/reference/latest/src/main/resources/assets/fabric-docs-reference/models/block/condensed_dirt.json) +@[code](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/models/block/condensed_dirt.json) При загрузке игры вы можете заметить, что текстура по-прежнему отсутствует. Это связано с тем, что вам необходимо добавить определение состояния блока. @@ -114,7 +114,7 @@ Minecraft будет использовать этот перевод в тво Этот файл должен находиться в папке `assets/mod_id/blockstates`, а его имя должно совпадать с идентификатором блока, использованным при регистрации вашего блока в классе `ModBlocks`. Например, если идентификатор блока — `condensed_dirt`, файл должен называться `condensed_dirt.json`. -@[code](@/reference/latest/src/main/resources/assets/fabric-docs-reference/blockstates/condensed_dirt.json) +@[code](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/blockstates/condensed_dirt.json) Состояния блоков действительно сложны, поэтому они рассматриваются на следующей странице: [Состояния блоков](./blockstates) @@ -130,7 +130,7 @@ Minecraft будет использовать этот перевод в тво Для более глубокого понимания таблиц добычи вы можете обратиться к официальной странице [Minecraft Wiki - Loot Tables](https://minecraft.wiki/w/Loot_table). ::: -@[code](@/reference/latest/src/main/resources/data/fabric-docs-reference/loot_tables/blocks/condensed_dirt.json) +@[code](@/reference/1.21/src/main/resources/data/fabric-docs-reference/loot_tables/blocks/condensed_dirt.json) В таблице добычи указано, какой предмет выпадет из блока, когда блок сломан и когда он взорван взрывом. @@ -149,7 +149,7 @@ Minecraft будет использовать этот перевод в тво В этом примере, блок «Condensed Dirt» добавляется к тегу `shovel`. -@[code](@/reference/latest/src/main/resources/data/minecraft/tags/mineable/shovel.json) +@[code](@/reference/1.21/src/main/resources/data/minecraft/tags/mineable/shovel.json) ## Уровни добычи {#mining-levels} diff --git a/versions/1.21/translated/ru_ru/develop/codecs.md b/versions/1.21/translated/ru_ru/develop/codecs.md index ebdae1d45..083d8d95e 100644 --- a/versions/1.21/translated/ru_ru/develop/codecs.md +++ b/versions/1.21/translated/ru_ru/develop/codecs.md @@ -314,11 +314,11 @@ public class Identifier { Имея всё это, мы можем создать кодек диспетчера реестров для бобов: -@[code transcludeWith=:::](@/reference/latest/src/main/java/com/example/docs/codec/Bean.java) -@[code transcludeWith=:::](@/reference/latest/src/main/java/com/example/docs/codec/BeanType.java) -@[code transcludeWith=:::](@/reference/latest/src/main/java/com/example/docs/codec/StringyBean.java) -@[code transcludeWith=:::](@/reference/latest/src/main/java/com/example/docs/codec/CountingBean.java) -@[code transcludeWith=:::](@/reference/latest/src/main/java/com/example/docs/codec/BeanTypes.java) +@[code transcludeWith=:::](@/reference/1.21/src/main/java/com/example/docs/codec/Bean.java) +@[code transcludeWith=:::](@/reference/1.21/src/main/java/com/example/docs/codec/BeanType.java) +@[code transcludeWith=:::](@/reference/1.21/src/main/java/com/example/docs/codec/StringyBean.java) +@[code transcludeWith=:::](@/reference/1.21/src/main/java/com/example/docs/codec/CountingBean.java) +@[code transcludeWith=:::](@/reference/1.21/src/main/java/com/example/docs/codec/BeanTypes.java) ```java // Теперь мы можем создать кодек для типов бобов diff --git a/versions/1.21/translated/ru_ru/develop/commands/arguments.md b/versions/1.21/translated/ru_ru/develop/commands/arguments.md index 96103fe4a..c4f7bf8ca 100644 --- a/versions/1.21/translated/ru_ru/develop/commands/arguments.md +++ b/versions/1.21/translated/ru_ru/develop/commands/arguments.md @@ -7,8 +7,8 @@ description: Узнайте, как создавать команды со сл Большинство команд используют аргументы. Иногда они могут быть необязательными, что означает, что команда выполнится, даже если вы не предоставите этот аргумент. Один узел может иметь несколько типов аргументов, но будьте внимательны, чтобы избежать неоднозначности. -@[code lang=java highlight={3} transcludeWith=:::command_with_arg](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code lang=java transcludeWith=:::execute_command_with_arg](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={3} transcludeWith=:::command_with_arg](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::execute_command_with_arg](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) В этом случае после текста команды `/command_with_arg` следует ввести целое число. Например, если вы запустите `/command_with_arg 3`, вы получите сообщение: @@ -18,15 +18,15 @@ description: Узнайте, как создавать команды со сл Далее мы добавим необязательный второй аргумент: -@[code lang=java highlight={3,5} transcludeWith=:::command_with_two_args](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code lang=java transcludeWith=:::execute_command_with_two_args](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={3,5} transcludeWith=:::command_with_two_args](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::execute_command_with_two_args](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) Теперь вы можете указать одно или два целых числа. Если вы укажете одно число, будет выведено сообщение с одним значением. Если вы укажете два числа, будет выведено сообщение с двумя значениями. Возможно, вам покажется излишним дважды указывать схожие исполнения. Поэтому мы можем создать метод, который будет использоваться в обоих случаях. -@[code lang=java highlight={4,6} transcludeWith=:::command_with_common_exec](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code lang=java transcludeWith=:::execute_common](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={4,6} transcludeWith=:::command_with_common_exec](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::execute_common](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) ## Собственные типы аргументов {#custom-argument-types} @@ -36,7 +36,7 @@ description: Узнайте, как создавать команды со сл Например, вы можете создать тип аргумента, который преобразует строку в `BlockPos` с форматом: `{x, y, z}` -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/command/BlockPosArgumentType.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/command/BlockPosArgumentType.java) ### Регистрация своих типов аргументов {#registering-custom-argument-types} @@ -46,14 +46,14 @@ description: Узнайте, как создавать команды со сл Вы можете зарегистрировать свой тип аргументов в методе `onInitialize` вашего инициализатора мода, используя класс `ArgumentTypeRegistry`: -@[code lang=java transcludeWith=:::register_custom_arg](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::register_custom_arg](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) ### Использование своих типов аргументовs {#using-custom-argument-types} Мы можем использовать наш собственный тип аргумента в команде, передав его экземпляр в метод `.argument` при создании команды. -@[code lang=java highlight={3} transcludeWith=:::custom_arg_command](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code lang=java highlight={2} transcludeWith=:::execute_custom_arg_command](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={3} transcludeWith=:::custom_arg_command](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={2} transcludeWith=:::execute_custom_arg_command](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) Выполнив команду, мы можем проверить, работает ли наш тип аргумента: diff --git a/versions/1.21/translated/ru_ru/develop/commands/basics.md b/versions/1.21/translated/ru_ru/develop/commands/basics.md index 37f3375dc..cb42f94f1 100644 --- a/versions/1.21/translated/ru_ru/develop/commands/basics.md +++ b/versions/1.21/translated/ru_ru/develop/commands/basics.md @@ -76,7 +76,7 @@ Command command = context -> { В инициализаторе мода мы просто регистрируем простую команду: -@[code lang=java transcludeWith=:::test_command](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::test_command](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) В методе`sendFeedback()`, первый аргумент это текст для отправки, который является `Supplier`, чтобы избежать создание экземпляров текстовых объектов когда они не нужны. @@ -96,15 +96,15 @@ Command command = context -> { При желании вы так же можете сделать так, чтобы когда команда регистрировалась с определёнными условиями, например только в выделенной среде: -@[code lang=java highlight={2} transcludeWith=:::dedicated_command](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code lang=java transcludeWith=:::execute_dedicated_command](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={2} transcludeWith=:::dedicated_command](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::execute_dedicated_command](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) ### Требования к команде {#command-requirements} Допустим, что у вас есть команда и вы хотите чтобы её могли выполнять только операторы. Здесь метод `requires()` вступает в игру. Метод `requires()` имеет один аргумент `Predicate` который будет предоставлять `ServerCommandSource` для проверки возможности `CommandSource` выполнять команду. -@[code lang=java highlight={3} transcludeWith=:::required_command](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code lang=java transcludeWith=:::execute_required_command](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={3} transcludeWith=:::required_command](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::execute_required_command](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) Команда выполнится только, если источник команды имеет второй уровень минимально, включая команду блоков. Иначе, команда не зарегистрируется. @@ -114,19 +114,19 @@ Command command = context -> { Чтобы добавить подкоманду, вы должны зарегистрировать первый литеральный нод команды. Чтобы иметь подкоманду, вы должны добавить следующий литеральный нод к существующему ноду. -@[code lang=java highlight={3} transcludeWith=:::sub_command_one](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code lang=java transcludeWith=:::execute_sub_command_one](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={3} transcludeWith=:::sub_command_one](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::execute_sub_command_one](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) Подобно аргументам, ноды подкоманд могут также быть опциональными. В следующем случае будут допустимы как `/command_two`, так и `/command_two sub_command_two`. -@[code lang=java highlight={2,8} transcludeWith=:::sub_command_two](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code lang=java transcludeWith=:::execute_command_sub_command_two](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={2,8} transcludeWith=:::sub_command_two](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::execute_command_sub_command_two](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) ## Клиентские команды {#client-commands} Fabric API имеет `ClientCommandManager` в пакете`net.fabricmc.fabric.api.client.command.v2` который можно использовать для регистрации команд на клиентской стороне. Код должен существовать только в коде клиентской стороны. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/client/command/FabricDocsReferenceClientCommands.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/client/command/FabricDocsReferenceClientCommands.java) ## Перенаправление команд {#command-redirects} @@ -136,8 +136,8 @@ Fabric API имеет `ClientCommandManager` в пакете`net.fabricmc.fabric Brigadier [будет перенаправлять только командные узлы с аргументами](https://github.com/Mojang/brigadier/issues/46). Если вы хотите перенаправить командный узел без аргументов, предоставьте конструктор `.executes()` со ссылкой на ту же логику, что описана в примере. ::: -@[code lang=java transcludeWith=:::redirect_command](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code lang=java transcludeWith=:::execute_redirected_by](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::redirect_command](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::execute_redirected_by](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) ## ЧАВО {#faq} diff --git a/versions/1.21/translated/ru_ru/develop/commands/suggestions.md b/versions/1.21/translated/ru_ru/develop/commands/suggestions.md index 5ee675ce6..e94b2bf74 100644 --- a/versions/1.21/translated/ru_ru/develop/commands/suggestions.md +++ b/versions/1.21/translated/ru_ru/develop/commands/suggestions.md @@ -17,8 +17,8 @@ authors: Чтобы использовать поставщика предложений, необходимо вызвать метод `suggests` в конструкторе аргументов. Этот метод берёт `SuggestionProvider` и возвращает модифицированный аргумент конструктора с прикрепленным поставщиком предложений. -@[code java highlight={4} transcludeWith=:::command_with_suggestions](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code java transcludeWith=:::execute_command_with_suggestions](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code java highlight={4} transcludeWith=:::command_with_suggestions](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code java transcludeWith=:::execute_command_with_suggestions](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) ## Встроенные поставщики предложений {#built-in-suggestion-providers} @@ -37,12 +37,12 @@ authors: Например, мы сделаем поставщик предложений предлагающий все имена игроков на сервере. -@[code java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/command/PlayerSuggestionProvider.java) +@[code java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/command/PlayerSuggestionProvider.java) Для использования этого поставщика предложений, просто передадите его экземпляр в метод `.suggests` в конструктор аргументов. -@[code java highlight={4} transcludeWith=:::command_with_custom_suggestions](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code java transcludeWith=:::execute_command_with_custom_suggestions](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code java highlight={4} transcludeWith=:::command_with_custom_suggestions](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code java transcludeWith=:::execute_command_with_custom_suggestions](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) Очевидно, что поставщики предложений могут быть более сложными, поскольку они также могут считывать контекст команды, чтобы предоставлять предложения на основе состояния команды, например аргументов, которые уже были предоставлены. diff --git a/versions/1.21/translated/ru_ru/develop/entities/damage-types.md b/versions/1.21/translated/ru_ru/develop/entities/damage-types.md index fb8c5e30f..e290f3851 100644 --- a/versions/1.21/translated/ru_ru/develop/entities/damage-types.md +++ b/versions/1.21/translated/ru_ru/develop/entities/damage-types.md @@ -23,7 +23,7 @@ resources/data/fabric-docs-reference/damage_type/tater.json Он имеет следующую структуру: -@[code lang=json](@/reference/latest/src/main/generated/data/fabric-docs-reference/damage_type/tater.json) +@[code lang=json](@/reference/1.21/src/main/generated/data/fabric-docs-reference/damage_type/tater.json) Этот пользовательский тип урона увеличивает [истощение голодом](https://minecraft.wiki/w/Hunger#Exhaustion_level_increase) на 0,1 каждый раз, когда игрок получает урон, когда урон наносится живым, неигровым источником (например, блоком). Кроме того, количество нанесенного урона будет масштабироваться в зависимости от сложности мира @@ -39,7 +39,7 @@ resources/data/fabric-docs-reference/damage_type/tater.json `RegistryKey` можно получить следующим образом: -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/damage/FabricDocsReferenceDamageTypes.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/damage/FabricDocsReferenceDamageTypes.java) ### Использование типов урона {#using-damage-types} @@ -49,15 +49,15 @@ resources/data/fabric-docs-reference/damage_type/tater.json Начнем с создания `DamageSource` нашего пользовательского типа урона. -@[code lang=java transclude={21-24}](@/reference/latest/src/main/java/com/example/docs/damage/TaterBlock.java) +@[code lang=java transclude={21-24}](@/reference/1.21/src/main/java/com/example/docs/damage/TaterBlock.java) Затем мы вызываем `entity.damage()` с нашим `DamageSource` и суммой. -@[code lang=java transclude={25-25}](@/reference/latest/src/main/java/com/example/docs/damage/TaterBlock.java) +@[code lang=java transclude={25-25}](@/reference/1.21/src/main/java/com/example/docs/damage/TaterBlock.java) Полная реализация блока: -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/damage/TaterBlock.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/damage/TaterBlock.java) Теперь, когда живое существо наступит на наш блок, оно получит 5 единиц урона (2,5 сердца) с использованием нашего типа урона. @@ -65,7 +65,7 @@ resources/data/fabric-docs-reference/damage_type/tater.json Вы можете определить сообщение о смерти для типа урона в формате `death.attack.` в файле `en_us.json`. -@[code lang=json transclude={4-4}](@/reference/latest/src/main/resources/assets/fabric-docs-reference/lang/en_us.json) +@[code lang=json transclude={4-4}](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/lang/en_us.json) После смерти от нашего типа урона вы увидите следующее сообщение о смерти: @@ -94,6 +94,6 @@ data/minecraft/tags/damage_type/bypasses_armor.json Со следующим содержанием: -@[code lang=json](@/reference/latest/src/main/generated/data/minecraft/tags/damage_type/bypasses_armor.json) +@[code lang=json](@/reference/1.21/src/main/generated/data/minecraft/tags/damage_type/bypasses_armor.json) Убедитесь, что ваш тег не заменяет существующий тег, установив ключ `replace` в значение `false`. diff --git a/versions/1.21/translated/ru_ru/develop/entities/effects.md b/versions/1.21/translated/ru_ru/develop/entities/effects.md index bc143bf1e..a2b31b048 100644 --- a/versions/1.21/translated/ru_ru/develop/entities/effects.md +++ b/versions/1.21/translated/ru_ru/develop/entities/effects.md @@ -26,13 +26,13 @@ authors-nogithub: Давайте создадим класс нашего эффекта, который будет наследовать основной класс всех эффектов — `StatusEffect`. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/effect/TaterEffect.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/effect/TaterEffect.java) ### Регистрация своего эффекта {#registering-your-custom-effect} Схожим с регистрацией блоков и предметов образом, мы используем `Registry.register`, чтобы зарегистрировать наш эффект в реестре `STATUS_EFFECT`. Это можно сделать в нашем инициализаторе. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/effect/FabricDocsReferenceEffects.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/effect/FabricDocsReferenceEffects.java) ### Текстура diff --git a/versions/1.21/translated/ru_ru/develop/events.md b/versions/1.21/translated/ru_ru/develop/events.md index 4bb1e7c6a..940325047 100644 --- a/versions/1.21/translated/ru_ru/develop/events.md +++ b/versions/1.21/translated/ru_ru/develop/events.md @@ -41,7 +41,7 @@ API Fabric предоставляет события для важных обл В этом примере регистрируется `AttackBlockCallback` для нанесения урона игроку при столкновении с блоками, из которых не выпадает предмет при ручной добыче. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/event/FabricDocsReferenceEvents.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/event/FabricDocsReferenceEvents.java) ### Добавление предмета к существующим таблицам лута {#adding-items-to-existing-loot-tables} @@ -55,7 +55,7 @@ API Fabric предоставляет события для важных обл В API Fabric есть событие, которое запускается при загрузке таблиц добычи, `LootTableEvents.MODIFY`. Вы можете зарегистрировать обратный вызов для него в инициализаторе мода. Давайте также проверим, что текущая таблица добычи — это таблица добычи угольной руды. -@[code lang=java transclude={38-40}](@/reference/latest/src/main/java/com/example/docs/event/FabricDocsReferenceEvents.java) +@[code lang=java transclude={38-40}](@/reference/1.21/src/main/java/com/example/docs/event/FabricDocsReferenceEvents.java) #### Добавление предметов в таблицу добычи {#adding-items-to-the-loot-table} @@ -65,7 +65,7 @@ API Fabric предоставляет события для важных обл В нашем пуле также нет элементов, поэтому мы создадим запись элемента с помощью `ItemEntry#builder` и добавим ее в пул. -@[code highlight={6-7} transcludeWith=:::2](@/reference/latest/src/main/java/com/example/docs/event/FabricDocsReferenceEvents.java) +@[code highlight={6-7} transcludeWith=:::2](@/reference/1.21/src/main/java/com/example/docs/event/FabricDocsReferenceEvents.java) ## Собственные события {#custom-events} @@ -89,34 +89,34 @@ API Fabric предоставляет события для важных обл Вам необходимо создать интерфейс, имеющий экземпляр «События» и метод для реализации ответа. Базовая настройка обратного вызова для стрижки овец выглядит следующим образом: -@[code lang=java transcludeWith=:::](@/reference/latest/src/main/java/com/example/docs/event/SheepShearCallback.java) +@[code lang=java transcludeWith=:::](@/reference/1.21/src/main/java/com/example/docs/event/SheepShearCallback.java) Давайте рассмотрим это более подробно. При вызове мы перебираем всех слушателей: -@[code lang=java transclude={21-22}](@/reference/latest/src/main/java/com/example/docs/event/SheepShearCallback.java) +@[code lang=java transclude={21-22}](@/reference/1.21/src/main/java/com/example/docs/event/SheepShearCallback.java) Затем мы вызываем наш метод (в данном случае `interact`) для слушателя, чтобы получить его ответ: -@[code lang=java transclude={33-33}](@/reference/latest/src/main/java/com/example/docs/event/SheepShearCallback.java) +@[code lang=java transclude={33-33}](@/reference/1.21/src/main/java/com/example/docs/event/SheepShearCallback.java) Если слушатель сообщает, что нам необходимо отменить (`ActionResult.FAIL`) или завершить (`ActionResult.SUCCESS`), обратный вызов возвращает результат и завершает цикл. `ActionResult.PASS` переходит к следующему слушателю и в большинстве случаев должен завершиться успешно, если больше нет зарегистрированных слушателей: -@[code lang=java transclude={25-30}](@/reference/latest/src/main/java/com/example/docs/event/SheepShearCallback.java) +@[code lang=java transclude={25-30}](@/reference/1.21/src/main/java/com/example/docs/event/SheepShearCallback.java) Мы можем добавить комментарии Javadoc в начало классов обратного вызова, чтобы документировать, что делает каждый `ActionResult`. В нашем случае это может быть: -@[code lang=java transclude={9-16}](@/reference/latest/src/main/java/com/example/docs/event/SheepShearCallback.java) +@[code lang=java transclude={9-16}](@/reference/1.21/src/main/java/com/example/docs/event/SheepShearCallback.java) ### Запуск события из Mixin'а {#triggering-the-event-from-a-mixin} Теперь у нас есть базовый скелет события, но нам нужно его запустить. Поскольку мы хотим, чтобы событие вызывалось, когда игрок пытается постричь овцу, мы вызываем событие `invoker` в `SheepEntity#interactMob`, когда вызывается `sheared()` (т. е. овцу можно стричь, а игрок держит ножницы): -@[code lang=java transcludeWith=:::](@/reference/latest/src/main/java/com/example/docs/mixin/event/SheepEntityMixin.java) +@[code lang=java transcludeWith=:::](@/reference/1.21/src/main/java/com/example/docs/mixin/event/SheepEntityMixin.java) ### Создание тестовой имплементации {#creating-a-test-implementation} Теперь нам нужно протестировать наше событие. Вы можете зарегистрировать слушатель в своем методе инициализации (или в другой области, если вам так удобнее) и добавить туда пользовательскую логику. Вот пример, в котором вместо шерсти к ногам овцы падает алмаз: -@[code lang=java transcludeWith=:::3](@/reference/latest/src/main/java/com/example/docs/event/FabricDocsReferenceEvents.java) +@[code lang=java transcludeWith=:::3](@/reference/1.21/src/main/java/com/example/docs/event/FabricDocsReferenceEvents.java) Если вы зайдете в игру и пострижете овцу, вместо шерсти должен выпасть алмаз. diff --git a/versions/1.21/translated/ru_ru/develop/getting-started/project-structure.md b/versions/1.21/translated/ru_ru/develop/getting-started/project-structure.md index 28198d5d7..d24f0b573 100644 --- a/versions/1.21/translated/ru_ru/develop/getting-started/project-structure.md +++ b/versions/1.21/translated/ru_ru/develop/getting-started/project-structure.md @@ -25,7 +25,7 @@ authors: Ниже вы можете увидеть пример файла `fabric.mod.json`, этот файл `fabric.mod.json` для примерного проекта, лежащего в основе этого сайта документации. :::details Примерный проект `fabric.mod.json` -@[code lang=json](@/reference/latest/src/main/resources/fabric.mod.json) +@[code lang=json](@/reference/1.21/src/main/resources/fabric.mod.json) ::: ## Точки входа {#entrypoints} @@ -34,7 +34,7 @@ authors: Создатель шаблонов создает обе точки входа `main` и `client` по умолчанию, точка входа `main` используется для общего кода, а точка входа `client` используется для клиентоориентированного кода. Эти точки входа вызывается, когда игра запускается. -@[code lang=java transcludeWith=#entrypoint](@/reference/latest/src/main/java/com/example/docs/FabricDocsReference.java) +@[code lang=java transcludeWith=#entrypoint](@/reference/1.21/src/main/java/com/example/docs/FabricDocsReference.java) Выше приведён пример простой точки входа `main`, который записывает сообщение в консоль, когда игра запускается. diff --git a/versions/1.21/translated/ru_ru/develop/index.md b/versions/1.21/translated/ru_ru/develop/index.md index 0ff86810d..64243c4df 100644 --- a/versions/1.21/translated/ru_ru/develop/index.md +++ b/versions/1.21/translated/ru_ru/develop/index.md @@ -9,6 +9,6 @@ description: "Наш подбор руководств для разработч Ознакомьтесь с боковой панелью, где собран полный список доступных руководств. Если вы ищете что-то конкретное, строка поиска в верхней части страницы — ваш лучший помощник. -Готовый мод с исходным кодом, используемым в этой документации, доступен в [папке `/reference` на GitHub](https://github.com/FabricMC/fabric-docs/tree/main/reference/latest). +Готовый мод с исходным кодом, используемым в этой документации, доступен в [папке `/reference` на GitHub](https://github.com/FabricMC/fabric-docs/tree/main/reference/1.21). Если вы хотите внести свой вклад в документацию Fabric, вы можете найти её исходный код на [GitHub](https://github.com/FabricMC/fabric-docs) и ознакомиться с соответствующим [руководством по внесению вклада](../contributing). diff --git a/versions/1.21/translated/ru_ru/develop/items/custom-armor.md b/versions/1.21/translated/ru_ru/develop/items/custom-armor.md index 8527098ff..0d0e20dcc 100644 --- a/versions/1.21/translated/ru_ru/develop/items/custom-armor.md +++ b/versions/1.21/translated/ru_ru/develop/items/custom-armor.md @@ -35,7 +35,7 @@ public void onInitialize() { Внутри класса `ModArmorMaterials` необходимо создать статический метод для регистрации материалов брони. Этот метод должен возвращать запись материала в реестре, которая в дальнейшем будет использована в конструкторе `ArmorItem` для создания предмета брони. -@[code transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/item/armor/ModArmorMaterials.java) +@[code transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/item/armor/ModArmorMaterials.java) ## Свойства материала брони {#armor-material-properties} @@ -85,7 +85,7 @@ public void onInitialize() { Для этого примера мы создадим броню Guidite со следующими свойствами: -@[code transcludeWith=:::2](@/reference/latest/src/main/java/com/example/docs/item/armor/ModArmorMaterials.java) +@[code transcludeWith=:::2](@/reference/1.21/src/main/java/com/example/docs/item/armor/ModArmorMaterials.java) ## Создание предметов брони {#creating-the-armor-items} @@ -103,11 +103,11 @@ public void onInitialize() { Для брони Guidite мы будем использовать общий множитель брони, хранящийся вместе с материалом брони: -@[code transcludeWith=:::3](@/reference/latest/src/main/java/com/example/docs/item/armor/ModArmorMaterials.java) +@[code transcludeWith=:::3](@/reference/1.21/src/main/java/com/example/docs/item/armor/ModArmorMaterials.java) Затем мы можем создать предметы брони, используя константу прочности: -@[code transcludeWith=:::6](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::6](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) Вам также потребуется **добавить предметы в группу предметов**, если вы хотите, чтобы они были доступны из творческого инвентаря. @@ -132,7 +132,7 @@ public void onInitialize() { Вам понадобятся файлы моделей JSON для всех предметов, а не только для шлема, принцип тот же, что и для других моделей предметов. ::: -@[code](@/reference/latest/src/main/resources/assets/fabric-docs-reference/models/item/guidite_helmet.json) +@[code](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/models/item/guidite_helmet.json) Как видите, в игре предметы брони должны иметь подходящие модели: diff --git a/versions/1.21/translated/ru_ru/develop/items/custom-data-components.md b/versions/1.21/translated/ru_ru/develop/items/custom-data-components.md index 62a78c39a..09912982f 100644 --- a/versions/1.21/translated/ru_ru/develop/items/custom-data-components.md +++ b/versions/1.21/translated/ru_ru/develop/items/custom-data-components.md @@ -19,7 +19,7 @@ authors: Выберите подходящий класс для размещения этого кода. В этом примере мы создадим новый пакет с именем `component` и класс, содержащий все типы наших компонентов, с именем `ModComponents`. Убедитесь, что вы вызвали `ModComponents.initialize()` в вашем [инициализаторе мода](./getting-started/project-structure#entrypoints). -@[code transcludeWith=::1](@/reference/latest/src/main/java/com/example/docs/component/ModComponents.java) +@[code transcludeWith=::1](@/reference/1.21/src/main/java/com/example/docs/component/ModComponents.java) Это базовый шаблон для регистрации типа компонента: @@ -43,7 +43,7 @@ public static final ComponentType MY_COMPONENT_TYPE = Registry.register( В качестве примера давайте создадим значение `Integer`, которое будет отслеживать, сколько раз игрок щелкнул правой кнопкой мыши, удерживая наш предмет. Давайте обновим регистрацию нашего компонента следующим образом: -@[code transcludeWith=::2](@/reference/latest/src/main/java/com/example/docs/component/ModComponents.java) +@[code transcludeWith=::2](@/reference/1.21/src/main/java/com/example/docs/component/ModComponents.java) Вы можете видеть, что теперь мы передаем `` в качестве нашего универсального типа, указывая, что этот компонент будет сохранен как одно значение `int`. В качестве нашего кодека мы используем предоставленный кодек `Codec.INT`. Для таких простых компонентов, как этот, можно обойтись использованием базовых кодеков, но для более сложных сценариев может потребоваться специальный кодек (об этом мы кратко поговорим позже). @@ -57,7 +57,7 @@ public static final ComponentType MY_COMPONENT_TYPE = Registry.register( Давайте добавим новый элемент, который будет увеличивать счетчик каждый раз, когда по нему щелкают правой кнопкой мыши. Вам следует прочитать страницу [Взаимодействие с пользовательскими элементами](./custom-item-interactions), где описаны методы, которые мы будем использовать в этом руководстве. -@[code transcludeWith=::1](@/reference/latest/src/main/java/com/example/docs/item/custom/CounterItem.java) +@[code transcludeWith=::1](@/reference/1.21/src/main/java/com/example/docs/item/custom/CounterItem.java) Не забудьте, как обычно, зарегистрировать элемент в классе `ModItems`. @@ -117,7 +117,7 @@ As expected, since the `ItemStack` doesn't currently contain an instance of our Когда вы регистрируете свой элемент и передаете объект `Item.Settings` в конструктор элемента, вы также можете предоставить список компонентов по умолчанию, которые применяются ко всем новым элементам. Если вернуться к нашему классу `ModItems`, где мы регистрируем `CounterItem`, мы можем добавить значение по умолчанию для нашего пользовательского компонента. Добавьте это, чтобы для новых элементов отображалось количество «0». -@[code transcludeWith=::_13](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=::_13](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) При создании нового элемента он автоматически применит наш пользовательский компонент с заданным значением. @@ -147,7 +147,7 @@ boolean exists = stack.contains(ModComponents.CLICK_COUNT_COMPONENT); Мы выберем третий вариант. Поэтому наряду с добавлением значения компонента по умолчанию мы также проверим, присутствует ли компонент в стеке, и покажем подсказку только в том случае, если это так. -@[code transcludeWith=::3](@/reference/latest/src/main/java/com/example/docs/item/custom/CounterItem.java) +@[code transcludeWith=::3](@/reference/1.21/src/main/java/com/example/docs/item/custom/CounterItem.java) Запустите игру снова и наведите курсор на предмет без компонента. Вы должны увидеть надпись «Использовано 0 раз», и игра больше не будет вылетать. @@ -179,7 +179,7 @@ int oldValue = stack.set(ModComponents.CLICK_COUNT_COMPONENT, newValue); Давайте настроим новый метод `use()` для считывания старого количества кликов, увеличения его на единицу, а затем установки обновленного количества кликов. -@[code transcludeWith=::2](@/reference/latest/src/main/java/com/example/docs/item/custom/CounterItem.java) +@[code transcludeWith=::2](@/reference/1.21/src/main/java/com/example/docs/item/custom/CounterItem.java) Теперь попробуйте запустить игру и щелкнуть правой кнопкой мыши, держа в руке предмет Counter. Если вы откроете свой инвентарь и снова посмотрите на предмет, вы увидите, что показатель использования увеличился пропорционально количеству кликов по нему. @@ -212,11 +212,11 @@ public record MyCustomComponent() { Обратите внимание, что после имени класса стоят скобки. Здесь мы определяем список свойств, которые должен иметь наш компонент. Давайте добавим число с плавающей точкой и логическое значение с именами `температура` и `сожженный` соответственно. -@[code transcludeWith=::1](@/reference/latest/src/main/java/com/example/docs/component/MyCustomComponent.java) +@[code transcludeWith=::1](@/reference/1.21/src/main/java/com/example/docs/component/MyCustomComponent.java) Поскольку мы определяем пользовательскую структуру данных, для нашего варианта использования не будет готового `Кодека`, как в случае с [базовым компонентом](#basic-data-components). Это значит, что нам придется создать собственный кодек. Давайте определим его в нашем классе записи, используя `RecordCodecBuilder`, на который мы сможем ссылаться после регистрации компонента. Более подробную информацию об использовании `RecordCodecBuilder` можно найти в [этом разделе страницы Кодеки](../codecs#merging-codecs-for-record-like-classes). -@[code transcludeWith=::2](@/reference/latest/src/main/java/com/example/docs/component/MyCustomComponent.java) +@[code transcludeWith=::2](@/reference/1.21/src/main/java/com/example/docs/component/MyCustomComponent.java) Вы можете видеть, что мы определяем список пользовательских полей на основе примитивных типов `Codec`. Однако мы также сообщаем ей, как называются наши поля, используя `fieldOf()`, а затем используем `forGetter()`, чтобы сообщить игре, какой атрибут нашей записи следует заполнить. @@ -226,7 +226,7 @@ public record MyCustomComponent() { Регистрация составного компонента аналогична предыдущей. Мы просто передаем наш класс записи как универсальный тип, а наш пользовательский `Codec` — в метод `codec()`. -@[code transcludeWith=::3](@/reference/latest/src/main/java/com/example/docs/component/ModComponents.java) +@[code transcludeWith=::3](@/reference/1.21/src/main/java/com/example/docs/component/ModComponents.java) Теперь начинайте игру. Попробуйте применить компонент с помощью команды `/give`. Значения составных компонентов передаются как объект, заключенный в `{}`. Если вы поставите пустые фигурные скобки, вы увидите сообщение об ошибке, сообщающее, что требуемый ключ `temperature` отсутствует. diff --git a/versions/1.21/translated/ru_ru/develop/items/custom-item-groups.md b/versions/1.21/translated/ru_ru/develop/items/custom-item-groups.md index b3deb2683..0f898a132 100644 --- a/versions/1.21/translated/ru_ru/develop/items/custom-item-groups.md +++ b/versions/1.21/translated/ru_ru/develop/items/custom-item-groups.md @@ -13,9 +13,9 @@ authors: Процесс создания необычайно прост. Просто создайте в классе с вашими предметами новое статическое неизменяемое поле для хранения новой вкладки предметов и ключа реестра для неё. После этого можно использовать событие вкладки с предметами как при добавлении предметов в ванильную вкладку с предметами: -@[code transcludeWith=:::9](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::9](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) -@[code transcludeWith=:::_12](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::_12](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java)
diff --git a/versions/1.21/translated/ru_ru/develop/items/custom-item-interactions.md b/versions/1.21/translated/ru_ru/develop/items/custom-item-interactions.md index 09441a996..4ddeeb327 100644 --- a/versions/1.21/translated/ru_ru/develop/items/custom-item-interactions.md +++ b/versions/1.21/translated/ru_ru/develop/items/custom-item-interactions.md @@ -58,11 +58,11 @@ TypedActionResult.success(heldStack); Допустим, что вы хотите сделать предмет, который вызывает молнию перед игроком, вам нужно будет создать отдельный класс. -@[code transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/item/custom/LightningStick.java) +@[code transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/item/custom/LightningStick.java) Событие `use`, вероятно, самое полезное из всех, вы можете использовать это событие, чтобы призвать молнию, вы должны создать её перед игроками в 10 блоков от направления. -@[code transcludeWith=:::2](@/reference/latest/src/main/java/com/example/docs/item/custom/LightningStick.java) +@[code transcludeWith=:::2](@/reference/1.21/src/main/java/com/example/docs/item/custom/LightningStick.java) Как обычно, вам необходимо зарегистрировать свой предмет, добавьте модель и текстуру. diff --git a/versions/1.21/translated/ru_ru/develop/items/custom-tools.md b/versions/1.21/translated/ru_ru/develop/items/custom-tools.md index 8cad77537..7d91b299b 100644 --- a/versions/1.21/translated/ru_ru/develop/items/custom-tools.md +++ b/versions/1.21/translated/ru_ru/develop/items/custom-tools.md @@ -19,7 +19,7 @@ If you're creating multiple tool materials, consider using an `Enum` to store th "Вы можете создать материал для инструмента, создав новый класс, который его наследует — в этом примере я буду создавать инструменты «Guidite»: -@[code transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) +@[code transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) Материал инструмента сообщает игре следующую информацию: @@ -29,7 +29,7 @@ If you're creating multiple tool materials, consider using an `Enum` to store th **Пример** - @[code transcludeWith=:::2](@/reference/latest/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) + @[code transcludeWith=:::2](@/reference/1.21/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) - ### Скорость добычи - `getMiningSpeedMultiplier()` {#mining-speed} @@ -39,7 +39,7 @@ If you're creating multiple tool materials, consider using an `Enum` to store th **Пример** - @[code transcludeWith=:::3](@/reference/latest/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) + @[code transcludeWith=:::3](@/reference/1.21/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) - ### Урон от атаки - `getAttackDamage()` {#attack-damage} @@ -47,7 +47,7 @@ If you're creating multiple tool materials, consider using an `Enum` to store th **Пример** - @[code transcludeWith=:::4](@/reference/latest/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) + @[code transcludeWith=:::4](@/reference/1.21/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) - ### Обратный тег - `getMiningLevel()` {#inverse-tag} @@ -69,7 +69,7 @@ If you're creating multiple tool materials, consider using an `Enum` to store th Мы воспользуемся тегом железного инструмента. Это не позволяет инструментам Guidite добывать блоки, для которых требуется инструмент прочнее железа. - @[code transcludeWith=:::5](@/reference/latest/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) + @[code transcludeWith=:::5](@/reference/1.21/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) Если вы хотите использовать пользовательский тег, вы можете использовать `TagKey.of(...)` для создания пользовательского ключа тега. @@ -79,7 +79,7 @@ If you're creating multiple tool materials, consider using an `Enum` to store th **Пример** - @[code transcludeWith=:::6](@/reference/latest/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) + @[code transcludeWith=:::6](@/reference/1.21/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) - ### Ингредиент(ы) для восстановления - `getRepairIngredient()` {#repair-ingredient} @@ -87,27 +87,27 @@ If you're creating multiple tool materials, consider using an `Enum` to store th **Пример** - @[code transcludeWith=:::7](@/reference/latest/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) + @[code transcludeWith=:::7](@/reference/1.21/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) После того как вы создали материал для инструмента и настроили его по своему вкусу, вы можете создать его экземпляр для использования в конструкторах предметов инструмента. -@[code transcludeWith=:::8](@/reference/latest/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) +@[code transcludeWith=:::8](@/reference/1.21/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) ## Создание инструментов {#creating-tool-items} Используя ту же вспомогательную функцию, что и в руководстве [Создание вашего первого элемента](./first-item), вы можете создавать свои инструменты: -@[code transcludeWith=:::7](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::7](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) Не забудьте добавить их в группу предметов, если вы хотите получить к ним доступ из творческого инвентаря! -@[code transcludeWith=:::8](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::8](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) Вам также придется добавить текстуру, перевод предмета и модель предмета. Однако для модели элемента вам следует использовать модель `item/handheld` в качестве родительской. В этом примере я буду использовать следующую модель и текстуру для предмета «Меч Guidite»: -@[code](@/reference/latest/src/main/resources/assets/fabric-docs-reference/models/item/guidite_sword.json) +@[code](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/models/item/guidite_sword.json) diff --git a/versions/1.21/translated/ru_ru/develop/items/first-item.md b/versions/1.21/translated/ru_ru/develop/items/first-item.md index 29d98f06e..7053a0008 100644 --- a/versions/1.21/translated/ru_ru/develop/items/first-item.md +++ b/versions/1.21/translated/ru_ru/develop/items/first-item.md @@ -22,7 +22,7 @@ authors: Mojang уже сделали это со своими предметами! Загляните в класс `Items` для вдохновения. -@[code transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) ## Регистрация предмета{#registering-an-item} @@ -36,15 +36,15 @@ If you want to change your item's stack size, you can use the `maxCount` method Это не сработает, если вы пометили предмет как повреждаемый, потому что размер для повреждаемых предметов всегда равен 1, для предотвращения эксплойтов дублирования. ::: -@[code transcludeWith=:::2](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::2](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) Однако, когда вы перейдете в игру, то увидите, что нашего предмета не существует! Это потому что вы инициализировали класс не статически. Для этого вы можете добавить в свой класс публичный статический метод инициализации и вызывать его из класса `ModInitializer`. В настоящее время этот метод не принимает никаких аргументов. -@[code transcludeWith=:::3](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::3](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) -@[code transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/item/FabricDocsReferenceItems.java) +@[code transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/item/FabricDocsReferenceItems.java) Вызов метода класса статически инициализирует его, если он не был ранее загружен — это означает, что оцениваются все `статические` поля. Вот для чего нужен этот фиктивный метод `initialize`. @@ -58,7 +58,7 @@ If you want to change your item's stack size, you can use the `maxCount` method Это может быть сделано в методе `initialize` вашего класса. -@[code transcludeWith=:::4](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::4](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) Запустив игру, вы можете увидеть, что наш предмет зарегистрирован и находится в категории предметов "ингредиенты": @@ -98,7 +98,7 @@ If you want to change your item's stack size, you can use the `maxCount` method Создайте модель JSON в папке `assets//models/item` с тем же именем, что и у элемента; `suspicious_substance.json` -@[code](@/reference/latest/src/main/resources/assets/fabric-docs-reference/models/item/suspicious_substance.json) +@[code](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/models/item/suspicious_substance.json) ### Разбор модели JSON {#breaking-down-the-model-json} @@ -119,11 +119,11 @@ API Fabric предоставляет различные реестры, кот Например, если вы хотите сделать свой предмет компостируемым, то вы можете использовать `CompostableItemRegistry`: -@[code transcludeWith=:::_10](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::_10](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) Также если вы хотите сделать ваш предмет топливом, вы можете использовать класс `FuelRegistry`: -@[code transcludeWith=:::_11](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::_11](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) ## Добавление рецепта создания {#adding-a-basic-crafting-recipe} @@ -144,7 +144,7 @@ API Fabric предоставляет различные реестры, кот В этом примере используется класс `LightningStick`, созданный на странице [Взаимодействия пользовательских элементов](./custom-item-interactions). ::: -@[code lang=java transcludeWith=:::3](@/reference/latest/src/main/java/com/example/docs/item/custom/LightningStick.java) +@[code lang=java transcludeWith=:::3](@/reference/1.21/src/main/java/com/example/docs/item/custom/LightningStick.java) Каждый вызов `add()` добавляет одну строку в подсказку. diff --git a/versions/1.21/translated/ru_ru/develop/items/food.md b/versions/1.21/translated/ru_ru/develop/items/food.md index 51987d437..b9343a4bf 100644 --- a/versions/1.21/translated/ru_ru/develop/items/food.md +++ b/versions/1.21/translated/ru_ru/develop/items/food.md @@ -37,11 +37,11 @@ new Item.Settings().food(new FoodComponent.Builder().build()) После того как вы изменили конструктор по своему вкусу, вы можете вызвать метод `build()`, чтобы получить `FoodComponent`. -@[code transcludeWith=:::5](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::5](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) Подобно примеру на странице [Создание вашего первого элемента](./first-item), я буду использовать указанный выше компонент: -@[code transcludeWith=:::poisonous_apple](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::poisonous_apple](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) Это делает предмет: diff --git a/versions/1.21/translated/ru_ru/develop/items/potions.md b/versions/1.21/translated/ru_ru/develop/items/potions.md index c1f3487ef..7b8c6db73 100644 --- a/versions/1.21/translated/ru_ru/develop/items/potions.md +++ b/versions/1.21/translated/ru_ru/develop/items/potions.md @@ -20,7 +20,7 @@ authors: Начнем с объявления поля для хранения вашего экземпляра `Potion`. Мы будем напрямую использовать класс инициализатора для хранения этого. -@[code lang=java transclude={18-27}](@/reference/latest/src/main/java/com/example/docs/potion/FabricDocsReferencePotions.java) +@[code lang=java transclude={18-27}](@/reference/1.21/src/main/java/com/example/docs/potion/FabricDocsReferencePotions.java) Мы передаем экземпляр `StatusEffectInstance`, который принимает 3 параметра: @@ -37,7 +37,7 @@ authors: В нашем инициализаторе мы будем использовать событие `FabricBrewingRecipeRegistryBuilder.BUILD` для регистрации нашего зелья с помощью метода `BrewingRecipeRegistry.registerPotionRecipe`. -@[code lang=java transclude={29-42}](@/reference/latest/src/main/java/com/example/docs/potion/FabricDocsReferencePotions.java) +@[code lang=java transclude={29-42}](@/reference/1.21/src/main/java/com/example/docs/potion/FabricDocsReferencePotions.java) `registerPotionRecipe` принимает 3 параметра: diff --git a/versions/1.21/translated/ru_ru/develop/rendering/basic-concepts.md b/versions/1.21/translated/ru_ru/develop/rendering/basic-concepts.md index 127d8ad56..4a51d5419 100644 --- a/versions/1.21/translated/ru_ru/develop/rendering/basic-concepts.md +++ b/versions/1.21/translated/ru_ru/develop/rendering/basic-concepts.md @@ -111,7 +111,7 @@ drawContext.getMatrices().peek().getPositionMatrix(); Поскольку в этом примере мы рисуем на HUD, мы будем использовать событие `HudRenderCallback`: -@[code lang=java transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/rendering/RenderingConceptsEntrypoint.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/rendering/RenderingConceptsEntrypoint.java) В результате на HUD отображается следующее: @@ -143,7 +143,7 @@ You must first push the matrix stack and then pop it after you're done with it. Обязательно выдвиньте стек матриц, прежде чем получить матрицу преобразования! ::: -@[code lang=java transcludeWith=:::2](@/reference/latest/src/client/java/com/example/docs/rendering/RenderingConceptsEntrypoint.java) +@[code lang=java transcludeWith=:::2](@/reference/1.21/src/client/java/com/example/docs/rendering/RenderingConceptsEntrypoint.java) ![Видео, демонстрирующее увеличение и уменьшение размера алмаза](/assets/develop/rendering/concepts-matrix-stack.webp) @@ -155,7 +155,7 @@ You must first push the matrix stack and then pop it after you're done with it. Допустим, мы хотим повернуть наш алмаз вокруг оси z. Мы можем сделать это с помощью `MatrixStack` и метода `multiply(Quaternion, x, y, z)`. -@[code lang=java transcludeWith=:::3](@/reference/latest/src/client/java/com/example/docs/rendering/RenderingConceptsEntrypoint.java) +@[code lang=java transcludeWith=:::3](@/reference/1.21/src/client/java/com/example/docs/rendering/RenderingConceptsEntrypoint.java) Результатом этого является следующее: diff --git a/versions/1.21/translated/ru_ru/develop/rendering/draw-context.md b/versions/1.21/translated/ru_ru/develop/rendering/draw-context.md index 78e8a070b..1e1f8de48 100644 --- a/versions/1.21/translated/ru_ru/develop/rendering/draw-context.md +++ b/versions/1.21/translated/ru_ru/develop/rendering/draw-context.md @@ -19,7 +19,7 @@ authors: Для рисования закрашенного прямоугольника можно использовать метод `DrawContext.fill(...)`. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) ![Прямоугольник](/assets/develop/rendering/draw-context-rectangle.png) @@ -27,7 +27,7 @@ authors: Допустим, мы хотим обвести только что нарисованный прямоугольник. Мы можем использовать метод `DrawContext.drawBorder(...)`, чтобы нарисовать контур. -@[code lang=java transcludeWith=:::2](@/reference/latest/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) +@[code lang=java transcludeWith=:::2](@/reference/1.21/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) ![Прямоугольник с рамкой](/assets/develop/rendering/draw-context-rectangle-border.png) @@ -35,7 +35,7 @@ authors: Для рисования линий мы можем использовать методы `DrawContext.drawHorizontalLine(...)` и `DrawContext.drawVerticalLine(...)`. -@[code lang=java transcludeWith=:::3](@/reference/latest/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) +@[code lang=java transcludeWith=:::3](@/reference/1.21/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) ![Линии](/assets/develop/rendering/draw-context-lines.png) @@ -51,7 +51,7 @@ authors: Чтобы включить менеджер ножниц, просто используйте метод `DrawContext.enableScissor(...)`. Аналогично, чтобы отключить менеджер ножниц, используйте метод `DrawContext.disableScissor()`. -@[code lang=java transcludeWith=:::4](@/reference/latest/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) +@[code lang=java transcludeWith=:::4](@/reference/1.21/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) ![Регион ножниц в действии](/assets/develop/rendering/draw-context-scissor.png) @@ -65,7 +65,7 @@ authors: Обычно рекомендуется использовать перегрузку, которая задает параметры `textureWidth` и `textureHeight`. Это связано с тем, что класс `DrawContext` примет эти значения, если вы их не предоставите, что иногда может быть неверным. -@[code lang=java transcludeWith=:::5](@/reference/latest/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) +@[code lang=java transcludeWith=:::5](@/reference/1.21/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) ![Пример рисования всей текстуры](/assets/develop/rendering/draw-context-whole-texture.png) @@ -79,7 +79,7 @@ authors: Если мы хотим нарисовать только область, содержащую увеличительное стекло, мы можем использовать следующие значения `u`, `v`, `regionWidth` и `regionHeight`: -@[code lang=java transcludeWith=:::6](@/reference/latest/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) +@[code lang=java transcludeWith=:::6](@/reference/1.21/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) ![Текстура области](/assets/develop/rendering/draw-context-region-texture.png) @@ -89,6 +89,6 @@ authors: Допустим, мы хотим нарисовать на экране «Hello World». Для этого мы можем использовать метод `DrawContext.drawText(...)`. -@[code lang=java transcludeWith=:::7](@/reference/latest/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) +@[code lang=java transcludeWith=:::7](@/reference/1.21/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) ![Рисование текста](/assets/develop/rendering/draw-context-text.png) diff --git a/versions/1.21/translated/ru_ru/develop/rendering/gui/custom-screens.md b/versions/1.21/translated/ru_ru/develop/rendering/gui/custom-screens.md index 5ae2a3188..e19bd6ac4 100644 --- a/versions/1.21/translated/ru_ru/develop/rendering/gui/custom-screens.md +++ b/versions/1.21/translated/ru_ru/develop/rendering/gui/custom-screens.md @@ -28,7 +28,7 @@ authors: В качестве примера мы можем создать простой экран с кнопкой и меткой над ней. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/rendering/screens/CustomScreen.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/rendering/screens/CustomScreen.java) ![Пользовательский экран 1](/assets/develop/rendering/gui/custom-1-example.png) @@ -52,7 +52,7 @@ MinecraftClient.getInstance().setScreen(null); Если вы хотите проявить изюминку и вернуться к предыдущему экрану, вы можете передать текущий экран в конструктор `CustomScreen` и сохранить его в поле, а затем использовать его для возврата к предыдущему экрану при вызове метода `close`. -@[code lang=java transcludeWith=:::2](@/reference/latest/src/client/java/com/example/docs/rendering/screens/CustomScreen.java) +@[code lang=java transcludeWith=:::2](@/reference/1.21/src/client/java/com/example/docs/rendering/screens/CustomScreen.java) Теперь при открытии пользовательского экрана вы можете передать текущий экран в качестве второго аргумента — тогда при вызове `CustomScreen#close` произойдет возврат к предыдущему экрану. diff --git a/versions/1.21/translated/ru_ru/develop/rendering/gui/custom-widgets.md b/versions/1.21/translated/ru_ru/develop/rendering/gui/custom-widgets.md index 7538247bb..9c0a69440 100644 --- a/versions/1.21/translated/ru_ru/develop/rendering/gui/custom-widgets.md +++ b/versions/1.21/translated/ru_ru/develop/rendering/gui/custom-widgets.md @@ -18,13 +18,13 @@ authors: - `Narratable` — для доступности — требуется, чтобы сделать ваш виджет доступным для программ чтения с экрана и других инструментов обеспечения доступности. - `Selectable` — для выбора — требуется, если вы хотите сделать виджет доступным для выбора с помощью клавиши Tab - это также способствует повышению доступности. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/rendering/screens/CustomWidget.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/rendering/screens/CustomWidget.java) ## Добавление виджета на экран {#adding-the-widget-to-the-screen} Как и все виджеты, его необходимо добавить на экран с помощью метода `addDrawableChild`, который предоставляется классом `Screen`. Обязательно сделайте это в методе `init`. -@[code lang=java transcludeWith=:::3](@/reference/latest/src/client/java/com/example/docs/rendering/screens/CustomScreen.java) +@[code lang=java transcludeWith=:::3](@/reference/1.21/src/client/java/com/example/docs/rendering/screens/CustomScreen.java) ![Пользовательский виджет на экране](/assets/develop/rendering/gui/custom-widget-example.png) @@ -34,6 +34,6 @@ authors: Например, вы можете заставить виджет менять цвет при наведении на него курсора, используя метод `isHovered()`, предоставляемый классом `ClickableWidget`: -@[code lang=java transcludeWith=:::2](@/reference/latest/src/client/java/com/example/docs/rendering/screens/CustomWidget.java) +@[code lang=java transcludeWith=:::2](@/reference/1.21/src/client/java/com/example/docs/rendering/screens/CustomWidget.java) ![Пример события наведения](/assets/develop/rendering/gui/custom-widget-events.webp) diff --git a/versions/1.21/translated/ru_ru/develop/rendering/hud.md b/versions/1.21/translated/ru_ru/develop/rendering/hud.md index 85d747887..7073c83ab 100644 --- a/versions/1.21/translated/ru_ru/develop/rendering/hud.md +++ b/versions/1.21/translated/ru_ru/develop/rendering/hud.md @@ -25,6 +25,6 @@ authors: Например, предположим, что вы хотите изменять цвет с течением времени. Вы можете использовать `deltaTickManager`, чтобы получить deltaTick, и сохранять его с течением времени для преобразования цвета: -@[code lang=java transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/rendering/HudRenderingEntrypoint.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/rendering/HudRenderingEntrypoint.java) ![Изменение цвета с течением времени](/assets/develop/rendering/hud-rendering-deltatick.webp) diff --git a/versions/1.21/translated/ru_ru/develop/rendering/particles/creating-particles.md b/versions/1.21/translated/ru_ru/develop/rendering/particles/creating-particles.md index 91c41b252..1b6115ce4 100644 --- a/versions/1.21/translated/ru_ru/develop/rendering/particles/creating-particles.md +++ b/versions/1.21/translated/ru_ru/develop/rendering/particles/creating-particles.md @@ -15,7 +15,7 @@ authors: Сначала нам нужно зарегистрировать `ParticleType` в классе инициализатора вашего мода, используя идентификатор вашего мода. -@[code lang=java transcludeWith=#particle_register_main](@/reference/latest/src/main/java/com/example/docs/FabricDocsReference.java) +@[code lang=java transcludeWith=#particle_register_main](@/reference/1.21/src/main/java/com/example/docs/FabricDocsReference.java) «sparkle_particle» строчными буквами — это путь JSON к текстуре частицы. Позже вы создадите новый JSON-файл с таким же именем. @@ -23,7 +23,7 @@ authors: После регистрации частицы в точке входа `ModInitializer` вам также необходимо зарегистрировать частицу в точке входа `ClientModInitializer`. -@[code lang=java transcludeWith=#particle_register_client](@/reference/latest/src/client/java/com/example/docs/FabricDocsReferenceClient.java) +@[code lang=java transcludeWith=#particle_register_client](@/reference/1.21/src/client/java/com/example/docs/FabricDocsReferenceClient.java) В этом примере мы регистрируем нашу частицу на стороне клиента. Затем мы придаем частице некоторое движение, используя фабрику частиц конечного стержня. Это означает, что наша частица будет двигаться точно так же, как частица конечного стержня. @@ -47,7 +47,7 @@ You can see all the particle factories by looking at all the implementations of Затем создайте новый JSON-файл в `particles` с тем же именем, что и путь JSON, который вы использовали при регистрации ParticleType. Для этого примера нам потребуется создать `sparkle_particle.json`. Этот файл важен, поскольку он сообщает Minecraft, какие текстуры должна использовать наша частица. -@[code lang=json](@/reference/latest/src/main/resources/assets/fabric-docs-reference/particles/sparkle_particle.json) +@[code lang=json](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/particles/sparkle_particle.json) :::tip Вы можете добавить больше текстур в массив `textures`, чтобы создать анимацию частиц. Частица будет циклически проходить по текстурам в массиве, начиная с первой текстуры. diff --git a/versions/1.21/translated/ru_ru/develop/sounds/custom.md b/versions/1.21/translated/ru_ru/develop/sounds/custom.md index 13f50862d..aef1f0b1b 100644 --- a/versions/1.21/translated/ru_ru/develop/sounds/custom.md +++ b/versions/1.21/translated/ru_ru/develop/sounds/custom.md @@ -33,7 +33,7 @@ authors: Дальше создайте файл `resources/assets//sounds.json`, если он не существует и добавьте ваш звук в звуковые записи. -@[code lang=json](@/reference/latest/src/main/resources/assets/fabric-docs-reference/sounds.json) +@[code lang=json](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/sounds.json) Запись подписи предоставляет больше контекста для игрока. Название подписи используется в языковых файлах в директории `resources/assets//lang` и будет показываться, если включена настройка и звук воспроизводиться. @@ -52,11 +52,11 @@ Registry.register(Registries.SOUND_EVENT, Identifier.of(MOD_ID, "metal_whistle") Добавьте два новых метода для ранее созданного класса помощника. Первый регистрирует все звуки и используется для инициализации этого класса на первом месте. После этого вы можете добавить в новый статический класс `SoundEvent` нужные переменные. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/sound/CustomSounds.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/sound/CustomSounds.java) `ModInitializer` имплементируют точки входа которые нужны классу, чтобы имплементировать весь реестр с собственными SoundEvents. -@[code lang=java transcludeWith=:::2](@/reference/latest/src/main/java/com/example/docs/sound/FabricDocsReferenceSounds.java) +@[code lang=java transcludeWith=:::2](@/reference/1.21/src/main/java/com/example/docs/sound/FabricDocsReferenceSounds.java) ## Используйте собственные SoundEvent'ы {#using-the-custom-soundevent} diff --git a/versions/1.21/translated/ru_ru/develop/sounds/using-sounds.md b/versions/1.21/translated/ru_ru/develop/sounds/using-sounds.md index 99c237b6e..f04a50b5c 100644 --- a/versions/1.21/translated/ru_ru/develop/sounds/using-sounds.md +++ b/versions/1.21/translated/ru_ru/develop/sounds/using-sounds.md @@ -15,11 +15,11 @@ Minecraft имеет большой выбор звуков которые вы Например, методы `useOnEntity()` и `useOnBlock()` для собственного интерактивного предмета используются для воспроизведения "поставлен медный блок" и звук мародёра. -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/item/custom/CustomSoundItem.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/item/custom/CustomSoundItem.java) Метод`playSound()` используется вместе с объектом `LivingEntity`. Необходимо указать только SoundEvent, громкость и высоту тона. Вы также можете использовать метод `playSound()` из экземпляра мира, чтобы получить более высокий уровень контроля. -@[code lang=java transcludeWith=:::2](@/reference/latest/src/main/java/com/example/docs/item/custom/CustomSoundItem.java) +@[code lang=java transcludeWith=:::2](@/reference/1.21/src/main/java/com/example/docs/item/custom/CustomSoundItem.java) ### SoundEvent и SoundCategory {#soundevent-and-soundcategory} diff --git a/versions/1.21/translated/ru_ru/develop/text-and-translations.md b/versions/1.21/translated/ru_ru/develop/text-and-translations.md index 177586cc0..44ccaa236 100644 --- a/versions/1.21/translated/ru_ru/develop/text-and-translations.md +++ b/versions/1.21/translated/ru_ru/develop/text-and-translations.md @@ -58,7 +58,7 @@ MutableText mutable = Text.translatable("my_mod.text.bye"); Как было упомянуто выше, вы можете сериализовать текст в JSON используя текстовый кодек. Для большей информации об кодеках, посмотрите страницу [Codec](./codecs). -@[code transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/rendering/TextTests.java) +@[code transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/rendering/TextTests.java) В результате получается JSON, который можно использовать в датапаках, командах и других местах которые принимают JSON формат текста вместо буквального или переводимого текста. @@ -66,7 +66,7 @@ MutableText mutable = Text.translatable("my_mod.text.bye"); Кроме того, чтобы десериализовать текстовый объект в реальный класс `Text`, опять же, используйте кодек. -@[code transcludeWith=:::2](@/reference/latest/src/client/java/com/example/docs/rendering/TextTests.java) +@[code transcludeWith=:::2](@/reference/1.21/src/client/java/com/example/docs/rendering/TextTests.java) ## Форматирование Текста {#formatting-text} diff --git a/versions/1.21/translated/uk_ua/contributing.md b/versions/1.21/translated/uk_ua/contributing.md index ac69094a9..8eb4dce3c 100644 --- a/versions/1.21/translated/uk_ua/contributing.md +++ b/versions/1.21/translated/uk_ua/contributing.md @@ -188,10 +188,10 @@ authors: ::: code-group ```md -<<< @/reference/latest/src/main/java/com/example/docs/FabricDocsReference.java{15-21} +<<< @/reference/1.21/src/main/java/com/example/docs/FabricDocsReference.java{15-21} ``` -<<< @/reference/latest/src/main/java/com/example/docs/FabricDocsReference.java{15-21}[java] +<<< @/reference/1.21/src/main/java/com/example/docs/FabricDocsReference.java{15-21}[java] ::: @@ -202,10 +202,10 @@ authors: ::: code-group ```md -@[code transcludeWith=#entrypoint](@/reference/latest/src/main/java/com/example/docs/FabricDocsReference.java) +@[code transcludeWith=#entrypoint](@/reference/1.21/src/main/java/com/example/docs/FabricDocsReference.java) ``` -@[code transcludeWith=#entrypoint](@/reference/latest/src/main/java/com/example/docs/FabricDocsReference.java) +@[code transcludeWith=#entrypoint](@/reference/1.21/src/main/java/com/example/docs/FabricDocsReference.java) ::: diff --git a/versions/1.21/translated/uk_ua/develop/blocks/block-entities.md b/versions/1.21/translated/uk_ua/develop/blocks/block-entities.md index bcce869af..bd970045b 100644 --- a/versions/1.21/translated/uk_ua/develop/blocks/block-entities.md +++ b/versions/1.21/translated/uk_ua/develop/blocks/block-entities.md @@ -16,11 +16,11 @@ Minecraft використовує блоки-сутності для блокі Щоб змусити Minecraft розпізнавати та завантажувати нові блоки-сутності, нам потрібно створити тип блоку-сутності Це робиться шляхом розширення класу `BlockEntity` і реєстрації його в новому класі `ModBlockEntities`. -@[code transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/block/entity/custom/CounterBlockEntity.java) +@[code transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/block/entity/custom/CounterBlockEntity.java) Реєстрація `BlockEntity` дає `BlockEntityType`, подібний до `COUNTER_BLOCK_ENTITY`, який ми використовували вище: -@[code transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/block/entity/ModBlockEntities.java) +@[code transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/block/entity/ModBlockEntities.java) :::tip Зверніть увагу, що конструктор `CounterBlockEntity` приймає два параметри, а конструктор `BlockEntity` приймає три: `BlockEntityType`, `BlockPos` і `BlockState`. @@ -40,7 +40,7 @@ Minecraft використовує блоки-сутності для блокі У цьому прикладі ми використаємо перший підхід, оскільки `BlockWithEntity` також надає кілька крутих штук. ::: -@[code transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/block/custom/CounterBlock.java) +@[code transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/block/custom/CounterBlock.java) Використання `BlockWithEntity` як батьківського класу означає, що нам також потрібно реалізувати метод `createCodec`, який досить простий. @@ -48,19 +48,19 @@ Minecraft використовує блоки-сутності для блокі Не забудьте зареєструвати блок у класі `ModBlocks`, як у посібнику [Створення вашого першого блоку](../blocks/first-block): -@[code transcludeWith=:::5](@/reference/latest/src/main/java/com/example/docs/block/ModBlocks.java) +@[code transcludeWith=:::5](@/reference/1.21/src/main/java/com/example/docs/block/ModBlocks.java) ## Використання блоку-сутності {#using-the-block-entity} Тепер, коли у нас є блок-сутність, ми можемо використовувати його для збереження кількості натискань ПКМ по блоку. Ми зробимо це, додавши поле `clicks` до класу `CounterBlockEntity`: -@[code transcludeWith=:::2](@/reference/latest/src/main/java/com/example/docs/block/entity/custom/CounterBlockEntity.java) +@[code transcludeWith=:::2](@/reference/1.21/src/main/java/com/example/docs/block/entity/custom/CounterBlockEntity.java) Метод `markDirty`, який використовується в `incrementClicks`, повідомляє грі, що дані цієї сутності було оновлено; це буде корисно, коли ми додамо методи серіалізації лічильника та завантаження його назад із файлу збереження. Далі нам потрібно збільшувати це поле кожного разу, коли по блоку натискають ПКМ. Це робиться шляхом перевизначення методу `onUse` в класі `CounterBlock`: -@[code transcludeWith=:::2](@/reference/latest/src/main/java/com/example/docs/block/custom/CounterBlock.java) +@[code transcludeWith=:::2](@/reference/1.21/src/main/java/com/example/docs/block/custom/CounterBlock.java) Оскільки `BlockEntity` не передається в метод, ми використовуємо `world.getBlockEntity(pos)`, і якщо `BlockEntity` недійсний, повертаємося з методу. @@ -72,13 +72,13 @@ Minecraft використовує блоки-сутності для блокі Серіалізація виконується за допомогою методу `writeNbt`: -@[code transcludeWith=:::3](@/reference/latest/src/main/java/com/example/docs/block/entity/custom/CounterBlockEntity.java) +@[code transcludeWith=:::3](@/reference/1.21/src/main/java/com/example/docs/block/entity/custom/CounterBlockEntity.java) Тут ми додаємо поля, які слід зберегти в переданому `NbtCompound`: у випадку блоку лічильника це поле `clicks`. Читання відбувається подібно, але замість збереження в `NbtCompound` ви отримуєте значення, які ви зберегли раніше, і зберігаєте їх у полях BlockEntity: -@[code transcludeWith=:::4](@/reference/latest/src/main/java/com/example/docs/block/entity/custom/CounterBlockEntity.java) +@[code transcludeWith=:::4](@/reference/1.21/src/main/java/com/example/docs/block/entity/custom/CounterBlockEntity.java) Тепер, якщо ми збережемо та перезавантажимо гру, блок лічильника має продовжуватися з того місця, на якому він зупинився під час збереження. @@ -88,19 +88,19 @@ Minecraft використовує блоки-сутності для блокі Метод `getTicker` також має перевірити, чи переданий `BlockEntityType` збігається з тим, який ми використовуємо, і якщо це так, повертати функцію, яка буде викликатися кожного такту. На щастя, є допоміжна функція, яка виконує перевірку в `BlockWithEntity`: -@[code transcludeWith=:::3](@/reference/latest/src/main/java/com/example/docs/block/custom/CounterBlock.java) +@[code transcludeWith=:::3](@/reference/1.21/src/main/java/com/example/docs/block/custom/CounterBlock.java) `CounterBlockEntity::tick` — це посилання на статичний метод `tick`, який ми повинні створити в класі `CounterBlockEntity`. Структурувати його таким чином не обов’язково, але це гарна практика, щоб код був чистим і організованим. Скажімо, ми хочемо зробити так, щоб лічильник можна було збільшувати лише один раз кожні 10 тактів (2 рази на секунду). Ми можемо зробити це, додавши поле `ticksSinceLast` до класу `CounterBlockEntity` і збільшуючи його кожного такту: -@[code transcludeWith=:::5](@/reference/latest/src/main/java/com/example/docs/block/entity/custom/CounterBlockEntity.java) +@[code transcludeWith=:::5](@/reference/1.21/src/main/java/com/example/docs/block/entity/custom/CounterBlockEntity.java) Не забудьте серіалізувати та десеріалізувати це поле! Тепер ми можемо використовувати `ticksSinceLast`, щоб перевірити, чи можна збільшити лічильник у `incrementClicks`: -@[code transcludeWith=:::6](@/reference/latest/src/main/java/com/example/docs/block/entity/custom/CounterBlockEntity.java) +@[code transcludeWith=:::6](@/reference/1.21/src/main/java/com/example/docs/block/entity/custom/CounterBlockEntity.java) :::tip Якщо блок-сутність не працює, спробуйте перевірити реєстраційний код! Він має передати блоки, дійсні для цієї сутності, у `BlockEntityType.Builder`, інакше він видасть попередження на консолі: diff --git a/versions/1.21/translated/uk_ua/develop/blocks/block-entity-renderer.md b/versions/1.21/translated/uk_ua/develop/blocks/block-entity-renderer.md index 25e6981a4..aa6d8830c 100644 --- a/versions/1.21/translated/uk_ua/develop/blocks/block-entity-renderer.md +++ b/versions/1.21/translated/uk_ua/develop/blocks/block-entity-renderer.md @@ -17,12 +17,12 @@ authors: Створюючи `BlockEntityRenderer` для `CounterBlockEntity`, важливо помістити клас у відповідний вихідний набір, наприклад `src/client/`, якщо ваш проєкт використовує розділені вихідні набори для клієнта та сервера. Доступ до пов’язаних із промальовуванням класів безпосередньо у вихідному наборі `src/main/` небезпечний, оскільки ці класи можуть бути завантажені на сервер. -@[code transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/rendering/blockentity/CounterBlockEntityRenderer.java) +@[code transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/rendering/blockentity/CounterBlockEntityRenderer.java) Новий клас має конструктор із `BlockEntityRendererFactory.Context` як параметр. У `Context` є кілька корисних штук промальовування, наприклад `ItemRenderer` або `TextRenderer`. Крім того, включивши такий конструктор, стає можливим використовувати конструктор як сам функціональний інтерфейс `BlockEntityRendererFactory`: -@[code transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/FabricDocsBlockEntityRenderer.java) +@[code transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/FabricDocsBlockEntityRenderer.java) Додайте точку входу до файлу `fabric.mod.json`, щоб зареєструвати промальовування. @@ -77,7 +77,7 @@ matrices.scale(1/18f, 1/18f, 1/18f); Тепер усе перетворення виглядає так: -@[code transcludeWith=:::2](@/reference/latest/src/client/java/com/example/docs/rendering/blockentity/CounterBlockEntityRenderer.java) +@[code transcludeWith=:::2](@/reference/1.21/src/client/java/com/example/docs/rendering/blockentity/CounterBlockEntityRenderer.java) ### Малювання тексту {#drawing-text} @@ -85,7 +85,7 @@ matrices.scale(1/18f, 1/18f, 1/18f); `TextRenderer` має методи для вимірювання тексту (`getWidth`), що корисно для центрування, і для його малювання (`draw`). -@[code transcludeWith=:::3](@/reference/latest/src/client/java/com/example/docs/rendering/blockentity/CounterBlockEntityRenderer.java) +@[code transcludeWith=:::3](@/reference/1.21/src/client/java/com/example/docs/rendering/blockentity/CounterBlockEntityRenderer.java) Метод `draw` приймає багато параметрів, але найважливіші з них: diff --git a/versions/1.21/translated/uk_ua/develop/blocks/blockstates.md b/versions/1.21/translated/uk_ua/develop/blocks/blockstates.md index 326103716..25755f573 100644 --- a/versions/1.21/translated/uk_ua/develop/blocks/blockstates.md +++ b/versions/1.21/translated/uk_ua/develop/blocks/blockstates.md @@ -25,7 +25,7 @@ Minecraft має деякі користувальницькі класи, як Ванільний клас `PillarBlock` дозволяє розміщувати блок по осях X, Y або Z. -@[code transcludeWith=:::3](@/reference/latest/src/main/java/com/example/docs/block/ModBlocks.java) +@[code transcludeWith=:::3](@/reference/1.21/src/main/java/com/example/docs/block/ModBlocks.java) Блоки колон мають дві текстури, верхню та бічну - вони використовують модель `block/cube_column`. @@ -40,7 +40,7 @@ Minecraft має деякі користувальницькі класи, як Приклад файлу `condensed_oak_log_horizontal.json`: -@[code](@/reference/latest/src/main/resources/assets/fabric-docs-reference/models/block/condensed_oak_log_horizontal.json) +@[code](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/models/block/condensed_oak_log_horizontal.json) --- @@ -56,7 +56,7 @@ Remember, blockstate files can be found in the `assets//blockstates - `axis=y` – коли блок розміщено вздовж осі Y, ми будемо використовувати звичайну вертикальну модель. - `axis=z` – коли блок розміщується вздовж осі Z, ми повертаємо модель у позитивний X. -@[code](@/reference/latest/src/main/resources/assets/fabric-docs-reference/blockstates/condensed_oak_log.json) +@[code](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/blockstates/condensed_oak_log.json) Як завжди, вам потрібно буде створити переклад для свого блоку та модель предмета, яка є батьками будь-якої з двох моделей. @@ -72,15 +72,15 @@ Remember, blockstate files can be found in the `assets//blockstates По-перше, вам потрібно буде створити саму властивість — оскільки це логічне значення, ми використаємо метод `BooleanProperty.of`. -@[code transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) +@[code transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) Далі ми маємо додати властивість до менеджера стану блоку в методі appendProperties. Щоб отримати доступ до конструктора, вам потрібно змінити метод: -@[code transcludeWith=:::2](@/reference/latest/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) +@[code transcludeWith=:::2](@/reference/1.21/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) Ви також повинні встановити стан за замовчуванням для властивості `activated` у конструкторі вашого спеціального блоку. -@[code transcludeWith=:::3](@/reference/latest/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) +@[code transcludeWith=:::3](@/reference/1.21/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) :::warning Не забудьте зареєструвати свій блок, використовуючи спеціальний клас замість `Block`! @@ -90,7 +90,7 @@ Remember, blockstate files can be found in the `assets//blockstates У цьому прикладі змінюється логічна властивість `activated`, коли гравець взаємодіє з блоком. Для цього ми можемо замінити метод `onUse`: -@[code transcludeWith=:::4](@/reference/latest/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) +@[code transcludeWith=:::4](@/reference/1.21/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) ### Візуалізація власності {#visualizing-the-property} @@ -106,7 +106,7 @@ Remember, blockstate files can be found in the `assets//blockstates Оскільки цей блок має лише два можливі варіанти, оскільки він має лише одну властивість («активовано»), стан блоку JSON виглядатиме приблизно так: -@[code](@/reference/latest/src/main/resources/assets/fabric-docs-reference/blockstates/prismarine_lamp.json) +@[code](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/blockstates/prismarine_lamp.json) --- @@ -114,9 +114,9 @@ Remember, blockstate files can be found in the `assets//blockstates Ви можете використовувати метод `luminance`, щоб установити рівень світла, випромінюваного блоком, ми можемо створити статичний метод у класі `PrismarineLampBlock`, щоб повернути рівень освітлення на основі властивості `activated`, і передати його як посилання на метод до методу `luminance`: -@[code transcludeWith=:::5](@/reference/latest/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) +@[code transcludeWith=:::5](@/reference/1.21/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) -@[code transcludeWith=:::4](@/reference/latest/src/main/java/com/example/docs/block/ModBlocks.java) +@[code transcludeWith=:::4](@/reference/1.21/src/main/java/com/example/docs/block/ModBlocks.java) --- diff --git a/versions/1.21/translated/uk_ua/develop/blocks/first-block.md b/versions/1.21/translated/uk_ua/develop/blocks/first-block.md index c7a139ccf..7f17a95e3 100644 --- a/versions/1.21/translated/uk_ua/develop/blocks/first-block.md +++ b/versions/1.21/translated/uk_ua/develop/blocks/first-block.md @@ -19,7 +19,7 @@ authors: Mojang робить щось надзвичайно подібне з ванілльними блоками; ви можете звернутися до класу `Blocks`, щоб побачити, як вони це роблять. -@[code transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/block/ModBlocks.java) +@[code transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/block/ModBlocks.java) --- @@ -39,7 +39,7 @@ public class ModBlocks { } ``` -@[code transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/block/FabricDocsReferenceBlocks.java) +@[code transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/block/FabricDocsReferenceBlocks.java) ## Створення та реєстрація вашого блоку {#creating-and-registering-your-block} @@ -53,7 +53,7 @@ public class ModBlocks { Ви також можете використовувати `AbstractBlock.Settings.copy(AbstractBlock block)`, щоб скопіювати налаштування блоку що існує, у цьому випадку ми могли б використати `Blocks.DIRT`, щоб скопіювати налаштування dirt, але для прикладу ми скористаємося конструктором. ::: -@[code transcludeWith=:::2](@/reference/latest/src/main/java/com/example/docs/block/ModBlocks.java) +@[code transcludeWith=:::2](@/reference/1.21/src/main/java/com/example/docs/block/ModBlocks.java) Щоб автоматично створити блок-предмет ми можемо передати `true` параметру `shouldRegisterItem` методу `register`, який ми створили на попередньому кроці. @@ -63,7 +63,7 @@ public class ModBlocks { У цьому прикладі ми використаємо спеціальну групу предметів, створену на сторінці [Групи власних предметів](../items/custom-item-groups). -@[code transcludeWith=:::3](@/reference/latest/src/main/java/com/example/docs/block/ModBlocks.java) +@[code transcludeWith=:::3](@/reference/1.21/src/main/java/com/example/docs/block/ModBlocks.java) --- @@ -100,11 +100,11 @@ Minecraft використовуватиме цей переклад у твор Модель предмета досить проста, вона може просто використовувати модель блоку як батьківську, оскільки більшість моделей блоку підтримують відтворення в інтерфейсах: -@[code](@/reference/latest/src/main/resources/assets/fabric-docs-reference/models/item/condensed_dirt.json) +@[code](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/models/item/condensed_dirt.json) Однак у нашому випадку модель блоку має бути батьківською для моделі `block/cube_all`: -@[code](@/reference/latest/src/main/resources/assets/fabric-docs-reference/models/block/condensed_dirt.json) +@[code](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/models/block/condensed_dirt.json) Коли ви завантажуєте гру, ви можете помітити, що текстури все ще немає. Це тому, що вам потрібно додати визначення стану блоку. @@ -116,7 +116,7 @@ Minecraft використовуватиме цей переклад у твор Цей файл має міститися в папці `assets/mod_id/blockstates`, а його назва має збігатися з ідентифікатором блоку, який використовується під час реєстрації вашого блоку в класі `ModBlocks`. Наприклад, якщо ID блоку `condensed_dirt`, файл повинен мати назву `condensed_dirt.json`. -@[code](@/reference/latest/src/main/resources/assets/fabric-docs-reference/blockstates/condensed_dirt.json) +@[code](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/blockstates/condensed_dirt.json) Стани блоку справді складні, тому вони розглядаються на наступній сторінці: [Блокові стани](./blockstates) @@ -132,7 +132,7 @@ Minecraft використовуватиме цей переклад у твор Щоб краще зрозуміти таблиці здобичі, ви можете звернутися до сторінки [Minecraft Wiki - Таблиці здобичі](https://minecraft.wiki/w/Loot_table). ::: -@[code](@/reference/latest/src/main/resources/data/fabric-docs-reference/loot_tables/blocks/condensed_dirt.json) +@[code](@/reference/1.21/src/main/resources/data/fabric-docs-reference/loot_tables/blocks/condensed_dirt.json) Ця таблиця здобичі забезпечує випадіння одного предмета з блоку, коли блок ламаний або підірваний вибухом. @@ -151,7 +151,7 @@ Minecraft використовуватиме цей переклад у твор Цей приклад додає блок «Condensed Dirt» до теґу `shovel`. -@[code](@/reference/latest/src/main/resources/data/minecraft/tags/mineable/shovel.json) +@[code](@/reference/1.21/src/main/resources/data/minecraft/tags/mineable/shovel.json) Якщо ви бажаєте, щоб для видобутку блоку був потрібен інструмент, додайте `.requiresTool()` до налаштувань блоку, а також додайте відповідний теґ видобутку. diff --git a/versions/1.21/translated/uk_ua/develop/commands/arguments.md b/versions/1.21/translated/uk_ua/develop/commands/arguments.md index 4897f7323..c8e410f80 100644 --- a/versions/1.21/translated/uk_ua/develop/commands/arguments.md +++ b/versions/1.21/translated/uk_ua/develop/commands/arguments.md @@ -7,8 +7,8 @@ description: Дізнайтеся, як створювати команди зі Аргументи використовуються в більшості команд. Іноді вони можуть бути необов’язковими, тобто якщо ви не надасте аргумент, команда також буде виконана. Один вузол може мати кілька типів аргументів, але майте на увазі, що існує можливість двозначність, якої слід уникати. -@[code lang=java highlight={3} transcludeWith=:::command_with_arg](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code lang=java transcludeWith=:::execute_command_with_arg](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={3} transcludeWith=:::command_with_arg](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::execute_command_with_arg](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) У цьому випадку після тексту команди `/command_with_arg` слід ввести ціле число. Наприклад, якщо ви запустіть `/command_with_arg 3`, ви отримаєте повідомлення зворотного зв'язку: @@ -19,16 +19,16 @@ description: Дізнайтеся, як створювати команди зі Потім ми додаємо необов'язковий другий аргумент: -@[code lang=java highlight={3,5} transcludeWith=:::command_with_two_args](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code lang=java transcludeWith=:::execute_command_with_two_args](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={3,5} transcludeWith=:::command_with_two_args](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::execute_command_with_two_args](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) Зараз ви можете написати одне або два цілих числа. Якщо ви надаєте одне число - відповідь з одним значенням буде надрукована. Якщо ви надаєте два чиста - відповідь з двома значеннями буде надрукована. Ви можете вважати непотрібним вказувати подібні виконання двічі. Таким чином, ми можемо створити метод, який буде використовуватися в обидва виконання. -@[code lang=java highlight={4,6} transcludeWith=:::command_with_common_exec](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code lang=java transcludeWith=:::execute_common](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={4,6} transcludeWith=:::command_with_common_exec](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::execute_common](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) ## Власні типи аргументу {#custom-argument-types} @@ -38,7 +38,7 @@ description: Дізнайтеся, як створювати команди зі Наприклад, ви можете створити тип аргументу, який аналізує `BlockPos` із рядка в такому форматі: `{x, y, z}` -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/command/BlockPosArgumentType.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/command/BlockPosArgumentType.java) ### Реєстрація спеціальних типів аргументів {#registering-custom-argument-types} @@ -48,14 +48,14 @@ description: Дізнайтеся, як створювати команди зі Ви можете зареєструвати власний тип аргументу в методі `onInitialize` вашого [ініціалізатора мода](./getting-started/project-structure#entrypoints) за допомогою класу `ArgumentTypeRegistry`: -@[code lang=java transcludeWith=:::register_custom_arg](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::register_custom_arg](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) ### Використання спеціальних типів аргументів {#using-custom-argument-types} Ми можемо використовувати наш власний тип аргументу в команді, передавши його екземпляр у метод `.argument` у конструкторі команд. -@[code lang=java highlight={3} transcludeWith=:::custom_arg_command](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code lang=java highlight={2} transcludeWith=:::execute_custom_arg_command](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={3} transcludeWith=:::custom_arg_command](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={2} transcludeWith=:::execute_custom_arg_command](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) Виконуючи команду, ми можемо перевірити, чи працює тип аргументу: diff --git a/versions/1.21/translated/uk_ua/develop/commands/suggestions.md b/versions/1.21/translated/uk_ua/develop/commands/suggestions.md index 049fbf341..fea41241d 100644 --- a/versions/1.21/translated/uk_ua/develop/commands/suggestions.md +++ b/versions/1.21/translated/uk_ua/develop/commands/suggestions.md @@ -17,8 +17,8 @@ Minecraft має потужну систему пропозицій команд Для використання постачальника пропозицій треба викликати метод `suggests` в об'єкта `ArgumentBuilder`. Цей метод приймає об'єкт `SuggestionProvider` та повертає свій `ArgumentBuilder` з доданим постачальником пропозицій. -@[code java highlight={4} transcludeWith=:::command_with_suggestions](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code java transcludeWith=:::execute_command_with_suggestions](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code java highlight={4} transcludeWith=:::command_with_suggestions](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code java transcludeWith=:::execute_command_with_suggestions](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) ## Вбудовані постачальники пропозицій {#built-in-suggestion-providers} @@ -37,12 +37,12 @@ Minecraft надає декілька вбудованих постачальн Для цього прикладу ми зробимо постачальник, який пропонує імена гравців на сервері. -@[code java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/command/PlayerSuggestionProvider.java) +@[code java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/command/PlayerSuggestionProvider.java) Щоб скористатися цим постачальником, треба просто передати його об'єкт у метод `.suggests` у `ArgumentBuilder`. -@[code java highlight={4} transcludeWith=:::command_with_custom_suggestions](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code java transcludeWith=:::execute_command_with_custom_suggestions](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code java highlight={4} transcludeWith=:::command_with_custom_suggestions](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code java transcludeWith=:::execute_command_with_custom_suggestions](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) Звісно, що постачальники пропозицій можуть бути складнішими, оскільки вони також можуть зчитувати контекст команди та надавати пропозиції на основі її стану - наприклад, аргументи, що вже були надані. diff --git a/versions/1.21/translated/uk_ua/develop/index.md b/versions/1.21/translated/uk_ua/develop/index.md index 08661b639..d54c588b3 100644 --- a/versions/1.21/translated/uk_ua/develop/index.md +++ b/versions/1.21/translated/uk_ua/develop/index.md @@ -9,6 +9,6 @@ description: Наші посібники для розробників, напи Перевірте бічну панель, щоб знайти список усіх доступних посібників. Якщо ви шукаєте щось конкретне, рядок пошуку вгорі сторінки - ваш найкращий друг. -Пам’ятайте: повністю робочий мод з усім кодом для цієї документації доступний у теці[`/reference` на GitHub](https://github.com/FabricMC/fabric-docs/tree/main/reference/latest). +Пам’ятайте: повністю робочий мод з усім кодом для цієї документації доступний у теці[`/reference` на GitHub](https://github.com/FabricMC/fabric-docs/tree/main/reference/1.21). Якщо ви хочете зробити свій внесок у документацію Fabric, ви можете знайти вихідний код на [GitHub](https://github.com/FabricMC/fabric-docs), а також відповідні [правила внеску](../contributing). diff --git a/versions/1.21/translated/uk_ua/develop/text-and-translations.md b/versions/1.21/translated/uk_ua/develop/text-and-translations.md index 7e50c514c..cc5544339 100644 --- a/versions/1.21/translated/uk_ua/develop/text-and-translations.md +++ b/versions/1.21/translated/uk_ua/develop/text-and-translations.md @@ -95,7 +95,7 @@ Text translatable = Text.translatable("my_mod.text.whack.item", victim.getDispla Як згадувалося раніше, ви можете серіалізувати текст у JSON за допомогою текстового кодека. Додаткову інформацію про кодеки див. на сторінці [Codec](./codecs). -@[code transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/rendering/TextTests.java) +@[code transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/rendering/TextTests.java) Це створює JSON, який можна використовувати в пакетах даних, командах та інших місцях, які приймають формат тексту JSON замість літерального або перекладаного тексту. @@ -103,7 +103,7 @@ Text translatable = Text.translatable("my_mod.text.whack.item", victim.getDispla Крім того, щоб десеріалізувати текстовий об’єкт JSON у фактичний клас `Text`, знову скористайтеся кодеком. -@[code transcludeWith=:::2](@/reference/latest/src/client/java/com/example/docs/rendering/TextTests.java) +@[code transcludeWith=:::2](@/reference/1.21/src/client/java/com/example/docs/rendering/TextTests.java) ## Форматування тексту {#formatting-text} diff --git a/versions/1.21/translated/vi_vn/contributing.md b/versions/1.21/translated/vi_vn/contributing.md index 19cd06caa..a787ceed0 100644 --- a/versions/1.21/translated/vi_vn/contributing.md +++ b/versions/1.21/translated/vi_vn/contributing.md @@ -83,7 +83,7 @@ Quy định về phong cách như sau: **Ví dụ:** ```md - <<< @/reference/latest/src/main/java/com/example/docs/FabricDocsReference.java{15-21 java} + <<< @/reference/1.21/src/main/java/com/example/docs/FabricDocsReference.java{15-21 java} ``` Điều này sẽ nhúng mã từ dòng 15 đến 21 của tệp `FabricDocsReference.java` trong tập tin mod có liên quan. diff --git a/versions/1.21/translated/vi_vn/develop/commands/arguments.md b/versions/1.21/translated/vi_vn/develop/commands/arguments.md index 70f12b2e7..bf55a82f7 100644 --- a/versions/1.21/translated/vi_vn/develop/commands/arguments.md +++ b/versions/1.21/translated/vi_vn/develop/commands/arguments.md @@ -7,19 +7,19 @@ description: Học cách tạo ra câu lệnh với tham số phức tạp. Hầu hết các câu lệnh đều có tham số. Nhiều khi tham số đó không bắt buộc, bạn không cần phải đưa vào câu lệnh nhưng nó vẫn chạy. Một node có thể có nhiều loại tham số, nhưng bạn nên tránh xảy ra trường hợp kiểu dữ liệu của tham số không rõ. -@[code lang=java highlight={3} transcludeWith=:::4](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={3} transcludeWith=:::4](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) Trong trường hợp này, sau `/argtater`, bạn cần đưa ra một số nguyên làm tham số. Chẳng hạn, khi bạn chạy `/argtater 3`, bạn sẽ nhận được thông báo `Called /argtater with value = 3`. Khị bạn nhập `/argtater` mà không đưa ra tham số, câu lệnh trên sẽ không chạy được. Chúng ta có thể thêm vào đối số không bắt buộc thứ hai: -@[code lang=java highlight={3,13} transcludeWith=:::5](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={3,13} transcludeWith=:::5](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) Giờ đây, bạn có thể nhập một hoặc hai số nguyên làm tham số. Nếu bạn đưa vào một số nguyên, bạn sẽ nhận được thông báo với một giá trị. Nếu là hai số nguyên, thông báo sẽ đưa ra hai giá trị. Có thể bạn thấy việc viết hai quy trình xử lý dữ liệu giống nhau là không cần thiết. Ta có thể tạo một method sử dụng trong cả hai tham số. -@[code lang=java highlight={3,5,6,7} transcludeWith=:::6](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={3,5,6,7} transcludeWith=:::6](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) ## Kiểu Tham Số Tùy Chỉnh @@ -29,7 +29,7 @@ Bạn cần phải thêm method `parse` để xử lý tham số từ kiểu xâ Giả sử bạn cần một kiểu tham số cho ra `BlockPos` khi người dùng nhập: `{x, y, z}` -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/command/BlockPosArgumentType.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/command/BlockPosArgumentType.java) ### Đăng Ký Kiểu Tham Số Tùy Chỉnh @@ -39,13 +39,13 @@ Câu lệnh của bạn sẽ không hoạt động nếu bạn không đăng ký Bạn có thể đăng ký kiểu tham số tùy chỉnh trong khi mod của bạn đang khởi động trong method `onInitialize`, sử dụng class `ArgumentTypeRegistry`: -@[code lang=java transcludeWith=:::11](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::11](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) ### Sử Dụng Kiểu Tham Số Tùy Chỉnh Bạn có thể sử dụng kiểu tham số tùy chỉnh trong một câu lệnh bằng cách đưa một instance của nó vào method `.argument` khi đang xây dựng một câu lệnh. -@[code lang=java transcludeWith=:::10 highlight={3}](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::10 highlight={3}](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) Thử chạy câu lệnh xem kiểu tham số của chúng ta có hoạt động không: diff --git a/versions/1.21/translated/zh_cn/contributing.md b/versions/1.21/translated/zh_cn/contributing.md index 3278818cc..400d37799 100644 --- a/versions/1.21/translated/zh_cn/contributing.md +++ b/versions/1.21/translated/zh_cn/contributing.md @@ -188,10 +188,10 @@ authors: ::: code-group ```md -<<< @/reference/latest/src/main/java/com/example/docs/FabricDocsReference.java{15-21} +<<< @/reference/1.21/src/main/java/com/example/docs/FabricDocsReference.java{15-21} ``` -<<< @/reference/latest/src/main/java/com/example/docs/FabricDocsReference.java{15-21}[java] +<<< @/reference/1.21/src/main/java/com/example/docs/FabricDocsReference.java{15-21}[java] ::: @@ -202,10 +202,10 @@ authors: ::: code-group ```md -@[code transcludeWith=#entrypoint](@/reference/latest/src/main/java/com/example/docs/FabricDocsReference.java) +@[code transcludeWith=#entrypoint](@/reference/1.21/src/main/java/com/example/docs/FabricDocsReference.java) ``` -@[code transcludeWith=#entrypoint](@/reference/latest/src/main/java/com/example/docs/FabricDocsReference.java) +@[code transcludeWith=#entrypoint](@/reference/1.21/src/main/java/com/example/docs/FabricDocsReference.java) ::: diff --git a/versions/1.21/translated/zh_cn/develop/blocks/blockstates.md b/versions/1.21/translated/zh_cn/develop/blocks/blockstates.md index 05c50dca9..94567acad 100644 --- a/versions/1.21/translated/zh_cn/develop/blocks/blockstates.md +++ b/versions/1.21/translated/zh_cn/develop/blocks/blockstates.md @@ -25,7 +25,7 @@ Minecraft 已经有些自定义的类,允许你快速创建特定类型的方 原版的 `PillarBlock` 允许方块按 X、Y 或 Z 轴放置。 -@[code transcludeWith=:::3](@/reference/latest/src/main/java/com/example/docs/block/ModBlocks.java) +@[code transcludeWith=:::3](@/reference/1.21/src/main/java/com/example/docs/block/ModBlocks.java) 柱方块有两个纹理,顶部(`top`)和侧面(`side`),使用 `block/cube_column` 模型。 @@ -40,7 +40,7 @@ Minecraft 已经有些自定义的类,允许你快速创建特定类型的方 `condensed_oak_log_horizontal.json` 文件的示例: -@[code](@/reference/latest/src/main/resources/assets/fabric-docs-reference/models/block/condensed_oak_log_horizontal.json) +@[code](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/models/block/condensed_oak_log_horizontal.json) --- @@ -56,7 +56,7 @@ Remember, blockstate files can be found in the `assets//blockstates - `axis=y` - 方块沿 Y 轴旋转时,使用正常的垂直模型。 - `axis=z` - 方块沿Z 轴放置时,旋转模型以朝向正 X 方向。 -@[code](@/reference/latest/src/main/resources/assets/fabric-docs-reference/blockstates/condensed_oak_log.json) +@[code](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/blockstates/condensed_oak_log.json) 同样,需要为你的方块创建翻译,以及继承了这两个模型中的任意一个的物品模型。 @@ -72,15 +72,15 @@ Remember, blockstate files can be found in the `assets//blockstates 首先,需要创建属性本身——因为是个布尔值,所以使用 `BooleanProperty.of` 方法。 -@[code transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) +@[code transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) 然后,需要在 `appendProperties` 方法中将属性添加到 blockstate manager\` 中。 需要覆盖此方法以访问 builder: -@[code transcludeWith=:::2](@/reference/latest/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) +@[code transcludeWith=:::2](@/reference/1.21/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) 你还需要在你的自定义方块的构造函数中,设置 `activated` 属性的默认状态。 -@[code transcludeWith=:::3](@/reference/latest/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) +@[code transcludeWith=:::3](@/reference/1.21/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) :::warning 别忘了注册方块时使用自定义的类而不是 `Block`! @@ -90,7 +90,7 @@ Remember, blockstate files can be found in the `assets//blockstates 这个例子会在玩家与方块交互时,翻转 `activated` 属性的布尔值。 我们可以为此覆盖 `onUse` 方法: -@[code transcludeWith=:::4](@/reference/latest/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) +@[code transcludeWith=:::4](@/reference/1.21/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) ### 视觉呈现属性{#visualizing-the-property} @@ -106,7 +106,7 @@ Remember, blockstate files can be found in the `assets//blockstates 因为方块只有一个属性(`activated`),只有两个变种,所以方块状态 JSON 看起来应该像这样: -@[code](@/reference/latest/src/main/resources/assets/fabric-docs-reference/blockstates/prismarine_lamp.json) +@[code](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/blockstates/prismarine_lamp.json) --- @@ -114,9 +114,9 @@ Remember, blockstate files can be found in the `assets//blockstates 可以使用 `luminance` 方法设置方块放出的光,可以在 `PrismarineLampBlock` 类中创建一个静态方法,从而根据 `activated` 属性返回光照等级,并将其作为方法引入传入 `luminance` 方法中。 -@[code transcludeWith=:::5](@/reference/latest/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) +@[code transcludeWith=:::5](@/reference/1.21/src/main/java/com/example/docs/block/custom/PrismarineLampBlock.java) -@[code transcludeWith=:::4](@/reference/latest/src/main/java/com/example/docs/block/ModBlocks.java) +@[code transcludeWith=:::4](@/reference/1.21/src/main/java/com/example/docs/block/ModBlocks.java) --- diff --git a/versions/1.21/translated/zh_cn/develop/blocks/first-block.md b/versions/1.21/translated/zh_cn/develop/blocks/first-block.md index f9c884432..f21a93db7 100644 --- a/versions/1.21/translated/zh_cn/develop/blocks/first-block.md +++ b/versions/1.21/translated/zh_cn/develop/blocks/first-block.md @@ -19,7 +19,7 @@ authors: Mojang 对原版方块的处理方法和这个也非常相似,你可以参考 `Blocks` 类看看他们是怎么做的。 -@[code transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/block/ModBlocks.java) +@[code transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/block/ModBlocks.java) --- @@ -39,7 +39,7 @@ public class ModBlocks { } ``` -@[code transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/block/FabricDocsReferenceBlocks.java) +@[code transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/block/FabricDocsReferenceBlocks.java) ## 创建并注册你的方块{#creating-and-registering-your-block} @@ -53,7 +53,7 @@ public class ModBlocks { 可以使用 `AbstractBlock.Settings.copy(AbstractBlock block)` 从已存在的方块中复制 settings,这种情况下,可以使用 `Blocks.DIRT` 以从泥土中复制 settings,但是为作举例,我们使用 builder。 ::: -@[code transcludeWith=:::2](@/reference/latest/src/main/java/com/example/docs/block/ModBlocks.java) +@[code transcludeWith=:::2](@/reference/1.21/src/main/java/com/example/docs/block/ModBlocks.java) 我们上一步创建过 `regisger` 方法,要自动创建方块物品,我们在方法的 `shouldRegisterItem` 参数中传入 `true`。 @@ -63,7 +63,7 @@ public class ModBlocks { 例如,我们使用在[自定义物品组](../items/custom-item-groups)页面中创建的自定义物品组。 -@[code transcludeWith=:::3](@/reference/latest/src/main/java/com/example/docs/block/ModBlocks.java) +@[code transcludeWith=:::3](@/reference/1.21/src/main/java/com/example/docs/block/ModBlocks.java) --- @@ -100,11 +100,11 @@ Minecraft 会在创造模式物品栏中,以及其他显示方块名称的地 物品模型很简单,只需要继承方块模型即可,因为大多数方块模型都支持在 GUI 中渲染。 -@[code](@/reference/latest/src/main/resources/assets/fabric-docs-reference/models/item/condensed_dirt.json) +@[code](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/models/item/condensed_dirt.json) 但是,在我们的例子中,方块模型就必须继承 `block/cube_all` 模型。 -@[code](@/reference/latest/src/main/resources/assets/fabric-docs-reference/models/block/condensed_dirt.json) +@[code](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/models/block/condensed_dirt.json) 载入游戏,你可能会发现模型还是缺失。 这是因为,你还需要添加方块状态定义。 @@ -116,7 +116,7 @@ Minecraft 会在创造模式物品栏中,以及其他显示方块名称的地 这个方块应该位于 `assets/mod_id/blockstates` 文件夹内,名字应该匹配在 `ModBlocks` 类中注册方块时使用的方块 ID。 例如,方块 ID 是 `condensed_dirt`,那么文件名称就是 `condensed_dirt.json`。 -@[code](@/reference/latest/src/main/resources/assets/fabric-docs-reference/blockstates/condensed_dirt.json) +@[code](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/blockstates/condensed_dirt.json) 方块状态很复杂,会在之后的页面[方块状态](./blockstates)中详述。 @@ -132,7 +132,7 @@ Minecraft 会在创造模式物品栏中,以及其他显示方块名称的地 对战利品表的更深入理解,可参考 [Minecraft Wiki - 战利品表](https://zh.minecraft.wiki/w/战利品表)页面。 ::: -@[code](@/reference/latest/src/main/resources/data/fabric-docs-reference/loot_tables/blocks/condensed_dirt.json) +@[code](@/reference/1.21/src/main/resources/data/fabric-docs-reference/loot_tables/blocks/condensed_dirt.json) 这个战利品表提供了方块在被破坏以及被爆炸破坏时掉落的单个方块物品。 @@ -151,7 +151,7 @@ Minecraft 会在创造模式物品栏中,以及其他显示方块名称的地 这个例子会将“Condensed Dirt”方块添加到 `shovel` 标签中。 -@[code](@/reference/latest/src/main/resources/data/minecraft/tags/mineable/shovel.json) +@[code](@/reference/1.21/src/main/resources/data/minecraft/tags/mineable/shovel.json) 如果应使用工具来挖掘此方块,则需要在方块属性(`Block.Settings`)中添加`.requiresTool()`,并添加相应的挖掘标签。 diff --git a/versions/1.21/translated/zh_cn/develop/codecs.md b/versions/1.21/translated/zh_cn/develop/codecs.md index 67582c309..e7fca0281 100644 --- a/versions/1.21/translated/zh_cn/develop/codecs.md +++ b/versions/1.21/translated/zh_cn/develop/codecs.md @@ -318,11 +318,11 @@ public class Identifier { 有了这些,就可以创建一个 bean 的注册表分派 codec。 -@[code transcludeWith=:::](@/reference/latest/src/main/java/com/example/docs/codec/Bean.java) -@[code transcludeWith=:::](@/reference/latest/src/main/java/com/example/docs/codec/BeanType.java) -@[code transcludeWith=:::](@/reference/latest/src/main/java/com/example/docs/codec/StringyBean.java) -@[code transcludeWith=:::](@/reference/latest/src/main/java/com/example/docs/codec/CountingBean.java) -@[code transcludeWith=:::](@/reference/latest/src/main/java/com/example/docs/codec/BeanTypes.java) +@[code transcludeWith=:::](@/reference/1.21/src/main/java/com/example/docs/codec/Bean.java) +@[code transcludeWith=:::](@/reference/1.21/src/main/java/com/example/docs/codec/BeanType.java) +@[code transcludeWith=:::](@/reference/1.21/src/main/java/com/example/docs/codec/StringyBean.java) +@[code transcludeWith=:::](@/reference/1.21/src/main/java/com/example/docs/codec/CountingBean.java) +@[code transcludeWith=:::](@/reference/1.21/src/main/java/com/example/docs/codec/BeanTypes.java) ```java // 现在我们可以创建一个用于 bean 类型的 codec diff --git a/versions/1.21/translated/zh_cn/develop/commands/arguments.md b/versions/1.21/translated/zh_cn/develop/commands/arguments.md index 3fdcc3831..0f0b63382 100644 --- a/versions/1.21/translated/zh_cn/develop/commands/arguments.md +++ b/versions/1.21/translated/zh_cn/develop/commands/arguments.md @@ -7,8 +7,8 @@ description: 学习如何创建带有复杂参数的命令。 大多数命令都使用了参数。 有时参数是可选的,也就是说如果你不提供此参数,命令仍能运行。 一个节点可以有多个参数类型,但是注意有可能出现二义性,这是需要避免的。 -@[code lang=java highlight={3} transcludeWith=:::command_with_arg](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code lang=java transcludeWith=:::execute_command_with_arg](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={3} transcludeWith=:::command_with_arg](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::execute_command_with_arg](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) 在这个例子中,在命令文本 `/command_with_arg` 之后,你需要输入一个整数。 例如,如果运行 `/command_with_arg 3`,会收到反馈消息: @@ -18,15 +18,15 @@ description: 学习如何创建带有复杂参数的命令。 接下来我们将添加第二个可选的参数: -@[code lang=java highlight={3,5} transcludeWith=:::command_with_two_args](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code lang=java transcludeWith=:::execute_command_with_two_args](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={3,5} transcludeWith=:::command_with_two_args](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::execute_command_with_two_args](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) 现在你可以输入一个或者两个整数了。 如果提供了一个整数,那么会打印单个值的反馈文本。 如果提供了两个整数,那么会打印有两个值的反馈文本。 你可能发现,两次指定类似的执行内容有些不太必要。 因此,我们可以创建一个在两个执行中都使用的方法。 -@[code lang=java highlight={4,6} transcludeWith=:::command_with_common_exec](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code lang=java transcludeWith=:::execute_common](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={4,6} transcludeWith=:::command_with_common_exec](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::execute_common](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) ## 自定义参数类型{#custom-argument-types} @@ -36,7 +36,7 @@ description: 学习如何创建带有复杂参数的命令。 举个例子,您可以创建一个可以把格式形如 `{x, y, z}` 的字符串解析为一个 `BlockPos` 参数类型。 -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/command/BlockPosArgumentType.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/command/BlockPosArgumentType.java) ### 注册自定义参数类型{#registering-custom-argument-types} @@ -46,14 +46,14 @@ description: 学习如何创建带有复杂参数的命令。 你可以在你的模组[入口点](./getting-started/project-structure#entrypoints)中的初始化方法 `onInitialize` 中使用 `ArgumentTypeRegistry` 类来注册: -@[code lang=java transcludeWith=:::register_custom_arg](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::register_custom_arg](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) ### 使用自定义参数类型{#using-custom-argument-types} 我们可以在命令中使用我们的自定义参数类型──通过在 command builder 中传递实例到 `.argument` 方法。 -@[code lang=java highlight={3} transcludeWith=:::custom_arg_command](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code lang=java highlight={2} transcludeWith=:::execute_custom_arg_command](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={3} transcludeWith=:::custom_arg_command](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={2} transcludeWith=:::execute_custom_arg_command](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) 运行命令,我们可以测试参数类型是否生效: diff --git a/versions/1.21/translated/zh_cn/develop/commands/basics.md b/versions/1.21/translated/zh_cn/develop/commands/basics.md index 270282dbc..da8b85ca6 100644 --- a/versions/1.21/translated/zh_cn/develop/commands/basics.md +++ b/versions/1.21/translated/zh_cn/develop/commands/basics.md @@ -75,7 +75,7 @@ Command command = context -> { 在模组的入口点中,我们只注册两个简单的命令: -@[code lang=java transcludeWith=:::test_command](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::test_command](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) 在 `sendFeedback()` 方法之中,第一个参数是要发送的文本, 是 `Supplier`,以避免在不必要时实例化 Text 对象。 @@ -95,15 +95,15 @@ Command command = context -> { 如有需要,你可以确保命令仅在一些特定情况下注册,例如仅在专用的环境中: -@[code lang=java highlight={2} transcludeWith=:::dedicated_command](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code lang=java transcludeWith=:::execute_dedicated_command](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={2} transcludeWith=:::dedicated_command](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::execute_dedicated_command](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) ### 命令要求{#command-requirements} 假如说你希望命令只有管理员可以执行, 这时就要用到 `requires()` 方法。 `requires()` 方法有一个 `Predicate` 参数,提供一个 `ServerCommandSource` 以检测并确定 `CommandSource` 能否执行命令。 -@[code lang=java highlight={3} transcludeWith=:::required_command](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code lang=java transcludeWith=:::execute_required_command](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={3} transcludeWith=:::required_command](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::execute_required_command](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) 这个命令只会在命令源至少为 2 级管理员(包括命令方块)时才会执行, 否则,命令不会被注册。 @@ -113,19 +113,19 @@ Command command = context -> { 要添加子命令,你需要先照常注册第一个字面节点。 为拥有子命令,需要把下一个节点追加到已经存在的节点后面。 -@[code lang=java highlight={3} transcludeWith=:::sub_command_one](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code lang=java transcludeWith=:::execute_sub_command_one](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={3} transcludeWith=:::sub_command_one](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::execute_sub_command_one](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) 类似于参数,子命令节点也可以设置为可选的。 在下面这个例子中,`/command_two` 和 `/command_two sub_command_two` 都是有效的。 -@[code lang=java highlight={2,8} transcludeWith=:::sub_command_two](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code lang=java transcludeWith=:::execute_command_sub_command_two](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java highlight={2,8} transcludeWith=:::sub_command_two](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::execute_command_sub_command_two](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) ## 客户端命令{#client-commands} Fabric API 有个 `ClientCommandManager`,位于 `net.fabricmc.fabric.api.client.command.v2` 包中,可用于注册客户端命令。 代码应该仅存在于客户端的代码中。 -@[code lang=java transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/client/command/FabricDocsReferenceClientCommands.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/client/command/FabricDocsReferenceClientCommands.java) ## 命令重定向{#command-redirects} @@ -135,8 +135,8 @@ Fabric API 有个 `ClientCommandManager`,位于 `net.fabricmc.fabric.api.clien Brigadier [只会重定向有参数的命令节点](https://github.com/Mojang/brigadier/issues/46)。 如果需要重定向没有参数的命令节点,给 `.execute()` 构造器提供一个到相同逻辑的引用,就像这个例子中。 ::: -@[code lang=java transcludeWith=:::redirect_command](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code lang=java transcludeWith=:::execute_redirected_by](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::redirect_command](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code lang=java transcludeWith=:::execute_redirected_by](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) ## 常见问题{#faq} diff --git a/versions/1.21/translated/zh_cn/develop/commands/suggestions.md b/versions/1.21/translated/zh_cn/develop/commands/suggestions.md index 75ae54621..13ecb6498 100644 --- a/versions/1.21/translated/zh_cn/develop/commands/suggestions.md +++ b/versions/1.21/translated/zh_cn/develop/commands/suggestions.md @@ -17,8 +17,8 @@ Minecraft 有个强大的命令建议系统,用在很多地方,例如 `/give 要使用建议提供器,你需要在 argument builder 中调用 `suggests` 方法。 此方法接收一个 `SuggestionProvider`,返回一个附加了新的建议提供器的 argument builder。 -@[code java highlight={4} transcludeWith=:::command_with_suggestions](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code java transcludeWith=:::execute_command_with_suggestions](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code java highlight={4} transcludeWith=:::command_with_suggestions](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code java transcludeWith=:::execute_command_with_suggestions](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) ## 内置的建议提供器{#built-in-suggestion-providers} @@ -37,12 +37,12 @@ Minecraft 有个强大的命令建议系统,用在很多地方,例如 `/give 对此示例,我们需要制作一个建议提供器,建议所有在服务器上的玩家的名称。 -@[code java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/command/PlayerSuggestionProvider.java) +@[code java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/command/PlayerSuggestionProvider.java) 要使用这个建议提供器,只需将一个实例传递到参数构造器的 `.suggests` 方法。 -@[code java highlight={4} transcludeWith=:::command_with_custom_suggestions](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) -@[code java transcludeWith=:::execute_command_with_custom_suggestions](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code java highlight={4} transcludeWith=:::command_with_custom_suggestions](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) +@[code java transcludeWith=:::execute_command_with_custom_suggestions](@/reference/1.21/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java) 显然,建议提供器能够更复杂,因为还可以读取命令上下文以根据命令的状态(例如已经提供的参数)提供建议。 diff --git a/versions/1.21/translated/zh_cn/develop/entities/damage-types.md b/versions/1.21/translated/zh_cn/develop/entities/damage-types.md index 82b39025b..4597bbcff 100644 --- a/versions/1.21/translated/zh_cn/develop/entities/damage-types.md +++ b/versions/1.21/translated/zh_cn/develop/entities/damage-types.md @@ -21,7 +21,7 @@ resources/data/fabric-docs-reference/damage_type/tater.json 其结构如下: -@[code lang=json](@/reference/latest/src/main/generated/data/fabric-docs-reference/damage_type/tater.json) +@[code lang=json](@/reference/1.21/src/main/generated/data/fabric-docs-reference/damage_type/tater.json) 这个自定义伤害类型在玩家每次受到来自非玩家的生物(例:方块)造成的伤害时增加 0.1 [消耗度](https://zh.minecraft.wiki/w/饥饿#饥饿因素)。 此外,造成的伤害量将随世界难度而变化。 @@ -37,7 +37,7 @@ resources/data/fabric-docs-reference/damage_type/tater.json 这个 `RegistryKey` 可用以下方式获取: -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/damage/FabricDocsReferenceDamageTypes.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/damage/FabricDocsReferenceDamageTypes.java) ### 使用伤害类型{#using-damage-types} @@ -47,15 +47,15 @@ resources/data/fabric-docs-reference/damage_type/tater.json 我们从创建一个属于我们的自定义伤害类型的 `DamageSource` 开始。 -@[code lang=java transclude={21-24}](@/reference/latest/src/main/java/com/example/docs/damage/TaterBlock.java) +@[code lang=java transclude={21-24}](@/reference/1.21/src/main/java/com/example/docs/damage/TaterBlock.java) 然后,调用 `entity.damage()` 并传入我们的 `DamageSource` 和伤害量。 -@[code lang=java transclude={25-25}](@/reference/latest/src/main/java/com/example/docs/damage/TaterBlock.java) +@[code lang=java transclude={25-25}](@/reference/1.21/src/main/java/com/example/docs/damage/TaterBlock.java) 方块的完整实现: -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/damage/TaterBlock.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/damage/TaterBlock.java) 现在,每当生物踩在我们的自定义方块上时,都将受到使用我们的自定义伤害类型的 5 点伤害(2.5 颗心)。 @@ -63,7 +63,7 @@ resources/data/fabric-docs-reference/damage_type/tater.json 你可以在你的模组的 `en_us.json` 文件中以 `death.attack.` 的格式定义伤害类型的死亡信息。 -@[code lang=json transclude={4-4}](@/reference/latest/src/main/resources/assets/fabric-docs-reference/lang/en_us.json) +@[code lang=json transclude={4-4}](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/lang/en_us.json) 当死因是我们的伤害类型时,你将会看到如下的死亡信息: @@ -91,6 +91,6 @@ data/minecraft/tags/damage_type/bypasses_armor.json 包含以下内容: -@[code lang=json](@/reference/latest/src/main/generated/data/minecraft/tags/damage_type/bypasses_armor.json) +@[code lang=json](@/reference/1.21/src/main/generated/data/minecraft/tags/damage_type/bypasses_armor.json) 将 `replace` 设置为 `false` 以确保你的标签不会替换既有的标签。 diff --git a/versions/1.21/translated/zh_cn/develop/entities/effects.md b/versions/1.21/translated/zh_cn/develop/entities/effects.md index 95b8daabb..fc3361085 100644 --- a/versions/1.21/translated/zh_cn/develop/entities/effects.md +++ b/versions/1.21/translated/zh_cn/develop/entities/effects.md @@ -27,13 +27,13 @@ authors-nogithub: 让我们通过继承所有状态效果的基类 `StatusEffect` 来创建一个自定义状态效果类。 -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/effect/TaterEffect.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/effect/TaterEffect.java) ### 注册你的自定义状态效果{#registering-your-custom-effect} 与注册方块和物品类似,我们使用 `Registry.register` 将我们的自定义状态效果注册到 `STATUS_EFFECT` 注册表。 这可以在我们的初始化器内完成。 -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/effect/FabricDocsReferenceEffects.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/effect/FabricDocsReferenceEffects.java) ### 纹理{#texture} @@ -70,7 +70,7 @@ effect give @p fabric-docs-reference:tater 要在代码内部应用状态效果,需要使用 `LivingEntity#addStatusEffect` 方法,接收一个 `StatusEffectInstance` 实例,返回布尔值,以表示效果是否成功应用了。 -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/ReferenceMethods.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/ReferenceMethods.java) | 参数 | 类型 | 描述 | | ----------- | ----------------------------- | --------------------------------------------------------------------------- | diff --git a/versions/1.21/translated/zh_cn/develop/events.md b/versions/1.21/translated/zh_cn/develop/events.md index e97780880..612d99920 100644 --- a/versions/1.21/translated/zh_cn/develop/events.md +++ b/versions/1.21/translated/zh_cn/develop/events.md @@ -41,7 +41,7 @@ Fabric API 提供的所有事件回调接口,可见 `net.fabricmc.fabric.api.e 这个例子注册一个 `AttackBlockCallback`,当玩家徒手击打不掉落物品的方块时,伤害玩家。 -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/event/FabricDocsReferenceEvents.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/event/FabricDocsReferenceEvents.java) ### 将物品添加到已存在的战利品表{#adding-items-to-existing-loot-tables} @@ -55,7 +55,7 @@ Fabric API 提供的所有事件回调接口,可见 `net.fabricmc.fabric.api.e Fabric API 有一个在加载战利品表时触发的事件,即 `LootTableEvents.MODIFY`。 可以在你的模组的[初始化器](./getting-started/project-structure#entrypoints)中注册回调。 我们还要检查一下监听的战利品表是否是煤炭矿石战利品表。 -@[code lang=java transclude={38-40}](@/reference/latest/src/main/java/com/example/docs/event/FabricDocsReferenceEvents.java) +@[code lang=java transclude={38-40}](@/reference/1.21/src/main/java/com/example/docs/event/FabricDocsReferenceEvents.java) #### 将物品添加到战利品表{#adding-items-to-the-loot-table} @@ -65,7 +65,7 @@ Fabric API 有一个在加载战利品表时触发的事件,即 `LootTableEven 我们的战利品池中没有任何项目,因此我们将使用 `ItemEntry#builder` 创建一个物品条目,并将其添加到战利品池中。 -@[code highlight={6-7} transcludeWith=:::2](@/reference/latest/src/main/java/com/example/docs/event/FabricDocsReferenceEvents.java) +@[code highlight={6-7} transcludeWith=:::2](@/reference/1.21/src/main/java/com/example/docs/event/FabricDocsReferenceEvents.java) ## 自定义事件{#custom-events} @@ -89,34 +89,34 @@ Fabric API 有一个在加载战利品表时触发的事件,即 `LootTableEven 您将需要创建一个带有 `Event` 实例和响应实现方法的接口。 一个典型的剪羊毛回调像是这样: -@[code lang=java transcludeWith=:::](@/reference/latest/src/main/java/com/example/docs/event/SheepShearCallback.java) +@[code lang=java transcludeWith=:::](@/reference/1.21/src/main/java/com/example/docs/event/SheepShearCallback.java) 让我们更深入地看看。 当 invoker 被调用时,我们将遍历所有监听器: -@[code lang=java transclude={21-22}](@/reference/latest/src/main/java/com/example/docs/event/SheepShearCallback.java) +@[code lang=java transclude={21-22}](@/reference/1.21/src/main/java/com/example/docs/event/SheepShearCallback.java) 然后在监听器上调用我们的方法(在本例中为 `interact`)来获取响应: -@[code lang=java transclude={33-33}](@/reference/latest/src/main/java/com/example/docs/event/SheepShearCallback.java) +@[code lang=java transclude={33-33}](@/reference/1.21/src/main/java/com/example/docs/event/SheepShearCallback.java) 如果监听器决定我们必须取消(`ActionResult.FAIL`)或者完成(`ActionResult.SUCCESS`)这个事件,回调将返回这个结果,并且结束循环。 `ActionResult.PASS` 将继续触发下一个监听器,并且在绝大多数没有注册多个监听器的情况下都应该返回 `ActionResult.SUCCESS`: -@[code lang=java transclude={25-30}](@/reference/latest/src/main/java/com/example/docs/event/SheepShearCallback.java) +@[code lang=java transclude={25-30}](@/reference/1.21/src/main/java/com/example/docs/event/SheepShearCallback.java) 我们可以在回调类的顶部添加 Javadoc 注释注明每一种 `ActionResult` 的作用。 在本例中,它应该是这样的: -@[code lang=java transclude={9-16}](@/reference/latest/src/main/java/com/example/docs/event/SheepShearCallback.java) +@[code lang=java transclude={9-16}](@/reference/1.21/src/main/java/com/example/docs/event/SheepShearCallback.java) ### 从 mixin 中触发事件{#triggering-the-event-from-a-mixin} 我们现在有基本的事件框架了,但还需要触发它。 我们希望在玩家试图剪羊毛时调用事件,所以我们要在当 `SheepEntity#interactMob` 中的`sheared()` 被调用时去调用事件的 `invoker`(例如:羊可以被剪毛且玩家手持剪刀) -@[code lang=java transcludeWith=:::](@/reference/latest/src/main/java/com/example/docs/mixin/event/SheepEntityMixin.java) +@[code lang=java transcludeWith=:::](@/reference/1.21/src/main/java/com/example/docs/mixin/event/SheepEntityMixin.java) ### 创建测试实现{#creating-a-test-implementation} 现在我们需要测试一下我们的事件。 你可以在初始化方法(如果需要,在其他区域也可以)中注册监听器,并在其中添加自定义逻辑。 这里有一个例子——羊的脚上掉落的不是羊毛,而是一颗钻石: -@[code lang=java transcludeWith=:::3](@/reference/latest/src/main/java/com/example/docs/event/FabricDocsReferenceEvents.java) +@[code lang=java transcludeWith=:::3](@/reference/1.21/src/main/java/com/example/docs/event/FabricDocsReferenceEvents.java) 如果你进入游戏并剪羊毛,掉落的应该是钻石而不是羊毛。 diff --git a/versions/1.21/translated/zh_cn/develop/getting-started/project-structure.md b/versions/1.21/translated/zh_cn/develop/getting-started/project-structure.md index facafd59b..4f240d9c2 100644 --- a/versions/1.21/translated/zh_cn/develop/getting-started/project-structure.md +++ b/versions/1.21/translated/zh_cn/develop/getting-started/project-structure.md @@ -25,7 +25,7 @@ authors: 下面看到的是示例的 `fabric.mod.json` 文件——这是该文档的开发参考项目的 `fabric.mod.json` 文件。 :::details 参考项目 `fabric.mod.json` -@[code lang=json](@/reference/latest/src/main/resources/fabric.mod.json) +@[code lang=json](@/reference/1.21/src/main/resources/fabric.mod.json) ::: ## 入口点{#entrypoints} @@ -41,7 +41,7 @@ authors: 这是一个简单的 `main` 入口点的使用示例,会在游戏开始时记录一条消息到控制台: -@[code lang=java transcludeWith=#entrypoint](@/reference/latest/src/main/java/com/example/docs/FabricDocsReference.java) +@[code lang=java transcludeWith=#entrypoint](@/reference/1.21/src/main/java/com/example/docs/FabricDocsReference.java) ## `src/main/resources`{#src-main-resources} diff --git a/versions/1.21/translated/zh_cn/develop/index.md b/versions/1.21/translated/zh_cn/develop/index.md index 8fd5e1c63..c15bad856 100644 --- a/versions/1.21/translated/zh_cn/develop/index.md +++ b/versions/1.21/translated/zh_cn/develop/index.md @@ -9,6 +9,6 @@ description: 我们的社区编写的开发者指南,涵盖一切,从设置 完整的指南列表请检查侧边栏。 如果在寻找某个具体的话题,可以使用页面顶部的搜索栏找到你想要的。 -记住:包含本文档所有代码的完整有效模组可在 [GitHub 中的 `/reference` 文件夹](https://github.com/FabricMC/fabric-docs/tree/main/reference/latest)中找到。 +记住:包含本文档所有代码的完整有效模组可在 [GitHub 中的 `/reference` 文件夹](https://github.com/FabricMC/fabric-docs/tree/main/reference/1.21)中找到。 如果想给 Fabric 文档做贡献,可以在 [GitHub](https://github.com/FabricMC/fabric-docs) 找到本项目的源代码,以及相关的[贡献指南](../contributing)。 diff --git a/versions/1.21/translated/zh_cn/develop/items/custom-armor.md b/versions/1.21/translated/zh_cn/develop/items/custom-armor.md index 6900b17c5..08ac35604 100644 --- a/versions/1.21/translated/zh_cn/develop/items/custom-armor.md +++ b/versions/1.21/translated/zh_cn/develop/items/custom-armor.md @@ -35,7 +35,7 @@ public void onInitialize() { 在这个 `ModArmorMaterials` 类中,你还会需要创建一个静态方法,注册盔甲材料。 这个方块应该会返回材料的一个注册表项,因为这个项会用于 ArmorItem 的构造方法中创建盔甲物品。 -@[code transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/item/armor/ModArmorMaterials.java) +@[code transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/item/armor/ModArmorMaterials.java) ## 盔甲材料属性{#armor-material-properties} @@ -85,7 +85,7 @@ public void onInitialize() { 看这个例子,我们创建 Guidite 盔甲,有以下属性: -@[code transcludeWith=:::2](@/reference/latest/src/main/java/com/example/docs/item/armor/ModArmorMaterials.java) +@[code transcludeWith=:::2](@/reference/1.21/src/main/java/com/example/docs/item/armor/ModArmorMaterials.java) ## 创建盔甲物品{#creating-the-armor-items} @@ -103,11 +103,11 @@ public void onInitialize() { 对于 Guidite 盔甲,我们使用存储在盔甲材料中的共享盔甲倍率。 -@[code transcludeWith=:::3](@/reference/latest/src/main/java/com/example/docs/item/armor/ModArmorMaterials.java) +@[code transcludeWith=:::3](@/reference/1.21/src/main/java/com/example/docs/item/armor/ModArmorMaterials.java) 然后,使用耐久度常数创建盔甲物品。 -@[code transcludeWith=:::6](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::6](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) 如果需要让物品能从创造模式物品栏获取的话,还需要**给将物品添加到物品组**。 @@ -132,7 +132,7 @@ public void onInitialize() { 你需要所有物品的模型 JSON 文件,不只是头盔,这原则和其他物品模型一样。 ::: -@[code](@/reference/latest/src/main/resources/assets/fabric-docs-reference/models/item/guidite_helmet.json) +@[code](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/models/item/guidite_helmet.json) 可以看到,游戏内的盔甲物品应该有合适的模型: diff --git a/versions/1.21/translated/zh_cn/develop/items/custom-data-components.md b/versions/1.21/translated/zh_cn/develop/items/custom-data-components.md index a84a27203..04a9d60bc 100644 --- a/versions/1.21/translated/zh_cn/develop/items/custom-data-components.md +++ b/versions/1.21/translated/zh_cn/develop/items/custom-data-components.md @@ -19,7 +19,7 @@ authors: 把这个组件放到一个合理的类中。 对于这个例子,我们创建一个新的包,叫做 `compoennt`,以及一个类,叫做 `ModComponents`,包含我们所有的组件类型。 确保在你的[模组的初始化器](./getting-started/project-structure#entrypoints)中调用 `ModComponents.initialize()`。 -@[code transcludeWith=::1](@/reference/latest/src/main/java/com/example/docs/component/ModComponents.java) +@[code transcludeWith=::1](@/reference/1.21/src/main/java/com/example/docs/component/ModComponents.java) 这是注册一个组件类型的基本模板: @@ -43,7 +43,7 @@ public static final ComponentType MY_COMPONENT_TYPE = Registry.register( 例如,我们创建一个 `Integer` 值,追踪玩家手持我们的物品右键点击了多少次。 参照下面的代码,更新刚刚注册组件的代码。 -@[code transcludeWith=::2](@/reference/latest/src/main/java/com/example/docs/component/ModComponents.java) +@[code transcludeWith=::2](@/reference/1.21/src/main/java/com/example/docs/component/ModComponents.java) 可以提到,我们这里将 `` 传入作为我们的泛型类型,表示这个组件会存储为单个的 `int` 值。 对于我们的 codec,直接使用提供的 `Codec.INC` codec 就可以了。 对于这样简单的组件,可以使用基本的 codec,但是更加复杂的情形可能需要自定义的 codec(后面就会讲到)。 @@ -57,7 +57,7 @@ public static final ComponentType MY_COMPONENT_TYPE = Registry.register( 添加新物品,每次右键点击时都会增加计数器。 可以阅读[自定义物品交互](./custom-item-interactions)页面以了解我们在这个教程中使用的技巧。 -@[code transcludeWith=::1](@/reference/latest/src/main/java/com/example/docs/item/custom/CounterItem.java) +@[code transcludeWith=::1](@/reference/1.21/src/main/java/com/example/docs/item/custom/CounterItem.java) 记得要和平时一样,在 `ModItems` 类中注册物品。 @@ -117,7 +117,7 @@ java.lang.NullPointerException: Cannot invoke "java.lang.Integer.intValue()" bec 当你注册你的物品并传递 `Item.Settings` 对象到你的物品构造器中,你还可以提供应用于所有新物品的默认组件的列表。 如果回到我们的 `ModItems` 类,注册 `CounterItem` 的地方,就可以为我们的自定义组件添加默认值。 添加这个,这样新物品会显示计数为 `0`。 -@[code transcludeWith=::_13](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=::_13](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) 创建了新物品后,就会自动为我们的自定义组件应用给定的值。 @@ -147,7 +147,7 @@ boolean exists = stack.contains(ModComponents.CLICK_COUNT_COMPONENT); 我们现在以第三个选项开始。 添加了默认的组件值,还需要检测组件是否存在于物品堆中,只有存在时才显示提示。 -@[code transcludeWith=::3](@/reference/latest/src/main/java/com/example/docs/item/custom/CounterItem.java) +@[code transcludeWith=::3](@/reference/1.21/src/main/java/com/example/docs/item/custom/CounterItem.java) 再次启动游戏,并将鼠标悬停在没有组件的物品上,你应该看到显示的是“使用了 0 次”并不再崩溃游戏。 @@ -179,7 +179,7 @@ int oldValue = stack.set(ModComponents.CLICK_COUNT_COMPONENT, newValue); 我们调用 `use()` 方法,先读旧的点击次数,增加一,然后设置新的点击次数。 -@[code transcludeWith=::2](@/reference/latest/src/main/java/com/example/docs/item/custom/CounterItem.java) +@[code transcludeWith=::2](@/reference/1.21/src/main/java/com/example/docs/item/custom/CounterItem.java) 尝试启动游戏并右键点击手中的计数器物品。 如果打开物品栏并再次看看物品,应该就会发现,使用次数随点击的次数增加了。 @@ -212,11 +212,11 @@ public record MyCustomComponent() { 注意类名后有一组括号。 这里我们定义组件需要有的一系列的属性。 先添加一个浮点数和布尔值,分别叫做 `temperature` 和 `burnt`。 -@[code transcludeWith=::1](@/reference/latest/src/main/java/com/example/docs/component/MyCustomComponent.java) +@[code transcludeWith=::1](@/reference/1.21/src/main/java/com/example/docs/component/MyCustomComponent.java) 因为我们定义自定义的数据结构,所以这种情况下不会像[基本组件](#basic-data-components)那样有预先存在的 `Codec`。 也就是说,需要创建自己的 codec。 我们在 record 类中使用 `RecordCodecBuilder` 定义一个,这样在注册组件时就可以引用。 关于使用 `RecordCodecBuilder` 的更多细节,请参考 [Codec 页面的这个章节](../codecs#merging-codecs-for-record-like-classes)。 -@[code transcludeWith=::2](@/reference/latest/src/main/java/com/example/docs/component/MyCustomComponent.java) +@[code transcludeWith=::2](@/reference/1.21/src/main/java/com/example/docs/component/MyCustomComponent.java) 你可以看到我们基于原始的 `Codec` 类型定义了一系列的自定义字段。 我们用 `fieldOf()` 来说明我们的字段叫做什么,然后用 `forGetter()` 告诉游戏怎样从记录中获取该字段。 @@ -226,7 +226,7 @@ public record MyCustomComponent() { 注册“合成”组件和之前类似, 就只需要传入我们的 record 类作为泛型类型,以及给 `codec()` 方法传入自定义的 `Codec`。 -@[code transcludeWith=::3](@/reference/latest/src/main/java/com/example/docs/component/ModComponents.java) +@[code transcludeWith=::3](@/reference/1.21/src/main/java/com/example/docs/component/ModComponents.java) 现在启动游戏, 使用 `/give` 命令,尝试应用组件。 合成组件的值传入时是作为对象,用 `{}` 包围起来。 如果用空的花括号,会看到错误,提示你缺少必需的键 `temperature`。 diff --git a/versions/1.21/translated/zh_cn/develop/items/custom-item-groups.md b/versions/1.21/translated/zh_cn/develop/items/custom-item-groups.md index 790a4961b..db0160056 100644 --- a/versions/1.21/translated/zh_cn/develop/items/custom-item-groups.md +++ b/versions/1.21/translated/zh_cn/develop/items/custom-item-groups.md @@ -13,9 +13,9 @@ authors: 创建物品组极其容易。 只要在你的物品类中简单创建一个新的 static final 字段,存储物品组以及注册表键,就可以使用物品组事件,类型于给原版物品组添加物品的方式: -@[code transcludeWith=:::9](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::9](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) -@[code transcludeWith=:::_12](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::_12](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java)
diff --git a/versions/1.21/translated/zh_cn/develop/items/custom-item-interactions.md b/versions/1.21/translated/zh_cn/develop/items/custom-item-interactions.md index 54428aa75..86c98b179 100644 --- a/versions/1.21/translated/zh_cn/develop/items/custom-item-interactions.md +++ b/versions/1.21/translated/zh_cn/develop/items/custom-item-interactions.md @@ -58,11 +58,11 @@ TypedActionResult.success(heldStack); 假设你想制作一个在玩家面前召唤闪电的物品,这显然需要创建一个自定义的物品类。 -@[code transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/item/custom/LightningStick.java) +@[code transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/item/custom/LightningStick.java) `use` 事件可能是最有用的事件之一:你可以利用这个事件来召唤闪电。下面的代码实现了在玩家面向的方向前10个方块的位置生成闪电。 -@[code transcludeWith=:::2](@/reference/latest/src/main/java/com/example/docs/item/custom/LightningStick.java) +@[code transcludeWith=:::2](@/reference/1.21/src/main/java/com/example/docs/item/custom/LightningStick.java) 同样的,你需要注册物品,并添加模型和纹理。 diff --git a/versions/1.21/translated/zh_cn/develop/items/custom-tools.md b/versions/1.21/translated/zh_cn/develop/items/custom-tools.md index 62563493b..982d12923 100644 --- a/versions/1.21/translated/zh_cn/develop/items/custom-tools.md +++ b/versions/1.21/translated/zh_cn/develop/items/custom-tools.md @@ -19,11 +19,11 @@ If you're creating multiple tool materials, consider using an `Enum` to store th 为了创建一个工具材料,你可以创建一个继承它的、新的类——在此示例中,将创建 Guidite 质的工具: -@[code transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) +@[code transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) 创建了工具原型并根据自己的喜好对其进行了调整后,你就可以创建它的一个实例以用于工具物品构造函数。 -@[code transcludeWith=:::8](@/reference/latest/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) +@[code transcludeWith=:::8](@/reference/1.21/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) 工具原型向游戏告知以下信息: @@ -31,13 +31,13 @@ If you're creating multiple tool materials, consider using an `Enum` to store th 该工具在损坏前可被使用多少次: -@[code transcludeWith=:::2](@/reference/latest/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) +@[code transcludeWith=:::2](@/reference/1.21/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) ### 挖掘速度 - `getMiningSpeedMultiplier()` {#mining-speed} 如果该工具用来破坏方块,那么它破坏方块的速度应该多快? -@[code transcludeWith=:::3](@/reference/latest/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) +@[code transcludeWith=:::3](@/reference/1.21/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) 作为参考,钻石工具材料的挖掘速度为 `8.0F`,而石质工具材料的挖掘速度为 `4.0F`。 @@ -45,7 +45,7 @@ If you're creating multiple tool materials, consider using an `Enum` to store th 将工具作为武器攻击别的实体时,应该造成多少点伤害? -@[code transcludeWith=:::4](@/reference/latest/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) +@[code transcludeWith=:::4](@/reference/1.21/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) ### 反向标签 - `getMiningLevel()` {#inverse-tag} @@ -65,7 +65,7 @@ If you're creating multiple tool materials, consider using an `Enum` to store th 我们使用铁制工具标签。 铁制工具标签会阻止 Guidite 工具开采需要用比铁制工具更强的的工具来开采的方块。 -@[code transcludeWith=:::5](@/reference/latest/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) +@[code transcludeWith=:::5](@/reference/1.21/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) 如果你想自定义标签,可以使用 `TagKey.of(...)` 来创建自定义标签键。 @@ -73,29 +73,29 @@ If you're creating multiple tool materials, consider using an `Enum` to store th 这个物品在附魔台中附上更好、更高级的附魔有多轻松? 作为参考和比较,金质的附魔等级为 22,而下界合金的附魔等级为 15。 -@[code transcludeWith=:::6](@/reference/latest/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) +@[code transcludeWith=:::6](@/reference/1.21/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) ### 修复原料 - `getRepairIngredient()` {#repair-ingredient} 使用什么物品来修理该工具? -@[code transcludeWith=:::7](@/reference/latest/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) +@[code transcludeWith=:::7](@/reference/1.21/src/main/java/com/example/docs/item/tool/GuiditeMaterial.java) ## 创建工具物品{#creating-tool-items} 使用与 [创建你的第一个物品](./first-item) 指南中相同的实用功能,你可以创建工具物品: -@[code transcludeWith=:::7](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::7](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) 如果你想从创造物品栏中访问它们,请记得将它们添加到物品组中! -@[code transcludeWith=:::8](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::8](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) 你还得添加纹理、物品翻译和物品模型。 然而,对于物品模型,你需要使用 `item/handheld` 模型作为你的父级。 在此示例中,我将对“Guidite Sword”物品使用以下模型和纹理: -@[code](@/reference/latest/src/main/resources/assets/fabric-docs-reference/models/item/guidite_sword.json) +@[code](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/models/item/guidite_sword.json) 纹理 diff --git a/versions/1.21/translated/zh_cn/develop/items/first-item.md b/versions/1.21/translated/zh_cn/develop/items/first-item.md index 6502c0c63..2191d37f7 100644 --- a/versions/1.21/translated/zh_cn/develop/items/first-item.md +++ b/versions/1.21/translated/zh_cn/develop/items/first-item.md @@ -22,7 +22,7 @@ authors: Mojang 也是对物品这么做的! 看看 `Items` 类以了解。 -@[code transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) ## 注册物品{#registering-an-item} @@ -36,15 +36,15 @@ If you want to change your item's stack size, you can use the `maxCount` method 如果将物品标记为可被破坏,那么这就不会生效,因为可被破坏的物品的堆叠大小永远是 1 以避免重复损坏。 ::: -@[code transcludeWith=:::2](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::2](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) 然而,如果现在尝试运行修改的客户端,会发现我们的物品在游戏中还不存在! 这是因为你还没有静态初始化类。 要这样做,你需要在你的类中添加静态的 initialize 方法,然后在你的[模组的初始化类](./getting-started/project-structure#entrypoints)中调用。 当前,方法不需要里面有任何东西。 -@[code transcludeWith=:::3](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::3](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) -@[code transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/item/FabricDocsReferenceItems.java) +@[code transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/item/FabricDocsReferenceItems.java) 对类调用一个方法会静态初始化,如果还没有加载的话——这意味着所有的 `static` 字段都会计算。 这就是这个占位的 `initialize` 的方法的目的。 @@ -58,7 +58,7 @@ If you want to change your item's stack size, you can use the `maxCount` method 你可以在你的物品类的 `initialize` 方法中完成。 -@[code transcludeWith=:::4](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::4](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) 载入游戏,你会看到我们的物品已经注册好了,并且在原材料物品组中。 @@ -98,7 +98,7 @@ If you want to change your item's stack size, you can use the `maxCount` method 在 `assets//models/item` 文件夹内创建模型 JSON,名称与物品相同, `suspicious_substance.json` -@[code](@/reference/latest/src/main/resources/assets/fabric-docs-reference/models/item/suspicious_substance.json) +@[code](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/models/item/suspicious_substance.json) ### 逐个分析模型 JSON{#breaking-down-the-model-json} @@ -119,11 +119,11 @@ Fabric API 添加了各种注册表,可用于为物品添加额外属性。 例如,要让物品可堆肥,可以使用 `CompostableItemRegistry`: -@[code transcludeWith=:::_10](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::_10](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) 又如,如果要让物品可作燃料,可以使用 `FuelRegistry` 类。 -@[code transcludeWith=:::_11](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::_11](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) ## 添加基本的合成配方 {#adding-a-basic-crafting-recipe} @@ -144,7 +144,7 @@ Fabric API 添加了各种注册表,可用于为物品添加额外属性。 这个例子使用 `LightningStick` 类,这是在[自定义物品交互](./custom-item-interactions)页面创建的。 ::: -@[code lang=java transcludeWith=:::3](@/reference/latest/src/main/java/com/example/docs/item/custom/LightningStick.java) +@[code lang=java transcludeWith=:::3](@/reference/1.21/src/main/java/com/example/docs/item/custom/LightningStick.java) 每次调用 `add()` 都会添加一行提示。 diff --git a/versions/1.21/translated/zh_cn/develop/items/food.md b/versions/1.21/translated/zh_cn/develop/items/food.md index 054f20359..f7a86ae4d 100644 --- a/versions/1.21/translated/zh_cn/develop/items/food.md +++ b/versions/1.21/translated/zh_cn/develop/items/food.md @@ -37,11 +37,11 @@ new Item.Settings().food(new FoodComponent.Builder().build()) 按照你的喜好修改了 builder 后,可以调用 `build()` 方法以获取 `FoodComponent`。 -@[code transcludeWith=:::5](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::5](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) 与 [创建你的第一个物品](./first-item) 类似,该示例将使用上述的组件: -@[code transcludeWith=:::poisonous_apple](@/reference/latest/src/main/java/com/example/docs/item/ModItems.java) +@[code transcludeWith=:::poisonous_apple](@/reference/1.21/src/main/java/com/example/docs/item/ModItems.java) 这会让物品: diff --git a/versions/1.21/translated/zh_cn/develop/items/potions.md b/versions/1.21/translated/zh_cn/develop/items/potions.md index 4f9c1fbb2..751ce15d5 100644 --- a/versions/1.21/translated/zh_cn/develop/items/potions.md +++ b/versions/1.21/translated/zh_cn/develop/items/potions.md @@ -20,7 +20,7 @@ authors: 让我们从声明一个用于储存你的 `Potion` 实例的字段开始。 我们将直接使用 `ModInitializer`——实现这个类来持有这个字段。 -@[code lang=java transclude={18-27}](@/reference/latest/src/main/java/com/example/docs/potion/FabricDocsReferencePotions.java) +@[code lang=java transclude={18-27}](@/reference/1.21/src/main/java/com/example/docs/potion/FabricDocsReferencePotions.java) 我们传入一个 `StatusEffectInstance` 实例,它的构造方法接收以下 3 个参数: @@ -36,7 +36,7 @@ authors: 在我们的初始化器中,我们将使用 `FabricBrewingRecipeRegistryBuilder.BUILD` 事件,使用 `BrewingRecipeRegistry.registerPotionRecipe` 方法注册我们的药水。 -@[code lang=java transclude={29-42}](@/reference/latest/src/main/java/com/example/docs/potion/FabricDocsReferencePotions.java) +@[code lang=java transclude={29-42}](@/reference/1.21/src/main/java/com/example/docs/potion/FabricDocsReferencePotions.java) `registerPotionRecipe` 接收以下 3 个参数: diff --git a/versions/1.21/translated/zh_cn/develop/rendering/basic-concepts.md b/versions/1.21/translated/zh_cn/develop/rendering/basic-concepts.md index df9fc44ac..13903c067 100644 --- a/versions/1.21/translated/zh_cn/develop/rendering/basic-concepts.md +++ b/versions/1.21/translated/zh_cn/develop/rendering/basic-concepts.md @@ -111,7 +111,7 @@ drawContext.getMatrices().peek().getPositionMatrix(); 因为在这个例子中我们在平视显示器(HUD)上绘制,我们将使用 `HudRenderCallback` 事件: -@[code lang=java transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/rendering/RenderingConceptsEntrypoint.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/rendering/RenderingConceptsEntrypoint.java) 在平视显示器(HUD)上绘制的结果如下: @@ -143,7 +143,7 @@ You must first push the matrix stack and then pop it after you're done with it. 在获取变换矩阵前,请确保向矩阵栈压入一个新的矩阵! ::: -@[code lang=java transcludeWith=:::2](@/reference/latest/src/client/java/com/example/docs/rendering/RenderingConceptsEntrypoint.java) +@[code lang=java transcludeWith=:::2](@/reference/1.21/src/client/java/com/example/docs/rendering/RenderingConceptsEntrypoint.java) ![一段展示菱形放大和缩小的视频](/assets/develop/rendering/concepts-matrix-stack.webp) @@ -155,7 +155,7 @@ You must first push the matrix stack and then pop it after you're done with it. 不妨让我们尝试绕 z 轴旋转我们的菱形。 我们可以通过 `MatrixStack` 和 `multiply(Quaternion, x, y, z)` 方法来实现。 -@[code lang=java transcludeWith=:::3](@/reference/latest/src/client/java/com/example/docs/rendering/RenderingConceptsEntrypoint.java) +@[code lang=java transcludeWith=:::3](@/reference/1.21/src/client/java/com/example/docs/rendering/RenderingConceptsEntrypoint.java) 这会产生如下结果: diff --git a/versions/1.21/translated/zh_cn/develop/rendering/draw-context.md b/versions/1.21/translated/zh_cn/develop/rendering/draw-context.md index 49910329d..daee697a1 100644 --- a/versions/1.21/translated/zh_cn/develop/rendering/draw-context.md +++ b/versions/1.21/translated/zh_cn/develop/rendering/draw-context.md @@ -19,7 +19,7 @@ authors: 可以使用 `DrawContext.fill(...)` 方法绘制一个实心矩形。 -@[code lang=java transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) ![矩形](/assets/develop/rendering/draw-context-rectangle.png) @@ -27,7 +27,7 @@ authors: 假设我们想勾勒出刚刚绘制的矩形的轮廓。 我们可以使用 `DrawContext.drawBorder(...)` 方法来绘制轮廓。 -@[code lang=java transcludeWith=:::2](@/reference/latest/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) +@[code lang=java transcludeWith=:::2](@/reference/1.21/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) ![带边框的矩形](/assets/develop/rendering/draw-context-rectangle-border.png) @@ -35,7 +35,7 @@ authors: 我们可以使用 `DrawContext.drawHorizontalLine(...)` 和 `DrawContext drawVerticalLine(...)` 来绘制线条。 -@[code lang=java transcludeWith=:::3](@/reference/latest/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) +@[code lang=java transcludeWith=:::3](@/reference/1.21/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) ![线条](/assets/develop/rendering/draw-context-lines.png) @@ -51,7 +51,7 @@ authors: 要启用裁剪管理器,只需使用 `DrawContext.enableScissor(...)` 方法。 同样地,要禁用裁剪管理器,使用 `DrawContext.disableScissor()` 方法。 -@[code lang=java transcludeWith=:::4](@/reference/latest/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) +@[code lang=java transcludeWith=:::4](@/reference/1.21/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) ![裁剪区域](/assets/develop/rendering/draw-context-scissor.png) @@ -65,7 +65,7 @@ authors: 一般来说,我们推荐您使用需要指定 `textureWidth` 和 `textureHeight` 参数的 `drawTexture` 方法重载。 因为如果使用不指定的重载, `DrawContext` 会假设您的纹理文件尺寸是 256x256,而您的纹理文件不一定是这个尺寸,于是渲染结果就不一定正确。 -@[code lang=java transcludeWith=:::5](@/reference/latest/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) +@[code lang=java transcludeWith=:::5](@/reference/1.21/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) ![绘制整个纹理](/assets/develop/rendering/draw-context-whole-texture.png) @@ -79,7 +79,7 @@ authors: 如果我们只希望绘制包含放大镜的区域,我们可以使用如下 `u`、`v`、`regionWidth`、`regionHeight` 值: -@[code lang=java transcludeWith=:::6](@/reference/latest/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) +@[code lang=java transcludeWith=:::6](@/reference/1.21/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) ![区域纹理](/assets/develop/rendering/draw-context-region-texture.png) @@ -89,6 +89,6 @@ authors: 假设我们想在屏幕中绘制“Hello World”。 我们可以使用 `DrawContext.drawText(...)` 方法来完成。 -@[code lang=java transcludeWith=:::7](@/reference/latest/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) +@[code lang=java transcludeWith=:::7](@/reference/1.21/src/client/java/com/example/docs/rendering/DrawContextExampleScreen.java) ![绘制文字](/assets/develop/rendering/draw-context-text.png) diff --git a/versions/1.21/translated/zh_cn/develop/rendering/gui/custom-screens.md b/versions/1.21/translated/zh_cn/develop/rendering/gui/custom-screens.md index 55be5bb5a..debfbc4d9 100644 --- a/versions/1.21/translated/zh_cn/develop/rendering/gui/custom-screens.md +++ b/versions/1.21/translated/zh_cn/develop/rendering/gui/custom-screens.md @@ -28,7 +28,7 @@ authors: 举个例子,我们可以创建一个简单的界面,这个界面有一个按钮和一个按钮的标签。 -@[code lang=java transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/rendering/screens/CustomScreen.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/rendering/screens/CustomScreen.java) ![自定义界面 1](/assets/develop/rendering/gui/custom-1-example.png) @@ -52,7 +52,7 @@ MinecraftClient.getInstance().setScreen(null); 如果您希望在关闭界面时回退到上一个界面,您可以将当前界面对象传入自定义的 `CustomScreen` 构造方法,把它保存为字段,然后覆写 `close` 方法,将实现修改为 `this.client.setScreen(/* 您保存的上一个界面 */)` 即可。 -@[code lang=java transcludeWith=:::2](@/reference/latest/src/client/java/com/example/docs/rendering/screens/CustomScreen.java) +@[code lang=java transcludeWith=:::2](@/reference/1.21/src/client/java/com/example/docs/rendering/screens/CustomScreen.java) 现在,当您按照上面的步骤打开界面时,您可以给构造方法的第二个参数传入当前界面对象,这样当您调用 `CustomScreen#close` 的时候,游戏就会回到上一个界面。 diff --git a/versions/1.21/translated/zh_cn/develop/rendering/gui/custom-widgets.md b/versions/1.21/translated/zh_cn/develop/rendering/gui/custom-widgets.md index c52128eeb..52b1e0068 100644 --- a/versions/1.21/translated/zh_cn/develop/rendering/gui/custom-widgets.md +++ b/versions/1.21/translated/zh_cn/develop/rendering/gui/custom-widgets.md @@ -18,13 +18,13 @@ authors: - `Narratable` 用于无障碍,让组件能够通过屏幕阅读器或其他无障碍工具访问。 - `Selectable` 用于选择,实现此接口后组件可以由 Tab 键选中,这也能帮助无障碍。 -@[code lang=java transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/rendering/screens/CustomWidget.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/rendering/screens/CustomWidget.java) ## 将组件添加到屏幕{#adding-the-widget-to-the-screen} 如同其他组件,您需要使用 `Screen#addDrawableChild` 来将组件添加到界面中。 请确保这一步在 `Screen#init` 方法中完成。 -@[code lang=java transcludeWith=:::3](@/reference/latest/src/client/java/com/example/docs/rendering/screens/CustomScreen.java) +@[code lang=java transcludeWith=:::3](@/reference/1.21/src/client/java/com/example/docs/rendering/screens/CustomScreen.java) ![屏幕中的自定义组件](/assets/develop/rendering/gui/custom-widget-example.png) @@ -34,6 +34,6 @@ authors: 举个例子,您可以使用 `ClickableWidget#isHovered` 方法来使组件在鼠标悬停时变色。 -@[code lang=java transcludeWith=:::2](@/reference/latest/src/client/java/com/example/docs/rendering/screens/CustomWidget.java) +@[code lang=java transcludeWith=:::2](@/reference/1.21/src/client/java/com/example/docs/rendering/screens/CustomWidget.java) ![鼠标悬停事件](/assets/develop/rendering/gui/custom-widget-events.webp) diff --git a/versions/1.21/translated/zh_cn/develop/rendering/hud.md b/versions/1.21/translated/zh_cn/develop/rendering/hud.md index c35870bed..8b6a03678 100644 --- a/versions/1.21/translated/zh_cn/develop/rendering/hud.md +++ b/versions/1.21/translated/zh_cn/develop/rendering/hud.md @@ -25,6 +25,6 @@ authors: 例如,假设要让颜色随时间变化。 可以使用 `deltaTickManager` 获得 deltaTick,并随时间存储以变化颜色。 -@[code lang=java transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/rendering/HudRenderingEntrypoint.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/rendering/HudRenderingEntrypoint.java) ![](/assets/develop/rendering/hud-rendering-deltatick.webp) diff --git a/versions/1.21/translated/zh_cn/develop/rendering/particles/creating-particles.md b/versions/1.21/translated/zh_cn/develop/rendering/particles/creating-particles.md index 3a1f548f7..ca19f481d 100644 --- a/versions/1.21/translated/zh_cn/develop/rendering/particles/creating-particles.md +++ b/versions/1.21/translated/zh_cn/develop/rendering/particles/creating-particles.md @@ -15,7 +15,7 @@ authors: 首先,需要在你的[模组初始化器](./getting-started/project-structure#entrypoints)中,使用你有模组 id,注册 `ParticleType`。 -@[code lang=java transcludeWith=#particle_register_main](@/reference/latest/src/main/java/com/example/docs/FabricDocsReference.java) +@[code lang=java transcludeWith=#particle_register_main](@/reference/1.21/src/main/java/com/example/docs/FabricDocsReference.java) 小写字母“sparkle_particle”是粒子纹理的 JSON 路径。 稍后就会以这个名字,创建新的 JSON 文件。 @@ -23,7 +23,7 @@ authors: 在模组的初始化器中注册粒子后,还需要在客户端的初始化器中注册粒子。 -@[code lang=java transcludeWith=#particle_register_client](@/reference/latest/src/client/java/com/example/docs/FabricDocsReferenceClient.java) +@[code lang=java transcludeWith=#particle_register_client](@/reference/1.21/src/client/java/com/example/docs/FabricDocsReferenceClient.java) 在这个例子中,我们在客户端注册我们的粒子。 使用末地烛粒子的 factory,给予粒子一些移动。 这意味着,我们的粒子就会像末地烛那样移动。 @@ -47,7 +47,7 @@ You can see all the particle factories by looking at all the implementations of 然后,在 `particles` 中创建新的 JSON 文件,名称与用于创建你的 ParticleType 的 JSON 路径相同。 例如,我们需要创建 `sparkle_particle.json`。 这个文件很重要,因为让 Minecraft 知道我们的粒子应该使用哪个纹理。 -@[code lang=json](@/reference/latest/src/main/resources/assets/fabric-docs-reference/particles/sparkle_particle.json) +@[code lang=json](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/particles/sparkle_particle.json) :::tip 可以给 `textures` 数组添加更多纹理以创建粒子动画。 粒子会在这个数组中循环纹理,以第一个纹理开始。 diff --git a/versions/1.21/translated/zh_cn/develop/sounds/custom.md b/versions/1.21/translated/zh_cn/develop/sounds/custom.md index aacc6d51c..d9b345759 100644 --- a/versions/1.21/translated/zh_cn/develop/sounds/custom.md +++ b/versions/1.21/translated/zh_cn/develop/sounds/custom.md @@ -33,7 +33,7 @@ authors: 如果 `resources/assets//sounds.json` 文件还未生成,继续创建该文件,并将你的音效添加到音效条目中。 -@[code lang=json](@/reference/latest/src/main/resources/assets/fabric-docs-reference/sounds.json) +@[code lang=json](@/reference/1.21/src/main/resources/assets/fabric-docs-reference/sounds.json) 字幕(subtitle)条目为玩家提供了更多的关于该声音的信息。 在 `resources/assets//lang` 目录下的语言文件中会用到声音文件,如果游戏内字幕设置已打开且正在播放自定义声音,则会显示这个字幕。 @@ -52,11 +52,11 @@ Registry.register(Registries.SOUND_EVENT, Identifier.of(MOD_ID, "metal_whistle") 在新创建的辅助类中添加两个新方法: 一个用于注册所有声音,一个用于初始化该类。 之后就可以根据需要,添加新的自定义 `SoundEvent` 常量了。 -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/sound/CustomSounds.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/sound/CustomSounds.java) 如此,模组的初始化器只需实现一行即可注册所有的自定义 SoundEvents。 -@[code lang=java transcludeWith=:::2](@/reference/latest/src/main/java/com/example/docs/sound/FabricDocsReferenceSounds.java) +@[code lang=java transcludeWith=:::2](@/reference/1.21/src/main/java/com/example/docs/sound/FabricDocsReferenceSounds.java) ## 使用自定义的 SoundEvent{#using-the-custom-soundevent} diff --git a/versions/1.21/translated/zh_cn/develop/sounds/using-sounds.md b/versions/1.21/translated/zh_cn/develop/sounds/using-sounds.md index 62d3fbe22..dc12228f7 100644 --- a/versions/1.21/translated/zh_cn/develop/sounds/using-sounds.md +++ b/versions/1.21/translated/zh_cn/develop/sounds/using-sounds.md @@ -15,11 +15,11 @@ Minecraft 有大量的声音供您选择。 查看 `SoundEvents` 类以查看 Mo 在此示例中,自定义交互项的 `useOnEntity()` 和 `useOnBlock()` 方法用于播放“放置铜块”和掠夺者声音。 -@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/item/CustomSoundItem.java) +@[code lang=java transcludeWith=:::1](@/reference/1.21/src/main/java/com/example/docs/item/CustomSoundItem.java) 播放声音事件(SoundEvent) 只需要指定 SoundEvent、音量(volume)和音高(pitch)。 `playerSound()` 方法与 `LivingEntity` 对象一起使用。 只需要指定 SoundEvent、音量(volume)和音高(pitch)。 您还可以使用世界实例中的 `playSound()` 方法以获得更高级别的控制。 -@[code lang=java transcludeWith=:::2](@/reference/latest/src/main/java/com/example/docs/item/CustomSoundItem.java) +@[code lang=java transcludeWith=:::2](@/reference/1.21/src/main/java/com/example/docs/item/CustomSoundItem.java) ### 声音事件与声音组(SoundCategory){#soundevent-and-soundcategory} diff --git a/versions/1.21/translated/zh_cn/develop/text-and-translations.md b/versions/1.21/translated/zh_cn/develop/text-and-translations.md index e7ac44fe6..fc62a887f 100644 --- a/versions/1.21/translated/zh_cn/develop/text-and-translations.md +++ b/versions/1.21/translated/zh_cn/develop/text-and-translations.md @@ -84,7 +84,7 @@ Text translatable = Text.translatable("my_mod.text.whack.item", victim.getDispla 前面提到过,可以使用 text codec 将文本序列化为 JSON。 更多关于 codec 的信息,请看 [Codec](./codecs) 页面。 -@[code transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/rendering/TextTests.java) +@[code transcludeWith=:::1](@/reference/1.21/src/client/java/com/example/docs/rendering/TextTests.java) 这会产生可用于数据包、命令和其他接受 JSON 格式文本而非字面或可翻译文本的地方的 JSON。 @@ -92,7 +92,7 @@ Text translatable = Text.translatable("my_mod.text.whack.item", victim.getDispla 要将 JSON 文本对象反序列化为 `Text` 类,还是使用 codec。 -@[code transcludeWith=:::2](@/reference/latest/src/client/java/com/example/docs/rendering/TextTests.java) +@[code transcludeWith=:::2](@/reference/1.21/src/client/java/com/example/docs/rendering/TextTests.java) ## 格式化文本{#formatting-text} diff --git a/versions/1.21/translated/zh_tw/contributing.md b/versions/1.21/translated/zh_tw/contributing.md index 9b8625212..72e423a88 100644 --- a/versions/1.21/translated/zh_tw/contributing.md +++ b/versions/1.21/translated/zh_tw/contributing.md @@ -82,7 +82,7 @@ npm run preview **範例:** ```md - <<< @/reference/latest/src/main/java/com/example/docs/FabricDocsReference.java{15-21 java} + <<< @/reference/1.21/src/main/java/com/example/docs/FabricDocsReference.java{15-21 java} ``` 這將在參考模組中嵌入 `FabricDocsReference.java` 檔案的第 15 至 21 行程式碼。 diff --git a/versions/1.21/translated/zh_tw/develop/getting-started/project-structure.md b/versions/1.21/translated/zh_tw/develop/getting-started/project-structure.md index d89317159..26cf4dbcb 100644 --- a/versions/1.21/translated/zh_tw/develop/getting-started/project-structure.md +++ b/versions/1.21/translated/zh_tw/develop/getting-started/project-structure.md @@ -25,7 +25,7 @@ authors: 下方是一個範例 `fabric.mod.json` 檔案 —— 這是此文檔網站的參考專案的 `fabric.mod.json` 檔案。 :::details 參考專案 `fabric.mod.json` -@[code lang=json](@/reference/latest/src/main/resources/fabric.mod.json) +@[code lang=json](@/reference/1.21/src/main/resources/fabric.mod.json) ::: ## Entrypoints {#entrypoints} @@ -34,7 +34,7 @@ authors: 模板模組生成器預設會創建一個 `main` 和一個 `client` 進入點 —— `main` 進入點用於共用的程式碼,而 `client` 進入點則用於客戶端特定的程式碼。 這些進入點會在遊戲啟動時分別被調用。 -@[code lang=java transcludeWith=#entrypoint](@/reference/latest/src/main/java/com/example/docs/FabricDocsReference.java) +@[code lang=java transcludeWith=#entrypoint](@/reference/1.21/src/main/java/com/example/docs/FabricDocsReference.java) 上面是一個簡單的 `main` 進入點範例,在遊戲啟動時向控制台記錄一條訊息。