mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-04-23 16:49:10 +00:00
make perf not suck
This commit is contained in:
@@ -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());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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() {
|
||||||
|
|||||||
Reference in New Issue
Block a user