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.