mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-04-19 14:50:30 +00:00
begin refactor
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
package com.dfsek.terra.api.platform;
|
||||
package com.dfsek.terra.api;
|
||||
|
||||
/**
|
||||
* An interface that contains a platform delegate.
|
||||
@@ -2,9 +2,9 @@ package com.dfsek.terra.api;
|
||||
|
||||
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.handle.ItemHandle;
|
||||
import com.dfsek.terra.api.handle.WorldHandle;
|
||||
import com.dfsek.terra.api.world.World;
|
||||
import com.dfsek.terra.api.registry.CheckedRegistry;
|
||||
import com.dfsek.terra.api.registry.LockedRegistry;
|
||||
import com.dfsek.terra.api.util.JarUtil;
|
||||
@@ -1,9 +1,9 @@
|
||||
package com.dfsek.terra.api.addons;
|
||||
package com.dfsek.terra.api.addon;
|
||||
|
||||
|
||||
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 com.dfsek.terra.api.addon.annotations.Addon;
|
||||
import com.dfsek.terra.api.addon.annotations.Author;
|
||||
import com.dfsek.terra.api.addon.annotations.Version;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.dfsek.terra.api.addons.annotations;
|
||||
package com.dfsek.terra.api.addon.annotations;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.dfsek.terra.api.addons.annotations;
|
||||
package com.dfsek.terra.api.addon.annotations;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.dfsek.terra.api.addons.annotations;
|
||||
package com.dfsek.terra.api.addon.annotations;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.dfsek.terra.api.addons.annotations;
|
||||
package com.dfsek.terra.api.addon.annotations;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.dfsek.terra.api.block;
|
||||
|
||||
public enum Axis {
|
||||
X, Y, Z
|
||||
}
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.dfsek.terra.api.platform.block;
|
||||
package com.dfsek.terra.api.block;
|
||||
|
||||
import com.dfsek.terra.api.math.vector.Location;
|
||||
import com.dfsek.terra.api.platform.Handle;
|
||||
import com.dfsek.terra.api.platform.block.state.BlockState;
|
||||
import com.dfsek.terra.api.vector.Location;
|
||||
import com.dfsek.terra.api.Handle;
|
||||
import com.dfsek.terra.api.block.state.BlockState;
|
||||
|
||||
public interface Block extends Handle {
|
||||
void setBlockData(BlockData data, boolean physics);
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.dfsek.terra.api.platform.block;
|
||||
package com.dfsek.terra.api.block;
|
||||
|
||||
import com.dfsek.terra.api.platform.Handle;
|
||||
import com.dfsek.terra.api.Handle;
|
||||
|
||||
public interface BlockData extends Cloneable, Handle {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.dfsek.terra.api.platform.block;
|
||||
package com.dfsek.terra.api.block;
|
||||
|
||||
import com.dfsek.terra.api.math.vector.Vector3;
|
||||
import com.dfsek.terra.api.vector.Vector3;
|
||||
import com.dfsek.terra.api.vector.Vector3Impl;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public enum BlockFace {
|
||||
@@ -74,7 +75,7 @@ public enum BlockFace {
|
||||
*/
|
||||
@NotNull
|
||||
public Vector3 getDirection() {
|
||||
Vector3 direction = new Vector3(modX, modY, modZ);
|
||||
Vector3 direction = new Vector3Impl(modX, modY, modZ);
|
||||
if(modX != 0 || modY != 0 || modZ != 0) {
|
||||
direction.normalize();
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.dfsek.terra.api.platform.block;
|
||||
package com.dfsek.terra.api.block;
|
||||
|
||||
import com.dfsek.terra.api.platform.Handle;
|
||||
import com.dfsek.terra.api.Handle;
|
||||
|
||||
public interface BlockType extends Handle {
|
||||
BlockData getDefaultData();
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.dfsek.terra.api.platform.block.data;
|
||||
package com.dfsek.terra.api.block.data;
|
||||
|
||||
import com.dfsek.terra.api.platform.block.BlockData;
|
||||
import com.dfsek.terra.api.block.BlockData;
|
||||
|
||||
public interface AnaloguePowerable extends BlockData {
|
||||
int getMaximumPower();
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.dfsek.terra.api.platform.block.data;
|
||||
package com.dfsek.terra.api.block.data;
|
||||
|
||||
import com.dfsek.terra.api.platform.block.BlockData;
|
||||
import com.dfsek.terra.api.block.BlockData;
|
||||
|
||||
public interface Bisected extends BlockData {
|
||||
Half getHalf();
|
||||
@@ -0,0 +1,10 @@
|
||||
package com.dfsek.terra.api.block.data;
|
||||
|
||||
import com.dfsek.terra.api.block.BlockData;
|
||||
import com.dfsek.terra.api.block.BlockFace;
|
||||
|
||||
public interface Directional extends BlockData {
|
||||
BlockFace getFacing();
|
||||
|
||||
void setFacing(BlockFace facing);
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.dfsek.terra.api.platform.block.data;
|
||||
package com.dfsek.terra.api.block.data;
|
||||
|
||||
import com.dfsek.terra.api.platform.block.BlockData;
|
||||
import com.dfsek.terra.api.platform.block.BlockFace;
|
||||
import com.dfsek.terra.api.block.BlockData;
|
||||
import com.dfsek.terra.api.block.BlockFace;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.dfsek.terra.api.platform.block.data;
|
||||
package com.dfsek.terra.api.block.data;
|
||||
|
||||
import com.dfsek.terra.api.platform.block.Axis;
|
||||
import com.dfsek.terra.api.platform.block.BlockData;
|
||||
import com.dfsek.terra.api.block.Axis;
|
||||
import com.dfsek.terra.api.block.BlockData;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.dfsek.terra.api.platform.block.data;
|
||||
package com.dfsek.terra.api.block.data;
|
||||
|
||||
import com.dfsek.terra.api.platform.block.BlockData;
|
||||
import com.dfsek.terra.api.block.BlockData;
|
||||
|
||||
public interface Rail extends BlockData {
|
||||
Shape getShape();
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.dfsek.terra.api.platform.block.data;
|
||||
package com.dfsek.terra.api.block.data;
|
||||
|
||||
import com.dfsek.terra.api.platform.block.BlockData;
|
||||
import com.dfsek.terra.api.platform.block.BlockFace;
|
||||
import com.dfsek.terra.api.block.BlockData;
|
||||
import com.dfsek.terra.api.block.BlockFace;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
package com.dfsek.terra.api.block.data;
|
||||
|
||||
import com.dfsek.terra.api.block.BlockData;
|
||||
import com.dfsek.terra.api.block.BlockFace;
|
||||
|
||||
public interface Rotatable extends BlockData {
|
||||
BlockFace getRotation();
|
||||
|
||||
void setRotation(BlockFace face);
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.dfsek.terra.api.platform.block.data;
|
||||
package com.dfsek.terra.api.block.data;
|
||||
|
||||
public interface Slab extends Waterlogged {
|
||||
Type getType();
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.dfsek.terra.api.platform.block.data;
|
||||
package com.dfsek.terra.api.block.data;
|
||||
|
||||
public interface Stairs extends Waterlogged, Directional, Bisected {
|
||||
Shape getShape();
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.dfsek.terra.api.platform.block.data;
|
||||
package com.dfsek.terra.api.block.data;
|
||||
|
||||
import com.dfsek.terra.api.platform.block.BlockData;
|
||||
import com.dfsek.terra.api.platform.block.BlockFace;
|
||||
import com.dfsek.terra.api.block.BlockData;
|
||||
import com.dfsek.terra.api.block.BlockFace;
|
||||
|
||||
public interface Wall extends BlockData, Waterlogged {
|
||||
boolean isUp();
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.dfsek.terra.api.platform.block.data;
|
||||
package com.dfsek.terra.api.block.data;
|
||||
|
||||
import com.dfsek.terra.api.platform.block.BlockData;
|
||||
import com.dfsek.terra.api.block.BlockData;
|
||||
|
||||
public interface Waterlogged extends BlockData {
|
||||
boolean isWaterlogged();
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.dfsek.terra.api.block.data.properties;
|
||||
|
||||
public interface Property<T> {
|
||||
|
||||
}
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.dfsek.terra.api.platform.block.state;
|
||||
package com.dfsek.terra.api.block.state;
|
||||
|
||||
import com.dfsek.terra.api.platform.Handle;
|
||||
import com.dfsek.terra.api.platform.block.Block;
|
||||
import com.dfsek.terra.api.platform.block.BlockData;
|
||||
import com.dfsek.terra.api.Handle;
|
||||
import com.dfsek.terra.api.block.Block;
|
||||
import com.dfsek.terra.api.block.BlockData;
|
||||
|
||||
public interface BlockState extends Handle {
|
||||
Block getBlock();
|
||||
@@ -0,0 +1,6 @@
|
||||
package com.dfsek.terra.api.block.state;
|
||||
|
||||
import com.dfsek.terra.api.inventory.BlockInventoryHolder;
|
||||
|
||||
public interface Container extends BlockState, BlockInventoryHolder {
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.dfsek.terra.api.platform.block.state;
|
||||
package com.dfsek.terra.api.block.state;
|
||||
|
||||
import com.dfsek.terra.api.platform.entity.EntityType;
|
||||
import com.dfsek.terra.api.entity.EntityType;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public interface MobSpawner extends BlockState {
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.dfsek.terra.api.platform.block.state;
|
||||
package com.dfsek.terra.api.block.state;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.dfsek.terra.api.platform.block.state;
|
||||
package com.dfsek.terra.api.block.state;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
package com.dfsek.terra.api.platform;
|
||||
package com.dfsek.terra.api.entity;
|
||||
|
||||
import com.dfsek.terra.api.Handle;
|
||||
|
||||
public interface CommandSender extends Handle {
|
||||
void sendMessage(String message);
|
||||
@@ -0,0 +1,13 @@
|
||||
package com.dfsek.terra.api.entity;
|
||||
|
||||
import com.dfsek.terra.api.vector.Location;
|
||||
import com.dfsek.terra.api.Handle;
|
||||
import com.dfsek.terra.api.world.World;
|
||||
|
||||
public interface Entity extends Handle, CommandSender {
|
||||
Location getLocation();
|
||||
|
||||
void setLocation(Location location);
|
||||
|
||||
World getWorld();
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
package com.dfsek.terra.api.entity;
|
||||
|
||||
import com.dfsek.terra.api.Handle;
|
||||
|
||||
public interface EntityType extends Handle {
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
package com.dfsek.terra.api.entity;
|
||||
|
||||
public interface Player extends Entity {
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.dfsek.terra.api.event;
|
||||
|
||||
import com.dfsek.terra.api.addons.TerraAddon;
|
||||
import com.dfsek.terra.api.addon.TerraAddon;
|
||||
import com.dfsek.terra.api.event.events.Event;
|
||||
|
||||
/**
|
||||
@@ -2,7 +2,7 @@ package com.dfsek.terra.api.event.events.world.generation;
|
||||
|
||||
import com.dfsek.terra.api.event.events.PackEvent;
|
||||
import com.dfsek.terra.api.math.vector.Location;
|
||||
import com.dfsek.terra.api.platform.entity.Entity;
|
||||
import com.dfsek.terra.api.entity.Entity;
|
||||
import com.dfsek.terra.api.structures.structure.buffer.items.BufferedEntity;
|
||||
import com.dfsek.terra.config.pack.ConfigPack;
|
||||
|
||||
@@ -3,8 +3,8 @@ package com.dfsek.terra.api.event.events.world.generation;
|
||||
import com.dfsek.terra.api.event.events.AbstractCancellable;
|
||||
import com.dfsek.terra.api.event.events.Cancellable;
|
||||
import com.dfsek.terra.api.event.events.PackEvent;
|
||||
import com.dfsek.terra.api.platform.block.Block;
|
||||
import com.dfsek.terra.api.platform.block.state.Container;
|
||||
import com.dfsek.terra.api.block.Block;
|
||||
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;
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.dfsek.terra.api.platform.handle;
|
||||
package com.dfsek.terra.api.handle;
|
||||
|
||||
import com.dfsek.terra.api.platform.inventory.Item;
|
||||
import com.dfsek.terra.api.platform.inventory.item.Enchantment;
|
||||
import com.dfsek.terra.api.inventory.Item;
|
||||
import com.dfsek.terra.api.inventory.item.Enchantment;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package com.dfsek.terra.api.platform.handle;
|
||||
package com.dfsek.terra.api.handle;
|
||||
|
||||
import com.dfsek.terra.api.math.vector.Location;
|
||||
import com.dfsek.terra.api.platform.block.BlockData;
|
||||
import com.dfsek.terra.api.platform.entity.EntityType;
|
||||
import com.dfsek.terra.api.platform.entity.Player;
|
||||
import com.dfsek.terra.api.vector.Location;
|
||||
import com.dfsek.terra.api.block.BlockData;
|
||||
import com.dfsek.terra.api.entity.EntityType;
|
||||
import com.dfsek.terra.api.entity.Player;
|
||||
import com.dfsek.terra.api.util.generic.pair.Pair;
|
||||
|
||||
/**
|
||||
@@ -0,0 +1,38 @@
|
||||
package com.dfsek.terra.api.injection;
|
||||
|
||||
import com.dfsek.terra.api.injection.annotations.Inject;
|
||||
import com.dfsek.terra.api.injection.exception.InjectionException;
|
||||
|
||||
/**
|
||||
* Dynamic dependency injector.
|
||||
* <p>
|
||||
* Stores an object to inject, and injects it into objects passed to {@link #inject(Object)}.
|
||||
*
|
||||
* @param <T> Type of object to inject.
|
||||
*/
|
||||
public interface Injector<T> {
|
||||
/**
|
||||
* Add an explicit class as a target. Useful for applications where subclasses may cause issues with DI.
|
||||
*
|
||||
* @param target Target class type.
|
||||
*/
|
||||
void addExplicitTarget(Class<? extends T> target);
|
||||
|
||||
/**
|
||||
* Inject the stored object into an object.
|
||||
* <p>
|
||||
* Injects the stored object into any non-static, non-final fields
|
||||
* annotated with {@link Inject},
|
||||
* with type matching the stored object or any explicit targets
|
||||
* ({@link #addExplicitTarget(Class)}.
|
||||
*
|
||||
* @param object Object to inject into
|
||||
* @throws InjectionException If:
|
||||
* <ul>
|
||||
* <li>Matching field annotated with {@link Inject} is final</li>
|
||||
* <li>Matching field annotated with {@link Inject} is static</li>
|
||||
* <li>A reflective access exception occurs</li>
|
||||
* </ul>
|
||||
*/
|
||||
void inject(Object object) throws InjectionException;
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package com.dfsek.terra.api.inventory;
|
||||
|
||||
import com.dfsek.terra.api.block.Block;
|
||||
|
||||
public interface BlockInventoryHolder extends InventoryHolder {
|
||||
Block getBlock();
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.dfsek.terra.api.platform.inventory;
|
||||
package com.dfsek.terra.api.inventory;
|
||||
|
||||
import com.dfsek.terra.api.platform.Handle;
|
||||
import com.dfsek.terra.api.Handle;
|
||||
|
||||
public interface Inventory extends Handle {
|
||||
int getSize();
|
||||
@@ -0,0 +1,7 @@
|
||||
package com.dfsek.terra.api.inventory;
|
||||
|
||||
import com.dfsek.terra.api.Handle;
|
||||
|
||||
public interface InventoryHolder extends Handle {
|
||||
Inventory getInventory();
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.dfsek.terra.api.platform.inventory;
|
||||
package com.dfsek.terra.api.inventory;
|
||||
|
||||
import com.dfsek.terra.api.platform.Handle;
|
||||
import com.dfsek.terra.api.Handle;
|
||||
|
||||
/**
|
||||
* An inventory item.
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.dfsek.terra.api.platform.inventory;
|
||||
package com.dfsek.terra.api.inventory;
|
||||
|
||||
import com.dfsek.terra.api.platform.Handle;
|
||||
import com.dfsek.terra.api.platform.inventory.item.Damageable;
|
||||
import com.dfsek.terra.api.platform.inventory.item.ItemMeta;
|
||||
import com.dfsek.terra.api.Handle;
|
||||
import com.dfsek.terra.api.inventory.item.Damageable;
|
||||
import com.dfsek.terra.api.inventory.item.ItemMeta;
|
||||
|
||||
public interface ItemStack extends Handle {
|
||||
int getAmount();
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.dfsek.terra.api.platform.inventory.item;
|
||||
package com.dfsek.terra.api.inventory.item;
|
||||
|
||||
import com.dfsek.terra.api.platform.Handle;
|
||||
import com.dfsek.terra.api.Handle;
|
||||
|
||||
public interface Damageable extends Handle {
|
||||
int getDamage();
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.dfsek.terra.api.platform.inventory.item;
|
||||
package com.dfsek.terra.api.inventory.item;
|
||||
|
||||
import com.dfsek.terra.api.platform.Handle;
|
||||
import com.dfsek.terra.api.platform.inventory.ItemStack;
|
||||
import com.dfsek.terra.api.Handle;
|
||||
import com.dfsek.terra.api.inventory.ItemStack;
|
||||
|
||||
public interface Enchantment extends Handle {
|
||||
boolean canEnchantItem(ItemStack itemStack);
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.dfsek.terra.api.platform.inventory.item;
|
||||
package com.dfsek.terra.api.inventory.item;
|
||||
|
||||
import com.dfsek.terra.api.platform.Handle;
|
||||
import com.dfsek.terra.api.Handle;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.dfsek.terra.api.math.noise;
|
||||
package com.dfsek.terra.api.noise;
|
||||
|
||||
import com.dfsek.terra.api.math.vector.Vector2;
|
||||
import com.dfsek.terra.api.math.vector.Vector3;
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.dfsek.terra.api.math.noise.normalizer;
|
||||
package com.dfsek.terra.api.noise.normalizer;
|
||||
|
||||
import com.dfsek.terra.api.math.noise.NoiseSampler;
|
||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||
import net.jafama.FastMath;
|
||||
|
||||
public class ClampNormalizer extends Normalizer {
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.dfsek.terra.api.math.noise.normalizer;
|
||||
package com.dfsek.terra.api.noise.normalizer;
|
||||
|
||||
import com.dfsek.terra.api.math.noise.NoiseSampler;
|
||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||
|
||||
/**
|
||||
* Normalizer to linearly scale data's range.
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.dfsek.terra.api.math.noise.normalizer;
|
||||
package com.dfsek.terra.api.noise.normalizer;
|
||||
|
||||
import com.dfsek.terra.api.math.MathUtil;
|
||||
import com.dfsek.terra.api.math.noise.NoiseSampler;
|
||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||
import net.jafama.FastMath;
|
||||
|
||||
/**
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.dfsek.terra.api.math.noise.normalizer;
|
||||
package com.dfsek.terra.api.noise.normalizer;
|
||||
|
||||
import com.dfsek.terra.api.math.noise.NoiseSampler;
|
||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||
|
||||
public abstract class Normalizer implements NoiseSampler {
|
||||
private final NoiseSampler sampler;
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.dfsek.terra.api.math.noise.samplers;
|
||||
package com.dfsek.terra.api.noise.samplers;
|
||||
|
||||
import com.dfsek.terra.api.math.noise.NoiseSampler;
|
||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||
|
||||
public class DomainWarpedSampler implements NoiseSampler {
|
||||
private final NoiseSampler function;
|
||||
@@ -1,10 +1,10 @@
|
||||
package com.dfsek.terra.api.math.noise.samplers;
|
||||
package com.dfsek.terra.api.noise.samplers;
|
||||
|
||||
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.math.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;
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.dfsek.terra.api.math.noise.samplers;
|
||||
package com.dfsek.terra.api.noise.samplers;
|
||||
|
||||
import com.dfsek.terra.api.math.noise.NoiseSampler;
|
||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||
import net.jafama.FastMath;
|
||||
|
||||
import java.awt.image.BufferedImage;
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.dfsek.terra.api.math.noise.samplers;
|
||||
package com.dfsek.terra.api.noise.samplers;
|
||||
|
||||
import com.dfsek.terra.api.math.noise.NoiseSampler;
|
||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||
|
||||
public class KernelSampler implements NoiseSampler {
|
||||
private final double[][] kernel;
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.dfsek.terra.api.math.noise.samplers.noise;
|
||||
package com.dfsek.terra.api.noise.samplers.noise;
|
||||
|
||||
import com.dfsek.terra.api.math.noise.NoiseSampler;
|
||||
import com.dfsek.terra.api.math.noise.samplers.noise.simplex.OpenSimplex2Sampler;
|
||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||
import com.dfsek.terra.api.noise.samplers.noise.simplex.OpenSimplex2Sampler;
|
||||
import com.dfsek.terra.api.math.vector.Vector2;
|
||||
import com.dfsek.terra.api.math.vector.Vector3;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.dfsek.terra.api.math.noise.samplers.noise;
|
||||
package com.dfsek.terra.api.noise.samplers.noise;
|
||||
|
||||
/**
|
||||
* Sampler3D implementation that returns a constant.
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.dfsek.terra.api.math.noise.samplers.noise;
|
||||
package com.dfsek.terra.api.noise.samplers.noise;
|
||||
|
||||
import com.dfsek.paralithic.Expression;
|
||||
import com.dfsek.paralithic.eval.parser.Parser;
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.dfsek.terra.api.math.noise.samplers.noise;
|
||||
package com.dfsek.terra.api.noise.samplers.noise;
|
||||
|
||||
import com.dfsek.terra.api.math.noise.samplers.noise.random.WhiteNoiseSampler;
|
||||
import com.dfsek.terra.api.noise.samplers.noise.random.WhiteNoiseSampler;
|
||||
import net.jafama.FastMath;
|
||||
|
||||
public class GaborNoiseSampler extends NoiseFunction {
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.dfsek.terra.api.math.noise.samplers.noise;
|
||||
package com.dfsek.terra.api.noise.samplers.noise;
|
||||
|
||||
import com.dfsek.terra.api.math.noise.NoiseSampler;
|
||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||
import net.jafama.FastMath;
|
||||
|
||||
@SuppressWarnings("ManualMinMaxCalculation")
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.dfsek.terra.api.math.noise.samplers.noise.fractal;
|
||||
package com.dfsek.terra.api.noise.samplers.noise.fractal;
|
||||
|
||||
import com.dfsek.terra.api.math.noise.NoiseSampler;
|
||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||
|
||||
public class BrownianMotionSampler extends FractalNoiseFunction {
|
||||
public BrownianMotionSampler(int seed, NoiseSampler input) {
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.dfsek.terra.api.math.noise.samplers.noise.fractal;
|
||||
package com.dfsek.terra.api.noise.samplers.noise.fractal;
|
||||
|
||||
import com.dfsek.terra.api.math.noise.NoiseSampler;
|
||||
import com.dfsek.terra.api.math.noise.samplers.noise.NoiseFunction;
|
||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||
import com.dfsek.terra.api.noise.samplers.noise.NoiseFunction;
|
||||
|
||||
public abstract class FractalNoiseFunction extends NoiseFunction {
|
||||
protected final NoiseSampler input;
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.dfsek.terra.api.math.noise.samplers.noise.fractal;
|
||||
package com.dfsek.terra.api.noise.samplers.noise.fractal;
|
||||
|
||||
import com.dfsek.terra.api.math.noise.NoiseSampler;
|
||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||
|
||||
public class PingPongSampler extends FractalNoiseFunction {
|
||||
private double pingPongStrength = 2.0;
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.dfsek.terra.api.math.noise.samplers.noise.fractal;
|
||||
package com.dfsek.terra.api.noise.samplers.noise.fractal;
|
||||
|
||||
import com.dfsek.terra.api.math.noise.NoiseSampler;
|
||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||
|
||||
public class RidgedFractalSampler extends FractalNoiseFunction {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.dfsek.terra.api.math.noise.samplers.noise.random;
|
||||
package com.dfsek.terra.api.noise.samplers.noise.random;
|
||||
|
||||
import com.dfsek.terra.api.math.noise.samplers.noise.NoiseFunction;
|
||||
import com.dfsek.terra.api.noise.samplers.noise.NoiseFunction;
|
||||
|
||||
/**
|
||||
* NoiseSampler implementation to provide random, normally distributed (Gaussian) noise.
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.dfsek.terra.api.math.noise.samplers.noise.random;
|
||||
package com.dfsek.terra.api.noise.samplers.noise.random;
|
||||
|
||||
import com.dfsek.terra.api.math.noise.samplers.noise.NoiseFunction;
|
||||
import com.dfsek.terra.api.noise.samplers.noise.NoiseFunction;
|
||||
|
||||
/**
|
||||
* NoiseSampler implementation to produce random, uniformly distributed (white) noise.
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.dfsek.terra.api.math.noise.samplers.noise.simplex;
|
||||
package com.dfsek.terra.api.noise.samplers.noise.simplex;
|
||||
|
||||
/**
|
||||
* NoiseSampler implementation to provide OpenSimplex2 (Smooth Variant) noise.
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.dfsek.terra.api.math.noise.samplers.noise.simplex;
|
||||
package com.dfsek.terra.api.noise.samplers.noise.simplex;
|
||||
|
||||
/**
|
||||
* NoiseSampler implementation to provide OpenSimplex2 noise.
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.dfsek.terra.api.math.noise.samplers.noise.simplex;
|
||||
package com.dfsek.terra.api.noise.samplers.noise.simplex;
|
||||
|
||||
/**
|
||||
* NoiseSampler implementation to provide Perlin Noise.
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.dfsek.terra.api.math.noise.samplers.noise.simplex;
|
||||
package com.dfsek.terra.api.noise.samplers.noise.simplex;
|
||||
|
||||
public class SimplexSampler extends SimplexStyleSampler {
|
||||
private static final Double2[] GRAD_2D = {
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.dfsek.terra.api.math.noise.samplers.noise.simplex;
|
||||
package com.dfsek.terra.api.noise.samplers.noise.simplex;
|
||||
|
||||
import com.dfsek.terra.api.math.noise.samplers.noise.NoiseFunction;
|
||||
import com.dfsek.terra.api.noise.samplers.noise.NoiseFunction;
|
||||
|
||||
/**
|
||||
* Abstract NoiseSampler implementation for simplex-style noise functions.
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.dfsek.terra.api.math.noise.samplers.noise.value;
|
||||
package com.dfsek.terra.api.noise.samplers.noise.value;
|
||||
|
||||
public class ValueCubicSampler extends ValueStyleNoise {
|
||||
public ValueCubicSampler(int seed) {
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.dfsek.terra.api.math.noise.samplers.noise.value;
|
||||
package com.dfsek.terra.api.noise.samplers.noise.value;
|
||||
|
||||
public class ValueSampler extends ValueStyleNoise {
|
||||
public ValueSampler(int seed) {
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.dfsek.terra.api.math.noise.samplers.noise.value;
|
||||
package com.dfsek.terra.api.noise.samplers.noise.value;
|
||||
|
||||
import com.dfsek.terra.api.math.noise.samplers.noise.NoiseFunction;
|
||||
import com.dfsek.terra.api.noise.samplers.noise.NoiseFunction;
|
||||
|
||||
public abstract class ValueStyleNoise extends NoiseFunction {
|
||||
public ValueStyleNoise(int seed) {
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.dfsek.terra.api.registry;
|
||||
|
||||
public interface CheckedRegistry<T> extends Registry<T> {
|
||||
/**
|
||||
* Add a value to this registry, checking whether it is present first.
|
||||
*
|
||||
* @param identifier Identifier to assign value.
|
||||
* @param value Value to add.
|
||||
* @throws DuplicateEntryException If an entry with the same identifier is already present.
|
||||
*/
|
||||
void add(String identifier, T value) throws DuplicateEntryException;
|
||||
|
||||
/**
|
||||
* Add a value to the registry, without checking presence beforehand.
|
||||
* <p>
|
||||
* Use of this method is generally discouraged, as it is bad practice to overwrite registry values.
|
||||
*
|
||||
* @param identifier Identifier to assign value.
|
||||
* @param value Value to add.
|
||||
* @deprecated Use of {@link #add(String, Object)} is encouraged.
|
||||
*/
|
||||
@Deprecated
|
||||
void addUnchecked(String identifier, T value);
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.dfsek.terra.registry.exception;
|
||||
package com.dfsek.terra.api.registry;
|
||||
|
||||
/**
|
||||
* Thrown when a duplicate entry is found in a registry.
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.dfsek.terra.api.registry;
|
||||
|
||||
public interface OpenRegistry<T> extends Registry<T> {
|
||||
/**
|
||||
* Add a value to this registry.
|
||||
*
|
||||
* @param identifier Identifier to assign value.
|
||||
* @param value Value to add.
|
||||
*/
|
||||
boolean add(String identifier, T value);
|
||||
|
||||
/**
|
||||
* Add a value to this registry, checking whether it is present first.
|
||||
*
|
||||
* @param identifier Identifier to assign value.
|
||||
* @param value Value to add.
|
||||
* @throws DuplicateEntryException If an entry with the same identifier is already present.
|
||||
*/
|
||||
void addChecked(String identifier, T value) throws DuplicateEntryException;
|
||||
|
||||
/**
|
||||
* Clears all entries from the registry.
|
||||
*/
|
||||
void clear();
|
||||
}
|
||||
@@ -1,5 +1,7 @@
|
||||
package com.dfsek.terra.api.transform;
|
||||
|
||||
import com.dfsek.terra.api.transform.exception.TransformException;
|
||||
|
||||
/**
|
||||
* Interface to transform data from one type to another.
|
||||
*/
|
||||
@@ -0,0 +1,11 @@
|
||||
package com.dfsek.terra.api.transform;
|
||||
|
||||
public interface Transformer<F, T> {
|
||||
/**
|
||||
* Translate data from {@code from} type to {@code to} type.
|
||||
*
|
||||
* @param from Data to translate
|
||||
* @return Result
|
||||
*/
|
||||
T translate(F from);
|
||||
}
|
||||
@@ -1,6 +1,8 @@
|
||||
package com.dfsek.terra.api.transform;
|
||||
|
||||
|
||||
import com.dfsek.terra.api.transform.exception.TransformException;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
public interface Validator<T> {
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.dfsek.terra.api.transform;
|
||||
package com.dfsek.terra.api.transform.exception;
|
||||
|
||||
import com.dfsek.terra.api.util.GlueList;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.dfsek.terra.api.transform;
|
||||
package com.dfsek.terra.api.transform.exception;
|
||||
|
||||
public class TransformException extends Exception {
|
||||
private static final long serialVersionUID = -6661338369581162084L;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.dfsek.terra.api.math;
|
||||
package com.dfsek.terra.api.util;
|
||||
|
||||
import com.dfsek.terra.api.util.FastRandom;
|
||||
import com.dfsek.terra.world.generation.math.samplers.Sampler;
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user