From 622e65e7a57f0cb537a967adff35b2fb9ad1b1c5 Mon Sep 17 00:00:00 2001 From: dfsek Date: Fri, 27 Nov 2020 15:17:16 -0700 Subject: [PATCH] slab --- .../terra/config/loaders/MaterialLoader.java | 2 +- .../terra/config/templates/BiomeTemplate.java | 36 +++++++++++++++++++ .../terra/generation/TerraChunkGenerator.java | 8 ++--- .../java/com/dfsek/terra/util/ConfigUtil.java | 5 ++- 4 files changed, 45 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/dfsek/terra/config/loaders/MaterialLoader.java b/src/main/java/com/dfsek/terra/config/loaders/MaterialLoader.java index a14ce463c..29313ded5 100644 --- a/src/main/java/com/dfsek/terra/config/loaders/MaterialLoader.java +++ b/src/main/java/com/dfsek/terra/config/loaders/MaterialLoader.java @@ -10,6 +10,6 @@ import java.lang.reflect.Type; public class MaterialLoader implements TypeLoader { @Override public Material load(Type type, Object o, ConfigLoader configLoader) throws LoadException { - return Material.getMaterial((String) o); + return Material.matchMaterial((String) o); } } diff --git a/src/main/java/com/dfsek/terra/config/templates/BiomeTemplate.java b/src/main/java/com/dfsek/terra/config/templates/BiomeTemplate.java index 2a9bb4516..1e5a8a111 100644 --- a/src/main/java/com/dfsek/terra/config/templates/BiomeTemplate.java +++ b/src/main/java/com/dfsek/terra/config/templates/BiomeTemplate.java @@ -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> slabPalettes; + + @Value("stair-palettes") + @Abstractable + @Default + private Map> stairPalettes; + + public double getSlabThreshold() { + return slabThreshold; + } + + public boolean doSlabs() { + return doSlabs; + } + + public Map> getSlabPalettes() { + return slabPalettes; + } + + public Map> getStairPalettes() { + return stairPalettes; + } + public BiomeTemplate(ConfigPack pack) { this.pack = pack; } diff --git a/src/main/java/com/dfsek/terra/generation/TerraChunkGenerator.java b/src/main/java/com/dfsek/terra/generation/TerraChunkGenerator.java index 68ba3b623..602821526 100644 --- a/src/main/java/com/dfsek/terra/generation/TerraChunkGenerator.java +++ b/src/main/java/com/dfsek/terra/generation/TerraChunkGenerator.java @@ -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)); diff --git a/src/main/java/com/dfsek/terra/util/ConfigUtil.java b/src/main/java/com/dfsek/terra/util/ConfigUtil.java index e5b4bf49d..4d985df7a 100644 --- a/src/main/java/com/dfsek/terra/util/ConfigUtil.java +++ b/src/main/java/com/dfsek/terra/util/ConfigUtil.java @@ -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()); } }