* 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
* Added line to Doc to prevent misconception
Added line because people probably want to use their GameEvent for the Warden too.
* Update SculkSensorFrequencyRegistry.java
* Refactor dimension API to use less static var
* Refactor test code
* Fix end spawn platform generation with non-player teleport
* Fix wrong cast
* Add and refactor tests
* Fix spotless
* Mark impl as internal
* 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.
Co-authored-by: Technici4n <13494793+Technici4n@users.noreply.github.com>
Co-authored-by: Juuxel <6596629+Juuxel@users.noreply.github.com>
This adds `FabricScreenHandlerFactory` (interface-injected to `NamedScreenHandlerFactory`).
This also fixes a crash when passing `SimpleNamedScreenHandlerFactory` that wraps a `ExtendedScreenHandlerFactory`. The mixin now un-wraps the factory.