mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-06-18 14:50:56 +00:00
move spawnEntity to WorldAccess
This commit is contained in:
@@ -17,9 +17,6 @@ import com.dfsek.terra.api.world.chunk.generation.ChunkGenerator;
|
|||||||
|
|
||||||
|
|
||||||
public interface World extends WorldAccess {
|
public interface World extends WorldAccess {
|
||||||
Entity spawnEntity(Vector3 location, EntityType entityType);
|
|
||||||
|
|
||||||
|
|
||||||
Chunk getChunkAt(int x, int z);
|
Chunk getChunkAt(int x, int z);
|
||||||
|
|
||||||
default Chunk getChunkAt(Vector3 location) {
|
default Chunk getChunkAt(Vector3 location) {
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ package com.dfsek.terra.api.world.access;
|
|||||||
import com.dfsek.terra.api.Handle;
|
import com.dfsek.terra.api.Handle;
|
||||||
import com.dfsek.terra.api.block.entity.BlockEntity;
|
import com.dfsek.terra.api.block.entity.BlockEntity;
|
||||||
import com.dfsek.terra.api.block.state.BlockState;
|
import com.dfsek.terra.api.block.state.BlockState;
|
||||||
|
import com.dfsek.terra.api.entity.Entity;
|
||||||
|
import com.dfsek.terra.api.entity.EntityType;
|
||||||
import com.dfsek.terra.api.util.vector.Vector3;
|
import com.dfsek.terra.api.util.vector.Vector3;
|
||||||
|
|
||||||
|
|
||||||
@@ -38,4 +40,10 @@ public interface WorldAccess extends Handle {
|
|||||||
return getBlockState(position.getBlockX(), position.getBlockY(), position.getBlockZ());
|
return getBlockState(position.getBlockX(), position.getBlockY(), position.getBlockZ());
|
||||||
}
|
}
|
||||||
int getMinHeight();
|
int getMinHeight();
|
||||||
|
|
||||||
|
default Entity spawnEntity(Vector3 location, EntityType entityType) {
|
||||||
|
return spawnEntity(location.getX(), location.getY(), location.getZ(), entityType);
|
||||||
|
}
|
||||||
|
|
||||||
|
Entity spawnEntity(double x, double y, double z, EntityType entityType);
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -31,7 +31,7 @@ import com.dfsek.terra.api.world.chunk.generation.ChunkGenerator;
|
|||||||
|
|
||||||
public class DummyWorld implements World {
|
public class DummyWorld implements World {
|
||||||
@Override
|
@Override
|
||||||
public Entity spawnEntity(Vector3 location, EntityType entityType) {
|
public Entity spawnEntity(double x, double y, double z, EntityType entityType) {
|
||||||
throw new UnsupportedOperationException("Cannot spawn entity in DummyWorld");
|
throw new UnsupportedOperationException("Cannot spawn entity in DummyWorld");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,12 +2,19 @@ package com.dfsek.terra.bukkit.world;
|
|||||||
|
|
||||||
import com.dfsek.terra.api.block.entity.BlockEntity;
|
import com.dfsek.terra.api.block.entity.BlockEntity;
|
||||||
import com.dfsek.terra.api.block.state.BlockState;
|
import com.dfsek.terra.api.block.state.BlockState;
|
||||||
|
import com.dfsek.terra.api.entity.Entity;
|
||||||
|
import com.dfsek.terra.api.entity.EntityType;
|
||||||
|
import com.dfsek.terra.api.util.vector.Vector3;
|
||||||
import com.dfsek.terra.api.world.chunk.generation.ProtoWorld;
|
import com.dfsek.terra.api.world.chunk.generation.ProtoWorld;
|
||||||
|
|
||||||
|
import com.dfsek.terra.bukkit.BukkitEntity;
|
||||||
import com.dfsek.terra.bukkit.world.block.data.BukkitBlockState;
|
import com.dfsek.terra.bukkit.world.block.data.BukkitBlockState;
|
||||||
|
|
||||||
import com.dfsek.terra.bukkit.world.block.state.BukkitBlockEntity;
|
import com.dfsek.terra.bukkit.world.block.state.BukkitBlockEntity;
|
||||||
|
|
||||||
|
import com.dfsek.terra.bukkit.world.entity.BukkitEntityType;
|
||||||
|
|
||||||
|
import org.bukkit.Location;
|
||||||
import org.bukkit.generator.LimitedRegion;
|
import org.bukkit.generator.LimitedRegion;
|
||||||
|
|
||||||
|
|
||||||
@@ -54,6 +61,13 @@ public class BukkitProtoWorld implements ProtoWorld {
|
|||||||
return delegate.getWorld().getMinHeight();
|
return delegate.getWorld().getMinHeight();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Entity spawnEntity(double x, double y, double z, EntityType entityType) {
|
||||||
|
return new BukkitEntity(
|
||||||
|
delegate.spawnEntity(new Location(delegate.getWorld(), x, y, z), ((BukkitEntityType) entityType).getHandle()));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int centerChunkX() {
|
public int centerChunkX() {
|
||||||
return delegate.getCenterChunkX();
|
return delegate.getCenterChunkX();
|
||||||
|
|||||||
@@ -35,6 +35,8 @@ import com.dfsek.terra.bukkit.generator.BukkitChunkGeneratorWrapper;
|
|||||||
import com.dfsek.terra.bukkit.world.block.state.BukkitBlockEntity;
|
import com.dfsek.terra.bukkit.world.block.state.BukkitBlockEntity;
|
||||||
import com.dfsek.terra.bukkit.world.entity.BukkitEntityType;
|
import com.dfsek.terra.bukkit.world.entity.BukkitEntityType;
|
||||||
|
|
||||||
|
import org.bukkit.Location;
|
||||||
|
|
||||||
|
|
||||||
public class BukkitWorld implements World {
|
public class BukkitWorld implements World {
|
||||||
private final org.bukkit.World delegate;
|
private final org.bukkit.World delegate;
|
||||||
@@ -56,9 +58,9 @@ public class BukkitWorld implements World {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Entity spawnEntity(Vector3 location, EntityType entityType) {
|
public Entity spawnEntity(double x, double y, double z, EntityType entityType) {
|
||||||
return new BukkitEntity(
|
return new BukkitEntity(
|
||||||
delegate.spawnEntity(BukkitAdapter.adapt(location).toLocation(delegate), ((BukkitEntityType) entityType).getHandle()));
|
delegate.spawnEntity(new Location(delegate, x, y, z), ((BukkitEntityType) entityType).getHandle()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user