* Generate package-info files for all impl and mixin packages
* Add javadoc to generated package-infos, use multiline string
* Simplify code
* Remove manual ApiStatus.Internal on impl classes
* Update CONTRIBUTING.md to remove ApiStatus.Internal for impl classes
* Fix Gradle deprecations
* Fix more Gradle deprecations
* Add task metadata
* Support client-main split
* Remove workaround for client packages
* Try to fix Gradle 8 deprecations
* Try to fix Gradle 8 deprecations, part 2
I'm hoping that using the SourceDirectorySet instead of converting it to a
Set<File> (which is pointless?) will carry the build dependencies over.
* Add clean packageInfo task
Co-authored-by: modmuss50 <modmuss50@gmail.com>
* Move duplicated v0/v1 impl packages to v0 subpackages
Fixes#2616. The convention is adopted from the command API (v1)
whose impl classes have the v1 subpackage.
* Separate client code into its own packages everywhere
* Fix code style
* Fix code style, part 2
* Allow v0 in package names
* Allow v0 in package names (fixed)
* Fix shulker boxes accepting other shulkers
If a mod creates a directionless InventoryStorage, it only calls
Inventory.isValid and not SidedInventory.canInsert. However, shulker
boxes only override the latter, allowing shulkers to be inserted into
them.
* Check for insertion in inventorySlotWrapper instead
As far as I know everyone who was on 1.19.1 has updated to 1.19.2. It's not something that was tested.
This will improve the error message if people try to run this on 1.19.3.
* Add block appearance API
* Add class javadoc for FabricBlock and FabricBlockState
* Address reviews
* Remove OverrideOnly from getAppearance
* Fix javadoc issues
* Add AFTER_DEATH and ALLOW_DAMAGE events; generalise ALLOW_DEATH to living entities
* Make class final and constructor private
* player -> entity; clarify where ALLOW_DAMAGE is fired
* Also deprecate the old AllowDeath funcint
* Added LandPathNodeTypesRegistry.
* Added test for LandPathNodeTypesRegistry.
* Added block state to PathNodeTypeProvider.getPathNodeType.
* Made LandPathNodeTypesRegistry final, removed unnecessary NotNull.
* Changed putIfAbsent with put to align with other registries.
* Cleanup.
Co-authored-by: Technici4n <13494793+Technici4n@users.noreply.github.com>
* Removed unused import.
* Added possibility to specify the node type of block if the block is found in a neighbor position, improved documentation.
* Merged mixins cleanup.
* Changed CAPTURE_FAILEXCEPTION into CAPTURE_FAILHARD
Co-authored-by: Juuxel <6596629+Juuxel@users.noreply.github.com>
* Specified some nullables, changed 2 parameter names.
* Added missing content registries tests, changed NODE_TYPES map to IdentityHashMap, improved docs.
* Moved PathNodeTypeProvider inside LandPathNodeTypesRegistry.
* Registry revised to make it possible to distinguish between blocks with dynamic and static node types, reduced LandPathNodeMakerMixin priority, applied suggested docs improvements.
* Changed INVOKE with shift, with INVOKE_ASSIGN.
* Merged all LandPathNodeTypesRegistry utility methods used to check the registration type into a single one.
* Inverted if sequence in LandPathNodeTypesRegistry.getPathNodeType, improved docs.
* Sealed PathNodeTypeProvider and made public, cleaned and simplified LandPathNodeTypesRegistry by removing useless mechanics.
* Improved docs.
* Improved docs (2).
Co-authored-by: Technici4n <13494793+Technici4n@users.noreply.github.com>
Co-authored-by: Juuxel <6596629+Juuxel@users.noreply.github.com>
* Resource conditions: support all tags
* Minor improvements; deprecate old methods
* Fix build?
* Add more tests, throw on null condition
* Add more javadoc
* Javadoc fixes
* Allow sound instances to play custom audio streams
Adds a new interface FabricSoundInstance, which is injected into
vanilla's SoundInstance interface.
When loading an audio stream, the SoundSystem now calls
FabricSoundInstance.getAudioStream, allowing mods to provide their
own audio streams.
* Some post-review cleanup
- Manually add the client sources as an interface injection source set,
allowing us to put everything in the src/client dir (<3 modmuss50).
- Apply some formatting changes from apple502j.
* Document the empty sound and its usage in sounds.json
* Fix one remaining @literal -> @code
* Fix checkstyle issues