|
| 1 | +--- |
| 2 | +sidebar_position: 1 |
| 3 | +title: Tiers |
| 4 | +description: Comment définir le tier nécessaire d'outil pour récolter un bloc ? |
| 5 | +tags: [blocs, tools] |
| 6 | +--- |
| 7 | + |
| 8 | +Depuis la 1.17, le _tier_ pour un outil nécessaire à la récolte d'un bloc est défini par un tag contenant ledit bloc. |
| 9 | + |
| 10 | +## Tiers de base |
| 11 | + |
| 12 | +Si vous souhaitez que votre bloc soit récoltable avec n'importe quel _tier_ d'outil, il n'est pas nécessaire de l'ajouter dans un tag. Dans le cas contraire il faudra s'assurer que le bloc ait la [propriété](../properties) `requiresToolForDrops()` de définie et ajouter celui-ci au(x) tag(s) approprié(s) (contenu(s) dans le dossier `data/minecraft/tags/blocks` ou `data/forge/tags/blocks` selon les cas) parmi ceux-ci : |
| 13 | + |
| 14 | +- `forge:needs_wood_tool` |
| 15 | +- `forge:needs_gold_tool` |
| 16 | +- `minecraft:needs_stone_tool` |
| 17 | +- `minecraft:needs_iron_tool` |
| 18 | +- `minecraft:needs_diamond_tool` |
| 19 | +- `forge:needs_netherite_tool` |
| 20 | + |
| 21 | +## Tiers Customs |
| 22 | + |
| 23 | +Malgré tout, il est aussi possible de créer son propre _tier_ d'outil. Pour cela il nous faudra créer un nouveau tag qui contiendra les blocs cassables à partir de ce _tier_, mais aussi l'enregistrer. |
| 24 | + |
| 25 | +Pour créer le tag, rien de plus simple, il vous faut ajouter cette ligne |
| 26 | + |
| 27 | +```java |
| 28 | +public static final Tag.Named<Block> MON_TIER_TAG = BlockTags.createOptional(new ResourceLocation("modid", "mon_tier_tag")); |
| 29 | +``` |
| 30 | + |
| 31 | +:::note |
| 32 | +Les ID's et noms de variable peuvent être remplacés à votre guise. |
| 33 | +::: |
| 34 | + |
| 35 | +Après ça il faut que l'on enregistre le _tier_ pour que le jeu le prenne en compte. Pour cela ajoutez cette ligne : |
| 36 | + |
| 37 | +```java |
| 38 | +public static final Tier MON_TIER = TierSortingRegistry.registerTier( |
| 39 | + new ForgeTier(5, 5000, 10, 100, 0, MON_TIER_TAG, () -> Ingredient.of(Items.OBSIDIAN)), |
| 40 | + new ResourceLocation("modid", "mon_tier"), |
| 41 | + List.of(Tiers.DIAMOND), List.of()); |
| 42 | +``` |
| 43 | + |
| 44 | + |
| 45 | +Ici le premier paramètre correspond à la configuration du _tier_ (explication disponible ci-dessous), le deuxième lui correspond à l'ID du _tier_, et les 2 derniers correspondent au placement du _tier_ par rapport aux autres (supérieur et inférieur à..., dans ce cas présent, il se placera comme supérieur au diamant et ne sera inférieur à aucun _tier_). |
| 46 | + |
| 47 | +<details> |
| 48 | +<summary>Explication de la classe ForgeTier</summary> |
| 49 | + |
| 50 | +```java |
| 51 | +new ForgeTier(5, 5000, 10, 100, 0, MON_TIER_TAG, () -> Ingredient.of(Items.OBSIDIAN)) |
| 52 | +``` |
| 53 | + |
| 54 | +Ici le premier paramètre correspond au niveau du _tier_ (hiérarchie entre tous malgré le fait que ce système soit déprécié depuis la version 37.0.31 de Forge), le second correspond quant à lui au nombre d'utilisations maximum (cela peut être recalculé selon l'item concerné), le troisième à la rapidité de l'item possédant ce _tier_, le quatrième au nombre de dégâts, le cinquième à la valeur d'enchantement (par exemple les outils en or s'enchante plus facilement que ceux en fer) et le sixième correspond à l'item nécessaire pour réparer les outils de ce _tier_. |
| 55 | + |
| 56 | +</details> |
| 57 | + |
| 58 | +Après ça il ne vous restera plus qu'à ajouter le bloc dans ledit tag lié au _tier_ (dans ce cas ça sera `modid:mon_tier` se trouvant dans le dossier `data/modid/tags/blocks`). |
0 commit comments