API
Tipi di blocco
Un blocco può essere di uno dei tipi del gioco: scale che si uniscono agli angoli, porte alte due blocchi, recinti che si collegano, bauli, cartelli, coltivazioni, minerali. Dagli un kind e viene creato come il blocco di quel tipo del gioco, con la sua forma, i suoi stati e il suo comportamento, e la tua texture.
Tipi e materiali
block "jade_bricks" { hardness: 2, tool: "pickaxe" }
block "jade_stairs" { kind: "stairs", base: "jade_bricks", texture: "mymod:block/jade_bricks" }
block "jade_slab" { kind: "slab", texture: "mymod:block/jade_bricks" }
block "jade_wall" { kind: "wall", texture: "mymod:block/jade_bricks" }
block "willow_log" { kind: "pillar", material: "wood", sound: "wood" }
block "willow_door" { kind: "door", material: "wood", sound: "wood" }
block "jade_door" { kind: "door", material: "metal" }
block "willow_fence" { kind: "fence", material: "wood", texture: "mymod:block/willow_planks" }| Tipo | Che cos’è |
|---|---|
cube |
un blocco normale (il predefinito) |
pillar |
un tronco o un pilastro: si dispone lungo l’asse su cui viene piazzato |
slab, stairs, wall, fence, fence_gate |
blocchi da costruzione che si uniscono ai vicini come quelli del gioco. Le scale ricevono in base il blocco di cui sono fatte |
door, trapdoor, button, pressure_plate |
le porte sono alte due blocchi; una piastra a pressione è attiva o spenta |
leaves, lantern, vine, ladder, carpet, bars, chain |
sbarre e pannelli sono sottili e si uniscono ai vicini; una catena si dispone lungo l’asse su cui viene piazzata |
plant, water_plant, crop |
piante (più sotto) |
barrel, bookshelf, chiseled_bookshelf, shelf, composter, crafting_table, chest, furnace |
blocchi che funzionano (più sotto) |
sign, hanging_sign |
cartelli (più sotto) |
path, ore |
sentieri e minerali (più sotto) |
material è stone (il predefinito), wood o metal, per i tipi in cui conta: una porta o una botola di legno si apre con la mano, una di metallo solo con la redstone. Anche lastre, scale, recinti, pulsanti, piastre e pilastri sono fatti come quelli del gioco di quel materiale.
Che cosa prende dal blocco del gioco. Senza file propri, un blocco di un tipo prende il blockstate e i modelli del gioco con la tua texture (per impostazione predefinita textures/block/<id>.png), il suo oggetto, i suoi drop e i suoi tag: i recinti si uniscono ai recinti, i tronchi contano come tronchi, una porta rilascia un solo oggetto. Dove il blocco del gioco usa più di una texture, se la mod ce l’ha viene usata una tua texture con la stessa terminazione: <id>_top.png e <id>_bottom.png per una porta, <id>_top.png per un pilastro, <id>_front.png e <id>_front_on.png per una fornace. Se ha modelli, tabella del bottino o tag propri, si usano quelli. hardness, sound, light e le altre proprietà di Blocchi, oggetti e ricette funzionano come per qualsiasi blocco.
Piante e coltivazioni
block "glow_grass" { kind: "plant", hardness: 0, grows_on: ["#minecraft:dirt", "mymod:glow_moss"] }
block "reed" { kind: "water_plant", hardness: 0 }
block "rice" { kind: "crop", hardness: 0 }plant: si disegna come due immagini incrociate, come l’erba, un fiore, un fungo o una piantina. Niente ci si scontra e ha bisogno del terreno.water_plant: una pianta che vive sott’acqua, come l’alga marina.crop: cresce per le età da 0 a 3 da sola e con la farina d’ossa. Il suo statoagesi legge conblock.state("age"), e da<id>_stage0.pnga<id>_stage3.pngsono le sue texture a ogni età.
grows_on elenca i blocchi su cui poggia, id o tag come #minecraft:dirt. Senza, una pianta cresce dove cresce la pianta del gioco del suo tipo (una coltivazione sulla terra coltivata). Una pianta a cui manca il terreno si rompe.
Blocchi che funzionano
block "willow_barrel" { kind: "barrel", sound: "wood" }
block "willow_chest" { kind: "chest", sound: "wood" }
block "willow_bookshelf" { kind: "bookshelf", sound: "wood" }
block "jade_furnace" { kind: "furnace", hardness: 3.5, tool: "pickaxe" }Conservano i loro oggetti, aprono la loro schermata e funzionano come quelli del gioco: un barile contiene 27 pile, una libreria incisa 6 libri, uno scaffale 3 oggetti, un compostatore si riempie, un banco da lavoro fabbrica e una fornace cuoce e resta accesa finché brucia.
Un chest si disegna con textures/entity/chest/<id>.png, e due affiancati formano un baule doppio, disegnato con <id>_left.png e <id>_right.png in quella stessa cartella. Hanno la disposizione delle texture dei bauli del gioco.
Cartelli
block "willow_sign" { kind: "sign", sound: "wood" }
block "willow_hanging_sign" { kind: "hanging_sign", sound: "wood" }I giocatori ci scrivono come su quelli del gioco. Dichiarare un cartello dichiara anche la sua forma a muro, il blocco che il suo oggetto piazza contro un muro: jade_sign arriva con jade_wall_sign, e jade_hanging_sign con jade_wall_hanging_sign. wall dà quell’id da te. La forma a muro rilascia il cartello. Un cartello appeso pende sotto un blocco, e la sua forma a muro dal lato di uno.
Sentieri e minerali
block "moss_path" { kind: "path", base: "minecraft:moss_block" }
block "jade_ore" { kind: "ore", hardness: 3, tool: "pickaxe", tier: "iron", xp: [1, 4] }Un path è un po’ più basso di un blocco, come il sentiero di terra del gioco. Una pala lo crea dalla sua base quando sopra c’è aria. Torna alla sua base quando un blocco lo copre, e rilascia la sua base.
Un ore rilascia esperienza quando viene rotto senza tocco di velluto: xp è un numero o [min, max]. Per farlo rilasciare sé stesso con il tocco di velluto e di più con la fortuna, vedi Drop in Blocchi, oggetti e ricette.
Blocchi attaccati
Con attached: true, un blocco è fissato al blocco contro cui viene piazzato, e si rompe quando quel blocco sparisce. Queste proprietà funzionano su qualsiasi blocco, con o senza tipo.
block "crystal_shard" {
attached: true
states: ["facing_all"]
model: "block/crystal_shard"
}
block "glow_bulb" {
attached: true
floor_state: "standing"
states: ["standing"]
light: 12
}- Con uno stato
"facing"o"facing_all", guarda dalla parte opposta a ciò che lo sostiene:facing_allguarda anche in alto e in basso, così un cristallo può stare su un pavimento, su un muro o su un soffitto (vedi Stati del blocco in Blocchi, oggetti e ricette). floor_stateindica uno stato interruttore che è acceso quando il blocco poggia su un pavimento e spento quando pende da un soffitto, come una lanterna. Dichiara l’interruttore anche instates.
Sedute e blocchi alti due
block "stool" { seat: 9, shape: [[3, 0, 3, 13, 9, 13]] }
block "throne" {
model: "block/throne"
seat: 10
upper: "top"
states: ["facing", "top"]
}seat permette ai giocatori di sedersi sul blocco con un clic a mano vuota, a quei pixel sopra la sua base (da 0 a 16; una sedia sta intorno a 10). Se il blocco ha un on_use che prende il clic, il giocatore non si siede.
upper rende il blocco alto due blocchi, come una porta o una sedia alta: indica uno stato interruttore che è acceso nella sua metà superiore. Piazzarlo piazza entrambe le metà se sopra c’è spazio, romperne una le rompe entrambe, e solo la metà inferiore lo rilascia. Su una seduta alta due ci si siede sulla metà inferiore. Dichiara l’interruttore anche in states. La metà superiore ha un aspetto proprio come qualsiasi stato: qui models/block/throne_top.json.
Piante in colonna
block "glow_vine" {
plant: true
column: "hanging"
states: [{ shape: ["top", "middle", "bottom"] }]
}column fa crescere una pianta in colonna, come un rampicante appeso. Il suo stato shape segue la stessa pianta sopra e sotto: bottom senza nessuna sotto, top senza nessuna sopra, middle in mezzo. Dichiaralo in states come { shape: ["top", "middle", "bottom"] }; le texture <id>_middle.png e <id>_bottom.png sono il suo aspetto in quei punti.
hanging: pende dal blocco sopra, che è la stessa pianta, foglie o un blocco solido sotto.standing: poggia sul suo terreno (grows_on) o sulla stessa pianta.
Senza ciò che la sostiene, si rompe, e le piante che pendono o poggiano su di essa se ne vanno con lei.
Proprietà
| Proprietà | Valori | Predefinito |
|---|---|---|
kind |
uno dei tipi qui sopra | cube |
material |
stone, wood, metal |
stone |
base |
per scale e sentieri: il blocco di cui sono fatti, tuo o del gioco | — |
grows_on |
per le piante: id di blocchi e tag | il terreno del suo tipo |
wall |
per i cartelli: l’id della forma a muro | jade_sign → jade_wall_sign |
xp |
per i minerali: un numero o [min, max] |
— |
attached |
fissato al blocco contro cui viene piazzato | false |
floor_state |
con attached: l’interruttore acceso quando poggia su un pavimento |
— |
seat |
pixel sopra la sua base a cui si siedono i giocatori (0–16) | non è una seduta |
upper |
alto due blocchi: l’interruttore acceso nella sua metà superiore | — |
column |
hanging o standing |
— |
In Kotlin
block("jade_stairs") { kind = BlockKind.STAIRS; base = "jade_bricks"; texture = "mymod:block/jade_bricks" }
block("willow_door") { kind = BlockKind.DOOR; material = BlockMaterial.WOOD; sound = SoundGroup.WOOD }
block("glow_grass") { kind = BlockKind.PLANT; growsOn = listOf("#minecraft:dirt") }
block("jade_ore") { kind = BlockKind.ORE; xp = 1..4 }
block("crystal_shard") { attached = true; facingAll() }
block("throne") {
seat = 10
upper = "top"
facing()
toggle("top")
}
block("glow_vine") {
plant = true
column = Column.HANGING
choice("shape", "top", "middle", "bottom")
}I tipi sono in BlockKind e i materiali in BlockMaterial. Le altre proprietà hanno gli stessi nomi in camelCase: growsOn, floorState, xp = 1..4, column = Column.HANGING. facingAll() e choice(name, …) dichiarano gli stati.