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);
  • bundles textures given as paths inside resources/;
  • 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.

Modules§

json
A small JSON reader that remembers the line of every value, so .yblock and .yitem errors point at file:line (serde_json only knows where a syntax error is).

Structs§

Compiled
Everything yog build makes of a mod’s content files.
OutputSet
Outputs in order, keyed by path: OutputSet::put replaces a path’s output (moving it to the end) without rescanning the list.
Template
A model template — "parent": "cube_all" — and the texture slots it takes.

Enums§

Kind
What a content file defines.

Constants§

CONTENT_DIR
Where content files live, under the mod root.
DIRECTIONS
DISPLAY_SLOTS
GENERATED_FILE
The generated Rust code, under the mod root.
RECIPE_TYPES
RENDER_LAYERS
TEMPLATES

Functions§

compile
Compiles the mod’s content files (see the module docs). Any error fails the whole thing, listing every problem.
find
Every content/**/*.yblock|*.yitem|*.yrecipe|*.ybook of the mod at root, sorted.
import_command
yog import ... (args after import).
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.
template
valid_id
ns:path (or path, in minecraft) as a valid resource id.
valid_namespace
[a-z0-9_.-]+ — a Minecraft namespace.
valid_path
[a-z0-9_./-]+ — a Minecraft resource path.
write_source
Writes compiled.source to GENERATED_FILE (only when it changed); deletes it when the mod has no content files.

Type Aliases§

Output
A generated file: path inside the .yog and its bytes.