API

Tipos de bloque

Un bloque puede ser de alguno de los tipos del juego: escaleras que se unen en las esquinas, puertas de dos bloques de alto, vallas que se conectan, cofres, carteles, cultivos, menas. Dale un kind y se crea como el bloque de ese tipo del juego, con su forma, sus estados y su comportamiento, y tu textura.

Tipos y materiales

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 Qué es
cube un bloque normal (el valor por defecto)
pillar un tronco o pilar: se tumba sobre el eje en que se coloca
slab, stairs, wall, fence, fence_gate bloques de construcción que se unen a sus vecinos como los del juego. Las escaleras toman en base el bloque del que están hechas
door, trapdoor, button, pressure_plate las puertas miden dos bloques de alto; una placa de presión está activada o desactivada
leaves, lantern, vine, ladder, carpet, bars, chain las barras y los paneles son finos y se unen a sus vecinos; una cadena se tumba sobre el eje en que se coloca
plant, water_plant, crop plantas (más abajo)
barrel, bookshelf, chiseled_bookshelf, shelf, composter, crafting_table, chest, furnace bloques que funcionan (más abajo)
sign, hanging_sign carteles (más abajo)
path, ore caminos y menas (más abajo)

material es stone (el valor por defecto), wood o metal, para los tipos en que importa: una puerta o trampilla de madera se abre con la mano, una de metal solo con redstone. Las losas, escaleras, vallas, botones, placas y pilares también se hacen como los del juego de ese material.

Qué toma del bloque del juego. Sin archivos propios, un bloque de un tipo toma el blockstate y los modelos del juego con tu texture (por defecto textures/block/<id>.png), su ítem, lo que suelta y sus etiquetas: las vallas se unen a las vallas, los troncos cuentan como troncos, una puerta suelta un solo ítem. Donde el bloque del juego usa más de una textura, se usa una tuya con la misma terminación si el mod la tiene: <id>_top.png y <id>_bottom.png para una puerta, <id>_top.png para un pilar, <id>_front.png y <id>_front_on.png para un horno. Si tiene modelos, botín o etiquetas propios, se usan esos. hardness, sound, light y las demás propiedades de Bloques, ítems y recetas funcionan como en cualquier bloque.

Plantas y cultivos

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: se dibuja como dos imágenes cruzadas, como la hierba, una flor, una seta o un brote. Nada choca con ella y necesita suelo.
  • water_plant: una planta que vive bajo el agua, como la hierba marina.
  • crop: crece por las edades 0 a 3 por sí sola y con polvo de hueso. Su estado age se puede leer con block.state("age"), y <id>_stage0.png a <id>_stage3.png son sus texturas en cada edad.

grows_on lista los bloques sobre los que se asienta, ids o etiquetas como #minecraft:dirt. Sin él, una planta crece donde crece la planta del juego de su tipo (un cultivo en tierra de cultivo). Una planta a la que le falta el suelo se rompe.

Bloques que funcionan

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" }

Conservan sus objetos, abren su pantalla y funcionan como los del juego: un barril guarda 27 pilas, una estantería de libros cincelada 6 libros, una repisa 3 objetos, un compostador se llena, una mesa de crafteo craftea y un horno funde y está encendido mientras arde.

Un chest se dibuja con textures/entity/chest/<id>.png, y dos juntos forman un cofre doble, que se dibuja con <id>_left.png y <id>_right.png en esa misma carpeta. Tienen la disposición de las texturas de los cofres del juego.

Carteles

content/signs.craftCraftScript
block "willow_sign" { kind: "sign", sound: "wood" }

block "willow_hanging_sign" { kind: "hanging_sign", sound: "wood" }

Los jugadores escriben en ellos como en los del juego. Declarar un cartel también declara su forma de pared, el bloque que su ítem coloca contra una pared: jade_sign viene con jade_wall_sign, y jade_hanging_sign con jade_wall_hanging_sign. wall da ese id tú mismo. La forma de pared suelta el cartel. Un cartel colgante cuelga bajo un bloque, y su forma de pared del costado de uno.

Caminos y menas

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 es un poco más bajo que un bloque, como el camino de tierra del juego. Una pala lo hace a partir de su base cuando hay aire encima. Vuelve a su base cuando un bloque lo cubre, y suelta su base.

Una ore da experiencia al romperla sin toque de seda: xp es un número o [mín, máx]. Para que se suelte a sí misma con toque de seda y más con fortuna, ver Lo que suelta en Bloques, ítems y recetas.

Bloques sujetos

Con attached: true, un bloque queda fijo al bloque contra el que se coloca, y se rompe cuando ese bloque desaparece. Estas propiedades funcionan en cualquier bloque, con tipo o sin él.

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 un estado "facing" o "facing_all", mira en sentido contrario a lo que lo sostiene: facing_all también mira hacia arriba y hacia abajo, así que un cristal puede estar en un suelo, una pared o un techo (ver Estados de bloque en Bloques, ítems y recetas).
  • floor_state nombra un estado interruptor que está encendido cuando el bloque se apoya en un suelo y apagado cuando cuelga de un techo, como una linterna. Declara el interruptor también en states.

Asientos y bloques de dos de alto

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 permite a los jugadores sentarse en el bloque con un clic de mano vacía, a tantos píxeles sobre su base (0 a 16; una silla ronda los 10). Si el bloque tiene un on_use que se queda con el clic, el jugador no se sienta.

upper hace que el bloque mida dos de alto, como una puerta o una silla alta: nombra un estado interruptor que está encendido en su mitad superior. Al colocarlo se colocan las dos mitades si hay sitio encima, al romper una se rompen las dos, y solo la mitad inferior lo suelta. En un asiento de dos de alto uno se sienta en la mitad inferior. Declara el interruptor también en states. La mitad superior tiene un aspecto propio como cualquier estado: aquí models/block/throne_top.json.

Plantas en columna

content/vines.craftCraftScript
block "glow_vine" {
    plant: true
    column: "hanging"
    states: [{ shape: ["top", "middle", "bottom"] }]
}

column hace que una planta crezca en columna, como una enredadera colgante. Su estado shape sigue a la misma planta de arriba y de abajo: bottom si no hay ninguna debajo, top si no hay ninguna encima, middle en medio. Decláralo en states como { shape: ["top", "middle", "bottom"] }; las texturas <id>_middle.png y <id>_bottom.png son su aspecto en cada lugar.

  • hanging: cuelga del bloque de arriba, que es la misma planta, hojas o un bloque sólido por debajo.
  • standing: se apoya en su suelo (grows_on) o en la misma planta.

Sin lo que la sostiene, se rompe, y las plantas que cuelgan o se apoyan en ella se van con ella.

Propiedades

Propiedad Valores Por defecto
kind uno de los tipos de arriba cube
material stone, wood, metal stone
base para escaleras y caminos: el bloque del que están hechos, tuyo o del juego —
grows_on para plantas: ids de bloques y etiquetas el suelo de su tipo
wall para carteles: el id de la forma de pared jade_sign → jade_wall_sign
xp para menas: un número o [mín, máx] —
attached fijo al bloque contra el que se coloca false
floor_state con attached: el interruptor que está encendido cuando se apoya en un suelo —
seat píxeles sobre su base donde se sientan los jugadores (0–16) no es un asiento
upper dos de alto: el interruptor que está encendido en su mitad superior —
column hanging o standing —

En 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")
}

Los tipos están en BlockKind y los materiales en BlockMaterial. Las demás propiedades tienen los mismos nombres en camelCase: growsOn, floorState, xp = 1..4, column = Column.HANGING. facingAll() y choice(name, …) declaran los estados.