make perf not suck

This commit is contained in:
dfsek
2020-11-27 02:17:41 -07:00
parent f364420007
commit 5c6ea59d30
2 changed files with 5 additions and 6 deletions

View File

@@ -4,16 +4,13 @@ import com.dfsek.terra.WorldObject;
import com.dfsek.terra.config.builder.GeneratorBuilder;
import com.dfsek.terra.config.templates.BiomeTemplate;
import com.dfsek.terra.generation.UserDefinedDecorator;
import com.dfsek.terra.generation.config.WorldGenerator;
import org.bukkit.World;
import org.polydev.gaea.biome.Biome;
import org.polydev.gaea.biome.Decorator;
import org.polydev.gaea.biome.Generator;
import org.polydev.gaea.structures.features.Feature;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* Class representing a config-defined biome
@@ -25,7 +22,6 @@ public class UserDefinedBiome implements Biome, WorldObject {
private final String id;
private final BiomeTemplate config;
private final boolean erode;
private final Map<World, WorldGenerator> gens = new HashMap<>();
public UserDefinedBiome(org.bukkit.block.Biome vanilla, UserDefinedDecorator dec, GeneratorBuilder gen, boolean erode, BiomeTemplate config) {
@@ -91,6 +87,6 @@ public class UserDefinedBiome implements Biome, WorldObject {
@Override
public Generator getGenerator(World w) {
return gens.computeIfAbsent(w, world -> gen.build(world.getSeed()));
return gen.build(w.getSeed());
}
}

View File

@@ -5,9 +5,12 @@ import com.dfsek.terra.generation.config.NoiseBuilder;
import com.dfsek.terra.generation.config.WorldGenerator;
import parsii.eval.Scope;
import java.util.HashMap;
import java.util.Map;
public class GeneratorBuilder {
private final Map<Long, WorldGenerator> gens = new HashMap<>();
private String noiseEquation;
private String elevationEquation;
@@ -23,7 +26,7 @@ public class GeneratorBuilder {
private boolean preventInterpolation;
public WorldGenerator build(long seed) {
return new WorldGenerator(seed, noiseEquation, elevationEquation, varScope, noiseBuilderMap, palettes, slantPalettes, preventInterpolation);
return gens.computeIfAbsent(seed, k -> new WorldGenerator(seed, noiseEquation, elevationEquation, varScope, noiseBuilderMap, palettes, slantPalettes, preventInterpolation));
}
public String getNoiseEquation() {