Structures are no longer linked to Biomes via an instance field in the Biome class. Instead they are linked by registry keys. This means that standard biome spawning rules also apply to superflat worlds, instead of the hardcoded list of structures linked with superflat worlds by default. Changes the FabricStructureBuilder to allow adding structures to this default list.
* Fix running game tests.
* Fix dimension api bugfix mixin. Of note: The Vanilla bug is still present, and the bugfix still needed.
* Fix references to unmatched RegistryOps method.
This is a workaround for transfer-api having unsatisfiable dependencies
in the dedicated server environemnt. Fabric Loader 0.11 doesn't check
this dependency correctly, but it breaks on 0.12 - as it should. A proper
solution is too incompatible for now.
* Transfer API: continuous fluid-containing items and other base implementations
* Update player inventory storage TODO
* Add PlayerInventoryStorage test
* getHandSlot() and small fixes
* Use simulateExtract in findExtractableContent
* Apply review
* Post-rebase fixes
* Add tentative InventoryProvider support
Co-authored-by: Player <player@player.to>
* Un-hardcode FACING property checks from only BedBlocks
* Use a better injection point for EntitySleepEvents.ALLOW_BED
* Fix#1680
* Bump entity events version
* Clarify javadoc
* Let's not forget license headers
* Add a note about the vanilla bug
* Update BedBlockMixin.java
* First proof of concept pass
* Cleanup and fixes.
* Checkstyle
* Fix running.
* Updated
* Fix build
* Cleanup + fixes.
* Fix package
* and test package
* game-test -> gametest
* Fix exclusion
* Review feedback and fixes.
* Remove comment
* Review feedback.
* Don't set the game instance
* Fix
* Work around shadowed fields from super classes not getting remapped... dejavu anyone?
See: 2e359e933a (diff-0956caa3cd38a54f5910979f0cfd98198a93e4d585e111300f2f7ab7301ad122)
* Add mixin to exit with a non-zero exit code in case the test server fails to start.
* Enable JUnit XML report generation.
Co-authored-by: Sebastian Hartte <sebastian@hartte.de>
* Add sleeping events
* Fix wake up event triggering on every wakeUp() call
* Make direction modifications stackable
* Simplify by not using Optional in MODIFY_SLEEPING_DIRECTION
* Add two new events
* Let's call it VERIFY_BED
* And it's ALLOW_BED now
* Add the rest of the events
* Clarify docs
* Expand docs, add missing vanillaResult
* WAKE_UP -> STOP_SLEEPING, javadoc
* Make sleepingPos checks more consistent in LivingEntityMixin
* Add flattening, stripping and tilling registries
* Where'd the spaces come from?
* Clarify docs
* Better overloads for TillableBlockRegistry.register
* Mutablise AxeItem.STRIPPED_BLOCKS if needed
* Remove simplest TillableBlockRegistry.register overload because the default predicate is for farmland
* Add test mod
* Update fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/api/registry/TillableBlockRegistry.java
Co-authored-by: haykam821 <24855774+haykam821@users.noreply.github.com>
Co-authored-by: haykam821 <24855774+haykam821@users.noreply.github.com>
* Allow fluid variant colors to depend on the position
Also add a smarter FluidVariantRendering#getTooltip.
* Add fluid variant rendering testmod
* 255/256 is not 1
* Actually it's in the top left
* Deprecate and move fabric-rendering-registries-v1 into fabric-rendering-v1
* Make the event work again
* Use lambda for RegistrationHelper
* Checkstyle in rendererregistries
* Checkstyle for rendering-v1
* Remove mixins file
And add two `forRemoval`
* Raise EntityModelLayerRegistry out of experimental
And update javadoc
* Change INSTANCE to a static method in two registries
* Readd unwillingly removed annotation
* Disallow constructing API instances
* Added Environment and ApiStatus annotations
* Update testmod's entrypoint
Co-authored-by: Technici4n <13494793+Technici4n@users.noreply.github.com>
* Remove renderer-registries testmod
* Remove `var` usage
* Don't specify `forRemoval = true` in `@Deprecated`
* Inline old registry implementations in anonymous classes
Co-authored-by: Technici4n <13494793+Technici4n@users.noreply.github.com>
* Tag factory
* Add static biome tag factory to the API
* Use SERVER_STARTING event
* Use the ctor directly
* Use the default BIOME factory
* AccessorDynamicRegistryManager -> DynamicRegistryManagerAccess
* Return Tag.Identified
* Load dynamic registry tags right after datapack entries loaded
* DynamicRegistryManagerAccess -> DynamicRegistryManagerAccessor
* Fix grammar
* reimplement ArmorRenderingRegistry
* fix license headers
* remove todo
* move registry to static method
* minor reformat
* reduce api classes into one
* reformat
* make registry static
* reformat
* change Item in registry to ItemConvertible
* register mixin properly this time
* explain test mod
* reformat
* stricter null check
* Stop DefaultResourcePack scanning the entire classpath
* Use another approach to find the JAR
* Make it work for filesystem assets as well (tested, it works!)
* Only patch what is necessary
* Original fluid API design
* Rework the transaction system
* First javadoc pass
* Add a testmod, a base implementation for fluid storages and fix some little bugs
* Fix checkstyle
* Make Movement#move extract from the view and not the whole Storage
* Document and update FluidPreconditions
* Use for-each in CombinedStorage and document a little
* Remove useless overrides in Insertion/ExtractionOnlyStorage
* Move SnapshotParticipant#snapshots to the top of the class, and make updateSnapshots public
* Fix garbage collection of unused CauldronWrappers
* Use ArrayList directly
* Remove locking, reorganize transaction implementation, and add outer close callback
* Add more javadoc
* Rework Storage#forEach into Storage#iterator
* Add a few missing `transaction.addCloseCallback(iterator)`
* Add anyView(), exactView(), capacity() and isEmpty()
* Add Storage#iterable to make iteration friendlier to for loops
* Storages may now have multiple open iterators
Co-authored-by: Devan-Kerman <dev.sel20@gmail.com>
* Make CombinedStorage#supportsInsertion/Extraction iterate through the parts
* Block updates should be used when the supportsInsertion/Extraction status changes
* Fluid -> FluidKey
* Remove all references to ItemKey inside FluidKey, and other minor tweaks
* Cache FluidKeys with a null tag inside Fluid directly
* Fluid unit convention
* Add FluidKeyRendering and RenderHandler
* Bump version for more testing (also published to my maven)
* Add SingleViewIterator, massively reduce code duplication!
* Make API experimental, and add README
* Bump version
* Apparently Fluids.EMPTY is flowing
* Add package info
* Minor adjustements
* 1.17 port, cauldron support, add ResourceKey
* Checkstyle, gas rendering, use record for ResourceAmount
* Add a few helpers, rename some stuff
* Remove anyView, allow nullable in StorageUtil#find*, fix missing try block
* Slight findStoredResource cleanup
* Slightly improve implementation
* Bump version
* Fix wrong transaction
* I wrote in a comment that this could happen...
* Fix SingleFluidStorage bugs, add tests in the testmod, add testmod assets
* Add extract stick
* Rename a few things
* `ResourceKey<T>` -> `TransferKey<O>`
* `ResourceKey#getResource()` -> `TransferKey#getObject()` as resource is already widely used through the API for the keys themselves.
* `tag` -> `nbt`
* Add `get` prefixes to `StorageView` functions
* Bump version
* FluidKey -> FluidVariant
* Bump version
* Expand getVersion() documentation, make it thread-safe and use long.
Co-authored-by: Player <player@player.to>
* empty resource -> blank resource, and update SingleFluidStorage
Co-authored-by: Player <player@player.to>
* Make CauldronFluidContent a final class instead of a record.
Co-authored-by: Player <player@player.to>
* Get rid of CauldronFluidContent#minLevel (was always 1)
* Fix nested commits. (Thanks @warjort!)
* Separate Transaction and TransactionContext
Co-authored-by: Devan-Kerman <dev.sel20@gmail.com>
Co-authored-by: Player <player@player.to>
* Change WorldLocation into a private record
* Bump version
* Guard against exceptions thrown in close callbacks
* Make sure blank fluid variants don't have a tag
* Add documentation, make CauldronStorage clearer
Co-authored-by: frqnny <45723631+frqnny@users.noreply.github.com>
* Allow null storages in StorageUtil#move, and clarify sidedness of FluidStorage
* Add explicit hashCode and equals for transfer variants
* Remove ugly equals and hashCode overrides, and add constant time hashcode spec
Co-authored-by: Devan-Kerman <dev.sel20@gmail.com>
Co-authored-by: liach <liach@users.noreply.github.com>
Co-authored-by: Player <player@player.to>
Co-authored-by: frqnny <45723631+frqnny@users.noreply.github.com>