This commit is contained in:
dfsek
2021-11-17 16:28:40 -07:00
parent 172006f2f6
commit 3737e3510d
46 changed files with 133 additions and 152 deletions

View File

@@ -4,5 +4,5 @@ import com.dfsek.terra.api.util.StringIdentifiable;
public interface BaseAddon extends StringIdentifiable {
default void initialize() {}
default void initialize() { }
}

View File

@@ -1,15 +1,17 @@
package com.dfsek.terra.api.addon.bootstrap;
import com.dfsek.terra.api.addon.BaseAddon;
import java.nio.file.Path;
import com.dfsek.terra.api.addon.BaseAddon;
public interface BootstrapBaseAddon<T extends BaseAddon> extends BaseAddon {
/**
* Load all the relevant addons in the specified path.
*
* @param addonsFolder Path containing addons.
* @param parent
*
* @return Loaded addons
*/
Iterable<T> loadAddons(Path addonsFolder, ClassLoader parent);

View File

@@ -3,7 +3,6 @@ package com.dfsek.terra.api;
import java.io.File;
import com.dfsek.terra.api.addon.BaseAddon;
import com.dfsek.terra.api.addon.TerraAddon;
import com.dfsek.terra.api.config.ConfigPack;
import com.dfsek.terra.api.config.PluginConfig;
import com.dfsek.terra.api.event.EventManager;

View File

@@ -7,6 +7,7 @@ import com.dfsek.terra.api.registry.CheckedRegistry;
public interface AddonLoader {
/**
* Load all addons.
*
* @param platform TerraPlugin instance.
*/
void load(Platform platform, CheckedRegistry<Addon> addons);

View File

@@ -11,17 +11,17 @@ public interface EnumProperty<T extends Enum<T>> extends Property<T> {
static <T extends Enum<T>> EnumProperty<T> of(String name, Class<T> clazz) {
return new EnumProperty<>() {
private final Lazy<Collection<T>> constants = Lazy.lazy(() -> Arrays.asList(clazz.getEnumConstants()));
@Override
public Collection<T> values() {
return constants.value();
}
@Override
public Class<T> getType() {
return clazz;
}
@Override
public String getName() {
return name;

View File

@@ -5,13 +5,13 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
import com.dfsek.terra.api.util.StringIdentifiable;
import com.dfsek.terra.api.addon.TerraAddon;
import com.dfsek.terra.api.registry.CheckedRegistry;
import com.dfsek.terra.api.registry.meta.RegistryFactory;
import com.dfsek.terra.api.registry.meta.RegistryHolder;
import com.dfsek.terra.api.tectonic.LoaderHolder;
import com.dfsek.terra.api.tectonic.LoaderRegistrar;
import com.dfsek.terra.api.util.StringIdentifiable;
import com.dfsek.terra.api.util.reflection.TypeKey;
import com.dfsek.terra.api.world.World;
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;

View File

@@ -2,8 +2,8 @@ package com.dfsek.terra.api.config;
import java.util.Map;
import com.dfsek.terra.api.util.StringIdentifiable;
import com.dfsek.terra.api.registry.Registry;
import com.dfsek.terra.api.util.StringIdentifiable;
import com.dfsek.terra.api.world.World;
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
import com.dfsek.terra.api.world.generator.SamplerCache;

View File

@@ -1,7 +1,6 @@
package com.dfsek.terra.api.event.functional;
import com.dfsek.terra.api.addon.BaseAddon;
import com.dfsek.terra.api.addon.TerraAddon;
import com.dfsek.terra.api.event.EventHandler;
import com.dfsek.terra.api.event.events.Event;
import com.dfsek.terra.api.util.reflection.TypeKey;

View File

@@ -2,9 +2,9 @@ package com.dfsek.terra.api.structure;
import java.util.Random;
import com.dfsek.terra.api.util.StringIdentifiable;
import com.dfsek.terra.api.structure.buffer.Buffer;
import com.dfsek.terra.api.structure.rotation.Rotation;
import com.dfsek.terra.api.util.StringIdentifiable;
import com.dfsek.terra.api.util.vector.Vector3;
import com.dfsek.terra.api.world.Chunk;
import com.dfsek.terra.api.world.World;

View File

@@ -1,7 +1,5 @@
package com.dfsek.terra.api.structure.buffer.buffers;
import com.dfsek.terra.api.structure.buffer.items.Cell;
import net.jafama.FastMath;
import java.util.LinkedHashMap;
@@ -9,6 +7,7 @@ import java.util.Map;
import com.dfsek.terra.api.structure.buffer.Buffer;
import com.dfsek.terra.api.structure.buffer.BufferedItem;
import com.dfsek.terra.api.structure.buffer.items.Cell;
import com.dfsek.terra.api.util.vector.Vector3;
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.structure.configured;
import com.dfsek.terra.api.util.StringIdentifiable;
import com.dfsek.terra.api.structure.Structure;
import com.dfsek.terra.api.structure.StructureSpawn;
import com.dfsek.terra.api.util.Range;
import com.dfsek.terra.api.util.StringIdentifiable;
import com.dfsek.terra.api.util.collection.ProbabilityCollection;

View File

@@ -1,6 +1,14 @@
package com.dfsek.terra.api.structure.feature;
public interface Distributor {
static Distributor yes() {
return (x, z, seed) -> true;
}
static Distributor no() {
return (x, z, seed) -> false;
}
boolean matches(int x, int z, long seed);
default Distributor and(Distributor other) {
@@ -10,12 +18,4 @@ public interface Distributor {
default Distributor or(Distributor other) {
return (x, z, seed) -> this.matches(x, z, seed) || other.matches(x, z, seed);
}
static Distributor yes() {
return (x, z, seed) -> true;
}
static Distributor no() {
return (x, z, seed) -> false;
}
}

View File

@@ -16,8 +16,10 @@ public final class RotationUtil {
/**
* Rotate and mirror a coordinate pair.
* @param orig Vector to rotate.
*
* @param orig Vector to rotate.
* @param r Rotation
*
* @return
*/
public static Vector2 rotateVector(Vector2 orig, Rotation r) {

View File

@@ -1,10 +1,10 @@
package com.dfsek.terra.api.world;
import java.util.function.IntConsumer;
import com.dfsek.terra.api.block.state.BlockState;
import com.dfsek.terra.api.structure.feature.BinaryColumn;
import java.util.function.IntConsumer;
/**
* A single vertical column of a world.

View File

@@ -1,6 +1,5 @@
package com.dfsek.terra.api.world.generator;
import com.dfsek.terra.api.util.math.Sampler;
import org.jetbrains.annotations.NotNull;
import java.util.List;
@@ -9,6 +8,7 @@ import java.util.Random;
import com.dfsek.terra.api.Platform;
import com.dfsek.terra.api.block.state.BlockState;
import com.dfsek.terra.api.config.ConfigPack;
import com.dfsek.terra.api.util.math.Sampler;
import com.dfsek.terra.api.util.vector.Vector3;
import com.dfsek.terra.api.world.BiomeGrid;
import com.dfsek.terra.api.world.World;

View File

@@ -2,6 +2,7 @@ package com.dfsek.terra.api.world.generator;
import com.dfsek.terra.api.util.math.Sampler;
public interface SamplerCache {
Sampler get(int x, int z);

View File

@@ -13,6 +13,10 @@ import com.dfsek.terra.api.inject.impl.InjectorImpl;
* @param <T> Type of object to inject.
*/
public interface Injector<T> {
static <T1> Injector<T1> get(T1 value) {
return new InjectorImpl<>(value);
}
/**
* Add an explicit class as a target. Useful for applications where subclasses may cause issues with DI.
*
@@ -38,8 +42,4 @@ public interface Injector<T> {
* </ul>
*/
void inject(Object object) throws InjectionException;
static <T1> Injector<T1> get(T1 value) {
return new InjectorImpl<>(value);
}
}