API

Rodzaje bloków

Blok może być jednym z rodzajów z gry: schody łączące się w narożnikach, drzwi o wysokości dwóch bloków, płoty, które się łączą, skrzynie, tabliczki, uprawy, rudy. Nadaj mu kind, a powstanie jak blok z gry tego rodzaju, z jego kształtem, stanami i zachowaniem oraz twoją teksturą.

Rodzaje i materiały

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" }
Rodzaj Czym jest
cube zwykły blok (domyślnie)
pillar pień lub filar: leży wzdłuż osi, na której został postawiony
slab, stairs, wall, fence, fence_gate bloki budowlane, które łączą się z sąsiadami jak te z gry. Schody biorą blok, z którego są zrobione, w base
door, trapdoor, button, pressure_plate drzwi mają wysokość dwóch bloków; płyta naciskowa jest włączona albo wyłączona
leaves, lantern, vine, ladder, carpet, bars, chain kraty i szyby są cienkie i łączą się z sąsiadami; łańcuch leży wzdłuż osi, na której został postawiony
plant, water_plant, crop rośliny (poniżej)
barrel, bookshelf, chiseled_bookshelf, shelf, composter, crafting_table, chest, furnace bloki, które działają (poniżej)
sign, hanging_sign tabliczki (poniżej)
path, ore ścieżki i rudy (poniżej)

material to stone (domyślnie), wood lub metal, dla rodzajów, w których to ma znaczenie: drewniane drzwi lub zapadnia otwierają się ręką, metalowe tylko redstone. Płyty, schody, płoty, przyciski, płyty naciskowe i filary też są robione jak te z gry z tego materiału.

Co blok bierze z bloku z gry. Bez własnych plików blok danego rodzaju bierze blockstate i modele z gry z twoją teksturą texture (domyślnie textures/block/<id>.png), jego przedmiot, jego upuszczane przedmioty i jego tagi: płoty łączą się z płotami, pnie liczą się jako pnie, drzwi upuszczają jeden przedmiot. Tam, gdzie blok z gry używa więcej niż jednej tekstury, używana jest twoja tekstura z tym samym zakończeniem, jeśli mod ją ma: <id>_top.png i <id>_bottom.png dla drzwi, <id>_top.png dla filaru, <id>_front.png i <id>_front_on.png dla pieca. Jeśli ma własne modele, łup lub tagi, używane są one. hardness, sound, light i pozostałe właściwości z Bloki, przedmioty i receptury działają jak w każdym bloku.

Rośliny i uprawy

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: rysowana jako dwa skrzyżowane obrazki, jak trawa, kwiat, grzyb lub sadzonka. Nic z nią nie koliduje i potrzebuje gruntu.
  • water_plant: roślina żyjąca pod wodą, jak trawa morska.
  • crop: rośnie przez wieki od 0 do 3 sama i z mączką kostną. Jej stan age można odczytać przez block.state("age"), a <id>_stage0.png do <id>_stage3.png to jej tekstury w każdym wieku.

grows_on wymienia bloki, na których stoi, id lub tagi takie jak #minecraft:dirt. Bez niego roślina rośnie tam, gdzie rośnie roślina z gry jej rodzaju (uprawa na grządce). Roślina, której grunt zniknie, się łamie.

Bloki, które działają

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

Zachowują swoje przedmioty, otwierają swój ekran i działają jak te z gry: beczka mieści 27 stosów, rzeźbiony regał 6 książek, półka 3 przedmioty, kompostownik się napełnia, stół rzemieślniczy tworzy, a piec przetapia i świeci, gdy się pali.

chest jest rysowana z textures/entity/chest/<id>.png, a dwie obok siebie tworzą podwójną skrzynię, rysowaną z <id>_left.png i <id>_right.png w tym samym folderze. Mają układ tekstur skrzyni z gry.

Tabliczki

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

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

Gracze piszą na nich jak na tych z gry. Zadeklarowanie tabliczki deklaruje też jej formę ścienną, blok, który jej przedmiot stawia przy ścianie: jade_sign ma jade_wall_sign, a jade_hanging_sign ma jade_wall_hanging_sign. wall pozwala podać to id samemu. Forma ścienna upuszcza tabliczkę. Wisząca tabliczka wisi pod blokiem, a jej forma ścienna z boku bloku.

