* 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>
* Initial version of Item API API
* Use an ItemStack parameter instead of an Item parameter for API queries
* Add ItemStack modification note
* Kindly ask providers not to modify the stack
* Expose the API and context types
* Bump version to 1.2.0
* Fix structure config not applying in every case
* Make tempmap immutable
* delete unfinished sentence
oop
* Some more cleanup
This was done at the request of Technician
* Update fabric-structure-api-v1/src/main/resources/fabric.mod.json
Co-authored-by: liach <7806504+liach@users.noreply.github.com>
Co-authored-by: liach <7806504+liach@users.noreply.github.com>
* fix#1273
* Expand testmod to test multipart and weighted models with FRAPI submodels
Co-authored-by: Technici4n <13494793+Technici4n@users.noreply.github.com>
* Fixed Biome Modification API not working for json biome
* upgraded test to add to all deserts and added json biome. (note the test mod won't load the json biome tho. Make it into a datapack so it works)
* switched set of rgeistrykeys to set of biome instances
* added datapack as backup to test mod
* removed unused imports
* removed the biome json file from the test mod's data folder