Essentially a rewrite of v1.*, adding/updating heaps of documentation and refactoring the entire codebase.
### Internal changes
- All code is now within `dev.jaxydog.astral`, instead of `dev.jaxydog`.
- Updated access widener entries.
- Fixed some possible crashes.
- Updated dependency versions.
- Updated mod entrypoints.
- Added `isInitialized` methods for each environment.
- Verified that each entrypoint is only initialized once.
- Updated registration system.
- Move `Generated` into `Registered`.
- Rename multiple usages of `dataGen` into variants of `generator`.
- Rename `getRegistryIdPath` to `getRegistryPath`.
- Rename `register` to `registerCommon`.
- Moved all registered maps into `dev.jaxydog.register`
- Streamlined `RegisteredMap` implementation.
- Added the `RegistrationPriority` annotation, which allows for complete control over the order in which fields are
registered.
- Updated item content structure.
- New `LoreHolder` interface.
- New `BowlItem` class.
- Move `BottleItem`, `Colored`, and `Customized` into `dev.jaxydog.astral.content.item`.
- Rename all `Custom*Item` classes (excluding the `Custom` interface itself) to `Astral*Item`.
- The `Customized` interface's `getCustomModelData` method now returns an `Optional`.
- Item groups have been moved to `dev.jaxydog.astral.content.item.group`.
- Item groups have been renamed from `Custom*ItemGroup` to `Astral*ItemGroup`.
- All item classes have been slightly refactored.
- Rewrote the entire `Sprayable` interface into the new `Sprayed` interface.
- Instances of `Sprayable` have undergone major refactors.
- Renamed cloud armor to cloudy armor.
- Updated block content structure.
- Rename all `Custom*Block` classes to `Astral*Block`.
- Move `Colored` into `dev.jaxydog.astral.content.block`.
- Renamed "Dyeable" amethyst to "Dyed" amethyst.
- Simplify dyed amethyst colorization.
- Updated sound content structure.
- Added `SoundContext` record class.
- Vastly improved color and image manipulation support.
- Refactored `ColorUtil` into a new `utility.color` package.
- `Rgb` now stores its components as bytes.
- Created a new `Rgba` class for transparency support.
- Created new Mapper classes for storing color manipulation methods as lambdas / records.
- Created `ColorHelper`, which is based off of the old `ColorUtil` class.
- Slightly refactored the mob challenge system.
- Renamed the utility interface to `ChallengeHelper`.
- Updated power content structure.
- Removed deprecated powers.
- Updated data structure.
- Renamed some fields and methods within the `MoonPhase` data type.
- Moved custom classes into the `custom` package.
- Added support for automatically registered data loaders.
- Refactored currency implementation to better match other implementations within the mod.
- Updated effect content structure.
- Updated sound content structure.
- Updated trinkets content structure.
- Updated powers content structure.
- Cleaned up and documented all mixins.
### Content changes
- Updated contribution guidelines.
- Spray bottle block interactions now retain block state where able.
- Challenge scaling distance calculations now ignore height differences.
- Cobbled sandstone is now mineable with a pickaxe.
- Add some custom models for lore.
- Fixed a bug that allowed players to receive chocolate milk from red mooshrooms.
- Fixed a bug that caused sugar cane to be bone-mealed into a cactus block.
- Added recipes for multiple lore items.
- Add Nix's ears.
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" }