API

Sortes de blocs

Un bloc peut être de l’une des sortes du jeu : des escaliers qui se raccordent dans les angles, des portes hautes de deux blocs, des clôtures qui se connectent, des coffres, des panneaux, des cultures, des minerais. Donne-lui un kind et il est fabriqué comme le bloc du jeu de cette sorte, avec sa forme, ses états et son comportement, et ta texture.

Sortes et matériaux

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" }
Sorte Ce que c’est
cube un bloc simple (par défaut)
pillar une bûche ou un pilier : il se couche dans l’axe sur lequel il est posé
slab, stairs, wall, fence, fence_gate des blocs de construction qui se raccordent à leurs voisins comme ceux du jeu. Les escaliers prennent dans base le bloc dont ils sont faits
door, trapdoor, button, pressure_plate les portes font deux blocs de haut ; une plaque de pression est activée ou non
leaves, lantern, vine, ladder, carpet, bars, chain les barreaux et les vitres sont fins et se raccordent à leurs voisins ; une chaîne se couche dans l’axe sur lequel elle est posée
plant, water_plant, crop des plantes (plus bas)
barrel, bookshelf, chiseled_bookshelf, shelf, composter, crafting_table, chest, furnace des blocs qui servent à quelque chose (plus bas)
sign, hanging_sign des panneaux (plus bas)
path, ore des chemins et des minerais (plus bas)

material vaut stone (par défaut), wood ou metal, pour les sortes où cela compte : une porte ou une trappe en bois s’ouvre à la main, une en métal seulement avec de la redstone. Les dalles, escaliers, clôtures, boutons, plaques et piliers sont aussi fabriqués comme ceux du jeu de ce matériau.

Ce qu’il reprend du bloc du jeu. Sans fichiers à lui, un bloc d’une sorte reprend l’état de bloc et les modèles du jeu avec ta texture (par défaut textures/block/<id>.png), son objet, son butin et ses tags : les clôtures se raccordent aux clôtures, les bûches comptent comme des bûches, une porte lâche un objet. Là où le bloc du jeu utilise plusieurs textures, une texture à toi de même terminaison est utilisée si le mod l’a : <id>_top.png et <id>_bottom.png pour une porte, <id>_top.png pour un pilier, <id>_front.png et <id>_front_on.png pour un four. S’il a ses propres modèles, son butin ou ses tags, ce sont ceux-là qui servent. hardness, sound, light et les autres propriétés de Blocs, objets et recettes marchent comme pour n’importe quel bloc.

Plantes et cultures

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 : dessinée comme deux images croisées, comme l’herbe, une fleur, un champignon ou une pousse. Rien n’entre en collision avec elle et elle a besoin d’un sol.
  • water_plant : une plante qui vit sous l’eau, comme la zostère.
  • crop : elle pousse du stade 0 au stade 3 toute seule et avec de la poudre d’os. Son état age se lit avec block.state("age"), et <id>_stage0.png à <id>_stage3.png sont ses textures à chaque stade.

grows_on liste les blocs sur lesquels elle se tient, des ids ou des tags comme #minecraft:dirt. Sans lui, une plante pousse là où pousse la plante du jeu de sa sorte (une culture sur de la terre labourée). Une plante dont le sol disparaît se brise.

Blocs qui servent à quelque chose

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

Ils gardent leurs objets, ouvrent leur écran et fonctionnent comme ceux du jeu : un tonneau contient 27 piles, une bibliothèque chiselée 6 livres, une étagère 3 objets, un composteur se remplit, un établi fabrique, un four cuit et est allumé tant qu’il brûle.

Un chest est dessiné avec textures/entity/chest/<id>.png, et deux côte à côte forment un grand coffre, dessiné avec <id>_left.png et <id>_right.png dans ce même dossier. Elles ont la disposition des textures de coffre du jeu.

Panneaux

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

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

