CoreTweaks
12 merged pull requests.
Changes
- #9 Config.shouldDisable returns true for lightFixStare when Compat.isSupernovaPresent, and logs the reason. The config comment was updated. - @mitchej123
- #8 Added Compat.isSupernovaPresent, which checks for com/mitchej123/supernova/core/SupernovaCore.class. Config.shouldDisable disables fixHeightmapRange when it is found. - @mitchej123
- Added: Supernova detection
Bug Fixes
- #13 TransformerCache.onTick now checks Minecraft.theWorld and thePlayer are non-null before incrementing clientTicks, then unregisters and calls freeCacheDuringRuntime after 40 ticks. - @Alexdoru
- Fixed: transformer cache being cleared on the main menu instead of in game
- #10 TransformerCache verifies the hash after applying a cached GDiff and evicts on mismatch. It also replaces the shared static Delta with a ThreadLocal, removes the shared lastClassData buffer and hash memo, switches transformerMap to ConcurrentHashMap, and clones the transformer output before diffing. The cache VERSION goes from 2 to 3. - @Luca-Guettinger
- Fixed: Corrupt classes from bad GDiff diffs in the LITE transformer cache, Thread-safety issues in the transformer cache
Performance
- #15 TransformerCache.freeCacheDuringRuntime now runs saveCache and the map clearing in a new thread named 'CoreTweaks TransformerCache save thread' instead of inline. - @Alexdoru
- #11 CoreTweaksMod registers TransformerCache on the FML event bus on the client. TransformerCache adds a client tick handler that saves and frees the cache after a tick count, tracked with a volatile savedAndCleared flag; the instance field is now final. - @Luca-Guettinger
Removals
- #7 Deleted the optimizeGetPendingBlockUpdates config entry, its ConfigMigrator line, its MixinConfigPlugin entry, the MixinWorldServer mixin, IPendingBlockUpdatesWorldServer and ChunkPendingBlockUpdateMap. - @mitchej123
- Removed: optimizeGetPendingBlockUpdates option, getPendingBlockUpdates optimization
- #3 Removed the MCLibModules.updateCheckAPI.submitModTask call from CoreTweaksMod.preInit and deleted updatejson/update.json. The rest of the CoreTweaksMod diff is whitespace cleanup. - @wlhlm
- Removed: CoreTweaks update checker, updates.html in the instance folder
Internal / Refactor
- #14 TransformerCache now owns cache loading and saving, and CachedTransformerWrapper handles the transformation using its TransformerData with a volatile stopped flag. Fixes the cache growing after a runtime save and the miss/run counts in transformercache_profiler.csv. - @Alexdoru
- Fixed: transformer cache growing again after being saved during runtime, cache misses and runs not written correctly to the csv file
- #12 Marks fields final, replaces an anonymous Runnable with a lambda, and moves the client chunk map tick handler out of CoreTweaksMod into a new ClientChunkMapTicker class. - @Alexdoru
Chores
- #17 Dropped the MCLib shadowImplementation dependency, the MCLib.init call in CoreTweaksMod, and the mclib and cglib relocations and transformer exclusion. Only the kryo relocation remains. - @PLASMAchicken
- Removed: MCLib dependency, cglib relocation
- #4 Bumped gtnhsettingsconvention to 2.0.9, NotEnoughItems to 2.8.48-GTNH, lombok to 1.18.42 and MCLib to aa4acec. Added gradle-daemon-jvm.properties, new gradle.properties options, and a new Gradle wrapper. - @wlhlm
Contributors
Everyone who authored, reviewed or co-authored a change on this page, with how many of them:
@Alexdoru (6), @danyadev (4), @mitchej123 (3), @boubou19 (2), @jss2a98aj (2), @Luca-Guettinger (2), @wlhlm (2), @Algent (1), @Caedis (1), @Dream-Master (1), @PLASMAchicken (1)