Pagsisimula

Ang una mong mod

Isang item, isang block, isang recipe, isang pagbati at isang command, nakahati na sa maliliit na file. Susubukan mo ito sa isang simulated na server, nang hindi binubuksan ang laro.

1. Gawin ang mod

Terminal
crafting new gems
Ang ginagawa nitoText
gems/
├── main.craft
├── content/
│   ├── items.craft
│   ├── blocks.craft
│   └── recipes.craft
├── events/
│   └── welcome.craft
└── commands/
    └── gem.craft

Sinasabi lang ng main.craft kung ano ang mod at kung anong mga bahagi ang meron ito. Nasa content/ ang content at nasa events/ at commands/ ang behaviour. Kung bakit ganito ang ayos: Pag-aayos ng mod. Sa VS Code extension, makikita mo ang mga error at may autocompletion habang nagta-type ka.

2. Ang mga file

gems/main.craftCraftScript
mod "gems" { name: "gems", version: "1.0.0", author: "you" }

// Ano ang meron
import "content/items"
import "content/blocks"
import "content/recipes"

// Ano ang nangyayari
import "events/welcome"
import "commands/gem"
gems/content/items.craftCraftScript
item "magic_gem" { rarity: "rare", glint: true }
gems/content/blocks.craftCraftScript
block "magic_block" {
    hardness: 3
    light: 10
    tool: "pickaxe"
    drops: "magic_gem"
}
gems/content/recipes.craftCraftScript
recipe shaped "magic_block" {
    pattern: ["GGG", "GGG", "GGG"]
    keys: { G: "magic_gem" }
    result: "magic_block"
}
gems/events/welcome.craftCraftScript
on join(e) {
    e.player.send("&aMaligayang pagdating, {e.player.name}!")
}
gems/commands/gem.craftCraftScript
command gem(target: player?) requires "gems.gem" {
    let p = target ?? player
    p.give(item("gems:magic_gem", 1))
    return "Binigyan ng magic gem si {p.name}"
}

3. I-check ito

Terminal
crafting check gems/main.craft

Sinusundan ng checker ang mga import. Kung may mali, ibinibigay nito ang file, ang linya at ang inaasahan nito, halimbawa welcome.craft:2: error: Player has no property 'helth'. Did you mean 'health'?.

4. Subukan nang walang laro

Ang sandbox ay isang simulated na server na may parehong API ng totoong laro. Nagsisimula ito sa development mode: mag-save ng file at magre-reload ang mod.

Terminal
mkdir -p test/mods && cp -r gems test/mods/
crafting sandbox test
SessionText
> join Steve
  [Steve] Maligayang pagdating, Steve!
> op Steve
> as Steve /gem
  [Steve] Binigyan ng magic gem si Steve
> inv Steve
  1x gems:magic_gem
> quit

5. Laruin ito

Kopyahin ang folder na gems sa .minecraft/mods/ at buksan ang profile na Crafting 26.3. Ang texture ng item ay nasa gems/textures/item/magic_gem.png at ang texture ng block ay nasa gems/textures/block/magic_block.png. Sa server, nasa server at sa bawat client ang mod, dahil nagdadagdag ito ng mga block.

6. Palakihin ito

Bawat bagong ideya sa lugar nito: isa pang item sa content/items.craft, bagong patakaran ng laro sa bagong file sa ilalim ng events/, function na ginagamit ng ilang file sa lib/, settings sa settings.craft. Nasa Pag-aayos ng mod ang buong halimbawang mod.