mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-06-18 23:01:03 +00:00
API compiles now
This commit is contained in:
+5
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.api.util.logging;
|
package com.dfsek.terra.api;
|
||||||
|
|
||||||
public interface Logger {
|
public interface Logger {
|
||||||
void info(String message);
|
void info(String message);
|
||||||
@@ -6,4 +6,8 @@ public interface Logger {
|
|||||||
void warning(String message);
|
void warning(String message);
|
||||||
|
|
||||||
void severe(String message);
|
void severe(String message);
|
||||||
|
|
||||||
|
default void stack(Throwable t) {
|
||||||
|
t.printStackTrace();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -2,12 +2,15 @@ package com.dfsek.terra.api;
|
|||||||
|
|
||||||
import com.dfsek.terra.api.addon.TerraAddon;
|
import com.dfsek.terra.api.addon.TerraAddon;
|
||||||
import com.dfsek.terra.api.config.ConfigPack;
|
import com.dfsek.terra.api.config.ConfigPack;
|
||||||
|
import com.dfsek.terra.api.config.PluginConfig;
|
||||||
import com.dfsek.terra.api.event.EventManager;
|
import com.dfsek.terra.api.event.EventManager;
|
||||||
import com.dfsek.terra.api.handle.ItemHandle;
|
import com.dfsek.terra.api.handle.ItemHandle;
|
||||||
import com.dfsek.terra.api.handle.WorldHandle;
|
import com.dfsek.terra.api.handle.WorldHandle;
|
||||||
|
import com.dfsek.terra.api.lang.Language;
|
||||||
import com.dfsek.terra.api.profiler.Profiler;
|
import com.dfsek.terra.api.profiler.Profiler;
|
||||||
import com.dfsek.terra.api.registry.CheckedRegistry;
|
import com.dfsek.terra.api.registry.CheckedRegistry;
|
||||||
import com.dfsek.terra.api.registry.Registry;
|
import com.dfsek.terra.api.registry.Registry;
|
||||||
|
import com.dfsek.terra.api.util.JarUtil;
|
||||||
import com.dfsek.terra.api.world.TerraWorld;
|
import com.dfsek.terra.api.world.TerraWorld;
|
||||||
import com.dfsek.terra.api.world.World;
|
import com.dfsek.terra.api.world.World;
|
||||||
|
|
||||||
@@ -44,7 +47,7 @@ public interface TerraPlugin extends LoaderRegistrar {
|
|||||||
|
|
||||||
String platformName();
|
String platformName();
|
||||||
|
|
||||||
DebugLogger getDebugLogger();
|
Logger getDebugLogger();
|
||||||
|
|
||||||
EventManager getEventManager();
|
EventManager getEventManager();
|
||||||
|
|
||||||
|
|||||||
@@ -67,20 +67,6 @@ public enum BlockFace {
|
|||||||
return modZ;
|
return modZ;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the normal vector corresponding to this block face.
|
|
||||||
*
|
|
||||||
* @return the normal vector
|
|
||||||
*/
|
|
||||||
@NotNull
|
|
||||||
public Vector3 getDirection() {
|
|
||||||
Vector3 direction = new Vector3Impl(modX, modY, modZ);
|
|
||||||
if(modX != 0 || modY != 0 || modZ != 0) {
|
|
||||||
direction.normalize();
|
|
||||||
}
|
|
||||||
return direction;
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public BlockFace getOppositeFace() {
|
public BlockFace getOppositeFace() {
|
||||||
switch(this) {
|
switch(this) {
|
||||||
|
|||||||
@@ -0,0 +1,33 @@
|
|||||||
|
package com.dfsek.terra.api.config;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.TerraPlugin;
|
||||||
|
|
||||||
|
public interface PluginConfig {
|
||||||
|
void load(TerraPlugin main);
|
||||||
|
|
||||||
|
String getLanguage();
|
||||||
|
|
||||||
|
boolean isDebugCommands();
|
||||||
|
|
||||||
|
boolean isDebugLogging();
|
||||||
|
|
||||||
|
boolean isDebugProfiler();
|
||||||
|
|
||||||
|
boolean isDebugScript();
|
||||||
|
|
||||||
|
long getDataSaveInterval();
|
||||||
|
|
||||||
|
int getBiomeSearchResolution();
|
||||||
|
|
||||||
|
int getCarverCacheSize();
|
||||||
|
|
||||||
|
int getStructureCache();
|
||||||
|
|
||||||
|
int getSamplerCache();
|
||||||
|
|
||||||
|
int getMaxRecursion();
|
||||||
|
|
||||||
|
int getBiomeCache();
|
||||||
|
|
||||||
|
int getProviderCache();
|
||||||
|
}
|
||||||
@@ -3,6 +3,7 @@ package com.dfsek.terra.api.config;
|
|||||||
import com.dfsek.terra.api.registry.Registry;
|
import com.dfsek.terra.api.registry.Registry;
|
||||||
import com.dfsek.terra.api.world.TerraWorld;
|
import com.dfsek.terra.api.world.TerraWorld;
|
||||||
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
||||||
|
import com.dfsek.terra.api.world.generator.SamplerCache;
|
||||||
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
@@ -14,7 +15,5 @@ public interface WorldConfig {
|
|||||||
|
|
||||||
SamplerCache getSamplerCache();
|
SamplerCache getSamplerCache();
|
||||||
|
|
||||||
Set<UserDefinedCarver> getCarvers();
|
|
||||||
|
|
||||||
BiomeProvider getProvider();
|
BiomeProvider getProvider();
|
||||||
}
|
}
|
||||||
|
|||||||
+7
-5
@@ -6,6 +6,8 @@ import com.dfsek.terra.api.event.events.Cancellable;
|
|||||||
import com.dfsek.terra.api.event.events.PackEvent;
|
import com.dfsek.terra.api.event.events.PackEvent;
|
||||||
import com.dfsek.terra.api.block.Block;
|
import com.dfsek.terra.api.block.Block;
|
||||||
import com.dfsek.terra.api.block.state.Container;
|
import com.dfsek.terra.api.block.state.Container;
|
||||||
|
import com.dfsek.terra.api.structure.LootTable;
|
||||||
|
import com.dfsek.terra.api.structure.Structure;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -16,14 +18,14 @@ public class LootPopulateEvent extends AbstractCancellable implements PackEvent,
|
|||||||
private final Container container;
|
private final Container container;
|
||||||
private LootTable table;
|
private LootTable table;
|
||||||
private final ConfigPack pack;
|
private final ConfigPack pack;
|
||||||
private final StructureScript script;
|
private final Structure structure;
|
||||||
|
|
||||||
public LootPopulateEvent(Block block, Container container, LootTable table, ConfigPack pack, StructureScript script) {
|
public LootPopulateEvent(Block block, Container container, LootTable table, ConfigPack pack, Structure structure) {
|
||||||
this.block = block;
|
this.block = block;
|
||||||
this.container = container;
|
this.container = container;
|
||||||
this.table = table;
|
this.table = table;
|
||||||
this.pack = pack;
|
this.pack = pack;
|
||||||
this.script = script;
|
this.structure = structure;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -71,7 +73,7 @@ public class LootPopulateEvent extends AbstractCancellable implements PackEvent,
|
|||||||
*
|
*
|
||||||
* @return Structure script.
|
* @return Structure script.
|
||||||
*/
|
*/
|
||||||
public StructureScript getStructureScript() {
|
public Structure getStructure() {
|
||||||
return script;
|
return structure;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
package com.dfsek.terra.api.lang;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.entity.CommandSender;
|
||||||
|
|
||||||
|
import java.util.logging.Level;
|
||||||
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
|
public interface Language {
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
Message getMessage(String id);
|
||||||
|
|
||||||
|
void log(String messageID, Level level, Logger logger, String... args);
|
||||||
|
|
||||||
|
void send(String messageID, CommandSender sender, String... args);
|
||||||
|
}
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.config.lang;
|
package com.dfsek.terra.api.lang;
|
||||||
|
|
||||||
|
|
||||||
import com.dfsek.terra.api.entity.CommandSender;
|
import com.dfsek.terra.api.entity.CommandSender;
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
package com.dfsek.terra.api.structure;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.inventory.Inventory;
|
||||||
|
import com.dfsek.terra.api.inventory.ItemStack;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
|
public interface LootTable {
|
||||||
|
/**
|
||||||
|
* Fetches a list of ItemStacks from the loot table using the given Random instance.
|
||||||
|
*
|
||||||
|
* @param r The Random instance to use.
|
||||||
|
* @return List<ItemStack> - The list of loot fetched.
|
||||||
|
*/
|
||||||
|
List<ItemStack> getLoot(Random r);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fills an Inventory with loot.
|
||||||
|
*
|
||||||
|
* @param i The Inventory to fill.
|
||||||
|
* @param r The The Random instance to use.
|
||||||
|
*/
|
||||||
|
void fillInventory(Inventory i, Random r);
|
||||||
|
}
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
package com.dfsek.terra.api.structure;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.structure.buffer.Buffer;
|
||||||
|
import com.dfsek.terra.api.structure.rotation.Rotation;
|
||||||
|
import com.dfsek.terra.api.vector.Location;
|
||||||
|
import com.dfsek.terra.api.world.Chunk;
|
||||||
|
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
|
public interface Structure {
|
||||||
|
/**
|
||||||
|
* Paste the structure at a location
|
||||||
|
*
|
||||||
|
* @param location Location to paste structure
|
||||||
|
* @param rotation Rotation of structure
|
||||||
|
* @return Whether generation was successful
|
||||||
|
*/
|
||||||
|
@SuppressWarnings("try")
|
||||||
|
boolean generate(Location location, Random random, Rotation rotation);
|
||||||
|
|
||||||
|
@SuppressWarnings("try")
|
||||||
|
boolean generate(Location location, Chunk chunk, Random random, Rotation rotation);
|
||||||
|
|
||||||
|
@SuppressWarnings("try")
|
||||||
|
boolean test(Location location, Random random, Rotation rotation);
|
||||||
|
|
||||||
|
@SuppressWarnings("try")
|
||||||
|
boolean generate(Buffer buffer, Random random, Rotation rotation, int recursions);
|
||||||
|
|
||||||
|
@SuppressWarnings("try")
|
||||||
|
boolean generateDirect(Location location, Random random, Rotation rotation);
|
||||||
|
|
||||||
|
String getId();
|
||||||
|
}
|
||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.dfsek.terra.api.util;
|
package com.dfsek.terra.api.util;
|
||||||
|
|
||||||
import com.dfsek.terra.api.util.FastRandom;
|
|
||||||
import com.dfsek.terra.api.world.generator.Sampler;
|
import com.dfsek.terra.api.world.generator.Sampler;
|
||||||
import net.jafama.FastMath;
|
import net.jafama.FastMath;
|
||||||
|
|
||||||
@@ -43,19 +42,6 @@ public final class MathUtil {
|
|||||||
return FastMath.sqrt(standardDeviation / length);
|
return FastMath.sqrt(standardDeviation / length);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the carver seed for a chunk.
|
|
||||||
*
|
|
||||||
* @param chunkX Chunk's X coordinate
|
|
||||||
* @param chunkZ Chunk's Z coordinate
|
|
||||||
* @param seed World seed
|
|
||||||
* @return long - The carver seed.
|
|
||||||
*/
|
|
||||||
public static long getCarverChunkSeed(int chunkX, int chunkZ, long seed) {
|
|
||||||
Random r = new FastRandom(seed);
|
|
||||||
return chunkX * r.nextLong() ^ chunkZ * r.nextLong() ^ seed;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static long hashToLong(String s) {
|
public static long hashToLong(String s) {
|
||||||
if(s == null) {
|
if(s == null) {
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
@@ -1,12 +1,14 @@
|
|||||||
package com.dfsek.terra.api.world;
|
package com.dfsek.terra.api.world;
|
||||||
|
|
||||||
|
|
||||||
import com.dfsek.terra.api.vector.LocationImpl;
|
import com.dfsek.terra.api.block.BlockType;
|
||||||
|
import com.dfsek.terra.api.vector.Location;
|
||||||
|
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
public interface Tree {
|
public interface Tree {
|
||||||
boolean plant(LocationImpl l, Random r);
|
boolean plant(Location l, Random r);
|
||||||
|
|
||||||
MaterialSet getSpawnable();
|
Set<BlockType> getSpawnable();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package com.dfsek.terra.api.world.generator;
|
||||||
|
|
||||||
|
public interface SamplerCache {
|
||||||
|
Sampler get(int x, int z);
|
||||||
|
|
||||||
|
Sampler getChunk(int cx, int cz);
|
||||||
|
|
||||||
|
void clear();
|
||||||
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
package com.dfsek.terra.api.math;
|
package com.dfsek.terra.api.math;
|
||||||
|
|
||||||
import com.dfsek.terra.api.util.MathUtil;
|
import com.dfsek.terra.api.util.PopulationUtil;
|
||||||
import com.dfsek.terra.api.vector.Vector3;
|
import com.dfsek.terra.api.vector.Vector3;
|
||||||
import com.dfsek.terra.vector.Vector3Impl;
|
import com.dfsek.terra.vector.Vector3Impl;
|
||||||
import com.dfsek.terra.api.util.FastRandom;
|
import com.dfsek.terra.api.util.FastRandom;
|
||||||
@@ -57,7 +57,7 @@ public class GridSpawn {
|
|||||||
* @return Vector representing spawnpoint
|
* @return Vector representing spawnpoint
|
||||||
*/
|
*/
|
||||||
public Vector3 getChunkSpawn(int structureChunkX, int structureChunkZ, long seed) {
|
public Vector3 getChunkSpawn(int structureChunkX, int structureChunkZ, long seed) {
|
||||||
Random r = new FastRandom(MathUtil.getCarverChunkSeed(structureChunkX, structureChunkZ, seed + salt));
|
Random r = new FastRandom(PopulationUtil.getCarverChunkSeed(structureChunkX, structureChunkZ, seed + salt));
|
||||||
int offsetX = r.nextInt(width);
|
int offsetX = r.nextInt(width);
|
||||||
int offsetZ = r.nextInt(width);
|
int offsetZ = r.nextInt(width);
|
||||||
int sx = structureChunkX * (width + 2 * separation) + offsetX;
|
int sx = structureChunkX * (width + 2 * separation) + offsetX;
|
||||||
|
|||||||
+4
-14
@@ -15,7 +15,7 @@ import java.util.Random;
|
|||||||
/**
|
/**
|
||||||
* Class representation of a Loot Table to populate chest loot.
|
* Class representation of a Loot Table to populate chest loot.
|
||||||
*/
|
*/
|
||||||
public class LootTable {
|
public class LootTableImpl implements com.dfsek.terra.api.structure.LootTable {
|
||||||
private final List<Pool> pools = new GlueList<>();
|
private final List<Pool> pools = new GlueList<>();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -24,7 +24,7 @@ public class LootTable {
|
|||||||
* @param json The JSON String representing the loot table.
|
* @param json The JSON String representing the loot table.
|
||||||
* @throws ParseException if malformed JSON is passed.
|
* @throws ParseException if malformed JSON is passed.
|
||||||
*/
|
*/
|
||||||
public LootTable(String json, TerraPlugin main) throws ParseException {
|
public LootTableImpl(String json, TerraPlugin main) throws ParseException {
|
||||||
JSONParser jsonParser = new JSONParser();
|
JSONParser jsonParser = new JSONParser();
|
||||||
Object tableJSON = jsonParser.parse(json);
|
Object tableJSON = jsonParser.parse(json);
|
||||||
JSONArray poolArray = (JSONArray) ((JSONObject) tableJSON).get("pools");
|
JSONArray poolArray = (JSONArray) ((JSONObject) tableJSON).get("pools");
|
||||||
@@ -33,12 +33,7 @@ public class LootTable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
@Override
|
||||||
* Fetches a list of ItemStacks from the loot table using the given Random instance.
|
|
||||||
*
|
|
||||||
* @param r The Random instance to use.
|
|
||||||
* @return List<ItemStack> - The list of loot fetched.
|
|
||||||
*/
|
|
||||||
public List<ItemStack> getLoot(Random r) {
|
public List<ItemStack> getLoot(Random r) {
|
||||||
List<ItemStack> itemList = new GlueList<>();
|
List<ItemStack> itemList = new GlueList<>();
|
||||||
for(Pool pool : pools) {
|
for(Pool pool : pools) {
|
||||||
@@ -47,12 +42,7 @@ public class LootTable {
|
|||||||
return itemList;
|
return itemList;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
@Override
|
||||||
* Fills an Inventory with loot.
|
|
||||||
*
|
|
||||||
* @param i The Inventory to fill.
|
|
||||||
* @param r The The Random instance to use.
|
|
||||||
*/
|
|
||||||
public void fillInventory(Inventory i, Random r) {
|
public void fillInventory(Inventory i, Random r) {
|
||||||
List<ItemStack> loot = getLoot(r);
|
List<ItemStack> loot = getLoot(r);
|
||||||
for(ItemStack stack : loot) {
|
for(ItemStack stack : loot) {
|
||||||
+17
-16
@@ -1,10 +1,12 @@
|
|||||||
package com.dfsek.terra.api.structures.script;
|
package com.dfsek.terra.api.structures.script;
|
||||||
|
|
||||||
import com.dfsek.terra.api.TerraPlugin;
|
import com.dfsek.terra.api.TerraPlugin;
|
||||||
|
import com.dfsek.terra.api.structure.LootTable;
|
||||||
|
import com.dfsek.terra.api.structure.Structure;
|
||||||
|
import com.dfsek.terra.api.vector.Location;
|
||||||
import com.dfsek.terra.vector.LocationImpl;
|
import com.dfsek.terra.vector.LocationImpl;
|
||||||
import com.dfsek.terra.api.world.Chunk;
|
import com.dfsek.terra.api.world.Chunk;
|
||||||
import com.dfsek.terra.api.registry.Registry;
|
import com.dfsek.terra.api.registry.Registry;
|
||||||
import com.dfsek.terra.api.structures.loot.LootTable;
|
|
||||||
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;
|
||||||
import com.dfsek.terra.api.structures.parser.lang.Block;
|
import com.dfsek.terra.api.structures.parser.lang.Block;
|
||||||
@@ -44,14 +46,14 @@ import java.nio.charset.Charset;
|
|||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
import java.util.concurrent.ExecutionException;
|
import java.util.concurrent.ExecutionException;
|
||||||
|
|
||||||
public class StructureScript {
|
public class StructureScript implements Structure {
|
||||||
private final Block block;
|
private final Block block;
|
||||||
private final String id;
|
private final String id;
|
||||||
private final Cache<LocationImpl, StructureBuffer> cache;
|
private final Cache<LocationImpl, StructureBuffer> cache;
|
||||||
private final TerraPlugin main;
|
private final TerraPlugin main;
|
||||||
private String tempID;
|
private String tempID;
|
||||||
|
|
||||||
public StructureScript(InputStream inputStream, TerraPlugin main, Registry<StructureScript> registry, Registry<LootTable> lootRegistry, Registry<FunctionBuilder<?>> functionRegistry) throws ParseException {
|
public StructureScript(InputStream inputStream, TerraPlugin main, Registry<Structure> registry, Registry<LootTable> lootRegistry, Registry<FunctionBuilder<?>> functionRegistry) throws ParseException {
|
||||||
Parser parser;
|
Parser parser;
|
||||||
try {
|
try {
|
||||||
parser = new Parser(IOUtils.toString(inputStream, Charset.defaultCharset()));
|
parser = new Parser(IOUtils.toString(inputStream, Charset.defaultCharset()));
|
||||||
@@ -110,15 +112,9 @@ public class StructureScript {
|
|||||||
this.cache = CacheBuilder.newBuilder().maximumSize(main.getTerraConfig().getStructureCache()).build();
|
this.cache = CacheBuilder.newBuilder().maximumSize(main.getTerraConfig().getStructureCache()).build();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
@Override
|
||||||
* Paste the structure at a location
|
|
||||||
*
|
|
||||||
* @param location Location to paste structure
|
|
||||||
* @param rotation Rotation of structure
|
|
||||||
* @return Whether generation was successful
|
|
||||||
*/
|
|
||||||
@SuppressWarnings("try")
|
@SuppressWarnings("try")
|
||||||
public boolean execute(LocationImpl location, Random random, Rotation rotation) {
|
public boolean generate(Location location, Random random, Rotation rotation) {
|
||||||
try(ProfileFrame ignore = main.getProfiler().profile("terrascript:" + id)) {
|
try(ProfileFrame ignore = main.getProfiler().profile("terrascript:" + id)) {
|
||||||
StructureBuffer buffer = new StructureBuffer(location);
|
StructureBuffer buffer = new StructureBuffer(location);
|
||||||
boolean level = applyBlock(new TerraImplementationArguments(buffer, rotation, random, 0));
|
boolean level = applyBlock(new TerraImplementationArguments(buffer, rotation, random, 0));
|
||||||
@@ -127,8 +123,9 @@ public class StructureScript {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
@SuppressWarnings("try")
|
@SuppressWarnings("try")
|
||||||
public boolean execute(LocationImpl location, Chunk chunk, Random random, Rotation rotation) {
|
public boolean generate(Location location, Chunk chunk, Random random, Rotation rotation) {
|
||||||
try(ProfileFrame ignore = main.getProfiler().profile("terrascript_chunk:" + id)) {
|
try(ProfileFrame ignore = main.getProfiler().profile("terrascript_chunk:" + id)) {
|
||||||
StructureBuffer buffer = computeBuffer(location, random, rotation);
|
StructureBuffer buffer = computeBuffer(location, random, rotation);
|
||||||
buffer.paste(chunk);
|
buffer.paste(chunk);
|
||||||
@@ -136,15 +133,16 @@ public class StructureScript {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
@SuppressWarnings("try")
|
@SuppressWarnings("try")
|
||||||
public boolean test(LocationImpl location, Random random, Rotation rotation) {
|
public boolean test(Location location, Random random, Rotation rotation) {
|
||||||
try(ProfileFrame ignore = main.getProfiler().profile("terrascript_test:" + id)) {
|
try(ProfileFrame ignore = main.getProfiler().profile("terrascript_test:" + id)) {
|
||||||
StructureBuffer buffer = computeBuffer(location, random, rotation);
|
StructureBuffer buffer = computeBuffer(location, random, rotation);
|
||||||
return buffer.succeeded();
|
return buffer.succeeded();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private StructureBuffer computeBuffer(LocationImpl location, Random random, Rotation rotation) {
|
private StructureBuffer computeBuffer(Location location, Random random, Rotation rotation) {
|
||||||
try {
|
try {
|
||||||
return cache.get(location, () -> {
|
return cache.get(location, () -> {
|
||||||
StructureBuffer buf = new StructureBuffer(location);
|
StructureBuffer buf = new StructureBuffer(location);
|
||||||
@@ -156,21 +154,24 @@ public class StructureScript {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
@SuppressWarnings("try")
|
@SuppressWarnings("try")
|
||||||
public boolean executeInBuffer(Buffer buffer, Random random, Rotation rotation, int recursions) {
|
public boolean generate(Buffer buffer, Random random, Rotation rotation, int recursions) {
|
||||||
try(ProfileFrame ignore = main.getProfiler().profile("terrascript_recursive:" + id)) {
|
try(ProfileFrame ignore = main.getProfiler().profile("terrascript_recursive:" + id)) {
|
||||||
return applyBlock(new TerraImplementationArguments(buffer, rotation, random, recursions));
|
return applyBlock(new TerraImplementationArguments(buffer, rotation, random, recursions));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
@SuppressWarnings("try")
|
@SuppressWarnings("try")
|
||||||
public boolean executeDirect(LocationImpl location, Random random, Rotation rotation) {
|
public boolean generateDirect(Location location, Random random, Rotation rotation) {
|
||||||
try(ProfileFrame ignore = main.getProfiler().profile("terrascript_direct:" + id)) {
|
try(ProfileFrame ignore = main.getProfiler().profile("terrascript_direct:" + id)) {
|
||||||
DirectBuffer buffer = new DirectBuffer(location);
|
DirectBuffer buffer = new DirectBuffer(location);
|
||||||
return applyBlock(new TerraImplementationArguments(buffer, rotation, random, 0));
|
return applyBlock(new TerraImplementationArguments(buffer, rotation, random, 0));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public String getId() {
|
public String getId() {
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|||||||
-1
@@ -6,7 +6,6 @@ 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.world.generation.math.SamplerCache;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -2,7 +2,7 @@ package com.dfsek.terra.api.structures.script.builders;
|
|||||||
|
|
||||||
import com.dfsek.terra.api.TerraPlugin;
|
import com.dfsek.terra.api.TerraPlugin;
|
||||||
import com.dfsek.terra.api.registry.Registry;
|
import com.dfsek.terra.api.registry.Registry;
|
||||||
import com.dfsek.terra.api.structures.loot.LootTable;
|
import com.dfsek.terra.api.structure.LootTable;
|
||||||
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.StructureScript;
|
import com.dfsek.terra.api.structures.script.StructureScript;
|
||||||
|
|||||||
+3
-3
@@ -2,10 +2,10 @@ package com.dfsek.terra.api.structures.script.builders;
|
|||||||
|
|
||||||
import com.dfsek.terra.api.TerraPlugin;
|
import com.dfsek.terra.api.TerraPlugin;
|
||||||
import com.dfsek.terra.api.registry.Registry;
|
import com.dfsek.terra.api.registry.Registry;
|
||||||
|
import com.dfsek.terra.api.structure.Structure;
|
||||||
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.StructureScript;
|
|
||||||
import com.dfsek.terra.api.structures.script.functions.StructureFunction;
|
import com.dfsek.terra.api.structures.script.functions.StructureFunction;
|
||||||
import com.dfsek.terra.api.structures.tokenizer.Position;
|
import com.dfsek.terra.api.structures.tokenizer.Position;
|
||||||
|
|
||||||
@@ -13,10 +13,10 @@ import java.util.List;
|
|||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
public class StructureFunctionBuilder implements FunctionBuilder<StructureFunction> {
|
public class StructureFunctionBuilder implements FunctionBuilder<StructureFunction> {
|
||||||
private final Registry<StructureScript> registry;
|
private final Registry<Structure> registry;
|
||||||
private final TerraPlugin main;
|
private final TerraPlugin main;
|
||||||
|
|
||||||
public StructureFunctionBuilder(Registry<StructureScript> registry, TerraPlugin main) {
|
public StructureFunctionBuilder(Registry<Structure> registry, TerraPlugin main) {
|
||||||
this.registry = registry;
|
this.registry = registry;
|
||||||
this.main = main;
|
this.main = main;
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -10,7 +10,7 @@ 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;
|
||||||
import com.dfsek.terra.api.structures.parser.lang.variables.Variable;
|
import com.dfsek.terra.api.structures.parser.lang.variables.Variable;
|
||||||
import com.dfsek.terra.api.structures.script.TerraImplementationArguments;
|
import com.dfsek.terra.api.structures.script.TerraImplementationArguments;
|
||||||
import com.dfsek.terra.api.structure.rotation.RotationUtil;
|
import com.dfsek.terra.api.util.RotationUtil;
|
||||||
import com.dfsek.terra.api.structures.structure.buffer.items.BufferedBlock;
|
import com.dfsek.terra.api.structures.structure.buffer.items.BufferedBlock;
|
||||||
import com.dfsek.terra.api.structures.tokenizer.Position;
|
import com.dfsek.terra.api.structures.tokenizer.Position;
|
||||||
import net.jafama.FastMath;
|
import net.jafama.FastMath;
|
||||||
|
|||||||
+1
-1
@@ -9,7 +9,7 @@ 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;
|
||||||
import com.dfsek.terra.api.structures.parser.lang.variables.Variable;
|
import com.dfsek.terra.api.structures.parser.lang.variables.Variable;
|
||||||
import com.dfsek.terra.api.structures.script.TerraImplementationArguments;
|
import com.dfsek.terra.api.structures.script.TerraImplementationArguments;
|
||||||
import com.dfsek.terra.api.structure.rotation.RotationUtil;
|
import com.dfsek.terra.api.util.RotationUtil;
|
||||||
import com.dfsek.terra.api.structures.tokenizer.Position;
|
import com.dfsek.terra.api.structures.tokenizer.Position;
|
||||||
import com.dfsek.terra.api.world.biome.UserDefinedBiome;
|
import com.dfsek.terra.api.world.biome.UserDefinedBiome;
|
||||||
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
||||||
|
|||||||
+1
-1
@@ -8,7 +8,7 @@ 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;
|
||||||
import com.dfsek.terra.api.structures.parser.lang.variables.Variable;
|
import com.dfsek.terra.api.structures.parser.lang.variables.Variable;
|
||||||
import com.dfsek.terra.api.structures.script.TerraImplementationArguments;
|
import com.dfsek.terra.api.structures.script.TerraImplementationArguments;
|
||||||
import com.dfsek.terra.api.structure.rotation.RotationUtil;
|
import com.dfsek.terra.api.util.RotationUtil;
|
||||||
import com.dfsek.terra.api.structures.tokenizer.Position;
|
import com.dfsek.terra.api.structures.tokenizer.Position;
|
||||||
import net.jafama.FastMath;
|
import net.jafama.FastMath;
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -1,6 +1,7 @@
|
|||||||
package com.dfsek.terra.api.structures.script.functions;
|
package com.dfsek.terra.api.structures.script.functions;
|
||||||
|
|
||||||
import com.dfsek.terra.api.TerraPlugin;
|
import com.dfsek.terra.api.TerraPlugin;
|
||||||
|
import com.dfsek.terra.api.world.generator.SamplerCache;
|
||||||
import com.dfsek.terra.vector.LocationImpl;
|
import com.dfsek.terra.vector.LocationImpl;
|
||||||
import com.dfsek.terra.api.vector.Vector2;
|
import com.dfsek.terra.api.vector.Vector2;
|
||||||
import com.dfsek.terra.api.world.TerraWorld;
|
import com.dfsek.terra.api.world.TerraWorld;
|
||||||
@@ -12,12 +13,11 @@ 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;
|
||||||
import com.dfsek.terra.api.structures.parser.lang.variables.Variable;
|
import com.dfsek.terra.api.structures.parser.lang.variables.Variable;
|
||||||
import com.dfsek.terra.api.structures.script.TerraImplementationArguments;
|
import com.dfsek.terra.api.structures.script.TerraImplementationArguments;
|
||||||
import com.dfsek.terra.api.structure.rotation.RotationUtil;
|
import com.dfsek.terra.api.util.RotationUtil;
|
||||||
import com.dfsek.terra.api.structures.tokenizer.Position;
|
import com.dfsek.terra.api.structures.tokenizer.Position;
|
||||||
import com.dfsek.terra.api.world.biome.UserDefinedBiome;
|
import com.dfsek.terra.api.world.biome.UserDefinedBiome;
|
||||||
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
||||||
import com.dfsek.terra.config.templates.BiomeTemplate;
|
import com.dfsek.terra.config.templates.BiomeTemplate;
|
||||||
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
-1
@@ -12,7 +12,7 @@ import com.dfsek.terra.api.structures.parser.lang.constants.ConstantExpression;
|
|||||||
import com.dfsek.terra.api.structures.parser.lang.functions.Function;
|
import com.dfsek.terra.api.structures.parser.lang.functions.Function;
|
||||||
import com.dfsek.terra.api.structures.parser.lang.variables.Variable;
|
import com.dfsek.terra.api.structures.parser.lang.variables.Variable;
|
||||||
import com.dfsek.terra.api.structures.script.TerraImplementationArguments;
|
import com.dfsek.terra.api.structures.script.TerraImplementationArguments;
|
||||||
import com.dfsek.terra.api.structure.rotation.RotationUtil;
|
import com.dfsek.terra.api.util.RotationUtil;
|
||||||
import com.dfsek.terra.api.structures.structure.buffer.items.BufferedEntity;
|
import com.dfsek.terra.api.structures.structure.buffer.items.BufferedEntity;
|
||||||
import com.dfsek.terra.api.structures.tokenizer.Position;
|
import com.dfsek.terra.api.structures.tokenizer.Position;
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -8,7 +8,7 @@ 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;
|
||||||
import com.dfsek.terra.api.structures.parser.lang.variables.Variable;
|
import com.dfsek.terra.api.structures.parser.lang.variables.Variable;
|
||||||
import com.dfsek.terra.api.structures.script.TerraImplementationArguments;
|
import com.dfsek.terra.api.structures.script.TerraImplementationArguments;
|
||||||
import com.dfsek.terra.api.structure.rotation.RotationUtil;
|
import com.dfsek.terra.api.util.RotationUtil;
|
||||||
import com.dfsek.terra.api.structures.tokenizer.Position;
|
import com.dfsek.terra.api.structures.tokenizer.Position;
|
||||||
import net.jafama.FastMath;
|
import net.jafama.FastMath;
|
||||||
|
|
||||||
|
|||||||
+4
-3
@@ -1,18 +1,19 @@
|
|||||||
package com.dfsek.terra.api.structures.script.functions;
|
package com.dfsek.terra.api.structures.script.functions;
|
||||||
|
|
||||||
import com.dfsek.terra.api.TerraPlugin;
|
import com.dfsek.terra.api.TerraPlugin;
|
||||||
|
import com.dfsek.terra.api.structure.LootTable;
|
||||||
import com.dfsek.terra.api.vector.Vector2;
|
import com.dfsek.terra.api.vector.Vector2;
|
||||||
import com.dfsek.terra.vector.Vector2Impl;
|
import com.dfsek.terra.vector.Vector2Impl;
|
||||||
import com.dfsek.terra.vector.Vector3Impl;
|
import com.dfsek.terra.vector.Vector3Impl;
|
||||||
import com.dfsek.terra.api.registry.Registry;
|
import com.dfsek.terra.api.registry.Registry;
|
||||||
import com.dfsek.terra.api.structures.loot.LootTable;
|
import com.dfsek.terra.api.structures.loot.LootTableImpl;
|
||||||
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;
|
||||||
import com.dfsek.terra.api.structures.parser.lang.variables.Variable;
|
import com.dfsek.terra.api.structures.parser.lang.variables.Variable;
|
||||||
import com.dfsek.terra.api.structures.script.StructureScript;
|
import com.dfsek.terra.api.structures.script.StructureScript;
|
||||||
import com.dfsek.terra.api.structures.script.TerraImplementationArguments;
|
import com.dfsek.terra.api.structures.script.TerraImplementationArguments;
|
||||||
import com.dfsek.terra.api.structure.rotation.RotationUtil;
|
import com.dfsek.terra.api.util.RotationUtil;
|
||||||
import com.dfsek.terra.api.structures.structure.buffer.items.BufferedLootApplication;
|
import com.dfsek.terra.api.structures.structure.buffer.items.BufferedLootApplication;
|
||||||
import com.dfsek.terra.api.structures.tokenizer.Position;
|
import com.dfsek.terra.api.structures.tokenizer.Position;
|
||||||
import net.jafama.FastMath;
|
import net.jafama.FastMath;
|
||||||
@@ -46,7 +47,7 @@ public class LootFunction implements Function<Void> {
|
|||||||
RotationUtil.rotateVector(xz, arguments.getRotation());
|
RotationUtil.rotateVector(xz, arguments.getRotation());
|
||||||
|
|
||||||
String id = data.apply(implementationArguments, variableMap);
|
String id = data.apply(implementationArguments, variableMap);
|
||||||
LootTable table = registry.get(id);
|
LootTableImpl table = registry.get(id);
|
||||||
|
|
||||||
if(table == null) {
|
if(table == null) {
|
||||||
main.logger().severe("No such loot table " + id);
|
main.logger().severe("No such loot table " + id);
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@ import com.dfsek.terra.api.structures.parser.lang.constants.ConstantExpression;
|
|||||||
import com.dfsek.terra.api.structures.parser.lang.functions.Function;
|
import com.dfsek.terra.api.structures.parser.lang.functions.Function;
|
||||||
import com.dfsek.terra.api.structures.parser.lang.variables.Variable;
|
import com.dfsek.terra.api.structures.parser.lang.variables.Variable;
|
||||||
import com.dfsek.terra.api.structures.script.TerraImplementationArguments;
|
import com.dfsek.terra.api.structures.script.TerraImplementationArguments;
|
||||||
import com.dfsek.terra.api.structure.rotation.RotationUtil;
|
import com.dfsek.terra.api.util.RotationUtil;
|
||||||
import com.dfsek.terra.api.structures.structure.buffer.items.BufferedPulledBlock;
|
import com.dfsek.terra.api.structures.structure.buffer.items.BufferedPulledBlock;
|
||||||
import com.dfsek.terra.api.structures.tokenizer.Position;
|
import com.dfsek.terra.api.structures.tokenizer.Position;
|
||||||
import net.jafama.FastMath;
|
import net.jafama.FastMath;
|
||||||
|
|||||||
+1
-1
@@ -8,7 +8,7 @@ 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;
|
||||||
import com.dfsek.terra.api.structures.parser.lang.variables.Variable;
|
import com.dfsek.terra.api.structures.parser.lang.variables.Variable;
|
||||||
import com.dfsek.terra.api.structures.script.TerraImplementationArguments;
|
import com.dfsek.terra.api.structures.script.TerraImplementationArguments;
|
||||||
import com.dfsek.terra.api.structure.rotation.RotationUtil;
|
import com.dfsek.terra.api.util.RotationUtil;
|
||||||
import com.dfsek.terra.api.structures.tokenizer.Position;
|
import com.dfsek.terra.api.structures.tokenizer.Position;
|
||||||
import net.jafama.FastMath;
|
import net.jafama.FastMath;
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -9,7 +9,7 @@ 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;
|
||||||
import com.dfsek.terra.api.structures.parser.lang.variables.Variable;
|
import com.dfsek.terra.api.structures.parser.lang.variables.Variable;
|
||||||
import com.dfsek.terra.api.structures.script.TerraImplementationArguments;
|
import com.dfsek.terra.api.structures.script.TerraImplementationArguments;
|
||||||
import com.dfsek.terra.api.structure.rotation.RotationUtil;
|
import com.dfsek.terra.api.util.RotationUtil;
|
||||||
import com.dfsek.terra.api.structures.structure.buffer.items.BufferedStateManipulator;
|
import com.dfsek.terra.api.structures.structure.buffer.items.BufferedStateManipulator;
|
||||||
import com.dfsek.terra.api.structures.tokenizer.Position;
|
import com.dfsek.terra.api.structures.tokenizer.Position;
|
||||||
import net.jafama.FastMath;
|
import net.jafama.FastMath;
|
||||||
|
|||||||
+6
-6
@@ -1,6 +1,7 @@
|
|||||||
package com.dfsek.terra.api.structures.script.functions;
|
package com.dfsek.terra.api.structures.script.functions;
|
||||||
|
|
||||||
import com.dfsek.terra.api.TerraPlugin;
|
import com.dfsek.terra.api.TerraPlugin;
|
||||||
|
import com.dfsek.terra.api.structure.Structure;
|
||||||
import com.dfsek.terra.api.vector.Vector2;
|
import com.dfsek.terra.api.vector.Vector2;
|
||||||
import com.dfsek.terra.vector.Vector2Impl;
|
import com.dfsek.terra.vector.Vector2Impl;
|
||||||
import com.dfsek.terra.api.vector.Vector3;
|
import com.dfsek.terra.api.vector.Vector3;
|
||||||
@@ -10,10 +11,9 @@ 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;
|
||||||
import com.dfsek.terra.api.structures.parser.lang.variables.Variable;
|
import com.dfsek.terra.api.structures.parser.lang.variables.Variable;
|
||||||
import com.dfsek.terra.api.structures.script.StructureScript;
|
|
||||||
import com.dfsek.terra.api.structures.script.TerraImplementationArguments;
|
import com.dfsek.terra.api.structures.script.TerraImplementationArguments;
|
||||||
import com.dfsek.terra.api.structure.rotation.Rotation;
|
import com.dfsek.terra.api.structure.rotation.Rotation;
|
||||||
import com.dfsek.terra.api.structure.rotation.RotationUtil;
|
import com.dfsek.terra.api.util.RotationUtil;
|
||||||
import com.dfsek.terra.api.structures.structure.buffer.IntermediateBuffer;
|
import com.dfsek.terra.api.structures.structure.buffer.IntermediateBuffer;
|
||||||
import com.dfsek.terra.api.structures.tokenizer.Position;
|
import com.dfsek.terra.api.structures.tokenizer.Position;
|
||||||
import net.jafama.FastMath;
|
import net.jafama.FastMath;
|
||||||
@@ -22,14 +22,14 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
public class StructureFunction implements Function<Boolean> {
|
public class StructureFunction implements Function<Boolean> {
|
||||||
private final Registry<StructureScript> registry;
|
private final Registry<Structure> registry;
|
||||||
private final Returnable<String> id;
|
private final Returnable<String> id;
|
||||||
private final Returnable<Number> x, y, z;
|
private final Returnable<Number> x, y, z;
|
||||||
private final Position position;
|
private final Position position;
|
||||||
private final TerraPlugin main;
|
private final TerraPlugin main;
|
||||||
private final List<Returnable<String>> rotations;
|
private final List<Returnable<String>> rotations;
|
||||||
|
|
||||||
public StructureFunction(Returnable<Number> x, Returnable<Number> y, Returnable<Number> z, Returnable<String> id, List<Returnable<String>> rotations, Registry<StructureScript> registry, Position position, TerraPlugin main) {
|
public StructureFunction(Returnable<Number> x, Returnable<Number> y, Returnable<Number> z, Returnable<String> id, List<Returnable<String>> rotations, Registry<Structure> registry, Position position, TerraPlugin main) {
|
||||||
this.registry = registry;
|
this.registry = registry;
|
||||||
this.id = id;
|
this.id = id;
|
||||||
this.position = position;
|
this.position = position;
|
||||||
@@ -57,7 +57,7 @@ public class StructureFunction implements Function<Boolean> {
|
|||||||
RotationUtil.rotateVector(xz, arguments.getRotation());
|
RotationUtil.rotateVector(xz, arguments.getRotation());
|
||||||
|
|
||||||
String app = id.apply(implementationArguments, variableMap);
|
String app = id.apply(implementationArguments, variableMap);
|
||||||
StructureScript script = registry.get(app);
|
Structure script = registry.get(app);
|
||||||
if(script == null) {
|
if(script == null) {
|
||||||
main.logger().severe("No such structure " + app);
|
main.logger().severe("No such structure " + app);
|
||||||
return null;
|
return null;
|
||||||
@@ -74,7 +74,7 @@ public class StructureFunction implements Function<Boolean> {
|
|||||||
|
|
||||||
Vector3 offset = new Vector3Impl(FastMath.roundToInt(xz.getX()), y.apply(implementationArguments, variableMap).doubleValue(), FastMath.roundToInt(xz.getZ()));
|
Vector3 offset = new Vector3Impl(FastMath.roundToInt(xz.getX()), y.apply(implementationArguments, variableMap).doubleValue(), FastMath.roundToInt(xz.getZ()));
|
||||||
|
|
||||||
return script.executeInBuffer(new IntermediateBuffer(arguments.getBuffer(), offset), arguments.getRandom(), arguments.getRotation().rotate(rotation1), arguments.getRecursions() + 1);
|
return script.generate(new IntermediateBuffer(arguments.getBuffer(), offset), arguments.getRandom(), arguments.getRotation().rotate(rotation1), arguments.getRecursions() + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+8
-7
@@ -1,6 +1,7 @@
|
|||||||
package com.dfsek.terra.api.structures.structure.buffer;
|
package com.dfsek.terra.api.structures.structure.buffer;
|
||||||
|
|
||||||
import com.dfsek.terra.api.structure.buffer.Buffer;
|
import com.dfsek.terra.api.structure.buffer.Buffer;
|
||||||
|
import com.dfsek.terra.api.vector.Location;
|
||||||
import com.dfsek.terra.vector.LocationImpl;
|
import com.dfsek.terra.vector.LocationImpl;
|
||||||
import com.dfsek.terra.api.structure.buffer.BufferedItem;
|
import com.dfsek.terra.api.structure.buffer.BufferedItem;
|
||||||
|
|
||||||
@@ -11,31 +12,31 @@ import java.util.Map;
|
|||||||
* Buffer implementation that directly pastes to the world.
|
* Buffer implementation that directly pastes to the world.
|
||||||
*/
|
*/
|
||||||
public class DirectBuffer implements Buffer {
|
public class DirectBuffer implements Buffer {
|
||||||
private final LocationImpl origin;
|
private final Location origin;
|
||||||
private final Map<LocationImpl, String> marks = new LinkedHashMap<>();
|
private final Map<Location, String> marks = new LinkedHashMap<>();
|
||||||
|
|
||||||
public DirectBuffer(LocationImpl origin) {
|
public DirectBuffer(Location origin) {
|
||||||
this.origin = origin;
|
this.origin = origin;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Buffer addItem(BufferedItem item, LocationImpl location) {
|
public Buffer addItem(BufferedItem item, Location location) {
|
||||||
item.paste(origin.clone().add(location));
|
item.paste(origin.clone().add(location));
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public LocationImpl getOrigin() {
|
public Location getOrigin() {
|
||||||
return origin;
|
return origin;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getMark(LocationImpl location) {
|
public String getMark(Location location) {
|
||||||
return marks.get(location);
|
return marks.get(location);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Buffer setMark(String mark, LocationImpl location) {
|
public Buffer setMark(String mark, Location location) {
|
||||||
marks.put(location, mark);
|
marks.put(location, mark);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-3
@@ -7,16 +7,16 @@ import com.dfsek.terra.vector.LocationImpl;
|
|||||||
import com.dfsek.terra.api.block.Block;
|
import com.dfsek.terra.api.block.Block;
|
||||||
import com.dfsek.terra.api.block.state.BlockState;
|
import com.dfsek.terra.api.block.state.BlockState;
|
||||||
import com.dfsek.terra.api.block.state.Container;
|
import com.dfsek.terra.api.block.state.Container;
|
||||||
import com.dfsek.terra.api.structures.loot.LootTable;
|
import com.dfsek.terra.api.structures.loot.LootTableImpl;
|
||||||
import com.dfsek.terra.api.structures.script.StructureScript;
|
import com.dfsek.terra.api.structures.script.StructureScript;
|
||||||
import com.dfsek.terra.api.util.FastRandom;
|
import com.dfsek.terra.api.util.FastRandom;
|
||||||
|
|
||||||
public class BufferedLootApplication implements BufferedItem {
|
public class BufferedLootApplication implements BufferedItem {
|
||||||
private final LootTable table;
|
private final LootTableImpl table;
|
||||||
private final TerraPlugin main;
|
private final TerraPlugin main;
|
||||||
private final StructureScript structure;
|
private final StructureScript structure;
|
||||||
|
|
||||||
public BufferedLootApplication(LootTable table, TerraPlugin main, StructureScript structure) {
|
public BufferedLootApplication(LootTableImpl table, TerraPlugin main, StructureScript structure) {
|
||||||
this.table = table;
|
this.table = table;
|
||||||
this.main = main;
|
this.main = main;
|
||||||
this.structure = structure;
|
this.structure = structure;
|
||||||
|
|||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.api.util.world;
|
package com.dfsek.terra.api.util;
|
||||||
|
|
||||||
import com.dfsek.terra.api.util.MathUtil;
|
import com.dfsek.terra.api.util.MathUtil;
|
||||||
import com.dfsek.terra.api.world.generator.Palette;
|
import com.dfsek.terra.api.world.generator.Palette;
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
package com.dfsek.terra.api.util;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.world.Chunk;
|
||||||
|
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
|
public final class PopulationUtil {
|
||||||
|
public static FastRandom getRandom(Chunk c) {
|
||||||
|
return getRandom(c, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static FastRandom getRandom(Chunk c, long salt) {
|
||||||
|
return new FastRandom(getCarverChunkSeed(c.getX(), c.getZ(), c.getWorld().getSeed() + salt));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the carver seed for a chunk.
|
||||||
|
*
|
||||||
|
* @param chunkX Chunk's X coordinate
|
||||||
|
* @param chunkZ Chunk's Z coordinate
|
||||||
|
* @param seed World seed
|
||||||
|
* @return long - The carver seed.
|
||||||
|
*/
|
||||||
|
public static long getCarverChunkSeed(int chunkX, int chunkZ, long seed) {
|
||||||
|
Random r = new FastRandom(seed);
|
||||||
|
return chunkX * r.nextLong() ^ chunkZ * r.nextLong() ^ seed;
|
||||||
|
}
|
||||||
|
}
|
||||||
+2
-1
@@ -1,5 +1,6 @@
|
|||||||
package com.dfsek.terra.api.structure.rotation;
|
package com.dfsek.terra.api.util;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.structure.rotation.Rotation;
|
||||||
import com.dfsek.terra.api.vector.Vector2;
|
import com.dfsek.terra.api.vector.Vector2;
|
||||||
import com.dfsek.terra.api.block.Axis;
|
import com.dfsek.terra.api.block.Axis;
|
||||||
import com.dfsek.terra.api.block.BlockData;
|
import com.dfsek.terra.api.block.BlockData;
|
||||||
@@ -1,5 +1,7 @@
|
|||||||
package com.dfsek.terra.api.util.logging;
|
package com.dfsek.terra.api.util.logging;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.Logger;
|
||||||
|
|
||||||
public class DebugLogger {
|
public class DebugLogger {
|
||||||
private final Logger logger;
|
private final Logger logger;
|
||||||
private boolean debug = false;
|
private boolean debug = false;
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
package com.dfsek.terra.api.util.logging;
|
package com.dfsek.terra.api.util.logging;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.Logger;
|
||||||
|
|
||||||
public class JavaLogger implements Logger {
|
public class JavaLogger implements Logger {
|
||||||
private final java.util.logging.Logger logger;
|
private final java.util.logging.Logger logger;
|
||||||
|
|
||||||
|
|||||||
-15
@@ -1,15 +0,0 @@
|
|||||||
package com.dfsek.terra.api.util.world;
|
|
||||||
|
|
||||||
import com.dfsek.terra.api.util.MathUtil;
|
|
||||||
import com.dfsek.terra.api.world.Chunk;
|
|
||||||
import com.dfsek.terra.api.util.FastRandom;
|
|
||||||
|
|
||||||
public final class PopulationUtil {
|
|
||||||
public static FastRandom getRandom(Chunk c) {
|
|
||||||
return getRandom(c, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static FastRandom getRandom(Chunk c, long salt) {
|
|
||||||
return new FastRandom(MathUtil.getCarverChunkSeed(c.getX(), c.getZ(), c.getWorld().getSeed() + salt));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+2
-2
@@ -1,7 +1,7 @@
|
|||||||
package com.dfsek.terra.api.world.locate;
|
package com.dfsek.terra.api.world.locate;
|
||||||
|
|
||||||
import com.dfsek.terra.api.TerraPlugin;
|
import com.dfsek.terra.api.TerraPlugin;
|
||||||
import com.dfsek.terra.api.util.MathUtil;
|
import com.dfsek.terra.api.util.PopulationUtil;
|
||||||
import com.dfsek.terra.vector.LocationImpl;
|
import com.dfsek.terra.vector.LocationImpl;
|
||||||
import com.dfsek.terra.api.vector.Vector3;
|
import com.dfsek.terra.api.vector.Vector3;
|
||||||
import com.dfsek.terra.api.structure.rotation.Rotation;
|
import com.dfsek.terra.api.structure.rotation.Rotation;
|
||||||
@@ -30,7 +30,7 @@ public class AsyncStructureFinder extends AsyncFeatureFinder<TerraStructure> {
|
|||||||
public boolean isValid(int x, int z, TerraStructure target) {
|
public boolean isValid(int x, int z, TerraStructure target) {
|
||||||
LocationImpl spawn = target.getSpawn().getChunkSpawn(x, z, world.getSeed()).toLocation(world);
|
LocationImpl spawn = target.getSpawn().getChunkSpawn(x, z, world.getSeed()).toLocation(world);
|
||||||
if(!((UserDefinedBiome) provider.getBiome(spawn)).getConfig().getStructures().contains(target)) return false;
|
if(!((UserDefinedBiome) provider.getBiome(spawn)).getConfig().getStructures().contains(target)) return false;
|
||||||
Random random = new FastRandom(MathUtil.getCarverChunkSeed(FastMath.floorDiv(spawn.getBlockX(), 16), FastMath.floorDiv(spawn.getBlockZ(), 16), world.getSeed()));
|
Random random = new FastRandom(PopulationUtil.getCarverChunkSeed(FastMath.floorDiv(spawn.getBlockX(), 16), FastMath.floorDiv(spawn.getBlockZ(), 16), world.getSeed()));
|
||||||
return target.getStructure().get(random).test(spawn.setY(target.getSpawnStart().get(random)), random, Rotation.fromDegrees(90 * random.nextInt(4)));
|
return target.getStructure().get(random).test(spawn.setY(target.getSpawnStart().get(random)), random, Rotation.fromDegrees(90 * random.nextInt(4)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.dfsek.terra.carving;
|
|||||||
|
|
||||||
import com.dfsek.terra.api.TerraPlugin;
|
import com.dfsek.terra.api.TerraPlugin;
|
||||||
import com.dfsek.terra.api.util.MathUtil;
|
import com.dfsek.terra.api.util.MathUtil;
|
||||||
|
import com.dfsek.terra.api.util.PopulationUtil;
|
||||||
import com.dfsek.terra.vector.Vector3Impl;
|
import com.dfsek.terra.vector.Vector3Impl;
|
||||||
import com.dfsek.terra.api.world.World;
|
import com.dfsek.terra.api.world.World;
|
||||||
import com.dfsek.terra.api.util.FastRandom;
|
import com.dfsek.terra.api.util.FastRandom;
|
||||||
@@ -33,8 +34,8 @@ public class CarverCache {
|
|||||||
int chunkX = (int) (key >> 32);
|
int chunkX = (int) (key >> 32);
|
||||||
int chunkZ = (int) key.longValue();
|
int chunkZ = (int) key.longValue();
|
||||||
BiomeProvider provider = main.getWorld(w).getBiomeProvider();
|
BiomeProvider provider = main.getWorld(w).getBiomeProvider();
|
||||||
if(CarverCache.this.carver.isChunkCarved(w, chunkX, chunkZ, new FastRandom(MathUtil.getCarverChunkSeed(chunkX, chunkZ, w.getSeed() + CarverCache.this.carver.hashCode())))) {
|
if(CarverCache.this.carver.isChunkCarved(w, chunkX, chunkZ, new FastRandom(PopulationUtil.getCarverChunkSeed(chunkX, chunkZ, w.getSeed() + CarverCache.this.carver.hashCode())))) {
|
||||||
long seed = MathUtil.getCarverChunkSeed(chunkX, chunkZ, w.getSeed());
|
long seed = PopulationUtil.getCarverChunkSeed(chunkX, chunkZ, w.getSeed());
|
||||||
Random r = new FastRandom(seed);
|
Random r = new FastRandom(seed);
|
||||||
Worm carving = CarverCache.this.carver.getWorm(seed, new Vector3Impl((chunkX << 4) + r.nextInt(16), CarverCache.this.carver.getConfig().getHeight().get(r), (chunkZ << 4) + r.nextInt(16)));
|
Worm carving = CarverCache.this.carver.getWorm(seed, new Vector3Impl((chunkX << 4) + r.nextInt(16), CarverCache.this.carver.getConfig().getHeight().get(r), (chunkZ << 4) + r.nextInt(16)));
|
||||||
List<Worm.WormPoint> points = new GlueList<>();
|
List<Worm.WormPoint> points = new GlueList<>();
|
||||||
|
|||||||
+4
-4
@@ -14,7 +14,7 @@ import com.dfsek.terra.api.command.arg.IntegerArgumentParser;
|
|||||||
import com.dfsek.terra.api.injection.annotations.Inject;
|
import com.dfsek.terra.api.injection.annotations.Inject;
|
||||||
import com.dfsek.terra.api.entity.CommandSender;
|
import com.dfsek.terra.api.entity.CommandSender;
|
||||||
import com.dfsek.terra.api.entity.Player;
|
import com.dfsek.terra.api.entity.Player;
|
||||||
import com.dfsek.terra.api.structures.script.StructureScript;
|
import com.dfsek.terra.api.structure.Structure;
|
||||||
import com.dfsek.terra.api.structure.rotation.Rotation;
|
import com.dfsek.terra.api.structure.rotation.Rotation;
|
||||||
import com.dfsek.terra.api.util.FastRandom;
|
import com.dfsek.terra.api.util.FastRandom;
|
||||||
import com.dfsek.terra.commands.structure.argument.ScriptArgumentParser;
|
import com.dfsek.terra.commands.structure.argument.ScriptArgumentParser;
|
||||||
@@ -56,7 +56,7 @@ public class StructureLoadCommand implements CommandTemplate {
|
|||||||
private boolean chunk;
|
private boolean chunk;
|
||||||
|
|
||||||
@ArgumentTarget("structure")
|
@ArgumentTarget("structure")
|
||||||
private StructureScript script;
|
private Structure script;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private TerraPlugin main;
|
private TerraPlugin main;
|
||||||
@@ -79,9 +79,9 @@ public class StructureLoadCommand implements CommandTemplate {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(this.chunk) {
|
if(this.chunk) {
|
||||||
script.execute(player.getLocation(), player.getWorld().getChunkAt(player.getLocation()), random, r);
|
script.generate(player.getLocation(), player.getWorld().getChunkAt(player.getLocation()), random, r);
|
||||||
} else {
|
} else {
|
||||||
script.execute(player.getLocation(), random, r);
|
script.generate(player.getLocation(), random, r);
|
||||||
}
|
}
|
||||||
long l = System.nanoTime() - t;
|
long l = System.nanoTime() - t;
|
||||||
|
|
||||||
|
|||||||
+3
-2
@@ -5,14 +5,15 @@ import com.dfsek.terra.api.command.arg.ArgumentParser;
|
|||||||
import com.dfsek.terra.api.injection.annotations.Inject;
|
import com.dfsek.terra.api.injection.annotations.Inject;
|
||||||
import com.dfsek.terra.api.entity.CommandSender;
|
import com.dfsek.terra.api.entity.CommandSender;
|
||||||
import com.dfsek.terra.api.entity.Player;
|
import com.dfsek.terra.api.entity.Player;
|
||||||
|
import com.dfsek.terra.api.structure.Structure;
|
||||||
import com.dfsek.terra.api.structures.script.StructureScript;
|
import com.dfsek.terra.api.structures.script.StructureScript;
|
||||||
|
|
||||||
public class ScriptArgumentParser implements ArgumentParser<StructureScript> {
|
public class ScriptArgumentParser implements ArgumentParser<Structure> {
|
||||||
@Inject
|
@Inject
|
||||||
private TerraPlugin main;
|
private TerraPlugin main;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public StructureScript parse(CommandSender sender, String arg) {
|
public Structure parse(CommandSender sender, String arg) {
|
||||||
return main.getWorld(((Player) sender).getWorld()).getConfig().getRegistry(StructureScript.class).get(arg);
|
return main.getWorld(((Player) sender).getWorld()).getConfig().getRegistry(StructureScript.class).get(arg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-1
@@ -5,6 +5,7 @@ import com.dfsek.terra.api.command.tab.TabCompleter;
|
|||||||
import com.dfsek.terra.api.injection.annotations.Inject;
|
import com.dfsek.terra.api.injection.annotations.Inject;
|
||||||
import com.dfsek.terra.api.entity.CommandSender;
|
import com.dfsek.terra.api.entity.CommandSender;
|
||||||
import com.dfsek.terra.api.entity.Player;
|
import com.dfsek.terra.api.entity.Player;
|
||||||
|
import com.dfsek.terra.api.structure.Structure;
|
||||||
import com.dfsek.terra.api.structures.script.StructureScript;
|
import com.dfsek.terra.api.structures.script.StructureScript;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -16,6 +17,6 @@ public class ScriptCompleter implements TabCompleter {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<String> complete(CommandSender sender) {
|
public List<String> complete(CommandSender sender) {
|
||||||
return main.getWorld(((Player) sender).getWorld()).getConfig().getRegistry(StructureScript.class).entries().stream().map(StructureScript::getId).collect(Collectors.toList());
|
return main.getWorld(((Player) sender).getWorld()).getConfig().getRegistry(StructureScript.class).entries().stream().map(Structure::getId).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,8 +6,8 @@ import com.dfsek.terra.api.TerraPlugin;
|
|||||||
import com.dfsek.terra.api.addon.TerraAddon;
|
import com.dfsek.terra.api.addon.TerraAddon;
|
||||||
import com.dfsek.terra.api.math.GridSpawn;
|
import com.dfsek.terra.api.math.GridSpawn;
|
||||||
import com.dfsek.terra.api.math.range.ConstantRange;
|
import com.dfsek.terra.api.math.range.ConstantRange;
|
||||||
import com.dfsek.terra.api.noise.samplers.ImageSampler;
|
import com.dfsek.terra.noise.samplers.ImageSampler;
|
||||||
import com.dfsek.terra.api.noise.samplers.noise.CellularSampler;
|
import com.dfsek.terra.noise.samplers.noise.CellularSampler;
|
||||||
import com.dfsek.terra.api.block.BlockType;
|
import com.dfsek.terra.api.block.BlockType;
|
||||||
import com.dfsek.terra.api.util.collections.MaterialSet;
|
import com.dfsek.terra.api.util.collections.MaterialSet;
|
||||||
import com.dfsek.terra.api.util.collections.ProbabilityCollectionImpl;
|
import com.dfsek.terra.api.util.collections.ProbabilityCollectionImpl;
|
||||||
|
|||||||
+18
-4
@@ -7,7 +7,7 @@ import com.dfsek.tectonic.exception.ConfigException;
|
|||||||
import com.dfsek.tectonic.loading.ConfigLoader;
|
import com.dfsek.tectonic.loading.ConfigLoader;
|
||||||
import com.dfsek.terra.api.TerraPlugin;
|
import com.dfsek.terra.api.TerraPlugin;
|
||||||
import com.dfsek.terra.api.util.JarUtil;
|
import com.dfsek.terra.api.util.JarUtil;
|
||||||
import com.dfsek.terra.api.util.logging.Logger;
|
import com.dfsek.terra.api.Logger;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileInputStream;
|
import java.io.FileInputStream;
|
||||||
@@ -17,7 +17,7 @@ import java.time.Duration;
|
|||||||
import java.util.jar.JarFile;
|
import java.util.jar.JarFile;
|
||||||
|
|
||||||
@SuppressWarnings("FieldMayBeFinal")
|
@SuppressWarnings("FieldMayBeFinal")
|
||||||
public class PluginConfig implements ConfigTemplate {
|
public class PluginConfigImpl implements ConfigTemplate, com.dfsek.terra.api.config.PluginConfig {
|
||||||
@Value("debug.commands")
|
@Value("debug.commands")
|
||||||
@Default
|
@Default
|
||||||
private boolean debugCommands = false;
|
private boolean debugCommands = false;
|
||||||
@@ -74,6 +74,7 @@ public class PluginConfig implements ConfigTemplate {
|
|||||||
@Default
|
@Default
|
||||||
private int maxRecursion = 1000;
|
private int maxRecursion = 1000;
|
||||||
|
|
||||||
|
@Override
|
||||||
public void load(TerraPlugin main) {
|
public void load(TerraPlugin main) {
|
||||||
Logger logger = main.logger();
|
Logger logger = main.logger();
|
||||||
logger.info("Loading config values");
|
logger.info("Loading config values");
|
||||||
@@ -84,9 +85,9 @@ public class PluginConfig implements ConfigTemplate {
|
|||||||
try(JarFile jar = main.getModJar()) {
|
try(JarFile jar = main.getModJar()) {
|
||||||
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) {
|
||||||
main.getDebugLogger().error("Failed to dump default config files!");
|
main.getDebugLogger().severe("Failed to dump default config files!");
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
main.getDebugLogger().error("Either you're on Forge, or this is a bug. If it's the latter, report this to Terra!");
|
main.getDebugLogger().severe("Either you're on Forge, or this is a bug. If it's the latter, report this to Terra!");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch(ConfigException | IOException e) {
|
} catch(ConfigException | IOException e) {
|
||||||
@@ -99,54 +100,67 @@ public class PluginConfig implements ConfigTemplate {
|
|||||||
if(isDebugScript()) logger.info("Script debug blocks enabled.");
|
if(isDebugScript()) logger.info("Script debug blocks enabled.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public String getLanguage() {
|
public String getLanguage() {
|
||||||
return language;
|
return language;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public boolean isDebugCommands() {
|
public boolean isDebugCommands() {
|
||||||
return debugCommands;
|
return debugCommands;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public boolean isDebugLogging() {
|
public boolean isDebugLogging() {
|
||||||
return debugLog;
|
return debugLog;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public boolean isDebugProfiler() {
|
public boolean isDebugProfiler() {
|
||||||
return debugProfiler;
|
return debugProfiler;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public boolean isDebugScript() {
|
public boolean isDebugScript() {
|
||||||
return debugScript;
|
return debugScript;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public long getDataSaveInterval() {
|
public long getDataSaveInterval() {
|
||||||
return dataSave.toMillis() / 20L;
|
return dataSave.toMillis() / 20L;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public int getBiomeSearchResolution() {
|
public int getBiomeSearchResolution() {
|
||||||
return biomeSearch;
|
return biomeSearch;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public int getCarverCacheSize() {
|
public int getCarverCacheSize() {
|
||||||
return carverCache;
|
return carverCache;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public int getStructureCache() {
|
public int getStructureCache() {
|
||||||
return structureCache;
|
return structureCache;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public int getSamplerCache() {
|
public int getSamplerCache() {
|
||||||
return samplerCache;
|
return samplerCache;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public int getMaxRecursion() {
|
public int getMaxRecursion() {
|
||||||
return maxRecursion;
|
return maxRecursion;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public int getBiomeCache() {
|
public int getBiomeCache() {
|
||||||
return biomeCache;
|
return biomeCache;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public int getProviderCache() {
|
public int getProviderCache() {
|
||||||
return providerCache;
|
return providerCache;
|
||||||
}
|
}
|
||||||
+2
-2
@@ -3,8 +3,8 @@ package com.dfsek.terra.config.builder;
|
|||||||
import com.dfsek.paralithic.eval.parser.Scope;
|
import com.dfsek.paralithic.eval.parser.Scope;
|
||||||
import com.dfsek.paralithic.eval.tokenizer.ParseException;
|
import com.dfsek.paralithic.eval.tokenizer.ParseException;
|
||||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
import com.dfsek.terra.api.noise.samplers.ExpressionSampler;
|
import com.dfsek.terra.noise.samplers.ExpressionSampler;
|
||||||
import com.dfsek.terra.api.noise.samplers.noise.ConstantSampler;
|
import com.dfsek.terra.noise.samplers.noise.ConstantSampler;
|
||||||
import com.dfsek.terra.api.world.biome.Biome;
|
import com.dfsek.terra.api.world.biome.Biome;
|
||||||
import com.dfsek.terra.api.util.collections.ProbabilityCollectionImpl;
|
import com.dfsek.terra.api.util.collections.ProbabilityCollectionImpl;
|
||||||
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
|
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
|
||||||
|
|||||||
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
package com.dfsek.terra.config.factories;
|
package com.dfsek.terra.config.factories;
|
||||||
|
|
||||||
import com.dfsek.terra.api.TerraPlugin;
|
import com.dfsek.terra.api.TerraPlugin;
|
||||||
import com.dfsek.terra.api.noise.samplers.noise.random.WhiteNoiseSampler;
|
import com.dfsek.terra.noise.samplers.noise.random.WhiteNoiseSampler;
|
||||||
import com.dfsek.terra.api.world.Flora;
|
import com.dfsek.terra.api.world.Flora;
|
||||||
import com.dfsek.terra.api.world.palette.NoisePalette;
|
import com.dfsek.terra.api.world.palette.NoisePalette;
|
||||||
import com.dfsek.terra.api.world.palette.PaletteImpl;
|
import com.dfsek.terra.api.world.palette.PaletteImpl;
|
||||||
|
|||||||
@@ -2,7 +2,8 @@ package com.dfsek.terra.config.lang;
|
|||||||
|
|
||||||
import com.dfsek.terra.api.TerraPlugin;
|
import com.dfsek.terra.api.TerraPlugin;
|
||||||
import com.dfsek.terra.api.entity.CommandSender;
|
import com.dfsek.terra.api.entity.CommandSender;
|
||||||
import com.dfsek.terra.api.util.logging.Logger;
|
import com.dfsek.terra.api.Logger;
|
||||||
|
import com.dfsek.terra.api.lang.Language;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@@ -26,7 +27,7 @@ public final class LangUtil {
|
|||||||
try {
|
try {
|
||||||
File file1 = new File(file, langID + ".yml");
|
File file1 = new File(file, langID + ".yml");
|
||||||
logger.info(file1.getAbsolutePath());
|
logger.info(file1.getAbsolutePath());
|
||||||
language = new Language(file1);
|
language = new LanguageImpl(file1);
|
||||||
logger.info("Loaded language " + langID);
|
logger.info("Loaded language " + langID);
|
||||||
} catch(IOException e) {
|
} catch(IOException e) {
|
||||||
logger.severe("Unable to load language: " + langID);
|
logger.severe("Unable to load language: " + langID);
|
||||||
|
|||||||
+6
-2
@@ -3,6 +3,7 @@ package com.dfsek.terra.config.lang;
|
|||||||
|
|
||||||
import com.dfsek.tectonic.config.Configuration;
|
import com.dfsek.tectonic.config.Configuration;
|
||||||
import com.dfsek.terra.api.entity.CommandSender;
|
import com.dfsek.terra.api.entity.CommandSender;
|
||||||
|
import com.dfsek.terra.api.lang.Message;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileInputStream;
|
import java.io.FileInputStream;
|
||||||
@@ -11,11 +12,12 @@ import java.util.List;
|
|||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
public class Language {
|
public class LanguageImpl implements com.dfsek.terra.api.lang.Language {
|
||||||
private final Configuration configuration;
|
private final Configuration configuration;
|
||||||
public Language(File file) throws IOException {
|
public LanguageImpl(File file) throws IOException {
|
||||||
configuration = new Configuration(new FileInputStream(file));
|
configuration = new Configuration(new FileInputStream(file));
|
||||||
}
|
}
|
||||||
|
@Override
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public Message getMessage(String id) {
|
public Message getMessage(String id) {
|
||||||
Message temp = null;
|
Message temp = null;
|
||||||
@@ -31,9 +33,11 @@ public class Language {
|
|||||||
if(temp == null || temp.isEmpty()) return new SingleLineMessage("message:" + id + ":translation_undefined");
|
if(temp == null || temp.isEmpty()) return new SingleLineMessage("message:" + id + ":translation_undefined");
|
||||||
return temp;
|
return temp;
|
||||||
}
|
}
|
||||||
|
@Override
|
||||||
public void log(String messageID, Level level, Logger logger, String... args) {
|
public void log(String messageID, Level level, Logger logger, String... args) {
|
||||||
getMessage(messageID).log(logger, level, args);
|
getMessage(messageID).log(logger, level, args);
|
||||||
}
|
}
|
||||||
|
@Override
|
||||||
public void send(String messageID, CommandSender sender, String... args) {
|
public void send(String messageID, CommandSender sender, String... args) {
|
||||||
getMessage(messageID).send(sender, args);
|
getMessage(messageID).send(sender, args);
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.dfsek.terra.config.lang;
|
package com.dfsek.terra.config.lang;
|
||||||
|
|
||||||
import com.dfsek.terra.api.entity.CommandSender;
|
import com.dfsek.terra.api.entity.CommandSender;
|
||||||
|
import com.dfsek.terra.api.lang.Message;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.dfsek.terra.config.lang;
|
|||||||
|
|
||||||
|
|
||||||
import com.dfsek.terra.api.entity.CommandSender;
|
import com.dfsek.terra.api.entity.CommandSender;
|
||||||
|
import com.dfsek.terra.api.lang.Message;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
|||||||
+1
-1
@@ -5,7 +5,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.range.ConstantRange;
|
import com.dfsek.terra.api.math.range.ConstantRange;
|
||||||
import com.dfsek.terra.api.noise.samplers.noise.random.WhiteNoiseSampler;
|
import com.dfsek.terra.noise.samplers.noise.random.WhiteNoiseSampler;
|
||||||
import com.dfsek.terra.api.util.collections.ProbabilityCollectionImpl;
|
import com.dfsek.terra.api.util.collections.ProbabilityCollectionImpl;
|
||||||
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
|
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
|
||||||
import com.dfsek.terra.api.world.Flora;
|
import com.dfsek.terra.api.world.Flora;
|
||||||
|
|||||||
+1
-1
@@ -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.range.ConstantRange;
|
import com.dfsek.terra.api.math.range.ConstantRange;
|
||||||
import com.dfsek.terra.api.noise.samplers.noise.random.WhiteNoiseSampler;
|
import com.dfsek.terra.noise.samplers.noise.random.WhiteNoiseSampler;
|
||||||
import com.dfsek.terra.api.world.Tree;
|
import com.dfsek.terra.api.world.Tree;
|
||||||
import com.dfsek.terra.api.util.collections.ProbabilityCollectionImpl;
|
import com.dfsek.terra.api.util.collections.ProbabilityCollectionImpl;
|
||||||
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
|
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
|
||||||
|
|||||||
+1
-1
@@ -4,7 +4,7 @@ import com.dfsek.tectonic.annotations.Default;
|
|||||||
import com.dfsek.tectonic.annotations.Value;
|
import com.dfsek.tectonic.annotations.Value;
|
||||||
import com.dfsek.tectonic.loading.object.ObjectTemplate;
|
import com.dfsek.tectonic.loading.object.ObjectTemplate;
|
||||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
import com.dfsek.terra.api.noise.samplers.noise.ConstantSampler;
|
import com.dfsek.terra.noise.samplers.noise.ConstantSampler;
|
||||||
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
|
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
|
||||||
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -3,7 +3,7 @@ package com.dfsek.terra.config.loaders.config.sampler.templates;
|
|||||||
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.terra.api.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
import com.dfsek.terra.api.noise.samplers.DomainWarpedSampler;
|
import com.dfsek.terra.noise.samplers.DomainWarpedSampler;
|
||||||
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
|
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
|
||||||
|
|
||||||
@SuppressWarnings({"unused", "FieldMayBeFinal"})
|
@SuppressWarnings({"unused", "FieldMayBeFinal"})
|
||||||
|
|||||||
+1
-1
@@ -2,7 +2,7 @@ package com.dfsek.terra.config.loaders.config.sampler.templates;
|
|||||||
|
|
||||||
import com.dfsek.tectonic.annotations.Value;
|
import com.dfsek.tectonic.annotations.Value;
|
||||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
import com.dfsek.terra.api.noise.samplers.ImageSampler;
|
import com.dfsek.terra.noise.samplers.ImageSampler;
|
||||||
|
|
||||||
import java.awt.image.BufferedImage;
|
import java.awt.image.BufferedImage;
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -5,7 +5,7 @@ import com.dfsek.tectonic.annotations.Value;
|
|||||||
import com.dfsek.tectonic.config.ValidatedConfigTemplate;
|
import com.dfsek.tectonic.config.ValidatedConfigTemplate;
|
||||||
import com.dfsek.tectonic.exception.ValidationException;
|
import com.dfsek.tectonic.exception.ValidationException;
|
||||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
import com.dfsek.terra.api.noise.samplers.KernelSampler;
|
import com.dfsek.terra.noise.samplers.KernelSampler;
|
||||||
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
|
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|||||||
+2
-2
@@ -3,8 +3,8 @@ package com.dfsek.terra.config.loaders.config.sampler.templates.noise;
|
|||||||
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.terra.api.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
import com.dfsek.terra.api.noise.samplers.noise.CellularSampler;
|
import com.dfsek.terra.noise.samplers.noise.CellularSampler;
|
||||||
import com.dfsek.terra.api.noise.samplers.noise.simplex.OpenSimplex2Sampler;
|
import com.dfsek.terra.noise.samplers.noise.simplex.OpenSimplex2Sampler;
|
||||||
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
|
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
|
||||||
|
|
||||||
@SuppressWarnings("FieldMayBeFinal")
|
@SuppressWarnings("FieldMayBeFinal")
|
||||||
|
|||||||
+1
-1
@@ -3,7 +3,7 @@ package com.dfsek.terra.config.loaders.config.sampler.templates.noise;
|
|||||||
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.terra.api.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
import com.dfsek.terra.api.noise.samplers.noise.ConstantSampler;
|
import com.dfsek.terra.noise.samplers.noise.ConstantSampler;
|
||||||
import com.dfsek.terra.config.loaders.config.sampler.templates.SamplerTemplate;
|
import com.dfsek.terra.config.loaders.config.sampler.templates.SamplerTemplate;
|
||||||
|
|
||||||
@SuppressWarnings("FieldMayBeFinal")
|
@SuppressWarnings("FieldMayBeFinal")
|
||||||
|
|||||||
+1
-1
@@ -9,7 +9,7 @@ import com.dfsek.tectonic.annotations.Value;
|
|||||||
import com.dfsek.tectonic.config.ValidatedConfigTemplate;
|
import com.dfsek.tectonic.config.ValidatedConfigTemplate;
|
||||||
import com.dfsek.tectonic.exception.ValidationException;
|
import com.dfsek.tectonic.exception.ValidationException;
|
||||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
import com.dfsek.terra.api.noise.samplers.noise.ExpressionFunction;
|
import com.dfsek.terra.noise.samplers.noise.ExpressionFunction;
|
||||||
import com.dfsek.terra.api.math.paralithic.defined.UserDefinedFunction;
|
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.NoiseFunction2;
|
||||||
import com.dfsek.terra.api.math.paralithic.noise.NoiseFunction3;
|
import com.dfsek.terra.api.math.paralithic.noise.NoiseFunction3;
|
||||||
|
|||||||
+1
-1
@@ -3,7 +3,7 @@ package com.dfsek.terra.config.loaders.config.sampler.templates.noise;
|
|||||||
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.terra.api.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
import com.dfsek.terra.api.noise.samplers.noise.GaborNoiseSampler;
|
import com.dfsek.terra.noise.samplers.noise.GaborNoiseSampler;
|
||||||
|
|
||||||
public class GaborNoiseTemplate extends NoiseTemplate<GaborNoiseSampler> {
|
public class GaborNoiseTemplate extends NoiseTemplate<GaborNoiseSampler> {
|
||||||
@Value("rotation")
|
@Value("rotation")
|
||||||
|
|||||||
+1
-1
@@ -2,7 +2,7 @@ package com.dfsek.terra.config.loaders.config.sampler.templates.noise;
|
|||||||
|
|
||||||
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.terra.api.noise.samplers.noise.NoiseFunction;
|
import com.dfsek.terra.noise.samplers.noise.NoiseFunction;
|
||||||
import com.dfsek.terra.config.loaders.config.sampler.templates.SamplerTemplate;
|
import com.dfsek.terra.config.loaders.config.sampler.templates.SamplerTemplate;
|
||||||
|
|
||||||
@SuppressWarnings({"unused", "FieldMayBeFinal"})
|
@SuppressWarnings({"unused", "FieldMayBeFinal"})
|
||||||
|
|||||||
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
package com.dfsek.terra.config.loaders.config.sampler.templates.noise;
|
package com.dfsek.terra.config.loaders.config.sampler.templates.noise;
|
||||||
|
|
||||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
import com.dfsek.terra.api.noise.samplers.noise.NoiseFunction;
|
import com.dfsek.terra.noise.samplers.noise.NoiseFunction;
|
||||||
|
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
package com.dfsek.terra.config.loaders.config.sampler.templates.noise.fractal;
|
package com.dfsek.terra.config.loaders.config.sampler.templates.noise.fractal;
|
||||||
|
|
||||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
import com.dfsek.terra.api.noise.samplers.noise.fractal.BrownianMotionSampler;
|
import com.dfsek.terra.noise.samplers.noise.fractal.BrownianMotionSampler;
|
||||||
|
|
||||||
public class BrownianMotionTemplate extends FractalTemplate<BrownianMotionSampler> {
|
public class BrownianMotionTemplate extends FractalTemplate<BrownianMotionSampler> {
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+1
-1
@@ -2,7 +2,7 @@ package com.dfsek.terra.config.loaders.config.sampler.templates.noise.fractal;
|
|||||||
|
|
||||||
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.terra.api.noise.samplers.noise.fractal.FractalNoiseFunction;
|
import com.dfsek.terra.noise.samplers.noise.fractal.FractalNoiseFunction;
|
||||||
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
|
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
|
||||||
import com.dfsek.terra.config.loaders.config.sampler.templates.SamplerTemplate;
|
import com.dfsek.terra.config.loaders.config.sampler.templates.SamplerTemplate;
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -3,7 +3,7 @@ package com.dfsek.terra.config.loaders.config.sampler.templates.noise.fractal;
|
|||||||
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.terra.api.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
import com.dfsek.terra.api.noise.samplers.noise.fractal.PingPongSampler;
|
import com.dfsek.terra.noise.samplers.noise.fractal.PingPongSampler;
|
||||||
@SuppressWarnings({"unused", "FieldMayBeFinal"})
|
@SuppressWarnings({"unused", "FieldMayBeFinal"})
|
||||||
public class PingPongTemplate extends FractalTemplate<PingPongSampler> {
|
public class PingPongTemplate extends FractalTemplate<PingPongSampler> {
|
||||||
@Value("ping-pong")
|
@Value("ping-pong")
|
||||||
|
|||||||
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
package com.dfsek.terra.config.loaders.config.sampler.templates.noise.fractal;
|
package com.dfsek.terra.config.loaders.config.sampler.templates.noise.fractal;
|
||||||
|
|
||||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
import com.dfsek.terra.api.noise.samplers.noise.fractal.RidgedFractalSampler;
|
import com.dfsek.terra.noise.samplers.noise.fractal.RidgedFractalSampler;
|
||||||
|
|
||||||
public class RidgedFractalTemplate extends FractalTemplate<RidgedFractalSampler> {
|
public class RidgedFractalTemplate extends FractalTemplate<RidgedFractalSampler> {
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+2
-2
@@ -2,8 +2,8 @@ package com.dfsek.terra.config.loaders.config.sampler.templates.normalizer;
|
|||||||
|
|
||||||
import com.dfsek.tectonic.annotations.Value;
|
import com.dfsek.tectonic.annotations.Value;
|
||||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
import com.dfsek.terra.api.noise.normalizer.ClampNormalizer;
|
import com.dfsek.terra.noise.normalizer.ClampNormalizer;
|
||||||
import com.dfsek.terra.api.noise.normalizer.LinearNormalizer;
|
import com.dfsek.terra.noise.normalizer.LinearNormalizer;
|
||||||
|
|
||||||
@SuppressWarnings({"unused", "FieldMayBeFinal"})
|
@SuppressWarnings({"unused", "FieldMayBeFinal"})
|
||||||
public class ClampNormalizerTemplate extends NormalizerTemplate<LinearNormalizer> {
|
public class ClampNormalizerTemplate extends NormalizerTemplate<LinearNormalizer> {
|
||||||
|
|||||||
+1
-1
@@ -2,7 +2,7 @@ package com.dfsek.terra.config.loaders.config.sampler.templates.normalizer;
|
|||||||
|
|
||||||
import com.dfsek.tectonic.annotations.Value;
|
import com.dfsek.tectonic.annotations.Value;
|
||||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
import com.dfsek.terra.api.noise.normalizer.LinearNormalizer;
|
import com.dfsek.terra.noise.normalizer.LinearNormalizer;
|
||||||
|
|
||||||
@SuppressWarnings({"unused", "FieldMayBeFinal"})
|
@SuppressWarnings({"unused", "FieldMayBeFinal"})
|
||||||
public class LinearNormalizerTemplate extends NormalizerTemplate<LinearNormalizer> {
|
public class LinearNormalizerTemplate extends NormalizerTemplate<LinearNormalizer> {
|
||||||
|
|||||||
+1
-1
@@ -3,7 +3,7 @@ package com.dfsek.terra.config.loaders.config.sampler.templates.normalizer;
|
|||||||
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.terra.api.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
import com.dfsek.terra.api.noise.normalizer.NormalNormalizer;
|
import com.dfsek.terra.noise.normalizer.NormalNormalizer;
|
||||||
|
|
||||||
@SuppressWarnings({"unused", "FieldMayBeFinal"})
|
@SuppressWarnings({"unused", "FieldMayBeFinal"})
|
||||||
public class NormalNormalizerTemplate extends NormalizerTemplate<NormalNormalizer> {
|
public class NormalNormalizerTemplate extends NormalizerTemplate<NormalNormalizer> {
|
||||||
|
|||||||
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
package com.dfsek.terra.config.loaders.config.sampler.templates.normalizer;
|
package com.dfsek.terra.config.loaders.config.sampler.templates.normalizer;
|
||||||
|
|
||||||
import com.dfsek.tectonic.annotations.Value;
|
import com.dfsek.tectonic.annotations.Value;
|
||||||
import com.dfsek.terra.api.noise.normalizer.Normalizer;
|
import com.dfsek.terra.noise.normalizer.Normalizer;
|
||||||
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
|
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
|
||||||
import com.dfsek.terra.config.loaders.config.sampler.templates.SamplerTemplate;
|
import com.dfsek.terra.config.loaders.config.sampler.templates.SamplerTemplate;
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,8 @@ import com.dfsek.terra.api.event.events.config.ConfigPackPreLoadEvent;
|
|||||||
import com.dfsek.terra.api.registry.CheckedRegistry;
|
import com.dfsek.terra.api.registry.CheckedRegistry;
|
||||||
import com.dfsek.terra.api.registry.OpenRegistry;
|
import com.dfsek.terra.api.registry.OpenRegistry;
|
||||||
import com.dfsek.terra.api.registry.Registry;
|
import com.dfsek.terra.api.registry.Registry;
|
||||||
import com.dfsek.terra.api.structures.loot.LootTable;
|
import com.dfsek.terra.api.structure.Structure;
|
||||||
|
import com.dfsek.terra.api.structures.loot.LootTableImpl;
|
||||||
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.StructureScript;
|
import com.dfsek.terra.api.structures.script.StructureScript;
|
||||||
import com.dfsek.terra.api.util.generic.pair.ImmutablePair;
|
import com.dfsek.terra.api.util.generic.pair.ImmutablePair;
|
||||||
@@ -190,7 +191,7 @@ public class ConfigPackImpl implements ConfigPack {
|
|||||||
|
|
||||||
putPair(map, NoiseProvider.class, new NoiseRegistry());
|
putPair(map, NoiseProvider.class, new NoiseRegistry());
|
||||||
putPair(map, FunctionBuilder.class, (OpenRegistry<FunctionBuilder>) (Object) new FunctionRegistry());
|
putPair(map, FunctionBuilder.class, (OpenRegistry<FunctionBuilder>) (Object) new FunctionRegistry());
|
||||||
putPair(map, LootTable.class, new LootRegistry());
|
putPair(map, LootTableImpl.class, new LootRegistry());
|
||||||
putPair(map, StructureScript.class, new ScriptRegistry());
|
putPair(map, StructureScript.class, new ScriptRegistry());
|
||||||
|
|
||||||
return map;
|
return map;
|
||||||
@@ -217,8 +218,8 @@ public class ConfigPackImpl implements ConfigPack {
|
|||||||
loader.open("", ".tesf").thenEntries(entries -> {
|
loader.open("", ".tesf").thenEntries(entries -> {
|
||||||
for(Map.Entry<String, InputStream> entry : entries) {
|
for(Map.Entry<String, InputStream> entry : entries) {
|
||||||
try(InputStream stream = entry.getValue()) {
|
try(InputStream stream = entry.getValue()) {
|
||||||
StructureScript structureScript = new StructureScript(stream, main, getRegistry(StructureScript.class), getRegistry(LootTable.class), (Registry<FunctionBuilder<?>>) (Object) getRegistry(FunctionBuilder.class));
|
Structure structure = new StructureScript(stream, main, getRegistry(StructureScript.class), getRegistry(LootTableImpl.class), (Registry<FunctionBuilder<?>>) (Object) getRegistry(FunctionBuilder.class));
|
||||||
getOpenRegistry(StructureScript.class).add(structureScript.getId(), structureScript);
|
getOpenRegistry(StructureScript.class).add(structure.getId(), structure);
|
||||||
} catch(com.dfsek.terra.api.structures.parser.exceptions.ParseException | IOException e) {
|
} catch(com.dfsek.terra.api.structures.parser.exceptions.ParseException | IOException e) {
|
||||||
throw new LoadException("Unable to load script \"" + entry.getKey() + "\"", e);
|
throw new LoadException("Unable to load script \"" + entry.getKey() + "\"", e);
|
||||||
}
|
}
|
||||||
@@ -226,7 +227,7 @@ public class ConfigPackImpl implements ConfigPack {
|
|||||||
}).close().open("structures/loot", ".json").thenEntries(entries -> {
|
}).close().open("structures/loot", ".json").thenEntries(entries -> {
|
||||||
for(Map.Entry<String, InputStream> entry : entries) {
|
for(Map.Entry<String, InputStream> entry : entries) {
|
||||||
try {
|
try {
|
||||||
getOpenRegistry(LootTable.class).add(entry.getKey(), new LootTable(IOUtils.toString(entry.getValue(), StandardCharsets.UTF_8), main));
|
getOpenRegistry(LootTableImpl.class).add(entry.getKey(), new LootTableImpl(IOUtils.toString(entry.getValue(), StandardCharsets.UTF_8), main));
|
||||||
} catch(ParseException | IOException | NullPointerException e) {
|
} catch(ParseException | IOException | NullPointerException e) {
|
||||||
throw new LoadException("Unable to load loot table \"" + entry.getKey() + "\"", e);
|
throw new LoadException("Unable to load loot table \"" + entry.getKey() + "\"", e);
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-8
@@ -6,11 +6,11 @@ import com.dfsek.terra.api.registry.Registry;
|
|||||||
import com.dfsek.terra.api.world.TerraWorld;
|
import com.dfsek.terra.api.world.TerraWorld;
|
||||||
import com.dfsek.terra.api.world.biome.TerraBiome;
|
import com.dfsek.terra.api.world.biome.TerraBiome;
|
||||||
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
||||||
import com.dfsek.terra.carving.UserDefinedCarver;
|
import com.dfsek.terra.api.world.generator.SamplerCache;
|
||||||
import com.dfsek.terra.config.builder.BiomeBuilder;
|
import com.dfsek.terra.config.builder.BiomeBuilder;
|
||||||
import com.dfsek.terra.registry.LockedRegistryImpl;
|
import com.dfsek.terra.registry.LockedRegistryImpl;
|
||||||
import com.dfsek.terra.registry.OpenRegistryImpl;
|
import com.dfsek.terra.registry.OpenRegistryImpl;
|
||||||
import com.dfsek.terra.world.generation.math.SamplerCache;
|
import com.dfsek.terra.world.generation.math.SamplerCacheImpl;
|
||||||
import com.dfsek.terra.world.population.items.TerraStructure;
|
import com.dfsek.terra.world.population.items.TerraStructure;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@@ -31,7 +31,7 @@ public class WorldConfigImpl implements com.dfsek.terra.api.config.WorldConfig {
|
|||||||
public WorldConfigImpl(TerraWorld world, ConfigPackImpl pack, TerraPlugin main) {
|
public WorldConfigImpl(TerraWorld world, ConfigPackImpl pack, TerraPlugin main) {
|
||||||
this.world = world;
|
this.world = world;
|
||||||
this.pack = pack;
|
this.pack = pack;
|
||||||
this.samplerCache = new SamplerCache(main, world);
|
this.samplerCache = new SamplerCacheImpl(main, world);
|
||||||
|
|
||||||
pack.getRegistryMap().forEach((clazz, pair) -> registryMap.put(clazz, new LockedRegistryImpl<>(pair.getLeft())));
|
pack.getRegistryMap().forEach((clazz, pair) -> registryMap.put(clazz, new LockedRegistryImpl<>(pair.getLeft())));
|
||||||
|
|
||||||
@@ -58,11 +58,6 @@ public class WorldConfigImpl implements com.dfsek.terra.api.config.WorldConfig {
|
|||||||
return samplerCache;
|
return samplerCache;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public Set<UserDefinedCarver> getCarvers() {
|
|
||||||
return new HashSet<>(getRegistry(UserDefinedCarver.class).entries());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BiomeProvider getProvider() {
|
public BiomeProvider getProvider() {
|
||||||
return provider;
|
return provider;
|
||||||
|
|||||||
+1
-1
@@ -11,7 +11,7 @@ import com.dfsek.tectonic.exception.ValidationException;
|
|||||||
import com.dfsek.terra.api.TerraPlugin;
|
import com.dfsek.terra.api.TerraPlugin;
|
||||||
import com.dfsek.terra.api.config.ConfigPack;
|
import com.dfsek.terra.api.config.ConfigPack;
|
||||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
import com.dfsek.terra.api.noise.samplers.noise.ConstantSampler;
|
import com.dfsek.terra.noise.samplers.noise.ConstantSampler;
|
||||||
import com.dfsek.terra.api.math.paralithic.BlankFunction;
|
import com.dfsek.terra.api.math.paralithic.BlankFunction;
|
||||||
import com.dfsek.terra.api.math.paralithic.defined.UserDefinedFunction;
|
import com.dfsek.terra.api.math.paralithic.defined.UserDefinedFunction;
|
||||||
import com.dfsek.terra.api.block.BlockType;
|
import com.dfsek.terra.api.block.BlockType;
|
||||||
|
|||||||
+1
-1
@@ -4,7 +4,7 @@ import com.dfsek.tectonic.annotations.Abstractable;
|
|||||||
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.terra.api.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
import com.dfsek.terra.api.noise.samplers.noise.random.WhiteNoiseSampler;
|
import com.dfsek.terra.noise.samplers.noise.random.WhiteNoiseSampler;
|
||||||
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
|
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
|
||||||
import com.dfsek.terra.api.world.palette.holder.PaletteLayerHolder;
|
import com.dfsek.terra.api.world.palette.holder.PaletteLayerHolder;
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -5,7 +5,7 @@ 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.terra.api.math.GridSpawn;
|
import com.dfsek.terra.api.math.GridSpawn;
|
||||||
import com.dfsek.terra.api.structures.script.StructureScript;
|
import com.dfsek.terra.api.structure.Structure;
|
||||||
import com.dfsek.terra.api.util.GlueList;
|
import com.dfsek.terra.api.util.GlueList;
|
||||||
import com.dfsek.terra.api.util.Range;
|
import com.dfsek.terra.api.util.Range;
|
||||||
import com.dfsek.terra.api.util.collections.ProbabilityCollectionImpl;
|
import com.dfsek.terra.api.util.collections.ProbabilityCollectionImpl;
|
||||||
@@ -19,7 +19,7 @@ public class StructureTemplate extends AbstractableTemplate implements ConfigTem
|
|||||||
|
|
||||||
@Value("scripts")
|
@Value("scripts")
|
||||||
@Abstractable
|
@Abstractable
|
||||||
private ProbabilityCollectionImpl<StructureScript> structure;
|
private ProbabilityCollectionImpl<Structure> structure;
|
||||||
|
|
||||||
@Value("spawn.start")
|
@Value("spawn.start")
|
||||||
@Abstractable
|
@Abstractable
|
||||||
@@ -38,7 +38,7 @@ public class StructureTemplate extends AbstractableTemplate implements ConfigTem
|
|||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ProbabilityCollectionImpl<StructureScript> getStructures() {
|
public ProbabilityCollectionImpl<Structure> getStructures() {
|
||||||
return structure;
|
return structure;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -3,7 +3,7 @@ package com.dfsek.terra.config.templates;
|
|||||||
import com.dfsek.tectonic.annotations.Abstractable;
|
import com.dfsek.tectonic.annotations.Abstractable;
|
||||||
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.terra.api.structures.script.StructureScript;
|
import com.dfsek.terra.api.structure.Structure;
|
||||||
import com.dfsek.terra.api.util.collections.MaterialSet;
|
import com.dfsek.terra.api.util.collections.MaterialSet;
|
||||||
import com.dfsek.terra.api.util.collections.ProbabilityCollectionImpl;
|
import com.dfsek.terra.api.util.collections.ProbabilityCollectionImpl;
|
||||||
|
|
||||||
@@ -11,7 +11,7 @@ import com.dfsek.terra.api.util.collections.ProbabilityCollectionImpl;
|
|||||||
public class TreeTemplate extends AbstractableTemplate {
|
public class TreeTemplate extends AbstractableTemplate {
|
||||||
@Value("scripts")
|
@Value("scripts")
|
||||||
@Abstractable
|
@Abstractable
|
||||||
private ProbabilityCollectionImpl<StructureScript> structure;
|
private ProbabilityCollectionImpl<Structure> structure;
|
||||||
|
|
||||||
@Value("id")
|
@Value("id")
|
||||||
private String id;
|
private String id;
|
||||||
@@ -25,7 +25,7 @@ public class TreeTemplate extends AbstractableTemplate {
|
|||||||
@Abstractable
|
@Abstractable
|
||||||
private MaterialSet spawnable;
|
private MaterialSet spawnable;
|
||||||
|
|
||||||
public ProbabilityCollectionImpl<StructureScript> getStructures() {
|
public ProbabilityCollectionImpl<Structure> getStructures() {
|
||||||
return structure;
|
return structure;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.api.noise.normalizer;
|
package com.dfsek.terra.noise.normalizer;
|
||||||
|
|
||||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
import net.jafama.FastMath;
|
import net.jafama.FastMath;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.api.noise.normalizer;
|
package com.dfsek.terra.noise.normalizer;
|
||||||
|
|
||||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
|
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.api.noise.normalizer;
|
package com.dfsek.terra.noise.normalizer;
|
||||||
|
|
||||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
import com.dfsek.terra.api.util.MathUtil;
|
import com.dfsek.terra.api.util.MathUtil;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.api.noise.normalizer;
|
package com.dfsek.terra.noise.normalizer;
|
||||||
|
|
||||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
|
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.api.noise.samplers;
|
package com.dfsek.terra.noise.samplers;
|
||||||
|
|
||||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
|
|
||||||
+6
-1
@@ -1,10 +1,15 @@
|
|||||||
package com.dfsek.terra.api.noise.samplers;
|
package com.dfsek.terra.noise.samplers;
|
||||||
|
|
||||||
import com.dfsek.paralithic.Expression;
|
import com.dfsek.paralithic.Expression;
|
||||||
import com.dfsek.paralithic.eval.parser.Parser;
|
import com.dfsek.paralithic.eval.parser.Parser;
|
||||||
import com.dfsek.paralithic.eval.parser.Scope;
|
import com.dfsek.paralithic.eval.parser.Scope;
|
||||||
import com.dfsek.paralithic.eval.tokenizer.ParseException;
|
import com.dfsek.paralithic.eval.tokenizer.ParseException;
|
||||||
|
import com.dfsek.terra.api.math.paralithic.defined.UserDefinedFunction;
|
||||||
|
import com.dfsek.terra.api.math.paralithic.noise.NoiseFunction2;
|
||||||
|
import com.dfsek.terra.api.math.paralithic.noise.NoiseFunction3;
|
||||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
|
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
|
||||||
|
import com.dfsek.terra.config.loaders.config.function.FunctionTemplate;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.api.noise.samplers;
|
package com.dfsek.terra.noise.samplers;
|
||||||
|
|
||||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
import net.jafama.FastMath;
|
import net.jafama.FastMath;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.api.noise.samplers;
|
package com.dfsek.terra.noise.samplers;
|
||||||
|
|
||||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
|
|
||||||
+2
-2
@@ -1,7 +1,7 @@
|
|||||||
package com.dfsek.terra.api.noise.samplers.noise;
|
package com.dfsek.terra.noise.samplers.noise;
|
||||||
|
|
||||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
import com.dfsek.terra.api.noise.samplers.noise.simplex.OpenSimplex2Sampler;
|
import com.dfsek.terra.noise.samplers.noise.simplex.OpenSimplex2Sampler;
|
||||||
import com.dfsek.terra.api.vector.Vector2;
|
import com.dfsek.terra.api.vector.Vector2;
|
||||||
import com.dfsek.terra.api.vector.Vector3;
|
import com.dfsek.terra.api.vector.Vector3;
|
||||||
|
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.api.noise.samplers.noise;
|
package com.dfsek.terra.noise.samplers.noise;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sampler3D implementation that returns a constant.
|
* Sampler3D implementation that returns a constant.
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.api.noise.samplers.noise;
|
package com.dfsek.terra.noise.samplers.noise;
|
||||||
|
|
||||||
import com.dfsek.paralithic.Expression;
|
import com.dfsek.paralithic.Expression;
|
||||||
import com.dfsek.paralithic.eval.parser.Parser;
|
import com.dfsek.paralithic.eval.parser.Parser;
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
package com.dfsek.terra.api.noise.samplers.noise;
|
package com.dfsek.terra.noise.samplers.noise;
|
||||||
|
|
||||||
import com.dfsek.terra.api.noise.samplers.noise.random.WhiteNoiseSampler;
|
import com.dfsek.terra.noise.samplers.noise.random.WhiteNoiseSampler;
|
||||||
import net.jafama.FastMath;
|
import net.jafama.FastMath;
|
||||||
|
|
||||||
public class GaborNoiseSampler extends NoiseFunction {
|
public class GaborNoiseSampler extends NoiseFunction {
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.api.noise.samplers.noise;
|
package com.dfsek.terra.noise.samplers.noise;
|
||||||
|
|
||||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
import net.jafama.FastMath;
|
import net.jafama.FastMath;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.api.noise.samplers.noise.fractal;
|
package com.dfsek.terra.noise.samplers.noise.fractal;
|
||||||
|
|
||||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
|
|
||||||
+2
-2
@@ -1,7 +1,7 @@
|
|||||||
package com.dfsek.terra.api.noise.samplers.noise.fractal;
|
package com.dfsek.terra.noise.samplers.noise.fractal;
|
||||||
|
|
||||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
import com.dfsek.terra.api.noise.samplers.noise.NoiseFunction;
|
import com.dfsek.terra.noise.samplers.noise.NoiseFunction;
|
||||||
|
|
||||||
public abstract class FractalNoiseFunction extends NoiseFunction {
|
public abstract class FractalNoiseFunction extends NoiseFunction {
|
||||||
protected final NoiseSampler input;
|
protected final NoiseSampler input;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.api.noise.samplers.noise.fractal;
|
package com.dfsek.terra.noise.samplers.noise.fractal;
|
||||||
|
|
||||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
|
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.api.noise.samplers.noise.fractal;
|
package com.dfsek.terra.noise.samplers.noise.fractal;
|
||||||
|
|
||||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
|
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
package com.dfsek.terra.api.noise.samplers.noise.random;
|
package com.dfsek.terra.noise.samplers.noise.random;
|
||||||
|
|
||||||
import com.dfsek.terra.api.noise.samplers.noise.NoiseFunction;
|
import com.dfsek.terra.noise.samplers.noise.NoiseFunction;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* NoiseSampler implementation to provide random, normally distributed (Gaussian) noise.
|
* NoiseSampler implementation to provide random, normally distributed (Gaussian) noise.
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
package com.dfsek.terra.api.noise.samplers.noise.random;
|
package com.dfsek.terra.noise.samplers.noise.random;
|
||||||
|
|
||||||
import com.dfsek.terra.api.noise.samplers.noise.NoiseFunction;
|
import com.dfsek.terra.noise.samplers.noise.NoiseFunction;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* NoiseSampler implementation to produce random, uniformly distributed (white) noise.
|
* NoiseSampler implementation to produce random, uniformly distributed (white) noise.
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.api.noise.samplers.noise.simplex;
|
package com.dfsek.terra.noise.samplers.noise.simplex;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* NoiseSampler implementation to provide OpenSimplex2 (Smooth Variant) noise.
|
* NoiseSampler implementation to provide OpenSimplex2 (Smooth Variant) noise.
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.api.noise.samplers.noise.simplex;
|
package com.dfsek.terra.noise.samplers.noise.simplex;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* NoiseSampler implementation to provide OpenSimplex2 noise.
|
* NoiseSampler implementation to provide OpenSimplex2 noise.
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.api.noise.samplers.noise.simplex;
|
package com.dfsek.terra.noise.samplers.noise.simplex;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* NoiseSampler implementation to provide Perlin Noise.
|
* NoiseSampler implementation to provide Perlin Noise.
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user