Porting to MC 1.21.4. Some Java API breaking changes, but no datapack breaking changes other than the removal of model override predicates. Most old packs should work out of the box.
- Modules now use
items/
instead ofmodels/
as primary assets. - Modules may now automatically generate basic
items
assets based on existing and mod-generated models. Enabled by default for backward compatibility, can be disabled by settingitemsFromModels
to false in the module. - Item assets are searched for at the root of
items/
, but corresponding models and textures are now searched for inmodels/item/
andtextures/item/
. For backward compatibility, any leading "item/
" will automatically be stripped off model prefixes, fallback models, and special models. - Added the numeric property
variants-cit:stored_enchantment_level
, usable in item assets as a replacement for the oldlevel
model override predicate
Java API:
- Removed all deprecated methods.
- Replaced all
ModelIdentifier
s with plainIdentifier
s.
- Ported to MC 1.21.2, marked previous branch as incompatible.
- Added the
painting_variant
module. - Added the
requiredEnchantments
parameter to theenchantment
module. This makes it possible to have CITs based on multiple enchantments, using multiple modules. (See wiki.) - Modules should now be stored in the folder
variants-cit
(mod's id) instead ofvariant-cits
(misspelled). Modules in the old directory will still work, but support will be dropped in a distant future.
- Modules may now automatically generate models based on provided textures.
- Optimized some modules, considerably reducing how often they recompute an item's model.
- Fixed Trident and Spyglass (in stack form) not being affected by CITs.
- It's now possible for multiple modules to coexist on the same item.
- Added the module
enchantment
for tools and armours. (Single enchantment) custom_data
may now search nested pathes. The parameternbtKey
is being renamed tonbtPath
.custom_name
will now always convert all names into valid identifiers. The case sensitivity option was removed.- The module
stored_enchantments
(plural) is being renamed tostored_enchantment
(singular).
custom_data
module now has acaseSensitive
option.
Changes to the Java API (non-breaking):
- Parameterized modules no longer need to register a constructor. They may be built directly from their codec instead.
- Special modules no longer need to register a constructor. They may be registered the same way as Simple modules.
- Special modules are no longer required to implement their variant logic separately from the special logic.
- The old ways of registering special and parameterized modules has been marked as deprecated.
- Added the
custom_name
CIT module - Fixed the
parameters
block being mandatory on modules with only optional parameters. - Fixed items with no variant using the fallback model instead of the vanilla one.
⚠️ This release contains breaking changes. ⚠️
- Overhauled the mod to serve as a multi-purpose CIT library. Renammed mod to "Variants-CIT".
- Removed the embedded resource pack. See the main page for a list of compatible packs.
- CIT logic is now modular, and can be extended by other mods.
- Added CIT modules for the Axolotl Bucket, Goat Horn, Music Discs, Potions, and items with custom_data.
- CIT modules must now be enabled and configured by resource packs, which require additional files.
- Added the ability for resource packs to define CITs based on enchantment levels.
(However the embedded pack does not use this feature.)
- Fixed an incompatibility with ModernFix, that could prevent enchantments with no CIT from using the vanilla texture.
- Initial Release