Implemented better biome system.

This commit is contained in:
2020-05-06 20:05:20 -05:00
parent d1cae3bf7f
commit a5cf40913b
13 changed files with 388 additions and 615 deletions

View File

@@ -1,88 +0,0 @@
package ca.recrown.islandsurvivalcraft.world;
import static org.junit.jupiter.api.Assertions.assertEquals;
import java.util.Random;
import org.bukkit.block.Biome;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestInstance;
import org.junit.jupiter.api.TestInstance.Lifecycle;
@TestInstance(Lifecycle.PER_CLASS)
public class BiomeMapTest {
private final Random random = new Random(10320452);
BiomeMap biomeSelector;
@BeforeAll
public void setUp() {
biomeSelector = new BiomeMap(random);
}
@Test
public void testGetBiomeTemperatureBirchHill() {
assertEquals(0.6f, biomeSelector.getBiomeTemperature(Biome.BIRCH_FOREST_HILLS));
}
@Test
public void testGetBiomeTemperatureSwampHill() {
assertEquals(0.8f, biomeSelector.getBiomeTemperature(Biome.SWAMP_HILLS));
}
@Test
public void testGetBiomeTemperatureTaigaHill() {
assertEquals(0.25f, biomeSelector.getBiomeTemperature(Biome.TAIGA_HILLS));
}
@Test
public void testGetBiomeTemperatureSnowyTaigaHill() {
assertEquals(-0.5f, biomeSelector.getBiomeTemperature(Biome.SNOWY_TAIGA_HILLS));
}
@Test
public void testGetBiomeTemperatureSnowyTaigaMountain() {
assertEquals(-0.5f, biomeSelector.getBiomeTemperature(Biome.SNOWY_TAIGA_MOUNTAINS));
}
@Test
public void testGetTransitionalBiomeFromModifiedJungle() {
assertEquals(Biome.MODIFIED_JUNGLE_EDGE, biomeSelector.getTransitionalBiome(Biome.MODIFIED_JUNGLE));
}
@Test
public void testGetTransitionalBiomeFromOcean() {
assertEquals(null, biomeSelector.getTransitionalBiome(Biome.OCEAN));
}
@Test
public void testGetTransitionalBiomeFromMountain() {
assertEquals(null, biomeSelector.getTransitionalBiome(Biome.MOUNTAINS));
}
@Test
public void testGetTransitionalBiomeFromJungle() {
assertEquals(Biome.JUNGLE_EDGE, biomeSelector.getTransitionalBiome(Biome.JUNGLE));
}
@Test
public void testGetShoreBiomeFromMountain() {
assertEquals(Biome.STONE_SHORE, biomeSelector.getShoreBiome(Biome.MOUNTAINS, 0.2f));
}
@Test
public void testGetShoreBiomeFromMushroomIsland() {
assertEquals(Biome.MUSHROOM_FIELD_SHORE, biomeSelector.getShoreBiome(Biome.MUSHROOM_FIELDS, 1.2f));
}
@Test
public void testGetShoreBiomeFromPlains() {
assertEquals(Biome.BEACH, biomeSelector.getShoreBiome(Biome.PLAINS, 0.8f));
}
@Test
public void testGetShoreBiomeFromSnowyTaiga() {
assertEquals(Biome.SNOWY_BEACH, biomeSelector.getShoreBiome(Biome.SNOWY_TAIGA, -0.5f));
}
}

View File

