This commit is contained in:
dfsek
2021-01-01 00:27:36 -07:00
parent ce033b0956
commit 8da2b63f31
62 changed files with 108 additions and 105 deletions

View File

@@ -1,4 +1,4 @@
package com.dfsek.terra.api.gaea;
package com.dfsek.terra.api;
import com.dfsek.terra.api.platform.world.World;

View File

@@ -3,9 +3,10 @@ package com.dfsek.terra.api.platform;
import com.dfsek.terra.TerraWorld;
import com.dfsek.terra.api.LoaderRegistrar;
import com.dfsek.terra.api.lang.Language;
import com.dfsek.terra.api.platform.inventory.ItemHandle;
import com.dfsek.terra.api.platform.handle.EntityHandle;
import com.dfsek.terra.api.platform.handle.ItemHandle;
import com.dfsek.terra.api.platform.handle.WorldHandle;
import com.dfsek.terra.api.platform.world.World;
import com.dfsek.terra.api.platform.world.WorldHandle;
import com.dfsek.terra.config.base.PluginConfig;
import com.dfsek.terra.registry.ConfigRegistry;
@@ -36,4 +37,6 @@ public interface TerraPlugin extends LoaderRegistrar {
ItemHandle getItemHandle();
void saveDefaultConfig();
EntityHandle getEntityHandle();
}

View File

@@ -1,4 +0,0 @@
package com.dfsek.terra.api.platform;
public interface Tree extends Handle, com.dfsek.terra.api.world.tree.Tree {
}

View File

@@ -0,0 +1,4 @@
package com.dfsek.terra.api.platform.handle;
public interface EntityHandle {
}

View File

