Changelog
- Specific Fabric API modules and YetAnotherConfigLib (YACL) are no longer bundled (jar-in-jar) with SleepWarp
- Fabric API is now a required dependency for both client and dedicated server.
- ModMenu and YACL are optional dependencies on the client to access the configuration screen.
- Improved world simulation performance
- Removed config options:
performance_mode
- Performance mode and the
TickMonitor
class have been removed
- Performance mode and the
tick_entities
- This would end up ticking everything, including the items on the ground and the player
- Replaced by
tick_animals
andtick_monsters
tick_mob_spawn
- Too much processing time for no real gameplay benefit
tick_spawners
- The code behind this actually was ticking something that wasn't spawner blocks
- I also decided it was silly to tick spawners while you're sleeping
- Added config options:
tick_monsters
tick_animals
monster_tick_multiplier
- Not implemented
animal_tick_multiplier
- Not implemented
- Action bar messages were tweaked
- Made improvements to the client settings screen by separating the options in each category into labeled groups, swap boolean toggle buttons out for tick boxes, and spruced up option tooltips.
I was still not happy with the overall performance when all world simulation features were enabled. Time, weather, and additional world ticks were done synchronously and sequentially right at the end of the world tick, meaning at default settings the world would be ticked 60 times over before the next world tick would begin.
My solution is to tick time and weather synchronously before world ticking, and if there still time before dawn, then the various portions of the world will be ticked on one of three single-thread executors; monsters and animals will be ticked on one, random block ticks on another, and everything else will be ran on the third. This setup allows time to advance at a steady rate while the additional world ticks are processed sequentially and asynchronously on other threads.
Dependencies
Files
External resources
Project members
Giggitybyte
Owner