Les joueurs y écrivent comme sur ceux du jeu. Déclarer un panneau déclare aussi sa forme murale, le bloc que son objet pose contre un mur : jade_sign vient avec jade_wall_sign, et jade_hanging_sign avec jade_wall_hanging_sign. wall donne cet id toi-même. La forme murale lâche le panneau. Un panneau suspendu pend sous un bloc, et sa forme murale sort du côté d’un bloc.

Chemins et minerais

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 est un peu plus bas qu’un bloc, comme le chemin de terre du jeu. Une pelle le fait à partir de son base quand il y a de l’air au-dessus. Il redevient son bloc de base quand un bloc le recouvre, et il lâche son bloc de base.

Un ore libère de l’expérience quand il est cassé sans Toucher de soie : xp est un nombre ou [min, max]. Pour qu’il se lâche lui-même avec Toucher de soie et en lâche davantage avec Fortune, voir Butin dans Blocs, objets et recettes.

Blocs attachés

Avec attached: true, un bloc est fixé au bloc contre lequel il est posé, et il se brise quand celui-ci disparaît. Ces propriétés marchent sur n’importe quel bloc, avec ou sans sorte.

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
}
  • Avec un état "facing" ou "facing_all", il est tourné à l’opposé de ce qui le tient : facing_all regarde aussi vers le haut et vers le bas, si bien qu’un éclat peut se poser sur un sol, un mur ou un plafond (voir États de bloc dans Blocs, objets et recettes).
  • floor_state nomme un état interrupteur qui est activé quand le bloc se tient sur un sol et désactivé quand il pend à un plafond, comme une lanterne. Déclare aussi l’interrupteur dans states.

Sièges et blocs de deux de haut

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 permet aux joueurs de s’asseoir sur le bloc d’un clic à main nue, à ce nombre de pixels au-dessus de sa base (0 à 16 ; une chaise fait environ 10). Si le bloc a un on_use qui prend le clic, le joueur ne s’assoit pas.

upper fait du bloc un bloc de deux de haut, comme une porte ou une grande chaise : il nomme un état interrupteur qui est activé dans sa moitié haute. Le poser pose les deux moitiés quand il y a de la place au-dessus, en casser une casse les deux, et seule la moitié basse le lâche. On s’assoit sur une moitié basse pour un siège de deux de haut. Déclare aussi l’interrupteur dans states. La moitié haute a un aspect à elle comme tout état : ici models/block/throne_top.json.

Plantes en colonne

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

column fait pousser une plante en colonne, comme une liane suspendue. Son état shape suit la même plante au-dessus et en dessous : bottom sans rien en dessous, top sans rien au-dessus, middle entre les deux. Déclare-le dans states sous la forme { shape: ["top", "middle", "bottom"] } ; les textures <id>_middle.png et <id>_bottom.png sont ses aspects à ces endroits.

  • hanging : elle pend au bloc du dessus, qui est la même plante, des feuilles ou un bloc plein par en dessous.
  • standing : elle se tient sur son sol (grows_on) ou sur la même plante.

Sans ce qui la soutient, elle se brise, et les plantes qui pendent ou se tiennent sur elle partent avec.

Propriétés

Propriété Valeurs Par défaut
kind l’une des sortes ci-dessus cube
material stone, wood, metal stone
base pour les escaliers et les chemins : le bloc dont ils sont faits, le tien ou celui du jeu —
grows_on pour les plantes : ids de blocs et tags le sol de sa sorte
wall pour les panneaux : l’id de la forme murale jade_sign → jade_wall_sign
xp pour les minerais : un nombre ou [min, max] —
attached fixé au bloc contre lequel il est posé false
floor_state avec attached : l’interrupteur activé quand il se tient sur un sol —
seat pixels au-dessus de sa base où s’assoient les joueurs (0–16) pas un siège
upper deux de haut : l’interrupteur activé dans sa moitié haute —
column hanging ou 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")
}

Les sortes sont dans BlockKind et les matériaux dans BlockMaterial. Les autres propriétés ont les mêmes noms en camelCase : growsOn, floorState, xp = 1..4, column = Column.HANGING. facingAll() et choice(name, …) déclarent les états.