mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-08-29 13:20:32 +00:00
begin work on ores
This commit is contained in:
@@ -0,0 +1,21 @@
|
|||||||
|
package com.dfsek.terra.config.loaders;
|
||||||
|
|
||||||
|
import com.dfsek.tectonic.exception.LoadException;
|
||||||
|
import com.dfsek.tectonic.loading.ConfigLoader;
|
||||||
|
import com.dfsek.tectonic.loading.TypeLoader;
|
||||||
|
import com.dfsek.terra.generation.items.ores.OreConfig;
|
||||||
|
import org.polydev.gaea.math.Range;
|
||||||
|
|
||||||
|
import java.lang.reflect.Type;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
public class OreConfigLoader implements TypeLoader<OreConfig> {
|
||||||
|
@Override
|
||||||
|
public OreConfig load(Type type, Object o, ConfigLoader configLoader) throws LoadException {
|
||||||
|
Map<String, Integer> map = (Map<String, Integer>) o;
|
||||||
|
Range amount = new Range(map.get("min"), map.get("max"));
|
||||||
|
Range height = new Range(map.get("min-height"), map.get("max-height"));
|
||||||
|
return new OreConfig(amount, height);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
package com.dfsek.terra.config.loaders;
|
||||||
|
|
||||||
|
import com.dfsek.tectonic.exception.LoadException;
|
||||||
|
import com.dfsek.tectonic.loading.ConfigLoader;
|
||||||
|
import com.dfsek.tectonic.loading.TypeLoader;
|
||||||
|
import com.dfsek.terra.generation.items.ores.Ore;
|
||||||
|
|
||||||
|
import java.lang.reflect.Type;
|
||||||
|
|
||||||
|
public class OreTypeLoader implements TypeLoader<Ore.Type> {
|
||||||
|
@Override
|
||||||
|
public Ore.Type load(Type type, Object o, ConfigLoader configLoader) throws LoadException {
|
||||||
|
return Ore.Type.valueOf((String) o);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -10,6 +10,7 @@ import com.dfsek.terra.carving.UserDefinedCarver;
|
|||||||
import com.dfsek.terra.config.base.ConfigPack;
|
import com.dfsek.terra.config.base.ConfigPack;
|
||||||
import com.dfsek.terra.generation.items.flora.FloraLayer;
|
import com.dfsek.terra.generation.items.flora.FloraLayer;
|
||||||
import com.dfsek.terra.generation.items.ores.Ore;
|
import com.dfsek.terra.generation.items.ores.Ore;
|
||||||
|
import com.dfsek.terra.generation.items.ores.OreConfig;
|
||||||
import com.dfsek.terra.structure.TerraStructure;
|
import com.dfsek.terra.structure.TerraStructure;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.block.Biome;
|
import org.bukkit.block.Biome;
|
||||||
@@ -52,10 +53,10 @@ public class BiomeTemplate implements ConfigTemplate {
|
|||||||
@Value("noise-equation")
|
@Value("noise-equation")
|
||||||
@Abstractable
|
@Abstractable
|
||||||
private String noiseEquation;
|
private String noiseEquation;
|
||||||
//@Value("ores")
|
@Value("ores")
|
||||||
//@Abstractable
|
@Abstractable
|
||||||
//@Default
|
@Default
|
||||||
private List<Ore> ores = new GlueList<>();
|
private Map<Ore, OreConfig> ores = new HashMap<>();
|
||||||
@Value("ocean.level")
|
@Value("ocean.level")
|
||||||
@Abstractable
|
@Abstractable
|
||||||
@Default
|
@Default
|
||||||
@@ -174,7 +175,7 @@ public class BiomeTemplate implements ConfigTemplate {
|
|||||||
return noiseEquation;
|
return noiseEquation;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<Ore> getOres() {
|
public Map<Ore, OreConfig> getOres() {
|
||||||
return ores;
|
return ores;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,37 @@
|
|||||||
|
package com.dfsek.terra.config.templates.ore;
|
||||||
|
|
||||||
|
import com.dfsek.tectonic.annotations.Abstractable;
|
||||||
|
import com.dfsek.tectonic.annotations.Default;
|
||||||
|
import com.dfsek.tectonic.annotations.Value;
|
||||||
|
import com.dfsek.tectonic.config.ConfigTemplate;
|
||||||
|
import org.polydev.gaea.math.Range;
|
||||||
|
|
||||||
|
@SuppressWarnings({"FieldMayBeFinal", "unused"})
|
||||||
|
public class DeformedSphereOreTemplate implements ConfigTemplate {
|
||||||
|
|
||||||
|
@Value("radius.min")
|
||||||
|
@Abstractable
|
||||||
|
private Range size;
|
||||||
|
|
||||||
|
@Value("deform")
|
||||||
|
@Abstractable
|
||||||
|
@Default
|
||||||
|
private double deform = 0.75D;
|
||||||
|
|
||||||
|
@Value("deform-frequency")
|
||||||
|
@Abstractable
|
||||||
|
@Default
|
||||||
|
private double deformFrequency = 0.1D;
|
||||||
|
|
||||||
|
public double getDeform() {
|
||||||
|
return deform;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getDeformFrequency() {
|
||||||
|
return deformFrequency;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Range getSize() {
|
||||||
|
return size;
|
||||||
|
}
|
||||||
|
}
|
||||||
+4
-32
@@ -1,9 +1,10 @@
|
|||||||
package com.dfsek.terra.config.templates;
|
package com.dfsek.terra.config.templates.ore;
|
||||||
|
|
||||||
import com.dfsek.tectonic.annotations.Abstractable;
|
import com.dfsek.tectonic.annotations.Abstractable;
|
||||||
import com.dfsek.tectonic.annotations.Default;
|
import com.dfsek.tectonic.annotations.Default;
|
||||||
import com.dfsek.tectonic.annotations.Value;
|
import com.dfsek.tectonic.annotations.Value;
|
||||||
import com.dfsek.tectonic.config.ConfigTemplate;
|
import com.dfsek.tectonic.config.ConfigTemplate;
|
||||||
|
import com.dfsek.terra.generation.items.ores.Ore;
|
||||||
import org.bukkit.block.data.BlockData;
|
import org.bukkit.block.data.BlockData;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -17,23 +18,10 @@ public class OreTemplate implements ConfigTemplate {
|
|||||||
@Abstractable
|
@Abstractable
|
||||||
private BlockData material;
|
private BlockData material;
|
||||||
|
|
||||||
@Value("radius.min")
|
@Value("type")
|
||||||
@Abstractable
|
|
||||||
private double minRadius;
|
|
||||||
|
|
||||||
@Value("radius.max")
|
|
||||||
@Abstractable
|
|
||||||
private double maxRadius;
|
|
||||||
|
|
||||||
@Value("deform")
|
|
||||||
@Abstractable
|
@Abstractable
|
||||||
@Default
|
@Default
|
||||||
private double deform = 0.75D;
|
private Ore.Type oreType = Ore.Type.VANILLA;
|
||||||
|
|
||||||
@Value("deform-frequency")
|
|
||||||
@Abstractable
|
|
||||||
@Default
|
|
||||||
private double deformFrequency = 0.1D;
|
|
||||||
|
|
||||||
@Value("replace")
|
@Value("replace")
|
||||||
@Abstractable
|
@Abstractable
|
||||||
@@ -48,22 +36,6 @@ public class OreTemplate implements ConfigTemplate {
|
|||||||
return material;
|
return material;
|
||||||
}
|
}
|
||||||
|
|
||||||
public double getDeform() {
|
|
||||||
return deform;
|
|
||||||
}
|
|
||||||
|
|
||||||
public double getDeformFrequency() {
|
|
||||||
return deformFrequency;
|
|
||||||
}
|
|
||||||
|
|
||||||
public double getMaxRadius() {
|
|
||||||
return maxRadius;
|
|
||||||
}
|
|
||||||
|
|
||||||
public double getMinRadius() {
|
|
||||||
return minRadius;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<BlockData> getReplaceable() {
|
public List<BlockData> getReplaceable() {
|
||||||
return replaceable;
|
return replaceable;
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
package com.dfsek.terra.config.templates.ore;
|
||||||
|
|
||||||
|
import com.dfsek.tectonic.annotations.Abstractable;
|
||||||
|
import com.dfsek.tectonic.annotations.Value;
|
||||||
|
import org.polydev.gaea.math.Range;
|
||||||
|
|
||||||
|
@SuppressWarnings("unused")
|
||||||
|
public class VanillaOreTemplate {
|
||||||
|
@Value("size")
|
||||||
|
@Abstractable
|
||||||
|
private Range size;
|
||||||
|
|
||||||
|
public Range getSize() {
|
||||||
|
return size;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
package com.dfsek.terra.event;
|
|
||||||
|
|
||||||
import com.dfsek.terra.TerraWorld;
|
|
||||||
import com.dfsek.terra.generation.items.ores.Ore;
|
|
||||||
import org.bukkit.Location;
|
|
||||||
import org.bukkit.event.Cancellable;
|
|
||||||
|
|
||||||
public class OreVeinGenerateEvent extends TerraWorldEvent implements Cancellable {
|
|
||||||
private boolean cancelled;
|
|
||||||
private Ore ore;
|
|
||||||
|
|
||||||
public OreVeinGenerateEvent(TerraWorld tw, Location l, Ore ore) {
|
|
||||||
super(tw, l);
|
|
||||||
this.ore = ore;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Ore getConfig() {
|
|
||||||
return ore;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOre(Ore ore) {
|
|
||||||
this.ore = ore;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isCancelled() {
|
|
||||||
return cancelled;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setCancelled(boolean cancel) {
|
|
||||||
this.cancelled = cancel;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -3,19 +3,46 @@ package com.dfsek.terra.generation.items.ores;
|
|||||||
import org.bukkit.Chunk;
|
import org.bukkit.Chunk;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.block.Block;
|
||||||
import org.bukkit.block.data.BlockData;
|
import org.bukkit.block.data.BlockData;
|
||||||
|
import org.bukkit.util.Vector;
|
||||||
|
import org.polydev.gaea.math.FastNoiseLite;
|
||||||
import org.polydev.gaea.math.Range;
|
import org.polydev.gaea.math.Range;
|
||||||
|
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
public class DeformedSphereOre extends Ore {
|
public class DeformedSphereOre extends Ore {
|
||||||
public DeformedSphereOre(Range height, Range amount, BlockData material, Set<Material> replaceable, boolean applyGravity) {
|
private final double deform;
|
||||||
super(height, amount, material, replaceable, applyGravity);
|
private final double deformFrequency;
|
||||||
|
private final Range size;
|
||||||
|
|
||||||
|
public DeformedSphereOre(BlockData material, Set<Material> replaceable, boolean applyGravity, double deform, double deformFrequency, Range size) {
|
||||||
|
super(material, replaceable, applyGravity);
|
||||||
|
this.deform = deform;
|
||||||
|
this.deformFrequency = deformFrequency;
|
||||||
|
this.size = size;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void generate(Location origin, Chunk c, Random r) {
|
public void generate(Location origin, Chunk c, Random r) {
|
||||||
// TODO: implementation
|
FastNoiseLite ore = new FastNoiseLite(r.nextInt());
|
||||||
|
ore.setNoiseType(FastNoiseLite.NoiseType.OpenSimplex2);
|
||||||
|
ore.setFrequency(deformFrequency);
|
||||||
|
int rad = size.get(r);
|
||||||
|
for(int x = -rad; x <= rad; x++) {
|
||||||
|
for(int y = -rad; y <= rad; y++) {
|
||||||
|
for(int z = -rad; z <= rad; z++) {
|
||||||
|
Location oreLoc = origin.clone().add(new Vector(x, y, z));
|
||||||
|
if(oreLoc.getBlockX() > 15 || oreLoc.getBlockZ() > 15 || oreLoc.getBlockY() > 255 || oreLoc.getBlockX() < 0 || oreLoc.getBlockZ() < 0 || oreLoc.getBlockY() < 0)
|
||||||
|
continue;
|
||||||
|
if(oreLoc.distance(origin) < (rad + 0.5) * ((ore.getNoise(x, y, z) + 1) * deform)) {
|
||||||
|
Block b = c.getBlock(oreLoc.getBlockX(), oreLoc.getBlockY(), oreLoc.getBlockZ());
|
||||||
|
if(getReplaceable().contains(b.getType()) && b.getLocation().getY() >= 0)
|
||||||
|
b.setBlockData(getMaterial(), isApplyGravity());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,21 +4,18 @@ import org.bukkit.Chunk;
|
|||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.block.data.BlockData;
|
import org.bukkit.block.data.BlockData;
|
||||||
import org.polydev.gaea.math.Range;
|
|
||||||
|
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
public abstract class Ore {
|
public abstract class Ore {
|
||||||
private final Range height;
|
|
||||||
private final Range amount;
|
|
||||||
private final BlockData material;
|
private final BlockData material;
|
||||||
private final Set<Material> replaceable;
|
private final Set<Material> replaceable;
|
||||||
private final boolean applyGravity;
|
private final boolean applyGravity;
|
||||||
|
|
||||||
public Ore(Range height, Range amount, BlockData material, Set<Material> replaceable, boolean applyGravity) {
|
public Ore(BlockData material, Set<Material> replaceable, boolean applyGravity) {
|
||||||
this.height = height;
|
|
||||||
this.amount = amount;
|
|
||||||
this.material = material;
|
this.material = material;
|
||||||
this.replaceable = replaceable;
|
this.replaceable = replaceable;
|
||||||
this.applyGravity = applyGravity;
|
this.applyGravity = applyGravity;
|
||||||
@@ -26,14 +23,6 @@ public abstract class Ore {
|
|||||||
|
|
||||||
public abstract void generate(Location origin, Chunk c, Random r);
|
public abstract void generate(Location origin, Chunk c, Random r);
|
||||||
|
|
||||||
public Range getHeight() {
|
|
||||||
return height;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Range getAmount() {
|
|
||||||
return amount;
|
|
||||||
}
|
|
||||||
|
|
||||||
public BlockData getMaterial() {
|
public BlockData getMaterial() {
|
||||||
return material;
|
return material;
|
||||||
}
|
}
|
||||||
@@ -45,4 +34,8 @@ public abstract class Ore {
|
|||||||
public boolean isApplyGravity() {
|
public boolean isApplyGravity() {
|
||||||
return applyGravity;
|
return applyGravity;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public enum Type {
|
||||||
|
VANILLA, SPHERE
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,21 @@
|
|||||||
|
package com.dfsek.terra.generation.items.ores;
|
||||||
|
|
||||||
|
import org.polydev.gaea.math.Range;
|
||||||
|
|
||||||
|
public class OreConfig {
|
||||||
|
private final Range amount;
|
||||||
|
private final Range height;
|
||||||
|
|
||||||
|
public OreConfig(Range amount, Range height) {
|
||||||
|
this.amount = amount;
|
||||||
|
this.height = height;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Range getAmount() {
|
||||||
|
return amount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Range getHeight() {
|
||||||
|
return height;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -6,7 +6,6 @@ import org.bukkit.Location;
|
|||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
import org.bukkit.block.data.BlockData;
|
import org.bukkit.block.data.BlockData;
|
||||||
import org.polydev.gaea.math.Range;
|
|
||||||
|
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
@@ -15,8 +14,8 @@ import java.util.Set;
|
|||||||
public class VanillaOre extends Ore {
|
public class VanillaOre extends Ore {
|
||||||
private final double size;
|
private final double size;
|
||||||
|
|
||||||
public VanillaOre(Range height, Range amount, BlockData material, Set<Material> replaceable, boolean applyGravity, double size) {
|
public VanillaOre(BlockData material, Set<Material> replaceable, boolean applyGravity, double size) {
|
||||||
super(height, amount, material, replaceable, applyGravity);
|
super(material, replaceable, applyGravity);
|
||||||
this.size = size;
|
this.size = size;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,13 +4,9 @@ import com.dfsek.terra.TerraProfiler;
|
|||||||
import com.dfsek.terra.TerraWorld;
|
import com.dfsek.terra.TerraWorld;
|
||||||
import com.dfsek.terra.biome.UserDefinedBiome;
|
import com.dfsek.terra.biome.UserDefinedBiome;
|
||||||
import com.dfsek.terra.config.templates.BiomeTemplate;
|
import com.dfsek.terra.config.templates.BiomeTemplate;
|
||||||
import com.dfsek.terra.event.OreVeinGenerateEvent;
|
|
||||||
import com.dfsek.terra.generation.items.ores.Ore;
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.Chunk;
|
import org.bukkit.Chunk;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.util.Vector;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.polydev.gaea.biome.Biome;
|
import org.polydev.gaea.biome.Biome;
|
||||||
import org.polydev.gaea.generation.GenerationPhase;
|
import org.polydev.gaea.generation.GenerationPhase;
|
||||||
@@ -28,23 +24,16 @@ public class OrePopulator extends GaeaBlockPopulator {
|
|||||||
if(!tw.isSafe()) return;
|
if(!tw.isSafe()) return;
|
||||||
for(int cx = -1; cx <= 1; cx++) {
|
for(int cx = -1; cx <= 1; cx++) {
|
||||||
for(int cz = -1; cz <= 1; cz++) {
|
for(int cz = -1; cz <= 1; cz++) {
|
||||||
Biome b = TerraWorld.getWorld(world).getGrid().getBiome(((chunk.getX() + cx) << 4) + 8, ((chunk.getZ() + cz) << 4) + 8, GenerationPhase.POPULATE);
|
int originX = ((chunk.getX() + cx) << 4);
|
||||||
|
int originZ = ((chunk.getZ() + cz) << 4);
|
||||||
|
Biome b = TerraWorld.getWorld(world).getGrid().getBiome(originX + 8, originZ + 8, GenerationPhase.POPULATE);
|
||||||
BiomeTemplate config = ((UserDefinedBiome) b).getConfig();
|
BiomeTemplate config = ((UserDefinedBiome) b).getConfig();
|
||||||
for(Ore ore : config.getOres()) {
|
config.getOres().forEach((ore, oreConfig) -> {
|
||||||
int num = ore.getAmount().get(r);
|
int amount = oreConfig.getAmount().get(r);
|
||||||
for(int i = 0; i < num; i++) {
|
int h = oreConfig.getHeight().get(r);
|
||||||
int x = r.nextInt(16) + cx * 16;
|
for(int i = 0; i < amount; i++)
|
||||||
int z = r.nextInt(16) + cz * 16;
|
ore.generate(new Location(world, originX + r.nextInt(16), h, originZ + r.nextInt(16)), chunk, r);
|
||||||
int y = ore.getHeight().get(r);
|
});
|
||||||
|
|
||||||
Vector v = new Vector(x, y, z);
|
|
||||||
OreVeinGenerateEvent event = new OreVeinGenerateEvent(tw, v.toLocation(world), ore);
|
|
||||||
Bukkit.getPluginManager().callEvent(event);
|
|
||||||
if(!event.isCancelled()) {
|
|
||||||
ore.generate(new Location(world, x, y, z), chunk, r);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,6 +8,8 @@ import com.dfsek.terra.config.loaders.BlockDataLoader;
|
|||||||
import com.dfsek.terra.config.loaders.FloraLayerLoader;
|
import com.dfsek.terra.config.loaders.FloraLayerLoader;
|
||||||
import com.dfsek.terra.config.loaders.GridSpawnLoader;
|
import com.dfsek.terra.config.loaders.GridSpawnLoader;
|
||||||
import com.dfsek.terra.config.loaders.MaterialLoader;
|
import com.dfsek.terra.config.loaders.MaterialLoader;
|
||||||
|
import com.dfsek.terra.config.loaders.OreConfigLoader;
|
||||||
|
import com.dfsek.terra.config.loaders.OreTypeLoader;
|
||||||
import com.dfsek.terra.config.loaders.PaletteHolderLoader;
|
import com.dfsek.terra.config.loaders.PaletteHolderLoader;
|
||||||
import com.dfsek.terra.config.loaders.PaletteLayerLoader;
|
import com.dfsek.terra.config.loaders.PaletteLayerLoader;
|
||||||
import com.dfsek.terra.config.loaders.ProbabilityCollectionLoader;
|
import com.dfsek.terra.config.loaders.ProbabilityCollectionLoader;
|
||||||
@@ -15,6 +17,8 @@ import com.dfsek.terra.config.loaders.RangeLoader;
|
|||||||
import com.dfsek.terra.config.loaders.VanillaBiomeLoader;
|
import com.dfsek.terra.config.loaders.VanillaBiomeLoader;
|
||||||
import com.dfsek.terra.config.loaders.base.CarverPaletteLoader;
|
import com.dfsek.terra.config.loaders.base.CarverPaletteLoader;
|
||||||
import com.dfsek.terra.generation.items.flora.FloraLayer;
|
import com.dfsek.terra.generation.items.flora.FloraLayer;
|
||||||
|
import com.dfsek.terra.generation.items.ores.Ore;
|
||||||
|
import com.dfsek.terra.generation.items.ores.OreConfig;
|
||||||
import com.dfsek.terra.procgen.GridSpawn;
|
import com.dfsek.terra.procgen.GridSpawn;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.block.Biome;
|
import org.bukkit.block.Biome;
|
||||||
@@ -66,6 +70,8 @@ public final class ConfigUtil {
|
|||||||
.registerLoader(Biome.class, new VanillaBiomeLoader())
|
.registerLoader(Biome.class, new VanillaBiomeLoader())
|
||||||
.registerLoader(BlockData.class, new BlockDataLoader())
|
.registerLoader(BlockData.class, new BlockDataLoader())
|
||||||
.registerLoader(Material.class, new MaterialLoader())
|
.registerLoader(Material.class, new MaterialLoader())
|
||||||
.registerLoader(FloraLayer.class, new FloraLayerLoader());
|
.registerLoader(FloraLayer.class, new FloraLayerLoader())
|
||||||
|
.registerLoader(Ore.Type.class, new OreTypeLoader())
|
||||||
|
.registerLoader(OreConfig.class, new OreConfigLoader());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user