Skip to content

Conversation

@WaitingIdly
Copy link
Collaborator

Add Roots 3 compat

  • Add a Resource Location bracket handler - resource('minecraft:stone') or resource('minecraft', 'stone')
  • Add a centralized way to generate ResourceLocation names to the AbstractRecipeBuilder
  • Add multiple bracket handlers for roots
    • ritual, which gets the ritual, prefixing ritual_ as needed
    • herb, which gets one of the 11 herbs
    • cost, which gets one of 5 costs, case insensitive
    • spell, which gets the spell, prefixing roots:spell_ as needed
    • modifier, which gets the spell modifier
  • Have recipeBuilders, addition, removal, removeAll, streamRecipes, and reloading functionality in all the following areas:
    • AnimalHarvest, AnimalHarvestFish, BarkCarving (Bark), Chrysopoeia, FeyCrafter, FlowerGeneration, Mortar (MortarAndPestle), Moss, Pacifist, Pyre, RunicShearBlock, SummonCreature, Transmutation
  • Add other compat:
    • RunicShearEntity: Has recipeBuilder, addition, removal, removeAll, and streamRecipes; reloading does not currently work.
    • LifeEssence: Allows addition and removal via EntityEntry (via entity bracket handler). Allows removeAll
    • Predicates: Has a few helper constants, has a stateBuilder which functions analogously to a recipeBuilder. Allows creation of StatePredicate, PropertyPredicate, BlockStateAbove, and BlockStateBelow.
    • Modifiers: Allows disabling or enabling specific modifiers, all modifiers for a given spell, or all modifiers.
    • Rituals: Allows setting all properties, changing the recipe, or enabling/disabling a ritual. Allows disabling all rituals. NOTE: Does not properly function when reloading
    • Spells: Allows setting all properties, setting sound volume, enabling or disabling sound, changing the recipe, changing the base cost, changing each modifier cost, or enabling/disabling a spell. Has a helper costBuilder for altering modifier costs. Allows disabling all spells. NOTE: Does not properly function when reloading
  • Fairly exhaustive example file.

Currently not implemented/bugged:

  • There are currently two TODOs added in the Rituals and Spells onReload function, as reloading does not work properly - it does not restore to unmodified state before running the script.
  • RunicShearEntity recipes don't apply until after a game restart. Likely due to it being added to entities via the RunicShearsCapabilityProvider Capability.
  • When reloading recipes that include an edit to Fey Crafter recipes, if a Fey Crafter is rending an output item, you may encounter a ConcurrentModificationException (was like every dozen times for me)
  • Spirit Bags (part of Loottweaker)
  • Crop Breaking (also Loottweaker)
  • Runed Wood (not part of crafttweaker, not editable,
  • Spell recipes can be changed to < 5 items, but this generates an error in the Patchouli book.

Copy link
Member

@Rongmario Rongmario left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a few changes, otherwise it looks fine. With a few things waiting on the LootTweaker PR. I'll also attempt to fix some of the issues mentioned above once its pulled in.

@Rongmario Rongmario merged commit 9135d34 into CleanroomMC:master May 18, 2023
@WaitingIdly WaitingIdly deleted the roots branch March 16, 2024 08:21
@WaitingIdly WaitingIdly added the mod compat Relating to compatability with a mod or features of a mod label Apr 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

mod compat Relating to compatability with a mod or features of a mod

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants