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.

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.
Source
The content’s code: the root file (GENERATED_FILE), which only includes the parts, and the parts — (name, code) each.
Template
A model template — "parent": "cube_all" — and the texture slots it takes.

Constants§

CONTENT_DIR
Where content files live, under the mod root.
DIRECTIONS
DISPLAY_SLOTS
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, …).
RENDER_LAYERS
TAGS_FILE
Where the mod’s tags are listed for tools (#ns:path → its entries, by kind) — the IDE shows a tag’s items from here, as the build makes them.
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 file (CONTENT) under content/ 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.