cleanup & add entity support

This commit is contained in:
dfsek
2021-01-01 01:50:01 -07:00
parent 8da2b63f31
commit 044aa738a3
36 changed files with 135 additions and 92 deletions

View File

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

View File

@@ -3,7 +3,6 @@ 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.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;
@@ -37,6 +36,4 @@ public interface TerraPlugin extends LoaderRegistrar {
ItemHandle getItemHandle();
void saveDefaultConfig();
EntityHandle getEntityHandle();
}

View File

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

View File

@@ -4,6 +4,7 @@ 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;
import com.dfsek.terra.api.platform.world.entity.EntityType;
/**
* Interface to be implemented for world manipulation.
@@ -20,4 +21,6 @@ public interface WorldHandle {
MaterialData createMaterialData(String data);
Tree getTree(String id);
EntityType getEntity(String id);
}

View File

@@ -1,14 +1,14 @@
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.block.Block;
import com.dfsek.terra.api.platform.generator.ChunkGenerator;
import com.dfsek.terra.api.platform.world.entity.Entity;
import com.dfsek.terra.api.platform.world.entity.EntityType;
import java.io.File;
import java.util.UUID;
import java.util.function.Consumer;
public interface World extends Handle {
long getSeed();
@@ -31,7 +31,7 @@ public interface World extends Handle {
Block getBlockAt(Location l);
boolean generateTree(Location l, Tree vanillaTreeType); // TODO: Bukkit treetype is bad
boolean generateTree(Location l, Tree vanillaTreeType);
void spawn(Location location, Class<Entity> entity, Consumer<Entity> consumer); // TODO: Bukkit Entity is bad
Entity spawnEntity(Location location, EntityType entityType);
}

View File

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

View File

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

View File

@@ -1,7 +1,7 @@
package com.dfsek.terra.api.world.tree.fractal;
import com.dfsek.terra.api.math.vector.Location;
import com.dfsek.terra.api.platform.Entity;
import com.dfsek.terra.api.platform.world.entity.Entity;
import java.util.function.Consumer;

View File

@@ -1,9 +1,10 @@
package com.dfsek.terra.api.world.tree.fractal;
import com.dfsek.terra.api.math.vector.Location;
import com.dfsek.terra.api.platform.Entity;
import com.dfsek.terra.api.platform.TerraPlugin;
import com.dfsek.terra.api.platform.block.BlockData;
import com.dfsek.terra.api.platform.world.entity.Entity;
import com.dfsek.terra.api.platform.world.entity.EntityType;
import com.dfsek.terra.util.MaterialSet;
import java.util.Random;
@@ -41,7 +42,7 @@ public abstract class FractalTree {
*/
public abstract void grow(Location origin, Random random);
public void spawnEntity(Location spawn, Class<Entity> clazz, Consumer<Entity> consumer) {
spawn.getWorld().spawn(spawn, clazz, consumer);
public void spawnEntity(Location spawn, EntityType type, Consumer<Entity> consumer) {
consumer.accept(spawn.getWorld().spawnEntity(spawn, type));
}
}