more refactors, create platform module

This commit is contained in:
dfsek 2021-06-23 10:39:37 -07:00
parent 506f59f8af
commit 24b8fc859c
42 changed files with 178 additions and 109 deletions

View File

@ -163,7 +163,7 @@ public class Location implements Cloneable {
return hash;
}
public Vector3Impl toVector() {
public Vector3 toVector() {
return vector.clone();
}

View File

@ -38,7 +38,7 @@ public interface Vector2 extends Cloneable {
* @param other Vector to add
* @return Mutated vector, for chaining.
*/
Vector2 add(Vector2Impl other);
Vector2 add(Vector2 other);
/**
* Subtract a vector from this vector,
@ -46,7 +46,7 @@ public interface Vector2 extends Cloneable {
* @param other Vector to subtract
* @return Mutated vector, for chaining.
*/
Vector2 subtract(Vector2Impl other);
Vector2 subtract(Vector2 other);
/**
* Normalize this vector to length 1
@ -83,7 +83,7 @@ public interface Vector2 extends Cloneable {
* @param other Another vector
* @return Distance between vectors
*/
double distance(Vector2Impl other);
double distance(Vector2 other);
/**
* Get the squared distance between 2 vectors.
@ -91,7 +91,7 @@ public interface Vector2 extends Cloneable {
* @param other Another vector
* @return Squared distance
*/
double distanceSquared(Vector2Impl other);
double distanceSquared(Vector2 other);
Vector2 add(double x, double z);

View File

@ -95,7 +95,7 @@ public interface Vector3 extends Cloneable {
* @param o The other vector
* @return the distance
*/
double distance(@NotNull Vector3Impl o);
double distance(@NotNull Vector3 o);
/**
* Get the squared distance between this vector and another.
@ -103,7 +103,7 @@ public interface Vector3 extends Cloneable {
* @param o The other vector
* @return the distance
*/
double distanceSquared(@NotNull Vector3Impl o);
double distanceSquared(@NotNull Vector3 o);
/**
* Rotates the vector around a given arbitrary axis in 3 dimensional space.
@ -117,7 +117,7 @@ public interface Vector3 extends Cloneable {
*
* @param axis the axis to rotate the vector around. If the passed vector is
* not of length 1, it gets copied and normalized before using it for the
* rotation. Please use {@link Vector3Impl#normalize()} on the instance before
* rotation. Please use {@link Vector3#normalize()} on the instance before
* passing it to this method
* @param angle the angle to rotate the vector around the axis
* @return the same vector
@ -144,7 +144,7 @@ public interface Vector3 extends Cloneable {
* @throws IllegalArgumentException if the provided axis vector instance is
* null
*/
@NotNull Vector3 rotateAroundNonUnitAxis(@NotNull Vector3Impl axis, double angle) throws IllegalArgumentException;
@NotNull Vector3 rotateAroundNonUnitAxis(@NotNull Vector3 axis, double angle) throws IllegalArgumentException;
/**
* Calculates the dot product of this vector with another. The dot product
@ -153,7 +153,7 @@ public interface Vector3 extends Cloneable {
* @param other The other vector
* @return dot product
*/
double dot(@NotNull Vector3Impl other);
double dot(@NotNull Vector3 other);
Location toLocation(World world);
@ -161,5 +161,7 @@ public interface Vector3 extends Cloneable {
Vector3 subtract(int x, int y, int z);
Vector3 subtract(Vector3Impl end);
Vector3 subtract(Vector3 end);
public Vector3 clone();
}

View File

@ -7,7 +7,7 @@ import com.dfsek.terra.api.entity.Entity;
import com.dfsek.terra.api.entity.EntityType;
import com.dfsek.terra.api.world.generator.ChunkGenerator;
import com.dfsek.terra.api.world.generator.GeneratorWrapper;
import com.dfsek.terra.api.world.generation.TerraChunkGenerator;
import com.dfsek.terra.api.world.generator.TerraChunkGenerator;
public interface World extends Handle {
long getSeed();

View File

@ -1,4 +1,4 @@
package com.dfsek.terra.api.world.generation;
package com.dfsek.terra.api.world.generator;
/**
* Marker interface that marks a feature as "chunkified" (only modifying one chunk at a time)

View File

@ -0,0 +1,21 @@
package com.dfsek.terra.api.world.generator;
import com.dfsek.terra.api.block.BlockData;
import com.dfsek.terra.api.noise.NoiseSampler;
import com.dfsek.terra.api.util.ProbabilityCollection;
public interface Palette {
Palette add(BlockData m, int layers, NoiseSampler sampler);
Palette add(ProbabilityCollection<BlockData> m, int layers, NoiseSampler sampler);
/**
* Fetches a material from the palette, at a given layer.
*
* @param layer - The layer at which to fetch the material.
* @return BlockData - The material fetched.
*/
BlockData get(int layer, double x, double y, double z);
int getSize();
}

View File

@ -1,4 +1,4 @@
package com.dfsek.terra.api.world.generation;
package com.dfsek.terra.api.world.generator;
import com.dfsek.terra.api.world.Chunk;
import com.dfsek.terra.api.world.World;

View File

@ -1,9 +1,9 @@
package com.dfsek.terra.api.world.generation;
package com.dfsek.terra.api.world.generator;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.config.ConfigPack;
import com.dfsek.terra.api.world.BiomeGrid;
import com.dfsek.terra.api.world.World;
import com.dfsek.terra.api.world.generator.ChunkData;
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
import com.dfsek.terra.config.pack.ConfigPackImpl;
import com.dfsek.terra.world.generation.math.samplers.Sampler;
@ -17,17 +17,7 @@ public interface TerraChunkGenerator {
void generateBiomes(@NotNull World world, @NotNull Random random, int x, int z, @NotNull BiomeGrid biome);
boolean isParallelCapable();
boolean shouldGenerateCaves();
boolean shouldGenerateDecorations();
boolean shouldGenerateMobs();
boolean shouldGenerateStructures();
ConfigPackImpl getConfigPack();
ConfigPack getConfigPack();
TerraPlugin getMain();

View File

@ -40,9 +40,9 @@ public class GridSpawn {
zones.add(getChunkSpawn(xi, zi, seed));
}
}
Vector3Impl shortest = zones.get(0);
Vector3 shortest = zones.get(0);
Vector3 compare = new Vector3Impl(x, 0, z);
for(Vector3Impl v : zones) {
for(Vector3 v : zones) {
if(compare.distanceSquared(shortest) > compare.distanceSquared(v)) shortest = v.clone();
}
return shortest;

View File

@ -1,7 +1,7 @@
package com.dfsek.terra.api.util.world;
import com.dfsek.terra.api.util.MathUtil;
import com.dfsek.terra.api.world.palette.Palette;
import com.dfsek.terra.api.world.generator.Palette;
import com.dfsek.terra.api.world.palette.slant.SlantHolder;
import com.dfsek.terra.config.templates.BiomeTemplate;
import com.dfsek.terra.world.generation.math.samplers.Sampler;

View File

@ -5,7 +5,7 @@ import com.dfsek.terra.api.block.BlockData;
import java.util.List;
public class NoisePalette extends Palette {
public class NoisePalette extends PaletteImpl {
private final NoiseSampler sampler;
private final boolean is2D;

View File

@ -3,7 +3,9 @@ package com.dfsek.terra.api.world.palette;
import com.dfsek.terra.api.noise.NoiseSampler;
import com.dfsek.terra.api.block.BlockData;
import com.dfsek.terra.api.util.GlueList;
import com.dfsek.terra.api.util.ProbabilityCollection;
import com.dfsek.terra.api.util.collections.ProbabilityCollectionImpl;
import com.dfsek.terra.api.world.generator.Palette;
import java.util.List;
import java.util.Random;
@ -12,39 +14,34 @@ import java.util.Random;
* A class representation of a "slice" of the world.
* Used to get a section of blocks, based on the depth at which they are found.
*/
public abstract class Palette {
public abstract class PaletteImpl implements com.dfsek.terra.api.world.generator.Palette {
private final List<PaletteLayer> pallet = new GlueList<>();
/**
* Constructs a blank palette.
*/
public Palette() {
public PaletteImpl() {
}
public com.dfsek.terra.api.world.palette.Palette add(BlockData m, int layers, NoiseSampler sampler) {
@Override
public Palette add(BlockData m, int layers, NoiseSampler sampler) {
for(int i = 0; i < layers; i++) {
pallet.add(new PaletteLayer(m, sampler));
}
return this;
}
public com.dfsek.terra.api.world.palette.Palette add(ProbabilityCollectionImpl<BlockData> m, int layers, NoiseSampler sampler) {
@Override
public Palette add(ProbabilityCollection<BlockData> m, int layers, NoiseSampler sampler) {
for(int i = 0; i < layers; i++) {
pallet.add(new PaletteLayer(m, sampler));
}
return this;
}
/**
* Fetches a material from the palette, at a given layer.
*
* @param layer - The layer at which to fetch the material.
* @return BlockData - The material fetched.
*/
public abstract BlockData get(int layer, double x, double y, double z);
@Override
public int getSize() {
return pallet.size();
}
@ -58,7 +55,7 @@ public abstract class Palette {
*/
public static class PaletteLayer {
private final boolean col; // Is layer using a collection?
private ProbabilityCollectionImpl<BlockData> collection;
private ProbabilityCollection<BlockData> collection;
private final NoiseSampler sampler;
private BlockData m;
@ -68,7 +65,7 @@ public abstract class Palette {
* @param type The collection of materials to choose from.
* @param sampler Noise sampler to use
*/
public PaletteLayer(ProbabilityCollectionImpl<BlockData> type, NoiseSampler sampler) {
public PaletteLayer(ProbabilityCollection<BlockData> type, NoiseSampler sampler) {
this.sampler = sampler;
this.col = true;
this.collection = type;
@ -106,8 +103,21 @@ public abstract class Palette {
return m;
}
public ProbabilityCollectionImpl<BlockData> getCollection() {
public ProbabilityCollection<BlockData> getCollection() {
return collection;
}
}
public static class Singleton extends PaletteImpl {
private final BlockData item;
public Singleton(BlockData item) {
this.item = item;
}
@Override
public BlockData get(int layer, double x, double y, double z) {
return item;
}
}
}

View File

@ -1,16 +0,0 @@
package com.dfsek.terra.api.world.palette;
import com.dfsek.terra.api.block.BlockData;
public class SinglePalette extends Palette {
private final BlockData item;
public SinglePalette(BlockData item) {
this.item = item;
}
@Override
public BlockData get(int layer, double x, double y, double z) {
return item;
}
}

View File

@ -1,6 +1,6 @@
package com.dfsek.terra.api.world.palette.holder;
import com.dfsek.terra.api.world.palette.Palette;
import com.dfsek.terra.api.world.generator.Palette;
public class PaletteHolder {
private final Palette[] palettes;

View File

@ -1,6 +1,6 @@
package com.dfsek.terra.api.world.palette.holder;
import com.dfsek.terra.api.world.palette.Palette;
import com.dfsek.terra.api.world.generator.Palette;
import net.jafama.FastMath;
import java.util.Map;

View File

@ -1,6 +1,5 @@
package com.dfsek.terra.api.world.palette.slant;
import com.dfsek.terra.api.world.palette.Palette;
import com.dfsek.terra.api.world.palette.holder.PaletteHolder;
import java.util.TreeMap;

View File

@ -4,7 +4,7 @@ import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.noise.samplers.noise.random.WhiteNoiseSampler;
import com.dfsek.terra.api.world.Flora;
import com.dfsek.terra.api.world.palette.NoisePalette;
import com.dfsek.terra.api.world.palette.Palette;
import com.dfsek.terra.api.world.palette.PaletteImpl;
import com.dfsek.terra.api.world.palette.holder.PaletteLayerHolder;
import com.dfsek.terra.config.templates.FloraTemplate;
import com.dfsek.terra.world.population.items.flora.TerraFlora;
@ -12,7 +12,7 @@ import com.dfsek.terra.world.population.items.flora.TerraFlora;
public class FloraFactory implements ConfigFactory<FloraTemplate, Flora> {
@Override
public TerraFlora build(FloraTemplate config, TerraPlugin main) {
Palette palette = new NoisePalette(new WhiteNoiseSampler(2403), false);
PaletteImpl palette = new NoisePalette(new WhiteNoiseSampler(2403), false);
for(PaletteLayerHolder layer : config.getFloraPalette()) {
palette.add(layer.getLayer(), layer.getSize(), layer.getSampler());
}

View File

@ -1,8 +1,8 @@
package com.dfsek.terra.config.factories;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.world.generator.Palette;
import com.dfsek.terra.api.world.palette.NoisePalette;
import com.dfsek.terra.api.world.palette.Palette;
import com.dfsek.terra.api.world.palette.holder.PaletteLayerHolder;
import com.dfsek.terra.config.templates.PaletteTemplate;

View File

@ -3,7 +3,8 @@ package com.dfsek.terra.config.loaders.palette;
import com.dfsek.tectonic.exception.LoadException;
import com.dfsek.tectonic.loading.ConfigLoader;
import com.dfsek.tectonic.loading.TypeLoader;
import com.dfsek.terra.api.world.palette.Palette;
import com.dfsek.terra.api.world.generator.Palette;
import com.dfsek.terra.api.world.palette.PaletteImpl;
import com.dfsek.terra.api.world.palette.holder.PaletteHolder;
import com.dfsek.terra.api.world.palette.holder.PaletteHolderBuilder;
@ -19,7 +20,7 @@ public class PaletteHolderLoader implements TypeLoader<PaletteHolder> {
PaletteHolderBuilder builder = new PaletteHolderBuilder();
for(Map<String, Integer> layer : palette) {
for(Map.Entry<String, Integer> entry : layer.entrySet()) {
builder.add(entry.getValue(), (Palette) configLoader.loadType(Palette.class, entry.getKey()));
builder.add(entry.getValue(), (Palette) configLoader.loadType(PaletteImpl.class, entry.getKey()));
}
}
return builder.build();

View File

@ -19,8 +19,8 @@ import com.dfsek.terra.api.world.biome.Biome;
import com.dfsek.terra.api.util.GlueList;
import com.dfsek.terra.api.util.collections.ProbabilityCollectionImpl;
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
import com.dfsek.terra.api.world.palette.Palette;
import com.dfsek.terra.api.world.palette.SinglePalette;
import com.dfsek.terra.api.world.generator.Palette;
import com.dfsek.terra.api.world.palette.PaletteImpl;
import com.dfsek.terra.api.world.palette.holder.PaletteHolder;
import com.dfsek.terra.api.world.palette.slant.SlantHolder;
import com.dfsek.terra.carving.UserDefinedCarver;
@ -256,7 +256,7 @@ public class BiomeTemplate extends AbstractableTemplate implements ValidatedConf
return 2;
}
};
oceanPalette = new SinglePalette(main.getWorldHandle().createBlockData("minecraft:water"));
oceanPalette = new PaletteImpl.Singleton(main.getWorldHandle().createBlockData("minecraft:water"));
}
public Map<BlockType, Palette> getSlabPalettes() {

View File

@ -7,7 +7,7 @@ import com.dfsek.terra.api.config.ConfigPack;
import com.dfsek.terra.api.registry.OpenRegistry;
import com.dfsek.terra.api.world.Tree;
import com.dfsek.terra.api.world.Flora;
import com.dfsek.terra.api.world.palette.Palette;
import com.dfsek.terra.api.world.palette.PaletteImpl;
import com.dfsek.terra.carving.UserDefinedCarver;
import com.dfsek.terra.config.builder.BiomeBuilder;
import com.dfsek.terra.config.factories.BiomeFactory;
@ -42,7 +42,7 @@ public class ConfigTypeRegistry extends OpenRegistryImpl<ConfigType<?, ?>> {
public ConfigTypeRegistry(ConfigPackImpl pack, TerraPlugin main, BiConsumer<String, ConfigType<?, ?>> callback) {
super(new LinkedHashMap<>()); // Ordered
this.callback = callback;
add("PALETTE", new ConfigBuilder<>(new PaletteFactory(), PaletteTemplate::new, Palette.class, () -> new PaletteRegistry(main)));
add("PALETTE", new ConfigBuilder<>(new PaletteFactory(), PaletteTemplate::new, PaletteImpl.class, () -> new PaletteRegistry(main)));
add("ORE", new ConfigBuilder<>(new OreFactory(), OreTemplate::new, Ore.class, OreRegistry::new));
add("FLORA", new ConfigBuilder<>(new FloraFactory(), FloraTemplate::new, Flora.class, () -> new FloraRegistry(main)));
add("CARVER", new ConfigBuilder<>(new CarverFactory(pack), CarverTemplate::new, UserDefinedCarver.class, CarverRegistry::new));

View File

@ -1,8 +1,8 @@
package com.dfsek.terra.registry.config;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.world.palette.Palette;
import com.dfsek.terra.api.world.palette.SinglePalette;
import com.dfsek.terra.api.world.generator.Palette;
import com.dfsek.terra.api.world.palette.PaletteImpl;
import com.dfsek.terra.registry.OpenRegistryImpl;
public class PaletteRegistry extends OpenRegistryImpl<Palette> {
@ -15,7 +15,7 @@ public class PaletteRegistry extends OpenRegistryImpl<Palette> {
@Override
public Palette get(String identifier) {
if(identifier.startsWith("BLOCK:"))
return new SinglePalette(main.getWorldHandle().createBlockData(identifier.substring(6))); // Return single palette for BLOCK: shortcut.
return new PaletteImpl.Singleton(main.getWorldHandle().createBlockData(identifier.substring(6))); // Return single palette for BLOCK: shortcut.
return super.get(identifier);
}
}

View File

@ -8,7 +8,7 @@ import com.dfsek.terra.api.block.BlockData;
import com.dfsek.terra.api.world.World;
import com.dfsek.terra.api.world.biome.UserDefinedBiome;
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
import com.dfsek.terra.api.world.palette.Palette;
import com.dfsek.terra.api.world.generator.Palette;
import com.dfsek.terra.config.pack.ConfigPackImpl;
import com.dfsek.terra.config.pack.WorldConfig;
import com.dfsek.terra.world.generation.math.samplers.Sampler;

View File

@ -2,7 +2,7 @@ package com.dfsek.terra.world.generation;
import com.dfsek.terra.api.noise.NoiseSampler;
import com.dfsek.terra.api.world.biome.Generator;
import com.dfsek.terra.api.world.palette.Palette;
import com.dfsek.terra.api.world.generator.Palette;
import com.dfsek.terra.api.world.palette.holder.PaletteHolder;
import com.dfsek.terra.api.world.palette.slant.SlantHolder;

View File

@ -10,9 +10,9 @@ import com.dfsek.terra.api.util.world.PaletteUtil;
import com.dfsek.terra.api.world.biome.TerraBiome;
import com.dfsek.terra.api.world.biome.UserDefinedBiome;
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
import com.dfsek.terra.api.world.generation.TerraBlockPopulator;
import com.dfsek.terra.api.world.generation.TerraChunkGenerator;
import com.dfsek.terra.api.world.palette.Palette;
import com.dfsek.terra.api.world.generator.Palette;
import com.dfsek.terra.api.world.generator.TerraBlockPopulator;
import com.dfsek.terra.api.world.generator.TerraChunkGenerator;
import com.dfsek.terra.config.pack.ConfigPackImpl;
import com.dfsek.terra.config.templates.BiomeTemplate;
import com.dfsek.terra.api.profiler.ProfileFrame;

View File

@ -3,6 +3,7 @@ package com.dfsek.terra.world.generation.generators;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.math.range.ConstantRange;
import com.dfsek.terra.api.vector.Vector3;
import com.dfsek.terra.api.world.generator.Palette;
import com.dfsek.terra.config.pack.ConfigPackImpl;
import com.dfsek.terra.vector.Vector3Impl;
import com.dfsek.terra.api.block.BlockData;
@ -19,10 +20,9 @@ import com.dfsek.terra.api.util.world.PaletteUtil;
import com.dfsek.terra.api.world.biome.TerraBiome;
import com.dfsek.terra.api.world.biome.UserDefinedBiome;
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
import com.dfsek.terra.api.world.generation.TerraBlockPopulator;
import com.dfsek.terra.api.world.generation.TerraChunkGenerator;
import com.dfsek.terra.api.world.palette.Palette;
import com.dfsek.terra.api.world.palette.SinglePalette;
import com.dfsek.terra.api.world.generator.TerraBlockPopulator;
import com.dfsek.terra.api.world.generator.TerraChunkGenerator;
import com.dfsek.terra.api.world.palette.PaletteImpl;
import com.dfsek.terra.config.templates.BiomeTemplate;
import com.dfsek.terra.api.profiler.ProfileFrame;
import com.dfsek.terra.world.Carver;
@ -46,7 +46,7 @@ public class DefaultChunkGenerator3D implements TerraChunkGenerator {
private final ConfigPackImpl configPack;
private final TerraPlugin main;
private final BlockType water;
private final SinglePalette blank;
private final PaletteImpl.Singleton blank;
private final List<TerraBlockPopulator> blockPopulators = new ArrayList<>();
private final Carver carver;
@ -63,7 +63,7 @@ public class DefaultChunkGenerator3D implements TerraChunkGenerator {
carver = new NoiseCarver(new ConstantRange(0, 255), main.getWorldHandle().createBlockData("minecraft:air"), main);
water = main.getWorldHandle().createBlockData("minecraft:water").getBlockType();
blank = new SinglePalette(main.getWorldHandle().createBlockData("minecraft:air"));
blank = new PaletteImpl.Singleton(main.getWorldHandle().createBlockData("minecraft:air"));
}
@Override

View File

@ -9,8 +9,8 @@ import com.dfsek.terra.api.handle.WorldHandle;
import com.dfsek.terra.api.world.Chunk;
import com.dfsek.terra.api.world.World;
import com.dfsek.terra.api.util.world.PopulationUtil;
import com.dfsek.terra.api.world.generation.Chunkified;
import com.dfsek.terra.api.world.generation.TerraBlockPopulator;
import com.dfsek.terra.api.world.generator.Chunkified;
import com.dfsek.terra.api.world.generator.TerraBlockPopulator;
import com.dfsek.terra.carving.UserDefinedCarver;
import com.dfsek.terra.config.pack.WorldConfig;
import com.dfsek.terra.config.templates.CarverTemplate;

View File

@ -8,7 +8,7 @@ import com.dfsek.terra.api.world.World;
import com.dfsek.terra.api.util.world.PopulationUtil;
import com.dfsek.terra.api.world.biome.UserDefinedBiome;
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
import com.dfsek.terra.api.world.generation.TerraBlockPopulator;
import com.dfsek.terra.api.world.generator.TerraBlockPopulator;
import com.dfsek.terra.api.profiler.ProfileFrame;
import com.dfsek.terra.world.TerraWorld;
import com.dfsek.terra.world.population.items.flora.FloraLayer;

View File

@ -8,7 +8,7 @@ import com.dfsek.terra.api.world.World;
import com.dfsek.terra.api.util.FastRandom;
import com.dfsek.terra.api.world.biome.TerraBiome;
import com.dfsek.terra.api.world.biome.UserDefinedBiome;
import com.dfsek.terra.api.world.generation.TerraBlockPopulator;
import com.dfsek.terra.api.world.generator.TerraBlockPopulator;
import com.dfsek.terra.config.templates.BiomeTemplate;
import com.dfsek.terra.api.profiler.ProfileFrame;
import com.dfsek.terra.world.TerraWorld;

View File

@ -9,8 +9,8 @@ import com.dfsek.terra.api.structure.rotation.Rotation;
import com.dfsek.terra.api.util.FastRandom;
import com.dfsek.terra.api.world.biome.UserDefinedBiome;
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
import com.dfsek.terra.api.world.generation.Chunkified;
import com.dfsek.terra.api.world.generation.TerraBlockPopulator;
import com.dfsek.terra.api.world.generator.Chunkified;
import com.dfsek.terra.api.world.generator.TerraBlockPopulator;
import com.dfsek.terra.config.pack.WorldConfig;
import com.dfsek.terra.api.profiler.ProfileFrame;
import com.dfsek.terra.world.TerraWorld;

View File

@ -7,7 +7,7 @@ import com.dfsek.terra.api.world.World;
import com.dfsek.terra.api.util.world.PopulationUtil;
import com.dfsek.terra.api.world.biome.UserDefinedBiome;
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
import com.dfsek.terra.api.world.generation.TerraBlockPopulator;
import com.dfsek.terra.api.world.generator.TerraBlockPopulator;
import com.dfsek.terra.api.profiler.ProfileFrame;
import com.dfsek.terra.world.TerraWorld;
import com.dfsek.terra.world.population.items.tree.TreeLayer;

View File

@ -15,7 +15,7 @@ import com.dfsek.terra.api.util.FastRandom;
import com.dfsek.terra.api.util.GlueList;
import com.dfsek.terra.api.util.collections.MaterialSet;
import com.dfsek.terra.api.world.Flora;
import com.dfsek.terra.api.world.palette.Palette;
import com.dfsek.terra.api.world.generator.Palette;
import net.jafama.FastMath;
import java.util.ArrayList;

View File

@ -0,0 +1,60 @@
import com.dfsek.terra.configureCompilation
import com.dfsek.terra.configureDependencies
plugins {
`java-library`
`maven-publish`
idea
}
configureCompilation()
configureDependencies()
group = "com.dfsek.terra.common"
dependencies {
"shadedApi"(project(":common:api"))
"shadedApi"(project(":common:implementation"))
"shadedApi"("org.apache.commons:commons-rng-core:1.3")
"shadedApi"("commons-io:commons-io:2.4")
"shadedApi"("com.dfsek:Paralithic:0.3.2")
"shadedApi"("com.dfsek:Tectonic:1.4.0")
"shadedApi"("net.jafama:jafama:2.3.2")
"shadedApi"("org.yaml:snakeyaml:1.27")
"shadedApi"("org.ow2.asm:asm:9.0")
"shadedApi"("commons-io:commons-io:2.6")
"shadedApi"("com.googlecode.json-simple:json-simple:1.1.1")
"shadedApi"("org.yaml:snakeyaml:1.27")
"compileOnly"("com.google.guava:guava:30.0-jre")
"testImplementation"("com.google.guava:guava:30.0-jre")
}
publishing {
publications {
create<MavenPublication>("mavenJava") {
artifact(tasks["sourcesJar"])
artifact(tasks["jar"])
}
}
repositories {
val mavenUrl = "https://repo.codemc.io/repository/maven-releases/"
val mavenSnapshotUrl = "https://repo.codemc.io/repository/maven-snapshots/"
maven(mavenUrl) {
val mavenUsername: String? by project
val mavenPassword: String? by project
if (mavenUsername != null && mavenPassword != null) {
credentials {
username = mavenUsername
password = mavenPassword
}
}
}
}
}

View File

@ -22,7 +22,7 @@ import com.dfsek.terra.api.registry.LockedRegistry;
import com.dfsek.terra.api.util.logging.DebugLogger;
import com.dfsek.terra.api.util.logging.JavaLogger;
import com.dfsek.terra.api.util.logging.Logger;
import com.dfsek.terra.api.world.generation.TerraChunkGenerator;
import com.dfsek.terra.api.world.generator.TerraChunkGenerator;
import com.dfsek.terra.bukkit.command.BukkitCommandAdapter;
import com.dfsek.terra.bukkit.command.FixChunkCommand;
import com.dfsek.terra.bukkit.command.SaveDataCommand;

View File

@ -3,7 +3,7 @@ package com.dfsek.terra.bukkit.generator;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.world.Chunk;
import com.dfsek.terra.api.world.generator.GeneratorWrapper;
import com.dfsek.terra.api.world.generation.TerraChunkGenerator;
import com.dfsek.terra.api.world.generator.TerraChunkGenerator;
import com.dfsek.terra.bukkit.population.PopulationManager;
import com.dfsek.terra.bukkit.world.BukkitAdapter;
import com.dfsek.terra.bukkit.world.BukkitBiomeGrid;

View File

@ -1,8 +1,7 @@
package com.dfsek.terra.bukkit.generator;
import com.dfsek.terra.api.world.generation.Chunkified;
import com.dfsek.terra.api.world.generation.TerraBlockPopulator;
import com.dfsek.terra.api.world.generation.TerraChunkGenerator;
import com.dfsek.terra.api.world.generator.Chunkified;
import com.dfsek.terra.api.world.generator.TerraChunkGenerator;
import com.dfsek.terra.bukkit.world.BukkitAdapter;
import org.bukkit.Chunk;
import org.bukkit.World;

View File

@ -4,8 +4,8 @@ import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.world.Chunk;
import com.dfsek.terra.api.world.World;
import com.dfsek.terra.api.util.FastRandom;
import com.dfsek.terra.api.world.generation.Chunkified;
import com.dfsek.terra.api.world.generation.TerraChunkGenerator;
import com.dfsek.terra.api.world.generator.Chunkified;
import com.dfsek.terra.api.world.generator.TerraChunkGenerator;
import com.dfsek.terra.bukkit.TerraBukkitPlugin;
import com.dfsek.terra.bukkit.world.BukkitAdapter;
import com.dfsek.terra.api.profiler.ProfileFrame;

View File

@ -5,8 +5,8 @@ import com.dfsek.terra.api.world.World;
import com.dfsek.terra.api.world.generator.ChunkData;
import com.dfsek.terra.api.world.generator.GeneratorWrapper;
import com.dfsek.terra.api.util.FastRandom;
import com.dfsek.terra.api.world.generation.Chunkified;
import com.dfsek.terra.api.world.generation.TerraChunkGenerator;
import com.dfsek.terra.api.world.generator.Chunkified;
import com.dfsek.terra.api.world.generator.TerraChunkGenerator;
import com.dfsek.terra.api.world.locate.AsyncStructureFinder;
import com.dfsek.terra.config.pack.ConfigPackImpl;
import com.dfsek.terra.fabric.TerraFabricPlugin;

View File

@ -2,7 +2,7 @@ package com.dfsek.terra.fabric.generation;
import com.dfsek.terra.api.world.Chunk;
import com.dfsek.terra.api.world.World;
import com.dfsek.terra.api.world.generation.Chunkified;
import com.dfsek.terra.api.world.generator.Chunkified;
import com.mojang.serialization.Codec;
import net.minecraft.world.StructureWorldAccess;
import net.minecraft.world.gen.chunk.ChunkGenerator;

View File

@ -8,7 +8,7 @@ import com.dfsek.terra.api.world.Chunk;
import com.dfsek.terra.api.world.World;
import com.dfsek.terra.api.world.generator.ChunkGenerator;
import com.dfsek.terra.api.world.generator.GeneratorWrapper;
import com.dfsek.terra.api.world.generation.TerraChunkGenerator;
import com.dfsek.terra.api.world.generator.TerraChunkGenerator;
import com.dfsek.terra.fabric.block.FabricBlock;
import com.dfsek.terra.fabric.generation.FabricChunkGeneratorWrapper;
import net.minecraft.server.world.ServerWorld;

View File

@ -8,7 +8,7 @@ import com.dfsek.terra.api.world.Chunk;
import com.dfsek.terra.api.world.World;
import com.dfsek.terra.api.world.generator.ChunkGenerator;
import com.dfsek.terra.api.world.generator.GeneratorWrapper;
import com.dfsek.terra.api.world.generation.TerraChunkGenerator;
import com.dfsek.terra.api.world.generator.TerraChunkGenerator;
import com.dfsek.terra.fabric.block.FabricBlock;
import com.dfsek.terra.fabric.generation.FabricChunkGeneratorWrapper;
import net.minecraft.server.world.ServerWorld;

View File

@ -10,6 +10,9 @@
rootProject.name = "Terra"
include("common:api")
include("common:implementation")
include("common:platform")
include("platforms:bukkit")
include("platforms:fabric")
include("platforms:region")