Actually gets to world gen now B)

This commit is contained in:
dfsek
2020-11-27 02:08:25 -07:00
parent 96ff875d2b
commit f364420007
14 changed files with 55 additions and 19 deletions

View File

@@ -26,7 +26,7 @@ public class BiomeZone {
this.noise.setNoiseType(FastNoiseLite.NoiseType.OpenSimplex2);
this.noise.setFractalType(FastNoiseLite.FractalType.FBm);
this.noise.setFractalOctaves(4);
this.noise.setFrequency(wc.getConfig().getTemplate().getZoneFreq());
this.noise.setFrequency(1D / wc.getConfig().getTemplate().getZoneFreq());
this.grids = grids;
imageLoader = wc.imageLoader;
useImage = wc.fromImage;

View File

@@ -4,13 +4,16 @@ 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
@@ -22,6 +25,7 @@ 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) {
@@ -87,6 +91,6 @@ public class UserDefinedBiome implements Biome, WorldObject {
@Override
public Generator getGenerator(World w) {
return gen.build(w.getSeed());
return gens.computeIfAbsent(w, world -> gen.build(world.getSeed()));
}
}

View File

@@ -1,6 +1,7 @@
package com.dfsek.terra.biome.palette;
import com.dfsek.terra.util.DataUtil;
import net.jafama.FastMath;
import org.bukkit.block.data.BlockData;
import org.polydev.gaea.world.palette.Palette;
@@ -18,7 +19,7 @@ public class PaletteHolderBuilder {
@SuppressWarnings("unchecked")
public PaletteHolder build() {
Palette<BlockData>[] palettes = new Palette[paletteMap.lastKey() + 1];
for(int y = 0; y <= paletteMap.lastKey(); y++) {
for(int y = 0; y <= FastMath.max(paletteMap.lastKey(), 255); y++) {
Palette<BlockData> d = DataUtil.BLANK_PALETTE;
for(Map.Entry<Integer, Palette<BlockData>> e : paletteMap.entrySet()) {
if(e.getKey() >= y) {

View File

@@ -1,17 +1,19 @@
package com.dfsek.terra.biome.palette;
import org.bukkit.block.data.BlockData;
import org.jetbrains.annotations.NotNull;
import org.polydev.gaea.math.ProbabilityCollection;
public class PaletteLayer {
private final ProbabilityCollection<BlockData> layer;
private final int size;
public PaletteLayer(ProbabilityCollection<BlockData> layer, int size) {
public PaletteLayer(@NotNull ProbabilityCollection<BlockData> layer, int size) {
this.layer = layer;
this.size = size;
}
@NotNull
public ProbabilityCollection<BlockData> getLayer() {
return layer;
}

View File

@@ -0,0 +1,16 @@
package com.dfsek.terra.biome.palette;
import org.polydev.gaea.world.palette.Palette;
public class SinglePalette<E> extends Palette<E> {
private final E item;
public SinglePalette(E item) {
this.item = item;
}
@Override
public E get(int i, int i1, int i2) {
return item;
}
}