File Details
DynamicTrees-1.20.1-1.4.8.jar
- R
- Dec 17, 2025
- 3.58 MB
- 59
- 1.20.1
- Forge
File Name
DynamicTrees-1.20.1-1.4.8.jar
Supported Versions
- 1.20.1
Curse Maven Snippet
1. Thread-Safety Crashes (Critical)
Problem: Mods like C2ME (Concurrent Chunk Management Engine) parallelize chunk loading/generation across multiple threads. Dynamic Trees used regular HashMap collections that corrupt when accessed concurrently, causing crashes like:
ClassCastException: HashMap$Node cannot be cast to HashMap$TreeNode
Fixes:
| File | Change |
|---|---|
| LevelPoissonDiscProvider | HashMap → ConcurrentHashMap |
| JoCodeRegistry | HashMap → ConcurrentHashMap |
| BiomeDatabases | HashMap/HashSet → ConcurrentHashMap |
| PoissonDiscChunkSet | Added volatile for visibility |
2. Performance Optimizations (Quality of Life)
Problem: Hot paths in worldgen and gameplay created excessive temporary objects, causing GC pressure and lag spikes.
Fixes:
| Location | Issue | Fix |
|---|---|---|
| JoCode.smother() | ~15,000 BlockPos per tree | Use int overloads |
| fallOn() | 100s of BlockPos per fall | MutableBlockPos |
| Direction.values() | New array every call | Cached static array |
| getExactSpecies() | 50-200 block lookups | Early exit after 6 |
Result: The mod now works correctly with C2ME/Chunky pregen and runs faster during both worldgen and normal gameplay.

