Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Roots 3 compat #51

Merged
merged 11 commits into from
May 18, 2023
Merged

Roots 3 compat #51

merged 11 commits into from
May 18, 2023

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