promotional bannermobile promotional banner

Dynamic Trees - Au Naturel Edit

Trees that grow and change - with fixes and performance edits
Back to Files

DynamicTrees-1.20.1-1.4.8.jar

File nameDynamicTrees-1.20.1-1.4.8.jar
Uploader
acowadonisacowadonis
Uploaded
Dec 17, 2025
Downloads
72
Size
3.6 MB
Mod Loaders
Forge
File ID
7343453
Type
R
Release
Supported game versions
  • 1.20.1

Curse Maven Snippet

Forge

implementation fg.deobf("curse.maven:dynamic-trees-au-naturel-edit-1406388:7343453")

Learn more about Curse Maven

What's new

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.

This mod has no additional files