Un bloc personnalisé, comme un objet, vit dans deux packs. Le pack de comportements dit comment il se comporte. Le pack de ressources contient ses textures, son son et son nom.
Les fichiers
RP/
blocks.json
textures/
terrain_texture.json
blocks/
ruby_block.png
texts/
en_US.langÉtape 1 : la texture
Enregistre un PNG de 16x16 dans RP/textures/blocks/. Puis donne-lui un nom court dans terrain_texture.json :
{
"resource_pack_name": "My Ruby Add-on",
"texture_name": "atlas.terrain",
"padding": 8,
"num_mip_levels": 4,
"texture_data": {
"ruby_block": {
"textures": "textures/blocks/ruby_block"
}
}
}Étape 2 : la poser sur le bloc
Le bloc du pack de comportements choisit ses textures avec minecraft:material_instances. * veut dire toutes les faces.
"minecraft:material_instances": {
"*": {
"texture": "ruby_block",
"render_method": "opaque"
}
}Pour des faces différentes, nomme-les. Les faces que tu ne cites pas utilisent * :
"minecraft:material_instances": {
"*": { "texture": "ruby_block_side" },
"up": { "texture": "ruby_block_top" },
"down": { "texture": "ruby_block_bottom" }
}| render_method | À utiliser pour |
|---|---|
opaque | Les blocs pleins. La valeur par défaut. |
alpha_test | Les pixels découpés, comme les feuilles ou les vitres. Les deux côtés sont dessinés. |
alpha_test_single_sided | Les pixels découpés, côté avant seulement. |
blend | Une couleur transparente, comme le verre teinté. |
double_sided | Plein, mais dessiné des deux côtés. |
Étape 3 : le son
blocks.json se trouve à la racine du pack de ressources. Il définit le son quand on casse le bloc, qu'on le pose ou qu'on marche dessus :
{
"format_version": "1.21.40",
"wiki:ruby_block": {
"sound": "stone"
}
}Sons courants : stone, wood, gravel, grass, glass, metal, sand, cloth, amethyst_block.
Étape 4 : le nom
tile.wiki:ruby_block.name=Ruby BlockLes blocs utilisent tile. et finissent par .name. Tu peux aussi définir minecraft:display_name dans le fichier du bloc.
Formes personnalisées
Pour une forme qui n'est pas un cube complet, crée un modèle, enregistre-le sous RP/models/blocks/<name>.geo.json et fais pointer minecraft:geometry vers son geometry.<name>. Les noms de faces dans material_instances correspondent alors aux noms de faces des os de ton modèle.
Damier violet et noir
Le nom court de la texture n'est pas dans terrain_texture.json, ou son chemin est faux. N'ajoute pas .png au chemin, et n'oublie pas que le fichier est mis en cache : relance le monde après l'avoir modifié.