* Add HudRenderEvents
* Add HudRenderEventsTests and deprecate HudRenderCallback
* Update tests
* Add client parameter and apply suggestions
* Split HudRenderEvents into separate interfaces
* Fix before chat and last
* Add after sleep overlay event and update after main hud injection point
* Add comments for injection points
* Revert splitting HudRenderEvents into separate interfaces
* Use vanilla layered drawer layer interface
* Cleanup InGameHudMixin
* POC of hud modification
* Implement HudLayerRegistrationCallback
* Delete HudRenderEvents
* Fix sub drawers and add basic documentation
* Fix checkstyle
* Apply suggestions from code review
* Add Javadocs
* Add more unit tests
* Apply suggestions from code review
- Update Javadocs
- Remove vanilla sub drawer flattening
- Improve LayeredDrawerWrapperImpl internals
* Javadoc oddities
* Add client gametests
* Finish client gametests
* Change method and add documentation
* Ensure test environment is correct
* Move test class to same package
* Add render condition for tests
* Fix merge conflicts
* Update javadocs
* Small bug fixes, documentation, and sub drawer tests
* Update javadocs some more
* Add contract and get around return value not used warnings
* Apply suggestions from code review
Co-authored-by: Juuz <6596629+Juuxel@users.noreply.github.com>
* Migrate AtomicBoolean to MutableBoolean
* Update javadocs on render condition
* Use ListIterator#set
---------
Co-authored-by: modmuss50 <modmuss50@gmail.com>
Co-authored-by: Juuz <6596629+Juuxel@users.noreply.github.com>
(cherry picked from commit 44a0820dd2)
* Organize packages
* Move all gametest system properties into one class where we won't lose them
* Add references to loom helpers to documentation in relevant places
(cherry picked from commit 2d7e411e9b)
* 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
* 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
* 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>