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.
W przyszłości będzie tylko jeden numer 16-bitowy (65536 możliwych kombinacji typu podstawowego + właściwości). Block będzie przypisany pod identyfikator automatycznie i te zadania będę przechowywane w pliku zapisu World. Jest to zilustrowane poniżej:
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.
Podmiotami Płytek są obiekty Java (podobnie jak klasa Chest). Normalnie kod Minecraft chciałby dostępu do danych w podmiocie Płytek przez uzyskanie go poprzez jego wystąpienie, a następnie wywołanie go metodą lub polem, takie jak regularne obiekty (world.getTileEntity(position).getInventory()
). Kiedy podmiot Płytki muszą być zapisane są one przechowywane w formacie NTB.
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.