API

Blockarten

Ein Block kann eine der Arten des Spiels sein: Treppen, die an Ecken zusammenfinden, zwei Blöcke hohe Türen, Zäune, die sich verbinden, Truhen, Schilder, Nutzpflanzen, Erze. Gib ihm eine kind, und er wird wie der Block des Spiels dieser Art gemacht, mit dessen Form, Zuständen und Verhalten und deiner Textur.

Arten und Materialien

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" }
Art Was es ist
cube ein einfacher Block (der Standard)
pillar ein Stamm oder eine Säule: Er liegt entlang der Achse, auf der er platziert wird
slab, stairs, wall, fence, fence_gate Baublöcke, die sich wie die des Spiels mit ihren Nachbarn verbinden. Treppen nehmen den Block, aus dem sie gemacht sind, in base
door, trapdoor, button, pressure_plate Türen sind zwei Blöcke hoch; eine Druckplatte ist an oder aus
leaves, lantern, vine, ladder, carpet, bars, chain Gitter und Scheiben sind dünn und verbinden sich mit ihren Nachbarn; eine Kette liegt entlang der Achse, auf der sie platziert wird
plant, water_plant, crop Pflanzen (unten)
barrel, bookshelf, chiseled_bookshelf, shelf, composter, crafting_table, chest, furnace Blöcke, die arbeiten (unten)
sign, hanging_sign Schilder (unten)
path, ore Wege und Erze (unten)

material ist stone (der Standard), wood oder metal, für die Arten, bei denen es darauf ankommt: Eine hölzerne Tür oder Falltür öffnet sich von Hand, eine metallene nur mit Redstone. Auch Halbstufen, Treppen, Zäune, Knöpfe, Platten und Säulen werden wie die des Spiels aus diesem Material gemacht.

Was er vom Block des Spiels übernimmt. Ohne eigene Dateien übernimmt ein Block einer Art den Blockstate und die Modelle des Spiels mit deiner texture (standardmäßig textures/block/<id>.png), seinen Gegenstand, seine Drops und seine Tags: Zäune verbinden sich mit Zäunen, Stämme zählen als Stämme, eine Tür lässt einen Gegenstand fallen. Wo der Block des Spiels mehr als eine Textur verwendet, wird eine Textur von dir mit derselben Endung verwendet, wenn die Mod sie hat: <id>_top.png und <id>_bottom.png für eine Tür, <id>_top.png für eine Säule, <id>_front.png und <id>_front_on.png für einen Ofen. Hat er eigene Modelle, Beute oder Tags, werden diese verwendet. hardness, sound, light und die anderen Eigenschaften aus Blöcke, Gegenstände und Rezepte funktionieren wie bei jedem Block.

Pflanzen und Nutzpflanzen

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: als zwei gekreuzte Bilder gezeichnet, wie Gras, eine Blume, ein Pilz oder ein Setzling. Nichts kollidiert mit ihr, und sie braucht Boden.
  • water_plant: eine Pflanze, die unter Wasser lebt, wie Seegras.
  • crop: Sie wächst von allein und mit Knochenmehl durch die Stufen 0 bis 3. Ihr Zustand age lässt sich mit block.state("age") lesen, und <id>_stage0.png bis <id>_stage3.png sind ihre Texturen in jeder Stufe.

grows_on listet die Blöcke auf, auf denen sie steht, IDs oder Tags wie #minecraft:dirt. Ohne sie wächst eine Pflanze dort, wo die Pflanze des Spiels ihrer Art wächst (eine Nutzpflanze auf Ackerboden). Eine Pflanze, deren Boden verschwindet, geht kaputt.

Blöcke, die arbeiten

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

Sie behalten ihre Gegenstände, öffnen ihre Oberfläche und funktionieren wie die des Spiels: Ein Fass fasst 27 Stapel, ein gemeißeltes Bücherregal 6 Bücher, ein Regal 3 Gegenstände, ein Komposter füllt sich, eine Werkbank stellt her, ein Ofen schmilzt und leuchtet, solange er brennt.

Eine chest wird mit textures/entity/chest/<id>.png gezeichnet, und zwei nebeneinander bilden eine Doppeltruhe, gezeichnet mit <id>_left.png und <id>_right.png im selben Ordner. Sie haben das Layout der Truhentexturen des Spiels.

Schilder

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

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

