mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-02-16 02:20:57 +00:00
cleanup & add entity support
This commit is contained in:
@@ -1,4 +0,0 @@
|
||||
package com.dfsek.terra.api.platform;
|
||||
|
||||
public interface Entity extends Handle {
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
package com.dfsek.terra.api.platform.handle;
|
||||
|
||||
public interface EntityHandle {
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
package com.dfsek.terra.api.platform.world.entity;
|
||||
|
||||
import com.dfsek.terra.api.platform.Handle;
|
||||
|
||||
public interface Entity extends Handle {
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
package com.dfsek.terra.api.platform.world.entity;
|
||||
|
||||
import com.dfsek.terra.api.platform.Handle;
|
||||
|
||||
public interface EntityType extends Handle {
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.dfsek.terra.bukkit;
|
||||
|
||||
import com.dfsek.terra.api.platform.Entity;
|
||||
import com.dfsek.terra.api.platform.world.entity.Entity;
|
||||
|
||||
public class BukkitEntity implements Entity {
|
||||
private final org.bukkit.entity.Entity entity;
|
||||
|
||||
@@ -7,7 +7,6 @@ import com.dfsek.terra.api.lang.Language;
|
||||
import com.dfsek.terra.api.platform.TerraPlugin;
|
||||
import com.dfsek.terra.api.platform.block.BlockData;
|
||||
import com.dfsek.terra.api.platform.block.MaterialData;
|
||||
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.Biome;
|
||||
@@ -74,11 +73,6 @@ public class TerraBukkitPlugin extends JavaPlugin implements TerraPlugin {
|
||||
return itemHandle;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EntityHandle getEntityHandle() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public void setHandle(WorldHandle handle) {
|
||||
getLogger().warning("|-------------------------------------------------------|");
|
||||
getLogger().warning("A third-party addon has injected a custom WorldHandle!");
|
||||
|
||||
@@ -17,7 +17,7 @@ public class FixChunkCommand extends WorldCommand {
|
||||
|
||||
@Override
|
||||
public boolean execute(@NotNull Player player, @NotNull Command command, @NotNull String s, @NotNull String[] strings, World world) {
|
||||
//TerraChunkGenerator.fixChunk(player.getLocation().getChunk());
|
||||
//MasterChunkGenerator.fixChunk(player.getLocation().getChunk());
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
package com.dfsek.terra.bukkit.command.command.structure;
|
||||
|
||||
import com.dfsek.terra.api.math.vector.Location;
|
||||
import com.dfsek.terra.api.math.vector.Vector3;
|
||||
import com.dfsek.terra.async.AsyncStructureFinder;
|
||||
import com.dfsek.terra.bukkit.BukkitCommandSender;
|
||||
import com.dfsek.terra.bukkit.TerraBukkitPlugin;
|
||||
import com.dfsek.terra.bukkit.command.WorldCommand;
|
||||
import com.dfsek.terra.bukkit.world.BukkitAdapter;
|
||||
import com.dfsek.terra.bukkit.world.BukkitWorld;
|
||||
import com.dfsek.terra.config.lang.LangUtil;
|
||||
import com.dfsek.terra.generation.items.TerraStructure;
|
||||
@@ -53,7 +53,7 @@ public class LocateCommand extends WorldCommand {
|
||||
//LangUtil.send("command.structure.invalid", sender, id);
|
||||
return true;
|
||||
}
|
||||
Bukkit.getScheduler().runTaskAsynchronously((TerraBukkitPlugin) getMain(), new AsyncStructureFinder(getMain().getWorld(new BukkitWorld(world)).getGrid(), s, new Location(new BukkitWorld(sender.getWorld()), sender.getLocation().getX(), sender.getLocation().getY(), sender.getLocation().getZ()), 0, maxRadius, (location) -> {
|
||||
Bukkit.getScheduler().runTaskAsynchronously((TerraBukkitPlugin) getMain(), new AsyncStructureFinder(getMain().getWorld(new BukkitWorld(world)).getGrid(), s, BukkitAdapter.adapt(sender.getLocation()), 0, maxRadius, (location) -> {
|
||||
if(sender.isOnline()) {
|
||||
if(location != null) {
|
||||
ComponentBuilder cm = new ComponentBuilder(String.format("The nearest %s is at ", id.toLowerCase()))
|
||||
|
||||
@@ -23,9 +23,7 @@ public class LoadCommand extends PlayerCommand implements DebugCommand {
|
||||
List<String> names = new ArrayList<>();
|
||||
TerraWorld terraWorld = getMain().getWorld(world);
|
||||
|
||||
terraWorld.getConfig().getScriptRegistry().forEach(script -> {
|
||||
names.add(script.getId());
|
||||
});
|
||||
terraWorld.getConfig().getScriptRegistry().forEach(script -> names.add(script.getId()));
|
||||
|
||||
return names;
|
||||
}
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
package com.dfsek.terra.bukkit.command.command.structure.load;
|
||||
|
||||
import com.dfsek.terra.TerraWorld;
|
||||
import com.dfsek.terra.api.math.vector.Location;
|
||||
import com.dfsek.terra.api.structures.structure.Rotation;
|
||||
import com.dfsek.terra.api.util.FastRandom;
|
||||
import com.dfsek.terra.bukkit.command.DebugCommand;
|
||||
import com.dfsek.terra.bukkit.world.BukkitAdapter;
|
||||
import com.dfsek.terra.bukkit.world.BukkitChunk;
|
||||
import com.dfsek.terra.bukkit.world.BukkitWorld;
|
||||
import com.dfsek.terra.util.PopulationUtil;
|
||||
@@ -33,9 +33,9 @@ public class LoadFullCommand extends LoadCommand implements DebugCommand {
|
||||
FastRandom chunk = PopulationUtil.getRandom(new BukkitChunk(sender.getLocation().getChunk()));
|
||||
|
||||
if(this.chunk) {
|
||||
terraWorld.getConfig().getScriptRegistry().get(args[0]).execute(new Location(new BukkitWorld(sender.getWorld()), sender.getLocation().getX(), sender.getLocation().getY(), sender.getLocation().getZ()), new BukkitChunk(sender.getLocation().getChunk()), chunk, Rotation.fromDegrees(90 * chunk.nextInt(4)));
|
||||
terraWorld.getConfig().getScriptRegistry().get(args[0]).execute(BukkitAdapter.adapt(sender.getLocation()), new BukkitChunk(sender.getLocation().getChunk()), chunk, Rotation.fromDegrees(90 * chunk.nextInt(4)));
|
||||
} else {
|
||||
terraWorld.getConfig().getScriptRegistry().get(args[0]).execute(new Location(new BukkitWorld(sender.getWorld()), sender.getLocation().getX(), sender.getLocation().getY(), sender.getLocation().getZ()), chunk, Rotation.fromDegrees(90 * chunk.nextInt(4)));
|
||||
terraWorld.getConfig().getScriptRegistry().get(args[0]).execute(BukkitAdapter.adapt(sender.getLocation()), chunk, Rotation.fromDegrees(90 * chunk.nextInt(4)));
|
||||
}
|
||||
long l = System.nanoTime() - t;
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
package com.dfsek.terra.bukkit.command.command.structure.load;
|
||||
|
||||
import com.dfsek.terra.TerraWorld;
|
||||
import com.dfsek.terra.api.math.vector.Location;
|
||||
import com.dfsek.terra.api.structures.structure.Rotation;
|
||||
import com.dfsek.terra.api.util.FastRandom;
|
||||
import com.dfsek.terra.bukkit.command.DebugCommand;
|
||||
import com.dfsek.terra.bukkit.world.BukkitAdapter;
|
||||
import com.dfsek.terra.bukkit.world.BukkitChunk;
|
||||
import com.dfsek.terra.bukkit.world.BukkitWorld;
|
||||
import com.dfsek.terra.util.PopulationUtil;
|
||||
@@ -40,7 +40,7 @@ public class LoadRawCommand extends LoadCommand implements DebugCommand {
|
||||
long t = System.nanoTime();
|
||||
FastRandom chunk = PopulationUtil.getRandom(new BukkitChunk(sender.getLocation().getChunk()));
|
||||
|
||||
boolean success = terraWorld.getConfig().getScriptRegistry().get(args[0]).execute(new Location(new BukkitWorld(sender.getWorld()), sender.getLocation().getX(), sender.getLocation().getY(), sender.getLocation().getZ()), chunk, Rotation.fromDegrees(90 * chunk.nextInt(4)));
|
||||
boolean success = terraWorld.getConfig().getScriptRegistry().get(args[0]).execute(BukkitAdapter.adapt(sender.getLocation()), chunk, Rotation.fromDegrees(90 * chunk.nextInt(4)));
|
||||
long l = System.nanoTime() - t;
|
||||
|
||||
sender.sendMessage("Took " + ((double) l) / 1000000 + "ms. Success: " + success);
|
||||
|
||||
@@ -6,9 +6,11 @@ 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.Tree;
|
||||
import com.dfsek.terra.api.platform.world.entity.EntityType;
|
||||
import com.dfsek.terra.api.transform.Transformer;
|
||||
import com.dfsek.terra.bukkit.world.block.BukkitMaterialData;
|
||||
import com.dfsek.terra.bukkit.world.block.data.BukkitBlockData;
|
||||
import com.dfsek.terra.bukkit.world.entity.BukkitEntityType;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
|
||||
@@ -52,4 +54,9 @@ public class BukkitWorldHandle implements WorldHandle {
|
||||
public Tree getTree(String id) {
|
||||
return treeTransformer.translate(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public EntityType getEntity(String id) {
|
||||
return new BukkitEntityType(org.bukkit.entity.EntityType.valueOf(id));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.dfsek.terra.bukkit.world.block.data;
|
||||
package com.dfsek.terra.bukkit.world;
|
||||
|
||||
|
||||
import com.dfsek.terra.api.platform.block.Axis;
|
||||
@@ -8,12 +8,13 @@ import com.dfsek.terra.api.platform.block.data.Rail;
|
||||
import com.dfsek.terra.api.platform.block.data.RedstoneWire;
|
||||
import com.dfsek.terra.api.platform.block.data.Slab;
|
||||
import com.dfsek.terra.api.platform.block.data.Stairs;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.block.data.type.Wall;
|
||||
|
||||
/**
|
||||
* Utility class to adapt Bukkit enums to Terra enums.
|
||||
*/
|
||||
public final class BukkitEnumAdapter {
|
||||
public final class BukkitAdapter {
|
||||
public static Stairs.Shape adapt(org.bukkit.block.data.type.Stairs.Shape shape) {
|
||||
switch(shape) {
|
||||
case STRAIGHT:
|
||||
@@ -318,4 +319,12 @@ public final class BukkitEnumAdapter {
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
}
|
||||
|
||||
public static Location adapt(com.dfsek.terra.api.math.vector.Location location) {
|
||||
return new Location(((BukkitWorld) location.getWorld()).getHandle(), location.getX(), location.getY(), location.getZ());
|
||||
}
|
||||
|
||||
public static com.dfsek.terra.api.math.vector.Location adapt(Location location) {
|
||||
return new com.dfsek.terra.api.math.vector.Location(new BukkitWorld(location.getWorld()), location.getX(), location.getY(), location.getZ());
|
||||
}
|
||||
}
|
||||
@@ -6,8 +6,12 @@ import com.dfsek.terra.api.platform.generator.ChunkGenerator;
|
||||
import com.dfsek.terra.api.platform.world.Chunk;
|
||||
import com.dfsek.terra.api.platform.world.Tree;
|
||||
import com.dfsek.terra.api.platform.world.World;
|
||||
import com.dfsek.terra.api.platform.world.entity.Entity;
|
||||
import com.dfsek.terra.api.platform.world.entity.EntityType;
|
||||
import com.dfsek.terra.bukkit.BukkitEntity;
|
||||
import com.dfsek.terra.bukkit.generator.BukkitChunkGenerator;
|
||||
import com.dfsek.terra.bukkit.world.block.BukkitBlock;
|
||||
import com.dfsek.terra.bukkit.world.entity.BukkitEntityType;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.UUID;
|
||||
@@ -75,7 +79,8 @@ public class BukkitWorld implements World {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void spawn(Location l, Class<com.dfsek.terra.api.platform.Entity> entity, java.util.function.Consumer<com.dfsek.terra.api.platform.Entity> consumer) {
|
||||
public Entity spawnEntity(Location location, EntityType entityType) {
|
||||
return new BukkitEntity(delegate.spawnEntity(BukkitAdapter.adapt(location), ((BukkitEntityType) entityType).getHandle()));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -6,9 +6,9 @@ import com.dfsek.terra.api.platform.block.BlockData;
|
||||
import com.dfsek.terra.api.platform.block.BlockFace;
|
||||
import com.dfsek.terra.api.platform.block.MaterialData;
|
||||
import com.dfsek.terra.api.platform.block.state.BlockState;
|
||||
import com.dfsek.terra.bukkit.world.BukkitAdapter;
|
||||
import com.dfsek.terra.bukkit.world.BukkitWorld;
|
||||
import com.dfsek.terra.bukkit.world.block.data.BukkitBlockData;
|
||||
import com.dfsek.terra.bukkit.world.block.data.BukkitEnumAdapter;
|
||||
import com.dfsek.terra.bukkit.world.block.state.BukkitBlockState;
|
||||
|
||||
public class BukkitBlock implements Block {
|
||||
@@ -35,12 +35,12 @@ public class BukkitBlock implements Block {
|
||||
|
||||
@Override
|
||||
public Block getRelative(BlockFace face) {
|
||||
return new BukkitBlock(delegate.getRelative(BukkitEnumAdapter.adapt(face)));
|
||||
return new BukkitBlock(delegate.getRelative(BukkitAdapter.adapt(face)));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Block getRelative(BlockFace face, int len) {
|
||||
return new BukkitBlock(delegate.getRelative(BukkitEnumAdapter.adapt(face), len));
|
||||
return new BukkitBlock(delegate.getRelative(BukkitAdapter.adapt(face), len));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.dfsek.terra.bukkit.world.block.data;
|
||||
|
||||
import com.dfsek.terra.api.platform.block.BlockFace;
|
||||
import com.dfsek.terra.api.platform.block.data.Directional;
|
||||
import com.dfsek.terra.bukkit.world.BukkitAdapter;
|
||||
|
||||
public class BukkitDirectional extends BukkitBlockData implements Directional {
|
||||
public BukkitDirectional(org.bukkit.block.data.Directional delegate) {
|
||||
@@ -10,11 +11,11 @@ public class BukkitDirectional extends BukkitBlockData implements Directional {
|
||||
|
||||
@Override
|
||||
public BlockFace getFacing() {
|
||||
return BukkitEnumAdapter.adapt(((org.bukkit.block.data.Directional) getHandle()).getFacing());
|
||||
return BukkitAdapter.adapt(((org.bukkit.block.data.Directional) getHandle()).getFacing());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setFacing(BlockFace facing) {
|
||||
((org.bukkit.block.data.Directional) getHandle()).setFacing(BukkitEnumAdapter.adapt(facing));
|
||||
((org.bukkit.block.data.Directional) getHandle()).setFacing(BukkitAdapter.adapt(facing));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.dfsek.terra.bukkit.world.block.data;
|
||||
|
||||
import com.dfsek.terra.api.platform.block.BlockFace;
|
||||
import com.dfsek.terra.api.platform.block.data.MultipleFacing;
|
||||
import com.dfsek.terra.bukkit.world.BukkitAdapter;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -14,21 +15,21 @@ public class BukkitMultipleFacing extends BukkitBlockData implements MultipleFac
|
||||
|
||||
@Override
|
||||
public Set<BlockFace> getFaces() {
|
||||
return ((org.bukkit.block.data.MultipleFacing) super.getHandle()).getFaces().stream().map(BukkitEnumAdapter::adapt).collect(Collectors.toSet());
|
||||
return ((org.bukkit.block.data.MultipleFacing) super.getHandle()).getFaces().stream().map(BukkitAdapter::adapt).collect(Collectors.toSet());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setFace(BlockFace face, boolean facing) {
|
||||
((org.bukkit.block.data.MultipleFacing) super.getHandle()).setFace(BukkitEnumAdapter.adapt(face), facing);
|
||||
((org.bukkit.block.data.MultipleFacing) super.getHandle()).setFace(BukkitAdapter.adapt(face), facing);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<BlockFace> getAllowedFaces() {
|
||||
return ((org.bukkit.block.data.MultipleFacing) super.getHandle()).getAllowedFaces().stream().map(BukkitEnumAdapter::adapt).collect(Collectors.toSet());
|
||||
return ((org.bukkit.block.data.MultipleFacing) super.getHandle()).getAllowedFaces().stream().map(BukkitAdapter::adapt).collect(Collectors.toSet());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasFace(BlockFace f) {
|
||||
return ((org.bukkit.block.data.MultipleFacing) super.getHandle()).hasFace(BukkitEnumAdapter.adapt(f));
|
||||
return ((org.bukkit.block.data.MultipleFacing) super.getHandle()).hasFace(BukkitAdapter.adapt(f));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.dfsek.terra.bukkit.world.block.data;
|
||||
|
||||
import com.dfsek.terra.api.platform.block.Axis;
|
||||
import com.dfsek.terra.api.platform.block.data.Orientable;
|
||||
import com.dfsek.terra.bukkit.world.BukkitAdapter;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -14,16 +15,16 @@ public class BukkitOrientable extends BukkitBlockData implements Orientable {
|
||||
|
||||
@Override
|
||||
public Set<Axis> getAxes() {
|
||||
return ((org.bukkit.block.data.Orientable) getHandle()).getAxes().stream().map(BukkitEnumAdapter::adapt).collect(Collectors.toSet());
|
||||
return ((org.bukkit.block.data.Orientable) getHandle()).getAxes().stream().map(BukkitAdapter::adapt).collect(Collectors.toSet());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Axis getAxis() {
|
||||
return BukkitEnumAdapter.adapt(((org.bukkit.block.data.Orientable) getHandle()).getAxis());
|
||||
return BukkitAdapter.adapt(((org.bukkit.block.data.Orientable) getHandle()).getAxis());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setAxis(Axis axis) {
|
||||
((org.bukkit.block.data.Orientable) getHandle()).setAxis(BukkitEnumAdapter.adapt(axis));
|
||||
((org.bukkit.block.data.Orientable) getHandle()).setAxis(BukkitAdapter.adapt(axis));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.dfsek.terra.bukkit.world.block.data;
|
||||
|
||||
import com.dfsek.terra.api.platform.block.data.Rail;
|
||||
import com.dfsek.terra.bukkit.world.BukkitAdapter;
|
||||
|
||||
public class BukkitRail extends BukkitBlockData implements Rail {
|
||||
public BukkitRail(org.bukkit.block.data.Rail delegate) {
|
||||
@@ -9,11 +10,11 @@ public class BukkitRail extends BukkitBlockData implements Rail {
|
||||
|
||||
@Override
|
||||
public Shape getShape() {
|
||||
return BukkitEnumAdapter.adapt(((org.bukkit.block.data.Rail) getHandle()).getShape());
|
||||
return BukkitAdapter.adapt(((org.bukkit.block.data.Rail) getHandle()).getShape());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setShape(Shape newShape) {
|
||||
((org.bukkit.block.data.Rail) getHandle()).setShape(BukkitEnumAdapter.adapt(newShape));
|
||||
((org.bukkit.block.data.Rail) getHandle()).setShape(BukkitAdapter.adapt(newShape));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.dfsek.terra.bukkit.world.block.data;
|
||||
|
||||
import com.dfsek.terra.api.platform.block.BlockFace;
|
||||
import com.dfsek.terra.api.platform.block.data.RedstoneWire;
|
||||
import com.dfsek.terra.bukkit.world.BukkitAdapter;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -13,16 +14,16 @@ public class BukkitRedstoneWire extends BukkitAnaloguePowerable implements Redst
|
||||
|
||||
@Override
|
||||
public Set<BlockFace> getAllowedFaces() {
|
||||
return ((org.bukkit.block.data.type.RedstoneWire) getHandle()).getAllowedFaces().stream().map(BukkitEnumAdapter::adapt).collect(Collectors.toSet());
|
||||
return ((org.bukkit.block.data.type.RedstoneWire) getHandle()).getAllowedFaces().stream().map(BukkitAdapter::adapt).collect(Collectors.toSet());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Connection getFace(BlockFace face) {
|
||||
return BukkitEnumAdapter.adapt(((org.bukkit.block.data.type.RedstoneWire) getHandle()).getFace(BukkitEnumAdapter.adapt(face)));
|
||||
return BukkitAdapter.adapt(((org.bukkit.block.data.type.RedstoneWire) getHandle()).getFace(BukkitAdapter.adapt(face)));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setFace(BlockFace face, Connection connection) {
|
||||
((org.bukkit.block.data.type.RedstoneWire) getHandle()).setFace(BukkitEnumAdapter.adapt(face), BukkitEnumAdapter.adapt(connection));
|
||||
((org.bukkit.block.data.type.RedstoneWire) getHandle()).setFace(BukkitAdapter.adapt(face), BukkitAdapter.adapt(connection));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.dfsek.terra.bukkit.world.block.data;
|
||||
|
||||
import com.dfsek.terra.api.platform.block.BlockFace;
|
||||
import com.dfsek.terra.api.platform.block.data.Rotatable;
|
||||
import com.dfsek.terra.bukkit.world.BukkitAdapter;
|
||||
|
||||
public class BukkitRotatable extends BukkitBlockData implements Rotatable {
|
||||
public BukkitRotatable(org.bukkit.block.data.Rotatable delegate) {
|
||||
@@ -10,11 +11,11 @@ public class BukkitRotatable extends BukkitBlockData implements Rotatable {
|
||||
|
||||
@Override
|
||||
public BlockFace getRotation() {
|
||||
return BukkitEnumAdapter.adapt(((org.bukkit.block.data.Rotatable) getHandle()).getRotation());
|
||||
return BukkitAdapter.adapt(((org.bukkit.block.data.Rotatable) getHandle()).getRotation());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setRotation(BlockFace face) {
|
||||
((org.bukkit.block.data.Rotatable) getHandle()).setRotation(BukkitEnumAdapter.adapt(face));
|
||||
((org.bukkit.block.data.Rotatable) getHandle()).setRotation(BukkitAdapter.adapt(face));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.dfsek.terra.bukkit.world.block.data;
|
||||
|
||||
import com.dfsek.terra.api.platform.block.data.Slab;
|
||||
import com.dfsek.terra.bukkit.world.BukkitAdapter;
|
||||
|
||||
public class BukkitSlab extends BukkitWaterlogged implements Slab {
|
||||
public BukkitSlab(org.bukkit.block.data.type.Slab delegate) {
|
||||
@@ -9,11 +10,11 @@ public class BukkitSlab extends BukkitWaterlogged implements Slab {
|
||||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return BukkitEnumAdapter.adapt(((org.bukkit.block.data.type.Slab) getHandle()).getType());
|
||||
return BukkitAdapter.adapt(((org.bukkit.block.data.type.Slab) getHandle()).getType());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setType(Type type) {
|
||||
((org.bukkit.block.data.type.Slab) getHandle()).setType(BukkitEnumAdapter.adapt(type));
|
||||
((org.bukkit.block.data.type.Slab) getHandle()).setType(BukkitAdapter.adapt(type));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.dfsek.terra.bukkit.world.block.data;
|
||||
|
||||
import com.dfsek.terra.api.platform.block.BlockFace;
|
||||
import com.dfsek.terra.api.platform.block.data.Stairs;
|
||||
import com.dfsek.terra.bukkit.world.BukkitAdapter;
|
||||
|
||||
public class BukkitStairs extends BukkitBlockData implements Stairs {
|
||||
|
||||
@@ -11,32 +12,32 @@ public class BukkitStairs extends BukkitBlockData implements Stairs {
|
||||
|
||||
@Override
|
||||
public Shape getShape() {
|
||||
return BukkitEnumAdapter.adapt(((org.bukkit.block.data.type.Stairs) super.getHandle()).getShape());
|
||||
return BukkitAdapter.adapt(((org.bukkit.block.data.type.Stairs) super.getHandle()).getShape());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setShape(Shape shape) {
|
||||
((org.bukkit.block.data.type.Stairs) super.getHandle()).setShape(BukkitEnumAdapter.adapt(shape));
|
||||
((org.bukkit.block.data.type.Stairs) super.getHandle()).setShape(BukkitAdapter.adapt(shape));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Half getHalf() {
|
||||
return BukkitEnumAdapter.adapt(((org.bukkit.block.data.type.Stairs) super.getHandle()).getHalf());
|
||||
return BukkitAdapter.adapt(((org.bukkit.block.data.type.Stairs) super.getHandle()).getHalf());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setHalf(Half half) {
|
||||
((org.bukkit.block.data.type.Stairs) super.getHandle()).setHalf(BukkitEnumAdapter.adapt(half));
|
||||
((org.bukkit.block.data.type.Stairs) super.getHandle()).setHalf(BukkitAdapter.adapt(half));
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockFace getFacing() {
|
||||
return BukkitEnumAdapter.adapt(((org.bukkit.block.data.type.Stairs) super.getHandle()).getFacing());
|
||||
return BukkitAdapter.adapt(((org.bukkit.block.data.type.Stairs) super.getHandle()).getFacing());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setFacing(BlockFace facing) {
|
||||
((org.bukkit.block.data.type.Stairs) super.getHandle()).setFacing(BukkitEnumAdapter.adapt(facing));
|
||||
((org.bukkit.block.data.type.Stairs) super.getHandle()).setFacing(BukkitAdapter.adapt(facing));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.dfsek.terra.bukkit.world.block.data;
|
||||
|
||||
import com.dfsek.terra.api.platform.block.BlockFace;
|
||||
import com.dfsek.terra.api.platform.block.data.Wall;
|
||||
import com.dfsek.terra.bukkit.world.BukkitAdapter;
|
||||
|
||||
public class BukkitWall extends BukkitWaterlogged implements Wall {
|
||||
public BukkitWall(org.bukkit.block.data.type.Wall delegate) {
|
||||
@@ -20,11 +21,11 @@ public class BukkitWall extends BukkitWaterlogged implements Wall {
|
||||
|
||||
@Override
|
||||
public void setHeight(BlockFace face, Height height) {
|
||||
((org.bukkit.block.data.type.Wall) getHandle()).setHeight(BukkitEnumAdapter.adapt(face), BukkitEnumAdapter.adapt(height));
|
||||
((org.bukkit.block.data.type.Wall) getHandle()).setHeight(BukkitAdapter.adapt(face), BukkitAdapter.adapt(height));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Height getHeight(BlockFace face) {
|
||||
return BukkitEnumAdapter.adapt(((org.bukkit.block.data.type.Wall) getHandle()).getHeight(BukkitEnumAdapter.adapt(face)));
|
||||
return BukkitAdapter.adapt(((org.bukkit.block.data.type.Wall) getHandle()).getHeight(BukkitAdapter.adapt(face)));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.dfsek.terra.bukkit.world.entity;
|
||||
|
||||
import com.dfsek.terra.api.platform.world.entity.EntityType;
|
||||
|
||||
public class BukkitEntityType implements EntityType {
|
||||
private final org.bukkit.entity.EntityType delegate;
|
||||
|
||||
public BukkitEntityType(org.bukkit.entity.EntityType delegate) {
|
||||
this.delegate = delegate;
|
||||
}
|
||||
|
||||
@Override
|
||||
public org.bukkit.entity.EntityType getHandle() {
|
||||
return delegate;
|
||||
}
|
||||
}
|
||||
@@ -7,7 +7,6 @@ import com.dfsek.terra.api.lang.Language;
|
||||
import com.dfsek.terra.api.platform.TerraPlugin;
|
||||
import com.dfsek.terra.api.platform.block.BlockData;
|
||||
import com.dfsek.terra.api.platform.block.MaterialData;
|
||||
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;
|
||||
@@ -178,11 +177,6 @@ public class TerraFabricPlugin implements TerraPlugin, ModInitializer {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public EntityHandle getEntityHandle() {
|
||||
return null;
|
||||
}
|
||||
|
||||
Transformer<String, Biome> biomeFixer = new Transformer.Builder<String, Biome>()
|
||||
.addTransform(id -> BuiltinRegistries.BIOME.get(Identifier.tryParse(id)), new NotNullValidator<>())
|
||||
.addTransform(id -> BuiltinRegistries.BIOME.get(Identifier.tryParse("minecraft:" + id.toLowerCase())), new NotNullValidator<>()).build();
|
||||
|
||||
@@ -5,6 +5,7 @@ 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.Tree;
|
||||
import com.dfsek.terra.api.platform.world.entity.EntityType;
|
||||
import com.dfsek.terra.api.transform.Transformer;
|
||||
import com.dfsek.terra.fabric.world.block.FabricBlockData;
|
||||
import com.dfsek.terra.fabric.world.block.FabricMaterialData;
|
||||
@@ -75,4 +76,9 @@ public class FabricWorldHandle implements WorldHandle {
|
||||
public Tree getTree(String id) {
|
||||
return new FabricTree(treeTransformer.translate(id));
|
||||
}
|
||||
|
||||
@Override
|
||||
public EntityType getEntity(String id) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
package com.dfsek.terra.fabric.world.handles;
|
||||
|
||||
import com.dfsek.terra.api.math.vector.Location;
|
||||
import com.dfsek.terra.api.platform.Entity;
|
||||
import com.dfsek.terra.api.platform.block.Block;
|
||||
import com.dfsek.terra.api.platform.generator.ChunkGenerator;
|
||||
import com.dfsek.terra.api.platform.world.Chunk;
|
||||
import com.dfsek.terra.api.platform.world.Tree;
|
||||
import com.dfsek.terra.api.platform.world.World;
|
||||
import com.dfsek.terra.api.platform.world.entity.Entity;
|
||||
import com.dfsek.terra.api.platform.world.entity.EntityType;
|
||||
import com.dfsek.terra.fabric.world.block.FabricBlock;
|
||||
import com.dfsek.terra.fabric.world.handles.chunk.FabricChunk;
|
||||
import net.minecraft.server.world.ServerWorld;
|
||||
@@ -14,7 +15,6 @@ import net.minecraft.util.math.BlockPos;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.UUID;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class FabricWorld implements World {
|
||||
|
||||
@@ -92,8 +92,8 @@ public class FabricWorld implements World {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void spawn(Location location, Class<Entity> entity, Consumer<Entity> consumer) {
|
||||
|
||||
public Entity spawnEntity(Location location, EntityType entityType) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -101,7 +101,7 @@ public class FabricWorld implements World {
|
||||
return null;
|
||||
}
|
||||
|
||||
private final class Handle {
|
||||
private static final class Handle {
|
||||
private final ServerWorld world;
|
||||
private final ChunkGenerator generator;
|
||||
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
package com.dfsek.terra.fabric.world.handles.world;
|
||||
|
||||
import com.dfsek.terra.api.math.vector.Location;
|
||||
import com.dfsek.terra.api.platform.Entity;
|
||||
import com.dfsek.terra.api.platform.block.Block;
|
||||
import com.dfsek.terra.api.platform.generator.ChunkGenerator;
|
||||
import com.dfsek.terra.api.platform.world.Chunk;
|
||||
import com.dfsek.terra.api.platform.world.Tree;
|
||||
import com.dfsek.terra.api.platform.world.World;
|
||||
import com.dfsek.terra.api.platform.world.entity.Entity;
|
||||
import com.dfsek.terra.api.platform.world.entity.EntityType;
|
||||
import com.dfsek.terra.fabric.world.block.FabricBlock;
|
||||
import com.dfsek.terra.fabric.world.generator.FabricChunkGenerator;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
@@ -14,7 +15,6 @@ import net.minecraft.world.WorldAccess;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.UUID;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class FabricSeededWorldAccess implements World {
|
||||
|
||||
@@ -81,8 +81,8 @@ public class FabricSeededWorldAccess implements World {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void spawn(Location location, Class<Entity> entity, Consumer<Entity> consumer) {
|
||||
|
||||
public Entity spawnEntity(Location location, EntityType entityType) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
package com.dfsek.terra.fabric.world.handles.world;
|
||||
|
||||
import com.dfsek.terra.api.math.vector.Location;
|
||||
import com.dfsek.terra.api.platform.Entity;
|
||||
import com.dfsek.terra.api.platform.block.Block;
|
||||
import com.dfsek.terra.api.platform.generator.ChunkGenerator;
|
||||
import com.dfsek.terra.api.platform.world.Chunk;
|
||||
import com.dfsek.terra.api.platform.world.Tree;
|
||||
import com.dfsek.terra.api.platform.world.World;
|
||||
import com.dfsek.terra.api.platform.world.entity.Entity;
|
||||
import com.dfsek.terra.api.platform.world.entity.EntityType;
|
||||
import com.dfsek.terra.fabric.world.block.FabricBlock;
|
||||
import com.dfsek.terra.fabric.world.generator.FabricChunkGenerator;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
@@ -16,7 +17,6 @@ import net.minecraft.world.WorldAccess;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.UUID;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class FabricWorldAccess implements World {
|
||||
private final WorldAccess delegate;
|
||||
@@ -82,8 +82,8 @@ public class FabricWorldAccess implements World {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void spawn(Location location, Class<Entity> entity, Consumer<Entity> consumer) {
|
||||
|
||||
public Entity spawnEntity(Location location, EntityType entityType) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
package com.dfsek.terra.fabric.world.handles.world;
|
||||
|
||||
import com.dfsek.terra.api.math.vector.Location;
|
||||
import com.dfsek.terra.api.platform.Entity;
|
||||
import com.dfsek.terra.api.platform.block.Block;
|
||||
import com.dfsek.terra.api.platform.generator.ChunkGenerator;
|
||||
import com.dfsek.terra.api.platform.world.Chunk;
|
||||
import com.dfsek.terra.api.platform.world.Tree;
|
||||
import com.dfsek.terra.api.platform.world.World;
|
||||
import com.dfsek.terra.api.platform.world.entity.Entity;
|
||||
import com.dfsek.terra.api.platform.world.entity.EntityType;
|
||||
import com.dfsek.terra.fabric.world.block.FabricBlock;
|
||||
import com.dfsek.terra.fabric.world.generator.FabricChunkGenerator;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
@@ -14,7 +15,6 @@ import net.minecraft.world.ChunkRegion;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.UUID;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class FabricWorldChunkRegion implements World {
|
||||
private final Handle delegate;
|
||||
@@ -91,8 +91,8 @@ public class FabricWorldChunkRegion implements World {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void spawn(Location location, Class<Entity> entity, Consumer<Entity> consumer) {
|
||||
|
||||
public Entity spawnEntity(Location location, EntityType entityType) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user