* Add more chest tags
* adjust temperate biome tag
* More Cobblestone tags
* end stones tag
* Gravels tag
* Netherracks tag
* Add all ores tags for consistency
* Ore rates, ore in ground, and ore bearing tags added
* Added sands tags
* added bones tag
* Added eggs tag
* Added feathers tag
* Added gunpowders tag
* Added mushrooms tag
* Added nether stars tag
* Added seeds tags
* Added fence and fence gate tags
* Added nether and end empty category tags
* Added lush biome tag
* Added magical tag
* Added rare biome tag
* Added plateau tag
* added spooky biome tag
* Added sandy tag
* Fixed checkstyle issues
* Run datagen
* more javadoc and fixed biomes in temperature tag
* fixed typo in biome temperature tag javadoc
* attempt at potion tag javadoc
* Add bottled potion subtag
* Datagen bottled potion and biome temperature fix
* Improved potion javadoc more
* Changed potion verb to noun
* Improve potion javadoc to mention data component
* special exception for certain biome tag
* checkstyle
* added more docs and tagging of pale garden
* checkstyle
* Alias fence, fence gate, and ore tags
* Checkkstyle
* Tag alias match c format now
* Add missing nether stripped stems/hyphae to stripped tags
* Bottled Potions display name
* improve javadoc to be clear on tag name for ore bearing and or in tags
* Trigger Build
* Ensure game closes promptly when it crashes
* Mutate the stack traces of exceptions thrown in tasks to make them easier to track
* Fix ThreadingImpl.joinAsyncStackTrace
* Don't press menu.quit button from inside the gametest test
* Make dynamic registry element path be namespaced
FixesFabricMC/fabric#4179
* Remove old method of prepending the namespace
The old method of prepending only applied in certain locations, and thus gives different results depending on the circumstance
* Add simple RegistryKeysTest
---------
Co-authored-by: modmuss <modmuss50@gmail.com>
(cherry picked from commit 3f3c49952e)
* Move client auto tests to new module fabric-client-gametest-api-v1
* Fix run prod Gradle tasks
* Rename remaining references to client auto-tests
* Switch client gametests to using entrypoints
* Disable input and cursor grabbing
* Remove FabricClientTestHelper moving most of it into the context. Add the ability to simulate key and mouse inputs
* Rename and document input methods
* Rename client gametest github action
* Fix tryClickScreenButtonImpl for buttons inside layout widgets
* Address review comments and repackage client gametest test
* Delete wrong reference to TitleScreenAccessor. Thanks mcdev
* Address review comments
* Clean up default game options
* Improve documentation
* Remove module dependencies
---------
Co-authored-by: modmuss50 <modmuss50@gmail.com>
* Add tag aliases
* Document and rename tag alias internals
* Make the tag alias directory singular to match Mojang's recent style
* Add a note about tag aliases to client tag documentation
* Support missing tags in alias groups
* Support tag aliases for dynamic and reloadable registries
* TagAliasGroup: Document naming conventions for c tag alias groups
* Add tag alias test mod
* Fix inline return checkstyle
* Add test for tag alias data generation
* Fix checkstyle (again)
* Add tag translations to tag API testmod
* Uncomment accidentally commented out code
* SimpleRegistryMixin: Improve a log message
* TagAliasTest: Improve assertion messages
* Fix tag aliases for dynamic registries not applying on /reload
* Clean up log message once again
* Address review feedback
* Make missing interfaces throw CCEs
* Add README
* Move TagAliasGroup into the impl package
(cherry picked from commit a730659c14)
- Fix Ingredient.OPTIONAL_PACKET_CODEC not being modified to work with custom ingredients
- Fix ShapelessRecipeMixin sometimes not collecting all non-empty item stacks
- If client does not support certain custom ingredient, send CustomIngredientImpl#getCustomMatchingItems instead of dummy default (stone)
* Fix block outline rendering
- Move outline event invoker to before either normal or high contrast outlines are rendered
- Remove outline layer reset, fixing high contrast outline being rendered with wrong layer
- Pass translucent parameter to BEFORE_BLOCK_OUTLINE event
- Remove deprecated BlockOutlineContext#vertexConsumer
* Re-add deprecated BlockOutlineContext#vertexConsumer
* Add translucent block outline to context
* Implement changes to client auto-test threading
* Replace ThrowableRunnable and ThrowableSupplier with Apache equivalents, reintroduce MinecraftClient parameter
* Avoid undefined behavior in storing Operations
* Add check for calling MinecraftClient.getInstance() on the test thread
* Add todo for suggestion of runOnClient when API methods are added
* Rename lambda parameter from minecraft -> client
- Override isEmpty in CustomIngredientImpl
- Override acceptsItem in CustomIngredientImpl
- Override equals and hashCode in CustomIngredientImpl so CustomIngredients can also implement them
- Adjust the class doc of CustomIngredient to encourage implementors to do so
- Implement Ingredient#hashCode
- Remove incorrect Nullable annotation from ItemStack parameter in CustomIngredientImpl#test
- Implement equals and hashCode on all builtin custom ingredient classes
- This caused decorated pot pattern textures to not be initialized correctly
- Now, WoodTypeMixin only manually adds textures after TexturedRenderLayers has been classloaded
* Port FRAPI to 1.21.4 and refactor
- Port to 1.21.4
- Change `glint` material property type from `TriState` to new `GlintMode` enum, due to addition of vanilla `ItemRenderState.Glint` enum
- Remove `ItemStack` and `ModelTransformationMode` parameters from `emitItemQuads` to preserve contract of `ItemRenderState`
- Apply refactors and breaking changes
- Move `hasTransform`, `pushTransform`, and `popTransform` from `RenderContext` to `QuadEmitter` to make the system more flexible and allowing mesh builder emitters to also have transforms
- Remove `RenderContext` and inline remaining parameters to `emit*` methods; allows outputting model to arbitrary emitter and invoking model from arbitrary location
- Remove `RendererAccess` and add static `Renderer#get` and `#register` instead
- Disallow `Renderer` retrieval from returning a null value
- Change `QuadView#faceNormal` to return a `Vector3fc` instead of a `Vector3f`
- Remove deprecated methods
- Change `MeshImpl` to use a static cursor pool to save on memory and to allow nesting access to cursor on a thread
- Remove "compatibility mode" from Indigo
* Change contract of and better document `cullTest`
This allows a model to control which quads a submodel can cull early irrespective of transforms. Forwarding the test to the submodel will make it so pushed transforms may not receive quads that will be culled. The previous behavior of pushing a transform disabling early culling can now be achieved by passing `face -> false` to the submodel.
* Further refactors
- Remove disableColorIndex material property
- Rename colorIndex methods to tintIndex in QuadView and MutableQuadView to match recent Yarn rename
- Remove ForwardingBakedModel and WrapperBakedModel
- Vanilla's new WrapperBakedModel is similar enough to ForwardingBakedModel
- WrapperBakedModel will be moved to Model Loading API v1 in a different PR
- Set default vertex color to 0xFFFFFFFF instead of 0
- Disallow MutableQuadView#material from accepting a null material
- Precompute default quad data buffer instead of using zeroed buffer and setting defaults every time
* Fix build
The error was caused by a classloading loop.
* Convert MeshBuilder into MutableMesh
- Effectively split MeshBuilder#build into MutableMesh#immutableCopy and #clear
- Effectively add MutableMesh#forEachMutable
- Add Mesh#size
- Remove QuadEmitter#hasTransform
- Optimize MutableQuadViewImpl#copyFrom by not precomputing geometry
- Give UnwrappableBakedModel#unwrap a default implementation to prevent issues with interface injection
- Finish porting FRAPI and Model Loading API testmods
* Finish documentation
* Update Model Loading API to 1.21.4
- Split model modifier events and callbacks - one set for static models and one set for block models
- This is necessary because static models use UnbakedModel and are baked with settings while block models use GroupableModel and are not baked with settings
- This cleans up the Identifier/ModelIdentifier getters
- OnLoad for block models was not added because the unbaked block model map is not a cache and block models cannot inherit from other models
- Make DelegatingUnbakedModel a record to allow accessing the delegate ID
- Remove BuiltinItemRenderer, BuiltinItemRendererRegistry, and BuiltinItemRendererRegistryImpl as they were replaced by a TAW to SpecialModelTypes.ID_MAPPER
* Add fabric_ prefix to methods in BakedModelsHooks and fix checkstyle
* Remove ModelResolver and BlockStateResolver
- The functionality of ModelResolver could be perfectly replicated with ModelModifier.OnLoad with OVERRIDE_PHASE
- The functionality of BlockStateResolver could be perfectly replicated with ModelModifier.BeforeBakeBlock with OVERRIDE_PHASE
- Fix log warning caused by half_red_sand.json not defining particle sprite
* Re-add BlockStateResolver and ModelModifier.OnLoadBlock
- BeforeBakeBlock runs too late to allow modifying how models are grouped, so OnLoadBlock is necessary to allow that
- OnLoadBlock only runs for models which were actually loaded from blockstate files, so BlockStateResolver is necessary to allow adding models for blocks without a corresponding blockstate file
- Add UnwrappableBakedModel
- Moved and renamed from FRAPI's WrapperBakedModel (original will be deleted in separate PR)
- Implement it and interface inject it on vanilla's WrapperBakedModel
- Add new static UnwrappableBakedModel#unwrap method which accepts a Predicate saying when to stop unwrapping
- Add WrapperUnbakedModel which simply delegates all method calls to a different UnbakedModel
* Remove ModelModifier.*Bake*
- Remove BeforeBake, AfterBake, BeforeBakeBlock, AfterBakeBlock
- Remove DelegatingUnbakedModel
- Add WrapperGroupableModel
- Add documentation and extra constructor to WrapperUnbakedModel
* Clarify OnLoad doc about meaning of null model