This commit is contained in:
dfsek
2020-11-27 15:17:16 -07:00
parent 2f9f89042c
commit 622e65e7a5
4 changed files with 45 additions and 6 deletions

View File

@@ -10,6 +10,6 @@ import java.lang.reflect.Type;
public class MaterialLoader implements TypeLoader<Material> {
@Override
public Material load(Type type, Object o, ConfigLoader configLoader) throws LoadException {
return Material.getMaterial((String) o);
return Material.matchMaterial((String) o);
}
}

View File

@@ -76,6 +76,42 @@ public class BiomeTemplate implements ConfigTemplate {
@Abstractable
private String elevationEquation = null;
@Value("slabs.enable")
@Abstractable
@Default
private boolean doSlabs = false;
@Value("slabs.threshold")
@Abstractable
@Default
private double slabThreshold = 0.0075D;
@Value("slabs.palettes")
@Abstractable
@Default
private Map<Material, Palette<BlockData>> slabPalettes;
@Value("stair-palettes")
@Abstractable
@Default
private Map<Material, Palette<BlockData>> stairPalettes;
public double getSlabThreshold() {
return slabThreshold;
}
public boolean doSlabs() {
return doSlabs;
}
public Map<Material, Palette<BlockData>> getSlabPalettes() {
return slabPalettes;
}
public Map<Material, Palette<BlockData>> getStairPalettes() {
return stairPalettes;
}
public BiomeTemplate(ConfigPack pack) {
this.pack = pack;
}

View File

@@ -175,10 +175,10 @@ public class TerraChunkGenerator extends GaeaChunkGenerator {
if(interpolator.getNoise(x, y - elevate, z) > 0) {
BlockData data = getPalette(x, y, z, c, interpolator, elevationInterpolator).get(paletteLevel, cx, cz);
chunk.setBlock(x, y, z, data);
/*if(paletteLevel == 0 && slab != null && y < 255) {
prepareBlockPart(data, chunk.getBlockData(x, y + 1, z), chunk, new Vector(x, y + 1, z), slab.getSlabs(),
slab.getStairs(), slab.getSlabThreshold(), interpolator, elevationInterpolator);
}*/
if(paletteLevel == 0 && c.doSlabs() && y < 255) {
prepareBlockPart(data, chunk.getBlockData(x, y + 1, z), chunk, new Vector(x, y + 1, z), c.getSlabPalettes(),
c.getStairPalettes(), c.getSlabThreshold(), interpolator, elevationInterpolator);
}
paletteLevel++;
} else if(y <= sea) {
chunk.setBlock(x, y, z, seaPalette.get(sea - y, x + xOrig, z + zOrig));

View File

@@ -6,6 +6,7 @@ import com.dfsek.terra.biome.palette.PaletteLayer;
import com.dfsek.terra.carving.CarverPalette;
import com.dfsek.terra.config.loaders.BlockDataLoader;
import com.dfsek.terra.config.loaders.GridSpawnLoader;
import com.dfsek.terra.config.loaders.MaterialLoader;
import com.dfsek.terra.config.loaders.PaletteHolderLoader;
import com.dfsek.terra.config.loaders.PaletteLayerLoader;
import com.dfsek.terra.config.loaders.ProbabilityCollectionLoader;
@@ -13,6 +14,7 @@ import com.dfsek.terra.config.loaders.RangeLoader;
import com.dfsek.terra.config.loaders.VanillaBiomeLoader;
import com.dfsek.terra.config.loaders.base.CarverPaletteLoader;
import com.dfsek.terra.procgen.GridSpawn;
import org.bukkit.Material;
import org.bukkit.block.Biome;
import org.bukkit.block.data.BlockData;
import org.polydev.gaea.math.ProbabilityCollection;
@@ -60,6 +62,7 @@ public final class ConfigUtil {
.registerLoader(PaletteHolder.class, new PaletteHolderLoader())
.registerLoader(PaletteLayer.class, new PaletteLayerLoader())
.registerLoader(Biome.class, new VanillaBiomeLoader())
.registerLoader(BlockData.class, new BlockDataLoader());
.registerLoader(BlockData.class, new BlockDataLoader())
.registerLoader(Material.class, new MaterialLoader());
}
}