[Fabric] 26.2-6.1.0
Curse Maven Snippet
What's new
26.2 - 6.1.0
New Features
commands/ChimericCommand,commands/ChimericCommands— a small per-mod command-registration framework: implementChimericCommand#buildto return a command tree, then callChimericCommands.register(...)during your mod's init. Wraps Architectury'sCommandRegistrationEventso consuming mods don't need to touch it directly, and multiple commands that share a root literal (e.g. several features all registering underchimericlib) merge together automatically via Brigadier's own node-merging.commands/blockstate/BlockStateCommand—/chimericlib blockstate get|set|modify <pos>(requires permission level 2).getmirrors vanilla's/data get block;setmirrors/setblock, replacing the block viaBlockStateArgument/BlockInput;modifyis new — it merges only the given properties (e.g.[facing=east]) onto whatever block is already there, via the newcommands/blockstate/BlockPropertiesArgument.commands/PlatformCommandArgumentTypes— the platform hook a custom BrigadierArgumentTypeneeds to sync to the client (vanilla's own reverse class-to-info lookup used for that sync is private and only self-populated for its built-ins). Fabric and NeoForge each get their ownProviderimplementation; register a custom argument type throughPlatformCommandArgumentTypes.registerByClass(...).blocks/model/ModelUtils— vanilla-block-shaped datagen helpers generalized out of Minekea:registerBlockWithAxis/registerBlockWithWallSide/registerBlockWithHorizontalFacing/registerBlockWithFacing(rotation dispatch for pillar/wall-mounted/facing block shapes),registerLanternBlock,registerCrop(vanilla age-property crop dispatch),registerGeneratedItem, andmakeInvalidVariant(bedrock-textured placeholder for illegal blockstate combinations).blocks/model/CustomBlockModel— aModelTemplatethat also emits arender_typefield (vanilla's own template has no render-type support);CustomCropModelis the cutout-rendered crop preset built on it.blocks/RecipeUtils#unlockedByHas— the.unlockedBy(RecipeProvider.getHasName(x), generator.has(x))idiom as a one-line wrapper around anyRecipeBuilder.fabric/blocks/TranslationUtils#addBlockAndItem— the block+item translation-pair idiom in one call.fabric/blocks/TagUtils#applyMineableTag— the tool-tag-application idiom (with aTool/default-tool overload), now also used by the family generators below to remove their own copy of it.fabric/data/TextureGenerator,fabric/data/JarAccess— programmatic PNG datagen and safe vanilla-jar asset reading, generalized out of Minekea.TextureGeneratornow takes the consuming mod's ID so its<modId>.datagen.resource-pathenvironment variable andassets/<modId>/texturesbase path are mod-specific rather than hardcoded.- chimeric-lib now ships its own access widener (
chimericlib.accesswidener) — needed forCustomBlockModel's use ofModelTemplate's internals. Previously commented-out scaffolding in bothcommon/build.gradleandfabric/build.gradleis now active. blocks/family/BlockFamily— declare a base block'sBlockConfigonce and register whichever of its stairs/slab/wall variants you need, each with a derivedBlockConfig(ingredient set to the base block; materialName/texture/tool/flammable/translucent/renderType inherited unless overridden). VanillaStairBlock/SlabBlock/WallBlockare used by default; a per-variant factory override lets a mod substitute its own subclass.fabric/blocks/family/StairsBlockDataGenerator,SlabBlockDataGenerator,WallBlockDataGenerator— recipes, mineable/#wallstags, loot tables, blockstate/item models, and translations for each family variant.BlockFamilyDataGenerators.of(family)wraps whichever variants aBlockFamilyregistered into the matching generators, ready to fold into a mod's own datagen aggregator.
Changes
blocks/BlockDataGenerator#configureRecipesnow takes aRecipeProviderparameter, and#configureBlockLootTablesnow takes aHolderLookup.Providerparameter. Not breaking in practice — nothing in this suite implemented the old signature.
This mod has no additional files