This commit is contained in:
dfsek
2021-01-25 19:34:29 -07:00
parent 89f52a22c8
commit 1d6cdf9eaa
181 changed files with 466 additions and 662 deletions
@@ -1,8 +0,0 @@
package com.dfsek.terra.api;
import com.dfsek.terra.api.math.vector.Location;
import com.dfsek.terra.api.platform.Handle;
public interface Entity extends Handle {
Location getLocation();
}
@@ -1,4 +0,0 @@
package com.dfsek.terra.api;
public interface Player extends Entity {
}
@@ -1,14 +1,15 @@
package com.dfsek.terra.api.platform; package com.dfsek.terra.api.core;
import com.dfsek.terra.TerraWorld;
import com.dfsek.terra.api.LoaderRegistrar; import com.dfsek.terra.api.LoaderRegistrar;
import com.dfsek.terra.api.language.Language; import com.dfsek.terra.api.language.Language;
import com.dfsek.terra.api.platform.handle.ItemHandle; import com.dfsek.terra.api.platform.handle.ItemHandle;
import com.dfsek.terra.api.platform.handle.WorldHandle; import com.dfsek.terra.api.platform.handle.WorldHandle;
import com.dfsek.terra.api.platform.world.World; import com.dfsek.terra.api.platform.world.World;
import com.dfsek.terra.config.base.ConfigPack; import com.dfsek.terra.config.PluginConfig;
import com.dfsek.terra.config.base.PluginConfig; import com.dfsek.terra.config.pack.ConfigPack;
import com.dfsek.terra.debug.DebugLogger;
import com.dfsek.terra.registry.ConfigRegistry; import com.dfsek.terra.registry.ConfigRegistry;
import com.dfsek.terra.world.TerraWorld;
import java.io.File; import java.io.File;
import java.util.logging.Logger; import java.util.logging.Logger;
@@ -47,4 +48,6 @@ public interface TerraPlugin extends LoaderRegistrar {
default void packPostLoadCallback(ConfigPack pack) { default void packPostLoadCallback(ConfigPack pack) {
} }
DebugLogger getDebugLogger();
} }
@@ -0,0 +1,4 @@
package com.dfsek.terra.api.core.event;
public interface Event {
}
@@ -0,0 +1,4 @@
package com.dfsek.terra.api.core.event;
public interface EventListener {
}
@@ -0,0 +1,7 @@
package com.dfsek.terra.api.core.event;
public interface EventManager {
void callEvent(Event event);
void registerListener(EventListener listener);
}
@@ -1,7 +1,7 @@
package com.dfsek.terra.api.math; package com.dfsek.terra.api.math;
import com.dfsek.terra.api.util.FastRandom; import com.dfsek.terra.api.util.FastRandom;
import com.dfsek.terra.generation.math.Sampler; import com.dfsek.terra.world.generation.math.Sampler;
import net.jafama.FastMath; import net.jafama.FastMath;
import java.util.List; import java.util.List;
@@ -1,8 +1,8 @@
package com.dfsek.terra.api.math.noise; package com.dfsek.terra.api.math.noise;
import com.dfsek.terra.api.math.noise.samplers.NoiseSampler; import com.dfsek.terra.api.math.noise.samplers.NoiseSampler;
import com.dfsek.terra.generation.config.NoiseBuilder;
import com.dfsek.terra.util.hash.HashMapDoubleDouble; import com.dfsek.terra.util.hash.HashMapDoubleDouble;
import com.dfsek.terra.world.generation.config.NoiseBuilder;
import parsii.eval.Expression; import parsii.eval.Expression;
import java.util.List; import java.util.List;
@@ -1,7 +1,7 @@
package com.dfsek.terra.api.math.noise; package com.dfsek.terra.api.math.noise;
import com.dfsek.terra.api.math.noise.samplers.NoiseSampler; import com.dfsek.terra.api.math.noise.samplers.NoiseSampler;
import com.dfsek.terra.generation.config.NoiseBuilder; import com.dfsek.terra.world.generation.config.NoiseBuilder;
import parsii.eval.Expression; import parsii.eval.Expression;
import java.util.List; import java.util.List;
@@ -3,7 +3,7 @@ package com.dfsek.terra.api.math.noise.samplers;
import com.dfsek.terra.api.math.noise.NoiseFunction2; import com.dfsek.terra.api.math.noise.NoiseFunction2;
import com.dfsek.terra.api.math.noise.NoiseFunction3; import com.dfsek.terra.api.math.noise.NoiseFunction3;
import com.dfsek.terra.api.math.parsii.RandomFunction; import com.dfsek.terra.api.math.parsii.RandomFunction;
import com.dfsek.terra.generation.config.NoiseBuilder; import com.dfsek.terra.world.generation.config.NoiseBuilder;
import parsii.eval.Expression; import parsii.eval.Expression;
import parsii.eval.Parser; import parsii.eval.Parser;
import parsii.eval.Scope; import parsii.eval.Scope;
@@ -0,0 +1,6 @@
package com.dfsek.terra.api.platform;
import com.dfsek.terra.api.platform.entity.Entity;
public interface Player extends Entity {
}
@@ -1,6 +1,9 @@
package com.dfsek.terra.api.platform.entity; package com.dfsek.terra.api.platform.entity;
import com.dfsek.terra.api.math.vector.Location;
import com.dfsek.terra.api.platform.CommandSender;
import com.dfsek.terra.api.platform.Handle; import com.dfsek.terra.api.platform.Handle;
public interface Entity extends Handle { public interface Entity extends Handle, CommandSender {
Location getLocation();
} }
@@ -1,6 +1,6 @@
package com.dfsek.terra.api.structures.loot; package com.dfsek.terra.api.structures.loot;
import com.dfsek.terra.api.platform.TerraPlugin; import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.platform.block.MaterialData; import com.dfsek.terra.api.platform.block.MaterialData;
import com.dfsek.terra.api.platform.inventory.ItemStack; import com.dfsek.terra.api.platform.inventory.ItemStack;
import com.dfsek.terra.api.structures.loot.functions.AmountFunction; import com.dfsek.terra.api.structures.loot.functions.AmountFunction;
@@ -1,6 +1,6 @@
package com.dfsek.terra.api.structures.loot; package com.dfsek.terra.api.structures.loot;
import com.dfsek.terra.api.platform.TerraPlugin; import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.platform.inventory.Inventory; import com.dfsek.terra.api.platform.inventory.Inventory;
import com.dfsek.terra.api.platform.inventory.ItemStack; import com.dfsek.terra.api.platform.inventory.ItemStack;
import com.dfsek.terra.api.util.GlueList; import com.dfsek.terra.api.util.GlueList;
@@ -1,7 +1,7 @@
package com.dfsek.terra.api.structures.loot; 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.math.ProbabilityCollection;
import com.dfsek.terra.api.platform.TerraPlugin;
import com.dfsek.terra.api.platform.inventory.ItemStack; import com.dfsek.terra.api.platform.inventory.ItemStack;
import com.dfsek.terra.api.util.GlueList; import com.dfsek.terra.api.util.GlueList;
import net.jafama.FastMath; import net.jafama.FastMath;
@@ -1,6 +1,6 @@
package com.dfsek.terra.api.structures.loot.functions; package com.dfsek.terra.api.structures.loot.functions;
import com.dfsek.terra.api.platform.TerraPlugin; import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.platform.inventory.ItemStack; 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.Enchantment;
import com.dfsek.terra.api.platform.inventory.item.ItemMeta; import com.dfsek.terra.api.platform.inventory.item.ItemMeta;
@@ -1,7 +1,7 @@
package com.dfsek.terra.api.structures.script; package com.dfsek.terra.api.structures.script;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.math.vector.Location; import com.dfsek.terra.api.math.vector.Location;
import com.dfsek.terra.api.platform.TerraPlugin;
import com.dfsek.terra.api.platform.world.Chunk; import com.dfsek.terra.api.platform.world.Chunk;
import com.dfsek.terra.api.structures.parser.Parser; import com.dfsek.terra.api.structures.parser.Parser;
import com.dfsek.terra.api.structures.parser.exceptions.ParseException; import com.dfsek.terra.api.structures.parser.exceptions.ParseException;
@@ -28,10 +28,9 @@ import com.dfsek.terra.api.structures.structure.Rotation;
import com.dfsek.terra.api.structures.structure.buffer.Buffer; import com.dfsek.terra.api.structures.structure.buffer.Buffer;
import com.dfsek.terra.api.structures.structure.buffer.DirectBuffer; import com.dfsek.terra.api.structures.structure.buffer.DirectBuffer;
import com.dfsek.terra.api.structures.structure.buffer.StructureBuffer; import com.dfsek.terra.api.structures.structure.buffer.StructureBuffer;
import com.dfsek.terra.debug.Debug;
import com.dfsek.terra.generation.math.SamplerCache;
import com.dfsek.terra.registry.LootRegistry; import com.dfsek.terra.registry.LootRegistry;
import com.dfsek.terra.registry.ScriptRegistry; import com.dfsek.terra.registry.ScriptRegistry;
import com.dfsek.terra.world.generation.math.SamplerCache;
import com.google.common.cache.Cache; import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheBuilder;
import net.jafama.FastMath; import net.jafama.FastMath;
@@ -75,7 +74,7 @@ public class StructureScript {
.registerFunction("originZ", new ZeroArgFunctionBuilder<Number>(arguments -> arguments.getBuffer().getOrigin().getZ(), Returnable.ReturnType.NUMBER)) .registerFunction("originZ", new ZeroArgFunctionBuilder<Number>(arguments -> arguments.getBuffer().getOrigin().getZ(), Returnable.ReturnType.NUMBER))
.registerFunction("rotation", new ZeroArgFunctionBuilder<>(arguments -> arguments.getRotation().toString(), Returnable.ReturnType.STRING)) .registerFunction("rotation", new ZeroArgFunctionBuilder<>(arguments -> arguments.getRotation().toString(), Returnable.ReturnType.STRING))
.registerFunction("rotationDegrees", new ZeroArgFunctionBuilder<>(arguments -> arguments.getRotation().getDegrees(), Returnable.ReturnType.NUMBER)) .registerFunction("rotationDegrees", new ZeroArgFunctionBuilder<>(arguments -> arguments.getRotation().getDegrees(), Returnable.ReturnType.NUMBER))
.registerFunction("print", new UnaryStringFunctionBuilder(string -> Debug.info("[" + tempID + "] " + string))) .registerFunction("print", new UnaryStringFunctionBuilder(string -> main.getDebugLogger().info("[" + tempID + "] " + string)))
.registerFunction("abs", new UnaryNumberFunctionBuilder(number -> FastMath.abs(number.doubleValue()))) .registerFunction("abs", new UnaryNumberFunctionBuilder(number -> FastMath.abs(number.doubleValue())))
.registerFunction("pow", new BinaryNumberFunctionBuilder((number, number2) -> FastMath.pow(number.doubleValue(), number2.doubleValue()))) .registerFunction("pow", new BinaryNumberFunctionBuilder((number, number2) -> FastMath.pow(number.doubleValue(), number2.doubleValue())))
.registerFunction("sqrt", new UnaryNumberFunctionBuilder(number -> FastMath.sqrt(number.doubleValue()))) .registerFunction("sqrt", new UnaryNumberFunctionBuilder(number -> FastMath.sqrt(number.doubleValue())))
@@ -149,7 +148,7 @@ public class StructureScript {
return !block.apply(arguments).getLevel().equals(Block.ReturnLevel.FAIL); return !block.apply(arguments).getLevel().equals(Block.ReturnLevel.FAIL);
} catch(RuntimeException e) { } catch(RuntimeException e) {
main.getLogger().severe("Failed to generate structure at " + arguments.getBuffer().getOrigin() + ": " + e.getMessage()); main.getLogger().severe("Failed to generate structure at " + arguments.getBuffer().getOrigin() + ": " + e.getMessage());
Debug.stack(e); main.getDebugLogger().stack(e);
return false; return false;
} }
} }
@@ -1,6 +1,6 @@
package com.dfsek.terra.api.structures.script.builders; package com.dfsek.terra.api.structures.script.builders;
import com.dfsek.terra.api.platform.TerraPlugin; import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.structures.parser.lang.Returnable; 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.parser.lang.functions.FunctionBuilder;
import com.dfsek.terra.api.structures.script.functions.BiomeFunction; import com.dfsek.terra.api.structures.script.functions.BiomeFunction;
@@ -1,6 +1,6 @@
package com.dfsek.terra.api.structures.script.builders; package com.dfsek.terra.api.structures.script.builders;
import com.dfsek.terra.api.platform.TerraPlugin; import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.structures.parser.exceptions.ParseException; 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.Returnable;
import com.dfsek.terra.api.structures.parser.lang.constants.BooleanConstant; import com.dfsek.terra.api.structures.parser.lang.constants.BooleanConstant;
@@ -1,12 +1,12 @@
package com.dfsek.terra.api.structures.script.builders; package com.dfsek.terra.api.structures.script.builders;
import com.dfsek.terra.api.platform.TerraPlugin; import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.structures.parser.exceptions.ParseException; 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.Returnable;
import com.dfsek.terra.api.structures.parser.lang.functions.FunctionBuilder; import com.dfsek.terra.api.structures.parser.lang.functions.FunctionBuilder;
import com.dfsek.terra.api.structures.script.functions.CheckFunction; import com.dfsek.terra.api.structures.script.functions.CheckFunction;
import com.dfsek.terra.api.structures.tokenizer.Position; import com.dfsek.terra.api.structures.tokenizer.Position;
import com.dfsek.terra.generation.math.SamplerCache; import com.dfsek.terra.world.generation.math.SamplerCache;
import java.util.List; import java.util.List;
@@ -1,6 +1,6 @@
package com.dfsek.terra.api.structures.script.builders; package com.dfsek.terra.api.structures.script.builders;
import com.dfsek.terra.api.platform.TerraPlugin; import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.structures.parser.exceptions.ParseException; 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.Returnable;
import com.dfsek.terra.api.structures.parser.lang.functions.FunctionBuilder; import com.dfsek.terra.api.structures.parser.lang.functions.FunctionBuilder;
@@ -1,6 +1,6 @@
package com.dfsek.terra.api.structures.script.builders; package com.dfsek.terra.api.structures.script.builders;
import com.dfsek.terra.api.platform.TerraPlugin; import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.structures.parser.lang.Returnable; 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.parser.lang.functions.FunctionBuilder;
import com.dfsek.terra.api.structures.script.functions.LootFunction; import com.dfsek.terra.api.structures.script.functions.LootFunction;
@@ -1,6 +1,6 @@
package com.dfsek.terra.api.structures.script.builders; package com.dfsek.terra.api.structures.script.builders;
import com.dfsek.terra.api.platform.TerraPlugin; import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.structures.parser.exceptions.ParseException; 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.Returnable;
import com.dfsek.terra.api.structures.parser.lang.functions.FunctionBuilder; import com.dfsek.terra.api.structures.parser.lang.functions.FunctionBuilder;
@@ -1,6 +1,6 @@
package com.dfsek.terra.api.structures.script.builders; package com.dfsek.terra.api.structures.script.builders;
import com.dfsek.terra.api.platform.TerraPlugin; import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.structures.parser.exceptions.ParseException; 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.Returnable;
import com.dfsek.terra.api.structures.parser.lang.functions.FunctionBuilder; import com.dfsek.terra.api.structures.parser.lang.functions.FunctionBuilder;
@@ -1,6 +1,6 @@
package com.dfsek.terra.api.structures.script.builders; package com.dfsek.terra.api.structures.script.builders;
import com.dfsek.terra.api.platform.TerraPlugin; import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.structures.parser.exceptions.ParseException; 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.Returnable;
import com.dfsek.terra.api.structures.parser.lang.functions.FunctionBuilder; import com.dfsek.terra.api.structures.parser.lang.functions.FunctionBuilder;
@@ -1,8 +1,8 @@
package com.dfsek.terra.api.structures.script.functions; package com.dfsek.terra.api.structures.script.functions;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.math.vector.Vector2; import com.dfsek.terra.api.math.vector.Vector2;
import com.dfsek.terra.api.math.vector.Vector3; import com.dfsek.terra.api.math.vector.Vector3;
import com.dfsek.terra.api.platform.TerraPlugin;
import com.dfsek.terra.api.structures.parser.lang.ImplementationArguments; import com.dfsek.terra.api.structures.parser.lang.ImplementationArguments;
import com.dfsek.terra.api.structures.parser.lang.Returnable; import com.dfsek.terra.api.structures.parser.lang.Returnable;
import com.dfsek.terra.api.structures.parser.lang.functions.Function; import com.dfsek.terra.api.structures.parser.lang.functions.Function;
@@ -1,8 +1,8 @@
package com.dfsek.terra.api.structures.script.functions; package com.dfsek.terra.api.structures.script.functions;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.math.vector.Vector2; import com.dfsek.terra.api.math.vector.Vector2;
import com.dfsek.terra.api.math.vector.Vector3; import com.dfsek.terra.api.math.vector.Vector3;
import com.dfsek.terra.api.platform.TerraPlugin;
import com.dfsek.terra.api.platform.block.BlockData; import com.dfsek.terra.api.platform.block.BlockData;
import com.dfsek.terra.api.structures.parser.exceptions.ParseException; import com.dfsek.terra.api.structures.parser.exceptions.ParseException;
import com.dfsek.terra.api.structures.parser.lang.ImplementationArguments; import com.dfsek.terra.api.structures.parser.lang.ImplementationArguments;
@@ -1,10 +1,9 @@
package com.dfsek.terra.api.structures.script.functions; package com.dfsek.terra.api.structures.script.functions;
import com.dfsek.terra.TerraWorld; import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.math.vector.Location; import com.dfsek.terra.api.math.vector.Location;
import com.dfsek.terra.api.math.vector.Vector2; import com.dfsek.terra.api.math.vector.Vector2;
import com.dfsek.terra.api.math.vector.Vector3; import com.dfsek.terra.api.math.vector.Vector3;
import com.dfsek.terra.api.platform.TerraPlugin;
import com.dfsek.terra.api.platform.world.World; import com.dfsek.terra.api.platform.world.World;
import com.dfsek.terra.api.structures.parser.lang.ImplementationArguments; import com.dfsek.terra.api.structures.parser.lang.ImplementationArguments;
import com.dfsek.terra.api.structures.parser.lang.Returnable; import com.dfsek.terra.api.structures.parser.lang.Returnable;
@@ -16,7 +15,8 @@ import com.dfsek.terra.api.structures.tokenizer.Position;
import com.dfsek.terra.biome.BiomeProvider; import com.dfsek.terra.biome.BiomeProvider;
import com.dfsek.terra.biome.UserDefinedBiome; import com.dfsek.terra.biome.UserDefinedBiome;
import com.dfsek.terra.config.templates.BiomeTemplate; import com.dfsek.terra.config.templates.BiomeTemplate;
import com.dfsek.terra.generation.math.SamplerCache; import com.dfsek.terra.world.TerraWorld;
import com.dfsek.terra.world.generation.math.SamplerCache;
import net.jafama.FastMath; import net.jafama.FastMath;
import java.util.Map; import java.util.Map;
@@ -1,8 +1,8 @@
package com.dfsek.terra.api.structures.script.functions; package com.dfsek.terra.api.structures.script.functions;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.math.vector.Vector2; import com.dfsek.terra.api.math.vector.Vector2;
import com.dfsek.terra.api.math.vector.Vector3; import com.dfsek.terra.api.math.vector.Vector3;
import com.dfsek.terra.api.platform.TerraPlugin;
import com.dfsek.terra.api.platform.entity.EntityType; import com.dfsek.terra.api.platform.entity.EntityType;
import com.dfsek.terra.api.structures.parser.exceptions.ParseException; import com.dfsek.terra.api.structures.parser.exceptions.ParseException;
import com.dfsek.terra.api.structures.parser.lang.ImplementationArguments; import com.dfsek.terra.api.structures.parser.lang.ImplementationArguments;
@@ -1,8 +1,8 @@
package com.dfsek.terra.api.structures.script.functions; package com.dfsek.terra.api.structures.script.functions;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.math.vector.Vector2; import com.dfsek.terra.api.math.vector.Vector2;
import com.dfsek.terra.api.math.vector.Vector3; import com.dfsek.terra.api.math.vector.Vector3;
import com.dfsek.terra.api.platform.TerraPlugin;
import com.dfsek.terra.api.structures.loot.LootTable; import com.dfsek.terra.api.structures.loot.LootTable;
import com.dfsek.terra.api.structures.parser.lang.ImplementationArguments; import com.dfsek.terra.api.structures.parser.lang.ImplementationArguments;
import com.dfsek.terra.api.structures.parser.lang.Returnable; import com.dfsek.terra.api.structures.parser.lang.Returnable;
@@ -1,8 +1,8 @@
package com.dfsek.terra.api.structures.script.functions; package com.dfsek.terra.api.structures.script.functions;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.math.vector.Vector2; import com.dfsek.terra.api.math.vector.Vector2;
import com.dfsek.terra.api.math.vector.Vector3; import com.dfsek.terra.api.math.vector.Vector3;
import com.dfsek.terra.api.platform.TerraPlugin;
import com.dfsek.terra.api.platform.block.BlockData; import com.dfsek.terra.api.platform.block.BlockData;
import com.dfsek.terra.api.structures.parser.exceptions.ParseException; import com.dfsek.terra.api.structures.parser.exceptions.ParseException;
import com.dfsek.terra.api.structures.parser.lang.ImplementationArguments; import com.dfsek.terra.api.structures.parser.lang.ImplementationArguments;
@@ -1,8 +1,8 @@
package com.dfsek.terra.api.structures.script.functions; package com.dfsek.terra.api.structures.script.functions;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.math.vector.Vector2; import com.dfsek.terra.api.math.vector.Vector2;
import com.dfsek.terra.api.math.vector.Vector3; import com.dfsek.terra.api.math.vector.Vector3;
import com.dfsek.terra.api.platform.TerraPlugin;
import com.dfsek.terra.api.structures.parser.lang.ImplementationArguments; import com.dfsek.terra.api.structures.parser.lang.ImplementationArguments;
import com.dfsek.terra.api.structures.parser.lang.Returnable; import com.dfsek.terra.api.structures.parser.lang.Returnable;
import com.dfsek.terra.api.structures.parser.lang.functions.Function; import com.dfsek.terra.api.structures.parser.lang.functions.Function;
@@ -1,8 +1,8 @@
package com.dfsek.terra.api.structures.script.functions; package com.dfsek.terra.api.structures.script.functions;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.math.vector.Vector2; import com.dfsek.terra.api.math.vector.Vector2;
import com.dfsek.terra.api.math.vector.Vector3; import com.dfsek.terra.api.math.vector.Vector3;
import com.dfsek.terra.api.platform.TerraPlugin;
import com.dfsek.terra.api.structures.parser.lang.ImplementationArguments; import com.dfsek.terra.api.structures.parser.lang.ImplementationArguments;
import com.dfsek.terra.api.structures.parser.lang.Returnable; import com.dfsek.terra.api.structures.parser.lang.Returnable;
import com.dfsek.terra.api.structures.parser.lang.functions.Function; import com.dfsek.terra.api.structures.parser.lang.functions.Function;
@@ -1,7 +1,7 @@
package com.dfsek.terra.api.structures.structure.buffer.items; package com.dfsek.terra.api.structures.structure.buffer.items;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.math.vector.Location; import com.dfsek.terra.api.math.vector.Location;
import com.dfsek.terra.api.platform.TerraPlugin;
import com.dfsek.terra.api.platform.block.state.BlockState; import com.dfsek.terra.api.platform.block.state.BlockState;
import com.dfsek.terra.api.platform.block.state.Container; import com.dfsek.terra.api.platform.block.state.Container;
import com.dfsek.terra.api.structures.loot.LootTable; import com.dfsek.terra.api.structures.loot.LootTable;
@@ -1,7 +1,7 @@
package com.dfsek.terra.api.structures.structure.buffer.items; package com.dfsek.terra.api.structures.structure.buffer.items;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.math.vector.Location; import com.dfsek.terra.api.math.vector.Location;
import com.dfsek.terra.api.platform.TerraPlugin;
import com.dfsek.terra.api.platform.block.state.BlockState; import com.dfsek.terra.api.platform.block.state.BlockState;
public class BufferedStateManipulator implements BufferedItem { public class BufferedStateManipulator implements BufferedItem {
@@ -1,7 +1,5 @@
package com.dfsek.terra.api.util; package com.dfsek.terra.api.util;
import com.dfsek.terra.debug.Debug;
import java.io.File; import java.io.File;
import java.io.FileOutputStream; import java.io.FileOutputStream;
import java.io.IOException; import java.io.IOException;
@@ -21,7 +19,6 @@ public class JarUtil {
if(parent != null) { if(parent != null) {
parent.mkdirs(); parent.mkdirs();
} }
Debug.info("Output does not already exist. Creating... ");
try(FileOutputStream out = new FileOutputStream(dest); InputStream in = fromJar.getInputStream(entry)) { try(FileOutputStream out = new FileOutputStream(dest); InputStream in = fromJar.getInputStream(entry)) {
byte[] buffer = new byte[(8192)]; byte[] buffer = new byte[(8192)];
@@ -1,38 +0,0 @@
package com.dfsek.terra.api.world.carving;
import com.dfsek.terra.api.math.vector.Vector3;
import com.dfsek.terra.api.platform.world.World;
import net.jafama.FastMath;
import java.util.Random;
import java.util.function.BiConsumer;
public abstract class Carver {
private final int minY;
private final int maxY;
private final double sixtyFourSq = FastMath.pow(64, 2);
private int carvingRadius = 4;
public Carver(int minY, int maxY) {
this.minY = minY;
this.maxY = maxY;
}
public abstract void carve(int chunkX, int chunkZ, World w, BiConsumer<Vector3, CarvingType> consumer);
public int getCarvingRadius() {
return carvingRadius;
}
public void setCarvingRadius(int carvingRadius) {
this.carvingRadius = carvingRadius;
}
public abstract Worm getWorm(long seed, Vector3 l);
public abstract boolean isChunkCarved(World w, int chunkX, int chunkZ, Random r);
public enum CarvingType {
CENTER, WALL, TOP, BOTTOM
}
}
@@ -1,119 +0,0 @@
package com.dfsek.terra.api.world.carving;
import com.dfsek.terra.api.math.vector.Vector3;
import net.jafama.FastMath;
import java.util.Random;
import java.util.function.BiConsumer;
public abstract class Worm {
private final Random r;
private final Vector3 origin;
private final Vector3 running;
private final int length;
private int topCut = 0;
private int bottomCut = 0;
private int[] radius = new int[] {0, 0, 0};
public Worm(int length, Random r, Vector3 origin) {
this.r = r;
this.length = length;
this.origin = origin;
this.running = origin;
}
public void setBottomCut(int bottomCut) {
this.bottomCut = bottomCut;
}
public void setTopCut(int topCut) {
this.topCut = topCut;
}
public Vector3 getOrigin() {
return origin;
}
public int getLength() {
return length;
}
public Vector3 getRunning() {
return running;
}
public WormPoint getPoint() {
return new WormPoint(running, radius, topCut, bottomCut);
}
public int[] getRadius() {
return radius;
}
public void setRadius(int[] radius) {
this.radius = radius;
}
public Random getRandom() {
return r;
}
public abstract void step();
public static class WormPoint {
private final Vector3 origin;
private final int topCut;
private final int bottomCut;
private final int[] rad;
public WormPoint(Vector3 origin, int[] rad, int topCut, int bottomCut) {
this.origin = origin;
this.rad = rad;
this.topCut = topCut;
this.bottomCut = bottomCut;
}
private static double ellipseEquation(int x, int y, int z, double xr, double yr, double zr) {
return (FastMath.pow2(x) / FastMath.pow2(xr + 0.5D)) + (FastMath.pow2(y) / FastMath.pow2(yr + 0.5D)) + (FastMath.pow2(z) / FastMath.pow2(zr + 0.5D));
}
public Vector3 getOrigin() {
return origin;
}
public int getRadius(int index) {
return rad[index];
}
public void carve(int chunkX, int chunkZ, BiConsumer<Vector3, Carver.CarvingType> consumer) {
int xRad = getRadius(0);
int yRad = getRadius(1);
int zRad = getRadius(2);
int originX = (chunkX << 4);
int originZ = (chunkZ << 4);
for(int x = -xRad - 1; x <= xRad + 1; x++) {
if(!(FastMath.floorDiv(origin.getBlockX() + x, 16) == chunkX)) continue;
for(int z = -zRad - 1; z <= zRad + 1; z++) {
if(!(FastMath.floorDiv(origin.getBlockZ() + z, 16) == chunkZ)) continue;
for(int y = -yRad - 1; y <= yRad + 1; y++) {
Vector3 position = origin.clone().add(new Vector3(x, y, z));
if(position.getY() < 0 || position.getY() > 255) continue;
double eq = ellipseEquation(x, y, z, xRad, yRad, zRad);
if(eq <= 1 &&
y >= -yRad - 1 + bottomCut && y <= yRad + 1 - topCut) {
consumer.accept(new Vector3(position.getBlockX() - originX, position.getBlockY(), position.getBlockZ() - originZ), Carver.CarvingType.CENTER);
} else if(eq <= 1.5) {
Carver.CarvingType type = Carver.CarvingType.WALL;
if(y <= -yRad - 1 + bottomCut) {
type = Carver.CarvingType.BOTTOM;
} else if(y >= yRad + 1 - topCut) {
type = Carver.CarvingType.TOP;
}
consumer.accept(new Vector3(position.getBlockX() - originX, position.getBlockY(), position.getBlockZ() - originZ), type);
}
}
}
}
}
}
}
@@ -1,10 +1,10 @@
package com.dfsek.terra.api.world.generation; package com.dfsek.terra.api.world.generation;
import com.dfsek.terra.api.platform.TerraPlugin; import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.platform.world.BiomeGrid; import com.dfsek.terra.api.platform.world.BiomeGrid;
import com.dfsek.terra.api.platform.world.World; import com.dfsek.terra.api.platform.world.World;
import com.dfsek.terra.api.platform.world.generator.ChunkGenerator; import com.dfsek.terra.api.platform.world.generator.ChunkGenerator;
import com.dfsek.terra.config.base.ConfigPack; import com.dfsek.terra.config.pack.ConfigPack;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import java.util.Random; import java.util.Random;
@@ -62,7 +62,7 @@ public abstract class Palette<E> {
private E m; private E m;
/** /**
* Constructs a PaletteLayer with a ProbabilityCollection of materials and a number of layers. * Constructs a PaletteLayerHolder with a ProbabilityCollection of materials and a number of layers.
* *
* @param type The collection of materials to choose from. * @param type The collection of materials to choose from.
* @param sampler Noise sampler to use * @param sampler Noise sampler to use
@@ -74,7 +74,7 @@ public abstract class Palette<E> {
} }
/** /**
* Constructs a PaletteLayer with a single Material and a number of layers. * Constructs a PaletteLayerHolder with a single Material and a number of layers.
* *
* @param type The material to use. * @param type The material to use.
* @param sampler Noise sampler to use * @param sampler Noise sampler to use
@@ -1,6 +1,4 @@
package com.dfsek.terra.biome.palette; package com.dfsek.terra.api.world.palette;
import com.dfsek.terra.api.world.palette.Palette;
public class SinglePalette<E> extends Palette<E> { public class SinglePalette<E> extends Palette<E> {
private final E item; private final E item;
@@ -1,4 +1,4 @@
package com.dfsek.terra.biome.palette; package com.dfsek.terra.api.world.palette.holder;
import com.dfsek.terra.api.platform.block.BlockData; import com.dfsek.terra.api.platform.block.BlockData;
import com.dfsek.terra.api.world.palette.Palette; import com.dfsek.terra.api.world.palette.Palette;
@@ -1,4 +1,4 @@
package com.dfsek.terra.biome.palette; package com.dfsek.terra.api.world.palette.holder;
import com.dfsek.terra.api.platform.block.BlockData; import com.dfsek.terra.api.platform.block.BlockData;
import com.dfsek.terra.api.world.palette.Palette; import com.dfsek.terra.api.world.palette.Palette;
@@ -1,16 +1,16 @@
package com.dfsek.terra.biome.palette; package com.dfsek.terra.api.world.palette.holder;
import com.dfsek.terra.api.math.ProbabilityCollection; import com.dfsek.terra.api.math.ProbabilityCollection;
import com.dfsek.terra.api.math.noise.samplers.NoiseSampler; import com.dfsek.terra.api.math.noise.samplers.NoiseSampler;
import com.dfsek.terra.api.platform.block.BlockData; import com.dfsek.terra.api.platform.block.BlockData;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
public class PaletteLayer { public class PaletteLayerHolder {
private final ProbabilityCollection<BlockData> layer; private final ProbabilityCollection<BlockData> layer;
private final NoiseSampler sampler; private final NoiseSampler sampler;
private final int size; private final int size;
public PaletteLayer(@NotNull ProbabilityCollection<BlockData> layer, NoiseSampler sampler, int size) { public PaletteLayerHolder(@NotNull ProbabilityCollection<BlockData> layer, NoiseSampler sampler, int size) {
this.layer = layer; this.layer = layer;
this.sampler = sampler; this.sampler = sampler;
this.size = size; this.size = size;
@@ -1,7 +1,7 @@
package com.dfsek.terra.api.world.tree.fractal; package com.dfsek.terra.api.world.tree.fractal;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.math.vector.Location; import com.dfsek.terra.api.math.vector.Location;
import com.dfsek.terra.api.platform.TerraPlugin;
import com.dfsek.terra.api.platform.block.BlockData; import com.dfsek.terra.api.platform.block.BlockData;
import com.dfsek.terra.api.platform.entity.Entity; import com.dfsek.terra.api.platform.entity.Entity;
import com.dfsek.terra.api.platform.entity.EntityType; import com.dfsek.terra.api.platform.entity.EntityType;
@@ -1,7 +1,7 @@
package com.dfsek.terra.api.world.tree.fractal.trees; package com.dfsek.terra.api.world.tree.fractal.trees;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.math.vector.Location; import com.dfsek.terra.api.math.vector.Location;
import com.dfsek.terra.api.platform.TerraPlugin;
import com.dfsek.terra.api.platform.block.BlockData; import com.dfsek.terra.api.platform.block.BlockData;
import com.dfsek.terra.api.world.tree.fractal.FractalTree; import com.dfsek.terra.api.world.tree.fractal.FractalTree;
import com.dfsek.terra.util.MaterialSet; import com.dfsek.terra.util.MaterialSet;
@@ -1,9 +1,9 @@
package com.dfsek.terra.api.world.tree.fractal.trees; 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.math.ProbabilityCollection;
import com.dfsek.terra.api.math.vector.Location; import com.dfsek.terra.api.math.vector.Location;
import com.dfsek.terra.api.math.vector.Vector3; import com.dfsek.terra.api.math.vector.Vector3;
import com.dfsek.terra.api.platform.TerraPlugin;
import com.dfsek.terra.api.platform.block.BlockData; import com.dfsek.terra.api.platform.block.BlockData;
import com.dfsek.terra.api.platform.handle.WorldHandle; import com.dfsek.terra.api.platform.handle.WorldHandle;
import com.dfsek.terra.api.world.tree.fractal.FractalTree; import com.dfsek.terra.api.world.tree.fractal.FractalTree;
@@ -1,8 +1,8 @@
package com.dfsek.terra.api.world.tree.fractal.trees; package com.dfsek.terra.api.world.tree.fractal.trees;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.math.vector.Location; import com.dfsek.terra.api.math.vector.Location;
import com.dfsek.terra.api.math.vector.Vector3; import com.dfsek.terra.api.math.vector.Vector3;
import com.dfsek.terra.api.platform.TerraPlugin;
import com.dfsek.terra.api.platform.block.BlockData; import com.dfsek.terra.api.platform.block.BlockData;
import com.dfsek.terra.api.world.tree.fractal.FractalTree; import com.dfsek.terra.api.world.tree.fractal.FractalTree;
import com.dfsek.terra.api.world.tree.fractal.TreeGeometry; import com.dfsek.terra.api.world.tree.fractal.TreeGeometry;
@@ -1,7 +1,7 @@
package com.dfsek.terra.api.world.tree.fractal.trees; package com.dfsek.terra.api.world.tree.fractal.trees;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.math.vector.Location; import com.dfsek.terra.api.math.vector.Location;
import com.dfsek.terra.api.platform.TerraPlugin;
import com.dfsek.terra.api.platform.block.BlockData; import com.dfsek.terra.api.platform.block.BlockData;
import com.dfsek.terra.api.world.tree.fractal.FractalTree; import com.dfsek.terra.api.world.tree.fractal.FractalTree;
import com.dfsek.terra.util.MaterialSet; import com.dfsek.terra.util.MaterialSet;
@@ -1,9 +1,9 @@
package com.dfsek.terra.api.world.tree.fractal.trees; 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.math.ProbabilityCollection;
import com.dfsek.terra.api.math.vector.Location; import com.dfsek.terra.api.math.vector.Location;
import com.dfsek.terra.api.math.vector.Vector3; import com.dfsek.terra.api.math.vector.Vector3;
import com.dfsek.terra.api.platform.TerraPlugin;
import com.dfsek.terra.api.platform.block.BlockData; import com.dfsek.terra.api.platform.block.BlockData;
import com.dfsek.terra.api.platform.handle.WorldHandle; import com.dfsek.terra.api.platform.handle.WorldHandle;
import com.dfsek.terra.api.world.tree.fractal.FractalTree; import com.dfsek.terra.api.world.tree.fractal.FractalTree;
@@ -1,7 +1,7 @@
package com.dfsek.terra.api.world.tree.fractal.trees; package com.dfsek.terra.api.world.tree.fractal.trees;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.math.vector.Location; import com.dfsek.terra.api.math.vector.Location;
import com.dfsek.terra.api.platform.TerraPlugin;
import com.dfsek.terra.api.platform.block.BlockData; import com.dfsek.terra.api.platform.block.BlockData;
import com.dfsek.terra.api.world.tree.fractal.FractalTree; import com.dfsek.terra.api.world.tree.fractal.FractalTree;
import com.dfsek.terra.util.MaterialSet; import com.dfsek.terra.util.MaterialSet;
@@ -1,9 +1,9 @@
package com.dfsek.terra.api.world.tree.fractal.trees; 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.math.ProbabilityCollection;
import com.dfsek.terra.api.math.vector.Location; import com.dfsek.terra.api.math.vector.Location;
import com.dfsek.terra.api.math.vector.Vector3; import com.dfsek.terra.api.math.vector.Vector3;
import com.dfsek.terra.api.platform.TerraPlugin;
import com.dfsek.terra.api.platform.block.BlockData; import com.dfsek.terra.api.platform.block.BlockData;
import com.dfsek.terra.api.platform.handle.WorldHandle; import com.dfsek.terra.api.platform.handle.WorldHandle;
import com.dfsek.terra.api.world.tree.fractal.FractalTree; import com.dfsek.terra.api.world.tree.fractal.FractalTree;
@@ -1,8 +1,8 @@
package com.dfsek.terra.api.world.tree.fractal.trees; package com.dfsek.terra.api.world.tree.fractal.trees;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.math.vector.Location; import com.dfsek.terra.api.math.vector.Location;
import com.dfsek.terra.api.math.vector.Vector3; import com.dfsek.terra.api.math.vector.Vector3;
import com.dfsek.terra.api.platform.TerraPlugin;
import com.dfsek.terra.api.platform.block.BlockData; import com.dfsek.terra.api.platform.block.BlockData;
import com.dfsek.terra.api.world.tree.fractal.FractalTree; import com.dfsek.terra.api.world.tree.fractal.FractalTree;
import com.dfsek.terra.api.world.tree.fractal.TreeGeometry; import com.dfsek.terra.api.world.tree.fractal.TreeGeometry;
@@ -1,10 +1,10 @@
package com.dfsek.terra.async; package com.dfsek.terra.async;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.math.vector.Location; import com.dfsek.terra.api.math.vector.Location;
import com.dfsek.terra.api.math.vector.Vector3; import com.dfsek.terra.api.math.vector.Vector3;
import com.dfsek.terra.api.platform.TerraPlugin;
import com.dfsek.terra.api.world.biome.TerraBiome;
import com.dfsek.terra.biome.BiomeProvider; import com.dfsek.terra.biome.BiomeProvider;
import com.dfsek.terra.biome.TerraBiome;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import java.util.function.Consumer; import java.util.function.Consumer;
@@ -1,8 +1,8 @@
package com.dfsek.terra.async; package com.dfsek.terra.async;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.math.vector.Location; import com.dfsek.terra.api.math.vector.Location;
import com.dfsek.terra.api.math.vector.Vector3; import com.dfsek.terra.api.math.vector.Vector3;
import com.dfsek.terra.api.platform.TerraPlugin;
import com.dfsek.terra.api.platform.world.World; import com.dfsek.terra.api.platform.world.World;
import com.dfsek.terra.biome.BiomeProvider; import com.dfsek.terra.biome.BiomeProvider;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@@ -1,14 +1,14 @@
package com.dfsek.terra.async; package com.dfsek.terra.async;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.math.MathUtil; import com.dfsek.terra.api.math.MathUtil;
import com.dfsek.terra.api.math.vector.Location; import com.dfsek.terra.api.math.vector.Location;
import com.dfsek.terra.api.math.vector.Vector3; import com.dfsek.terra.api.math.vector.Vector3;
import com.dfsek.terra.api.platform.TerraPlugin;
import com.dfsek.terra.api.structures.structure.Rotation; import com.dfsek.terra.api.structures.structure.Rotation;
import com.dfsek.terra.api.util.FastRandom; import com.dfsek.terra.api.util.FastRandom;
import com.dfsek.terra.biome.BiomeProvider; import com.dfsek.terra.biome.BiomeProvider;
import com.dfsek.terra.biome.UserDefinedBiome; import com.dfsek.terra.biome.UserDefinedBiome;
import com.dfsek.terra.population.items.TerraStructure; import com.dfsek.terra.world.population.items.TerraStructure;
import net.jafama.FastMath; import net.jafama.FastMath;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@@ -3,7 +3,6 @@ package com.dfsek.terra.biome;
import com.dfsek.terra.api.math.vector.Location; import com.dfsek.terra.api.math.vector.Location;
import com.dfsek.terra.api.math.vector.Vector2; import com.dfsek.terra.api.math.vector.Vector2;
import com.dfsek.terra.api.math.vector.Vector3; import com.dfsek.terra.api.math.vector.Vector3;
import com.dfsek.terra.api.world.biome.TerraBiome;
public interface BiomeProvider { public interface BiomeProvider {
TerraBiome getBiome(int x, int z); TerraBiome getBiome(int x, int z);
@@ -1,6 +1,5 @@
package com.dfsek.terra.biome; package com.dfsek.terra.biome;
import com.dfsek.terra.api.world.biome.TerraBiome;
import com.dfsek.terra.registry.TerraRegistry; import com.dfsek.terra.registry.TerraRegistry;
import net.jafama.FastMath; import net.jafama.FastMath;
@@ -1,13 +1,12 @@
package com.dfsek.terra.biome; package com.dfsek.terra.biome;
import com.dfsek.tectonic.exception.ConfigException; import com.dfsek.tectonic.exception.ConfigException;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.math.noise.samplers.NoiseSampler; import com.dfsek.terra.api.math.noise.samplers.NoiseSampler;
import com.dfsek.terra.api.math.vector.Vector2; import com.dfsek.terra.api.math.vector.Vector2;
import com.dfsek.terra.api.platform.TerraPlugin;
import com.dfsek.terra.api.world.biome.TerraBiome;
import com.dfsek.terra.biome.pipeline.BiomeHolder; import com.dfsek.terra.biome.pipeline.BiomeHolder;
import com.dfsek.terra.biome.pipeline.BiomePipeline; import com.dfsek.terra.biome.pipeline.BiomePipeline;
import com.dfsek.terra.generation.config.NoiseBuilder; import com.dfsek.terra.world.generation.config.NoiseBuilder;
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;
@@ -1,9 +1,10 @@
package com.dfsek.terra.api.world.biome; package com.dfsek.terra.biome;
import com.dfsek.terra.api.math.ProbabilityCollection; import com.dfsek.terra.api.math.ProbabilityCollection;
import com.dfsek.terra.api.platform.world.Biome; import com.dfsek.terra.api.platform.world.Biome;
import com.dfsek.terra.api.platform.world.World; import com.dfsek.terra.api.platform.world.World;
import com.dfsek.terra.api.world.biome.Generator;
import java.util.Set; import java.util.Set;
@@ -4,7 +4,6 @@ import com.dfsek.terra.api.math.ProbabilityCollection;
import com.dfsek.terra.api.platform.world.Biome; import com.dfsek.terra.api.platform.world.Biome;
import com.dfsek.terra.api.platform.world.World; import com.dfsek.terra.api.platform.world.World;
import com.dfsek.terra.api.world.biome.Generator; import com.dfsek.terra.api.world.biome.Generator;
import com.dfsek.terra.api.world.biome.TerraBiome;
import com.dfsek.terra.config.builder.GeneratorBuilder; import com.dfsek.terra.config.builder.GeneratorBuilder;
import com.dfsek.terra.config.templates.BiomeTemplate; import com.dfsek.terra.config.templates.BiomeTemplate;
@@ -1,6 +1,6 @@
package com.dfsek.terra.biome.pipeline; package com.dfsek.terra.biome.pipeline;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.biome.TerraBiome;
import com.dfsek.terra.biome.pipeline.expand.BiomeExpander; import com.dfsek.terra.biome.pipeline.expand.BiomeExpander;
import com.dfsek.terra.biome.pipeline.mutator.BiomeMutator; import com.dfsek.terra.biome.pipeline.mutator.BiomeMutator;
import com.dfsek.terra.biome.pipeline.source.BiomeSource; import com.dfsek.terra.biome.pipeline.source.BiomeSource;
@@ -1,7 +1,7 @@
package com.dfsek.terra.biome.pipeline; package com.dfsek.terra.biome.pipeline;
import com.dfsek.terra.api.math.vector.Vector2; import com.dfsek.terra.api.math.vector.Vector2;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.biome.TerraBiome;
import com.dfsek.terra.biome.pipeline.expand.BiomeExpander; import com.dfsek.terra.biome.pipeline.expand.BiomeExpander;
import com.dfsek.terra.biome.pipeline.mutator.BiomeMutator; import com.dfsek.terra.biome.pipeline.mutator.BiomeMutator;
import com.dfsek.terra.biome.pipeline.source.BiomeSource; import com.dfsek.terra.biome.pipeline.source.BiomeSource;
@@ -1,6 +1,6 @@
package com.dfsek.terra.biome.pipeline.expand; package com.dfsek.terra.biome.pipeline.expand;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.biome.TerraBiome;
public interface BiomeExpander { public interface BiomeExpander {
TerraBiome getBetween(double x, double z, TerraBiome... others); TerraBiome getBetween(double x, double z, TerraBiome... others);
@@ -2,7 +2,7 @@ package com.dfsek.terra.biome.pipeline.expand;
import com.dfsek.terra.api.math.MathUtil; import com.dfsek.terra.api.math.MathUtil;
import com.dfsek.terra.api.math.noise.samplers.NoiseSampler; import com.dfsek.terra.api.math.noise.samplers.NoiseSampler;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.biome.TerraBiome;
public class FractalExpander implements BiomeExpander { public class FractalExpander implements BiomeExpander {
private final NoiseSampler sampler; private final NoiseSampler sampler;
@@ -1,6 +1,6 @@
package com.dfsek.terra.biome.pipeline.mutator; package com.dfsek.terra.biome.pipeline.mutator;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.biome.TerraBiome;
import com.dfsek.terra.biome.pipeline.BiomeHolder; import com.dfsek.terra.biome.pipeline.BiomeHolder;
public interface BiomeMutator { public interface BiomeMutator {
@@ -2,7 +2,7 @@ package com.dfsek.terra.biome.pipeline.mutator;
import com.dfsek.terra.api.math.ProbabilityCollection; import com.dfsek.terra.api.math.ProbabilityCollection;
import com.dfsek.terra.api.math.noise.samplers.NoiseSampler; import com.dfsek.terra.api.math.noise.samplers.NoiseSampler;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.biome.TerraBiome;
import java.util.Map; import java.util.Map;
@@ -2,7 +2,7 @@ package com.dfsek.terra.biome.pipeline.mutator;
import com.dfsek.terra.api.math.ProbabilityCollection; import com.dfsek.terra.api.math.ProbabilityCollection;
import com.dfsek.terra.api.math.noise.samplers.NoiseSampler; import com.dfsek.terra.api.math.noise.samplers.NoiseSampler;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.biome.TerraBiome;
public class BorderMutator implements BiomeMutator { public class BorderMutator implements BiomeMutator {
private final String border; private final String border;
@@ -2,7 +2,7 @@ package com.dfsek.terra.biome.pipeline.mutator;
import com.dfsek.terra.api.math.ProbabilityCollection; import com.dfsek.terra.api.math.ProbabilityCollection;
import com.dfsek.terra.api.math.noise.samplers.NoiseSampler; import com.dfsek.terra.api.math.noise.samplers.NoiseSampler;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.biome.TerraBiome;
import java.util.Map; import java.util.Map;
@@ -2,7 +2,7 @@ package com.dfsek.terra.biome.pipeline.mutator;
import com.dfsek.terra.api.math.ProbabilityCollection; import com.dfsek.terra.api.math.ProbabilityCollection;
import com.dfsek.terra.api.math.noise.samplers.NoiseSampler; import com.dfsek.terra.api.math.noise.samplers.NoiseSampler;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.biome.TerraBiome;
public class ReplaceMutator implements BiomeMutator { public class ReplaceMutator implements BiomeMutator {
private final String replaceableTag; private final String replaceableTag;
@@ -2,7 +2,7 @@ package com.dfsek.terra.biome.pipeline.mutator;
import com.dfsek.terra.api.math.MathUtil; import com.dfsek.terra.api.math.MathUtil;
import com.dfsek.terra.api.math.noise.samplers.NoiseSampler; import com.dfsek.terra.api.math.noise.samplers.NoiseSampler;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.biome.TerraBiome;
import java.util.Objects; import java.util.Objects;
@@ -1,6 +1,6 @@
package com.dfsek.terra.biome.pipeline.source; package com.dfsek.terra.biome.pipeline.source;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.biome.TerraBiome;
public interface BiomeSource { public interface BiomeSource {
TerraBiome getBiome(double x, double z); TerraBiome getBiome(double x, double z);
@@ -2,7 +2,7 @@ package com.dfsek.terra.biome.pipeline.source;
import com.dfsek.terra.api.math.ProbabilityCollection; import com.dfsek.terra.api.math.ProbabilityCollection;
import com.dfsek.terra.api.math.noise.samplers.NoiseSampler; import com.dfsek.terra.api.math.noise.samplers.NoiseSampler;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.biome.TerraBiome;
public class RandomSource implements BiomeSource { public class RandomSource implements BiomeSource {
private final ProbabilityCollection<TerraBiome> biomes; private final ProbabilityCollection<TerraBiome> biomes;
@@ -1,41 +0,0 @@
package com.dfsek.terra.biome.postprocessing;
import com.dfsek.terra.api.math.noise.samplers.FastNoiseLite;
import com.dfsek.terra.api.math.vector.Vector2;
/**
* Offset a coordinate pair by an amount.
*/
public class CoordinatePerturb {
private final FastNoiseLite perturbX;
private final FastNoiseLite perturbZ;
private final double amplitude;
/**
* Create a CoordinatePerturb object with a given frequency, amplitude, and seed.
*
* @param frequency Noise frequency
* @param amplitude Offset amplitude
* @param seed Noise seed
*/
public CoordinatePerturb(double frequency, double amplitude, long seed) {
perturbX = new FastNoiseLite((int) seed);
perturbX.setNoiseType(FastNoiseLite.NoiseType.OpenSimplex2);
perturbX.setFrequency(frequency);
perturbZ = new FastNoiseLite((int) seed + 1);
perturbZ.setNoiseType(FastNoiseLite.NoiseType.OpenSimplex2);
perturbZ.setFrequency(frequency);
this.amplitude = amplitude;
}
/**
* Offset a coordinate pair
*
* @param x X coordinate
* @param z Z coordinate
* @return Vector2 containing offset coordinates
*/
public Vector2 getShiftedCoords(int x, int z) {
return new Vector2(perturbX.getNoise(x, z) * amplitude + x, perturbZ.getNoise(x, z) * amplitude + z);
}
}
@@ -1,35 +0,0 @@
package com.dfsek.terra.biome.postprocessing;
import com.dfsek.terra.api.math.noise.samplers.FastNoiseLite;
import com.dfsek.terra.api.math.noise.samplers.NoiseSampler;
import net.jafama.FastMath;
/**
* Class to hold noise function to determine erosion.
*/
public class ErosionNoise {
private final double thresh;
private final NoiseSampler noise;
public ErosionNoise(double freq1, double thresh, int octaves, long seed) {
FastNoiseLite main = new FastNoiseLite((int) (seed + 1));
main.setNoiseType(FastNoiseLite.NoiseType.OpenSimplex2);
main.setFractalType(FastNoiseLite.FractalType.FBm);
main.setFractalOctaves(octaves);
main.setFrequency(freq1);
this.thresh = thresh;
this.noise = main;
}
/**
* Get whether a location is eroded
*
* @param x X coordinate
* @param z Z coordinate
* @return Whether location is eroded
*/
public boolean isEroded(int x, int z) {
double abs = FastMath.pow(noise.getNoise(x, z), 2);
return abs < thresh;
}
}
@@ -1,13 +1,14 @@
package com.dfsek.terra.api; package com.dfsek.terra.config;
import com.dfsek.tectonic.loading.TypeRegistry; import com.dfsek.tectonic.loading.TypeRegistry;
import com.dfsek.terra.api.LoaderRegistrar;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.math.GridSpawn; import com.dfsek.terra.api.math.GridSpawn;
import com.dfsek.terra.api.math.ProbabilityCollection; import com.dfsek.terra.api.math.ProbabilityCollection;
import com.dfsek.terra.api.math.Range; import com.dfsek.terra.api.math.Range;
import com.dfsek.terra.api.math.noise.samplers.Normalizer; import com.dfsek.terra.api.math.noise.samplers.Normalizer;
import com.dfsek.terra.api.platform.TerraPlugin; import com.dfsek.terra.api.world.palette.holder.PaletteHolder;
import com.dfsek.terra.biome.palette.PaletteHolder; import com.dfsek.terra.api.world.palette.holder.PaletteLayerHolder;
import com.dfsek.terra.biome.palette.PaletteLayer;
import com.dfsek.terra.config.loaders.MaterialSetLoader; import com.dfsek.terra.config.loaders.MaterialSetLoader;
import com.dfsek.terra.config.loaders.ProbabilityCollectionLoader; import com.dfsek.terra.config.loaders.ProbabilityCollectionLoader;
import com.dfsek.terra.config.loaders.RangeLoader; import com.dfsek.terra.config.loaders.RangeLoader;
@@ -19,14 +20,14 @@ import com.dfsek.terra.config.loaders.config.OreHolderLoader;
import com.dfsek.terra.config.loaders.config.TreeLayerLoader; import com.dfsek.terra.config.loaders.config.TreeLayerLoader;
import com.dfsek.terra.config.loaders.palette.PaletteHolderLoader; import com.dfsek.terra.config.loaders.palette.PaletteHolderLoader;
import com.dfsek.terra.config.loaders.palette.PaletteLayerLoader; import com.dfsek.terra.config.loaders.palette.PaletteLayerLoader;
import com.dfsek.terra.generation.config.NoiseBuilder;
import com.dfsek.terra.population.items.flora.FloraLayer;
import com.dfsek.terra.population.items.flora.TerraFlora;
import com.dfsek.terra.population.items.ores.Ore;
import com.dfsek.terra.population.items.ores.OreConfig;
import com.dfsek.terra.population.items.ores.OreHolder;
import com.dfsek.terra.population.items.tree.TreeLayer;
import com.dfsek.terra.util.MaterialSet; import com.dfsek.terra.util.MaterialSet;
import com.dfsek.terra.world.generation.config.NoiseBuilder;
import com.dfsek.terra.world.population.items.flora.FloraLayer;
import com.dfsek.terra.world.population.items.flora.TerraFlora;
import com.dfsek.terra.world.population.items.ores.Ore;
import com.dfsek.terra.world.population.items.ores.OreConfig;
import com.dfsek.terra.world.population.items.ores.OreHolder;
import com.dfsek.terra.world.population.items.tree.TreeLayer;
public class GenericLoaders implements LoaderRegistrar { public class GenericLoaders implements LoaderRegistrar {
private final TerraPlugin main; private final TerraPlugin main;
@@ -41,7 +42,7 @@ public class GenericLoaders implements LoaderRegistrar {
.registerLoader(Range.class, new RangeLoader()) .registerLoader(Range.class, new RangeLoader())
.registerLoader(GridSpawn.class, new GridSpawnLoader()) .registerLoader(GridSpawn.class, new GridSpawnLoader())
.registerLoader(PaletteHolder.class, new PaletteHolderLoader()) .registerLoader(PaletteHolder.class, new PaletteHolderLoader())
.registerLoader(PaletteLayer.class, new PaletteLayerLoader()) .registerLoader(PaletteLayerHolder.class, new PaletteLayerLoader())
.registerLoader(FloraLayer.class, new FloraLayerLoader()) .registerLoader(FloraLayer.class, new FloraLayerLoader())
.registerLoader(Ore.Type.class, (t, o, l) -> Ore.Type.valueOf(o.toString())) .registerLoader(Ore.Type.class, (t, o, l) -> Ore.Type.valueOf(o.toString()))
.registerLoader(OreConfig.class, new OreConfigLoader()) .registerLoader(OreConfig.class, new OreConfigLoader())
@@ -1,13 +1,12 @@
package com.dfsek.terra.config.base; package com.dfsek.terra.config;
import com.dfsek.tectonic.annotations.Default; import com.dfsek.tectonic.annotations.Default;
import com.dfsek.tectonic.annotations.Value; import com.dfsek.tectonic.annotations.Value;
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.tectonic.loading.ConfigLoader; import com.dfsek.tectonic.loading.ConfigLoader;
import com.dfsek.terra.api.platform.TerraPlugin; import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.util.JarUtil; import com.dfsek.terra.api.util.JarUtil;
import com.dfsek.terra.debug.Debug;
import java.io.File; import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
@@ -73,15 +72,15 @@ public class PluginConfig implements ConfigTemplate {
try(JarFile jar = new JarFile(new File(TerraPlugin.class.getProtectionDomain().getCodeSource().getLocation().toURI()))) { try(JarFile jar = new JarFile(new File(TerraPlugin.class.getProtectionDomain().getCodeSource().getLocation().toURI()))) {
JarUtil.copyResourcesToDirectory(jar, "packs", new File(main.getDataFolder(), "packs").toString()); JarUtil.copyResourcesToDirectory(jar, "packs", new File(main.getDataFolder(), "packs").toString());
} catch(IOException | URISyntaxException e) { } catch(IOException | URISyntaxException e) {
Debug.error("Failed to dump default config files!"); main.getDebugLogger().error("Failed to dump default config files!");
e.printStackTrace(); e.printStackTrace();
Debug.error("Report this to Terra!"); main.getDebugLogger().error("Report this to Terra!");
} }
} }
} catch(ConfigException | IOException e) { } catch(ConfigException | IOException e) {
e.printStackTrace(); e.printStackTrace();
} }
logger.info("Debug: " + isDebug()); logger.info("DebugLogger: " + isDebug());
} }
public String getLanguage() { public String getLanguage() {
@@ -3,9 +3,9 @@ package com.dfsek.terra.config.builder;
import com.dfsek.terra.api.math.noise.samplers.ConstantSampler; import com.dfsek.terra.api.math.noise.samplers.ConstantSampler;
import com.dfsek.terra.api.math.noise.samplers.ExpressionSampler; import com.dfsek.terra.api.math.noise.samplers.ExpressionSampler;
import com.dfsek.terra.api.math.noise.samplers.NoiseSampler; import com.dfsek.terra.api.math.noise.samplers.NoiseSampler;
import com.dfsek.terra.biome.palette.PaletteHolder; import com.dfsek.terra.api.world.palette.holder.PaletteHolder;
import com.dfsek.terra.generation.config.NoiseBuilder; import com.dfsek.terra.world.generation.WorldGenerator;
import com.dfsek.terra.generation.config.WorldGenerator; import com.dfsek.terra.world.generation.config.NoiseBuilder;
import parsii.eval.Scope; import parsii.eval.Scope;
import parsii.tokenizer.ParseException; import parsii.tokenizer.ParseException;
@@ -1,10 +1,10 @@
package com.dfsek.terra.config.factories; package com.dfsek.terra.config.factories;
import com.dfsek.terra.api.platform.TerraPlugin; import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.biome.TerraBiome;
import com.dfsek.terra.biome.UserDefinedBiome; import com.dfsek.terra.biome.UserDefinedBiome;
import com.dfsek.terra.config.base.ConfigPack;
import com.dfsek.terra.config.builder.GeneratorBuilder; import com.dfsek.terra.config.builder.GeneratorBuilder;
import com.dfsek.terra.config.pack.ConfigPack;
import com.dfsek.terra.config.templates.BiomeTemplate; import com.dfsek.terra.config.templates.BiomeTemplate;
public class BiomeFactory implements TerraFactory<BiomeTemplate, TerraBiome> { public class BiomeFactory implements TerraFactory<BiomeTemplate, TerraBiome> {
@@ -1,14 +1,14 @@
package com.dfsek.terra.config.factories; package com.dfsek.terra.config.factories;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.math.noise.samplers.FastNoiseLite; import com.dfsek.terra.api.math.noise.samplers.FastNoiseLite;
import com.dfsek.terra.api.platform.TerraPlugin;
import com.dfsek.terra.api.platform.block.BlockData; import com.dfsek.terra.api.platform.block.BlockData;
import com.dfsek.terra.api.world.flora.Flora; import com.dfsek.terra.api.world.flora.Flora;
import com.dfsek.terra.api.world.palette.NoisePalette; import com.dfsek.terra.api.world.palette.NoisePalette;
import com.dfsek.terra.api.world.palette.Palette; import com.dfsek.terra.api.world.palette.Palette;
import com.dfsek.terra.biome.palette.PaletteLayer; import com.dfsek.terra.api.world.palette.holder.PaletteLayerHolder;
import com.dfsek.terra.config.templates.FloraTemplate; import com.dfsek.terra.config.templates.FloraTemplate;
import com.dfsek.terra.population.items.flora.TerraFlora; import com.dfsek.terra.world.population.items.flora.TerraFlora;
public class FloraFactory implements TerraFactory<FloraTemplate, Flora> { public class FloraFactory implements TerraFactory<FloraTemplate, Flora> {
@Override @Override
@@ -16,7 +16,7 @@ public class FloraFactory implements TerraFactory<FloraTemplate, Flora> {
FastNoiseLite whiteNoise = new FastNoiseLite(); FastNoiseLite whiteNoise = new FastNoiseLite();
whiteNoise.setNoiseType(FastNoiseLite.NoiseType.WhiteNoise); whiteNoise.setNoiseType(FastNoiseLite.NoiseType.WhiteNoise);
Palette<BlockData> palette = new NoisePalette<>(whiteNoise, false); Palette<BlockData> palette = new NoisePalette<>(whiteNoise, false);
for(PaletteLayer layer : config.getFloraPalette()) { for(PaletteLayerHolder layer : config.getFloraPalette()) {
palette.add(layer.getLayer(), layer.getSize(), layer.getSampler()); palette.add(layer.getLayer(), layer.getSize(), layer.getSampler());
} }
return new TerraFlora(palette, config.doPhysics(), config.isCeiling(), config.getIrrigable(), config.getSpawnable(), config.getReplaceable(), config.getRotatable(), config.getMaxPlacements(), config.getSearch(), config.isSpawnBlacklist(), config.getIrrigableOffset(), main); return new TerraFlora(palette, config.doPhysics(), config.isCeiling(), config.getIrrigable(), config.getSpawnable(), config.getReplaceable(), config.getRotatable(), config.getMaxPlacements(), config.getSearch(), config.isSpawnBlacklist(), config.getIrrigableOffset(), main);
@@ -1,11 +1,11 @@
package com.dfsek.terra.config.factories; package com.dfsek.terra.config.factories;
import com.dfsek.terra.api.platform.TerraPlugin; import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.platform.block.BlockData; import com.dfsek.terra.api.platform.block.BlockData;
import com.dfsek.terra.config.templates.OreTemplate; import com.dfsek.terra.config.templates.OreTemplate;
import com.dfsek.terra.population.items.ores.DeformedSphereOre; import com.dfsek.terra.world.population.items.ores.DeformedSphereOre;
import com.dfsek.terra.population.items.ores.Ore; import com.dfsek.terra.world.population.items.ores.Ore;
import com.dfsek.terra.population.items.ores.VanillaOre; import com.dfsek.terra.world.population.items.ores.VanillaOre;
public class OreFactory implements TerraFactory<OreTemplate, Ore> { public class OreFactory implements TerraFactory<OreTemplate, Ore> {
@Override @Override
@@ -1,17 +1,17 @@
package com.dfsek.terra.config.factories; package com.dfsek.terra.config.factories;
import com.dfsek.terra.api.platform.TerraPlugin; import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.platform.block.BlockData; import com.dfsek.terra.api.platform.block.BlockData;
import com.dfsek.terra.api.world.palette.NoisePalette; import com.dfsek.terra.api.world.palette.NoisePalette;
import com.dfsek.terra.api.world.palette.Palette; import com.dfsek.terra.api.world.palette.Palette;
import com.dfsek.terra.biome.palette.PaletteLayer; import com.dfsek.terra.api.world.palette.holder.PaletteLayerHolder;
import com.dfsek.terra.config.templates.PaletteTemplate; import com.dfsek.terra.config.templates.PaletteTemplate;
public class PaletteFactory implements TerraFactory<PaletteTemplate, Palette<BlockData>> { public class PaletteFactory implements TerraFactory<PaletteTemplate, Palette<BlockData>> {
@Override @Override
public Palette<BlockData> build(PaletteTemplate config, TerraPlugin main) { public Palette<BlockData> build(PaletteTemplate config, TerraPlugin main) {
NoisePalette<BlockData> palette = new NoisePalette<>(config.getNoise().build(2403), config.getNoise().getDimensions() == 2); NoisePalette<BlockData> palette = new NoisePalette<>(config.getNoise().build(2403), config.getNoise().getDimensions() == 2);
for(PaletteLayer layer : config.getPalette()) { for(PaletteLayerHolder layer : config.getPalette()) {
palette.add(layer.getLayer(), layer.getSize(), layer.getSampler()); palette.add(layer.getLayer(), layer.getSize(), layer.getSampler());
} }
return palette; return palette;
@@ -1,8 +1,8 @@
package com.dfsek.terra.config.factories; package com.dfsek.terra.config.factories;
import com.dfsek.terra.api.platform.TerraPlugin; import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.config.templates.StructureTemplate; import com.dfsek.terra.config.templates.StructureTemplate;
import com.dfsek.terra.population.items.TerraStructure; import com.dfsek.terra.world.population.items.TerraStructure;
public class StructureFactory implements TerraFactory<StructureTemplate, TerraStructure> { public class StructureFactory implements TerraFactory<StructureTemplate, TerraStructure> {
@Override @Override
@@ -2,7 +2,7 @@ package com.dfsek.terra.config.factories;
import com.dfsek.tectonic.config.ConfigTemplate; import com.dfsek.tectonic.config.ConfigTemplate;
import com.dfsek.tectonic.exception.LoadException; import com.dfsek.tectonic.exception.LoadException;
import com.dfsek.terra.api.platform.TerraPlugin; import com.dfsek.terra.api.core.TerraPlugin;
public interface TerraFactory<C extends ConfigTemplate, O> { public interface TerraFactory<C extends ConfigTemplate, O> {
O build(C config, TerraPlugin main) throws LoadException; O build(C config, TerraPlugin main) throws LoadException;
@@ -1,9 +1,9 @@
package com.dfsek.terra.config.factories; package com.dfsek.terra.config.factories;
import com.dfsek.terra.api.platform.TerraPlugin; import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.world.tree.Tree; import com.dfsek.terra.api.world.tree.Tree;
import com.dfsek.terra.config.templates.TreeTemplate; import com.dfsek.terra.config.templates.TreeTemplate;
import com.dfsek.terra.population.items.tree.TerraTree; import com.dfsek.terra.world.population.items.tree.TerraTree;
public class TreeFactory implements TerraFactory<TreeTemplate, Tree> { public class TreeFactory implements TerraFactory<TreeTemplate, Tree> {
@Override @Override
@@ -1,4 +1,4 @@
package com.dfsek.terra.config.files; package com.dfsek.terra.config.fileloaders;
import com.dfsek.tectonic.exception.ConfigException; import com.dfsek.tectonic.exception.ConfigException;
@@ -1,4 +1,4 @@
package com.dfsek.terra.config.files; package com.dfsek.terra.config.fileloaders;
import java.io.File; import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
@@ -1,4 +1,4 @@
package com.dfsek.terra.config.files; package com.dfsek.terra.config.fileloaders;
import com.dfsek.tectonic.exception.ConfigException; import com.dfsek.tectonic.exception.ConfigException;
import com.dfsek.terra.api.util.GlueList; import com.dfsek.terra.api.util.GlueList;
@@ -1,4 +1,4 @@
package com.dfsek.terra.config.files; package com.dfsek.terra.config.fileloaders;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
@@ -1,9 +1,8 @@
package com.dfsek.terra.config.lang; package com.dfsek.terra.config.lang;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.language.Language; import com.dfsek.terra.api.language.Language;
import com.dfsek.terra.api.platform.CommandSender; import com.dfsek.terra.api.platform.CommandSender;
import com.dfsek.terra.api.platform.TerraPlugin;
import com.dfsek.terra.debug.Debug;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
@@ -24,9 +23,8 @@ public final class LangUtil {
try(JarFile jar = new JarFile(new File(TerraPlugin.class.getProtectionDomain().getCodeSource().getLocation().toURI()))) { try(JarFile jar = new JarFile(new File(TerraPlugin.class.getProtectionDomain().getCodeSource().getLocation().toURI()))) {
copyResourcesToDirectory(jar, "lang", file.toString()); copyResourcesToDirectory(jar, "lang", file.toString());
} catch(IOException | URISyntaxException e) { } catch(IOException | URISyntaxException e) {
Debug.error("Failed to dump language files!"); main.getDebugLogger().error("Failed to dump language files!");
e.printStackTrace(); main.getDebugLogger().stack(e);
Debug.error("Report this to Terra!");
} }
try { try {
File file1 = new File(file, langID + ".yml"); File file1 = new File(file, langID + ".yml");
@@ -3,10 +3,10 @@ package com.dfsek.terra.config.loaders;
import com.dfsek.terra.api.math.ProbabilityCollection; import com.dfsek.terra.api.math.ProbabilityCollection;
import com.dfsek.terra.api.platform.block.BlockData; import com.dfsek.terra.api.platform.block.BlockData;
import com.dfsek.terra.api.platform.block.MaterialData; import com.dfsek.terra.api.platform.block.MaterialData;
import com.dfsek.terra.api.world.biome.TerraBiome;
import com.dfsek.terra.api.world.flora.Flora; import com.dfsek.terra.api.world.flora.Flora;
import com.dfsek.terra.api.world.palette.Palette; import com.dfsek.terra.api.world.palette.Palette;
import com.dfsek.terra.api.world.tree.Tree; import com.dfsek.terra.api.world.tree.Tree;
import com.dfsek.terra.biome.TerraBiome;
import java.lang.reflect.Type; import java.lang.reflect.Type;
import java.util.Map; import java.util.Map;
@@ -9,8 +9,8 @@ import com.dfsek.terra.api.math.Range;
import com.dfsek.terra.api.math.noise.samplers.FastNoiseLite; import com.dfsek.terra.api.math.noise.samplers.FastNoiseLite;
import com.dfsek.terra.api.world.flora.Flora; import com.dfsek.terra.api.world.flora.Flora;
import com.dfsek.terra.config.loaders.Types; import com.dfsek.terra.config.loaders.Types;
import com.dfsek.terra.generation.config.NoiseBuilder; import com.dfsek.terra.world.generation.config.NoiseBuilder;
import com.dfsek.terra.population.items.flora.FloraLayer; import com.dfsek.terra.world.population.items.flora.FloraLayer;
import java.lang.reflect.Type; import java.lang.reflect.Type;
import java.util.Map; import java.util.Map;
@@ -7,7 +7,7 @@ import com.dfsek.tectonic.loading.ConfigLoader;
import com.dfsek.tectonic.loading.TypeLoader; import com.dfsek.tectonic.loading.TypeLoader;
import com.dfsek.terra.api.math.noise.samplers.FastNoiseLite; import com.dfsek.terra.api.math.noise.samplers.FastNoiseLite;
import com.dfsek.terra.api.math.noise.samplers.Normalizer; import com.dfsek.terra.api.math.noise.samplers.Normalizer;
import com.dfsek.terra.generation.config.NoiseBuilder; import com.dfsek.terra.world.generation.config.NoiseBuilder;
import java.lang.reflect.Type; import java.lang.reflect.Type;
import java.util.Map; import java.util.Map;
@@ -3,7 +3,7 @@ package com.dfsek.terra.config.loaders.config;
import com.dfsek.tectonic.loading.ConfigLoader; import com.dfsek.tectonic.loading.ConfigLoader;
import com.dfsek.tectonic.loading.TypeLoader; import com.dfsek.tectonic.loading.TypeLoader;
import com.dfsek.terra.api.math.Range; import com.dfsek.terra.api.math.Range;
import com.dfsek.terra.population.items.ores.OreConfig; import com.dfsek.terra.world.population.items.ores.OreConfig;
import java.lang.reflect.Type; import java.lang.reflect.Type;
import java.util.Map; import java.util.Map;
@@ -3,9 +3,9 @@ package com.dfsek.terra.config.loaders.config;
import com.dfsek.tectonic.exception.LoadException; import com.dfsek.tectonic.exception.LoadException;
import com.dfsek.tectonic.loading.ConfigLoader; import com.dfsek.tectonic.loading.ConfigLoader;
import com.dfsek.tectonic.loading.TypeLoader; import com.dfsek.tectonic.loading.TypeLoader;
import com.dfsek.terra.population.items.ores.Ore; import com.dfsek.terra.world.population.items.ores.Ore;
import com.dfsek.terra.population.items.ores.OreConfig; import com.dfsek.terra.world.population.items.ores.OreConfig;
import com.dfsek.terra.population.items.ores.OreHolder; import com.dfsek.terra.world.population.items.ores.OreHolder;
import java.lang.reflect.Type; import java.lang.reflect.Type;
import java.util.Map; import java.util.Map;
@@ -10,8 +10,8 @@ import com.dfsek.terra.api.math.Range;
import com.dfsek.terra.api.math.noise.samplers.FastNoiseLite; import com.dfsek.terra.api.math.noise.samplers.FastNoiseLite;
import com.dfsek.terra.api.world.tree.Tree; import com.dfsek.terra.api.world.tree.Tree;
import com.dfsek.terra.config.loaders.Types; import com.dfsek.terra.config.loaders.Types;
import com.dfsek.terra.generation.config.NoiseBuilder; import com.dfsek.terra.world.generation.config.NoiseBuilder;
import com.dfsek.terra.population.items.tree.TreeLayer; import com.dfsek.terra.world.population.items.tree.TreeLayer;
import java.lang.reflect.Type; import java.lang.reflect.Type;
import java.util.Map; import java.util.Map;
@@ -3,19 +3,18 @@ package com.dfsek.terra.config.loaders.config.biome;
import com.dfsek.tectonic.exception.LoadException; import com.dfsek.tectonic.exception.LoadException;
import com.dfsek.tectonic.loading.ConfigLoader; import com.dfsek.tectonic.loading.ConfigLoader;
import com.dfsek.tectonic.loading.TypeLoader; import com.dfsek.tectonic.loading.TypeLoader;
import com.dfsek.terra.api.platform.TerraPlugin; import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.world.biome.TerraBiome;
import com.dfsek.terra.biome.BiomeProvider; import com.dfsek.terra.biome.BiomeProvider;
import com.dfsek.terra.biome.ImageBiomeProvider; import com.dfsek.terra.biome.ImageBiomeProvider;
import com.dfsek.terra.biome.StandardBiomeProvider; import com.dfsek.terra.biome.StandardBiomeProvider;
import com.dfsek.terra.biome.TerraBiome;
import com.dfsek.terra.biome.pipeline.BiomePipeline; import com.dfsek.terra.biome.pipeline.BiomePipeline;
import com.dfsek.terra.biome.pipeline.source.BiomeSource; import com.dfsek.terra.biome.pipeline.source.BiomeSource;
import com.dfsek.terra.biome.pipeline.stages.SeededBuilder; import com.dfsek.terra.biome.pipeline.stages.SeededBuilder;
import com.dfsek.terra.config.files.Loader; import com.dfsek.terra.config.fileloaders.Loader;
import com.dfsek.terra.config.loaders.config.NoiseBuilderLoader; import com.dfsek.terra.config.loaders.config.NoiseBuilderLoader;
import com.dfsek.terra.debug.Debug;
import com.dfsek.terra.generation.config.NoiseBuilder;
import com.dfsek.terra.registry.TerraRegistry; import com.dfsek.terra.registry.TerraRegistry;
import com.dfsek.terra.world.generation.config.NoiseBuilder;
import javax.imageio.ImageIO; import javax.imageio.ImageIO;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
@@ -66,7 +65,7 @@ public class BiomeProviderBuilderLoader implements TypeLoader<BiomeProvider.Biom
SeededBuilder<BiomeSource> source = new SourceBuilderLoader().load(BiomeSource.class, pipeline.get("source"), loader); SeededBuilder<BiomeSource> source = new SourceBuilderLoader().load(BiomeSource.class, pipeline.get("source"), loader);
BiomePipeline biomePipeline = pipelineBuilder.build(source.build(seed), seed); BiomePipeline biomePipeline = pipelineBuilder.build(source.build(seed), seed);
Debug.info("Biome Pipeline scale factor: " + biomePipeline.getSize()); main.getDebugLogger().info("Biome Pipeline scale factor: " + biomePipeline.getSize());
return biomePipeline; return biomePipeline;
}, main); }, main);
@@ -4,13 +4,13 @@ import com.dfsek.tectonic.exception.LoadException;
import com.dfsek.tectonic.loading.ConfigLoader; import com.dfsek.tectonic.loading.ConfigLoader;
import com.dfsek.tectonic.loading.TypeLoader; import com.dfsek.tectonic.loading.TypeLoader;
import com.dfsek.terra.api.math.ProbabilityCollection; import com.dfsek.terra.api.math.ProbabilityCollection;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.biome.TerraBiome;
import com.dfsek.terra.biome.pipeline.source.BiomeSource; import com.dfsek.terra.biome.pipeline.source.BiomeSource;
import com.dfsek.terra.biome.pipeline.source.RandomSource; import com.dfsek.terra.biome.pipeline.source.RandomSource;
import com.dfsek.terra.biome.pipeline.stages.SeededBuilder; import com.dfsek.terra.biome.pipeline.stages.SeededBuilder;
import com.dfsek.terra.config.loaders.Types; import com.dfsek.terra.config.loaders.Types;
import com.dfsek.terra.config.loaders.config.NoiseBuilderLoader; import com.dfsek.terra.config.loaders.config.NoiseBuilderLoader;
import com.dfsek.terra.generation.config.NoiseBuilder; import com.dfsek.terra.world.generation.config.NoiseBuilder;
import java.lang.reflect.Type; import java.lang.reflect.Type;
import java.util.Map; import java.util.Map;
@@ -4,7 +4,7 @@ import com.dfsek.tectonic.exception.LoadException;
import com.dfsek.tectonic.loading.ConfigLoader; import com.dfsek.tectonic.loading.ConfigLoader;
import com.dfsek.tectonic.loading.TypeLoader; import com.dfsek.tectonic.loading.TypeLoader;
import com.dfsek.terra.api.math.ProbabilityCollection; import com.dfsek.terra.api.math.ProbabilityCollection;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.biome.TerraBiome;
import com.dfsek.terra.biome.pipeline.expand.FractalExpander; import com.dfsek.terra.biome.pipeline.expand.FractalExpander;
import com.dfsek.terra.biome.pipeline.mutator.BorderListMutator; import com.dfsek.terra.biome.pipeline.mutator.BorderListMutator;
import com.dfsek.terra.biome.pipeline.mutator.BorderMutator; import com.dfsek.terra.biome.pipeline.mutator.BorderMutator;
@@ -18,7 +18,7 @@ import com.dfsek.terra.biome.pipeline.stages.Stage;
import com.dfsek.terra.config.loaders.SelfProbabilityCollectionLoader; import com.dfsek.terra.config.loaders.SelfProbabilityCollectionLoader;
import com.dfsek.terra.config.loaders.Types; import com.dfsek.terra.config.loaders.Types;
import com.dfsek.terra.config.loaders.config.NoiseBuilderLoader; import com.dfsek.terra.config.loaders.config.NoiseBuilderLoader;
import com.dfsek.terra.generation.config.NoiseBuilder; import com.dfsek.terra.world.generation.config.NoiseBuilder;
import java.lang.reflect.Type; import java.lang.reflect.Type;
import java.util.HashMap; import java.util.HashMap;
@@ -5,8 +5,8 @@ import com.dfsek.tectonic.loading.ConfigLoader;
import com.dfsek.tectonic.loading.TypeLoader; import com.dfsek.tectonic.loading.TypeLoader;
import com.dfsek.terra.api.platform.block.BlockData; import com.dfsek.terra.api.platform.block.BlockData;
import com.dfsek.terra.api.world.palette.Palette; import com.dfsek.terra.api.world.palette.Palette;
import com.dfsek.terra.biome.palette.PaletteHolder; import com.dfsek.terra.api.world.palette.holder.PaletteHolder;
import com.dfsek.terra.biome.palette.PaletteHolderBuilder; import com.dfsek.terra.api.world.palette.holder.PaletteHolderBuilder;
import com.dfsek.terra.config.loaders.Types; import com.dfsek.terra.config.loaders.Types;
import java.lang.reflect.Type; import java.lang.reflect.Type;

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