* 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.
- `DamageSource` constructor and methods made accessible - supersedes #1085
- `SpawnRestriction` method `register` made accessible - allows `SpawnRestrictionAccessor` mixin to be removed
- `TradeOffers` trade factory inner classes made accessible
- `Material$Builder` methods made accessible (except `lightPassesThrough` method as that would break binary compat in `FabricMaterialBuilder`
- Fixed `generateAccessWideners` task for TAWs module so it can now find the jar
- `AxeItem`, `MusicDiscItem`, and `PickaxeItem` constructors made accessible
- `ItemUsageContext` and `ItemPlacementContext` alternate constructors made accessible - allows passing a `null` PlayerEntity
- `Factory` inner classes of both `CookingRecipeSerializer` and `CuttingRecipeSerializer` made accessible
- `BrewingRecipeRegistry` methods `registerItemRecipe`, `registerPotionType`, and `registerPotionRecipe` made accessible
- `ScoreboardCriterion` `create` methods made accessible
- `ModelPart` inner classes `Vertex` and `Quad` made accessible
- `RenderLayer` `of` method made accessible
- `SensorType` and `Activity` constructors made accessible
- `LivingEntity` methods `damageArmor`, `damageHelmet`, and `damageShield` made accessible
- `ProjectileEntity` constructor made accessible
- `FishingBobberEntity` alternate constructor made accessible - allows passing luck of the sea or lure levels for custom fishing bobbers
- `ServerWorld` method `sendToPlayerIfNearby` made accessible
- `TextColor` method `getHexCode` made accessible
- `TranslatableTextContent` method `getArg` made accessible
The following classes have been made final and unconstructible:
- All convention tags classes
- `FluidVariantAttributes`
- `FluidVariantRendering`
The following classes have been made unconstructible:
- `BiomeModifications`
- `ClientEntityEvents`
- `ClientTickEvents`
- `LootTableEvents`
- `FabricDefaultAttributeRegistry`
- `MinecartComparatorLogicRegistry`
- `StorageUtil`
The following classes have been explicitly marked as final. Note that actually extending such class has always been impossible due to missing public constructor:
- `VillagerInteractionRegistries`
- `VillagerPlantableRegistry`
- `ModelHelper`
- `StoragePreconditions`
While the first two are technically breaking changes, there is no actual or observed usage for any of those.
* Add TagUtil
* Allow for the registry manager to passed in allowing for dynamic tags to be used
* Update JD
* Remove redundant fallback
* Make TagUtil final
Co-authored-by: haykam821 <24855774+haykam821@users.noreply.github.com>
* Make TagUtil uninititializable
* Add test mod
* Fix spotless for test mod
* JD indent
Co-authored-by: Technici4n <13494793+Technici4n@users.noreply.github.com>
* Apply suggestions
* Fix checkstyle
* Apply feedback
Co-authored-by: haykam821 <24855774+haykam821@users.noreply.github.com>
Co-authored-by: Technici4n <13494793+Technici4n@users.noreply.github.com>
* Add development guidelines (CONTRIBUTING.md)
* Fix typos
Co-authored-by: apple502j <33279053+apple502j@users.noreply.github.com>
* Address remaining TODOs, a few formatting changes
* Apply feedback
- Add links to sections in summary
- Add note about thread-safe caching
- Functionalities added by vanilla MC don't need to be ported to new module versions
- Do not use deprecated to generate compiler/IDE warnings
- TAW updates
- Interface injection indents
- A few more fixes
Co-authored-by: Juuxel <6596629+Juuxel@users.noreply.github.com>
Co-authored-by: liach <7806504+liach@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: Juuxel <6596629+Juuxel@users.noreply.github.com>
* Apply suggestions from Juuz
* Remove mention of self types
Co-authored-by: apple502j <33279053+apple502j@users.noreply.github.com>
Co-authored-by: Juuxel <6596629+Juuxel@users.noreply.github.com>
Co-authored-by: liach <7806504+liach@users.noreply.github.com>
This resolves an issue where the chat signing chains for players would be broken when the server cancels a signed player message. This could lead to clients disconnecting after receiving any following message due to the broken chain.
* Make disconnected screen reason text scrollable
* Remove redundant mixin.
* wrong unique
* fix max scroll having additional line-sized gap
* turns out it's the testmod fault for having an extra new line
Co-authored-by: modmuss50 <modmuss50@gmail.com>
* Fix AO calculation
- Ensure calcFastVanilla and computeFace have parity with vanilla
- Ensure BlockStates are not queried more than once for the same position
- Replace deprecated FabricLoader#getConfigDirectory call with FabricLoader#getConfigDir
* Revert opaque sides fix
* More AO fixes and optimizations
* Sculk Sensor Frequency Registry
- Mixin'd to `SculkSensorBlock` to make its `FREQUENCIES` map modifiable.
- Created `SculkSensorFrequencyRegistry` with a dedicated method for registering these frequencies, with all necessary checks to avoid issues, and javadoc to assist in understanding.
- Added tests to the test mod, as well as a block that emits a test event, to ensure it all works.
Unfortunately, the mixin currently uses a Redirect. If this is undesired, feel free to suggest other ways of achieving the end result of being able to modify the frequencies map.
* Update SculkSensorFrequencyRegistry.java
* cleaner javadoc
* Update fabric-content-registries-v0/src/main/resources/fabric-content-registries-v0.mixins.json
Co-authored-by: Juuxel <6596629+Juuxel@users.noreply.github.com>
* Final touches
...get it?
(oh and removed that Dynamic because tech didn't like it)
* Whoops
Forgot to remove the Dynamic import
Also restored the actual contents of the dynamic, as javadoc.
Co-authored-by: Juuxel <6596629+Juuxel@users.noreply.github.com>