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

content/jade.craftCraftScript
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

content/plants.craftCraftScript
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 stato age si legge con block.state("age"), e da <id>_stage0.png a <id>_stage3.png sono 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

content/workshop.craftCraftScript
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

content/signs.craftCraftScript
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

content/ground.craftCraftScript
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.

content/attached.craftCraftScript
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_all guarda 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_state indica 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 in states.

Sedute e blocchi alti due

content/chairs.craftCraftScript
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

content/vines.craftCraftScript
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

content/Jade.ktKotlin
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.