API
Види блоків
Блок може бути одним із видів блоків гри: сходами, що з'єднуються на кутах, дверима заввишки в два блоки, парканом, що з'єднується із сусідами, скринею, табличкою, посівом, рудою. Вкажи kind, і блок створиться як ігровий блок цього виду, з його формою, станами та поведінкою, але з твоєю текстурою.
Види й матеріали
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" }| Вид | Що це |
|---|---|
cube |
звичайний блок (за замовчуванням) |
pillar |
колода або колона: лежить уздовж осі, за якою її поставили |
slab, stairs, wall, fence, fence_gate |
будівельні блоки, що з'єднуються із сусідами, як ігрові. Сходи беруть блок, з якого вони зроблені, з base |
door, trapdoor, button, pressure_plate |
двері заввишки в два блоки; натискна плита або ввімкнена, або вимкнена |
leaves, lantern, vine, ladder, carpet, bars, chain |
ґрати й панелі тонкі та з'єднуються із сусідами; ланцюг лежить уздовж осі, за якою його поставили |
plant, water_plant, crop |
рослини (нижче) |
barrel, bookshelf, chiseled_bookshelf, shelf, composter, crafting_table, chest, furnace |
блоки, що працюють (нижче) |
sign, hanging_sign |
таблички (нижче) |
path, ore |
стежки й руди (нижче) |
material — це stone (за замовчуванням), wood або metal, для видів, де це важливо: дерев'яні двері чи люк відкриваються рукою, металеві лише редстоуном. Напівблоки, сходи, паркани, кнопки, плити й колони теж створюються як ігрові з цього матеріалу.
Що блок бере в ігрового блока. Без власних файлів блок виду бере стани блока та моделі гри з твоєю texture (за замовчуванням textures/block/<id>.png), його предмет, його здобич і його теги: паркани з'єднуються з парканами, колоди вважаються колодами, двері дають один предмет. Якщо ігровий блок використовує кілька текстур, береться твоя текстура з тим самим закінченням, коли вона є в моді: <id>_top.png і <id>_bottom.png для дверей, <id>_top.png для колони, <id>_front.png і <id>_front_on.png для печі. Якщо в блока є власні моделі, здобич або теги, використовуються вони. hardness, sound, light та інші властивості зі сторінки Блоки, предмети й рецепти працюють як у будь-якого блока.
Рослини й посіви
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: малюється як два схрещені зображення, як трава, квітка, гриб або саджанець. Ніщо з ним не стикається, і йому потрібна земля.water_plant: рослина, що росте під водою, як морська трава.crop: росте за віками від 0 до 3 сама й від кісткового борошна. Його станageможна прочитати черезblock.state("age"), а<id>_stage0.png…<id>_stage3.png— його текстури в кожному віці.
grows_on перелічує блоки, на яких воно стоїть: id або теги, наприклад #minecraft:dirt. Без нього рослина росте там, де росте ігрова рослина того самого виду (посів — на грядці). Рослина, в якої зникла земля, ламається.
Блоки, що працюють
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" }Вони зберігають свої предмети, відкривають свій екран і працюють як ігрові: діжка вміщує 27 стеків, різьблена книжкова шафа — 6 книжок, полиця — 3 предмети, компостер наповнюється, верстак крафтить, піч плавить і горить, поки працює.
chest малюється з textures/entity/chest/<id>.png, а дві скрині поруч утворюють подвійну скриню, що малюється з <id>_left.png і <id>_right.png у тій самій теці. Вони влаштовані так само, як текстури ігрових скринь.
Таблички
block "willow_sign" { kind: "sign", sound: "wood" }
block "willow_hanging_sign" { kind: "hanging_sign", sound: "wood" }Гравці пишуть на них, як на ігрових. Оголошуючи табличку, ти оголошуєш і її настінну форму, блок, який її предмет ставить на стіну: до jade_sign додається jade_wall_sign, а до jade_hanging_sign — jade_wall_hanging_sign. Через wall цей id задаєш ти сам. Настінна форма дає табличку. Підвісна табличка висить під блоком, а її настінна форма — збоку від блока.
Стежки й руди
block "moss_path" { kind: "path", base: "minecraft:moss_block" }
block "jade_ore" { kind: "ore", hardness: 3, tool: "pickaxe", tier: "iron", xp: [1, 4] }path трохи нижча за блок, як ігрова стежка. Лопата робить її з base, коли зверху повітря. Вона знову стає своїм base, коли її накриває блок, і дає свій base.
ore дає досвід, коли його ламають без шовкового дотику: xp — число або [min, max]. Щоб він випадав сам із шовковим дотиком і давав більше з удачею, дивись «Здобич: інструменти й удача» на сторінці Блоки, предмети й рецепти.
Прикріплені блоки
З attached: true блок кріпиться до блока, до якого його поставили, і ламається, коли той зникає. Ці властивості працюють у будь-якого блока, з видом чи без.
block "crystal_shard" {
attached: true
states: ["facing_all"]
model: "block/crystal_shard"
}
block "glow_bulb" {
attached: true
floor_state: "standing"
states: ["standing"]
light: 12
}- Зі станом
"facing"або"facing_all"він дивиться від того, що його тримає:facing_allдивиться ще вгору й униз, тож уламок може стояти на підлозі, на стіні чи на стелі (див. «Стани блока» на сторінці Блоки, предмети й рецепти). floor_stateназиває стан-перемикач, який увімкнений, коли блок стоїть на підлозі, і вимкнений, коли він висить на стелі, як у ліхтаря. Оголоси цей перемикач і вstates.
Сидіння та блоки заввишки в два
block "stool" { seat: 9, shape: [[3, 0, 3, 13, 9, 13]] }
block "throne" {
model: "block/throne"
seat: 10
upper: "top"
states: ["facing", "top"]
}seat дозволяє гравцям сідати на блок кліком порожньої руки, на стільки пікселів вище за його низ (від 0 до 16; у стільця близько 10). Якщо в блока є on_use, що забирає клік, гравець не сідає.
upper робить блок заввишки в два блоки, як двері чи високий стілець: він називає стан-перемикач, який увімкнений у його верхній половині. Коли зверху є місце, під час встановлення ставляться обидві половини, під час руйнування однієї ламаються обидві, а дає блок лише нижня половина. На дворівневе сидіння сідають на нижній половині. Оголоси цей перемикач і в states. Верхня половина має власний вигляд, як будь-який стан: тут це models/block/throne_top.json.
Рослини в стовпчик
block "glow_vine" {
plant: true
column: "hanging"
states: [{ shape: ["top", "middle", "bottom"] }]
}column змушує рослину рости стовпчиком, як ліана, що звисає. Її стан shape слідує за такою самою рослиною зверху й знизу: bottom, якщо знизу немає, top, якщо немає зверху, middle між ними. Оголоси його в states як { shape: ["top", "middle", "bottom"] }; текстури <id>_middle.png і <id>_bottom.png — його вигляд у цих місцях.
hanging: звисає з блока зверху, яким може бути така сама рослина, листя або блок, твердий знизу.standing: стоїть на своїй землі (grows_on) або на такій самій рослині.
Без того, що її тримає, вона ламається, а рослини, що на ній звисають чи стоять, зникають разом із нею.
Властивості
| Властивість | Значення | За замовчуванням |
|---|---|---|
kind |
один із видів вище | cube |
material |
stone, wood, metal |
stone |
base |
для сходів і стежок: блок, з якого вони зроблені, твій або ігровий | — |
grows_on |
для рослин: id блоків і теги | земля її виду |
wall |
для табличок: id настінної форми | jade_sign → jade_wall_sign |
xp |
для руд: число або [min, max] |
— |
attached |
кріпиться до блока, до якого поставлений | false |
floor_state |
разом з attached: перемикач, який увімкнений, коли блок стоїть на підлозі |
— |
seat |
пікселів вище за низ блока, де сидять гравці (0–16) | не сидіння |
upper |
заввишки в два блоки: перемикач, який увімкнений у верхній половині | — |
column |
hanging або standing |
— |
У 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")
}Види є в BlockKind, а матеріали — в BlockMaterial. Решта властивостей мають ті самі імена в camelCase: growsOn, floorState, xp = 1..4, column = Column.HANGING. Стани оголошують facingAll() і choice(name, …).