@@ -1,6 +1,7 @@
package com.dfsek.terra.api.platform.inventory;
package com.dfsek.terra.api.platform.handle;
import com.dfsek.terra.api.platform.block.MaterialData;
import com.dfsek.terra.api.platform.inventory.ItemStack;
public interface ItemHandle {
ItemStack newItemStack(MaterialData material, int amount);

View File

@@ -1,9 +1,9 @@
package com.dfsek.terra.api.platform.world;
package com.dfsek.terra.api.platform.handle;
import com.dfsek.terra.api.platform.Tree;
import com.dfsek.terra.api.platform.block.Block;
import com.dfsek.terra.api.platform.block.BlockData;
import com.dfsek.terra.api.platform.block.MaterialData;
import com.dfsek.terra.api.platform.world.Tree;
/**
* Interface to be implemented for world manipulation.

View File

@@ -0,0 +1,6 @@
package com.dfsek.terra.api.platform.world;
import com.dfsek.terra.api.platform.Handle;
public interface Tree extends Handle, com.dfsek.terra.api.world.tree.Tree {
}

View File

@@ -3,7 +3,6 @@ package com.dfsek.terra.api.platform.world;
import com.dfsek.terra.api.math.vector.Location;
import com.dfsek.terra.api.platform.Entity;
import com.dfsek.terra.api.platform.Handle;
import com.dfsek.terra.api.platform.Tree;
import com.dfsek.terra.api.platform.block.Block;
import com.dfsek.terra.api.platform.generator.ChunkGenerator;

View File

@@ -1,11 +1,11 @@
package com.dfsek.terra.api.loot;
package com.dfsek.terra.api.structures.loot;
import com.dfsek.terra.api.loot.functions.AmountFunction;
import com.dfsek.terra.api.loot.functions.DamageFunction;
import com.dfsek.terra.api.loot.functions.Function;
import com.dfsek.terra.api.platform.TerraPlugin;
import com.dfsek.terra.api.platform.block.MaterialData;
import com.dfsek.terra.api.platform.inventory.ItemStack;
import com.dfsek.terra.api.structures.loot.functions.AmountFunction;
import com.dfsek.terra.api.structures.loot.functions.DamageFunction;
import com.dfsek.terra.api.structures.loot.functions.Function;
import com.dfsek.terra.api.util.GlueList;
import net.jafama.FastMath;
import org.json.simple.JSONArray;

View File

@@ -1,4 +1,4 @@
package com.dfsek.terra.api.loot;
package com.dfsek.terra.api.structures.loot;
import com.dfsek.terra.api.platform.TerraPlugin;
import com.dfsek.terra.api.platform.inventory.Inventory;

View File

@@ -1,4 +1,4 @@
package com.dfsek.terra.api.loot;
package com.dfsek.terra.api.structures.loot;
import com.dfsek.terra.api.math.ProbabilityCollection;
import com.dfsek.terra.api.platform.TerraPlugin;

View File

@@ -1,4 +1,4 @@
package com.dfsek.terra.api.loot.functions;
package com.dfsek.terra.api.structures.loot.functions;
import com.dfsek.terra.api.platform.inventory.ItemStack;

View File

@@ -1,4 +1,4 @@
package com.dfsek.terra.api.loot.functions;
package com.dfsek.terra.api.structures.loot.functions;
import com.dfsek.terra.api.platform.inventory.ItemStack;
import com.dfsek.terra.api.platform.inventory.item.Damageable;

View File

@@ -1,4 +1,4 @@
package com.dfsek.terra.api.loot.functions;
package com.dfsek.terra.api.structures.loot.functions;
import com.dfsek.terra.api.platform.inventory.ItemStack;

View File

@@ -1,9 +1,9 @@
package com.dfsek.terra.api.structures.script.functions;
import com.dfsek.terra.api.loot.LootTable;
import com.dfsek.terra.api.math.vector.Vector2;
import com.dfsek.terra.api.math.vector.Vector3;
import com.dfsek.terra.api.platform.TerraPlugin;
import com.dfsek.terra.api.structures.loot.LootTable;
import com.dfsek.terra.api.structures.parser.lang.Returnable;
import com.dfsek.terra.api.structures.parser.lang.functions.Function;
import com.dfsek.terra.api.structures.structure.Rotation;

View File

@@ -1,10 +1,10 @@
package com.dfsek.terra.api.structures.structure.buffer.items;
import com.dfsek.terra.api.loot.LootTable;
import com.dfsek.terra.api.math.vector.Location;
import com.dfsek.terra.api.platform.TerraPlugin;
import com.dfsek.terra.api.platform.block.state.BlockState;
import com.dfsek.terra.api.platform.block.state.Container;
import com.dfsek.terra.api.structures.loot.LootTable;
import com.dfsek.terra.api.util.FastRandom;
public class BufferedLootApplication implements BufferedItem {

View File

@@ -1,9 +1,7 @@
package com.dfsek.terra.api.world.carving;
import com.dfsek.terra.api.math.MathUtil;
import com.dfsek.terra.api.math.vector.Vector3;
import com.dfsek.terra.api.platform.world.World;
import com.dfsek.terra.api.util.FastRandom;
import net.jafama.FastMath;
import java.util.Random;
@@ -20,26 +18,7 @@ public abstract class Carver {
this.maxY = maxY;
}
public void carve(int chunkX, int chunkZ, World w, BiConsumer<Vector3, CarvingType> consumer) {
for(int x = chunkX - carvingRadius; x <= chunkX + carvingRadius; x++) {
for(int z = chunkZ - carvingRadius; z <= chunkZ + carvingRadius; z++) {
if(isChunkCarved(w, x, z, new FastRandom(MathUtil.hashToLong(this.getClass().getName() + "_" + x + "&" + z)))) {
long seed = MathUtil.getCarverChunkSeed(x, z, w.getSeed());
Random r = new FastRandom(seed);
Worm carving = getWorm(seed, new Vector3((x << 4) + r.nextInt(16), r.nextInt(maxY - minY + 1) + minY, (z << 4) + r.nextInt(16)));
Vector3 origin = carving.getOrigin();
for(int i = 0; i < carving.getLength(); i++) {
carving.step();
if(carving.getRunning().clone().setY(0).distanceSquared(origin.clone().setY(0)) > sixtyFourSq)
break;
if(FastMath.floorDiv(origin.getBlockX(), 16) != chunkX && FastMath.floorDiv(origin.getBlockZ(), 16) != chunkZ)
continue;
carving.getPoint().carve(chunkX, chunkZ, consumer);
}
}
}
}
}
public abstract void carve(int chunkX, int chunkZ, World w, BiConsumer<Vector3, CarvingType> consumer);
public int getCarvingRadius() {
return carvingRadius;

View File

@@ -1,6 +1,6 @@
package com.dfsek.terra.api.world.generation.population;
import com.dfsek.terra.api.gaea.Gaea;
import com.dfsek.terra.api.Gaea;
import com.dfsek.terra.api.platform.TerraPlugin;
import com.dfsek.terra.api.platform.world.Chunk;
import com.dfsek.terra.api.platform.world.World;

View File

@@ -5,7 +5,7 @@ import com.dfsek.terra.api.math.vector.Location;
import com.dfsek.terra.api.math.vector.Vector3;
import com.dfsek.terra.api.platform.TerraPlugin;
import com.dfsek.terra.api.platform.block.BlockData;
import com.dfsek.terra.api.platform.world.WorldHandle;
import com.dfsek.terra.api.platform.handle.WorldHandle;
import com.dfsek.terra.api.world.tree.fractal.FractalTree;
import com.dfsek.terra.api.world.tree.fractal.TreeGeometry;
import com.dfsek.terra.util.MaterialSet;

View File

@@ -5,7 +5,7 @@ import com.dfsek.terra.api.math.vector.Location;
import com.dfsek.terra.api.math.vector.Vector3;
import com.dfsek.terra.api.platform.TerraPlugin;
import com.dfsek.terra.api.platform.block.BlockData;
import com.dfsek.terra.api.platform.world.WorldHandle;
import com.dfsek.terra.api.platform.handle.WorldHandle;
import com.dfsek.terra.api.world.tree.fractal.FractalTree;
import com.dfsek.terra.api.world.tree.fractal.TreeGeometry;
import com.dfsek.terra.util.MaterialSet;

View File

@@ -5,7 +5,7 @@ import com.dfsek.terra.api.math.vector.Location;
import com.dfsek.terra.api.math.vector.Vector3;
import com.dfsek.terra.api.platform.TerraPlugin;
import com.dfsek.terra.api.platform.block.BlockData;
import com.dfsek.terra.api.platform.world.WorldHandle;
import com.dfsek.terra.api.platform.handle.WorldHandle;
import com.dfsek.terra.api.world.tree.fractal.FractalTree;
import com.dfsek.terra.api.world.tree.fractal.TreeGeometry;
import com.dfsek.terra.util.MaterialSet;

View File

@@ -6,8 +6,8 @@ import com.dfsek.tectonic.exception.LoadException;
import com.dfsek.tectonic.loading.ConfigLoader;
import com.dfsek.tectonic.loading.TypeRegistry;
import com.dfsek.terra.api.LoaderRegistrar;
import com.dfsek.terra.api.loot.LootTable;
import com.dfsek.terra.api.platform.TerraPlugin;
import com.dfsek.terra.api.structures.loot.LootTable;
import com.dfsek.terra.api.structures.script.StructureScript;
import com.dfsek.terra.api.structures.world.CheckCache;
import com.dfsek.terra.api.world.biome.Biome;

View File

@@ -9,8 +9,8 @@ import com.dfsek.terra.api.platform.block.BlockFace;
import com.dfsek.terra.api.platform.block.data.Directional;
import com.dfsek.terra.api.platform.block.data.MultipleFacing;
import com.dfsek.terra.api.platform.block.data.Rotatable;
import com.dfsek.terra.api.platform.handle.WorldHandle;
import com.dfsek.terra.api.platform.world.Chunk;
import com.dfsek.terra.api.platform.world.WorldHandle;
import com.dfsek.terra.api.util.FastRandom;
import com.dfsek.terra.api.util.GlueList;
import com.dfsek.terra.api.world.flora.Flora;

View File

@@ -6,8 +6,8 @@ import com.dfsek.terra.api.math.vector.Vector3;
import com.dfsek.terra.api.platform.TerraPlugin;
import com.dfsek.terra.api.platform.block.Block;
import com.dfsek.terra.api.platform.block.BlockData;
import com.dfsek.terra.api.platform.handle.WorldHandle;
import com.dfsek.terra.api.platform.world.Chunk;
import com.dfsek.terra.api.platform.world.WorldHandle;
import com.dfsek.terra.util.MaterialSet;
import java.util.Random;

View File

@@ -5,8 +5,8 @@ import com.dfsek.terra.api.math.vector.Vector3;
import com.dfsek.terra.api.platform.TerraPlugin;
import com.dfsek.terra.api.platform.block.Block;
import com.dfsek.terra.api.platform.block.BlockData;
import com.dfsek.terra.api.platform.handle.WorldHandle;
import com.dfsek.terra.api.platform.world.Chunk;
import com.dfsek.terra.api.platform.world.WorldHandle;
import com.dfsek.terra.util.MaterialSet;
import net.jafama.FastMath;

View File

@@ -6,9 +6,9 @@ import com.dfsek.terra.api.platform.TerraPlugin;
import com.dfsek.terra.api.platform.block.Block;
import com.dfsek.terra.api.platform.block.BlockData;
import com.dfsek.terra.api.platform.block.MaterialData;
import com.dfsek.terra.api.platform.handle.WorldHandle;
import com.dfsek.terra.api.platform.world.Chunk;
import com.dfsek.terra.api.platform.world.World;
import com.dfsek.terra.api.platform.world.WorldHandle;
import com.dfsek.terra.api.profiler.ProfileFuture;
import com.dfsek.terra.api.world.generation.TerraBlockPopulator;
import com.dfsek.terra.carving.UserDefinedCarver;

View File

@@ -1,6 +1,6 @@
package com.dfsek.terra.registry;
import com.dfsek.terra.api.loot.LootTable;
import com.dfsek.terra.api.structures.loot.LootTable;
public class LootRegistry extends TerraRegistry<LootTable> {
}