mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2025-07-25 22:12:34 +00:00
42 lines
1.5 KiB
Java
42 lines
1.5 KiB
Java
package com.dfsek.terra.biome;
|
|
|
|
import com.dfsek.terra.config.base.WorldConfig;
|
|
import com.dfsek.terra.image.ImageLoader;
|
|
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;
|
|
import org.polydev.gaea.generation.GenerationPhase;
|
|
|
|
public class UserDefinedGrid extends BiomeGrid {
|
|
private final ImageLoader imageLoader;
|
|
private final boolean fromImage;
|
|
private final ImageLoader.Channel channelX;
|
|
private final ImageLoader.Channel channelZ;
|
|
|
|
public UserDefinedGrid(World w, double freq1, double freq2, UserDefinedBiome[][] b, WorldConfig c) {
|
|
super(w, freq1, freq2, b.length, b[0].length);
|
|
super.setGrid(b);
|
|
imageLoader = c.imageLoader;
|
|
fromImage = c.fromImage;
|
|
channelX = c.biomeXChannel;
|
|
channelZ = c.biomeZChannel;
|
|
}
|
|
|
|
@Override
|
|
public Biome getBiome(int x, int z, GenerationPhase phase) {
|
|
if(fromImage) {
|
|
double xi = imageLoader.getNoiseVal(x, z, channelX);
|
|
double zi = imageLoader.getNoiseVal(x, z, channelZ);
|
|
return super.getGrid()[NormalizationUtil.normalize(xi, getSizeX(), 4)][NormalizationUtil.normalize(zi, getSizeZ(), 4)];
|
|
}
|
|
return super.getBiome(x, z, phase);
|
|
}
|
|
|
|
@Override
|
|
public Biome getBiome(Location l, GenerationPhase phase) {
|
|
return this.getBiome(l.getBlockX(), l.getBlockZ(), phase);
|
|
}
|
|
}
|