It compiles on 1.16.2
...but crashes on startup.
This commit is contained in:
parent
9d6867a3e9
commit
8c08d2f6af
@ -71,7 +71,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.spigotmc</groupId>
|
<groupId>org.spigotmc</groupId>
|
||||||
<artifactId>spigot</artifactId>
|
<artifactId>spigot</artifactId>
|
||||||
<version>1.16.1-R0.1-SNAPSHOT</version>
|
<version>1.16.2-R0.1-SNAPSHOT</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
@ -4,18 +4,18 @@ import java.lang.reflect.Field;
|
|||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.craftbukkit.v1_16_R1.CraftWorld;
|
import org.bukkit.craftbukkit.v1_16_R2.CraftWorld;
|
||||||
|
|
||||||
import net.minecraft.server.v1_16_R1.ChunkGenerator;
|
import net.minecraft.server.v1_16_R2.ChunkGenerator;
|
||||||
import net.minecraft.server.v1_16_R1.ChunkGeneratorAbstract;
|
import net.minecraft.server.v1_16_R2.ChunkGeneratorAbstract;
|
||||||
import net.minecraft.server.v1_16_R1.ChunkProviderDebug;
|
import net.minecraft.server.v1_16_R2.ChunkProviderDebug;
|
||||||
import net.minecraft.server.v1_16_R1.ChunkProviderFlat;
|
import net.minecraft.server.v1_16_R2.ChunkProviderFlat;
|
||||||
import net.minecraft.server.v1_16_R1.GeneratorAccess;
|
import net.minecraft.server.v1_16_R2.GeneratorAccess;
|
||||||
import net.minecraft.server.v1_16_R1.HeightMap;
|
import net.minecraft.server.v1_16_R2.HeightMap;
|
||||||
import net.minecraft.server.v1_16_R1.SeededRandom;
|
import net.minecraft.server.v1_16_R2.SeededRandom;
|
||||||
import net.minecraft.server.v1_16_R1.StructureManager;
|
import net.minecraft.server.v1_16_R2.StructureManager;
|
||||||
import net.minecraft.server.v1_16_R1.WorldChunkManager;
|
import net.minecraft.server.v1_16_R2.WorldChunkManager;
|
||||||
import net.minecraft.server.v1_16_R1.WorldServer;
|
import net.minecraft.server.v1_16_R2.WorldServer;
|
||||||
import nl.rutgerkok.worldgeneratorapi.BaseChunkGenerator;
|
import nl.rutgerkok.worldgeneratorapi.BaseChunkGenerator;
|
||||||
import nl.rutgerkok.worldgeneratorapi.BaseTerrainGenerator;
|
import nl.rutgerkok.worldgeneratorapi.BaseTerrainGenerator;
|
||||||
import nl.rutgerkok.worldgeneratorapi.internal.bukkitoverrides.ChunkDataImpl;
|
import nl.rutgerkok.worldgeneratorapi.internal.bukkitoverrides.ChunkDataImpl;
|
||||||
|
@ -5,12 +5,13 @@ import java.util.List;
|
|||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
import org.bukkit.block.Biome;
|
import org.bukkit.block.Biome;
|
||||||
import org.bukkit.craftbukkit.v1_16_R1.block.CraftBlock;
|
import org.bukkit.craftbukkit.v1_16_R2.block.CraftBlock;
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableSet;
|
import com.google.common.collect.ImmutableSet;
|
||||||
|
|
||||||
import net.minecraft.server.v1_16_R1.BiomeBase;
|
import net.minecraft.server.v1_16_R2.BiomeBase;
|
||||||
import net.minecraft.server.v1_16_R1.WorldChunkManager;
|
import net.minecraft.server.v1_16_R2.RegistryGeneration;
|
||||||
|
import net.minecraft.server.v1_16_R2.WorldChunkManager;
|
||||||
import nl.rutgerkok.worldgeneratorapi.BiomeGenerator;
|
import nl.rutgerkok.worldgeneratorapi.BiomeGenerator;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -48,7 +49,7 @@ public final class BiomeGeneratorImpl implements BiomeGenerator {
|
|||||||
.get(this.internal);
|
.get(this.internal);
|
||||||
|
|
||||||
for (BiomeBase biome : biomeBases) {
|
for (BiomeBase biome : biomeBases) {
|
||||||
biomes.add(CraftBlock.biomeBaseToBiome(biome));
|
biomes.add(CraftBlock.biomeBaseToBiome(RegistryGeneration.WORLDGEN_BIOME, biome));
|
||||||
}
|
}
|
||||||
return biomes.build();
|
return biomes.build();
|
||||||
} catch (IllegalAccessException e) {
|
} catch (IllegalAccessException e) {
|
||||||
@ -60,7 +61,7 @@ public final class BiomeGeneratorImpl implements BiomeGenerator {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Biome getZoomedOutBiome(int x, int y, int z) {
|
public Biome getZoomedOutBiome(int x, int y, int z) {
|
||||||
return CraftBlock.biomeBaseToBiome(internal.getBiome(x, y, z));
|
return CraftBlock.biomeBaseToBiome(RegistryGeneration.WORLDGEN_BIOME, internal.getBiome(x, y, z));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -6,74 +6,75 @@ import org.bukkit.Material;
|
|||||||
import org.bukkit.block.Biome;
|
import org.bukkit.block.Biome;
|
||||||
import org.bukkit.block.BlockState;
|
import org.bukkit.block.BlockState;
|
||||||
import org.bukkit.block.data.BlockData;
|
import org.bukkit.block.data.BlockData;
|
||||||
import org.bukkit.craftbukkit.v1_16_R1.block.CraftBanner;
|
import org.bukkit.craftbukkit.v1_16_R2.block.CraftBanner;
|
||||||
import org.bukkit.craftbukkit.v1_16_R1.block.CraftBarrel;
|
import org.bukkit.craftbukkit.v1_16_R2.block.CraftBarrel;
|
||||||
import org.bukkit.craftbukkit.v1_16_R1.block.CraftBeacon;
|
import org.bukkit.craftbukkit.v1_16_R2.block.CraftBeacon;
|
||||||
import org.bukkit.craftbukkit.v1_16_R1.block.CraftBeehive;
|
import org.bukkit.craftbukkit.v1_16_R2.block.CraftBeehive;
|
||||||
import org.bukkit.craftbukkit.v1_16_R1.block.CraftBell;
|
import org.bukkit.craftbukkit.v1_16_R2.block.CraftBell;
|
||||||
import org.bukkit.craftbukkit.v1_16_R1.block.CraftBlastFurnace;
|
import org.bukkit.craftbukkit.v1_16_R2.block.CraftBlastFurnace;
|
||||||
import org.bukkit.craftbukkit.v1_16_R1.block.CraftBlock;
|
import org.bukkit.craftbukkit.v1_16_R2.block.CraftBlock;
|
||||||
import org.bukkit.craftbukkit.v1_16_R1.block.CraftBlockEntityState;
|
import org.bukkit.craftbukkit.v1_16_R2.block.CraftBlockEntityState;
|
||||||
import org.bukkit.craftbukkit.v1_16_R1.block.CraftBlockState;
|
import org.bukkit.craftbukkit.v1_16_R2.block.CraftBlockState;
|
||||||
import org.bukkit.craftbukkit.v1_16_R1.block.CraftBrewingStand;
|
import org.bukkit.craftbukkit.v1_16_R2.block.CraftBrewingStand;
|
||||||
import org.bukkit.craftbukkit.v1_16_R1.block.CraftCampfire;
|
import org.bukkit.craftbukkit.v1_16_R2.block.CraftCampfire;
|
||||||
import org.bukkit.craftbukkit.v1_16_R1.block.CraftChest;
|
import org.bukkit.craftbukkit.v1_16_R2.block.CraftChest;
|
||||||
import org.bukkit.craftbukkit.v1_16_R1.block.CraftCommandBlock;
|
import org.bukkit.craftbukkit.v1_16_R2.block.CraftCommandBlock;
|
||||||
import org.bukkit.craftbukkit.v1_16_R1.block.CraftComparator;
|
import org.bukkit.craftbukkit.v1_16_R2.block.CraftComparator;
|
||||||
import org.bukkit.craftbukkit.v1_16_R1.block.CraftCreatureSpawner;
|
import org.bukkit.craftbukkit.v1_16_R2.block.CraftCreatureSpawner;
|
||||||
import org.bukkit.craftbukkit.v1_16_R1.block.CraftDaylightDetector;
|
import org.bukkit.craftbukkit.v1_16_R2.block.CraftDaylightDetector;
|
||||||
import org.bukkit.craftbukkit.v1_16_R1.block.CraftDispenser;
|
import org.bukkit.craftbukkit.v1_16_R2.block.CraftDispenser;
|
||||||
import org.bukkit.craftbukkit.v1_16_R1.block.CraftDropper;
|
import org.bukkit.craftbukkit.v1_16_R2.block.CraftDropper;
|
||||||
import org.bukkit.craftbukkit.v1_16_R1.block.CraftEnchantingTable;
|
import org.bukkit.craftbukkit.v1_16_R2.block.CraftEnchantingTable;
|
||||||
import org.bukkit.craftbukkit.v1_16_R1.block.CraftEndGateway;
|
import org.bukkit.craftbukkit.v1_16_R2.block.CraftEndGateway;
|
||||||
import org.bukkit.craftbukkit.v1_16_R1.block.CraftEnderChest;
|
import org.bukkit.craftbukkit.v1_16_R2.block.CraftEnderChest;
|
||||||
import org.bukkit.craftbukkit.v1_16_R1.block.CraftFurnaceFurnace;
|
import org.bukkit.craftbukkit.v1_16_R2.block.CraftFurnaceFurnace;
|
||||||
import org.bukkit.craftbukkit.v1_16_R1.block.CraftHopper;
|
import org.bukkit.craftbukkit.v1_16_R2.block.CraftHopper;
|
||||||
import org.bukkit.craftbukkit.v1_16_R1.block.CraftJigsaw;
|
import org.bukkit.craftbukkit.v1_16_R2.block.CraftJigsaw;
|
||||||
import org.bukkit.craftbukkit.v1_16_R1.block.CraftJukebox;
|
import org.bukkit.craftbukkit.v1_16_R2.block.CraftJukebox;
|
||||||
import org.bukkit.craftbukkit.v1_16_R1.block.CraftLectern;
|
import org.bukkit.craftbukkit.v1_16_R2.block.CraftLectern;
|
||||||
import org.bukkit.craftbukkit.v1_16_R1.block.CraftShulkerBox;
|
import org.bukkit.craftbukkit.v1_16_R2.block.CraftShulkerBox;
|
||||||
import org.bukkit.craftbukkit.v1_16_R1.block.CraftSign;
|
import org.bukkit.craftbukkit.v1_16_R2.block.CraftSign;
|
||||||
import org.bukkit.craftbukkit.v1_16_R1.block.CraftSkull;
|
import org.bukkit.craftbukkit.v1_16_R2.block.CraftSkull;
|
||||||
import org.bukkit.craftbukkit.v1_16_R1.block.CraftSmoker;
|
import org.bukkit.craftbukkit.v1_16_R2.block.CraftSmoker;
|
||||||
import org.bukkit.craftbukkit.v1_16_R1.block.CraftStructureBlock;
|
import org.bukkit.craftbukkit.v1_16_R2.block.CraftStructureBlock;
|
||||||
import org.bukkit.craftbukkit.v1_16_R1.block.data.CraftBlockData;
|
import org.bukkit.craftbukkit.v1_16_R2.block.data.CraftBlockData;
|
||||||
|
|
||||||
import net.minecraft.server.v1_16_R1.BlockPosition;
|
import net.minecraft.server.v1_16_R2.BlockPosition;
|
||||||
import net.minecraft.server.v1_16_R1.BlockPosition.MutableBlockPosition;
|
import net.minecraft.server.v1_16_R2.BlockPosition.MutableBlockPosition;
|
||||||
import net.minecraft.server.v1_16_R1.IBlockData;
|
import net.minecraft.server.v1_16_R2.IBlockData;
|
||||||
import net.minecraft.server.v1_16_R1.IChunkAccess;
|
import net.minecraft.server.v1_16_R2.IChunkAccess;
|
||||||
import net.minecraft.server.v1_16_R1.NBTTagCompound;
|
import net.minecraft.server.v1_16_R2.NBTTagCompound;
|
||||||
import net.minecraft.server.v1_16_R1.RegionLimitedWorldAccess;
|
import net.minecraft.server.v1_16_R2.RegionLimitedWorldAccess;
|
||||||
import net.minecraft.server.v1_16_R1.TileEntity;
|
import net.minecraft.server.v1_16_R2.RegistryGeneration;
|
||||||
import net.minecraft.server.v1_16_R1.TileEntityBanner;
|
import net.minecraft.server.v1_16_R2.TileEntity;
|
||||||
import net.minecraft.server.v1_16_R1.TileEntityBarrel;
|
import net.minecraft.server.v1_16_R2.TileEntityBanner;
|
||||||
import net.minecraft.server.v1_16_R1.TileEntityBeacon;
|
import net.minecraft.server.v1_16_R2.TileEntityBarrel;
|
||||||
import net.minecraft.server.v1_16_R1.TileEntityBeehive;
|
import net.minecraft.server.v1_16_R2.TileEntityBeacon;
|
||||||
import net.minecraft.server.v1_16_R1.TileEntityBell;
|
import net.minecraft.server.v1_16_R2.TileEntityBeehive;
|
||||||
import net.minecraft.server.v1_16_R1.TileEntityBlastFurnace;
|
import net.minecraft.server.v1_16_R2.TileEntityBell;
|
||||||
import net.minecraft.server.v1_16_R1.TileEntityBrewingStand;
|
import net.minecraft.server.v1_16_R2.TileEntityBlastFurnace;
|
||||||
import net.minecraft.server.v1_16_R1.TileEntityCampfire;
|
import net.minecraft.server.v1_16_R2.TileEntityBrewingStand;
|
||||||
import net.minecraft.server.v1_16_R1.TileEntityChest;
|
import net.minecraft.server.v1_16_R2.TileEntityCampfire;
|
||||||
import net.minecraft.server.v1_16_R1.TileEntityCommand;
|
import net.minecraft.server.v1_16_R2.TileEntityChest;
|
||||||
import net.minecraft.server.v1_16_R1.TileEntityComparator;
|
import net.minecraft.server.v1_16_R2.TileEntityCommand;
|
||||||
import net.minecraft.server.v1_16_R1.TileEntityDispenser;
|
import net.minecraft.server.v1_16_R2.TileEntityComparator;
|
||||||
import net.minecraft.server.v1_16_R1.TileEntityDropper;
|
import net.minecraft.server.v1_16_R2.TileEntityDispenser;
|
||||||
import net.minecraft.server.v1_16_R1.TileEntityEnchantTable;
|
import net.minecraft.server.v1_16_R2.TileEntityDropper;
|
||||||
import net.minecraft.server.v1_16_R1.TileEntityEndGateway;
|
import net.minecraft.server.v1_16_R2.TileEntityEnchantTable;
|
||||||
import net.minecraft.server.v1_16_R1.TileEntityEnderChest;
|
import net.minecraft.server.v1_16_R2.TileEntityEndGateway;
|
||||||
import net.minecraft.server.v1_16_R1.TileEntityFurnaceFurnace;
|
import net.minecraft.server.v1_16_R2.TileEntityEnderChest;
|
||||||
import net.minecraft.server.v1_16_R1.TileEntityHopper;
|
import net.minecraft.server.v1_16_R2.TileEntityFurnaceFurnace;
|
||||||
import net.minecraft.server.v1_16_R1.TileEntityJigsaw;
|
import net.minecraft.server.v1_16_R2.TileEntityHopper;
|
||||||
import net.minecraft.server.v1_16_R1.TileEntityJukeBox;
|
import net.minecraft.server.v1_16_R2.TileEntityJigsaw;
|
||||||
import net.minecraft.server.v1_16_R1.TileEntityLectern;
|
import net.minecraft.server.v1_16_R2.TileEntityJukeBox;
|
||||||
import net.minecraft.server.v1_16_R1.TileEntityLightDetector;
|
import net.minecraft.server.v1_16_R2.TileEntityLectern;
|
||||||
import net.minecraft.server.v1_16_R1.TileEntityMobSpawner;
|
import net.minecraft.server.v1_16_R2.TileEntityLightDetector;
|
||||||
import net.minecraft.server.v1_16_R1.TileEntityShulkerBox;
|
import net.minecraft.server.v1_16_R2.TileEntityMobSpawner;
|
||||||
import net.minecraft.server.v1_16_R1.TileEntitySign;
|
import net.minecraft.server.v1_16_R2.TileEntityShulkerBox;
|
||||||
import net.minecraft.server.v1_16_R1.TileEntitySkull;
|
import net.minecraft.server.v1_16_R2.TileEntitySign;
|
||||||
import net.minecraft.server.v1_16_R1.TileEntitySmoker;
|
import net.minecraft.server.v1_16_R2.TileEntitySkull;
|
||||||
import net.minecraft.server.v1_16_R1.TileEntityStructure;
|
import net.minecraft.server.v1_16_R2.TileEntitySmoker;
|
||||||
|
import net.minecraft.server.v1_16_R2.TileEntityStructure;
|
||||||
import nl.rutgerkok.worldgeneratorapi.decoration.DecorationArea;
|
import nl.rutgerkok.worldgeneratorapi.decoration.DecorationArea;
|
||||||
|
|
||||||
class DecorationAreaImpl implements DecorationArea {
|
class DecorationAreaImpl implements DecorationArea {
|
||||||
@ -93,7 +94,7 @@ class DecorationAreaImpl implements DecorationArea {
|
|||||||
@Override
|
@Override
|
||||||
public Biome getBiome(int x, int z) {
|
public Biome getBiome(int x, int z) {
|
||||||
reusableBlockPos.c(x, 0, z);
|
reusableBlockPos.c(x, 0, z);
|
||||||
return CraftBlock.biomeBaseToBiome(internal.getBiome(reusableBlockPos));
|
return CraftBlock.biomeBaseToBiome(RegistryGeneration.WORLDGEN_BIOME, internal.getBiome(reusableBlockPos));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -7,14 +7,14 @@ import java.util.List;
|
|||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import org.bukkit.block.Biome;
|
import org.bukkit.block.Biome;
|
||||||
import org.bukkit.craftbukkit.v1_16_R1.block.CraftBlock;
|
import org.bukkit.craftbukkit.v1_16_R2.block.CraftBlock;
|
||||||
|
|
||||||
import com.mojang.serialization.Codec;
|
import com.mojang.serialization.Codec;
|
||||||
|
|
||||||
import net.minecraft.server.v1_16_R1.BiomeBase;
|
import net.minecraft.server.v1_16_R2.BiomeBase;
|
||||||
import net.minecraft.server.v1_16_R1.Biomes;
|
import net.minecraft.server.v1_16_R2.Biomes;
|
||||||
import net.minecraft.server.v1_16_R1.IRegistry;
|
import net.minecraft.server.v1_16_R2.RegistryGeneration;
|
||||||
import net.minecraft.server.v1_16_R1.WorldChunkManager;
|
import net.minecraft.server.v1_16_R2.WorldChunkManager;
|
||||||
import nl.rutgerkok.worldgeneratorapi.BiomeGenerator;
|
import nl.rutgerkok.worldgeneratorapi.BiomeGenerator;
|
||||||
import nl.rutgerkok.worldgeneratorapi.WorldGeneratorApi;
|
import nl.rutgerkok.worldgeneratorapi.WorldGeneratorApi;
|
||||||
|
|
||||||
@ -26,17 +26,19 @@ public class InjectedBiomeGenerator extends WorldChunkManager {
|
|||||||
* generators.) Instead, we serialize as if we are a biome generator that
|
* generators.) Instead, we serialize as if we are a biome generator that
|
||||||
* generates only oceans.
|
* generates only oceans.
|
||||||
*/
|
*/
|
||||||
private static final Codec<InjectedBiomeGenerator> DUMMY_CODEC = IRegistry.BIOME.fieldOf(
|
private static final Codec<InjectedBiomeGenerator> DUMMY_CODEC = RegistryGeneration.WORLDGEN_BIOME.fieldOf(
|
||||||
"[" + WorldGeneratorApi.class.getSimpleName()
|
"[" + WorldGeneratorApi.class.getSimpleName()
|
||||||
+ "] Custom biome generators cannot be stored in the level.dat, please ignore this error")
|
+ "] Custom biome generators cannot be stored in the level.dat, please ignore this error")
|
||||||
.xmap(biome -> new InjectedBiomeGenerator(), biomeGenToSerialize -> {
|
.xmap(biome -> new InjectedBiomeGenerator(), biomeGenToSerialize -> {
|
||||||
// Serializes as a single-biome generator
|
// Serializes as a single-biome generator
|
||||||
return Biomes.OCEAN;
|
return RegistryGeneration.WORLDGEN_BIOME.a(Biomes.OCEAN);
|
||||||
})
|
})
|
||||||
.stable().codec();
|
.stable().codec();
|
||||||
|
|
||||||
private static List<BiomeBase> toBiomeBase(Set<Biome> biomes) {
|
private static List<BiomeBase> toBiomeBase(Set<Biome> biomes) {
|
||||||
return biomes.stream().map(CraftBlock::biomeToBiomeBase).collect(toList());
|
return biomes.stream()
|
||||||
|
.map(biome -> CraftBlock.biomeToBiomeBase(RegistryGeneration.WORLDGEN_BIOME, biome))
|
||||||
|
.collect(toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -63,7 +65,7 @@ public class InjectedBiomeGenerator extends WorldChunkManager {
|
|||||||
* generator.
|
* generator.
|
||||||
*/
|
*/
|
||||||
private InjectedBiomeGenerator() {
|
private InjectedBiomeGenerator() {
|
||||||
super(Arrays.asList(Biomes.OCEAN));
|
super(Arrays.asList(RegistryGeneration.WORLDGEN_BIOME.a(Biomes.OCEAN)));
|
||||||
this.biomeGenerator = (x, y, z) -> Biome.OCEAN;
|
this.biomeGenerator = (x, y, z) -> Biome.OCEAN;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -84,6 +86,7 @@ public class InjectedBiomeGenerator extends WorldChunkManager {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BiomeBase getBiome(int x, int y, int z) {
|
public BiomeBase getBiome(int x, int y, int z) {
|
||||||
return CraftBlock.biomeToBiomeBase(biomeGenerator.getZoomedOutBiome(x, y, z));
|
return CraftBlock.biomeToBiomeBase(RegistryGeneration.WORLDGEN_BIOME,
|
||||||
|
biomeGenerator.getZoomedOutBiome(x, y, z));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -13,10 +13,11 @@ import org.bukkit.Bukkit;
|
|||||||
import org.bukkit.NamespacedKey;
|
import org.bukkit.NamespacedKey;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.block.Biome;
|
import org.bukkit.block.Biome;
|
||||||
import org.bukkit.craftbukkit.v1_16_R1.block.CraftBlock;
|
import org.bukkit.craftbukkit.v1_16_R2.block.CraftBlock;
|
||||||
|
|
||||||
import net.minecraft.server.v1_16_R1.BiomeBase;
|
import net.minecraft.server.v1_16_R2.BiomeBase;
|
||||||
import net.minecraft.server.v1_16_R1.Biomes;
|
import net.minecraft.server.v1_16_R2.Biomes;
|
||||||
|
import net.minecraft.server.v1_16_R2.RegistryGeneration;
|
||||||
import nl.rutgerkok.worldgeneratorapi.WorldGeneratorApi;
|
import nl.rutgerkok.worldgeneratorapi.WorldGeneratorApi;
|
||||||
import nl.rutgerkok.worldgeneratorapi.WorldRef;
|
import nl.rutgerkok.worldgeneratorapi.WorldRef;
|
||||||
import nl.rutgerkok.worldgeneratorapi.property.AbstractProperty;
|
import nl.rutgerkok.worldgeneratorapi.property.AbstractProperty;
|
||||||
@ -56,20 +57,21 @@ public final class PropertyRegistryImpl implements PropertyRegistry {
|
|||||||
private final Map<NamespacedKey, AbstractProperty> properties = new ConcurrentHashMap<>();
|
private final Map<NamespacedKey, AbstractProperty> properties = new ConcurrentHashMap<>();
|
||||||
|
|
||||||
public PropertyRegistryImpl() {
|
public PropertyRegistryImpl() {
|
||||||
addMinecraftBiomeFloatProperty(TEMPERATURE, BiomeBase::getTemperature);
|
addMinecraftBiomeFloatProperty(TEMPERATURE, BiomeBase::k);
|
||||||
addMinecraftBiomeFloatProperty(WETNESS, BiomeBase::getHumidity);
|
addMinecraftBiomeFloatProperty(WETNESS, BiomeBase::getHumidity);
|
||||||
addMinecraftBiomeFloatProperty(BASE_HEIGHT, BiomeBase::k);
|
addMinecraftBiomeFloatProperty(BASE_HEIGHT, BiomeBase::h);
|
||||||
addMinecraftBiomeFloatProperty(HEIGHT_VARIATION, BiomeBase::o);
|
addMinecraftBiomeFloatProperty(HEIGHT_VARIATION, BiomeBase::j);
|
||||||
addMinecraftWorldProperty(WORLD_SEED, world -> (Long) world.getSeed(), -1L);
|
addMinecraftWorldProperty(WORLD_SEED, world -> (Long) world.getSeed(), -1L);
|
||||||
addSeaLevelProperty(SEA_LEVEL, world -> (float) world.getSeaLevel());
|
addSeaLevelProperty(SEA_LEVEL, world -> (float) world.getSeaLevel());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addMinecraftBiomeFloatProperty(NamespacedKey name, Function<BiomeBase, Float> value) {
|
private void addMinecraftBiomeFloatProperty(NamespacedKey name, Function<BiomeBase, Float> value) {
|
||||||
FloatProperty property = new FloatProperty(name, value.apply(Biomes.b)) {
|
FloatProperty property = new FloatProperty(name,
|
||||||
|
value.apply(RegistryGeneration.WORLDGEN_BIOME.a(Biomes.PLAINS))) {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public float getBiomeDefault(Biome biome) {
|
public float getBiomeDefault(Biome biome) {
|
||||||
BiomeBase base = CraftBlock.biomeToBiomeBase(biome);
|
BiomeBase base = CraftBlock.biomeToBiomeBase(RegistryGeneration.WORLDGEN_BIOME, biome);
|
||||||
return value.apply(base);
|
return value.apply(base);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -10,22 +10,23 @@ import java.util.Objects;
|
|||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
import java.util.concurrent.CopyOnWriteArrayList;
|
import java.util.concurrent.CopyOnWriteArrayList;
|
||||||
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
import net.minecraft.server.v1_16_R1.BiomeBase;
|
import net.minecraft.server.v1_16_R2.BiomeBase;
|
||||||
import net.minecraft.server.v1_16_R1.BiomeManager;
|
import net.minecraft.server.v1_16_R2.BiomeManager;
|
||||||
import net.minecraft.server.v1_16_R1.BlockPosition;
|
import net.minecraft.server.v1_16_R2.BiomeSettingsGeneration;
|
||||||
import net.minecraft.server.v1_16_R1.ChunkCoordIntPair;
|
import net.minecraft.server.v1_16_R2.BlockPosition;
|
||||||
import net.minecraft.server.v1_16_R1.ChunkGenerator;
|
import net.minecraft.server.v1_16_R2.ChunkCoordIntPair;
|
||||||
import net.minecraft.server.v1_16_R1.CrashReport;
|
import net.minecraft.server.v1_16_R2.ChunkGenerator;
|
||||||
import net.minecraft.server.v1_16_R1.IChunkAccess;
|
import net.minecraft.server.v1_16_R2.CrashReport;
|
||||||
import net.minecraft.server.v1_16_R1.IRegistry;
|
import net.minecraft.server.v1_16_R2.IChunkAccess;
|
||||||
import net.minecraft.server.v1_16_R1.ProtoChunk;
|
import net.minecraft.server.v1_16_R2.ProtoChunk;
|
||||||
import net.minecraft.server.v1_16_R1.RegionLimitedWorldAccess;
|
import net.minecraft.server.v1_16_R2.RegionLimitedWorldAccess;
|
||||||
import net.minecraft.server.v1_16_R1.ReportedException;
|
import net.minecraft.server.v1_16_R2.ReportedException;
|
||||||
import net.minecraft.server.v1_16_R1.SeededRandom;
|
import net.minecraft.server.v1_16_R2.SeededRandom;
|
||||||
import net.minecraft.server.v1_16_R1.StructureManager;
|
import net.minecraft.server.v1_16_R2.StructureManager;
|
||||||
import net.minecraft.server.v1_16_R1.WorldGenCarverWrapper;
|
import net.minecraft.server.v1_16_R2.WorldGenCarverWrapper;
|
||||||
import net.minecraft.server.v1_16_R1.WorldGenStage;
|
import net.minecraft.server.v1_16_R2.WorldGenStage;
|
||||||
import nl.rutgerkok.worldgeneratorapi.BaseChunkGenerator;
|
import nl.rutgerkok.worldgeneratorapi.BaseChunkGenerator;
|
||||||
import nl.rutgerkok.worldgeneratorapi.BaseChunkGenerator.GeneratingChunk;
|
import nl.rutgerkok.worldgeneratorapi.BaseChunkGenerator.GeneratingChunk;
|
||||||
import nl.rutgerkok.worldgeneratorapi.decoration.BaseDecorationType;
|
import nl.rutgerkok.worldgeneratorapi.decoration.BaseDecorationType;
|
||||||
@ -62,7 +63,6 @@ public final class WorldDecoratorImpl implements WorldDecorator {
|
|||||||
return biomeManager.a(blockPosition);
|
return biomeManager.a(blockPosition);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<BaseChunkGenerator> getCustomBaseDecorations(BaseDecorationType type) {
|
public List<BaseChunkGenerator> getCustomBaseDecorations(BaseDecorationType type) {
|
||||||
Objects.requireNonNull(type, "type");
|
Objects.requireNonNull(type, "type");
|
||||||
@ -109,17 +109,17 @@ public final class WorldDecoratorImpl implements WorldDecorator {
|
|||||||
ChunkCoordIntPair chunkcoordintpair = ichunkaccess.getPos();
|
ChunkCoordIntPair chunkcoordintpair = ichunkaccess.getPos();
|
||||||
int i = chunkcoordintpair.x;
|
int i = chunkcoordintpair.x;
|
||||||
int j = chunkcoordintpair.z;
|
int j = chunkcoordintpair.z;
|
||||||
BiomeBase biomeBase = this.getBiome(biomeManager, chunkcoordintpair.l());
|
BiomeSettingsGeneration biomeConfig = this.getBiome(biomeManager, chunkcoordintpair.l()).e();
|
||||||
BitSet bitset = ((ProtoChunk) ichunkaccess).b(stage);
|
BitSet bitset = ((ProtoChunk) ichunkaccess).b(stage);
|
||||||
|
|
||||||
for(int k = i - 8; k <= i + 8; ++k) {
|
for (int k = i - 8; k <= i + 8; ++k) {
|
||||||
for(int l = j - 8; l <= j + 8; ++l) {
|
for (int l = j - 8; l <= j + 8; ++l) {
|
||||||
List<WorldGenCarverWrapper<?>> list = biomeBase.a(stage);
|
List<Supplier<WorldGenCarverWrapper<?>>> list = biomeConfig.a(stage);
|
||||||
ListIterator<WorldGenCarverWrapper<?>> listiterator = list.listIterator();
|
ListIterator<Supplier<WorldGenCarverWrapper<?>>> listiterator = list.listIterator();
|
||||||
|
|
||||||
while(listiterator.hasNext()) {
|
while (listiterator.hasNext()) {
|
||||||
int i1 = listiterator.nextIndex();
|
int i1 = listiterator.nextIndex();
|
||||||
WorldGenCarverWrapper<?> worldgencarverwrapper = listiterator.next();
|
WorldGenCarverWrapper<?> worldgencarverwrapper = listiterator.next().get();
|
||||||
|
|
||||||
seededrandom.c(seed + i1, k, l);
|
seededrandom.c(seed + i1, k, l);
|
||||||
if (worldgencarverwrapper.a(seededrandom, k, l)) {
|
if (worldgencarverwrapper.a(seededrandom, k, l)) {
|
||||||
@ -171,12 +171,12 @@ public final class WorldDecoratorImpl implements WorldDecorator {
|
|||||||
// Spawn default decorations
|
// Spawn default decorations
|
||||||
if (!this.disabledDecorations.contains(type)) {
|
if (!this.disabledDecorations.contains(type)) {
|
||||||
try {
|
try {
|
||||||
biomebase.a(decorationStage, structureManager, chunkGenerator, populationArea, chunkSeed,
|
biomebase.a(structureManager, chunkGenerator, populationArea, chunkSeed, seededrandom,
|
||||||
seededrandom, blockposition);
|
blockposition);
|
||||||
} catch (Exception var18) {
|
} catch (Exception var18) {
|
||||||
CrashReport crashreport = CrashReport.a(var18, "Biome decoration");
|
CrashReport crashreport = CrashReport.a(var18, "Biome decoration");
|
||||||
crashreport.a("Generation").a("CenterX", i).a("CenterZ", j).a("Step", decorationStage)
|
crashreport.a("Generation").a("CenterX", i).a("CenterZ", j).a("Seed", chunkSeed).a("Biome",
|
||||||
.a("Seed", chunkSeed).a("Biome", IRegistry.BIOME.getKey(biomebase));
|
biomebase);
|
||||||
throw new ReportedException(crashreport);
|
throw new ReportedException(crashreport);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,7 +10,7 @@ import org.bukkit.Server;
|
|||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.command.PluginCommand;
|
import org.bukkit.command.PluginCommand;
|
||||||
import org.bukkit.command.TabExecutor;
|
import org.bukkit.command.TabExecutor;
|
||||||
import org.bukkit.craftbukkit.v1_16_R1.CraftServer;
|
import org.bukkit.craftbukkit.v1_16_R2.CraftServer;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.world.WorldUnloadEvent;
|
import org.bukkit.event.world.WorldUnloadEvent;
|
||||||
|
@ -7,16 +7,14 @@ import java.util.Objects;
|
|||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.craftbukkit.v1_16_R1.CraftWorld;
|
import org.bukkit.craftbukkit.v1_16_R2.CraftWorld;
|
||||||
import org.bukkit.craftbukkit.v1_16_R1.generator.CustomChunkGenerator;
|
import org.bukkit.craftbukkit.v1_16_R2.generator.CustomChunkGenerator;
|
||||||
|
|
||||||
import net.minecraft.server.v1_16_R1.ChunkGenerator;
|
import net.minecraft.server.v1_16_R2.ChunkGenerator;
|
||||||
import net.minecraft.server.v1_16_R1.ChunkGeneratorAbstract;
|
import net.minecraft.server.v1_16_R2.ChunkProviderServer;
|
||||||
import net.minecraft.server.v1_16_R1.ChunkProviderServer;
|
import net.minecraft.server.v1_16_R2.GeneratorSettingBase;
|
||||||
import net.minecraft.server.v1_16_R1.GeneratorSettingBase;
|
import net.minecraft.server.v1_16_R2.WorldChunkManager;
|
||||||
import net.minecraft.server.v1_16_R1.GeneratorSettings;
|
import net.minecraft.server.v1_16_R2.WorldServer;
|
||||||
import net.minecraft.server.v1_16_R1.WorldChunkManager;
|
|
||||||
import net.minecraft.server.v1_16_R1.WorldServer;
|
|
||||||
import nl.rutgerkok.worldgeneratorapi.BaseChunkGenerator;
|
import nl.rutgerkok.worldgeneratorapi.BaseChunkGenerator;
|
||||||
import nl.rutgerkok.worldgeneratorapi.BaseNoiseGenerator;
|
import nl.rutgerkok.worldgeneratorapi.BaseNoiseGenerator;
|
||||||
import nl.rutgerkok.worldgeneratorapi.BaseTerrainGenerator;
|
import nl.rutgerkok.worldgeneratorapi.BaseTerrainGenerator;
|
||||||
@ -29,6 +27,10 @@ import nl.rutgerkok.worldgeneratorapi.internal.bukkitoverrides.NoiseToTerrainGen
|
|||||||
|
|
||||||
final class WorldGeneratorImpl implements WorldGenerator {
|
final class WorldGeneratorImpl implements WorldGenerator {
|
||||||
|
|
||||||
|
private static GeneratorSettingBase createDefaultSettings() {
|
||||||
|
return GeneratorSettingBase.i();
|
||||||
|
}
|
||||||
|
|
||||||
private static GeneratorSettingBase extractSettings(ChunkGenerator chunkGenerator, long seed) {
|
private static GeneratorSettingBase extractSettings(ChunkGenerator chunkGenerator, long seed) {
|
||||||
try {
|
try {
|
||||||
// First, unwrap Bukkit generator if necessary
|
// First, unwrap Bukkit generator if necessary
|
||||||
@ -38,16 +40,11 @@ final class WorldGeneratorImpl implements WorldGenerator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Then, extract the settings
|
// Then, extract the settings
|
||||||
return (GeneratorSettingBase) ReflectionUtil.getFieldOfType(chunkGenerator, GeneratorSettingBase.class).get(chunkGenerator);
|
return (GeneratorSettingBase) ReflectionUtil.getFieldOfType(chunkGenerator, GeneratorSettingBase.class)
|
||||||
|
.get(chunkGenerator);
|
||||||
} catch (IllegalAccessException | IllegalArgumentException | NoSuchElementException e) {
|
} catch (IllegalAccessException | IllegalArgumentException | NoSuchElementException e) {
|
||||||
// Get default settings
|
// Get default settings
|
||||||
ChunkGeneratorAbstract standardGenerator = GeneratorSettings.a(seed);
|
return createDefaultSettings();
|
||||||
try {
|
|
||||||
return (GeneratorSettingBase) ReflectionUtil
|
|
||||||
.getFieldOfType(standardGenerator, GeneratorSettingBase.class).get(chunkGenerator);
|
|
||||||
} catch (IllegalAccessException e1) {
|
|
||||||
throw new RuntimeException("Failed to extract settings", e1);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,10 +3,11 @@ package nl.rutgerkok.worldgeneratorapi.internal.bukkitoverrides;
|
|||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
import org.bukkit.block.Biome;
|
import org.bukkit.block.Biome;
|
||||||
import org.bukkit.craftbukkit.v1_16_R1.block.CraftBlock;
|
import org.bukkit.craftbukkit.v1_16_R2.block.CraftBlock;
|
||||||
import org.bukkit.generator.ChunkGenerator.BiomeGrid;
|
import org.bukkit.generator.ChunkGenerator.BiomeGrid;
|
||||||
|
|
||||||
import net.minecraft.server.v1_16_R1.BiomeStorage;
|
import net.minecraft.server.v1_16_R2.BiomeStorage;
|
||||||
|
import net.minecraft.server.v1_16_R2.RegistryGeneration;
|
||||||
|
|
||||||
public final class BiomeGridImpl implements BiomeGrid {
|
public final class BiomeGridImpl implements BiomeGrid {
|
||||||
private final BiomeStorage biomeStorage;
|
private final BiomeStorage biomeStorage;
|
||||||
@ -17,12 +18,14 @@ public final class BiomeGridImpl implements BiomeGrid {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Biome getBiome(final int x, final int z) {
|
public Biome getBiome(final int x, final int z) {
|
||||||
return CraftBlock.biomeBaseToBiome(this.biomeStorage.getBiome(x >> 2, 0, z >> 2));
|
return CraftBlock.biomeBaseToBiome(RegistryGeneration.WORLDGEN_BIOME,
|
||||||
|
this.biomeStorage.getBiome(x >> 2, 0, z >> 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Biome getBiome(int x, int y, int z) {
|
public Biome getBiome(int x, int y, int z) {
|
||||||
return CraftBlock.biomeBaseToBiome(this.biomeStorage.getBiome(x >> 2, y >> 2, z >> 2));
|
return CraftBlock.biomeBaseToBiome(RegistryGeneration.WORLDGEN_BIOME,
|
||||||
|
this.biomeStorage.getBiome(x >> 2, y >> 2, z >> 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -36,11 +39,13 @@ public final class BiomeGridImpl implements BiomeGrid {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setBiome(int x, int z, Biome biome) {
|
public void setBiome(int x, int z, Biome biome) {
|
||||||
this.biomeStorage.setBiome(x >> 2, 0, z >> 2, CraftBlock.biomeToBiomeBase(biome));
|
this.biomeStorage.setBiome(x >> 2, 0, z >> 2,
|
||||||
|
CraftBlock.biomeToBiomeBase(RegistryGeneration.WORLDGEN_BIOME, biome));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setBiome(int x, int y, int z, Biome biome) {
|
public void setBiome(int x, int y, int z, Biome biome) {
|
||||||
this.biomeStorage.setBiome(x >> 2, y >> 2, z >> 2, CraftBlock.biomeToBiomeBase(biome));
|
this.biomeStorage.setBiome(x >> 2, y >> 2, z >> 2,
|
||||||
|
CraftBlock.biomeToBiomeBase(RegistryGeneration.WORLDGEN_BIOME, biome));
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -2,12 +2,12 @@ package nl.rutgerkok.worldgeneratorapi.internal.bukkitoverrides;
|
|||||||
|
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.block.data.BlockData;
|
import org.bukkit.block.data.BlockData;
|
||||||
import org.bukkit.craftbukkit.v1_16_R1.block.data.CraftBlockData;
|
import org.bukkit.craftbukkit.v1_16_R2.block.data.CraftBlockData;
|
||||||
import org.bukkit.generator.ChunkGenerator.ChunkData;
|
import org.bukkit.generator.ChunkGenerator.ChunkData;
|
||||||
|
|
||||||
import net.minecraft.server.v1_16_R1.BlockPosition.MutableBlockPosition;
|
import net.minecraft.server.v1_16_R2.BlockPosition.MutableBlockPosition;
|
||||||
import net.minecraft.server.v1_16_R1.IBlockData;
|
import net.minecraft.server.v1_16_R2.IBlockData;
|
||||||
import net.minecraft.server.v1_16_R1.IChunkAccess;
|
import net.minecraft.server.v1_16_R2.IChunkAccess;
|
||||||
|
|
||||||
public final class ChunkDataImpl implements ChunkData {
|
public final class ChunkDataImpl implements ChunkData {
|
||||||
private final IChunkAccess internal;
|
private final IChunkAccess internal;
|
||||||
|
@ -13,35 +13,35 @@ import org.bukkit.generator.ChunkGenerator.ChunkData;
|
|||||||
|
|
||||||
import com.mojang.serialization.Codec;
|
import com.mojang.serialization.Codec;
|
||||||
|
|
||||||
import net.minecraft.server.v1_16_R1.BiomeBase;
|
import net.minecraft.server.v1_16_R2.BiomeBase;
|
||||||
import net.minecraft.server.v1_16_R1.BiomeBase.BiomeMeta;
|
import net.minecraft.server.v1_16_R2.BiomeManager;
|
||||||
import net.minecraft.server.v1_16_R1.BiomeManager;
|
import net.minecraft.server.v1_16_R2.BiomeSettingsMobs;
|
||||||
import net.minecraft.server.v1_16_R1.BlockColumn;
|
import net.minecraft.server.v1_16_R2.BlockColumn;
|
||||||
import net.minecraft.server.v1_16_R1.BlockPosition;
|
import net.minecraft.server.v1_16_R2.BlockPosition;
|
||||||
import net.minecraft.server.v1_16_R1.BlockPosition.MutableBlockPosition;
|
import net.minecraft.server.v1_16_R2.BlockPosition.MutableBlockPosition;
|
||||||
import net.minecraft.server.v1_16_R1.Blocks;
|
import net.minecraft.server.v1_16_R2.Blocks;
|
||||||
import net.minecraft.server.v1_16_R1.ChunkCoordIntPair;
|
import net.minecraft.server.v1_16_R2.ChunkCoordIntPair;
|
||||||
import net.minecraft.server.v1_16_R1.ChunkGenerator;
|
import net.minecraft.server.v1_16_R2.ChunkGenerator;
|
||||||
import net.minecraft.server.v1_16_R1.ChunkGeneratorAbstract;
|
import net.minecraft.server.v1_16_R2.ChunkGeneratorAbstract;
|
||||||
import net.minecraft.server.v1_16_R1.EnumCreatureType;
|
import net.minecraft.server.v1_16_R2.EnumCreatureType;
|
||||||
import net.minecraft.server.v1_16_R1.GeneratorAccess;
|
import net.minecraft.server.v1_16_R2.GeneratorAccess;
|
||||||
import net.minecraft.server.v1_16_R1.GeneratorSettingBase;
|
import net.minecraft.server.v1_16_R2.GeneratorSettingBase;
|
||||||
import net.minecraft.server.v1_16_R1.HeightMap;
|
import net.minecraft.server.v1_16_R2.HeightMap;
|
||||||
import net.minecraft.server.v1_16_R1.HeightMap.Type;
|
import net.minecraft.server.v1_16_R2.HeightMap.Type;
|
||||||
import net.minecraft.server.v1_16_R1.IBlockAccess;
|
import net.minecraft.server.v1_16_R2.IBlockAccess;
|
||||||
import net.minecraft.server.v1_16_R1.IBlockData;
|
import net.minecraft.server.v1_16_R2.IBlockData;
|
||||||
import net.minecraft.server.v1_16_R1.IChunkAccess;
|
import net.minecraft.server.v1_16_R2.IChunkAccess;
|
||||||
import net.minecraft.server.v1_16_R1.NoiseGenerator;
|
import net.minecraft.server.v1_16_R2.NoiseGenerator;
|
||||||
import net.minecraft.server.v1_16_R1.NoiseGenerator3;
|
import net.minecraft.server.v1_16_R2.NoiseGenerator3;
|
||||||
import net.minecraft.server.v1_16_R1.NoiseGeneratorOctaves;
|
import net.minecraft.server.v1_16_R2.NoiseGeneratorOctaves;
|
||||||
import net.minecraft.server.v1_16_R1.NoiseSettings;
|
import net.minecraft.server.v1_16_R2.NoiseSettings;
|
||||||
import net.minecraft.server.v1_16_R1.RegionLimitedWorldAccess;
|
import net.minecraft.server.v1_16_R2.RegionLimitedWorldAccess;
|
||||||
import net.minecraft.server.v1_16_R1.SeededRandom;
|
import net.minecraft.server.v1_16_R2.SeededRandom;
|
||||||
import net.minecraft.server.v1_16_R1.SpawnerCreature;
|
import net.minecraft.server.v1_16_R2.SpawnerCreature;
|
||||||
import net.minecraft.server.v1_16_R1.StructureGenerator;
|
import net.minecraft.server.v1_16_R2.StructureGenerator;
|
||||||
import net.minecraft.server.v1_16_R1.StructureManager;
|
import net.minecraft.server.v1_16_R2.StructureManager;
|
||||||
import net.minecraft.server.v1_16_R1.WorldChunkManager;
|
import net.minecraft.server.v1_16_R2.WorldChunkManager;
|
||||||
import net.minecraft.server.v1_16_R1.WorldGenStage.Features;
|
import net.minecraft.server.v1_16_R2.WorldGenStage.Features;
|
||||||
import nl.rutgerkok.worldgeneratorapi.BaseChunkGenerator.GeneratingChunk;
|
import nl.rutgerkok.worldgeneratorapi.BaseChunkGenerator.GeneratingChunk;
|
||||||
import nl.rutgerkok.worldgeneratorapi.BaseTerrainGenerator;
|
import nl.rutgerkok.worldgeneratorapi.BaseTerrainGenerator;
|
||||||
import nl.rutgerkok.worldgeneratorapi.BaseTerrainGenerator.HeightType;
|
import nl.rutgerkok.worldgeneratorapi.BaseTerrainGenerator.HeightType;
|
||||||
@ -346,7 +346,7 @@ public final class InjectedChunkGenerator extends ChunkGenerator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<BiomeMeta> getMobsFor(BiomeBase biomebase, StructureManager structuremanager,
|
public List<BiomeSettingsMobs.c> getMobsFor(BiomeBase biomebase, StructureManager structuremanager,
|
||||||
EnumCreatureType enumcreaturetype, BlockPosition blockposition) {
|
EnumCreatureType enumcreaturetype, BlockPosition blockposition) {
|
||||||
if (structuremanager.a(blockposition, true, StructureGenerator.SWAMP_HUT).e()) {
|
if (structuremanager.a(blockposition, true, StructureGenerator.SWAMP_HUT).e()) {
|
||||||
if (enumcreaturetype == EnumCreatureType.MONSTER) {
|
if (enumcreaturetype == EnumCreatureType.MONSTER) {
|
||||||
|
@ -9,39 +9,36 @@ import java.util.function.Predicate;
|
|||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
import org.bukkit.craftbukkit.v1_16_R1.block.data.CraftBlockData;
|
import org.bukkit.craftbukkit.v1_16_R2.block.data.CraftBlockData;
|
||||||
|
|
||||||
import net.minecraft.server.v1_16_R1.BlockColumn;
|
import net.minecraft.server.v1_16_R2.BlockColumn;
|
||||||
import net.minecraft.server.v1_16_R1.BlockPosition.MutableBlockPosition;
|
import net.minecraft.server.v1_16_R2.BlockPosition.MutableBlockPosition;
|
||||||
import net.minecraft.server.v1_16_R1.Blocks;
|
import net.minecraft.server.v1_16_R2.Blocks;
|
||||||
import net.minecraft.server.v1_16_R1.ChunkCoordIntPair;
|
import net.minecraft.server.v1_16_R2.ChunkCoordIntPair;
|
||||||
import net.minecraft.server.v1_16_R1.ChunkGeneratorAbstract;
|
import net.minecraft.server.v1_16_R2.ChunkSection;
|
||||||
import net.minecraft.server.v1_16_R1.ChunkSection;
|
import net.minecraft.server.v1_16_R2.GeneratorAccess;
|
||||||
import net.minecraft.server.v1_16_R1.GeneratorAccess;
|
import net.minecraft.server.v1_16_R2.GeneratorSettingBase;
|
||||||
import net.minecraft.server.v1_16_R1.GeneratorSettingBase;
|
import net.minecraft.server.v1_16_R2.HeightMap;
|
||||||
import net.minecraft.server.v1_16_R1.GeneratorSettings;
|
import net.minecraft.server.v1_16_R2.HeightMap.Type;
|
||||||
import net.minecraft.server.v1_16_R1.HeightMap;
|
import net.minecraft.server.v1_16_R2.IBlockAccess;
|
||||||
import net.minecraft.server.v1_16_R1.HeightMap.Type;
|
import net.minecraft.server.v1_16_R2.IBlockData;
|
||||||
import net.minecraft.server.v1_16_R1.IBlockAccess;
|
import net.minecraft.server.v1_16_R2.IChunkAccess;
|
||||||
import net.minecraft.server.v1_16_R1.IBlockData;
|
import net.minecraft.server.v1_16_R2.MathHelper;
|
||||||
import net.minecraft.server.v1_16_R1.IChunkAccess;
|
import net.minecraft.server.v1_16_R2.NoiseSettings;
|
||||||
import net.minecraft.server.v1_16_R1.MathHelper;
|
import net.minecraft.server.v1_16_R2.ProtoChunk;
|
||||||
import net.minecraft.server.v1_16_R1.NoiseSettings;
|
import net.minecraft.server.v1_16_R2.SectionPosition;
|
||||||
import net.minecraft.server.v1_16_R1.ProtoChunk;
|
import net.minecraft.server.v1_16_R2.StructureBoundingBox;
|
||||||
import net.minecraft.server.v1_16_R1.SectionPosition;
|
import net.minecraft.server.v1_16_R2.StructureGenerator;
|
||||||
import net.minecraft.server.v1_16_R1.StructureBoundingBox;
|
import net.minecraft.server.v1_16_R2.StructureManager;
|
||||||
import net.minecraft.server.v1_16_R1.StructureGenerator;
|
import net.minecraft.server.v1_16_R2.StructurePiece;
|
||||||
import net.minecraft.server.v1_16_R1.StructureManager;
|
import net.minecraft.server.v1_16_R2.SystemUtils;
|
||||||
import net.minecraft.server.v1_16_R1.StructurePiece;
|
import net.minecraft.server.v1_16_R2.WorldGenFeatureDefinedStructureJigsawJunction;
|
||||||
import net.minecraft.server.v1_16_R1.SystemUtils;
|
import net.minecraft.server.v1_16_R2.WorldGenFeatureDefinedStructurePoolTemplate.Matching;
|
||||||
import net.minecraft.server.v1_16_R1.WorldGenFeatureDefinedStructureJigsawJunction;
|
import net.minecraft.server.v1_16_R2.WorldGenFeaturePillagerOutpostPoolPiece;
|
||||||
import net.minecraft.server.v1_16_R1.WorldGenFeatureDefinedStructurePoolTemplate.Matching;
|
|
||||||
import net.minecraft.server.v1_16_R1.WorldGenFeaturePillagerOutpostPoolPiece;
|
|
||||||
import nl.rutgerkok.worldgeneratorapi.BaseNoiseGenerator;
|
import nl.rutgerkok.worldgeneratorapi.BaseNoiseGenerator;
|
||||||
import nl.rutgerkok.worldgeneratorapi.BaseNoiseGenerator.TerrainSettings;
|
import nl.rutgerkok.worldgeneratorapi.BaseNoiseGenerator.TerrainSettings;
|
||||||
import nl.rutgerkok.worldgeneratorapi.BaseTerrainGenerator;
|
import nl.rutgerkok.worldgeneratorapi.BaseTerrainGenerator;
|
||||||
import nl.rutgerkok.worldgeneratorapi.BiomeGenerator;
|
import nl.rutgerkok.worldgeneratorapi.BiomeGenerator;
|
||||||
import nl.rutgerkok.worldgeneratorapi.internal.ReflectionUtil;
|
|
||||||
import nl.rutgerkok.worldgeneratorapi.internal.bukkitoverrides.InjectedChunkGenerator.GeneratingChunkImpl;
|
import nl.rutgerkok.worldgeneratorapi.internal.bukkitoverrides.InjectedChunkGenerator.GeneratingChunkImpl;
|
||||||
|
|
||||||
public final class NoiseToTerrainGenerator implements BaseTerrainGenerator {
|
public final class NoiseToTerrainGenerator implements BaseTerrainGenerator {
|
||||||
@ -82,15 +79,9 @@ public final class NoiseToTerrainGenerator implements BaseTerrainGenerator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static NoiseSettings defaultNoiseSettings() {
|
private static NoiseSettings defaultNoiseSettings() {
|
||||||
// I don't know how to properly construct the default settings, so I'm using this for now
|
return GeneratorSettingBase.i().b();
|
||||||
ChunkGeneratorAbstract defaultGenerator = GeneratorSettings.a(0);
|
|
||||||
try {
|
|
||||||
GeneratorSettingBase settings = (GeneratorSettingBase) ReflectionUtil.getFieldOfType(defaultGenerator, GeneratorSettingBase.class).get(defaultGenerator);
|
|
||||||
return settings.b();
|
|
||||||
} catch (IllegalAccessException e) {
|
|
||||||
throw new RuntimeException("Failed to create default noise settings", e);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private final int l;
|
private final int l;
|
||||||
private final int m;
|
private final int m;
|
||||||
private final int n;
|
private final int n;
|
||||||
|
@ -7,8 +7,9 @@ import org.bukkit.block.Biome;
|
|||||||
import org.junit.jupiter.api.BeforeAll;
|
import org.junit.jupiter.api.BeforeAll;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
import net.minecraft.server.v1_16_R1.WorldChunkManager;
|
import net.minecraft.server.v1_16_R2.RegistryGeneration;
|
||||||
import net.minecraft.server.v1_16_R1.WorldChunkManagerOverworld;
|
import net.minecraft.server.v1_16_R2.WorldChunkManager;
|
||||||
|
import net.minecraft.server.v1_16_R2.WorldChunkManagerOverworld;
|
||||||
import nl.rutgerkok.worldgeneratorapi.BiomeGenerator;
|
import nl.rutgerkok.worldgeneratorapi.BiomeGenerator;
|
||||||
import nl.rutgerkok.worldgeneratorapi.internal.BiomeGeneratorImpl;
|
import nl.rutgerkok.worldgeneratorapi.internal.BiomeGeneratorImpl;
|
||||||
import nl.rutgerkok.worldgeneratorapi.internal.InjectedBiomeGenerator;
|
import nl.rutgerkok.worldgeneratorapi.internal.InjectedBiomeGenerator;
|
||||||
@ -23,7 +24,8 @@ public class BiomeGeneratorImplTest {
|
|||||||
@Test
|
@Test
|
||||||
public void isGetStructureBiomesInSync() {
|
public void isGetStructureBiomesInSync() {
|
||||||
// Create vanilla biome generator
|
// Create vanilla biome generator
|
||||||
WorldChunkManager worldChunkManager = new WorldChunkManagerOverworld(10, false, false);
|
WorldChunkManager worldChunkManager = new WorldChunkManagerOverworld(10, false, false,
|
||||||
|
RegistryGeneration.WORLDGEN_BIOME);
|
||||||
|
|
||||||
// Check the structures
|
// Check the structures
|
||||||
BiomeGeneratorImpl biomeGenerator = new BiomeGeneratorImpl(worldChunkManager);
|
BiomeGeneratorImpl biomeGenerator = new BiomeGeneratorImpl(worldChunkManager);
|
||||||
|
@ -8,7 +8,7 @@ import org.bukkit.World;
|
|||||||
import org.bukkit.plugin.Plugin;
|
import org.bukkit.plugin.Plugin;
|
||||||
import org.mockito.Mockito;
|
import org.mockito.Mockito;
|
||||||
|
|
||||||
import net.minecraft.server.v1_16_R1.DispenserRegistry;
|
import net.minecraft.server.v1_16_R2.DispenserRegistry;
|
||||||
|
|
||||||
public class TestFactory {
|
public class TestFactory {
|
||||||
|
|
||||||
|
@ -65,7 +65,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.spigotmc</groupId>
|
<groupId>org.spigotmc</groupId>
|
||||||
<artifactId>spigot-api</artifactId>
|
<artifactId>spigot-api</artifactId>
|
||||||
<version>1.16.1-R0.1-SNAPSHOT</version>
|
<version>1.16.2-R0.1-SNAPSHOT</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
<exclusions>
|
<exclusions>
|
||||||
<exclusion> <!-- Let's not put the outdated JUnit 4 on our build path -->
|
<exclusion> <!-- Let's not put the outdated JUnit 4 on our build path -->
|
||||||
|
Loading…
x
Reference in New Issue
Block a user