Un bloque personalizado, igual que un objeto, vive en dos paquetes. El paquete de comportamiento dice cómo se comporta. El paquete de recursos guarda sus texturas, su sonido y su nombre.
Los archivos
RP/
blocks.json
textures/
terrain_texture.json
blocks/
ruby_block.png
texts/
en_US.langPaso 1: la textura
Guarda un PNG de 16x16 en RP/textures/blocks/. Después dale un nombre corto en 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"
}
}
}Paso 2: ponla en el bloque
El bloque del paquete de comportamiento elige sus texturas con minecraft:material_instances. * significa todas las caras.
"minecraft:material_instances": {
"*": {
"texture": "ruby_block",
"render_method": "opaque"
}
}Para caras distintas, nómbralas. Las caras que no pongas usan *:
"minecraft:material_instances": {
"*": { "texture": "ruby_block_side" },
"up": { "texture": "ruby_block_top" },
"down": { "texture": "ruby_block_bottom" }
}| render_method | Úsalo para |
|---|---|
opaque | Bloques sólidos. El valor por defecto. |
alpha_test | Píxeles recortados, como hojas o paneles de cristal. Se dibujan ambas caras. |
alpha_test_single_sided | Píxeles recortados, solo la cara frontal. |
blend | Color translúcido, como el cristal tintado. |
double_sided | Sólido, pero dibujado por ambos lados. |
Paso 3: el sonido
blocks.json está en la raíz del paquete de recursos. Define el sonido al romper, colocar y caminar:
{
"format_version": "1.21.40",
"wiki:ruby_block": {
"sound": "stone"
}
}Sonidos habituales: stone, wood, gravel, grass, glass, metal, sand, cloth, amethyst_block.
Paso 4: el nombre
tile.wiki:ruby_block.name=Ruby BlockLos bloques usan tile. y terminan en .name. También puedes definir minecraft:display_name en el archivo del bloque.
Formas personalizadas
Para una forma que no sea un cubo completo, crea un modelo, guárdalo como RP/models/blocks/<name>.geo.json y apunta minecraft:geometry a su geometry.<name>. Entonces los nombres de cara en material_instances coinciden con los nombres de cara de los huesos de tu modelo.
Tablero de ajedrez morado y negro
El nombre corto de la textura no está en terrain_texture.json, o su ruta está mal. No pongas .png en la ruta, y recuerda que el archivo se guarda en caché: reinicia el mundo después de cambiarlo.