refactor API

This commit is contained in:
dfsek
2021-02-22 16:13:53 -07:00
parent 46a08e49f5
commit a328ff2f2a
177 changed files with 399 additions and 311 deletions

View File

@@ -1,7 +1,7 @@
package com.dfsek.terra.addons.loading;
package com.dfsek.terra.addon;
import com.dfsek.terra.addons.addon.TerraAddon;
import com.dfsek.terra.addons.annotations.Addon;
import com.dfsek.terra.api.addons.TerraAddon;
import com.dfsek.terra.api.addons.annotations.Addon;
import java.io.File;
import java.io.IOException;

View File

@@ -1,6 +1,6 @@
package com.dfsek.terra.addons.loading.pre;
package com.dfsek.terra.addon;
import com.dfsek.terra.addons.loading.AddonLoadException;
import com.dfsek.terra.addon.exception.AddonLoadException;
import java.util.HashMap;
import java.util.HashSet;

View File

@@ -1,11 +1,11 @@
package com.dfsek.terra.addons.loading.pre;
package com.dfsek.terra.addon;
import com.dfsek.terra.addons.addon.TerraAddon;
import com.dfsek.terra.addons.annotations.Addon;
import com.dfsek.terra.addons.annotations.Depends;
import com.dfsek.terra.addons.loading.AddonLoadException;
import com.dfsek.terra.addons.loading.pre.exception.CircularDependencyException;
import com.dfsek.terra.addons.loading.pre.exception.DependencyMissingException;
import com.dfsek.terra.addon.exception.AddonLoadException;
import com.dfsek.terra.addon.exception.CircularDependencyException;
import com.dfsek.terra.addon.exception.DependencyMissingException;
import com.dfsek.terra.api.addons.TerraAddon;
import com.dfsek.terra.api.addons.annotations.Addon;
import com.dfsek.terra.api.addons.annotations.Depends;
import java.util.ArrayList;
import java.util.Arrays;

View File

