Conceptos

Propiedades

Todos los bloques son de un tipo base. Ejemplos de tipos de bases incluyen bloques de tierra, escaleras, y hojas. Sin embargo, para diferenciar aún más este tipo de bases, cada bloque se ha fijado de diferentes propiedades, de los cuales cada uno puede tomar un conjunto limitado de valores (es decir, podzol bloques de tierra, ladrillos, escaleras,*hojas*). Un bloque puede tener varias propiedades (como orientada al este, escaleras de ladrillo).

Examples of block properties

minecraft:dirt[snowy=false,variant=default]
minecraft:dirt[snowy=true,variant=default]
minecraft:dirt[snowy=false,variant=grassless]
minecraft:dirt[snowy=true,variant=grassless]
minecraft:planks[variant=oak]
minecraft:planks[variant=spruce]
minecraft:planks[variant=birch]
minecraft:redstone_wire[east=up,north=up,power=0,south=up,west=up]
minecraft:redstone_wire[east=side,north=up,power=0,south=up,west=up]
minecraft:redstone_wire[east=none,north=up,power=0,south=up,west=up]
minecraft:redstone_wire[east=up,north=side,power=0,south=up,west=up]

Algunas propiedades, sin embargo, son efímeras – estas existen sólo cuando el juego se ejecuta. Sus valores no estan escritos en el archivo save porque sus valores pueden ser detectados automáticamente. Por ejemplo, con el circuito de Redstone, que aunque estén en funcionamiento o no pueden ser detectados en base al ambiente (¿alguna palanca está encendida?). En este caso, la propiedad «power» de «minecraft:redstone_wire» como se muestra arriba es una propiedad efímera.

Al momento de redactar, Minecraft todavía registra datos de blockes a un formato antiguo con 12 bits para un tipo de base (4096 posibles tipos de bases) y 4 bits para «metadatos» (16 valores posibles para cada tipo de base). Sin embargo, las propiedades no se asignan directamente a los metadatos debido a razones de compatibilidad: por ejemplo, el bloque de horno se compone de dos tipos de bases (calentando, y no calentando), cada uno no utilizando sus metadatos en absoluto. Por otra parte, los registros de hacer uso de su metadatos completamente, pero debido a la combinación de propiedades supera 16 valores posibles (piensa en el tipo de árboles y dirección), los registros deben ser divididos en dos tipos básicos.

En el futuro, no sólo habrá un número de 16 bits (65536 combinaciones posibles de tipo base + propiedades). Los bloques serán asignados un ID de forma automática y esta asignación se almacenarán en el mundo excepto archivo. Esto se ilustra a continuación:

0 => minecraft:dirt[snowy=false,variant=default]
1 => minecraft:dirt[snowy=true,variant=default]
2 => minecraft:dirt[snowy=false,variant=grassless]
3 => minecraft:dirt[snowy=true,variant=grassless]
4 => minecraft:planks[variant=oak]
5 => minecraft:planks[variant=spruce]
etc.

Teja de Datos de Entidades

Con 65536 combinaciones posibles, no es posible almacenar una gran cantidad de información como el inventario, en la cual hay una forma adicional de que algunos bloques tienen datos: tile entities.

Las propias entidades de mosaico son objetos de Java (como una clase Chest). Normalmente, el código de Minecraft accedería a los datos en una entidad de mosaico obteniendo su instancia y luego llamando sus métodos o campos, como un objeto regular (world.getTileEntity(position).getInventory()). Cuando las entidades de mosaico deben escribirse en el archivo guardado, se almacenan en formato NBT.

Truco

Algunas cosas, como pinturas, son en realidad entidades.

Sin embargo, las entidades también pueden suplantar a la prestación para que no parezca un bloque regular, aunque esto es generalmente ineficiente y provoca una caída de framerate cliente.