This commit is contained in:
dfsek 2021-06-23 10:48:57 -07:00
parent 24b8fc859c
commit e34e2dd0b2
33 changed files with 44 additions and 63 deletions

View File

@ -1,20 +1,14 @@
package com.dfsek.terra.api; package com.dfsek.terra.api;
import com.dfsek.terra.api.addons.TerraAddon; import com.dfsek.terra.api.addon.TerraAddon;
import com.dfsek.terra.api.config.ConfigPack;
import com.dfsek.terra.api.event.EventManager; import com.dfsek.terra.api.event.EventManager;
import com.dfsek.terra.api.handle.ItemHandle; import com.dfsek.terra.api.handle.ItemHandle;
import com.dfsek.terra.api.handle.WorldHandle; import com.dfsek.terra.api.handle.WorldHandle;
import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.profiler.Profiler;
import com.dfsek.terra.api.registry.CheckedRegistry; import com.dfsek.terra.api.registry.CheckedRegistry;
import com.dfsek.terra.api.registry.LockedRegistry; import com.dfsek.terra.api.registry.Registry;
import com.dfsek.terra.api.util.JarUtil; import com.dfsek.terra.api.world.World;
import com.dfsek.terra.api.util.logging.DebugLogger;
import com.dfsek.terra.api.util.logging.Logger;
import com.dfsek.terra.config.PluginConfig;
import com.dfsek.terra.config.lang.Language;
import com.dfsek.terra.config.pack.ConfigPack;
import com.dfsek.terra.profiler.Profiler;
import com.dfsek.terra.world.TerraWorld;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
@ -39,7 +33,7 @@ public interface TerraPlugin extends LoaderRegistrar {
CheckedRegistry<ConfigPack> getConfigRegistry(); CheckedRegistry<ConfigPack> getConfigRegistry();
LockedRegistry<TerraAddon> getAddons(); Registry<TerraAddon> getAddons();
boolean reload(); boolean reload();

View File

@ -1,7 +1,6 @@
package com.dfsek.terra.api.block; package com.dfsek.terra.api.block;
import com.dfsek.terra.api.vector.Vector3; import com.dfsek.terra.api.vector.Vector3;
import com.dfsek.terra.api.vector.Vector3Impl;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
public enum BlockFace { public enum BlockFace {

View File

@ -1,7 +1,7 @@
package com.dfsek.terra.api.event.events; package com.dfsek.terra.api.event.events;
import com.dfsek.terra.api.config.ConfigPack;
import com.dfsek.terra.api.event.annotations.Global; import com.dfsek.terra.api.event.annotations.Global;
import com.dfsek.terra.config.pack.ConfigPack;
/** /**
* An event with functionality directly linked to a {@link ConfigPack}. * An event with functionality directly linked to a {@link ConfigPack}.

View File

@ -2,8 +2,8 @@ package com.dfsek.terra.api.event.events.config;
import com.dfsek.tectonic.config.ConfigTemplate; import com.dfsek.tectonic.config.ConfigTemplate;
import com.dfsek.tectonic.exception.ConfigException; import com.dfsek.tectonic.exception.ConfigException;
import com.dfsek.terra.api.config.ConfigPack;
import com.dfsek.terra.api.event.events.PackEvent; import com.dfsek.terra.api.event.events.PackEvent;
import com.dfsek.terra.config.pack.ConfigPack;
/** /**
* An event related to the loading process of config packs. * An event related to the loading process of config packs.

View File

@ -1,7 +1,7 @@
package com.dfsek.terra.api.event.events.config; package com.dfsek.terra.api.event.events.config;
import com.dfsek.tectonic.config.ConfigTemplate; import com.dfsek.tectonic.config.ConfigTemplate;
import com.dfsek.terra.config.pack.ConfigPack; import com.dfsek.terra.api.config.ConfigPack;
/** /**
* Called when a config pack has finished loading. * Called when a config pack has finished loading.

View File

@ -1,8 +1,7 @@
package com.dfsek.terra.api.event.events.config; package com.dfsek.terra.api.event.events.config;
import com.dfsek.tectonic.config.ConfigTemplate; import com.dfsek.tectonic.config.ConfigTemplate;
import com.dfsek.tectonic.exception.ConfigException; import com.dfsek.terra.api.config.ConfigPack;
import com.dfsek.terra.config.pack.ConfigPack;
/** /**
* Called before a config pack's registries are filled. At this point, the pack manifest has been loaded, and all registries are empty. * Called before a config pack's registries are filled. At this point, the pack manifest has been loaded, and all registries are empty.

View File

@ -1,9 +1,8 @@
package com.dfsek.terra.api.event.events.world; package com.dfsek.terra.api.event.events.world;
import com.dfsek.terra.api.config.ConfigPack;
import com.dfsek.terra.api.event.events.PackEvent; import com.dfsek.terra.api.event.events.PackEvent;
import com.dfsek.terra.config.pack.ConfigPack;
import com.dfsek.terra.config.pack.WorldConfig;
import com.dfsek.terra.world.TerraWorld;
/** /**
* Called upon initialization of a TerraWorld. * Called upon initialization of a TerraWorld.

View File

@ -1,13 +1,12 @@
package com.dfsek.terra.api.event.events.world.generation; package com.dfsek.terra.api.event.events.world.generation;
import com.dfsek.terra.api.config.ConfigPack;
import com.dfsek.terra.api.event.events.PackEvent; import com.dfsek.terra.api.event.events.PackEvent;
import com.dfsek.terra.api.math.vector.Location;
import com.dfsek.terra.api.entity.Entity; import com.dfsek.terra.api.entity.Entity;
import com.dfsek.terra.api.structures.structure.buffer.items.BufferedEntity; import com.dfsek.terra.api.vector.Location;
import com.dfsek.terra.config.pack.ConfigPack;
/** /**
* Called when an entity is spawned via {@link BufferedEntity}. * Called when an entity is spawned.
*/ */
public class EntitySpawnEvent implements PackEvent { public class EntitySpawnEvent implements PackEvent {
private final ConfigPack pack; private final ConfigPack pack;

View File

@ -1,18 +1,15 @@
package com.dfsek.terra.api.event.events.world.generation; package com.dfsek.terra.api.event.events.world.generation;
import com.dfsek.terra.api.config.ConfigPack;
import com.dfsek.terra.api.event.events.AbstractCancellable; import com.dfsek.terra.api.event.events.AbstractCancellable;
import com.dfsek.terra.api.event.events.Cancellable; import com.dfsek.terra.api.event.events.Cancellable;
import com.dfsek.terra.api.event.events.PackEvent; import com.dfsek.terra.api.event.events.PackEvent;
import com.dfsek.terra.api.block.Block; import com.dfsek.terra.api.block.Block;
import com.dfsek.terra.api.block.state.Container; import com.dfsek.terra.api.block.state.Container;
import com.dfsek.terra.api.structures.loot.LootTable;
import com.dfsek.terra.api.structures.script.StructureScript;
import com.dfsek.terra.api.structures.structure.buffer.items.BufferedLootApplication;
import com.dfsek.terra.config.pack.ConfigPack;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
/** /**
* Called when loot is populated via {@link BufferedLootApplication}. * Called when loot is populated.
*/ */
public class LootPopulateEvent extends AbstractCancellable implements PackEvent, Cancellable { public class LootPopulateEvent extends AbstractCancellable implements PackEvent, Cancellable {
private final Block block; private final Block block;

View File

@ -1,7 +1,8 @@
package com.dfsek.terra.api.noise; package com.dfsek.terra.api.noise;
import com.dfsek.terra.api.math.vector.Vector2;
import com.dfsek.terra.api.math.vector.Vector3; import com.dfsek.terra.api.vector.Vector2;
import com.dfsek.terra.api.vector.Vector3;
public interface NoiseSampler { public interface NoiseSampler {
/** /**

View File

@ -1,7 +1,7 @@
package com.dfsek.terra.api.noise.normalizer; package com.dfsek.terra.api.noise.normalizer;
import com.dfsek.terra.api.math.MathUtil;
import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.noise.NoiseSampler;
import com.dfsek.terra.api.util.MathUtil;
import net.jafama.FastMath; import net.jafama.FastMath;
/** /**

View File

@ -5,11 +5,6 @@ import com.dfsek.paralithic.eval.parser.Parser;
import com.dfsek.paralithic.eval.parser.Scope; import com.dfsek.paralithic.eval.parser.Scope;
import com.dfsek.paralithic.eval.tokenizer.ParseException; import com.dfsek.paralithic.eval.tokenizer.ParseException;
import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.noise.NoiseSampler;
import com.dfsek.terra.api.math.paralithic.defined.UserDefinedFunction;
import com.dfsek.terra.api.math.paralithic.noise.NoiseFunction2;
import com.dfsek.terra.api.math.paralithic.noise.NoiseFunction3;
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
import com.dfsek.terra.config.loaders.config.function.FunctionTemplate;
import java.util.Map; import java.util.Map;

View File

@ -2,8 +2,8 @@ package com.dfsek.terra.api.noise.samplers.noise;
import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.noise.NoiseSampler;
import com.dfsek.terra.api.noise.samplers.noise.simplex.OpenSimplex2Sampler; import com.dfsek.terra.api.noise.samplers.noise.simplex.OpenSimplex2Sampler;
import com.dfsek.terra.api.math.vector.Vector2; import com.dfsek.terra.api.vector.Vector2;
import com.dfsek.terra.api.math.vector.Vector3; import com.dfsek.terra.api.vector.Vector3;
/** /**
* NoiseSampler implementation for Cellular (Voronoi/Worley) Noise. * NoiseSampler implementation for Cellular (Voronoi/Worley) Noise.

View File

@ -1,7 +1,7 @@
package com.dfsek.terra.api.transform.exception; package com.dfsek.terra.api.transform.exception;
import com.dfsek.terra.api.util.GlueList;
import java.util.ArrayList;
import java.util.List; import java.util.List;
public class AttemptsFailedException extends RuntimeException { public class AttemptsFailedException extends RuntimeException {
@ -14,6 +14,6 @@ public class AttemptsFailedException extends RuntimeException {
} }
public List<Throwable> getCauses() { public List<Throwable> getCauses() {
return new GlueList<>(causes); return new ArrayList<>(causes);
} }
} }

View File

@ -1,7 +1,7 @@
package com.dfsek.terra.api.util; package com.dfsek.terra.api.util;
import com.dfsek.terra.api.util.FastRandom; import com.dfsek.terra.api.util.FastRandom;
import com.dfsek.terra.world.generation.math.samplers.Sampler; import com.dfsek.terra.api.world.generator.Sampler;
import net.jafama.FastMath; import net.jafama.FastMath;
import java.util.List; import java.util.List;

View File

@ -8,7 +8,7 @@ import java.util.Set;
import java.util.function.Function; import java.util.function.Function;
public interface ProbabilityCollection<E> extends Collection<E> { public interface ProbabilityCollection<E> extends Collection<E> {
ProbabilityCollectionImpl<E> add(E item, int probability); ProbabilityCollection<E> add(E item, int probability);
E get(Random r); E get(Random r);
@ -16,7 +16,7 @@ public interface ProbabilityCollection<E> extends Collection<E> {
E get(NoiseSampler n, double x, double z); E get(NoiseSampler n, double x, double z);
<T> ProbabilityCollectionImpl<T> map(Function<E, T> mapper, boolean carryNull); <T> ProbabilityCollection<T> map(Function<E, T> mapper, boolean carryNull);
int getTotalProbability(); int getTotalProbability();

View File

@ -1,6 +1,7 @@
package com.dfsek.terra.api.world; package com.dfsek.terra.api.world;
import com.dfsek.terra.api.Handle; import com.dfsek.terra.api.Handle;
import com.dfsek.terra.api.world.biome.Biome;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
public interface BiomeGrid extends Handle { public interface BiomeGrid extends Handle {

View File

@ -1,9 +1,8 @@
package com.dfsek.terra.api.world; package com.dfsek.terra.api.world;
import com.dfsek.terra.api.math.Range; import com.dfsek.terra.api.util.Range;
import com.dfsek.terra.api.vector.Location; import com.dfsek.terra.api.vector.Location;
import com.dfsek.terra.api.block.Block; import com.dfsek.terra.api.block.Block;
import com.dfsek.terra.api.world.Chunk;
import java.util.List; import java.util.List;

View File

@ -2,7 +2,6 @@ package com.dfsek.terra.api.world;
import com.dfsek.terra.api.vector.Location; import com.dfsek.terra.api.vector.Location;
import com.dfsek.terra.api.util.collections.MaterialSet;
import java.util.Random; import java.util.Random;

View File

@ -1,7 +1,7 @@
package com.dfsek.terra.api.world.biome; package com.dfsek.terra.api.world.biome;
import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.noise.NoiseSampler;
import com.dfsek.terra.api.world.palette.Palette; import com.dfsek.terra.api.world.generator.Palette;
public interface Generator { public interface Generator {
/** /**

View File

@ -2,6 +2,7 @@ package com.dfsek.terra.api.world.biome;
import com.dfsek.terra.api.util.ProbabilityCollection; import com.dfsek.terra.api.util.ProbabilityCollection;
import com.dfsek.terra.api.world.World;
import java.util.Set; import java.util.Set;

View File

@ -1,7 +1,6 @@
package com.dfsek.terra.api.world.generator; package com.dfsek.terra.api.world.generator;
import com.dfsek.terra.api.Handle; import com.dfsek.terra.api.Handle;
import com.dfsek.terra.api.world.generation.TerraChunkGenerator;
public interface GeneratorWrapper extends Handle { public interface GeneratorWrapper extends Handle {
@Override @Override

View File

@ -1,4 +1,4 @@
package com.dfsek.terra.world.generation.math.samplers; package com.dfsek.terra.api.world.generator;
@FunctionalInterface @FunctionalInterface
public interface Sampler { public interface Sampler {

View File

@ -5,8 +5,6 @@ import com.dfsek.terra.api.config.ConfigPack;
import com.dfsek.terra.api.world.BiomeGrid; import com.dfsek.terra.api.world.BiomeGrid;
import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.world.World;
import com.dfsek.terra.api.world.biome.generation.BiomeProvider; 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;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import java.util.List; import java.util.List;

View File

@ -4,7 +4,7 @@ import com.dfsek.terra.api.util.MathUtil;
import com.dfsek.terra.api.world.generator.Palette; import com.dfsek.terra.api.world.generator.Palette;
import com.dfsek.terra.api.world.palette.slant.SlantHolder; import com.dfsek.terra.api.world.palette.slant.SlantHolder;
import com.dfsek.terra.config.templates.BiomeTemplate; import com.dfsek.terra.config.templates.BiomeTemplate;
import com.dfsek.terra.world.generation.math.samplers.Sampler; import com.dfsek.terra.api.world.generator.Sampler;
public final class PaletteUtil { public final class PaletteUtil {
public static Palette getPalette(int x, int y, int z, BiomeTemplate c, Sampler sampler) { public static Palette getPalette(int x, int y, int z, BiomeTemplate c, Sampler sampler) {

View File

@ -1,5 +1,6 @@
package com.dfsek.terra.api.world.biome; package com.dfsek.terra.api.world.biome;
import com.dfsek.terra.api.util.ProbabilityCollection;
import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.world.World;
import com.dfsek.terra.api.util.collections.ProbabilityCollectionImpl; import com.dfsek.terra.api.util.collections.ProbabilityCollectionImpl;
import com.dfsek.terra.config.templates.BiomeTemplate; import com.dfsek.terra.config.templates.BiomeTemplate;
@ -12,14 +13,14 @@ import java.util.Set;
*/ */
public class UserDefinedBiome implements TerraBiome { public class UserDefinedBiome implements TerraBiome {
private final WorldGenerator gen; private final WorldGenerator gen;
private final ProbabilityCollectionImpl<Biome> vanilla; private final ProbabilityCollection<Biome> vanilla;
private final String id; private final String id;
private final BiomeTemplate config; private final BiomeTemplate config;
private final int color; private final int color;
private final Set<String> tags; private final Set<String> tags;
public UserDefinedBiome(ProbabilityCollectionImpl<Biome> vanilla, WorldGenerator gen, BiomeTemplate config) { public UserDefinedBiome(ProbabilityCollection<Biome> vanilla, WorldGenerator gen, BiomeTemplate config) {
this.vanilla = vanilla; this.vanilla = vanilla;
this.gen = gen; this.gen = gen;
this.id = config.getID(); this.id = config.getID();
@ -35,7 +36,7 @@ public class UserDefinedBiome implements TerraBiome {
* @return Collection of biomes to represent the custom biome. * @return Collection of biomes to represent the custom biome.
*/ */
@Override @Override
public ProbabilityCollectionImpl<Biome> getVanillaBiomes() { public ProbabilityCollection<Biome> getVanillaBiomes() {
return vanilla; return vanilla;
} }

View File

@ -11,7 +11,7 @@ import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
import com.dfsek.terra.api.world.generator.Palette; import com.dfsek.terra.api.world.generator.Palette;
import com.dfsek.terra.config.pack.ConfigPackImpl; import com.dfsek.terra.config.pack.ConfigPackImpl;
import com.dfsek.terra.config.pack.WorldConfig; import com.dfsek.terra.config.pack.WorldConfig;
import com.dfsek.terra.world.generation.math.samplers.Sampler; import com.dfsek.terra.api.world.generator.Sampler;
import net.jafama.FastMath; import net.jafama.FastMath;
public class TerraWorld { public class TerraWorld {

View File

@ -20,7 +20,7 @@ import com.dfsek.terra.world.Carver;
import com.dfsek.terra.world.TerraWorld; import com.dfsek.terra.world.TerraWorld;
import com.dfsek.terra.world.carving.NoiseCarver; import com.dfsek.terra.world.carving.NoiseCarver;
import com.dfsek.terra.world.generation.math.SamplerCache; import com.dfsek.terra.world.generation.math.SamplerCache;
import com.dfsek.terra.world.generation.math.samplers.Sampler; import com.dfsek.terra.api.world.generator.Sampler;
import com.dfsek.terra.world.generation.math.samplers.Sampler2D; import com.dfsek.terra.world.generation.math.samplers.Sampler2D;
import com.dfsek.terra.world.population.CavePopulator; import com.dfsek.terra.world.population.CavePopulator;
import com.dfsek.terra.world.population.OrePopulator; import com.dfsek.terra.world.population.OrePopulator;

View File

@ -28,7 +28,7 @@ import com.dfsek.terra.api.profiler.ProfileFrame;
import com.dfsek.terra.world.Carver; import com.dfsek.terra.world.Carver;
import com.dfsek.terra.world.TerraWorld; import com.dfsek.terra.world.TerraWorld;
import com.dfsek.terra.world.carving.NoiseCarver; import com.dfsek.terra.world.carving.NoiseCarver;
import com.dfsek.terra.world.generation.math.samplers.Sampler; import com.dfsek.terra.api.world.generator.Sampler;
import com.dfsek.terra.world.generation.math.samplers.Sampler3D; import com.dfsek.terra.world.generation.math.samplers.Sampler3D;
import com.dfsek.terra.world.population.CavePopulator; import com.dfsek.terra.world.population.CavePopulator;
import com.dfsek.terra.world.population.FloraPopulator; import com.dfsek.terra.world.population.FloraPopulator;

View File

@ -3,7 +3,7 @@ package com.dfsek.terra.world.generation.math;
import com.dfsek.terra.api.TerraPlugin; import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.util.MathUtil; import com.dfsek.terra.api.util.MathUtil;
import com.dfsek.terra.world.TerraWorld; import com.dfsek.terra.world.TerraWorld;
import com.dfsek.terra.world.generation.math.samplers.Sampler; import com.dfsek.terra.api.world.generator.Sampler;
import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheBuilder;
import com.google.common.cache.CacheLoader; import com.google.common.cache.CacheLoader;
import com.google.common.cache.LoadingCache; import com.google.common.cache.LoadingCache;

View File

@ -2,6 +2,7 @@ package com.dfsek.terra.world.generation.math.samplers;
import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.world.World;
import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
import com.dfsek.terra.api.world.generator.Sampler;
import com.dfsek.terra.world.generation.math.interpolation.ChunkInterpolator2D; import com.dfsek.terra.world.generation.math.interpolation.ChunkInterpolator2D;
import com.dfsek.terra.world.generation.math.interpolation.ElevationInterpolator; import com.dfsek.terra.world.generation.math.interpolation.ElevationInterpolator;
import net.jafama.FastMath; import net.jafama.FastMath;

View File

@ -2,6 +2,7 @@ package com.dfsek.terra.world.generation.math.samplers;
import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.world.World;
import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
import com.dfsek.terra.api.world.generator.Sampler;
import com.dfsek.terra.world.generation.math.interpolation.ChunkInterpolator3D; import com.dfsek.terra.world.generation.math.interpolation.ChunkInterpolator3D;
import com.dfsek.terra.world.generation.math.interpolation.ElevationInterpolator; import com.dfsek.terra.world.generation.math.interpolation.ElevationInterpolator;
import net.jafama.FastMath; import net.jafama.FastMath;

View File

@ -94,8 +94,6 @@ public class TerraFlora implements Flora {
@Override @Override
public boolean plant(Location location) { public boolean plant(Location location) {
WorldHandle handle = main.getWorldHandle();
boolean doRotation = testRotation.size() > 0; boolean doRotation = testRotation.size() > 0;
int size = floraPalette.getSize(); int size = floraPalette.getSize();
int c = ceiling ? -1 : 1; int c = ceiling ? -1 : 1;