@@ -1,4 +1,4 @@
package com.dfsek.terra.addons.loading;
package com.dfsek.terra.addon.exception;
public class AddonLoadException extends Exception {
private static final long serialVersionUID = -4949084729296580176L;

View File

@@ -1,6 +1,4 @@
package com.dfsek.terra.addons.loading.pre.exception;
import com.dfsek.terra.addons.loading.AddonLoadException;
package com.dfsek.terra.addon.exception;
public class CircularDependencyException extends AddonLoadException {
private static final long serialVersionUID = 7398510879124125121L;

View File

@@ -1,6 +1,4 @@
package com.dfsek.terra.addons.loading.pre.exception;
import com.dfsek.terra.addons.loading.AddonLoadException;
package com.dfsek.terra.addon.exception;
public class DependencyMissingException extends AddonLoadException {
private static final long serialVersionUID = -8419489102208521583L;

View File

@@ -1,22 +1,24 @@
package com.dfsek.terra.api.core;
package com.dfsek.terra.api;
import com.dfsek.terra.addons.addon.TerraAddon;
import com.dfsek.terra.api.LoaderRegistrar;
import com.dfsek.terra.api.core.event.EventManager;
import com.dfsek.terra.api.addons.TerraAddon;
import com.dfsek.terra.api.event.EventManager;
import com.dfsek.terra.api.platform.handle.ItemHandle;
import com.dfsek.terra.api.platform.handle.WorldHandle;
import com.dfsek.terra.api.platform.world.World;
import com.dfsek.terra.api.registry.CheckedRegistry;
import com.dfsek.terra.api.registry.LockedRegistry;
import com.dfsek.terra.api.util.DebugLogger;
import com.dfsek.terra.config.PluginConfig;
import com.dfsek.terra.config.lang.Language;
import com.dfsek.terra.config.pack.ConfigPack;
import com.dfsek.terra.debug.DebugLogger;
import com.dfsek.terra.registry.CheckedRegistry;
import com.dfsek.terra.registry.LockedRegistry;
import com.dfsek.terra.world.TerraWorld;
import java.io.File;
import java.util.logging.Logger;
/**
* Represents a Terra mod/plugin instance.
*/
public interface TerraPlugin extends LoaderRegistrar {
WorldHandle getWorldHandle();

View File

@@ -1,9 +1,9 @@
package com.dfsek.terra.addons.addon;
package com.dfsek.terra.api.addons;
import com.dfsek.terra.addons.annotations.Addon;
import com.dfsek.terra.addons.annotations.Author;
import com.dfsek.terra.addons.annotations.Version;
import com.dfsek.terra.api.addons.annotations.Addon;
import com.dfsek.terra.api.addons.annotations.Author;
import com.dfsek.terra.api.addons.annotations.Version;
import org.jetbrains.annotations.NotNull;
public abstract class TerraAddon {

View File

@@ -1,4 +1,4 @@
package com.dfsek.terra.addons.annotations;
package com.dfsek.terra.api.addons.annotations;
import org.jetbrains.annotations.NotNull;

View File

@@ -1,4 +1,4 @@
package com.dfsek.terra.addons.annotations;
package com.dfsek.terra.api.addons.annotations;
import org.jetbrains.annotations.NotNull;

View File

@@ -1,4 +1,4 @@
package com.dfsek.terra.addons.annotations;
package com.dfsek.terra.api.addons.annotations;
import org.jetbrains.annotations.NotNull;

View File

@@ -1,4 +1,4 @@
package com.dfsek.terra.addons.annotations;
package com.dfsek.terra.api.addons.annotations;
import org.jetbrains.annotations.NotNull;

View File

@@ -1,4 +0,0 @@
package com.dfsek.terra.api.core.event;
public interface EventListener {
}

View File

@@ -1,4 +0,0 @@
package com.dfsek.terra.api.core.event.events;
public interface Event {
}

View File

@@ -0,0 +1,4 @@
package com.dfsek.terra.api.event;
public interface EventListener {
}

View File

@@ -1,7 +1,7 @@
package com.dfsek.terra.api.core.event;
package com.dfsek.terra.api.event;
import com.dfsek.terra.addons.addon.TerraAddon;
import com.dfsek.terra.api.core.event.events.Event;
import com.dfsek.terra.api.addons.TerraAddon;
import com.dfsek.terra.api.event.events.Event;
public interface EventManager {
/**

View File

@@ -1,12 +1,12 @@
package com.dfsek.terra.api.core.event;
package com.dfsek.terra.api.event;
import com.dfsek.terra.addons.addon.TerraAddon;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.core.event.annotations.Global;
import com.dfsek.terra.api.core.event.annotations.Priority;
import com.dfsek.terra.api.core.event.events.Cancellable;
import com.dfsek.terra.api.core.event.events.Event;
import com.dfsek.terra.api.core.event.events.PackEvent;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.addons.TerraAddon;
import com.dfsek.terra.api.event.annotations.Global;
import com.dfsek.terra.api.event.annotations.Priority;
import com.dfsek.terra.api.event.events.Cancellable;
import com.dfsek.terra.api.event.events.Event;
import com.dfsek.terra.api.event.events.PackEvent;
import com.dfsek.terra.api.util.ReflectionUtil;
import java.io.PrintWriter;

View File

@@ -1,4 +1,4 @@
package com.dfsek.terra.api.core.event.annotations;
package com.dfsek.terra.api.event.annotations;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;

View File

@@ -1,4 +1,4 @@
package com.dfsek.terra.api.core.event.annotations;
package com.dfsek.terra.api.event.annotations;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;

View File

@@ -1,4 +1,4 @@
package com.dfsek.terra.api.core.event.events;
package com.dfsek.terra.api.event.events;
/**
* Events that implement this interface may be cancelled.

View File

@@ -0,0 +1,4 @@
package com.dfsek.terra.api.event.events;
public interface Event {
}

View File

@@ -1,4 +1,4 @@
package com.dfsek.terra.api.core.event.events;
package com.dfsek.terra.api.event.events;
import com.dfsek.terra.config.pack.ConfigPack;

View File

@@ -1,6 +1,6 @@
package com.dfsek.terra.api.core.event.events.config;
package com.dfsek.terra.api.event.events.config;
import com.dfsek.terra.api.core.event.events.PackEvent;
import com.dfsek.terra.api.event.events.PackEvent;
import com.dfsek.terra.config.pack.ConfigPack;
public abstract class ConfigPackLoadEvent implements PackEvent {

View File

@@ -1,4 +1,4 @@
package com.dfsek.terra.api.core.event.events.config;
package com.dfsek.terra.api.event.events.config;
import com.dfsek.terra.config.pack.ConfigPack;

View File

@@ -1,4 +1,4 @@
package com.dfsek.terra.api.core.event.events.config;
package com.dfsek.terra.api.event.events.config;
import com.dfsek.terra.config.pack.ConfigPack;

View File

@@ -1,6 +1,6 @@
package com.dfsek.terra.api.core.event.events.world;
package com.dfsek.terra.api.event.events.world;
import com.dfsek.terra.api.core.event.events.PackEvent;
import com.dfsek.terra.api.event.events.PackEvent;
import com.dfsek.terra.config.pack.ConfigPack;
import com.dfsek.terra.world.TerraWorld;

View File

@@ -1,5 +1,7 @@
package com.dfsek.terra.addons.injection;
package com.dfsek.terra.api.injection;
import com.dfsek.terra.api.injection.annotations.Inject;
import com.dfsek.terra.api.injection.exception.InjectionException;
import com.dfsek.terra.api.util.ReflectionUtil;
import java.lang.reflect.Field;

View File

@@ -1,4 +1,4 @@
package com.dfsek.terra.addons.injection;
package com.dfsek.terra.api.injection.annotations;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;

View File

@@ -1,4 +1,4 @@
package com.dfsek.terra.addons.injection;
package com.dfsek.terra.api.injection.exception;
public class InjectionException extends Exception {
private static final long serialVersionUID = -6929631447064215387L;

View File

@@ -1,6 +0,0 @@
package com.dfsek.terra.api.platform;
import com.dfsek.terra.api.platform.entity.Entity;
public interface Player extends Entity {
}

View File

@@ -0,0 +1,4 @@
package com.dfsek.terra.api.platform.entity;
public interface Player extends Entity {
}

View File

@@ -1,4 +1,6 @@
/**
* API for platform implementations. Mostly interfaces to be implemented by platform delegates.
* <p>
* Interfaces in this package generally should <b>not</b> be implemented by addons.
*/
package com.dfsek.terra.api.platform;

View File

@@ -1,7 +1,8 @@
package com.dfsek.terra.registry;
package com.dfsek.terra.api.registry;
import com.dfsek.tectonic.exception.LoadException;
import com.dfsek.tectonic.loading.ConfigLoader;
import com.dfsek.terra.registry.OpenRegistry;
import com.dfsek.terra.registry.exception.DuplicateEntryException;
import java.lang.reflect.Type;

View File

@@ -1,7 +1,8 @@
package com.dfsek.terra.registry;
package com.dfsek.terra.api.registry;
import com.dfsek.tectonic.exception.LoadException;
import com.dfsek.tectonic.loading.ConfigLoader;
import com.dfsek.terra.registry.OpenRegistry;
import java.lang.reflect.Type;
import java.util.Set;

View File

@@ -1,4 +1,4 @@
package com.dfsek.terra.registry;
package com.dfsek.terra.api.registry;
import com.dfsek.tectonic.loading.TypeLoader;

View File

@@ -1,6 +1,6 @@
package com.dfsek.terra.api.structures.loot;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.platform.block.MaterialData;
import com.dfsek.terra.api.platform.inventory.ItemStack;
import com.dfsek.terra.api.structures.loot.functions.AmountFunction;

View File

@@ -1,6 +1,6 @@
package com.dfsek.terra.api.structures.loot;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.platform.inventory.Inventory;
import com.dfsek.terra.api.platform.inventory.ItemStack;
import com.dfsek.terra.api.util.GlueList;

View File

@@ -1,9 +1,9 @@
package com.dfsek.terra.api.structures.loot;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.math.ProbabilityCollection;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.platform.inventory.ItemStack;
import com.dfsek.terra.api.util.GlueList;
import com.dfsek.terra.api.util.collections.ProbabilityCollection;
import net.jafama.FastMath;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;

View File

@@ -1,6 +1,6 @@
package com.dfsek.terra.api.structures.loot.functions;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.platform.inventory.ItemStack;
import com.dfsek.terra.api.platform.inventory.item.Enchantment;
import com.dfsek.terra.api.platform.inventory.item.ItemMeta;

View File

@@ -1,6 +1,6 @@
package com.dfsek.terra.api.structures.script;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.math.vector.Location;
import com.dfsek.terra.api.platform.world.Chunk;
import com.dfsek.terra.api.structures.parser.Parser;

View File

@@ -1,6 +1,6 @@
package com.dfsek.terra.api.structures.script.builders;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.structures.parser.lang.Returnable;
import com.dfsek.terra.api.structures.parser.lang.functions.FunctionBuilder;
import com.dfsek.terra.api.structures.script.functions.BiomeFunction;

View File

@@ -1,6 +1,6 @@
package com.dfsek.terra.api.structures.script.builders;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.structures.parser.exceptions.ParseException;
import com.dfsek.terra.api.structures.parser.lang.Returnable;
import com.dfsek.terra.api.structures.parser.lang.constants.BooleanConstant;

View File

@@ -1,6 +1,6 @@
package com.dfsek.terra.api.structures.script.builders;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.structures.parser.exceptions.ParseException;
import com.dfsek.terra.api.structures.parser.lang.Returnable;
import com.dfsek.terra.api.structures.parser.lang.functions.FunctionBuilder;

View File

@@ -1,6 +1,6 @@
package com.dfsek.terra.api.structures.script.builders;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.structures.parser.exceptions.ParseException;
import com.dfsek.terra.api.structures.parser.lang.Returnable;
import com.dfsek.terra.api.structures.parser.lang.functions.FunctionBuilder;

View File

@@ -1,6 +1,6 @@
package com.dfsek.terra.api.structures.script.builders;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.structures.parser.lang.Returnable;
import com.dfsek.terra.api.structures.parser.lang.functions.FunctionBuilder;
import com.dfsek.terra.api.structures.script.functions.LootFunction;

View File

@@ -1,6 +1,6 @@
package com.dfsek.terra.api.structures.script.builders;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.structures.parser.exceptions.ParseException;
import com.dfsek.terra.api.structures.parser.lang.Returnable;
import com.dfsek.terra.api.structures.parser.lang.functions.FunctionBuilder;

View File

@@ -1,6 +1,6 @@
package com.dfsek.terra.api.structures.script.builders;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.structures.parser.exceptions.ParseException;
import com.dfsek.terra.api.structures.parser.lang.Returnable;
import com.dfsek.terra.api.structures.parser.lang.functions.FunctionBuilder;

View File

@@ -1,6 +1,6 @@
package com.dfsek.terra.api.structures.script.builders;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.structures.parser.exceptions.ParseException;
import com.dfsek.terra.api.structures.parser.lang.Returnable;
import com.dfsek.terra.api.structures.parser.lang.functions.FunctionBuilder;

View File

@@ -1,6 +1,6 @@
package com.dfsek.terra.api.structures.script.functions;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.math.vector.Vector2;
import com.dfsek.terra.api.math.vector.Vector3;
import com.dfsek.terra.api.structures.parser.lang.ImplementationArguments;

View File

@@ -1,6 +1,6 @@
package com.dfsek.terra.api.structures.script.functions;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.math.vector.Vector2;
import com.dfsek.terra.api.math.vector.Vector3;
import com.dfsek.terra.api.platform.block.BlockData;

View File

@@ -1,6 +1,6 @@
package com.dfsek.terra.api.structures.script.functions;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.math.vector.Location;
import com.dfsek.terra.api.math.vector.Vector2;
import com.dfsek.terra.api.math.vector.Vector3;

View File

@@ -1,6 +1,6 @@
package com.dfsek.terra.api.structures.script.functions;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.math.vector.Vector2;
import com.dfsek.terra.api.math.vector.Vector3;
import com.dfsek.terra.api.platform.entity.EntityType;

View File

@@ -1,6 +1,6 @@
package com.dfsek.terra.api.structures.script.functions;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.math.vector.Vector2;
import com.dfsek.terra.api.math.vector.Vector3;
import com.dfsek.terra.api.structures.loot.LootTable;

View File

@@ -1,6 +1,6 @@
package com.dfsek.terra.api.structures.script.functions;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.math.vector.Vector2;
import com.dfsek.terra.api.math.vector.Vector3;
import com.dfsek.terra.api.platform.block.BlockData;

View File

@@ -1,6 +1,6 @@
package com.dfsek.terra.api.structures.script.functions;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.math.vector.Vector2;
import com.dfsek.terra.api.math.vector.Vector3;
import com.dfsek.terra.api.structures.parser.lang.ImplementationArguments;

View File

@@ -1,6 +1,6 @@
package com.dfsek.terra.api.structures.script.functions;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.math.vector.Vector2;
import com.dfsek.terra.api.math.vector.Vector3;
import com.dfsek.terra.api.structures.parser.lang.ImplementationArguments;

View File

@@ -1,6 +1,6 @@
package com.dfsek.terra.api.structures.structure.buffer.items;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.math.vector.Location;
import com.dfsek.terra.api.platform.block.state.BlockState;
import com.dfsek.terra.api.platform.block.state.Container;

View File

@@ -1,6 +1,6 @@
package com.dfsek.terra.api.structures.structure.buffer.items;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.math.vector.Location;
import com.dfsek.terra.api.platform.block.state.BlockState;

View File

@@ -1,4 +1,4 @@
package com.dfsek.terra.debug;
package com.dfsek.terra.api.util;
import java.util.logging.Logger;

View File

@@ -1,4 +1,4 @@
package com.dfsek.terra.api.util.world;
package com.dfsek.terra.api.util.collections;
import com.dfsek.terra.api.platform.block.BlockData;
import com.dfsek.terra.api.platform.block.MaterialData;

View File

@@ -1,19 +1,23 @@
package com.dfsek.terra.api.math;
package com.dfsek.terra.api.util.collections;
import com.dfsek.terra.api.math.MathUtil;
import com.dfsek.terra.api.math.noise.NoiseSampler;
import org.jetbrains.annotations.NotNull;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Random;
import java.util.Set;
@SuppressWarnings("unchecked")
public class ProbabilityCollection<E> {
public class ProbabilityCollection<E> implements Collection<E> {
private final Set<E> cont = new HashSet<>();
private Object[] array = new Object[0];
private int size;
public com.dfsek.terra.api.math.ProbabilityCollection<E> add(E item, int probability) {
public ProbabilityCollection<E> add(E item, int probability) {
if(!cont.contains(item)) size++;
cont.add(item);
int oldLength = array.length;
@@ -43,10 +47,81 @@ public class ProbabilityCollection<E> {
return array.length;
}
@Override
public int size() {
return size;
}
@Override
public boolean isEmpty() {
return array.length == 0;
}
@Override
public boolean contains(Object o) {
return cont.contains(o);
}
@NotNull
@Override
public Iterator<E> iterator() {
return cont.iterator();
}
@NotNull
@Override
public Object[] toArray() {
return cont.toArray();
}
@SuppressWarnings("SuspiciousToArrayCall")
@NotNull
@Override
public <T> T[] toArray(@NotNull T[] a) {
return cont.toArray(a);
}
/**
* Adds an item with probability of 1.
*/
@Override
public boolean add(E e) {
add(e, 1);
return true; // Since this adds the item with a probability, the collection will always have changed.
}
@Override
public boolean remove(Object o) {
throw new UnsupportedOperationException("Cannot remove item from ProbabilityCollection!");
}
@Override
public boolean containsAll(@NotNull Collection<?> c) {
return cont.containsAll(c);
}
@Override
public boolean addAll(@NotNull Collection<? extends E> c) {
c.forEach(this::add);
return true;
}
@Override
public boolean removeAll(@NotNull Collection<?> c) {
throw new UnsupportedOperationException("Cannot remove item from ProbabilityCollection!");
}
@Override
public boolean retainAll(@NotNull Collection<?> c) {
throw new UnsupportedOperationException("Cannot remove item from ProbabilityCollection!");
}
@Override
public void clear() {
cont.clear();
array = new Object[0];
}
public Set<E> getContents() {
return new HashSet<>(cont);
}

View File

@@ -1,5 +1,7 @@
package com.dfsek.terra.api.util.mutable;
import org.jetbrains.annotations.NotNull;
public class MutableBoolean implements MutablePrimitive<Boolean> {
private boolean value;
@@ -17,4 +19,9 @@ public class MutableBoolean implements MutablePrimitive<Boolean> {
value = !value;
return value;
}
@Override
public int compareTo(@NotNull Boolean o) {
return Boolean.compare(value, o);
}
}

View File

@@ -1,5 +1,7 @@
package com.dfsek.terra.api.util.mutable;
import org.jetbrains.annotations.NotNull;
public class MutableDouble extends MutableNumber<Double> {
private static final long serialVersionUID = -2218110876763640053L;
@@ -36,4 +38,9 @@ public class MutableDouble extends MutableNumber<Double> {
public void divide(Double divide) {
value /= divide;
}
@Override
public int compareTo(@NotNull Double o) {
return Double.compare(value, o);
}
}

View File

@@ -1,5 +1,7 @@
package com.dfsek.terra.api.util.mutable;
import org.jetbrains.annotations.NotNull;
public class MutableInteger extends MutableNumber<Integer> {
private static final long serialVersionUID = -4427935901819632745L;
@@ -38,4 +40,9 @@ public class MutableInteger extends MutableNumber<Integer> {
public void add(int add) {
value += add;
}
@Override
public int compareTo(@NotNull Integer o) {
return Integer.compare(value, o);
}
}

View File

@@ -1,6 +1,6 @@
package com.dfsek.terra.api.util.mutable;
public interface MutablePrimitive<T> {
public interface MutablePrimitive<T> extends Comparable<T>{
T get();
void set(T value);

View File

@@ -0,0 +1,4 @@
/**
* Mutable objects containing primitive types.
*/
package com.dfsek.terra.api.util.mutable;

View File

@@ -2,6 +2,7 @@ package com.dfsek.terra.api.util.seeded;
import java.util.function.Function;
@FunctionalInterface
public interface SeededBuilder<T> extends Function<Long, T> {
}

View File

@@ -2,5 +2,6 @@ package com.dfsek.terra.api.util.seeded;
import com.dfsek.terra.api.world.biome.pipeline.source.BiomeSource;
@FunctionalInterface
public interface SourceSeeded extends SeededBuilder<BiomeSource> {
}

View File

@@ -2,5 +2,6 @@ package com.dfsek.terra.api.util.seeded;
import com.dfsek.terra.api.world.biome.pipeline.stages.Stage;
@FunctionalInterface
public interface StageSeeded extends SeededBuilder<Stage> {
}

View File

@@ -1,9 +1,9 @@
package com.dfsek.terra.api.world.biome;
import com.dfsek.terra.api.math.ProbabilityCollection;
import com.dfsek.terra.api.platform.world.Biome;
import com.dfsek.terra.api.platform.world.World;
import com.dfsek.terra.api.util.collections.ProbabilityCollection;
import java.util.Set;

View File

@@ -1,8 +1,8 @@
package com.dfsek.terra.api.world.biome;
import com.dfsek.terra.api.math.ProbabilityCollection;
import com.dfsek.terra.api.platform.world.Biome;
import com.dfsek.terra.api.platform.world.World;
import com.dfsek.terra.api.util.collections.ProbabilityCollection;
import com.dfsek.terra.config.builder.GeneratorBuilder;
import com.dfsek.terra.config.templates.BiomeTemplate;

View File

@@ -1,7 +1,7 @@
package com.dfsek.terra.api.world.biome.pipeline.mutator;
import com.dfsek.terra.api.math.ProbabilityCollection;
import com.dfsek.terra.api.math.noise.NoiseSampler;
import com.dfsek.terra.api.util.collections.ProbabilityCollection;
import com.dfsek.terra.api.world.biome.TerraBiome;
import java.util.Map;

View File

@@ -1,7 +1,7 @@
package com.dfsek.terra.api.world.biome.pipeline.mutator;
import com.dfsek.terra.api.math.ProbabilityCollection;
import com.dfsek.terra.api.math.noise.NoiseSampler;
import com.dfsek.terra.api.util.collections.ProbabilityCollection;
import com.dfsek.terra.api.world.biome.TerraBiome;
public class BorderMutator implements BiomeMutator {

View File

@@ -1,7 +1,7 @@
package com.dfsek.terra.api.world.biome.pipeline.mutator;
import com.dfsek.terra.api.math.ProbabilityCollection;
import com.dfsek.terra.api.math.noise.NoiseSampler;
import com.dfsek.terra.api.util.collections.ProbabilityCollection;
import com.dfsek.terra.api.world.biome.TerraBiome;
import java.util.Map;

View File

@@ -1,7 +1,7 @@
package com.dfsek.terra.api.world.biome.pipeline.mutator;
import com.dfsek.terra.api.math.ProbabilityCollection;
import com.dfsek.terra.api.math.noise.NoiseSampler;
import com.dfsek.terra.api.util.collections.ProbabilityCollection;
import com.dfsek.terra.api.world.biome.TerraBiome;
public class ReplaceMutator implements BiomeMutator {

View File

@@ -1,7 +1,7 @@
package com.dfsek.terra.api.world.biome.pipeline.source;
import com.dfsek.terra.api.math.ProbabilityCollection;
import com.dfsek.terra.api.math.noise.NoiseSampler;
import com.dfsek.terra.api.util.collections.ProbabilityCollection;
import com.dfsek.terra.api.world.biome.TerraBiome;
public class RandomSource implements BiomeSource {

View File

@@ -1,6 +1,6 @@
package com.dfsek.terra.api.world.biome.provider;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.math.noise.NoiseSampler;
import com.dfsek.terra.api.math.vector.Vector2;
import com.dfsek.terra.api.world.biome.TerraBiome;

View File

@@ -1,6 +1,6 @@
package com.dfsek.terra.api.world.generation;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.platform.world.BiomeGrid;
import com.dfsek.terra.api.platform.world.World;
import com.dfsek.terra.api.platform.world.generator.ChunkData;

View File

@@ -1,6 +1,6 @@
package com.dfsek.terra.async;
package com.dfsek.terra.api.world.locate;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.math.vector.Location;
import com.dfsek.terra.api.math.vector.Vector3;
import com.dfsek.terra.api.world.biome.TerraBiome;

View File

@@ -1,6 +1,6 @@
package com.dfsek.terra.async;
package com.dfsek.terra.api.world.locate;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.math.vector.Location;
import com.dfsek.terra.api.math.vector.Vector3;
import com.dfsek.terra.api.platform.world.World;

View File

@@ -1,6 +1,6 @@
package com.dfsek.terra.async;
package com.dfsek.terra.api.world.locate;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.math.MathUtil;
import com.dfsek.terra.api.math.vector.Location;
import com.dfsek.terra.api.math.vector.Vector3;

View File

@@ -1,8 +1,8 @@
package com.dfsek.terra.api.world.palette;
import com.dfsek.terra.api.math.ProbabilityCollection;
import com.dfsek.terra.api.math.noise.NoiseSampler;
import com.dfsek.terra.api.util.GlueList;
import com.dfsek.terra.api.util.collections.ProbabilityCollection;
import java.util.List;
import java.util.Random;

View File

@@ -1,8 +1,8 @@
package com.dfsek.terra.api.world.palette.holder;
import com.dfsek.terra.api.math.ProbabilityCollection;
import com.dfsek.terra.api.math.noise.NoiseSampler;
import com.dfsek.terra.api.platform.block.BlockData;
import com.dfsek.terra.api.util.collections.ProbabilityCollection;
import org.jetbrains.annotations.NotNull;
public class PaletteLayerHolder {

View File

@@ -1,11 +1,11 @@
package com.dfsek.terra.api.world.tree.fractal;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.math.vector.Location;
import com.dfsek.terra.api.platform.block.BlockData;
import com.dfsek.terra.api.platform.entity.Entity;
import com.dfsek.terra.api.platform.entity.EntityType;
import com.dfsek.terra.api.util.world.MaterialSet;
import com.dfsek.terra.api.util.collections.MaterialSet;
import java.util.Random;
import java.util.function.Consumer;

View File

@@ -1,9 +1,9 @@
package com.dfsek.terra.api.world.tree.fractal;
import com.dfsek.terra.api.math.ProbabilityCollection;
import com.dfsek.terra.api.math.vector.Location;
import com.dfsek.terra.api.math.vector.Vector3;
import com.dfsek.terra.api.platform.block.BlockData;
import com.dfsek.terra.api.util.collections.ProbabilityCollection;
import java.util.Random;

View File

@@ -1,9 +1,9 @@
package com.dfsek.terra.api.world.tree.fractal.trees;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.math.vector.Location;
import com.dfsek.terra.api.platform.block.BlockData;
import com.dfsek.terra.api.util.world.MaterialSet;
import com.dfsek.terra.api.util.collections.MaterialSet;
import com.dfsek.terra.api.world.tree.fractal.FractalTree;
import java.util.Random;

View File

@@ -1,12 +1,12 @@
package com.dfsek.terra.api.world.tree.fractal.trees;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.math.ProbabilityCollection;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.math.vector.Location;
import com.dfsek.terra.api.math.vector.Vector3;
import com.dfsek.terra.api.platform.block.BlockData;
import com.dfsek.terra.api.platform.handle.WorldHandle;
import com.dfsek.terra.api.util.world.MaterialSet;
import com.dfsek.terra.api.util.collections.MaterialSet;
import com.dfsek.terra.api.util.collections.ProbabilityCollection;
import com.dfsek.terra.api.world.tree.fractal.FractalTree;
import com.dfsek.terra.api.world.tree.fractal.TreeGeometry;

View File

@@ -1,10 +1,10 @@
package com.dfsek.terra.api.world.tree.fractal.trees;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.math.vector.Location;
import com.dfsek.terra.api.math.vector.Vector3;
import com.dfsek.terra.api.platform.block.BlockData;
import com.dfsek.terra.api.util.world.MaterialSet;
import com.dfsek.terra.api.util.collections.MaterialSet;
import com.dfsek.terra.api.world.tree.fractal.FractalTree;
import com.dfsek.terra.api.world.tree.fractal.TreeGeometry;
import net.jafama.FastMath;

View File

@@ -1,9 +1,9 @@
package com.dfsek.terra.api.world.tree.fractal.trees;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.math.vector.Location;
import com.dfsek.terra.api.platform.block.BlockData;
import com.dfsek.terra.api.util.world.MaterialSet;
import com.dfsek.terra.api.util.collections.MaterialSet;
import com.dfsek.terra.api.world.tree.fractal.FractalTree;
import java.util.Random;

View File

@@ -1,12 +1,12 @@
package com.dfsek.terra.api.world.tree.fractal.trees;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.math.ProbabilityCollection;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.math.vector.Location;
import com.dfsek.terra.api.math.vector.Vector3;
import com.dfsek.terra.api.platform.block.BlockData;
import com.dfsek.terra.api.platform.handle.WorldHandle;
import com.dfsek.terra.api.util.world.MaterialSet;
import com.dfsek.terra.api.util.collections.MaterialSet;
import com.dfsek.terra.api.util.collections.ProbabilityCollection;
import com.dfsek.terra.api.world.tree.fractal.FractalTree;
import com.dfsek.terra.api.world.tree.fractal.TreeGeometry;
import net.jafama.FastMath;

View File

@@ -1,9 +1,9 @@
package com.dfsek.terra.api.world.tree.fractal.trees;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.math.vector.Location;
import com.dfsek.terra.api.platform.block.BlockData;
import com.dfsek.terra.api.util.world.MaterialSet;
import com.dfsek.terra.api.util.collections.MaterialSet;
import com.dfsek.terra.api.world.tree.fractal.FractalTree;
import java.util.Random;

View File

@@ -1,12 +1,12 @@
package com.dfsek.terra.api.world.tree.fractal.trees;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.math.ProbabilityCollection;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.math.vector.Location;
import com.dfsek.terra.api.math.vector.Vector3;
import com.dfsek.terra.api.platform.block.BlockData;
import com.dfsek.terra.api.platform.handle.WorldHandle;
import com.dfsek.terra.api.util.world.MaterialSet;
import com.dfsek.terra.api.util.collections.MaterialSet;
import com.dfsek.terra.api.util.collections.ProbabilityCollection;
import com.dfsek.terra.api.world.tree.fractal.FractalTree;
import com.dfsek.terra.api.world.tree.fractal.TreeGeometry;
import net.jafama.FastMath;

View File

@@ -1,10 +1,10 @@
package com.dfsek.terra.api.world.tree.fractal.trees;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.math.vector.Location;
import com.dfsek.terra.api.math.vector.Vector3;
import com.dfsek.terra.api.platform.block.BlockData;
import com.dfsek.terra.api.util.world.MaterialSet;
import com.dfsek.terra.api.util.collections.MaterialSet;
import com.dfsek.terra.api.world.tree.fractal.FractalTree;
import com.dfsek.terra.api.world.tree.fractal.TreeGeometry;
import net.jafama.FastMath;

View File

@@ -1,6 +1,6 @@
package com.dfsek.terra.carving;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.math.MathUtil;
import com.dfsek.terra.api.math.vector.Vector3;
import com.dfsek.terra.api.platform.world.World;

View File

@@ -1,9 +1,9 @@
package com.dfsek.terra.carving;
import com.dfsek.terra.api.math.ProbabilityCollection;
import com.dfsek.terra.api.platform.block.BlockData;
import com.dfsek.terra.api.platform.block.MaterialData;
import com.dfsek.terra.api.util.world.MaterialSet;
import com.dfsek.terra.api.util.collections.MaterialSet;
import com.dfsek.terra.api.util.collections.ProbabilityCollection;
import java.util.Map;
import java.util.TreeMap;

View File

@@ -4,7 +4,7 @@ import com.dfsek.paralithic.Expression;
import com.dfsek.paralithic.eval.parser.Parser;
import com.dfsek.paralithic.eval.parser.Scope;
import com.dfsek.paralithic.eval.tokenizer.ParseException;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.math.Range;
import com.dfsek.terra.api.math.paralithic.defined.UserDefinedFunction;
import com.dfsek.terra.api.math.paralithic.noise.NoiseFunction2;

View File

@@ -1,17 +1,17 @@
package com.dfsek.terra.config;
import com.dfsek.tectonic.loading.TypeRegistry;
import com.dfsek.terra.addons.addon.TerraAddon;
import com.dfsek.terra.api.LoaderRegistrar;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.addons.TerraAddon;
import com.dfsek.terra.api.math.GridSpawn;
import com.dfsek.terra.api.math.ProbabilityCollection;
import com.dfsek.terra.api.math.Range;
import com.dfsek.terra.api.math.noise.samplers.ImageSampler;
import com.dfsek.terra.api.math.noise.samplers.noise.CellularSampler;
import com.dfsek.terra.api.util.collections.MaterialSet;
import com.dfsek.terra.api.util.collections.ProbabilityCollection;
import com.dfsek.terra.api.util.seeded.SourceSeeded;
import com.dfsek.terra.api.util.seeded.StageSeeded;
import com.dfsek.terra.api.util.world.MaterialSet;
import com.dfsek.terra.api.world.biome.pipeline.stages.ExpanderStage;
import com.dfsek.terra.api.world.biome.pipeline.stages.MutatorStage;
import com.dfsek.terra.api.world.biome.provider.BiomeProvider;

View File

@@ -5,7 +5,7 @@ import com.dfsek.tectonic.annotations.Value;
import com.dfsek.tectonic.config.ConfigTemplate;
import com.dfsek.tectonic.exception.ConfigException;
import com.dfsek.tectonic.loading.ConfigLoader;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.util.JarUtil;
import java.io.File;

View File

@@ -1,15 +0,0 @@
package com.dfsek.terra.config.exception;
import com.dfsek.tectonic.exception.ConfigException;
public class FileMissingException extends ConfigException {
private static final long serialVersionUID = 4489395640246760802L;
public FileMissingException(String message) {
super(message);
}
public FileMissingException(String message, Throwable cause) {
super(message, cause);
}
}

View File

@@ -1,7 +1,7 @@
package com.dfsek.terra.config.factories;
import com.dfsek.paralithic.eval.parser.Scope;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.world.biome.TerraBiome;
import com.dfsek.terra.api.world.biome.UserDefinedBiome;
import com.dfsek.terra.config.builder.GeneratorBuilder;

Some files were not shown because too many files have changed in this diff Show More