Spieler schreiben darauf wie auf die des Spiels. Wer ein Schild deklariert, deklariert auch seine Wandform, den Block, den sein Gegenstand an eine Wand setzt: jade_sign kommt mit jade_wall_sign, und jade_hanging_sign mit jade_wall_hanging_sign. Mit wall gibst du diese ID selbst an. Die Wandform lässt das Schild fallen. Ein Hängeschild hängt unter einem Block, seine Wandform an der Seite eines Blocks.

Wege und Erze

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

Ein path ist etwas niedriger als ein Block, wie der Trampelpfad des Spiels. Eine Schaufel macht ihn aus seiner base, wenn darüber Luft ist. Er wird wieder zu seiner Basis, wenn ein Block ihn bedeckt, und lässt seine Basis fallen.

Ein ore gibt Erfahrung ab, wenn es ohne Behutsamkeit abgebaut wird: xp ist eine Zahl oder [min, max]. Damit es sich mit Behutsamkeit selbst und mit Glück mehr fallen lässt, siehe Drops in Blöcke, Gegenstände und Rezepte.

Angehängte Blöcke

Mit attached: true ist ein Block an dem Block befestigt, an den er gesetzt wird, und er geht kaputt, wenn dieser verschwindet. Diese Eigenschaften funktionieren bei jedem Block, mit oder ohne Art.

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
}
  • Mit einem Zustand "facing" oder "facing_all" zeigt er von dem weg, was ihn hält: facing_all zeigt auch nach oben und unten, sodass ein Splitter auf einem Boden, einer Wand oder einer Decke sitzen kann (siehe Blockzustände in Blöcke, Gegenstände und Rezepte).
  • floor_state nennt einen Schalter-Zustand, der an ist, wenn der Block auf einem Boden steht, und aus, wenn er von einer Decke hängt, wie bei einer Laterne. Deklariere den Schalter auch in states.

Sitze und zwei Blöcke hohe Blöcke

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 lässt Spieler mit einem Klick der leeren Hand auf dem Block sitzen, so viele Pixel über seiner Unterseite (0 bis 16; ein Stuhl hat etwa 10). Hat der Block ein on_use, das den Klick übernimmt, setzt sich der Spieler nicht.

upper macht den Block zwei Blöcke hoch, wie eine Tür oder einen hohen Stuhl: Es nennt einen Schalter-Zustand, der in seiner oberen Hälfte an ist. Beim Platzieren werden beide Hälften gesetzt, wenn darüber Platz ist, beim Abbauen gehen beide kaputt, und nur die untere Hälfte lässt ihn fallen. Auf einem zwei Blöcke hohen Sitz sitzt man an seiner unteren Hälfte. Deklariere den Schalter auch in states. Die obere Hälfte hat wie jeder Zustand ein eigenes Aussehen: hier models/block/throne_top.json.

Pflanzen in einer Säule

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

column lässt eine Pflanze in einer Säule wachsen, wie eine hängende Ranke. Ihr Zustand shape folgt derselben Pflanze über und unter ihr: bottom ohne eine darunter, top ohne eine darüber, middle dazwischen. Deklariere ihn in states als { shape: ["top", "middle", "bottom"] }; die Texturen <id>_middle.png und <id>_bottom.png sind ihr Aussehen dort.

  • hanging: Sie hängt am Block darüber, der dieselbe Pflanze, Blätter oder ein Block ist, der darunter fest ist.
  • standing: Sie steht auf ihrem Boden (grows_on) oder auf derselben Pflanze.

Ohne das, was sie hält, geht sie kaputt, und die Pflanzen, die an ihr hängen oder auf ihr stehen, gehen mit.

Eigenschaften

Eigenschaft Werte Standard
kind eine der obigen Arten cube
material stone, wood, metal stone
base für Treppen und Wege: der Block, aus dem sie gemacht sind, deiner oder der des Spiels —
grows_on für Pflanzen: Block-IDs und Tags der Boden seiner Art
wall für Schilder: die ID der Wandform jade_sign → jade_wall_sign
xp für Erze: eine Zahl oder [min, max] —
attached an dem Block befestigt, an den er gesetzt wird false
floor_state mit attached: der Schalter, der an ist, wenn er auf einem Boden steht —
seat Pixel über seiner Unterseite, wo Spieler sitzen (0–16) kein Sitz
upper zwei Blöcke hoch: der Schalter, der in seiner oberen Hälfte an ist —
column hanging oder 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")
}

Die Arten stehen in BlockKind und die Materialien in BlockMaterial. Die anderen Eigenschaften haben dieselben Namen in camelCase: growsOn, floorState, xp = 1..4, column = Column.HANGING. facingAll() und choice(name, …) deklarieren die Zustände.