Skip to content

Commit be60bdf

Browse files
Tiers & Tool types Page (Les-Moddeurs-Francais#76)
* Begin work * Base harvest level * Work 1 (I not sure about that) * Fix somes things * Finish tiers.md Rename harvest_level.md -> tiers.md * tool_type.md * tool_type.md -> types.md * Change category description * Change somes things
1 parent d6d847e commit be60bdf

File tree

3 files changed

+94
-0
lines changed

3 files changed

+94
-0
lines changed

docs/blocs/tools/_category_.json

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"label": "Outils",
3+
"link": {
4+
"type": "generated-index",
5+
"title": "Outils",
6+
"description": "Tous ce qu'il y a à savoir pour définir les bons types/tiers d'outil pour récolter un bloc.",
7+
"slug": "/category/blocs/tools"
8+
},
9+
"position": 6
10+
}

docs/blocs/tools/tiers.md

+58
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
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`).

docs/blocs/tools/types.md

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
---
2+
sidebar_position: 1
3+
title: Types
4+
description: Comment définir le type d'outil nécessaire pour récolter un bloc ?
5+
tags: [blocs, tools]
6+
---
7+
8+
Depuis la 1.17, le type d'outil nécessaire pour récolter un bloc est défini par un tag attribué le contenant.
9+
10+
## Types d'outil de base
11+
12+
Si vous souhaitez que votre bloc soit récoltable à la main, il n'est pas nécessaire de l'ajouter dans un tag. Dans le cas contraire, assurez-vous d'ajouter votre bloc au(x) tag(s) our qu'ainsi votre bloc puisse se miner plus rapidement avec les outils associés (et si la [propriété](../properties) `requiresToolForDrops()` est définie, cela impliquera que les outils spécifiés seront les seuls pour récolter le butin du bloc) :
13+
- Hache : `minecraft:mineable/axe`
14+
- Pioche : `minecraft:mineable/pickaxe`
15+
- Pelle : `minecraft:mineable/shovel`
16+
- Houe : `minecraft:mineable/hoe`
17+
18+
## Types d'outil customs
19+
20+
Pour créer un type custom, il vous suffit de créer un tag (qui sera contenu dans le dossier `data/modid/tags/blocks`) ainsi que sa variable associée comme celle-ci :
21+
22+
```java
23+
public static final Tag.Named<Block> MON_TOOL_TYPE = BlockTags.bind("modid:mon_tool_type");
24+
```
25+
26+
Il vous suffira ensuite d'utiliser ce tag dans l'appel `super()` du constructeur de votre classe héritière de `DiggerItem`.

0 commit comments

Comments
 (0)