* feat: proper passenger position handling for most entities, fix passengers not being applied properly on the client sometimes
* chore: ditch the complex passenger solution as 1.20.5 makes this much simpler
* chore: change EntityViewer to check for a vehicle rather than isViewer, add a test case for this bug
* fix: test only worked in isolation
* chore: revert additional pos allocation
* chore: this instead of vehicle
* Name some magic values, replace getChunkViewDistance with ServerFlag.CHUNK_VIEW_DISTANCE, and respect client view distance settings (by using effective view distance when sending chunks)
* Attempt to fix test
* Preload chunks in test
* Fix OOM error for tests
* Rename constants and skin parts method
* Rename method
* feat: add aerodynamics record and the ability to set horizontal drag
* feat: entity physics simulation overhaul
* fix: made physics utils private, renamed to match other utils
* chore: separate concept of chunks and tps from PhysicsUtils, remove bad PhysicsResult constants
* chore: remove synchronization from PhysicsUtils, SYNCHRONIZE_ONLY_ENTITIES collection > set
* chore: remove extra vec allocations
* chore: improved flyingVelocity test
* chore: add all entities with client side prediction to SYNCRHONIZE_ONLY_ENTITIES, refactor velocity
---------
Co-authored-by: iam <iam4722202468@users.noreply.github.com>
* feat: improve server ticking accuracy, transition to Thread#sleep and compensate for ticks that take too long
* feat: use nano time instead of milliseconds and add compensation for the rare case of the server oversleeping
- Fix invalid lighting being sent to clients
- Add cherry leaves to occludes
- Fix lighting being generated when using loaded lighting
- Send lighting to clients on block changes
- Cleanup unused methods
- Add sky lighting test for short grass
* try catch in SchedulerImpl to individually fail tasks
* Use exception manager
* chore: add a test
---------
Co-authored-by: mworzala <mattheworzala@gmail.com>
* Add MojangUtils#getUUID() and MojangUtils#getUsername()
* Remove invalid UUID test as Java's UUID will not allow an invalid UUID
* Add `@Blocking` and some JavaDoc comments
* Override `MojangUtils#fromUuid(String)` with `MojangUtils#fromUuid(UUID)` and add a test
* Switch to IOException over custom ones
* Fix potential lock acquisition in Acquirable API
* Calls to Acquirable#sync(Consumer) will now always unlock, even if the consumer throws an unchecked exception
* fix: formatting
---------
Co-authored-by: Matt Worzala <35708499+mworzala@users.noreply.github.com>
* Improved code readability.
This code improves code flow, simplicity and reduces complexity
* chore: interface to final class, rename conversion functions to their recipe type for clarity, use cached packet
---------
Co-authored-by: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com>