Koncepcje

Właściwości

Wszystkie bloki mają podstawowy typ. Przykłady podstawowych typów to ziemia, schody i liście. Jednak aby dalej zróżnicować te podstawowe typy, każdy blok ma zestaw różnych właściwości, z których każda może przyjąć jedną z ustalonych wartości (np. bielica ziemia, ceglane schody, dębowe liście) Blok może mieć wiele właściwości (takich jak zwrócone na wschód, ceglane schody).

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]

Niektóre właściwości są efemeryczne – istnieją tylko wtedy, gdy gra jest uruchomiona. Ich wartości nie są wpisane do zapisywania pliku bo ich wartości mogą być wykrywane automatycznie. Na przykład z przewodu Redstone, czy zasilane są lub mogą być wykrute na podstawie środowiska (jest tam dźwignia włączona?). W takim przypadku power właściwość minecraft:redstone_wire jak pokazano powyżej jest właściwością ulotną.

W momencie pisania, Minecraft nadal przechowuje dane Block-u do starego formatu z 12 bitów typu podstawowego (4096 możliwe typy podstawowe) i 4 bity na „metadane” (16 możliwych wartości jako typ podstawowy). Jednakże właściwości nie są mapowane bezpośrednio do metadata ze starszych względów: na przykład Block piec składa się z dwóch typów podstawowych (w trakcie wytapiania i nie wytapiania), każdy nie wykorzystując metadata w ogóle. Z drugiej strony logi do wykorzystania w metadata, ale ponieważ połączenie przekracza właściwości 16 możliwych wartości (w myśli typ trzewka i kierunku), logi należy podzielić na dwa podstawowe typy.

In the future, there will only be one 16-bit number (65536 possible combinations of base type + properties). Blocks will be assigned an ID automatically and this assignment will be stored in the world save file. This is illustrated below:

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.

Dane Tile Entity

Z 65536 możliwymi kombinacjami nie jest możliwe przechowanie wielu informacji takich jak ekwipunek, więc istnieje inny sposób na przechowywanie danych przez niektóre bloki: tile entity.

Tile entities themselves are Java objects (like a Chest class). Normally, Minecraft code would access data in a tile entity by getting its instance and then calling it methods or fields, like a regular object (world.getTileEntity(position).getInventory()). When tile entities need to be written to the save file, they are stored in the NBT format.

Wskazówka

Niektórze rzeczy, takie jak np. obrazy są w rzeczywistości typu entity.

Jednak podmiotami Płytek również można zastąpić renderowanie, więc nie wyglądają jak regularne Block-i, chociaż zazwyczaj jest to nieefektywne i powoduje w kliencie gracza spadek FPS.