Platinum (Create Propulsion: Simulated) and aviation alloy (AeroEngine) were
the only materials left in the pack; Pastel's gem fragments now count as an
eighth of a gem, and Create: Wizardry's arcane sheet, arcane block and mithril
nugget feed the metals they are made of, through extensions in its own pack so
they cost nothing to anyone without it.
Four modules of our own, in packs gated on the addon whose slots they use:
- A khopesh blade for any sword blade slot - axe damage, a point of knockback,
an axe's mining level, fast, and short-reached and fragile to pay for it.
Nothing in the ecosystem ships one, so it is drawn here.
- Socketed pommels. Arsenal's own socket pommel takes a small gem, and no
module anywhere in Arsenal, Armory, Archery or MIAPI offers a gem_melee_large
slot, so the large gemstone had nowhere to go. Now it does.
- A sealed helmet and a life support pack. Cosmonautics suffocates you in space
through LivingBreatheEvent and exempts only items that *are* a Create diving
helmet, which a modular helmet cannot be, so VacuumSeal.java answers the same
event last. Half a seal each: it takes the suit, not the hat.
Arcane alloy is what it is called in game - Create: Wizardry renames the ingot -
and cutting spell cooldowns is now the reason to build out of it: 10% held per
module, less on armour, on Iron's Spells' cooldown * (2 - value), so a weapon
made of it beats the mod's best staff and a full kit still stays inside the
formula.
Two bugs found on the way: the Ice and Fire amethyst extension named an item
that does not exist (the mod spells it amythest_gem) in a shape MIAPI's codec
does not read, so it had never done anything - extensions are item-checked like
materials now. And the generator handed a namespace to whichever jar sorted
first, which is an addon as often as the mod that owns it; it goes to the jar
with the most of it now. A mod whose jar is missing is skipped with its files
left alone rather than failing the run, and only material folders are cleared,
since the module packs are hand-written.
Module art is placeholder-grade and meant to be repainted: it lives in
textures/items and textures/equipment, with blank templates and a guide sheet
giving the palette stops and every region a model samples.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Armory decides elytra flight through miapi:generic.elytra_glide_efficiency,
which its heavy armour reduces by "-30 - density*2" on the chest. Titanium now
adds a flat +10 there - a nudge rather than a cancellation - and its flexibility
goes from 3 to 3.5, since the wing modules read flexibility and density. The
aerospace metal should fly.
Version bumped to 1.1.0 so the loaded build is identifiable at a glance. The
filename changes with it, which makes a stale jar in a mods folder obvious
instead of something that has to be inferred from tooltip values.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Arcane essence granted max mana through a single modifier with slot `armor`.
On a weapon that reads as "+200 Max Mana when worn", which is nonsense - you
do not wear a greatsword - and it gave every armour piece the same amount.
Each slot now carries its own modifier: 1300 on a helmet, 900 chest, 800 legs,
700 boots, and 900 in the main hand / 400 offhand so a weapon grants it while
held. They stack per module, so a piece built out of arcane essence that also
carries an arcane gem counts twice.
Cinder essence moves to slot `any`, so a single gem grants fire immunity
wherever it sits rather than only from an armour piece. The attribute is capped
at 1 and the handler treats anything at or above 1 as immune, so extra pieces
neither stack nor dilute it.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Silver comes from Ice and Fire, Immersive Engineering, Occultism and Superb
Warfare; steel from Mekanism, Immersive Engineering and Superb Warfare. Picking
one provider meant the other mods' ingots were not recognised as that material
at all - they simply could not be used.
Each material now also accepts the c: common tag that every provider registers
into, on top of the primary provider's own items, so any mod's silver ingot is
just silver. 43 materials unify this way.
No origin is recorded, because there is nothing to record: MIAPI stores only
the material id on the item. The primary provider's item stays first in the
ingredient list, so anywhere a single representative item is read back out it
resolves to the default rather than to whichever variant was used.
Tags are also the safe half of the pair - an unknown tag resolves to nothing
while an unknown item id fails the whole material - which is why the material
still lives in its primary provider's pack, where its icon and first ingredient
are guaranteed to exist. MIAPI's own wood material mixes items and tags the
same way. Create: The Air War ships no common tags, so its titanium is added to
c:ingots/titanium with optional entries.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Arcane essence gave no max mana when socketed into armour. Its attributes were
filed under the `armor` material-property key, but a gem module is not tagged
`armor` - the modules declare which material properties they accept and list
only `default` plus their own gem tags, so anything under `armor` or `handheld`
never applied. Everything on the gem-capable materials now hangs off `default`,
and the attribute's own slot decides where it counts. Cinder essence's fire
immunity had the same defect.
New materials, taken from the mods actually in the pack:
Ender IO the full alloy ladder plus its six crystals
AE2 certus quartz, charged certus, fluix
Occultism iesnium, spirit attuned gem
Ars Nouveau source gem
NauTec cast iron, atlantic gold, aquarine steel
Superb War tungsten, cemented carbide
Pastel ten gems
Crystal Chron eight shards
plus pink slime, dimensional shard, industrial iron, ferdonzor, glowshard
The two gem-set mods are generated from a table with shared stat bands per
tier, since their gems differ by colour and lore rather than by kind; the
palette still comes from each gem's own texture.
Metals that overlap a mod already covered are skipped rather than duplicated:
Superb Warfare's steel/lead/silver and Create Crafts & Additions' electrum.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Gem sockets never accepted the two Iron's Spells essences: Arsenal gates its
melee gem modules on the `gem_melee` material group and Armory gates its armour
ones on `gem_armor`, neither of which is the `gem` group they carried. Every
gem-like material now carries both, so it fits any gem slot.
Immersive Engineering adds aluminium, nickel, constantan, electrum and
graphite. Its steel, lead, uranium and silver overlap mods already covered, so
rather than one material accepting either mod's ingot, each metal simply names
one provider - Mekanism for steel/lead/uranium, Ice and Fire for silver. That
keeps one entry per metal in the crafting screen.
Titanium moves to the same rule with Cosmonautics as its provider, which drops
the c: tag files and the any-of pack machinery along with it. That also removes
a latent crash: a tag-fed material still needed an item for its icon, and MIAPI
parses icon items through the registry and throws when one is missing.
The generator now clears its output directory first, so a material that moves
between packs cannot leave a stale copy claiming the same id.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
72 materials sourced from Create, Mekanism, Ice and Fire, Iron's Spells,
Create: The Air War, Create: Cosmonautics and Aeronautics: Interstellar
Expansion.
Stats follow Tinkers' Construct 3 re-scaled onto MIAPI's vanilla-derived
numbers; materials with no Tinkers counterpart are built from what the
material actually is and then fitted to the nearest tier band.
Palettes are not hand-picked. tools/generate_materials.py reads each
material's texture out of the source mod's jar and samples it into MIAPI's
seven-stop grayscale_map, reproducing MIAPI's own hand-authored copper
palette to within ~2% per channel.
MIAPI's material loader honours no datapack conditions, and a material whose
ingredient item is missing fails to parse, so each mod's materials ship as a
built-in datapack registered only when that mod is installed. Titanium is
shared by both aerospace addons and so sources its ingredients from
c:ingots/titanium instead of an item id.
Cinder essence grants fire immunity through an attribute this mod registers
and watches itself, rather than coupling to MIAPI internals.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>