diff --git a/src/lib/HtmlHead.svelte b/src/lib/HtmlHead.svelte
index 021e1cd..8e2f742 100644
--- a/src/lib/HtmlHead.svelte
+++ b/src/lib/HtmlHead.svelte
@@ -1,14 +1,15 @@
diff --git a/src/routes/[[locale=locale]]/[category]/[[article]]/+page.svelte b/src/routes/[[locale=locale]]/[category]/[[article]]/+page.svelte
index ed77352..321b40a 100644
--- a/src/routes/[[locale=locale]]/[category]/[[article]]/+page.svelte
+++ b/src/routes/[[locale=locale]]/[category]/[[article]]/+page.svelte
@@ -1,7 +1,8 @@
diff --git a/wiki/introduction/getting-started/fr.md b/wiki/introduction/getting-started/fr.md
index 959a040..abf82cb 100644
--- a/wiki/introduction/getting-started/fr.md
+++ b/wiki/introduction/getting-started/fr.md
@@ -14,14 +14,11 @@ Pour commencer à modder Minecraft, vous aurez besoins de deux choses.
## Comment Utiliser ce Wiki
-TODO: Create example code repository and put it here ([Issue #68](https://github.com/QuiltMC/developer-wiki/issues/68))
+
Ce wiki contient des pages qu'il vaut mieux lire dans l'ordre. Nombre de ces articles, surtout ceux au début, suggèrent d'autres articles avec lesquels continuer.
La plupart des pages contiennent des extraits de code, et des exemples complets de mods sont prévus. (ça n'est pas encore fait)
-Vous pourrez rencontrer des lignes qui commencent avec `TODO: `. Ce sont des notes pour les rédacteur·ice·s du wiki sur le travail qu'il reste à faire.
-Vous pouvez les ignorer pour l'instant, sachez simplement que plus de contenu sera inséré à leur place plus tard.
-
Dans le prochain article, vous mettrez en place votre premier mod pour débuter avec le développement de mod.
Une fois cela fais, il est recommandé d'apprendre à [Créer votre Premier Item](../items/first-item). Puis, si vous êtes près, vous pouvez apprendre à [ajoutez des blocs](../blocks/first-block), ou à créer des items plus avancés, tels que de la [nourriture](../items/food), des [outils](../items/tools) et des [armures](../items/armor).
@@ -57,9 +54,3 @@ sont là pour que vous puissiez en apprendre, n'ayez pas peur de les utiliser !
Il y a de nombreux sujets dans le modding pour lesquels vous ne trouverez pas de tutoriels. Dans ces cas là vous devrez soit comprendre le code de Minecraft impliqué, soit regarder le code d'autres mods pour comprendre comment ils accomplissent des choses similaires à ce que vous essayez de faire. Si vous voulez regarder le code source de Minecraft, lancez la tâche Gradle `genSourcesWithVineFlower` dans la catégorie `fabric` ou ouvez n'importe quel fichier source de Minecraft dans IntelliJ IDEA et cliquez sur le bouton "download sources".
-
-## Les différences entre Fabric et Quilt
-
-Quilt est basé sur Fabric. Cependant, il y a des différences clés entre les deux.
-
-TODO: Levi write your thing here
diff --git a/wiki/introduction/setting-up/fr.md b/wiki/introduction/setting-up/fr.md
index 20cef59..01c97e4 100644
--- a/wiki/introduction/setting-up/fr.md
+++ b/wiki/introduction/setting-up/fr.md
@@ -57,7 +57,10 @@ pour Minecraft qui est hautement recommandé. Vous pouvez l'obtenir ici :
Après avoir ouvert le projet, vous devriez voir une fenêtre qui ressembler vaguement à ça :
-TODO: Embed screenshot
+
+
+
+
Vous pouvez voir des barres latérales de chaque côté de la fenêtre avec des icônes pour accéder à différents outils.
En voici quelques uns qui vous seront utiles :
@@ -238,4 +241,4 @@ Enfin, rechargez le projet Gradle en appuyant sur ce bouton dans le menu Gradle
Après avoir complété toutes ces étapes, vous pouvez maintenant travailler sur votre mod !
-Vous pouvez commencer par [Créer votre Premier Item](../items/first-item).
+Vous pouvez commencer par ajouter du contenu avec les tutoriels ["Créer votre Premier Item"](../items/first-item) et [Ajouter un Bloc Simple](../blocks/first-block).
diff --git a/wiki/items/first-item/fr.md b/wiki/items/first-item/fr.md
index 336b64d..3005519 100644
--- a/wiki/items/first-item/fr.md
+++ b/wiki/items/first-item/fr.md
@@ -13,13 +13,20 @@ Les blocs, les entités, les items, les sons, les particules... tous ces différ
---
-Premièrement, nous devons créer une instance de `net.minecraft.item.Item` avec les paramètres de notre item.
+Premièrement, il faut que nous mettions en place un endroit pour les objets de notre mod. Créez une nouvelle classe nommée `ExampleModItems`, en renplaçant `ExampleMod` par le nom de votre mod, dans le même package que votre classe principale.
+Cela nous aidera à rester organiser si jamais notre mod s'aggrandit et ajoute plus d'un item.
-En théorie, nous pourrions faire ça directement dans la même ligne où nous enregistrons l'item,
+Ensuite, on va déclarer une instance de `net.minecraft.item.Item` avec les paramètres pour notre item.
+
+En théorie, nous pourrions passer cette étape et déclarer l'item en même temps qu'on lenregistre,
mais l'avoir dans une variable séparée nous permet d'y faire référence à d'autres endroit pour d'autres usages.
+`src/main/com/example/example_mod/ExampleModItems`:
+
```java
-public static final Item EXAMPLE_ITEM = new Item(new QuiltItemSettings());
+public class ExampleModItems {
+ public static final Item EXAMPLE_ITEM = new Item(new QuiltItemSettings());
+}
```
Ici, le `public static final` permet d'acceder à l'item ailleurs sans que l'on puisse changer la valeur de la variable en elle même,
@@ -32,11 +39,19 @@ mais dans notre cas nous utilisons simplement les paramètres par défaut.
---
-Après avoir déclaré l'item, nous devons dire au registre des items du jeu de l'inclure dans ce dernier.
-Pour ce faire nous ajoutons la ligne suivante dans le `ModInitializer` du mod (([Plus d'information sur les 'mod initializers' ici](../concepts/sideness#les-mod-initializers))) dans la méthode `onInitialize` :
+Après avoir déclaré l'item, nous devons l'enregistrer pour l'inclure dans le jeu.
+Nous allons mettre en place une méthode dans votre classe pour items responsable de l'enregistrement de tous vos items.
+Vous pouvez voir que l'on prend le `ModContainer` du mod comme paramètre pour que l'on puisse l'utiliser pour récupérer l'ID du mod.
+
+`src/main/com/example/example_mod/ExampleModItems`:
```java
-Registry.register(Registries.ITEM, new Identifier(mod.metadata().id(), "example_item"), EXAMPLE_ITEM);
+public class ExampleModItems {
+ // ...
+ public static void register(ModContainer mod) {
+ Registry.register(Registries.ITEM, new Identifier(mod.metadata().id(), "example_item"), EXAMPLE_ITEM);
+ }
+}
```
`Registry.register()` prend trois arguments :
@@ -46,6 +61,22 @@ Registry.register(Registries.ITEM, new Identifier(mod.metadata().id(), "example_
suivi du nom de l'item en lui même. Seules les lettres minuscules, les chiffres, les underscores, les tirets, les points et les slashs sont autorisés.
- L'`Item` à enregistrer. Ici, on passe l'item déclaré plus tôt.
+Enfin, nous devons nous assurer que la méthode `register()` est bien appelée pendant le démarrage du jeu.
+On peut accomplir cela en appelant la méthode dans le `ModInitializer` du mod ([plus d'informations sur les mod initializers ici!](../concepts/sideness#les-mod-initializers)) dans la méthode `onInitialize`:
+
+`src/main/com/example/example_mod/ExampleMod`:
+
+```java
+public class ExampleMod implements ModInitializer {
+ // ...
+ @Override
+ public void onInitialize(ModContainer mod) {
+ // ...
+ ExampleModItems.register(mod);
+ }
+}
+```
+
Une fois que vous avez fait tout ça, si on lance le jeu on peut voir que l'on peut se donner l'item avec la commande give : `/give @s simple_item_mod:example_item` !
Mais il n'apparait pas dans le menu du mode créatif, et il n'a pas de texture, et son nom n'a pas de traduction.
Comment réparer ça ?
@@ -59,10 +90,18 @@ en utilisant seulement les [Quilt Standard Libraries](../concepts/qsl-qfapi#les-
Grâce à la [Quilted Fabric API](../concepts/qsl-qfapi#la-quilted-fabric-api), qui est inclue dans le mod patron
et est téléchargée par les utilisateurs avec la QSL, on peut aussi l'utiliser avec Quilt :
+`src/main/com/example/example_mod/ExampleModItems`:
+
```java
-ItemGroupEvents.modifyEntriesEvent(ItemGroups.INGREDIENTS).register(entries -> {
- entries.addItem(EXAMPLE_ITEM);
-});
+public class ExampleModItems {
+ // ...
+ public static void register(ModContainer mod) {
+ // ...
+ ItemGroupEvents.modifyEntriesEvent(ItemGroups.INGREDIENTS).register (entries -> {
+ entries.addItem(EXAMPLE_ITEM);
+ });
+ }
+}
```
Ici on utilise l'API `ItemGroupEvents`. On récupère l'[événement](../concepts/events)
@@ -101,6 +140,8 @@ donc dans notre cas : `assets/simple_item_mod/textures/item/example_item.png`.
Enfin, on a besoin d'ajouter une traduction.
Mettez ceci dans `assets/simple_item_mod/lang/en_us.json`, en remplaçant l'identifiant du mod et le nom de l'item comme avant :
+`assets/simple_item_mod/lang/en_us.json`;
+
```json
{
"item.simple_item_mod.example_item": "Example Item"
diff --git a/wiki/misc/mappings/en.md b/wiki/misc/mappings/en.md
index a7ca976..1187700 100644
--- a/wiki/misc/mappings/en.md
+++ b/wiki/misc/mappings/en.md
@@ -2,7 +2,7 @@
## What are mappings?
-Before a new Minecraft version jar is published to Mojang's servers, it goes through a process called *obfuscation*,
+Before a new Minecraft version jar is published to Mojang's servers, it goes through a process called _obfuscation_,
where the human-readable class, field and method names are simplified to just a few letters, mainly to optimize the file
size. In addition, obfuscation makes code very difficult to understand, because those simplified names aren't just
contractions of the real names, they're completely random letters. This is where mappings come into play.
@@ -60,7 +60,7 @@ closing Enigma.
### Contributing the changes back to Quilt
To contribute your changes, you have to add and commit your changes, then push the changes to your fork of QM. This is
-really easy to do with an IDE, as described in [the Setting Up article][setting-up], but if you want you can also do it
+really easy to do with an IDE, as described in [the Setting Up article](../introduction/setting-up), but if you want you can also do it
from the command prompt or terminal with these commands.
```bash
@@ -105,15 +105,12 @@ their documentation or code to verify the version you want.
That's it! You can now reload gradle through your IDE to apply these changes, and use your new mappings when reading
Minecraft's code.
-
+
[Quilt Mappings]: https://github.com/QuiltMC/quilt-mappings
[QM CONTRIBUTING.md]: https://github.com/QuiltMC/quilt-mappings/blob/HEAD/CONTRIBUTING.md
[Fork QM]: https://github.com/QuiltMC/quilt-mappings/fork
[QM PRs]: https://github.com/QuiltMC/quilt-mappings/pulls
[Enigma]: https://github.com/QuiltMC/enigma
[Enigma guide]: https://github.com/QuiltMC/quilt-mappings/blob/HEAD/GUIDE.md
-
-[setting-up]: /en/introduction/setting-up
-
[Tiny V2]: https://fabricmc.net/wiki/documentation:tiny2
diff --git a/wiki/misc/mappings/fr.md b/wiki/misc/mappings/fr.md
new file mode 100644
index 0000000..9805e2d
--- /dev/null
+++ b/wiki/misc/mappings/fr.md
@@ -0,0 +1,137 @@
+# Personnaliser les Mappings dans votre Environnment de Développement
+
+## C'est quoi les mappings ?
+
+Avant que le jar d'une nouvelle version de Minecraft ne soit publiée sur les serveurs de Mojang,
+il passe par un procédé appelé l'_obfuscation_, qui simplifie les noms des classes, champs et méthodes à quelques lettres,
+surtout pour optimiser la taille du fichier. L'obfuscation rend le code très difficile à comprendre
+car ces noms simplifés ne sont pas de simples abreviations des vrais noms, ce sont des lettres complétement aléatoires.
+C'est là que les mappings interviennent.
+
+Un mapping est simplement le changement d'un nom à un autre, dans la plupart des cas d'un nom "obfusqué" vers un nom compréhensible.
+Chaque mapping peut aussi avoir des metadonnées supplémentaires, comme de la documentation.
+Un ensemble de mappings est souvent appelé juste des "mappings".
+Vous pouvez voir un ensemble de mappings comme un dictionnaire de traduction,
+dans lequel chaque mapping est une traduction d'un mot dans une autre langue.
+Ici les noms "obfusqués" serait le langage utilisé par l'ordinateur
+et le dictionnaire nous aide à traduire ça dans un langage qu'on peut comprendre.
+
+Bien qu'un simple ensemble de mappings d'"obfusqué" à compréhensible serait suffisant pour une version de Minecraft,
+les noms "obfusqués" ne sont pas constants d'une version de Minecraft à une autre : `DirtBlock` pourrait être "obfusqué"
+en `abc` en 1.19 mais en 1.20 ça pourrait être `def`.
+Il faudait donc garantir que les changement d'obfuscation entres deux versions reste minimal,
+un problème qui peut être résolu avec les mappings intermédiaires qui convertissent ces noms "obfusqués"
+en noms qui ne changeront pas d'une version à une autre mais qui ne sont quand même pas faits pour être compréhensibles.
+Quilt utilise Hashed Mojmap, dans lequel chaque classe, champ et méthode est préfixé par
+`C_`, `f_` et `m_` respectivement, suivi par un hash de 8 lettres.
+En développant des mods, vous rencontrerez surtout les mappings intermédiaires de Fabric,
+qui utilisent `class_`, `field_` et `method_`, suivit d'un nombre.
+Mojang publie également des mappings officiel, souvent appelés Mojmap (abreviation pour Moj(ang)-map(pings)),
+pour chaque version après la 1.14.
+Comme ils n'ont pas de mappings intermédiaires vous devez faire un peu de travail supplémentaire
+pour les utiliser à la place d'autres mappings.
+Heureusement, Loom fait ce travail pour vous donc vous n'avez pas à vous inquietez pour ça
+et vous pouvez facilement remplacé les mappings utilisés dans votre mod par les mappings officiel de Mojang.
+
+Il y a plusieurs formats différents pour stocker des mappings et, au moment où cet article a été écrit,
+nous travaillons sur un nouveau format avec beaucoup d'améliorations.
+Dans notre écosystème, le format le plus populaire est [Tiny v2], qui utilise un unique fichier `.tiny` pour stocker
+les mappings, et place les champs et méthodes comme "enfants" de leur classe.
+Un autre format que l'on utilise souvent est le format Enigma, qui utilise une arborescence de fichiers avec un fichier pour
+chaque classe de haut niveau et organise les entrées dans une hiérarchie avec chaque champ, méthode et classe comme enfant
+d'une autre classe ou d'une classe de haut niveau.
+
+## Modifier vos Mappings
+
+Les ensembles de mappings n'ont pas besoin de contenir des mappings pour toutes les classes, champs ou méthodes pour être
+valides, en fait la majorité des mappings ne sont pas complets.
+Par exemple, les Quilt Mappings (ou QM) atteignent au mieux 99% de complétion.
+Dans un environnement de développement, les choses non-mappées utiliseront leur nom intermédiaire
+au lieu de leur nom "obfusqué", donc si vous avez déjà traversé le code de Minecraft avec les QM
+ou Yarn (les mappings de Fabric) appliqué, il est très probable que vous ayez vu un bon nombre de noms intermédiaires.
+C'est encore pire pour les paramètres de méthodes : comme ils sont à haut risque d'incompatibilité entre deux versions,
+ils n'ont (en général) pas de noms intermédiaires, ainsi les noms que vous voyez dans le code dépend des outils
+que vous avez utilisé pour décompiler le jeu.
+
+Si vous voulez ajouter un nom ou un changer un qui est faux ou juste mauvais,
+vous pouvez commencer par choisir un mapping que vous utiliserez comme base.
+Dans cet article, nous utiliserons les QM mais le procédé pour Yarn est presque identique.
+Si vous voulez utiliser les mappings de Mojang comme base,
+vous devrez accomplir un peu de travail supplémentaire qui ne sera pas expliqué ici.
+Si vous décidez d'utiliser les QM, nous vous recommandons fortement de lire
+sa [documentation de contribution][QM CONTRIBUTING.md] et de contribuer vos modification au dépot.
+Vous aurez besoin de connaissances très basique de Git mais cela devrait être assez facile à faire
+si vous avez déjà travaillé avec Git auparavant.
+
+Pour commencer, vous devez acquérir votre propre copie du code des [Quilt Mappings] en clonant ou téléchargeant le dépot.
+Si vous voulez contribuer vos modifications à un moment, télécharger directement le code ne fonctionnera pas,
+il faudra [fork le dépot][fork qm] et cloné votre fork à la place.
+Une fois que vous avez le code, lancez `./gradlew mappings` dans votre terminal pour lancer [Enigma],
+notre outil préféré pour modifier et écrire des mappings.
+Rai a écrit un [super guide (en anglais) qui explique comment modifier des mappings avec Enigma][Enigma guide],
+donc vous pouvez y jetter un œil et commencer à mapper!
+Une fois que vous aurez fini de modifier les mappings,
+n'oubliez pas de sauvegarder vos modifications avant de fermer Enigma.
+
+### Contribuer les modifications à Quilt
+
+Pour contribuer vos modifications, vous devez ajouter et commiter vos modifications,
+puis push les modifications vers votre fork des QM.
+C'est très facile à faire avec une IDE, comme expliqué dans l'[article de Mise en Place](../introduction/setting-up),
+mais vous pouvez aussi le faire depuis votre terminale avec ces commandes si vous le voulez.
+
+```bash
+git add . # dit à git de suivre toutes les modifications dans le dossier actuel
+
+git commit -m "Blabla" # ajoutes ces modifications dans un nouveau commit (remplacez "blabla" par une courte description de vos modifications)
+
+git push # upload vos commits vers votre fork des QM. Vous aurez peut-être besoin d'ajouter `origin ` à la fin si git se plaint de ne pas avoir de branche upstream
+```
+
+Après avoir push vos modification vers votre fork, allez dans [l'onglet des Pull Request des QM][QM PRs]
+et cliquez sur le boutton "Compare & Pull Request" dans la note sur vos modifications récentes.
+Remplissez le titre et la description de votre PR, validez là,
+puis attendez que vos modifications soient vérifiées et acceptées.
+N'oubliez pas que vous pouvez trouver une expication plus approfondie (en anglais) du procédé de PR dans
+la [documentation de contribution][QM CONTRIBUTING.md].
+
+### Utiliser les mappings modifiés
+
+Si vous ne voulez pas contribuer vos modifications à Quilt,
+ou si vous voulez les tester dans un environnement de développement,
+vous pouvez lancer `./gradlew publishToMavenLocal` pour rendre les fichiers nécessaires disponibles
+aux autres projets dans votre ordinateur.
+Vous pouvez maintenant aller dans le projet ou vous voulez appliquer ces mappings, et éditer le fichier `build.gradle`
+pour ajouter `mavenLocal()` au block `repositories`, si il n'y est pas déjà.
+
+```gradle
+repositories {
+ // ...
+ mavenLocal()
+}
+```
+
+Une fois que vous avez `mavenLocal()` dans les repositories, vous pouvez modifier le fichier `libs.versions.toml`,
+dans le dossier `gradle/`, pour changer la version des mappings que vous utilisez pour celle que vous venez de modifier.
+Dans le cas des QM, vous pouvez changer le suffix `+build.*` en `+local`, d'autres projets peuvent utiliser d'autres
+format de versioning, donc vous devrez vérifier leur documentation ou code pour vérifier la version que vous voulez.
+
+```diff
+ minecraft = "1.20.4"
+-quilt_mappings = "1.20.4+build.1"
++quilt_mappings = "1.20.4+local"
+ quilt_loader = "0.23.1"
+```
+
+Et voilà ! Vous pouvez maintenant recharger gradle via votre IDE pour appliquer les modifications
+et utiliser vos nouveaux mappings en lisant le code de Minecraft.
+
+
+
+[Quilt Mappings]: https://github.com/QuiltMC/quilt-mappings
+[QM CONTRIBUTING.md]: https://github.com/QuiltMC/quilt-mappings/blob/HEAD/CONTRIBUTING.md
+[Fork QM]: https://github.com/QuiltMC/quilt-mappings/fork
+[QM PRs]: https://github.com/QuiltMC/quilt-mappings/pulls
+[Enigma]: https://github.com/QuiltMC/enigma
+[Enigma guide]: https://github.com/QuiltMC/quilt-mappings/blob/HEAD/GUIDE.md
+[Tiny V2]: https://fabricmc.net/wiki/documentation:tiny2
diff --git a/wiki/misc/world_types/en.md b/wiki/misc/world_types/en.md
index 639cdc3..f0dd69d 100644
--- a/wiki/misc/world_types/en.md
+++ b/wiki/misc/world_types/en.md
@@ -1,11 +1,7 @@
----
-title: Adding a Custom World Type
-index: 0
----
-
# Adding custom world types
+
If your mod completely overhauls Minecraft's worldgen, you'll likely want to create a custom worldtype to offer users the option to use your worldgen or vanilla Minecraft's world generation.
-Now, what is a custom world type you may ask? *World types*, also called *world presets*, define world generation options for Minecraft worlds. They let you change the make-up of your Minecraft worlds by configuring how world generation behaves.
+Now, what is a custom world type you may ask? _World types_, also called _world presets_, define world generation options for Minecraft worlds. They let you change the make-up of your Minecraft worlds by configuring how world generation behaves.
Some examples of world types already built into Minecraft are "Amplified", "Super Flat", "Single Biome", and "Large Biomes".
@@ -14,8 +10,8 @@ Some examples of world types already built into Minecraft are "Amplified", "Supe
The following block shows how to specify which dimensions your world type will apply to. In `dimensions`, a `minecraft:overworld` object is required.
The dimension `type` can be a built-in preset or a custom dimension preset you implement in your mod.
-
`src/main/resources/data/minecraft/example_mod/worldgen/world_preset`:
+
```json
{
"dimensions": {
@@ -29,21 +25,24 @@ The dimension `type` can be a built-in preset or a custom dimension preset you i
## Configuring how the worldgen works in your worldtype
`generator` is where you specify how the worldgen in your world type behaves. The `type` is a "generator ID" and the following are valid generator IDs:
- - `noise`
- - `flat`: Creates a superflat world (not really applicable here)
- - `debug`: Creates a debug world (not really applicable here)
+
+- `noise`
+- `flat`: Creates a superflat world (not really applicable here)
+- `debug`: Creates a debug world (not really applicable here)
In `biome_source`, you specify how biomes generate. The `type` parameter here is what kind of biome generation will be used.
Valid generation types:
- - `multi_noise`: Similar to overworld generation
- - `fixed`: Like selecting "Single Biome" in world creation
- - `the_end`: This is the generation the end dimension uses (not really applicable here)
- - `checkerboard`: Places biomes in a checkerboard style
+
+- `multi_noise`: Similar to overworld generation
+- `fixed`: Like selecting "Single Biome" in world creation
+- `the_end`: This is the generation the end dimension uses (not really applicable here)
+- `checkerboard`: Places biomes in a checkerboard style
If the biome source `type` is `minecraft:multi_noise`, Minecraft will use 3D biomes in the overworld and the nether.
The `preset` can be `minecraft:overworld` or `minecraft:nether`. More info about this can be found [in the article about custom dimensions in the Minecraft wiki](https://minecraft.wiki/w/Custom_dimension#Multi-noise_biome_source_parameter_list).
`src/main/resources/data/minecraft/example_mod/worldgen/world_preset/example_mod_preset.json`:
+
```json
{
"dimensions": {
@@ -60,6 +59,7 @@ The `preset` can be `minecraft:overworld` or `minecraft:nether`. More info about
}
}
```
+
This will generate a world relatively similar to that of 's default overworld generation.
On a dedicated server, you navigate to your `server.properties` file and find the `level-type` field. By default, the value is `minecraft:normal`. Changing this to the ID for your world type (`example_mod:example_mod_preset`) will use that instead.
@@ -69,13 +69,13 @@ On a dedicated server, you navigate to your `server.properties` file and find th
In order for your world type to show in the "create a new world" screen, you will need to make a file called `normal.json` in `resources/data/minecraft/tags/worldgen/world_preset` and populate it with the following.
`src/main/resources/data/minecraft/tags/worldgen/world_preset/normal.json`:
+
```json
{
- "values": [
- "example_mod:example_mod_preset"
- ]
+ "values": ["example_mod:example_mod_preset"]
}
```
+
This will make your world type show up in the world creation screen.
Alternatively, if you want your world type to only show as an option while the user is holding down ALT, make a file called `extended.json` in the same directory as your `normal.json` file.
diff --git a/wiki/misc/world_types/fr.md b/wiki/misc/world_types/fr.md
new file mode 100644
index 0000000..14cc31c
--- /dev/null
+++ b/wiki/misc/world_types/fr.md
@@ -0,0 +1,94 @@
+# Ajouter des types de monde personnalisés
+
+Si votre mod change complétement la génération de monde de Minecraft, vous voudrez surement créer un type de monde
+personnalisé pour offrir à vos utilisateurs l'option d'utiliser votre worldgen ou la génération
+de monde de Minecraft vanilla.
+Mais, c'est quoi un type de monde personnalisé ? _Les types de monde_, ou _presets de monde_, définissent les options
+de génération des monde Minecraft. Ils vous laisse changer la composition de vos mondes Minecraft
+en configurant comment se comporte la génération de monde.
+
+Des exemples de type de monde inclut dans Minecraft sont "Amplified", "Super Flat", "Single Biome" et "Large Biomes".
+
+## Spécifier à quelles dimensions votre type de monde s'applique
+
+Le block qui suit montre comment spécifier à quelles dimensions votre type de monde s'applique.
+Dans `dimensions`, un objet `minecraft:overworld` est nécessaire.
+Le `type` de dimension peut être un preset built-in ou une preset de dimension personnalisé
+que vous définissez dans votre mod.
+
+`src/main/resources/data/minecraft/example_mod/worldgen/world_preset`:
+
+```json
+{
+ "dimensions": {
+ "minecraft:overworld": {
+ "type": "example_mod:example_mod_dimension_type"
+ }
+ }
+}
+```
+
+## Configurer comment le génération fonction dans votre type de monde
+
+`generator` est l'endroit où vous spécifiez comment la génération se comporte dans votre monde.
+Le `type` est un "generator ID", dont voici une liste :
+
+- `noise`
+- `flat`: Créer un monde superflat (ne s'applique pas vraiment ici)
+- `debug`: Créer une monde de debug (ne s'applique pas vraiment ici)
+
+Dans `biome_source`, vous spécifiez comment les biomes se générents.
+Le paramètre `type` ici correspond à quel type de génération de biome sera utilisé.
+Liste des types de génération :
+
+- `multi_noise`: Similaire à la génération de l'overworld
+- `fixed`: Comme le world type "Single Biome"
+- `the_end`: La génération de la dimension de l'end (ne s'applique pas vraiment ici)
+- `checkerboard`: Place les biomes en damier
+
+Si le `type` du biome source est `minecraft:multi_noise`, Minecraft utilisera des biomes 3D dans l'overworld et le nether.
+Le `preset` peut être `minecraft:overworld` ou `minecraft:nether`.
+Plus d'infos là dessus peut être trouvée dans [l'article sur les dimensions personnalisés dans le wiki de Minecraft](https://minecraft.wiki/w/Custom_dimension#Multi-noise_biome_source_parameter_list) (pas disponible en français à l'écriture de cet article).
+
+`src/main/resources/data/minecraft/example_mod/worldgen/world_preset/example_mod_preset.json`:
+
+```json
+{
+ "dimensions": {
+ "minecraft:overworld": {
+ "type": "minecraft:overworld",
+ "generator": {
+ "type": "minecraft:noise",
+ "biome_source": {
+ "type": "minecraft:multi_noise",
+ "preset": "minecraft:overworld"
+ }
+ }
+ }
+ }
+}
+```
+
+Cela générera un monde relativement similaire à la génération par défaut de l'overworld.
+
+Sur un serveur dédié, vous pouvez ouvrir votre fichier `server.properties` et trouver le champ `level-type`.
+Par défault, la valeur est `minecraft:normal`. Remplacer ça par l'ID de votre type de monde
+(`example_mod:example_mod_preset`) permettra d'utiliser votre génération à la place.
+
+## Rendre votre type de monde accessible
+
+Pour que votre type de monde soit visible dans l'écran de création de monde, vous devrez créer un fichier
+nommé `normal.json` dans `resources/data/minecraft/tags/worldgen/world_preset` et le remplir avec ce qui suit.
+
+`src/main/resources/data/minecraft/tags/worldgen/world_preset/normal.json`:
+
+```json
+{
+ "values": ["example_mod:example_mod_preset"]
+}
+```
+
+Cela rendra votre type de monde disponible dans l'écran de création de monde.
+
+Sinon, si vous voulez que votre type de monde ne soit disponible que quand l'utilisateur maintient la touche ALT appuyée,
+créez un fichier `extended.json` dans le même dossier que votre fichier `normal.json`.