Implement image debug GUI

This commit is contained in:
dfsek
2020-09-22 01:55:27 -07:00
parent 653e7f65f1
commit 641c819438
14 changed files with 268 additions and 42 deletions

View File

@@ -22,7 +22,7 @@ public class BiomeZone {
private final ImageLoader imageLoader;
private final boolean useImage;
private final ImageLoader.Channel channel;
private BiomeZone(World w, float freq) {
private BiomeZone(World w) {
this.w = w;
this.noise = new FastNoise((int) w.getSeed()+2);
this.noise.setNoiseType(FastNoise.NoiseType.SimplexFractal);
@@ -45,8 +45,16 @@ public class BiomeZone {
return grids[NormalizationUtil.normalize(useImage ? Objects.requireNonNull(imageLoader).getNoiseVal(x, z, channel) : noise.getNoise(x, z), 32)];
}
protected static BiomeZone fromWorld(World w) {
public int getNoise(int x, int z) {
return NormalizationUtil.normalize(useImage ? Objects.requireNonNull(imageLoader).getNoiseVal(x, z, channel) : noise.getNoise(x, z), 32);
}
public double getRawNoise(int x, int z) {
return useImage ? Objects.requireNonNull(imageLoader).getNoiseVal(x, z, channel) : noise.getNoise(x, z);
}
public static BiomeZone fromWorld(World w) {
if(zones.containsKey(w)) return zones.get(w);
else return new BiomeZone(w, WorldConfig.fromWorld(w).zoneFreq);
else return new BiomeZone(w);
}
}

View File

@@ -36,4 +36,8 @@ public class TerraBiomeGrid extends BiomeGrid {
public Biome getBiome(Location l) {
return getBiome(l.getBlockX(), l.getBlockZ());
}
public UserDefinedGrid getGrid(int x, int z) {
return (UserDefinedGrid) BiomeZone.fromWorld(w).getGrid(x, z);
}
}

View File

@@ -7,6 +7,7 @@ import org.bukkit.Location;
import org.bukkit.World;
import org.polydev.gaea.biome.Biome;
import org.polydev.gaea.biome.BiomeGrid;
import org.polydev.gaea.biome.NormalizationUtil;
public class UserDefinedGrid extends BiomeGrid {
private final ImageLoader imageLoader;
@@ -37,9 +38,9 @@ public class UserDefinedGrid extends BiomeGrid {
@Override
public Biome getBiome(int x, int z) {
if(fromImage) {
int xi = imageLoader.getChannel(x, z, channelX);
int zi = imageLoader.getChannel(x, z, channelZ);
return super.getGrid()[getSizeX() * (xi/256)][getSizeZ() * (zi/256)];
double xi = imageLoader.getNoiseVal(x, z, channelX);
double zi = imageLoader.getNoiseVal(x, z, channelZ);
return super.getGrid()[NormalizationUtil.normalize(xi, getSizeX())][NormalizationUtil.normalize(zi, getSizeZ())];
}
return super.getBiome(x, z);
}