Konsepter

Egenskaper

Alle blokker er av en basistype. Eksempler på basistyper er jord, trapper og blader. For å gjøre forskjell på disse basistypene har hver blokk et sett med forskjellige egenskaper, som kan motta et begrenset sett med verdier (for eksempel podzoljord, mursteinstrapper, eikeblader). En blokk kan ha flere egenskaper (slik som østvendte mursteinstrapper).

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]

Noen egenskaper er derimot flyktige – de eksisterer kun når spillet kjører. Deres verdier skrives ikke til lagringsfilen fordi verdiene kan oppdages automatisk. For eksempel, med redstoneledninger, kan man merke om de er påslått eller ikke basert på området rundt (finnes det en påslått spak?). I dette tilfellet er power-egenskapen til minecraft:redstone_wire, som vist over, en flyktig egenskap.

I skrivende stund lagrer Minecraft fortsatt blokkdata til et gammelt format med 12 bits for en basistype (4096 mulige basistyper) og 4 bits for «metadata» (16 mulige verdier per basistype). Egenskaper kan imidlertid ikke overføres helt til metadata av bakoverkompatibilitetsgrunner: for eksempel har furnace-blokken to basistyper (i ferd med å smelte noe versus ikke i ferd med å smelte noe), og ingen av de to typene bruker metadata i det hele tatt. På den annen side bruker stokker sin metadata fullt ut, men fordi kombinasjonen av egenskaper overstiger 16 mulige verdier (tenk tretype og retning), må stokker fordeles på to basistyper.

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] osv.

Tile Entity-data

Med 65536 mulige kombinasjoner er det umulig å lagre mye informasjon, som f.eks. innhold i ryggsekken, så noen blokker har data på en annen måte: tile entities.

Tile entities selv er Java-objekter (som en Kiste-klasse). Vanligvis får Minecraft-kode tak i dataen i en tile entity ved først å hente instansen, og så kalle feltene eller metodene dens som et vanlig objekt (world.getTileEntity(position).getInventory()). Når tile entities må skrives til lagringsfilen, lagres de på NBT-formatet.

Tips

Noen ting, som malerier, er faktisk entiteter.

Tile entities kan imidlertid også overstyre rendering slik at de ikke ser ut som en vanlig blokk, selv om dette generelt sett er ineffektivt og medfører et tap i bildefrekvensen på klienter.