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.builder.GeneratorBuilder;
import com.dfsek.terra.config.templates.BiomeTemplate; import com.dfsek.terra.config.templates.BiomeTemplate;
import com.dfsek.terra.generation.UserDefinedDecorator; import com.dfsek.terra.generation.UserDefinedDecorator;
import com.dfsek.terra.generation.config.WorldGenerator;
import org.bukkit.World; import org.bukkit.World;
import org.polydev.gaea.biome.Biome; import org.polydev.gaea.biome.Biome;
import org.polydev.gaea.biome.Decorator; import org.polydev.gaea.biome.Decorator;
import org.polydev.gaea.biome.Generator; import org.polydev.gaea.biome.Generator;
import org.polydev.gaea.structures.features.Feature; import org.polydev.gaea.structures.features.Feature;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* Class representing a config-defined biome * Class representing a config-defined biome
@@ -25,7 +22,6 @@ public class UserDefinedBiome implements Biome, WorldObject {
private final String id; private final String id;
private final BiomeTemplate config; private final BiomeTemplate config;
private final boolean erode; 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) { 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 @Override
public Generator getGenerator(World w) { 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 com.dfsek.terra.generation.config.WorldGenerator;
import parsii.eval.Scope; import parsii.eval.Scope;
import java.util.HashMap;
import java.util.Map; import java.util.Map;
public class GeneratorBuilder { public class GeneratorBuilder {
private final Map<Long, WorldGenerator> gens = new HashMap<>();
private String noiseEquation; private String noiseEquation;
private String elevationEquation; private String elevationEquation;
@@ -23,7 +26,7 @@ public class GeneratorBuilder {
private boolean preventInterpolation; private boolean preventInterpolation;
public WorldGenerator build(long seed) { 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() { public String getNoiseEquation() {