Todo lo que decora el terreno es una característica (feature): vetas de mineral, árboles, flores, hierba, rocas, manantiales, coral. Si no es el terreno básico ni una criatura, seguramente es una característica.
Para que una característica aparezca en el mundo necesitas dos archivos:
- Una característica dice qué colocar: una veta de mineral, un árbol, un solo bloque.
- Una regla de característica (feature rule) dice dónde y con qué frecuencia: en qué biomas, cuántas veces por chunk, a qué altura.
En esta guía vas a hacer que aparezca mena de rubí bajo tierra en todos los biomas del mundo superior.
Los archivos
BP/
blocks/
ruby_ore.json
features/
ruby_ore_feature.json
feature_rules/
ruby_ore_rule.jsonPaso 1: el bloque de mena
Primero necesitas un bloque que colocar. Crea un bloque personalizado normal llamado wiki:ruby_ore con una textura y una tabla de botín. Si todavía no has hecho ningún bloque, sigue Tu primer bloque personalizado.
Paso 2: la característica
{
"format_version": "1.13.0",
"minecraft:ore_feature": {
"description": {
"identifier": "wiki:ruby_ore_feature"
},
"count": 6,
"replace_rules": [
{
"places_block": "wiki:ruby_ore",
"may_replace": [
"minecraft:stone",
"minecraft:granite",
"minecraft:diorite",
"minecraft:andesite"
]
}
]
}
}- La clave raíz, aquí
minecraft:ore_feature, es el tipo de característica. Cada archivo tiene exactamente uno. La tabla al final de esta página los enumera todos. countes cuántos bloques intenta colocar una veta. Los diamantes usan vetas pequeñas y el carbón, grandes.replace_rulesdice qué bloque va dónde. La mena solo sustituye los bloques que aparecen enmay_replace, así que nunca flota en las cuevas ni se come la tierra.
Una versión de pizarra profunda
Añade una segunda entrada a replace_rules con "places_block": "wiki:deepslate_ruby_ore" y "may_replace": ["minecraft:deepslate"]. Así una misma veta usa el aspecto correcto en las dos capas, igual que las menas del juego base.
Reglas de nombres
- Una característica por archivo.
- El nombre del archivo debe coincidir con la parte del nombre del identificador.
wiki:ruby_ore_featureva enruby_ore_feature.json. El espacio de nombres no cuenta para la coincidencia. - Si dos paquetes usan exactamente el mismo identificador, gana el paquete que está más arriba en la lista. Así es como puedes sustituir una característica del juego base.
Paso 3: la regla de característica
Una característica no hace nada hasta que una regla de característica la vincula a unos biomas:
{
"format_version": "1.13.0",
"minecraft:feature_rules": {
"description": {
"identifier": "wiki:ruby_ore_rule",
"places_feature": "wiki:ruby_ore_feature"
},
"conditions": {
"placement_pass": "underground_pass",
"minecraft:biome_filter": [
{
"test": "has_biome_tag",
"operator": "==",
"value": "overworld"
}
]
},
"distribution": {
"iterations": 4,
"coordinate_eval_order": "zyx",
"x": {
"distribution": "uniform",
"extent": [0, 16]
},
"y": {
"distribution": "triangle",
"extent": [-48, 16]
},
"z": {
"distribution": "uniform",
"extent": [0, 16]
}
}
}
}La regla tiene tres partes.
description
identifierda nombre a la regla. Igual que con las características, la parte del nombre debe coincidir con el nombre del archivo.places_featurees la característica que coloca esta regla. Una regla controla una característica.
conditions
minecraft:biome_filter elige los biomas. Es una lista de pruebas de filtro, y la que usarás casi siempre es has_biome_tag. Cada bioma comprueba el filtro: los que lo pasan reciben la característica.
Puedes combinar pruebas con all_of y any_of. Este elige biomas cálidos del mundo superior que no sean océanos:
"minecraft:biome_filter": [
{ "test": "has_biome_tag", "operator": "==", "value": "overworld" },
{
"any_of": [
{ "test": "has_biome_tag", "operator": "==", "value": "desert" },
{ "test": "has_biome_tag", "operator": "==", "value": "mesa" }
]
},
{ "test": "has_biome_tag", "operator": "!=", "value": "ocean" }
]Para poner mena de rubí solo en la Arboleda de Rubí, comprueba su propia etiqueta: "value": "ruby_grove".
placement_pass dice cuándo se coloca la característica respecto a las demás. Las pasadas se ejecutan en este orden:
| Pasada | Ideal para |
|---|---|
first_pass | Cosas sobre las que debe construirse todo lo demás. |
before_underground_pass, underground_pass, after_underground_pass | Menas, bolsas de tierra o grava, decoraciones de cuevas. |
before_surface_pass, surface_pass, after_surface_pass | Árboles, flores, hierba, rocas. |
before_sky_pass, sky_pass, after_sky_pass | Cosas en el aire. |
final_pass | Últimos retoques, después de todo lo demás. |
pregeneration_pass | Solo para excavadores de cuevas. |
Las características de una misma pasada no tienen un orden fijo entre ellas.
distribution
Esto decide cuántas copias intentan generarse en cada chunk y dónde.
| Campo | Qué hace |
|---|---|
iterations | Cuántas veces se intenta por chunk. Aquí, 4 vetas. |
x, y, z | Dónde cae cada intento. Un número fijo, un rango o una expresión de Molang. |
scatter_chance | Probabilidad opcional para todo el chunk, como { "numerator": 1, "denominator": 4 } para 1 de cada 4 chunks. Si falla, no se hace ningún intento. |
coordinate_eval_order | El orden en que se calculan las coordenadas, como "xzy" (el valor por defecto) o "zyx". Importa cuando una coordenada usa otra. |
En una regla de característica, x y z se cuentan desde la esquina del chunk, así que [0, 16] cubre el chunk entero. y es la altura del mundo.
Cada rango tiene un tipo de distribution que da forma a dónde caen los valores:
| Tipo | Resultado |
|---|---|
uniform | Todos los valores igual de probables. |
triangle | La mayoría de los valores cerca del centro del rango, menos en los extremos. Genial para menas. |
gaussian | Agrupados alrededor del centro, como una campana. |
inverse_gaussian | Agrupados en los dos extremos, pocos en el centro. |
fixed_grid | Pasos espaciados por igual, definidos con step_size y grid_offset. |
jittered_grid | Una cuadrícula en la que cada punto se desplaza un poco al azar. |
Para cosas que van en el suelo, como plantas, define y con Molang para que caigan en la superficie:
"y": "query.heightmap(variable.worldx, variable.worldz)"Mena solo en chunks nuevos
Las características se generan una sola vez, cuando se crea un chunk. Explora lejos o crea un mundo nuevo para ver tu mena. El terreno ya explorado nunca la recibe.
Pruebas
- Activa el paquete en un mundo nuevo.
- Pasa al modo espectador con
/gamemode spectatory vuela bajo tierra cerca de Y 0. - Busca la textura de rubí en la piedra. ¿Demasiado rara? Sube
iterationsocount.
Si no aparece nada, abre el registro de contenido. Las causas habituales son un nombre de archivo que no coincide con el identificador, un nombre incorrecto en places_feature o una errata en el nombre del bloque en places_block.
Todos los tipos de característica
Cada archivo de característica usa exactamente uno de estos como clave raíz. Algunos colocan bloques; otros solo eligen entre otras características, las mueven o las repiten. La mayoría de las decoraciones del juego base encadenan varias: por ejemplo, una característica de dispersión que ejecuta una de búsqueda que a su vez ejecuta un árbol.
| Tipo | Qué hace |
|---|---|
minecraft:aggregate_feature | Coloca una lista de características en el mismo punto, sin un orden fijo. |
minecraft:beards_and_shavers | Añade o recorta terreno para dejar un sitio llano y despejado para otra característica, normalmente una estructura. |
minecraft:cave_carver_feature | Excava cuevas del mundo superior a través de este chunk y sus vecinos. Necesita pregeneration_pass. |
minecraft:conditional_list | Revisa una lista de características en orden y coloca la primera cuya condición se cumpla. |
minecraft:fossil_feature | Construye un esqueleto enterrado con bloques de hueso y un bloque de mena que tú eliges. |
minecraft:geode_feature | Crea una geoda redonda con capas de corteza y un relleno interior que puedes cambiar. |
minecraft:growing_plant_feature | Hace crecer una columna de planta desde el suelo hacia arriba o desde el techo hacia abajo, con cuerpo y punta, como las enredaderas de las cuevas. |
minecraft:height_difference_filter_feature | Solo deja colocar otra característica si el terreno alrededor del punto supera unas comprobaciones de altura. |
minecraft:horizontal_tree_decoration_feature | Pega un bloque en el lateral de algo, mirando en una dirección aleatoria, como los hongos repisa en un tronco. |
minecraft:multi_block_feature | Coloca un bloque formado por varias partes, girado opcionalmente en una dirección aleatoria. |
minecraft:multiface_feature | Coloca bloques finos que se pegan a suelos, paredes o techos, como el liquen luminoso. |
minecraft:multipart_block_column_feature | Apila una columna de hasta cuatro tipos de bloque (base, medio, parte que se estrecha y punta), en cualquier dirección. |
minecraft:nether_cave_carver_feature | Excava cuevas en el Nether. Necesita pregeneration_pass. |
minecraft:ore_feature | Coloca una veta de bloques que solo sustituye los bloques que permitas. Se usa para todas las menas. |
minecraft:partially_exposed_blob_feature | Coloca un pegote de un bloque casi enterrado en el suelo, con solo una cara a la vista. |
minecraft:rect_layout | Llena la superficie de un chunk con una cuadrícula de zonas, cada una con una característica, dejando algo de espacio vacío. |
minecraft:scan_surface | Recorre todas las columnas de la superficie de un chunk e intenta colocar una característica en cada una. |
minecraft:scatter_feature | Coloca otra característica muchas veces alrededor de un punto, con los mismos rangos x, y, z que una regla de característica. |
minecraft:sculk_patch_feature | Extiende una mancha de sculk. El juego todavía no la documenta. |
minecraft:search_feature | Busca en una caja de espacio, capa por capa, un sitio donde quepa otra característica. |
minecraft:sequence_feature | Coloca características una detrás de otra, cada una empezando donde terminó la anterior. |
minecraft:single_block_feature | Coloca un bloque, o uno elegido al azar de una lista con pesos, con reglas sobre dónde puede apoyarse. |
minecraft:snap_to_surface_feature | Mueve el punto al suelo, techo o pared más cercano antes de colocar otra característica. |
minecraft:structure_template_feature | Coloca un .mcstructure guardado de la carpeta structures de un paquete de comportamiento. |
minecraft:surface_relative_threshold_feature | Solo coloca otra característica si el punto está lo bastante por debajo de la superficie. |
minecraft:tree_feature | Construye un árbol con tronco, copa y raíces opcionales, con muchas opciones de forma. |
minecraft:underwater_cave_carver_feature | Excava cuevas por debajo del nivel del mar. Necesita pregeneration_pass. |
minecraft:vegetation_patch_feature | Cubre una zona del suelo con un bloque y luego hace crecer plantas encima, como las manchas de musgo. |
minecraft:weighted_random_feature | Elige una característica de una lista al azar. Los pesos más altos salen más a menudo. |
Siguientes pasos
- Crea un hogar para tu mena: El archivo del bioma.
- Consulta las etiquetas de bioma con las que filtrar: minecraft:tags.