* Make sure client locking only happens if there will actually be a tick
* Swap the order of client and server tasks and merge the client tasks into one block
* Remove useless capture of @Share
* Ensure all packets are handled in the tick after it was sent
* Add main thread packet handlers to our set before they are added to the vanilla queue, not after
* Don't deadlock if client stops on a frame that doesn't tick
* Fix checkstyle
* Switch back round the client and server tasks
* Only apply vanilla task loop phases if network synchronization is enabled
* Update docs
* Add network synchronizer impl notes to match PR description
* Set ThreadingImpl.gameCrashed back to private. We don't want to accidentally change this value without using the setter.
* Instant screenshots, with counter and more configurability
* Force consistent window size across all systems and stretch framebuffer to fit the physical window
* Docs
* Wait ticks appropriately for the screenshots in the gametest test
* Should -> must
* Fix window resizing for different display scales
* Fix framebuffer size not being changed at all
* Add test for window resizing
* 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