@@ -60,7 +60,6 @@ public class DummyWorld implements World {
@Override
public void sendPluginMessage(Plugin source, String channel, byte[] message) {
}
@Override
@@ -72,7 +71,6 @@ public class DummyWorld implements World {
@Override
public void setMetadata(String metadataKey, MetadataValue newMetadataValue) {
}
@Override
@@ -90,7 +88,6 @@ public class DummyWorld implements World {
@Override
public void removeMetadata(String metadataKey, Plugin owningPlugin) {
}
@Override
@@ -228,7 +225,6 @@ public class DummyWorld implements World {
@Override
public void loadChunk(Chunk chunk) {
}
@Override
@@ -252,7 +248,6 @@ public class DummyWorld implements World {
@Override
public void loadChunk(int x, int z) {
}
@Override
@@ -306,7 +301,6 @@ public class DummyWorld implements World {
@Override
public void setChunkForceLoaded(int x, int z, boolean forced) {
}
@Override
@@ -330,7 +324,6 @@ public class DummyWorld implements World {
@Override
public void removePluginChunkTickets(Plugin plugin) {
}
@Override
@@ -364,8 +357,8 @@ public class DummyWorld implements World {
}
@Override
public <T extends AbstractArrow> T spawnArrow(Location location, Vector direction,
float speed, float spread, Class<T> clazz) {
public <T extends AbstractArrow> T spawnArrow(Location location, Vector direction, float speed, float spread,
Class<T> clazz) {
return null;
}
@@ -463,57 +456,53 @@ public class DummyWorld implements World {
}
@Override
public Collection<Entity> getNearbyEntities(BoundingBox boundingBox,
public Collection<Entity> getNearbyEntities(BoundingBox boundingBox, Predicate<Entity> filter) {
return null;
}
@Override
public RayTraceResult rayTraceEntities(Location start, Vector direction, double maxDistance) {
return null;
}
@Override
public RayTraceResult rayTraceEntities(Location start, Vector direction, double maxDistance, double raySize) {
return null;
}
@Override
public RayTraceResult rayTraceEntities(Location start, Vector direction, double maxDistance,
Predicate<Entity> filter) {
return null;
}
@Override
public RayTraceResult rayTraceEntities(Location start, Vector direction,
double maxDistance) {
public RayTraceResult rayTraceEntities(Location start, Vector direction, double maxDistance, double raySize,
Predicate<Entity> filter) {
return null;
}
@Override
public RayTraceResult rayTraceEntities(Location start, Vector direction,
double maxDistance, double raySize) {
public RayTraceResult rayTraceBlocks(Location start, Vector direction, double maxDistance) {
return null;
}
@Override
public RayTraceResult rayTraceEntities(Location start, Vector direction,
double maxDistance, Predicate<Entity> filter) {
public RayTraceResult rayTraceBlocks(Location start, Vector direction, double maxDistance,
FluidCollisionMode fluidCollisionMode) {
return null;
}
@Override
public RayTraceResult rayTraceEntities(Location start, Vector direction,
double maxDistance, double raySize, Predicate<Entity> filter) {
return null;
}
@Override
public RayTraceResult rayTraceBlocks(Location start, Vector direction,
double maxDistance) {
return null;
}
@Override
public RayTraceResult rayTraceBlocks(Location start, Vector direction,
double maxDistance, FluidCollisionMode fluidCollisionMode) {
return null;
}
@Override
public RayTraceResult rayTraceBlocks(Location start, Vector direction,
double maxDistance, FluidCollisionMode fluidCollisionMode, boolean ignorePassableBlocks) {
public RayTraceResult rayTraceBlocks(Location start, Vector direction, double maxDistance,
FluidCollisionMode fluidCollisionMode, boolean ignorePassableBlocks) {
return null;
}
@@ -544,12 +533,6 @@ public class DummyWorld implements World {
return null;
}
@Override
public boolean setSpawnLocation(Location location) {
return false;
}
@Override
public boolean setSpawnLocation(int x, int y, int z) {
@@ -565,7 +548,6 @@ public class DummyWorld implements World {
@Override
public void setTime(long time) {
}
@Override
@@ -577,7 +559,6 @@ public class DummyWorld implements World {
@Override
public void setFullTime(long time) {
}
@Override
@@ -595,7 +576,6 @@ public class DummyWorld implements World {
@Override
public void setStorm(boolean hasStorm) {
}
@Override
@@ -607,7 +587,6 @@ public class DummyWorld implements World {
@Override
public void setWeatherDuration(int duration) {
}
@Override
@@ -619,7 +598,6 @@ public class DummyWorld implements World {
@Override
public void setThundering(boolean thundering) {
}
@Override
@@ -631,7 +609,6 @@ public class DummyWorld implements World {
@Override
public void setThunderDuration(int duration) {
}
@Override
@@ -672,8 +649,7 @@ public class DummyWorld implements World {
}
@Override
public boolean createExplosion(Entity source, Location loc, float power, boolean setFire,
boolean breakBlocks) {
public boolean createExplosion(Entity source, Location loc, float power, boolean setFire, boolean breakBlocks) {
return false;
}
@@ -685,8 +661,7 @@ public class DummyWorld implements World {
}
@Override
public boolean createExplosion(Location loc, float power, boolean setFire, boolean breakBlocks,
Entity source) {
public boolean createExplosion(Location loc, float power, boolean setFire, boolean breakBlocks, Entity source) {
return false;
}
@@ -712,7 +687,6 @@ public class DummyWorld implements World {
@Override
public void setPVP(boolean pvp) {
}
@Override
@@ -724,7 +698,6 @@ public class DummyWorld implements World {
@Override
public void save() {
}
@Override
@@ -734,29 +707,26 @@ public class DummyWorld implements World {
}
@Override
public <T extends Entity> T spawn(Location location, Class<T> clazz)
public <T extends Entity> T spawn(Location location, Class<T> clazz) throws IllegalArgumentException {
return null;
}
@Override
public <T extends Entity> T spawn(Location location, Class<T> clazz, Consumer<T> function)
throws IllegalArgumentException {
return null;
}
@Override
public <T extends Entity> T spawn(Location location, Class<T> clazz,
Consumer<T> function) throws IllegalArgumentException {
public FallingBlock spawnFallingBlock(Location location, MaterialData data) throws IllegalArgumentException {
return null;
}
@Override
public FallingBlock spawnFallingBlock(Location location, MaterialData data)
throws IllegalArgumentException {
return null;
}
@Override
public FallingBlock spawnFallingBlock(Location location, BlockData data)
throws IllegalArgumentException {
public FallingBlock spawnFallingBlock(Location location, BlockData data) throws IllegalArgumentException {
return null;
}
@@ -771,25 +741,21 @@ public class DummyWorld implements World {
@Override
public void playEffect(Location location, Effect effect, int data) {
}
@Override
public void playEffect(Location location, Effect effect, int data, int radius) {
}
@Override
public <T> void playEffect(Location location, Effect effect, T data) {
}
@Override
public <T> void playEffect(Location location, Effect effect, T data, int radius) {
}
@Override
@@ -801,7 +767,6 @@ public class DummyWorld implements World {
@Override
public void setSpawnFlags(boolean allowMonsters, boolean allowAnimals) {
}
@Override
@@ -831,13 +796,11 @@ public class DummyWorld implements World {
@Override
public void setBiome(int x, int z, Biome bio) {
}
@Override
public void setBiome(int x, int y, int z, Biome bio) {
}
@Override
@@ -885,7 +848,6 @@ public class DummyWorld implements World {
@Override
public void setKeepSpawnInMemory(boolean keepLoaded) {
}
@Override
@@ -897,13 +859,11 @@ public class DummyWorld implements World {
@Override
public void setAutoSave(boolean value) {
}
@Override
public void setDifficulty(Difficulty difficulty) {
}
@Override
@@ -939,7 +899,6 @@ public class DummyWorld implements World {
@Override
public void setHardcore(boolean hardcore) {
}
@Override
@@ -951,7 +910,6 @@ public class DummyWorld implements World {
@Override
public void setTicksPerAnimalSpawns(int ticksPerAnimalSpawns) {
}
@Override
@@ -963,7 +921,6 @@ public class DummyWorld implements World {
@Override
public void setTicksPerMonsterSpawns(int ticksPerMonsterSpawns) {
}
@Override
@@ -975,7 +932,6 @@ public class DummyWorld implements World {
@Override
public void setTicksPerWaterSpawns(int ticksPerWaterSpawns) {
}
@Override
@@ -987,7 +943,6 @@ public class DummyWorld implements World {
@Override
public void setTicksPerAmbientSpawns(int ticksPerAmbientSpawns) {
}
@Override
@@ -999,7 +954,6 @@ public class DummyWorld implements World {
@Override
public void setMonsterSpawnLimit(int limit) {
}
@Override
@@ -1011,7 +965,6 @@ public class DummyWorld implements World {
@Override
public void setAnimalSpawnLimit(int limit) {
}
@Override
@@ -1023,7 +976,6 @@ public class DummyWorld implements World {
@Override
public void setWaterAnimalSpawnLimit(int limit) {
}
@Override
@@ -1035,32 +987,25 @@ public class DummyWorld implements World {
@Override
public void setAmbientSpawnLimit(int limit) {
}
@Override
public void playSound(Location location, Sound sound, float volume, float pitch) {
}
@Override
public void playSound(Location location, String sound, float volume, float pitch) {
}
@Override
public void playSound(Location location, Sound sound, SoundCategory category, float volume, float pitch) {
}
@Override
public void playSound(Location location, Sound sound, SoundCategory category,
float volume, float pitch) {
}
@Override
public void playSound(Location location, String sound, SoundCategory category,
float volume, float pitch) {
public void playSound(Location location, String sound, SoundCategory category, float volume, float pitch) {
}
@@ -1115,32 +1060,26 @@ public class DummyWorld implements World {
@Override
public void spawnParticle(Particle particle, Location location, int count) {
}
@Override
public void spawnParticle(Particle particle, double x, double y, double z, int count) {
}
@Override
public <T> void spawnParticle(Particle particle, Location location, int count, T data) {
}
@Override
public <T> void spawnParticle(Particle particle, double x, double y, double z, int count, T data) {
}
@Override
public <T> void spawnParticle(Particle particle, double x, double y, double z, int count,
T data) {
}
@Override
public void spawnParticle(Particle particle, Location location, int count, double offsetX,
double offsetY, double offsetZ) {
public void spawnParticle(Particle particle, Location location, int count, double offsetX, double offsetY,
double offsetZ) {
}
@@ -1148,13 +1087,11 @@ public class DummyWorld implements World {
public void spawnParticle(Particle particle, double x, double y, double z, int count, double offsetX,
double offsetY, double offsetZ) {
}
@Override
public <T> void spawnParticle(Particle particle, Location location, int count, double offsetX,
double offsetY, double offsetZ, T data) {
public <T> void spawnParticle(Particle particle, Location location, int count, double offsetX, double offsetY,
double offsetZ, T data) {
}
@@ -1162,13 +1099,11 @@ public class DummyWorld implements World {
public <T> void spawnParticle(Particle particle, double x, double y, double z, int count, double offsetX,
double offsetY, double offsetZ, T data) {
}
@Override
public void spawnParticle(Particle particle, Location location, int count, double offsetX,
double offsetY, double offsetZ, double extra) {
public void spawnParticle(Particle particle, Location location, int count, double offsetX, double offsetY,
double offsetZ, double extra) {
}
@@ -1176,28 +1111,23 @@ public class DummyWorld implements World {
public void spawnParticle(Particle particle, double x, double y, double z, int count, double offsetX,
double offsetY, double offsetZ, double extra) {
}
@Override
public <T> void spawnParticle(Particle particle, Location location, int count, double offsetX, double offsetY,
double offsetZ, double extra, T data) {
}
@Override
public <T> void spawnParticle(Particle particle, Location location, int count, double offsetX,
double offsetY, double offsetZ, double extra, T data) {
public <T> void spawnParticle(Particle particle, List<Player> receivers, Player source, double x, double y,
double z, int count, double offsetX, double offsetY, double offsetZ, double extra, T data, boolean force) {
}
@Override
public <T> void spawnParticle(Particle particle, List<Player> receivers, Player source,
double x, double y, double z, int count, double offsetX, double offsetY, double offsetZ, double extra,
T data, boolean force) {
}
@Override
public <T> void spawnParticle(Particle particle, Location location, int count, double offsetX,
double offsetY, double offsetZ, double extra, T data, boolean force) {
public <T> void spawnParticle(Particle particle, Location location, int count, double offsetX, double offsetY,
double offsetZ, double extra, T data, boolean force) {
}
@@ -1205,12 +1135,11 @@ public class DummyWorld implements World {
public <T> void spawnParticle(Particle particle, double x, double y, double z, int count, double offsetX,
double offsetY, double offsetZ, double extra, T data, boolean force) {
}
@Override
public Location locateNearestStructure(Location origin, StructureType structureType,
int radius, boolean findUnexplored) {
public Location locateNearestStructure(Location origin, StructureType structureType, int radius,
boolean findUnexplored) {
return null;
}
@@ -1245,4 +1174,22 @@ public class DummyWorld implements World {
return null;
}
@Override
public int getNoTickViewDistance() {
return 0;
}
@Override
public void setNoTickViewDistance(int arg0) {
}
@Override
public boolean setSpawnLocation(Location location) {
return false;
}
@Override
public void setViewDistance(int arg0) {
}
}