### What's new:
## Base:
A bunch of stuff was moved out of Base to make it less version dependent.
* FakeWorld is now a standalone module. If you want to use it or Screen Particles, you have to include `cracker-util-fake-world`.
* ValueTracker has been deprecated and will be removed in the future with no replacement. Although it might receive updates, it is not a priority.
* CrackerLog is now internal and should not be used. Use PrependingLogger with a preset instead.
* `Utilities#nextBetween()` is deprecated and should be replaced with `MathStuff#nextInt()`.
* Mutable Immutable has been separated into modules that require it. RecipeBookGroup and RecipeBookOptions are now part of cracker-util-recipe-book, and TextColor is patched on demand by TextFormattingUtil (part of cracker-util-content) and an accesswidener.
* `UnsafeAccess#writeField()` has been renamed to `UnsafeAccess#putObject()`.
* DrawUtil remains part of Base, but may be moved to a different module in the future. Additionally, the fillGradientHorizontal() method has been added.
* Added ColorUtil.
* PredicateTwo and ConsumerTwo are now deprecated, because BiConsumer and BiPredicate exist.
* Added `mapObjectFromAnnotation(Object value, boolean loadEnums, boolean loadClasses)` to ExtendedPlugin.
* MixinShouldApply is now removed from target classes.
* Added `getField` and `setField` to ReflectionUtil. These work like the old `writeField` and `getObject` from UnsafeAccess.
* UnsafeAccess's `putObject` and `getObject` now don't use reflection. They will also check fields for volatility.
* Also removed the `e.printStackTrace()` which was left there by mistake.
* Added `Utilities#getCallerClass()` and `Utilities#getCallerClass(depth)`
* Added Tuple and MutableTuple.
* Added Tri(Consumer/Predicate/Function)
## Content
* removed `put1` from NbtBuilder.
## Danger
* InstrumentationAccess should no longer implode if invoked from a LanguageAdapter.
* Added the forgotten `break;` to the `for` loop, which checked if InstrumentationAccess should be enabled.
* Changed `InstrumentationAccess#bootstrap` to store the jar in the game-dir and not to write the file every game load.
## Screen Particles:
* Due to changes in Base, you now have to include `cracker-util-fake-world`.
* VanillaParticle has undergone some minor changes, but nothing should be affected or break.
* You can now add your own Particle instance.
* Also, there's now a ctx with `velZ`
* private `createParticle` is now public `createScreenParticle`
Developer information
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle.
maven { name = "Modrinth"; url = "https://api.modrinth.com/maven" }