Skip to content

Commit 0f15c08

Browse files
committed
Improved concurrency (should fix #1127 and other C2ME issues)
1 parent b623d63 commit 0f15c08

5 files changed

Lines changed: 8 additions & 9 deletions

File tree

src/main/java/com/ferreusveritas/dynamictrees/DynamicTrees.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,8 @@
1818
import com.ferreusveritas.dynamictrees.tree.species.Species;
1919
import com.ferreusveritas.dynamictrees.util.CommonSetup;
2020
import com.ferreusveritas.dynamictrees.worldgen.DynamicTreeFeature;
21-
import com.ferreusveritas.dynamictrees.worldgen.structure.VillageTreeReplacement;
2221
import net.minecraft.data.DataGenerator;
2322
import net.minecraft.resources.ResourceLocation;
24-
import net.minecraftforge.client.event.EntityRenderersEvent;
2523
import net.minecraftforge.data.event.GatherDataEvent;
2624
import net.minecraftforge.eventbus.api.IEventBus;
2725
import net.minecraftforge.fml.ModLoadingContext;

src/main/java/com/ferreusveritas/dynamictrees/compat/season/NormalSeasonManager.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
import java.util.HashMap;
1212
import java.util.Map;
13+
import java.util.concurrent.ConcurrentHashMap;
1314
import java.util.function.BiPredicate;
1415
import java.util.function.Function;
1516
import java.util.function.Supplier;
@@ -18,7 +19,7 @@ public class NormalSeasonManager implements SeasonManager {
1819

1920
public static final Supplier<SeasonManager> NULL = NormalSeasonManager::new;
2021

21-
private final Map<ResourceLocation, SeasonContext> seasonContextMap = new HashMap<>();
22+
private final Map<ResourceLocation, SeasonContext> seasonContextMap = new ConcurrentHashMap<>();
2223
private Function<Level, Tuple<SeasonProvider, SeasonGrowthCalculator>> seasonMapper = w -> new Tuple<>(new NullSeasonProvider(), new NullSeasonGrowthCalculator());
2324

2425
public NormalSeasonManager() {

src/main/java/com/ferreusveritas/dynamictrees/systems/poissondisc/LevelPoissonDiscProvider.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import java.util.Map;
1818
import java.util.Map.Entry;
1919
import java.util.TreeMap;
20+
import java.util.concurrent.ConcurrentHashMap;
2021

2122
/**
2223
* Manages and creates all the Poisson discs in a single level (world).
@@ -26,12 +27,12 @@
2627
public class LevelPoissonDiscProvider implements PoissonDiscProvider {
2728

2829
private final RadiusCoordinator radiusCoordinator;
29-
private final HashMap<ChunkPos, PoissonDiscChunkSet> chunkDiscs;
30+
private final Map<ChunkPos, PoissonDiscChunkSet> chunkDiscs;
3031
private RandomXOR random = new RandomXOR();
3132
private PoissonDebug debug = PoissonDebug.EMPTY_POISSON_DEBUG;
3233

3334
public LevelPoissonDiscProvider(RadiusCoordinator radCoord) {
34-
this.chunkDiscs = new HashMap<>();
35+
this.chunkDiscs = new ConcurrentHashMap<>();
3536
this.radiusCoordinator = radCoord;
3637
}
3738

src/main/java/com/ferreusveritas/dynamictrees/worldgen/BiomeDatabases.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import net.minecraft.resources.ResourceLocation;
88
import org.apache.logging.log4j.LogManager;
99

10+
import java.util.Collections;
1011
import java.util.Map;
1112
import java.util.Optional;
1213
import java.util.Set;
@@ -18,9 +19,9 @@ public final class BiomeDatabases {
1819

1920
private static final BiomeDatabase DEFAULT_DATABASE = new BiomeDatabase();
2021
/** Dimension names to their respective {@link com.ferreusveritas.dynamictrees.worldgen.BiomeDatabase}. */
21-
private static final Map<ResourceLocation, BiomeDatabase> DIMENSIONAL_DATABASES = Maps.newHashMap();
22+
private static final Map<ResourceLocation, BiomeDatabase> DIMENSIONAL_DATABASES = Collections.synchronizedMap(Maps.newHashMap());
2223
/** Dimension names for dimensions that are blacklisted. */
23-
private static final Set<ResourceLocation> BLACKLIST = Sets.newHashSet();
24+
private static final Set<ResourceLocation> BLACKLIST = Collections.synchronizedSet(Sets.newHashSet());
2425

2526
public static BiomeDatabase getDefault() {
2627
return DEFAULT_DATABASE;

src/main/java/com/ferreusveritas/dynamictrees/worldgen/DynamicTreeFeature.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,7 @@
2626
import net.minecraft.world.level.levelgen.Heightmap;
2727
import net.minecraft.world.level.levelgen.feature.Feature;
2828
import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext;
29-
import net.minecraft.world.level.levelgen.feature.TreeFeature;
3029
import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration;
31-
import net.minecraft.world.level.material.Fluids;
3230
import net.minecraftforge.registries.ForgeRegistries;
3331

3432
import java.util.Arrays;

0 commit comments

Comments
 (0)