Skip to content

0.2.0

Choose a tag to compare

@mattjes mattjes released this 02 Sep 19:36
· 94 commits to main since this release

A part can take a second material. Requires Minecraft 26.2, Fabric Loader 0.19.3 and Fabric API 0.159.0.

Fittings

  • A fitting names a region of a part - a mask beside the master, or a bone of the geometry - and the kind of item that fills it. Four ship: gemstone, guard, inlay and banner.
  • One fitting template covers all of them. At the smithing table the item decides where it goes: a gem to the gemstone, an ingot to the guard, a dye to the inlay, a banner made at a loom to the banner. The template with nothing in the third slot takes every fitting out again.
  • The circlet takes a gem in its stone, the sash a dye on its strap and a metal on its buckle, the greaves a dye in their inlay, and the back banner wears a real banner's design, drawn in pattern layers the way a shield wears one.
  • Re-applying a part keeps what is set in it: a circlet goes from iron to gold without losing its emerald.
  • An effect can be gated on a fitting with armorpieces:if_fitting, so an emerald in the circlet can mean something.
  • Fittings are data in data/<ns>/armorpieces/fitting/ over three code types - material, dye, banner - and a mod can add a type the way it adds an effect type. Whatever item fills one also goes in #armorpieces:fitting_additions.
  • Nothing changes for a part without fittings, on disk or on screen. Armor decorated before this version reads back exactly as it was written.

Blockbench plugin, the datapack half

  • Part... on the panel edits the name, the anchors and the fittings list, picked from every fitting definition in the pack and the mod. The panel follows at once.
  • New... defines a fitting the pack lacks - material over a tag or ticked materials, dye, or banner on a bone - and writes the file, its language line and any tag on confirm.
  • Effects are rows on the same dialog, with fields, ranges, defaults and descriptions parsed out of the built-in records so Java stays the one source of truth. Ids autocomplete from the game jar, and any row can be gated on a fitting.
  • Masks are a third edit mode, greyscale like the master and created on first use; the material preview fills each fitting from a dropdown.
  • Save writes the data file and the language line and never reformats a file for being opened. Fields the dialog has no control for are written back exactly as read.

Tools

  • fitting_mask.py paints masks and sync_decoration_masters.py installs and checks them.
  • preview_material.py bakes masks the way the game does (--fitting gemstone=emerald), lists a part's fittings and the values each takes, and reads packs outside the mod with --pack.
  • check_authoring.py runs the Blockbench round trip over every shipped part; effect_schema.py reads the effect records; vanilla_assets.py now extracts the trim-material registry and tags too.
  • /armorpieces stage fittings [<part>] stages every fitting filled with everything the item registry puts in it, one block per fitting.

Docs

  • The mod page gains the fitting sections, the smithing_fitting recipe type and the if_fitting effect row. Authoring moved to docs/authoring.md, with the plugin as a feature in its own right.
  • New gallery: every set in all eleven trim materials, the front row up close, the same rows from behind, and one circlet in seven gems. A header banner and an icon.

Attached: the mod jar, and the same data and assets as standalone datapack and resource pack zips.