Ścieżki i rudy

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

path jest trochę niższa niż blok, jak ścieżka z ziemi z gry. Łopata robi ją z jej base, gdy nad nią jest powietrze. Wraca do swojego base, gdy zakryje ją blok, i upuszcza swój base.

ore daje doświadczenie, gdy zostanie zniszczona bez jedwabnego dotyku: xp to liczba lub [min, max]. Żeby upuszczała siebie z jedwabnym dotykiem, a więcej ze szczęściem, zobacz Upuszczane przedmioty w Bloki, przedmioty i receptury.

Bloki przyczepione

Z attached: true blok jest przymocowany do bloku, przy którym go postawiono, i łamie się, gdy tamten zniknie. Te właściwości działają na każdym bloku, z rodzajem lub bez.

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
}
  • Ze stanem "facing" lub "facing_all" jest zwrócony w stronę przeciwną do tego, co go trzyma: facing_all obejmuje też górę i dół, więc odłamek może stać na podłodze, na ścianie lub na suficie (zobacz Stany bloku w Bloki, przedmioty i receptury).
  • floor_state nazywa stan-przełącznik, który jest włączony, gdy blok stoi na podłodze, a wyłączony, gdy wisi pod sufitem, jak latarnia. Zadeklaruj ten przełącznik także w states.

Siedzenia i bloki o wysokości dwóch bloków

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 pozwala graczom siadać na bloku kliknięciem pustą ręką, na tyle pikseli nad jego spodem (0 do 16; krzesło to około 10). Jeśli blok ma on_use, które przejmuje kliknięcie, gracz nie siada.

upper robi z bloku blok o wysokości dwóch bloków, jak drzwi lub wysokie krzesło: nazywa stan-przełącznik, który jest włączony w jego górnej połowie. Postawienie go stawia obie połowy, gdy nad nim jest miejsce, zniszczenie jednej niszczy obie, a upuszcza go tylko dolna połowa. Na dwublokowym siedzeniu siada się na jego dolnej połowie. Zadeklaruj ten przełącznik także w states. Górna połowa ma własny wygląd jak każdy stan: tutaj models/block/throne_top.json.

Rośliny w kolumnie

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

column sprawia, że roślina rośnie w kolumnie, jak zwisające pnącze. Jej stan shape podąża za tą samą rośliną nad i pod nią: bottom, gdy pod nią nie ma żadnej, top, gdy nad nią nie ma żadnej, middle pomiędzy. Zadeklaruj go w states jako { shape: ["top", "middle", "bottom"] }; tekstury <id>_middle.png i <id>_bottom.png to jej wyglądy w tych miejscach.

  • hanging: zwisa z bloku nad nią, którym jest ta sama roślina, liście lub blok pełny od spodu.
  • standing: stoi na swoim gruncie (grows_on) albo na tej samej roślinie.

Bez tego, co ją podtrzymuje, się łamie, a rośliny, które na niej wiszą lub stoją, łamią się razem z nią.

Właściwości

Właściwość Wartości Domyślnie
kind jeden z powyższych rodzajów cube
material stone, wood, metal stone
base dla schodów i ścieżek: blok, z którego są zrobione, twój lub z gry —
grows_on dla roślin: id bloków i tagi grunt jej rodzaju
wall dla tabliczek: id formy ściennej jade_sign → jade_wall_sign
xp dla rud: liczba lub [min, max] —
attached przymocowany do bloku, przy którym go postawiono false
floor_state z attached: przełącznik włączony, gdy stoi na podłodze —
seat pikseli nad spodem, na których siadają gracze (0–16) nie jest siedzeniem
upper o wysokości dwóch bloków: przełącznik włączony w jego górnej połowie —
column hanging lub standing —

W Kotlinie

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

Rodzaje są w BlockKind, a materiały w BlockMaterial. Pozostałe właściwości mają te same nazwy w camelCase: growsOn, floorState, xp = 1..4, column = Column.HANGING. facingAll() i choice(name, …) deklarują stany.