Saltearse al contenido

Definiciones de Bloques

Descripción General

Las definiciones de bloques describen las propiedades visuales y físicas de los bloques colocados en el mundo. La mayoría de los datos de bloque se encuentran dentro del objeto BlockType de un archivo de definición de objeto, pero existen archivos de bloque independientes para fluidos, efectos de fluidos y calcomanías de rotura. Las texturas pueden especificarse por cara o como un atajo único All, con valores Weight opcionales para variantes aleatorias.

Ubicación del Archivo

Los datos de bloque se almacenan en dos lugares:

  • Bloques integrados en objetos (rocas, madera, tierra, etc.): Objeto BlockType dentro de Assets/Server/Item/Items/<Category>/<ItemId>.json
  • Archivos de bloque independientes (fluidos, calcomanías, efectos de fluidos): Assets/Server/Item/Block/<Subcategory>/<BlockId>.json

Subcategorías bajo Assets/Server/Item/Block/:

Block/Fluids/ — Bloques de fluido (Lava, Agua, Slime, Veneno, Fuego)
Block/BreakingDecals/ — Superposiciones de grietas de animación de rotura
Block/FluidFX/ — Configuraciones de efectos visuales de fluidos
Block/Hitboxes/ — Definiciones de formas de hitbox personalizadas
Block/Blocks/_Debug/ — Bloques de prueba solo para depuración

Esquema

Campos del Objeto de Textura

Cada entrada en el arreglo Textures define una variante de textura. Múltiples entradas con valores Weight permiten la selección aleatoria de texturas.

CampoTipoRequeridoPor DefectoDescripción
AllstringNoRuta de textura aplicada a las seis caras del bloque.
SidesstringNoTextura aplicada a las cuatro caras laterales (Norte, Sur, Este, Oeste).
UpDownstringNoTextura aplicada a las caras superior e inferior.
TopstringNoTextura aplicada solo a la cara superior.
BottomstringNoTextura aplicada solo a la cara inferior.
NorthstringNoTextura aplicada solo a la cara norte.
SouthstringNoTextura aplicada solo a la cara sur.
EaststringNoTextura aplicada solo a la cara este.
WeststringNoTextura aplicada solo a la cara oeste.
WeightnumberNo1Peso de probabilidad relativa para esta variante cuando hay múltiples entradas de textura presentes.

Campos de BlockType / Nivel de Bloque

CampoTipoRequeridoPor DefectoDescripción
Texturesobject[]NoArreglo de objetos de variantes de textura (ver arriba).
MaterialstringNoCategoría de material físico. Valores: Solid, Fluid, Empty, Plant. Controla el comportamiento de colisión e interacción.
DrawTypestringNoModo de renderizado. Valores comunes: Model (malla personalizada), Block (cubo estándar), Plant (follaje tipo billboard).
OpacitystringNoNivel de transparencia. Valores: Opaque, Semitransparent, Transparent.
LightobjectNoConfiguración de emisión de luz. Contiene Color (cadena hexadecimal, ej. "#e90") y opcionalmente Level (número).
ParticleColorstringNoColor hexadecimal para los efectos de partículas de rotura de bloque (ej. "#58ad9b").
CustomModelstringNoRuta a un archivo .blockymodel usado en lugar de una malla de cubo estándar.
CustomModelTextureobject[]NoArreglo de { "Texture": "<ruta>", "Weight": <número> } para variantes de textura de modelo personalizado.
CustomModelScalenumberNo1.0Multiplicador de escala para el modelo personalizado.
HitboxTypestringNoID de una definición de hitbox de Block/Hitboxes/.
RandomRotationstringNoAleatorización de rotación al colocarse. Ejemplo: "YawStep1".
BlockParticleSetIdstringNoConjunto de partículas usado para partículas ambientales del bloque (ej. "Lava", "Dust").
BlockSoundSetIdstringNoID del conjunto de sonidos para los sonidos de interacción con bloques.
GatheringobjectNoConfiguración de cosecha. Los objetos hijos Harvest, Soft y Breaking aceptan cada uno una cadena GatherType.
Aliasesstring[]NoIDs de cadena alternativos para este bloque, usados por comandos y generación de mundo.

Campos Específicos de Fluidos

Estos campos aparecen en archivos de bloques de fluidos independientes bajo Block/Fluids/.

CampoTipoRequeridoPor DefectoDescripción
MaxFluidLevelnumberNoEntero de nivel máximo de fluido. Los bloques fuente típicamente usan 1; los fluidos en movimiento usan 8.
Effectstring[]NoLista de IDs de efecto aplicados cuando una entidad entra en este fluido (ej. ["Lava"]).
FluidFXIdstringNoReferencia una configuración de efecto visual de fluido de Block/FluidFX/.
TickerobjectNoComportamiento de flujo del fluido. Contiene CanDemote (boolean), SpreadFluid (string), FlowRate (number), SupportedBy (string) y Collisions (objeto que mapea IDs de bloque a resultados de colocación).
InteractionsobjectNoCadenas de interacción a nivel de bloque (ej. efectos de colisión). Usa el mismo formato de cadena que las interacciones de objetos.
ParentstringNoID de un bloque padre del cual heredar campos.

Ejemplo

Assets/Server/Item/Items/Rock/Rock_Aqua.json (sección BlockType):

{
"TranslationProperties": {
"Name": "server.items.Rock_Aqua.name"
},
"Icon": "Icons/ItemsGenerated/Rock_Aqua.png",
"Parent": "Rock_Stone",
"BlockType": {
"Textures": [
{
"All": "BlockTextures/Rock_Aqua.png",
"Weight": 1
}
],
"ParticleColor": "#58ad9b",
"Gathering": {
"Breaking": {
"GatherType": "Rocks"
}
},
"Aliases": [
"aqua",
"aqua00"
]
}
}

Assets/Server/Item/Block/Blocks/_Debug/Debug_Test_Block.json (bloque independiente con luz):

{
"Textures": [
{
"All": "Blocks/_Debug/Texture.png"
}
],
"Material": "Solid",
"Light": {
"Color": "#f0f"
}
}

Assets/Server/Item/Block/Fluids/Lava_Source.json (bloque de fluido):

{
"MaxFluidLevel": 1,
"Effect": ["Lava"],
"Opacity": "Transparent",
"Textures": [
{
"Weight": 1,
"All": "BlockTextures/Fluid_Lava.png"
}
],
"Light": {
"Color": "#e90"
},
"Ticker": {
"CanDemote": false,
"SpreadFluid": "Lava",
"FlowRate": 2.0,
"Collisions": {
"Water": {
"BlockToPlace": "Rock_Stone_Cobble",
"SoundEvent": "SFX_Flame_Break"
}
}
}
}

Páginas Relacionadas