Skip to main content

Module content

Module content 

Source
Expand description

.yblock / .yitem content files — a mod’s blocks and items: their properties, 3D model, block states and item form, in one JSON file each, edited in Yog-IDLE’s 3D model editor — and .yrecipe files, one recipe each (crafting, shapeless, smelting), edited in its recipe editor. See Yog-IDLE’s docs/blocks-items.md for the formats.

yog build reads content/**/*.yblock and content/**/*.yitem and

  • writes Minecraft’s JSON for them: block models, blockstates, item models, 1.21.4+ item definitions (assets/<ns>/items/), block loot tables, the mineable/<tool> and needs_<level>_tool block tags;
  • puts their names and tooltips into the lang files (a @<Set>.<name> text of a .yres file under the key Minecraft looks up, a literal into en_us);
  • builds the mod’s textures (.ytexture, see textures);
  • generates .yog-build/generated/yog-content.g.rs — Blocks/Items with an id constant and a BlockDef/ItemDef builder per entry and a register function — pulled in by yog_api::content!();, which also registers them (unless an entry says "register": "manual") and every recipe.

Structs§

Compiled
Everything yog build makes of a mod’s content files.
Imported
What an import wrote, and what to warn of.
OutputSet
Outputs in order, keyed by path: OutputSet::put replaces a path’s output (moving it to the end) without rescanning the list.
Source
The content’s code: the root file (GENERATED_FILE), which only includes the parts, and the parts — (name, code) each.

Constants§

CONTENT_DIR
Where content files live, under the mod root.
GENERATED_FILE
The generated Rust code, under the mod root.
GENERATED_PARTS_DIR
Where the content’s code goes besides the root file, under .yog-build/generated/: one file a part (items.g.rs, register.g.rs, …).
TAGS_FILE
Where the mod’s tags are listed for tools (ns:path → its entries, by kind), as binary Yog Data — the IDE shows a tag’s items from here, as the build makes them.

Functions§

compile
Compiles the mod’s content files (see the module docs). Any error fails the whole thing, listing every problem.
import_command
yog import ... (args after import); an error when nothing was written.
merge_outputs
Adds the content’s outputs to outputs (the .yres ones, say): lang entries and tags merged into what’s there (or into the mod’s own files), the rest appended.
read_tags
TAGS_FILE of the mod at root, as the build last wrote it; empty without one.
write_source
Writes compiled.source to GENERATED_FILE (only when it changed); deletes it when the mod has no content files.

Type Aliases§

TagLists
The mod’s tags as TAGS_FILE lists them: kind → tag → its entries.