API
Tipos de bloco
Um bloco pode ser de um dos tipos do jogo: escadas que se unem nos cantos, portas de dois blocos de altura, cercas que se conectam, baús, placas, plantações, minérios. Dê a ele um kind e ele é feito como o bloco desse tipo do jogo, com sua forma, seus estados e seu comportamento, e a sua textura.
Tipos e materiais
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 | O que é |
|---|---|
cube |
um bloco comum (o padrão) |
pillar |
um tronco ou pilar: fica deitado no eixo em que é colocado |
slab, stairs, wall, fence, fence_gate |
blocos de construção que se unem aos vizinhos como os do jogo. As escadas recebem em base o bloco de que são feitas |
door, trapdoor, button, pressure_plate |
as portas têm dois blocos de altura; uma placa de pressão está ligada ou desligada |
leaves, lantern, vine, ladder, carpet, bars, chain |
grades e vidraças são finas e se unem aos vizinhos; uma corrente fica deitada no eixo em que é colocada |
plant, water_plant, crop |
plantas (abaixo) |
barrel, bookshelf, chiseled_bookshelf, shelf, composter, crafting_table, chest, furnace |
blocos que funcionam (abaixo) |
sign, hanging_sign |
placas (abaixo) |
path, ore |
caminhos e minérios (abaixo) |
material é stone (o padrão), wood ou metal, para os tipos em que isso importa: uma porta ou alçapão de madeira abre com a mão, um de metal só com redstone. Lajes, escadas, cercas, botões, placas e pilares também são feitos como os do jogo desse material.
O que ele toma do bloco do jogo. Sem arquivos próprios, um bloco de um tipo toma o blockstate e os modelos do jogo com a sua texture (por padrão textures/block/<id>.png), o seu item, os seus drops e as suas tags: cercas se unem a cercas, troncos contam como troncos, uma porta dropa um item só. Onde o bloco do jogo usa mais de uma textura, é usada uma sua com a mesma terminação, se o mod a tiver: <id>_top.png e <id>_bottom.png para uma porta, <id>_top.png para um pilar, <id>_front.png e <id>_front_on.png para uma fornalha. Se ele tiver modelos, loot ou tags próprios, esses são usados. hardness, sound, light e as outras propriedades de Blocos, itens e receitas funcionam como em qualquer bloco.
Plantas e plantações
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: é desenhada como duas imagens cruzadas, como a grama, uma flor, um cogumelo ou uma muda. Nada colide com ela e ela precisa de chão.water_plant: uma planta que vive debaixo d'água, como a grama-marinha.crop: cresce pelas idades 0 a 3 sozinha e com farinha de osso. O estadoagepode ser lido comblock.state("age"), e<id>_stage0.pnga<id>_stage3.pngsão suas texturas em cada idade.
grows_on lista os blocos em que ela se apoia, ids ou tags como #minecraft:dirt. Sem ele, uma planta cresce onde cresce a planta do jogo do seu tipo (uma plantação em terra arada). Uma planta cujo chão some se quebra.
Blocos que funcionam
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" }Eles guardam seus itens, abrem a sua tela e funcionam como os do jogo: um barril guarda 27 pilhas, uma estante de livros entalhada 6 livros, uma prateleira 3 itens, uma composteira se enche, uma bancada de trabalho fabrica e uma fornalha funde e fica acesa enquanto queima.
Um chest é desenhado com textures/entity/chest/<id>.png, e dois lado a lado formam um baú duplo, desenhado com <id>_left.png e <id>_right.png nessa mesma pasta. Eles têm o layout das texturas dos baús do jogo.
Placas
block "willow_sign" { kind: "sign", sound: "wood" }
block "willow_hanging_sign" { kind: "hanging_sign", sound: "wood" }Os jogadores escrevem nelas como nas do jogo. Declarar uma placa também declara a sua forma de parede, o bloco que o seu item coloca contra uma parede: jade_sign vem com jade_wall_sign, e jade_hanging_sign com jade_wall_hanging_sign. wall dá esse id você mesmo. A forma de parede dropa a placa. Uma placa suspensa pende sob um bloco, e a sua forma de parede, da lateral de um.
Caminhos e minérios
block "moss_path" { kind: "path", base: "minecraft:moss_block" }
block "jade_ore" { kind: "ore", hardness: 3, tool: "pickaxe", tier: "iron", xp: [1, 4] }Um path é um pouco mais baixo que um bloco, como o caminho de terra do jogo. Uma pá o faz a partir da sua base quando há ar em cima. Ele volta à sua base quando um bloco o cobre, e dropa a sua base.
Um ore solta experiência quando é quebrado sem toque suave: xp é um número ou [min, max]. Para fazer com que ele dropa a si mesmo com toque suave e mais com fortuna, veja Drops em Blocos, itens e receitas.
Blocos fixados
Com attached: true, um bloco fica preso ao bloco contra o qual é colocado, e se quebra quando esse bloco some. Estas propriedades funcionam em qualquer bloco, com ou sem 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
}- Com um estado
"facing"ou"facing_all", ele fica voltado para longe do que o segura:facing_alltambém aponta para cima e para baixo, então um cristal pode ficar num chão, numa parede ou num teto (veja Estados de bloco em Blocos, itens e receitas). floor_statenomeia um estado interruptor que fica ligado quando o bloco está sobre um chão e desligado quando pende de um teto, como uma lanterna. Declare o interruptor também emstates.
Assentos e blocos de duas alturas
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 que os jogadores se sentem no bloco com um clique de mão vazia, a tantos pixels acima da sua base (0 a 16; uma cadeira fica em cerca de 10). Se o bloco tiver um on_use que fica com o clique, o jogador não se senta.
upper faz o bloco ter duas alturas, como uma porta ou uma cadeira alta: ele nomeia um estado interruptor que fica ligado na sua metade de cima. Ao colocá-lo, as duas metades são colocadas se houver espaço em cima, ao quebrar uma as duas quebram, e só a metade de baixo o dropa. Num assento de duas alturas, a pessoa se senta na metade de baixo. Declare o interruptor também em states. A metade de cima tem um visual próprio como qualquer estado: aqui, models/block/throne_top.json.
Plantas em coluna
block "glow_vine" {
plant: true
column: "hanging"
states: [{ shape: ["top", "middle", "bottom"] }]
}column faz uma planta crescer em coluna, como uma trepadeira pendente. O seu estado shape acompanha a mesma planta acima e abaixo dela: bottom sem nenhuma abaixo, top sem nenhuma acima, middle no meio. Declare-o em states como { shape: ["top", "middle", "bottom"] }; as texturas <id>_middle.png e <id>_bottom.png são o seu visual nesses lugares.
hanging: pende do bloco de cima, que é a mesma planta, folhas ou um bloco sólido por baixo.standing: apoia-se no seu chão (grows_on) ou na mesma planta.
Sem o que a sustenta, ela se quebra, e as plantas que pendem ou se apoiam nela vão junto.
Propriedades
| Propriedade | Valores | Padrão |
|---|---|---|
kind |
um dos tipos acima | cube |
material |
stone, wood, metal |
stone |
base |
para escadas e caminhos: o bloco de que são feitos, seu ou do jogo | — |
grows_on |
para plantas: ids de blocos e tags | o chão do seu tipo |
wall |
para placas: o id da forma de parede | jade_sign → jade_wall_sign |
xp |
para minérios: um número ou [min, max] |
— |
attached |
preso ao bloco contra o qual é colocado | false |
floor_state |
com attached: o interruptor que fica ligado quando está sobre um chão |
— |
seat |
pixels acima da sua base onde os jogadores se sentam (0–16) | não é um assento |
upper |
duas alturas: o interruptor que fica ligado na sua metade de cima | — |
column |
hanging ou standing |
— |
Em 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")
}Os tipos estão em BlockKind e os materiais em BlockMaterial. As outras propriedades têm os mesmos nomes em camelCase: growsOn, floorState, xp = 1..4, column = Column.HANGING. facingAll() e choice(name, …) declaram os estados.