mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2025-12-25 01:59:15 +00:00
Forcefully shove stuff into other stuff
This commit is contained in:
@@ -1,17 +1,17 @@
|
||||
package com.volmit.iris;
|
||||
|
||||
import com.volmit.iris.command.CommandIris;
|
||||
import com.volmit.iris.command.PermissionIris;
|
||||
import com.volmit.iris.gen.IrisTerrainProvider;
|
||||
import com.volmit.iris.gen.nms.INMS;
|
||||
import com.volmit.iris.gen.provisions.ProvisionBukkit;
|
||||
import com.volmit.iris.gen.scaffold.IrisGenConfiguration;
|
||||
import com.volmit.iris.gen.scaffold.IrisWorlds;
|
||||
import com.volmit.iris.gen.scaffold.TerrainTarget;
|
||||
import com.volmit.iris.link.BKLink;
|
||||
import com.volmit.iris.link.CitizensLink;
|
||||
import com.volmit.iris.link.MultiverseCoreLink;
|
||||
import com.volmit.iris.link.MythicMobsLink;
|
||||
import com.volmit.iris.manager.command.CommandIris;
|
||||
import com.volmit.iris.manager.command.PermissionIris;
|
||||
import com.volmit.iris.generator.legacy.IrisTerrainProvider;
|
||||
import com.volmit.iris.generator.legacy.nms.INMS;
|
||||
import com.volmit.iris.generator.legacy.provisions.ProvisionBukkit;
|
||||
import com.volmit.iris.generator.legacy.scaffold.IrisGenConfiguration;
|
||||
import com.volmit.iris.scaffold.IrisWorlds;
|
||||
import com.volmit.iris.generator.legacy.scaffold.TerrainTarget;
|
||||
import com.volmit.iris.manager.link.BKLink;
|
||||
import com.volmit.iris.manager.link.CitizensLink;
|
||||
import com.volmit.iris.manager.link.MultiverseCoreLink;
|
||||
import com.volmit.iris.manager.link.MythicMobsLink;
|
||||
import com.volmit.iris.manager.*;
|
||||
import com.volmit.iris.object.IrisCompat;
|
||||
import com.volmit.iris.util.*;
|
||||
@@ -241,7 +241,7 @@ public class Iris extends VolmitPlugin
|
||||
{
|
||||
if(IrisWorlds.isIrisWorld(i))
|
||||
{
|
||||
IrisWorlds.getProvider(i).close();
|
||||
IrisWorlds.access(i).close();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
package com.volmit.iris.gen.nms.v16_2;
|
||||
|
||||
import com.volmit.iris.gen.atomics.AtomicCache;
|
||||
import com.volmit.iris.gen.nms.INMSBinding;
|
||||
import com.volmit.iris.gen.nms.INMSCreator;
|
||||
|
||||
public class NMSBinding16_2 implements INMSBinding
|
||||
{
|
||||
private final AtomicCache<INMSCreator> creator = new AtomicCache<>();
|
||||
|
||||
@Override
|
||||
public INMSCreator getCreator()
|
||||
{
|
||||
return creator.aquire(NMSCreator16_2::new);
|
||||
}
|
||||
}
|
||||
@@ -1,732 +0,0 @@
|
||||
package com.volmit.iris.gen.nms.v16_2;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Random;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.Biome;
|
||||
import org.bukkit.block.data.BlockData;
|
||||
import org.bukkit.craftbukkit.libs.it.unimi.dsi.fastutil.objects.ObjectArrayList;
|
||||
import org.bukkit.craftbukkit.libs.it.unimi.dsi.fastutil.objects.ObjectList;
|
||||
import org.bukkit.craftbukkit.v1_16_R2.block.CraftBlock;
|
||||
import org.bukkit.craftbukkit.v1_16_R2.block.data.CraftBlockData;
|
||||
import org.bukkit.craftbukkit.v1_16_R2.util.CraftMagicNumbers;
|
||||
import org.bukkit.generator.ChunkGenerator.BiomeGrid;
|
||||
import org.bukkit.generator.ChunkGenerator.ChunkData;
|
||||
import org.bukkit.material.MaterialData;
|
||||
|
||||
import com.mojang.serialization.Codec;
|
||||
import com.volmit.iris.gen.IrisTerrainProvider;
|
||||
import com.volmit.iris.gen.provisions.ProvisionBukkit;
|
||||
import com.volmit.iris.gen.scaffold.GeneratedChunk;
|
||||
import com.volmit.iris.gen.scaffold.Provisioned;
|
||||
import com.volmit.iris.gen.scaffold.ProvisionedHolder;
|
||||
import com.volmit.iris.gen.scaffold.TerrainProvider;
|
||||
import com.volmit.iris.util.O;
|
||||
import com.volmit.iris.util.V;
|
||||
|
||||
import net.minecraft.server.v1_16_R2.BiomeBase;
|
||||
import net.minecraft.server.v1_16_R2.BiomeManager;
|
||||
import net.minecraft.server.v1_16_R2.BiomeSettingsMobs;
|
||||
import net.minecraft.server.v1_16_R2.Block;
|
||||
import net.minecraft.server.v1_16_R2.BlockColumn;
|
||||
import net.minecraft.server.v1_16_R2.BlockPosition;
|
||||
import net.minecraft.server.v1_16_R2.Blocks;
|
||||
import net.minecraft.server.v1_16_R2.ChunkCoordIntPair;
|
||||
import net.minecraft.server.v1_16_R2.ChunkGenerator;
|
||||
import net.minecraft.server.v1_16_R2.ChunkGeneratorAbstract;
|
||||
import net.minecraft.server.v1_16_R2.CrashReport;
|
||||
import net.minecraft.server.v1_16_R2.CrashReportSystemDetails;
|
||||
import net.minecraft.server.v1_16_R2.DefinedStructureManager;
|
||||
import net.minecraft.server.v1_16_R2.EnumCreatureType;
|
||||
import net.minecraft.server.v1_16_R2.GeneratorAccess;
|
||||
import net.minecraft.server.v1_16_R2.GeneratorAccessSeed;
|
||||
import net.minecraft.server.v1_16_R2.GeneratorSettingBase;
|
||||
import net.minecraft.server.v1_16_R2.HeightMap;
|
||||
import net.minecraft.server.v1_16_R2.IBlockAccess;
|
||||
import net.minecraft.server.v1_16_R2.IBlockData;
|
||||
import net.minecraft.server.v1_16_R2.IChunkAccess;
|
||||
import net.minecraft.server.v1_16_R2.IRegistry;
|
||||
import net.minecraft.server.v1_16_R2.IRegistryCustom;
|
||||
import net.minecraft.server.v1_16_R2.IStructureAccess;
|
||||
import net.minecraft.server.v1_16_R2.NoiseSettings;
|
||||
import net.minecraft.server.v1_16_R2.PacketDebug;
|
||||
import net.minecraft.server.v1_16_R2.ProtoChunk;
|
||||
import net.minecraft.server.v1_16_R2.RegionLimitedWorldAccess;
|
||||
import net.minecraft.server.v1_16_R2.ReportedException;
|
||||
import net.minecraft.server.v1_16_R2.ResourceKey;
|
||||
import net.minecraft.server.v1_16_R2.SectionPosition;
|
||||
import net.minecraft.server.v1_16_R2.SeededRandom;
|
||||
import net.minecraft.server.v1_16_R2.SpawnerCreature;
|
||||
import net.minecraft.server.v1_16_R2.StructureBoundingBox;
|
||||
import net.minecraft.server.v1_16_R2.StructureFeature;
|
||||
import net.minecraft.server.v1_16_R2.StructureFeatures;
|
||||
import net.minecraft.server.v1_16_R2.StructureGenerator;
|
||||
import net.minecraft.server.v1_16_R2.StructureManager;
|
||||
import net.minecraft.server.v1_16_R2.StructurePiece;
|
||||
import net.minecraft.server.v1_16_R2.StructureSettingsFeature;
|
||||
import net.minecraft.server.v1_16_R2.StructureStart;
|
||||
import net.minecraft.server.v1_16_R2.WorldChunkManager;
|
||||
import net.minecraft.server.v1_16_R2.WorldGenFeatureDefinedStructureJigsawJunction;
|
||||
import net.minecraft.server.v1_16_R2.WorldGenFeatureDefinedStructurePoolTemplate;
|
||||
import net.minecraft.server.v1_16_R2.WorldGenFeaturePillagerOutpostPoolPiece;
|
||||
import net.minecraft.server.v1_16_R2.WorldGenStage;
|
||||
import net.minecraft.server.v1_16_R2.WorldServer;
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
public class NMSChunkGenerator16_2_SPIGOT extends ChunkGenerator implements ProvisionedHolder
|
||||
{
|
||||
private static final IBlockData k = Blocks.AIR.getBlockData();
|
||||
private final Provisioned provisioned;
|
||||
private final int maxHeight;
|
||||
private final int xzSize;
|
||||
protected final IBlockData f;
|
||||
protected final IBlockData g;
|
||||
private final long w;
|
||||
protected final Supplier<GeneratorSettingBase> h;
|
||||
private final O<WorldServer> ws;
|
||||
private BlockColumn BC;
|
||||
|
||||
public NMSChunkGenerator16_2_SPIGOT(Provisioned p, O<WorldServer> ws, WorldChunkManager worldchunkmanager, long i, Supplier<GeneratorSettingBase> supplier)
|
||||
{
|
||||
this(p, ws, worldchunkmanager, worldchunkmanager, i, supplier);
|
||||
}
|
||||
|
||||
private NMSChunkGenerator16_2_SPIGOT(Provisioned p, O<WorldServer> ws, WorldChunkManager worldchunkmanager, WorldChunkManager worldchunkmanager1, long i, Supplier<GeneratorSettingBase> supplier)
|
||||
{
|
||||
super(worldchunkmanager, worldchunkmanager1, supplier.get().a(), i);
|
||||
this.provisioned = p;
|
||||
this.ws = ws;
|
||||
this.w = i;
|
||||
GeneratorSettingBase generatorsettingbase = supplier.get();
|
||||
|
||||
this.h = supplier;
|
||||
NoiseSettings noisesettings = generatorsettingbase.b();
|
||||
|
||||
this.maxHeight = noisesettings.f() * 4;
|
||||
this.f = generatorsettingbase.c();
|
||||
this.g = generatorsettingbase.d();
|
||||
this.xzSize = noisesettings.a() / this.maxHeight;
|
||||
BC = new BlockColumn(new IBlockData[this.xzSize * this.maxHeight]);
|
||||
}
|
||||
|
||||
public int getSpawnHeight()
|
||||
{
|
||||
return getSeaLevel() + 8;
|
||||
}
|
||||
|
||||
public WorldChunkManager getWorldChunkManager()
|
||||
{
|
||||
return this.c;
|
||||
}
|
||||
|
||||
public int getGenerationDepth()
|
||||
{
|
||||
return 256;
|
||||
}
|
||||
|
||||
public void doCarving(long i, BiomeManager biomemanager, IChunkAccess ichunkaccess, WorldGenStage.Features worldgenstage_features)
|
||||
{
|
||||
if(((IrisTerrainProvider) provisioned.getProvider()).getDimension().isVanillaCaves())
|
||||
{
|
||||
super.doCarving(i, biomemanager, ichunkaccess, worldgenstage_features);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Codec<? extends ChunkGenerator> a()
|
||||
{
|
||||
return ChunkGeneratorAbstract.d;
|
||||
}
|
||||
|
||||
public boolean a(long i, ResourceKey<GeneratorSettingBase> resourcekey)
|
||||
{
|
||||
return this.w == i && this.h.get().a(resourcekey);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getBaseHeight(int i, int j, HeightMap.Type heightmap_type)
|
||||
{
|
||||
return 63;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IBlockAccess a(int x, int z)
|
||||
{
|
||||
return BC;
|
||||
}
|
||||
|
||||
protected IBlockData a(double d0, int i)
|
||||
{
|
||||
IBlockData iblockdata;
|
||||
|
||||
if(d0 > 0.0D)
|
||||
{
|
||||
iblockdata = this.f;
|
||||
}
|
||||
else if(i < this.getSeaLevel())
|
||||
{
|
||||
iblockdata = this.g;
|
||||
}
|
||||
else
|
||||
{
|
||||
iblockdata = NMSChunkGenerator16_2_SPIGOT.k;
|
||||
}
|
||||
|
||||
return iblockdata;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void buildBase(RegionLimitedWorldAccess regionlimitedworldaccess, IChunkAccess ichunkaccess)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void buildNoise(GeneratorAccess generatoraccess, StructureManager structuremanager, IChunkAccess ichunkaccess)
|
||||
{
|
||||
ObjectList<StructurePiece> objectlist = new ObjectArrayList<StructurePiece>(10);
|
||||
ObjectList<WorldGenFeatureDefinedStructureJigsawJunction> objectlist1 = new ObjectArrayList<WorldGenFeatureDefinedStructureJigsawJunction>(32);
|
||||
ChunkCoordIntPair chunkcoordintpair = ichunkaccess.getPos();
|
||||
int i = chunkcoordintpair.x;
|
||||
int j = chunkcoordintpair.z;
|
||||
|
||||
if(((IrisTerrainProvider) provisioned.getProvider()).shouldGenerateVanillaStructures())
|
||||
{
|
||||
int k = i << 4;
|
||||
int l = j << 4;
|
||||
Iterator<?> iterator = StructureGenerator.t.iterator();
|
||||
|
||||
while(iterator.hasNext())
|
||||
{
|
||||
StructureGenerator<?> structuregenerator = (StructureGenerator<?>) iterator.next();
|
||||
|
||||
structuremanager.a(SectionPosition.a(chunkcoordintpair, 0), structuregenerator).forEach((structurestart) ->
|
||||
{
|
||||
Iterator<?> iterator1 = structurestart.d().iterator();
|
||||
|
||||
while(iterator1.hasNext())
|
||||
{
|
||||
StructurePiece structurepiece = (StructurePiece) iterator1.next();
|
||||
|
||||
if(structurepiece.a(chunkcoordintpair, 12))
|
||||
{
|
||||
if(structurepiece instanceof WorldGenFeaturePillagerOutpostPoolPiece)
|
||||
{
|
||||
WorldGenFeaturePillagerOutpostPoolPiece worldgenfeaturepillageroutpostpoolpiece = (WorldGenFeaturePillagerOutpostPoolPiece) structurepiece;
|
||||
WorldGenFeatureDefinedStructurePoolTemplate.Matching worldgenfeaturedefinedstructurepooltemplate_matching = worldgenfeaturepillageroutpostpoolpiece.b().e();
|
||||
|
||||
if(worldgenfeaturedefinedstructurepooltemplate_matching == WorldGenFeatureDefinedStructurePoolTemplate.Matching.RIGID)
|
||||
{
|
||||
objectlist.add(worldgenfeaturepillageroutpostpoolpiece);
|
||||
}
|
||||
|
||||
Iterator<?> iterator2 = worldgenfeaturepillageroutpostpoolpiece.e().iterator();
|
||||
|
||||
while(iterator2.hasNext())
|
||||
{
|
||||
WorldGenFeatureDefinedStructureJigsawJunction worldgenfeaturedefinedstructurejigsawjunction = (WorldGenFeatureDefinedStructureJigsawJunction) iterator2.next();
|
||||
int i1 = worldgenfeaturedefinedstructurejigsawjunction.a();
|
||||
int j1 = worldgenfeaturedefinedstructurejigsawjunction.c();
|
||||
|
||||
if(i1 > k - 12 && j1 > l - 12 && i1 < k + 15 + 12 && j1 < l + 15 + 12)
|
||||
{
|
||||
objectlist1.add(worldgenfeaturedefinedstructurejigsawjunction);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
objectlist.add(structurepiece);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
ProtoChunk protochunk = (ProtoChunk) ichunkaccess;
|
||||
HeightMap heightmap = protochunk.a(HeightMap.Type.OCEAN_FLOOR_WG);
|
||||
HeightMap heightmap1 = protochunk.a(HeightMap.Type.WORLD_SURFACE_WG);
|
||||
GeneratedChunk gc = ((ProvisionBukkit) provisioned).generateNMSChunkData(ws.get().getWorld(), new Random(i + j), i, j, new ChunkData()
|
||||
{
|
||||
public int getMaxHeight()
|
||||
{
|
||||
return 256;
|
||||
}
|
||||
|
||||
public void setBlock(int x, int y, int z, Material material)
|
||||
{
|
||||
this.setBlock(x, y, z, material.createBlockData());
|
||||
}
|
||||
|
||||
public void setBlock(int x, int y, int z, MaterialData material)
|
||||
{
|
||||
this.setBlock(x, y, z, CraftMagicNumbers.getBlock((MaterialData) material));
|
||||
}
|
||||
|
||||
public void setBlock(int x, int y, int z, BlockData blockData)
|
||||
{
|
||||
this.setBlock(x, y, z, ((CraftBlockData) blockData).getState());
|
||||
}
|
||||
|
||||
public void setRegion(int xMin, int yMin, int zMin, int xMax, int yMax, int zMax, Material material)
|
||||
{
|
||||
this.setRegion(xMin, yMin, zMin, xMax, yMax, zMax, material.createBlockData());
|
||||
}
|
||||
|
||||
public void setRegion(int xMin, int yMin, int zMin, int xMax, int yMax, int zMax, MaterialData material)
|
||||
{
|
||||
this.setRegion(xMin, yMin, zMin, xMax, yMax, zMax, CraftMagicNumbers.getBlock((MaterialData) material));
|
||||
}
|
||||
|
||||
public void setRegion(int xMin, int yMin, int zMin, int xMax, int yMax, int zMax, BlockData blockData)
|
||||
{
|
||||
this.setRegion(xMin, yMin, zMin, xMax, yMax, zMax, ((CraftBlockData) blockData).getState());
|
||||
}
|
||||
|
||||
public Material getType(int x, int y, int z)
|
||||
{
|
||||
return CraftMagicNumbers.getMaterial((Block) this.getTypeId(x, y, z).getBlock());
|
||||
}
|
||||
|
||||
public MaterialData getTypeAndData(int x, int y, int z)
|
||||
{
|
||||
return CraftMagicNumbers.getMaterial((IBlockData) this.getTypeId(x, y, z));
|
||||
}
|
||||
|
||||
public BlockData getBlockData(int x, int y, int z)
|
||||
{
|
||||
return CraftBlockData.fromData((IBlockData) this.getTypeId(x, y, z));
|
||||
}
|
||||
|
||||
public void setRegion(int xMin, int yMin, int zMin, int xMax, int yMax, int zMax, IBlockData type)
|
||||
{
|
||||
if(xMin > 15 || yMin >= getMaxHeight() || zMin > 15)
|
||||
{
|
||||
return;
|
||||
}
|
||||
if(xMin < 0)
|
||||
{
|
||||
xMin = 0;
|
||||
}
|
||||
if(yMin < 0)
|
||||
{
|
||||
yMin = 0;
|
||||
}
|
||||
if(zMin < 0)
|
||||
{
|
||||
zMin = 0;
|
||||
}
|
||||
if(xMax > 16)
|
||||
{
|
||||
xMax = 16;
|
||||
}
|
||||
if(yMax > getMaxHeight())
|
||||
{
|
||||
yMax = getMaxHeight();
|
||||
}
|
||||
if(zMax > 16)
|
||||
{
|
||||
zMax = 16;
|
||||
}
|
||||
if(xMin >= xMax || yMin >= yMax || zMin >= zMax)
|
||||
{
|
||||
return;
|
||||
}
|
||||
int y = yMin;
|
||||
while(y < yMax)
|
||||
{
|
||||
int x = xMin;
|
||||
while(x < xMax)
|
||||
{
|
||||
int z = zMin;
|
||||
while(z < zMax)
|
||||
{
|
||||
protochunk.setType(new BlockPosition(x, y, z), type, false);
|
||||
++z;
|
||||
}
|
||||
++x;
|
||||
}
|
||||
++y;
|
||||
}
|
||||
}
|
||||
|
||||
public IBlockData getTypeId(int x, int y, int z)
|
||||
{
|
||||
if(x != (x & 15) || y < 0 || y >= getMaxHeight() || z != (z & 15))
|
||||
{
|
||||
return Blocks.AIR.getBlockData();
|
||||
}
|
||||
return protochunk.getType(new BlockPosition(x, y, z));
|
||||
}
|
||||
|
||||
public byte getData(int x, int y, int z)
|
||||
{
|
||||
return CraftMagicNumbers.toLegacyData((IBlockData) this.getTypeId(x, y, z));
|
||||
}
|
||||
|
||||
private void setBlock(int x, int y, int z, IBlockData type)
|
||||
{
|
||||
if(x != (x & 15) || y < 0 || y >= getMaxHeight() || z != (z & 15))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
protochunk.setType(new BlockPosition(x, y, z), type, false);
|
||||
|
||||
if(type.getBlock().isTileEntity())
|
||||
{
|
||||
// if (this.tiles == null) {
|
||||
// this.tiles = new HashSet<BlockPosition>();
|
||||
// }
|
||||
// this.tiles.add(new BlockPosition(x, y, z));
|
||||
}
|
||||
}
|
||||
}, new BiomeGrid()
|
||||
{
|
||||
@Override
|
||||
public void setBiome(int x, int y, int z, Biome bio)
|
||||
{
|
||||
protochunk.getBiomeIndex().setBiome(x, y, z, CraftBlock.biomeToBiomeBase(ws.get().r().b(IRegistry.ay), bio));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBiome(int x, int z, Biome bio)
|
||||
{
|
||||
protochunk.getBiomeIndex().setBiome(x, 0, z, CraftBlock.biomeToBiomeBase(ws.get().r().b(IRegistry.ay), bio));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Biome getBiome(int x, int y, int z)
|
||||
{
|
||||
return CraftBlock.biomeBaseToBiome(ws.get().r().b(IRegistry.ay), protochunk.getBiomeIndex().getBiome(x, y, z));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Biome getBiome(int x, int z)
|
||||
{
|
||||
return CraftBlock.biomeBaseToBiome(ws.get().r().b(IRegistry.ay), protochunk.getBiomeIndex().getBiome(x, 0, z));
|
||||
}
|
||||
});
|
||||
|
||||
for(int xx = 0; xx < 16; xx++)
|
||||
{
|
||||
for(int zz = 0; zz < 16; zz++)
|
||||
{
|
||||
int y = gc.getHeight().getHeight(xx, zz);
|
||||
if(y < getSeaLevel())
|
||||
{
|
||||
heightmap.a(xx, y, zz, Blocks.STONE.getBlockData());
|
||||
}
|
||||
heightmap1.a(xx, Math.max(y, getSeaLevel()), zz, Blocks.STONE.getBlockData());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void addDecorations(RegionLimitedWorldAccess regionlimitedworldaccess, StructureManager structuremanager)
|
||||
{
|
||||
if(((IrisTerrainProvider) provisioned.getProvider()).shouldGenerateVanillaStructures())
|
||||
{
|
||||
int i = regionlimitedworldaccess.a();
|
||||
int j = regionlimitedworldaccess.b();
|
||||
int k = i * 16;
|
||||
int l = j * 16;
|
||||
BlockPosition blockposition = new BlockPosition(k, 0, l);
|
||||
BiomeBase biomebase = this.b.getBiome((i << 2) + 2, 2, (j << 2) + 2);
|
||||
SeededRandom seededrandom = new SeededRandom();
|
||||
long i1 = seededrandom.a(regionlimitedworldaccess.getSeed(), k, l);
|
||||
try
|
||||
{
|
||||
a(biomebase, structuremanager, this, regionlimitedworldaccess, i1, seededrandom, blockposition);
|
||||
}
|
||||
catch(Exception exception)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void a(BiomeBase bbase, StructureManager var0, ChunkGenerator var1, RegionLimitedWorldAccess var2, long var3, SeededRandom var5, BlockPosition var6)
|
||||
{
|
||||
if(!((IrisTerrainProvider) provisioned.getProvider()).shouldGenerateVanillaStructures())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
int stages = WorldGenStage.Decoration.values().length;
|
||||
for(int stage = 0; stage < stages; ++stage)
|
||||
{
|
||||
WorldGenStage.Decoration st = WorldGenStage.Decoration.values()[stage];
|
||||
|
||||
if(st.equals(WorldGenStage.Decoration.LAKES))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(st.equals(WorldGenStage.Decoration.LOCAL_MODIFICATIONS))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(st.equals(WorldGenStage.Decoration.RAW_GENERATION))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(st.equals(WorldGenStage.Decoration.TOP_LAYER_MODIFICATION))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(st.equals(WorldGenStage.Decoration.UNDERGROUND_DECORATION))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(st.equals(WorldGenStage.Decoration.UNDERGROUND_ORES))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(st.equals(WorldGenStage.Decoration.VEGETAL_DECORATION))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
StructureGenerator<?> var13;
|
||||
int var10 = 0;
|
||||
if(var0.a())
|
||||
{
|
||||
@SuppressWarnings("unchecked")
|
||||
List<StructureGenerator<?>> structureGenerators = ((Map<Integer, List<StructureGenerator<?>>>) new V(bbase).get("g")).getOrDefault(stage, Collections.emptyList());
|
||||
Iterator<StructureGenerator<?>> iterator = structureGenerators.iterator();
|
||||
while(iterator.hasNext())
|
||||
{
|
||||
var13 = (StructureGenerator<?>) iterator.next();
|
||||
|
||||
if(var13.equals(StructureGenerator.VILLAGE))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(var13.equals(StructureGenerator.JUNGLE_PYRAMID))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(var13.equals(StructureGenerator.OCEAN_RUIN))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(var13.equals(StructureGenerator.IGLOO))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(var13.equals(StructureGenerator.MINESHAFT))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(var13.equals(StructureGenerator.NETHER_FOSSIL))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(var13.equals(StructureGenerator.SHIPWRECK))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(var13.equals(StructureGenerator.SHIPWRECK))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(var13.equals(StructureGenerator.MONUMENT))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(var13.equals(StructureGenerator.BASTION_REMNANT))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var5.b(var3, var10, stage);
|
||||
int var14 = var6.getX() >> 4;
|
||||
int var15 = var6.getZ() >> 4;
|
||||
int var16 = var14 << 4;
|
||||
int var17 = var15 << 4;
|
||||
|
||||
try
|
||||
{
|
||||
var0.a(SectionPosition.a((BlockPosition) var6), var13).forEach(var8 -> var8.a((GeneratorAccessSeed) var2, var0, var1, (Random) var5, new StructureBoundingBox(var16, var17, var16 + 15, var17 + 15), new ChunkCoordIntPair(var14, var15)));
|
||||
}
|
||||
|
||||
catch(Exception var18)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
++var10;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSeaLevel()
|
||||
{
|
||||
return ((IrisTerrainProvider) provisioned.getProvider()).getFluidHeight();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<BiomeSettingsMobs.c> getMobsFor(BiomeBase biomebase, StructureManager structuremanager, EnumCreatureType enumcreaturetype, BlockPosition blockposition)
|
||||
{
|
||||
if(structuremanager.a(blockposition, true, StructureGenerator.SWAMP_HUT).e())
|
||||
{
|
||||
if(enumcreaturetype == EnumCreatureType.MONSTER)
|
||||
{
|
||||
return StructureGenerator.SWAMP_HUT.c();
|
||||
}
|
||||
|
||||
if(enumcreaturetype == EnumCreatureType.CREATURE)
|
||||
{
|
||||
return StructureGenerator.SWAMP_HUT.j();
|
||||
}
|
||||
}
|
||||
|
||||
if(enumcreaturetype == EnumCreatureType.MONSTER)
|
||||
{
|
||||
if(structuremanager.a(blockposition, false, StructureGenerator.PILLAGER_OUTPOST).e())
|
||||
{
|
||||
return StructureGenerator.PILLAGER_OUTPOST.c();
|
||||
}
|
||||
|
||||
if(structuremanager.a(blockposition, false, StructureGenerator.MONUMENT).e())
|
||||
{
|
||||
return StructureGenerator.MONUMENT.c();
|
||||
}
|
||||
|
||||
if(structuremanager.a(blockposition, true, StructureGenerator.FORTRESS).e())
|
||||
{
|
||||
return StructureGenerator.FORTRESS.c();
|
||||
}
|
||||
}
|
||||
|
||||
return super.getMobsFor(biomebase, structuremanager, enumcreaturetype, blockposition);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addMobs(RegionLimitedWorldAccess regionlimitedworldaccess)
|
||||
{
|
||||
int i = regionlimitedworldaccess.a();
|
||||
int j = regionlimitedworldaccess.b();
|
||||
BiomeBase biomebase = regionlimitedworldaccess.getBiome((new ChunkCoordIntPair(i, j)).l());
|
||||
SeededRandom seededrandom = new SeededRandom();
|
||||
seededrandom.a(regionlimitedworldaccess.getSeed(), i << 4, j << 4);
|
||||
SpawnerCreature.a(regionlimitedworldaccess, biomebase, i, j, seededrandom);
|
||||
}
|
||||
|
||||
public void createStructures(IRegistryCustom iregistrycustom, StructureManager structuremanager, IChunkAccess ichunkaccess, DefinedStructureManager definedstructuremanager, long i)
|
||||
{
|
||||
ChunkCoordIntPair chunkcoordintpair = ichunkaccess.getPos();
|
||||
BiomeBase biomebase = this.b.getBiome((chunkcoordintpair.x << 2) + 2, 0, (chunkcoordintpair.z << 2) + 2);
|
||||
this.a(StructureFeatures.k, iregistrycustom, structuremanager, ichunkaccess, definedstructuremanager, i, chunkcoordintpair, biomebase);
|
||||
for(Supplier<StructureFeature<?, ?>> supplier : biomebase.e().a())
|
||||
{
|
||||
StructureFeature<?, ?> structurefeature = (StructureFeature<?, ?>) supplier.get();
|
||||
if(StructureFeature.c == StructureGenerator.STRONGHOLD)
|
||||
{
|
||||
StructureFeature<?, ?> structureFeature = structurefeature;
|
||||
synchronized(structureFeature)
|
||||
{
|
||||
this.a(structurefeature, iregistrycustom, structuremanager, ichunkaccess, definedstructuremanager, i, chunkcoordintpair, biomebase);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
this.a(structurefeature, iregistrycustom, structuremanager, ichunkaccess, definedstructuremanager, i, chunkcoordintpair, biomebase);
|
||||
}
|
||||
}
|
||||
|
||||
private void a(StructureFeature<?, ?> structurefeature, IRegistryCustom iregistrycustom, StructureManager structuremanager, IChunkAccess ichunkaccess, DefinedStructureManager definedstructuremanager, long i, ChunkCoordIntPair chunkcoordintpair, BiomeBase biomebase)
|
||||
{
|
||||
StructureStart<?> structurestart = structuremanager.a(SectionPosition.a((ChunkCoordIntPair) ichunkaccess.getPos(), (int) 0), structurefeature.d, (IStructureAccess) ichunkaccess);
|
||||
int j = structurestart != null ? structurestart.j() : 0;
|
||||
StructureSettingsFeature structuresettingsfeature = getSettings().a(structurefeature.d);
|
||||
if(structuresettingsfeature != null)
|
||||
{
|
||||
StructureStart<?> structurestart1 = structurefeature.a(iregistrycustom, this, this.b, definedstructuremanager, i, chunkcoordintpair, biomebase, j, structuresettingsfeature);
|
||||
structuremanager.a(SectionPosition.a((ChunkCoordIntPair) ichunkaccess.getPos(), (int) 0), structurefeature.d, structurestart1, (IStructureAccess) ichunkaccess);
|
||||
}
|
||||
}
|
||||
|
||||
public void storeStructures(GeneratorAccessSeed generatoraccessseed, StructureManager structuremanager, IChunkAccess ichunkaccess)
|
||||
{
|
||||
int i = ichunkaccess.getPos().x;
|
||||
int j = ichunkaccess.getPos().z;
|
||||
int k = i << 4;
|
||||
int l = j << 4;
|
||||
SectionPosition sectionposition = SectionPosition.a((ChunkCoordIntPair) ichunkaccess.getPos(), (int) 0);
|
||||
int i1 = i - 8;
|
||||
while(i1 <= i + 8)
|
||||
{
|
||||
int j1 = j - 8;
|
||||
while(j1 <= j + 8)
|
||||
{
|
||||
long k1 = ChunkCoordIntPair.pair((int) i1, (int) j1);
|
||||
for(StructureStart<?> structurestart : generatoraccessseed.getChunkAt(i1, j1).h().values())
|
||||
{
|
||||
try
|
||||
{
|
||||
if(structurestart == StructureStart.a || !structurestart.c().a(k, l, k + 15, l + 15))
|
||||
continue;
|
||||
structuremanager.a(sectionposition, structurestart.l(), k1, (IStructureAccess) ichunkaccess);
|
||||
PacketDebug.a((GeneratorAccessSeed) generatoraccessseed, (StructureStart<?>) structurestart);
|
||||
}
|
||||
catch(Exception exception)
|
||||
{
|
||||
CrashReport crashreport = CrashReport.a((Throwable) exception, (String) "Generating structure reference");
|
||||
CrashReportSystemDetails crashreportsystemdetails = crashreport.a("Structure");
|
||||
crashreportsystemdetails.a("Name", () -> structurestart.l().i());
|
||||
crashreportsystemdetails.a("Class", () -> structurestart.l().getClass().getCanonicalName());
|
||||
throw new ReportedException(crashreport);
|
||||
}
|
||||
}
|
||||
++j1;
|
||||
}
|
||||
++i1;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Provisioned getProvisioned()
|
||||
{
|
||||
return provisioned;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void clearRegeneratedLists()
|
||||
{
|
||||
getProvisioned().clearRegeneratedLists();
|
||||
}
|
||||
|
||||
@Override
|
||||
public TerrainProvider getProvider()
|
||||
{
|
||||
return getProvisioned().getProvider();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void regenerate(int x, int z)
|
||||
{
|
||||
getProvisioned().regenerate(x, z);
|
||||
}
|
||||
}
|
||||
@@ -1,302 +0,0 @@
|
||||
package com.volmit.iris.gen.nms.v16_2;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Modifier;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.Properties;
|
||||
|
||||
import org.apache.commons.lang.Validate;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.WorldCreator;
|
||||
import org.bukkit.World.Environment;
|
||||
import org.bukkit.craftbukkit.v1_16_R2.CraftServer;
|
||||
import org.bukkit.event.Event;
|
||||
import org.bukkit.event.world.WorldInitEvent;
|
||||
import org.bukkit.event.world.WorldLoadEvent;
|
||||
|
||||
import com.google.common.base.Preconditions;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
import com.mojang.serialization.DynamicOps;
|
||||
import com.mojang.serialization.Lifecycle;
|
||||
import com.volmit.iris.gen.nms.INMSCreator;
|
||||
import com.volmit.iris.gen.scaffold.IrisWorlds;
|
||||
import com.volmit.iris.gen.scaffold.Provisioned;
|
||||
import com.volmit.iris.util.O;
|
||||
import com.volmit.iris.util.V;
|
||||
|
||||
import io.papermc.lib.PaperLib;
|
||||
import net.minecraft.server.v1_16_R2.BiomeBase;
|
||||
import net.minecraft.server.v1_16_R2.BiomeManager;
|
||||
import net.minecraft.server.v1_16_R2.Convertable;
|
||||
import net.minecraft.server.v1_16_R2.DataConverterRegistry;
|
||||
import net.minecraft.server.v1_16_R2.DedicatedServer;
|
||||
import net.minecraft.server.v1_16_R2.DimensionManager;
|
||||
import net.minecraft.server.v1_16_R2.DynamicOpsNBT;
|
||||
import net.minecraft.server.v1_16_R2.EnumDifficulty;
|
||||
import net.minecraft.server.v1_16_R2.EnumGamemode;
|
||||
import net.minecraft.server.v1_16_R2.GameRules;
|
||||
import net.minecraft.server.v1_16_R2.GeneratorSettingBase;
|
||||
import net.minecraft.server.v1_16_R2.GeneratorSettings;
|
||||
import net.minecraft.server.v1_16_R2.IRegistry;
|
||||
import net.minecraft.server.v1_16_R2.IRegistryCustom.Dimension;
|
||||
import net.minecraft.server.v1_16_R2.IWorldDataServer;
|
||||
import net.minecraft.server.v1_16_R2.MinecraftKey;
|
||||
import net.minecraft.server.v1_16_R2.MinecraftServer;
|
||||
import net.minecraft.server.v1_16_R2.MobSpawner;
|
||||
import net.minecraft.server.v1_16_R2.MobSpawnerCat;
|
||||
import net.minecraft.server.v1_16_R2.MobSpawnerPatrol;
|
||||
import net.minecraft.server.v1_16_R2.MobSpawnerPhantom;
|
||||
import net.minecraft.server.v1_16_R2.MobSpawnerTrader;
|
||||
import net.minecraft.server.v1_16_R2.NBTBase;
|
||||
import net.minecraft.server.v1_16_R2.RegistryReadOps;
|
||||
import net.minecraft.server.v1_16_R2.ResourceKey;
|
||||
import net.minecraft.server.v1_16_R2.SaveData;
|
||||
import net.minecraft.server.v1_16_R2.VillageSiege;
|
||||
import net.minecraft.server.v1_16_R2.WorldChunkManager;
|
||||
import net.minecraft.server.v1_16_R2.WorldChunkManagerOverworld;
|
||||
import net.minecraft.server.v1_16_R2.WorldDataServer;
|
||||
import net.minecraft.server.v1_16_R2.WorldDimension;
|
||||
import net.minecraft.server.v1_16_R2.WorldServer;
|
||||
import net.minecraft.server.v1_16_R2.WorldSettings;
|
||||
|
||||
class NMSCreator16_2 implements INMSCreator
|
||||
{
|
||||
@SuppressWarnings({"unchecked", "rawtypes", "resource"})
|
||||
public World createWorld(WorldCreator creator, boolean loadSpawn)
|
||||
{
|
||||
if(!creator.environment().equals(Environment.NORMAL))
|
||||
{
|
||||
return creator.createWorld();
|
||||
}
|
||||
|
||||
Provisioned pro = (Provisioned) creator.generator();
|
||||
CraftServer server = ((CraftServer) Bukkit.getServer());
|
||||
Map<String, World> worlds = new V(server).get("worlds");
|
||||
DedicatedServer console = new V(server).get("console");
|
||||
Preconditions.checkState(!console.worldServer.isEmpty(), (Object) "Cannot create additional worlds on STARTUP");
|
||||
Validate.notNull((Object) creator, "Creator may not be null");
|
||||
final String name = creator.name();
|
||||
org.bukkit.generator.ChunkGenerator generator = creator.generator();
|
||||
final File folder = new File(server.getWorldContainer(), name);
|
||||
final World world = server.getWorld(name);
|
||||
|
||||
if(world != null)
|
||||
{
|
||||
return world;
|
||||
}
|
||||
|
||||
if(folder.exists() && !folder.isDirectory())
|
||||
{
|
||||
throw new IllegalArgumentException("File exists with the name '" + name + "' and isn't a folder");
|
||||
}
|
||||
|
||||
if(generator == null)
|
||||
{
|
||||
generator = server.getGenerator(name);
|
||||
}
|
||||
|
||||
ResourceKey<WorldDimension> actualDimension = null;
|
||||
switch(creator.environment())
|
||||
{
|
||||
case NORMAL:
|
||||
{
|
||||
actualDimension = (ResourceKey<WorldDimension>) WorldDimension.OVERWORLD;
|
||||
break;
|
||||
}
|
||||
case NETHER:
|
||||
{
|
||||
actualDimension = (ResourceKey<WorldDimension>) WorldDimension.THE_NETHER;
|
||||
break;
|
||||
}
|
||||
case THE_END:
|
||||
{
|
||||
actualDimension = (ResourceKey<WorldDimension>) WorldDimension.THE_END;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
throw new IllegalArgumentException("Illegal dimension");
|
||||
}
|
||||
}
|
||||
Convertable.ConversionSession worldSession;
|
||||
try
|
||||
{
|
||||
worldSession = Convertable.a(server.getWorldContainer().toPath()).c(name, (ResourceKey) actualDimension);
|
||||
}
|
||||
catch(IOException ex)
|
||||
{
|
||||
throw new RuntimeException(ex);
|
||||
}
|
||||
MinecraftServer.convertWorld(worldSession);
|
||||
final boolean hardcore = creator.hardcore();
|
||||
final RegistryReadOps<NBTBase> registryreadops = (RegistryReadOps<NBTBase>) RegistryReadOps.a((DynamicOps) DynamicOpsNBT.a, console.dataPackResources.h(), getConsoleDimension(console));
|
||||
WorldDataServer worlddata = (WorldDataServer) worldSession.a((DynamicOps) registryreadops, console.datapackconfiguration);
|
||||
if(worlddata == null)
|
||||
{
|
||||
final Properties properties = new Properties();
|
||||
properties.put("generator-settings", Objects.toString(creator.generatorSettings()));
|
||||
properties.put("level-seed", Objects.toString(creator.seed()));
|
||||
properties.put("generate-structures", Objects.toString(creator.generateStructures()));
|
||||
properties.put("level-type", Objects.toString(creator.type().getName()));
|
||||
final GeneratorSettings generatorsettings = GeneratorSettings.a(getConsoleDimension(console), properties);
|
||||
@SuppressWarnings("deprecation")
|
||||
final WorldSettings worldSettings = new WorldSettings(name, EnumGamemode.getById(server.getDefaultGameMode().getValue()), hardcore, EnumDifficulty.EASY, false, new GameRules(), console.datapackconfiguration);
|
||||
worlddata = new WorldDataServer(worldSettings, generatorsettings, Lifecycle.stable());
|
||||
}
|
||||
worlddata.checkName(name);
|
||||
worlddata.a(console.getServerModName(), console.getModded().isPresent());
|
||||
if(console.options.has("forceUpgrade"))
|
||||
{
|
||||
net.minecraft.server.v1_16_R2.Main.convertWorld(worldSession, DataConverterRegistry.a(), console.options.has("eraseCache"), () -> true, (ImmutableSet) worlddata.getGeneratorSettings().d().d().stream().map(entry -> ResourceKey.a(IRegistry.K, entry.getKey().a())).collect(ImmutableSet.toImmutableSet()));
|
||||
}
|
||||
final long j = BiomeManager.a(creator.seed());
|
||||
final List<MobSpawner> list = (List<MobSpawner>) ImmutableList.of((MobSpawner) new MobSpawnerPhantom(), (MobSpawner) new MobSpawnerPatrol(), (MobSpawner) new MobSpawnerCat(), (MobSpawner) new VillageSiege(), (MobSpawner) new MobSpawnerTrader((IWorldDataServer) worlddata));
|
||||
DimensionManager dimensionmanager;
|
||||
net.minecraft.server.v1_16_R2.ChunkGenerator chunkgenerator;
|
||||
long ll = creator.seed();
|
||||
dimensionmanager = (DimensionManager) getConsoleDimension(console).a().d(DimensionManager.OVERWORLD);
|
||||
O<WorldServer> ws = new O<WorldServer>();
|
||||
chunkgenerator = PaperLib.isPaper() ? new NMSChunkGenerator16_2_PAPER(pro, ws, (WorldChunkManager) new WorldChunkManagerOverworld(ll, false, false, (IRegistry<BiomeBase>) getConsoleDimension(console).b(IRegistry.ay)), ll, () -> (GeneratorSettingBase) getConsoleDimension(console).b(IRegistry.ar).d(GeneratorSettingBase.c)) : new NMSChunkGenerator16_2_SPIGOT(pro, ws, (WorldChunkManager) new WorldChunkManagerOverworld(ll, false, false, (IRegistry<BiomeBase>) getConsoleDimension(console).b(IRegistry.ay)), ll, () -> (GeneratorSettingBase) getConsoleDimension(console).b(IRegistry.ar).d(GeneratorSettingBase.c));
|
||||
final ResourceKey<net.minecraft.server.v1_16_R2.World> worldKey = (ResourceKey<net.minecraft.server.v1_16_R2.World>) ResourceKey.a(IRegistry.L, new MinecraftKey(name.toLowerCase(Locale.ENGLISH)));
|
||||
//@builder
|
||||
final WorldServer internal = new WorldServer((MinecraftServer) console,
|
||||
console.executorService, worldSession,
|
||||
(IWorldDataServer) worlddata,
|
||||
(ResourceKey) worldKey,
|
||||
dimensionmanager,
|
||||
server.getServer().worldLoadListenerFactory.create(11),
|
||||
chunkgenerator,
|
||||
worlddata.getGeneratorSettings().isDebugWorld(),
|
||||
j,
|
||||
(List) ((creator.environment() == World.Environment.NORMAL) ? list : ImmutableList.of()),
|
||||
true,
|
||||
creator.environment(),
|
||||
server.getGenerator(name));
|
||||
//@done
|
||||
IrisWorlds.register(internal.getWorld(), pro);
|
||||
ws.set(internal);
|
||||
if(!worlds.containsKey(name.toLowerCase(Locale.ENGLISH)))
|
||||
{
|
||||
try
|
||||
{
|
||||
internal.close();
|
||||
}
|
||||
|
||||
catch(IOException e)
|
||||
{
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
console.initWorld(internal, (IWorldDataServer) worlddata, (SaveData) worlddata, worlddata.getGeneratorSettings());
|
||||
internal.setSpawnFlags(true, true);
|
||||
console.worldServer.put(internal.getDimensionKey(), internal);
|
||||
server.getPluginManager().callEvent((Event) new WorldInitEvent((World) internal.getWorld()));
|
||||
|
||||
if(loadSpawn)
|
||||
{
|
||||
server.getServer().loadSpawn(internal.getChunkProvider().playerChunkMap.worldLoadListener, internal);
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
MinecraftServer.LOGGER.info("Preparing start region for dimens... Oh wait, We don't do that here anymore.");
|
||||
}
|
||||
|
||||
server.getPluginManager().callEvent((Event) new WorldLoadEvent((World) internal.getWorld()));
|
||||
return (World) internal.getWorld();
|
||||
}
|
||||
|
||||
private Dimension getConsoleDimension(DedicatedServer console)
|
||||
{
|
||||
Dimension dim = null;
|
||||
|
||||
try
|
||||
{
|
||||
dim = new V((MinecraftServer) console, true).get("customRegistry");
|
||||
|
||||
if(dim != null)
|
||||
{
|
||||
return dim;
|
||||
}
|
||||
}
|
||||
|
||||
catch(Throwable e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
dim = new V((MinecraftServer) console, true).get("f");
|
||||
|
||||
if(dim != null)
|
||||
{
|
||||
return dim;
|
||||
}
|
||||
}
|
||||
|
||||
catch(Throwable e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
for(Field i : MinecraftServer.class.getDeclaredFields())
|
||||
{
|
||||
if(i.getType().equals(dim.getClass()))
|
||||
{
|
||||
i.setAccessible(true);
|
||||
|
||||
if(Modifier.isStatic(i.getModifiers()))
|
||||
{
|
||||
try
|
||||
{
|
||||
return (Dimension) i.get(null);
|
||||
}
|
||||
|
||||
catch(Throwable e)
|
||||
{
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
try
|
||||
{
|
||||
return (Dimension) i.get((MinecraftServer) console);
|
||||
}
|
||||
|
||||
catch(Throwable e)
|
||||
{
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(dim == null)
|
||||
{
|
||||
try
|
||||
{
|
||||
throw new RuntimeException("Cannot find dimension field!");
|
||||
}
|
||||
|
||||
catch(Throwable e)
|
||||
{
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
return dim;
|
||||
}
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
package com.volmit.iris.gen.nms.v16_3;
|
||||
|
||||
import com.volmit.iris.gen.atomics.AtomicCache;
|
||||
import com.volmit.iris.gen.nms.INMSBinding;
|
||||
import com.volmit.iris.gen.nms.INMSCreator;
|
||||
|
||||
public class NMSBinding16_3 implements INMSBinding
|
||||
{
|
||||
private final AtomicCache<INMSCreator> creator = new AtomicCache<>();
|
||||
|
||||
@Override
|
||||
public INMSCreator getCreator()
|
||||
{
|
||||
return creator.aquire(NMSCreator16_3::new);
|
||||
}
|
||||
}
|
||||
@@ -1,688 +0,0 @@
|
||||
package com.volmit.iris.gen.nms.v16_3;
|
||||
|
||||
import com.mojang.serialization.Codec;
|
||||
import com.volmit.iris.gen.IrisTerrainProvider;
|
||||
import com.volmit.iris.gen.provisions.ProvisionBukkit;
|
||||
import com.volmit.iris.gen.scaffold.GeneratedChunk;
|
||||
import com.volmit.iris.gen.scaffold.Provisioned;
|
||||
import com.volmit.iris.gen.scaffold.ProvisionedHolder;
|
||||
import com.volmit.iris.gen.scaffold.TerrainProvider;
|
||||
import com.volmit.iris.util.O;
|
||||
import com.volmit.iris.util.V;
|
||||
import it.unimi.dsi.fastutil.objects.ObjectArrayList;
|
||||
import it.unimi.dsi.fastutil.objects.ObjectList;
|
||||
import net.minecraft.server.v1_16_R3.*;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.Biome;
|
||||
import org.bukkit.block.data.BlockData;
|
||||
import org.bukkit.craftbukkit.v1_16_R3.block.CraftBlock;
|
||||
import org.bukkit.craftbukkit.v1_16_R3.block.data.CraftBlockData;
|
||||
import org.bukkit.craftbukkit.v1_16_R3.util.CraftMagicNumbers;
|
||||
import org.bukkit.generator.ChunkGenerator.BiomeGrid;
|
||||
import org.bukkit.generator.ChunkGenerator.ChunkData;
|
||||
import org.bukkit.material.MaterialData;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
public class NMSChunkGenerator16_3_PAPER extends ChunkGenerator implements ProvisionedHolder
|
||||
{
|
||||
private static final IBlockData k = Blocks.AIR.getBlockData();
|
||||
private final Provisioned provisioned;
|
||||
private final int maxHeight;
|
||||
private final int xzSize;
|
||||
protected final IBlockData f;
|
||||
protected final IBlockData g;
|
||||
private final long w;
|
||||
protected final Supplier<GeneratorSettingBase> h;
|
||||
private final O<WorldServer> ws;
|
||||
private BlockColumn BC;
|
||||
|
||||
public NMSChunkGenerator16_3_PAPER(Provisioned p, O<WorldServer> ws, WorldChunkManager worldchunkmanager, long i, Supplier<GeneratorSettingBase> supplier)
|
||||
{
|
||||
this(p, ws, worldchunkmanager, worldchunkmanager, i, supplier);
|
||||
}
|
||||
|
||||
private NMSChunkGenerator16_3_PAPER(Provisioned p, O<WorldServer> ws, WorldChunkManager worldchunkmanager, WorldChunkManager worldchunkmanager1, long i, Supplier<GeneratorSettingBase> supplier)
|
||||
{
|
||||
super(worldchunkmanager, worldchunkmanager1, supplier.get().a(), i);
|
||||
this.provisioned = p;
|
||||
this.ws = ws;
|
||||
this.w = i;
|
||||
GeneratorSettingBase generatorsettingbase = supplier.get();
|
||||
|
||||
this.h = supplier;
|
||||
NoiseSettings noisesettings = generatorsettingbase.b();
|
||||
|
||||
this.maxHeight = noisesettings.f() * 4;
|
||||
this.f = generatorsettingbase.c();
|
||||
this.g = generatorsettingbase.d();
|
||||
this.xzSize = noisesettings.a() / this.maxHeight;
|
||||
BC = new BlockColumn(new IBlockData[this.xzSize * this.maxHeight]);
|
||||
}
|
||||
|
||||
public int getSpawnHeight()
|
||||
{
|
||||
return getSeaLevel() + 8;
|
||||
}
|
||||
|
||||
public WorldChunkManager getWorldChunkManager()
|
||||
{
|
||||
return this.c;
|
||||
}
|
||||
|
||||
public int getGenerationDepth()
|
||||
{
|
||||
return 256;
|
||||
}
|
||||
|
||||
public void doCarving(long i, BiomeManager biomemanager, IChunkAccess ichunkaccess, WorldGenStage.Features worldgenstage_features)
|
||||
{
|
||||
if(((IrisTerrainProvider) provisioned.getProvider()).getDimension().isVanillaCaves())
|
||||
{
|
||||
super.doCarving(i, biomemanager, ichunkaccess, worldgenstage_features);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Codec<? extends ChunkGenerator> a()
|
||||
{
|
||||
return ChunkGeneratorAbstract.d;
|
||||
}
|
||||
|
||||
public boolean a(long i, ResourceKey<GeneratorSettingBase> resourcekey)
|
||||
{
|
||||
return this.w == i && this.h.get().a(resourcekey);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getBaseHeight(int i, int j, HeightMap.Type heightmap_type)
|
||||
{
|
||||
return 63;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IBlockAccess a(int x, int z)
|
||||
{
|
||||
return BC;
|
||||
}
|
||||
|
||||
protected IBlockData a(double d0, int i)
|
||||
{
|
||||
IBlockData iblockdata;
|
||||
|
||||
if(d0 > 0.0D)
|
||||
{
|
||||
iblockdata = this.f;
|
||||
}
|
||||
else if(i < this.getSeaLevel())
|
||||
{
|
||||
iblockdata = this.g;
|
||||
}
|
||||
else
|
||||
{
|
||||
iblockdata = NMSChunkGenerator16_3_PAPER.k;
|
||||
}
|
||||
|
||||
return iblockdata;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void buildBase(RegionLimitedWorldAccess regionlimitedworldaccess, IChunkAccess ichunkaccess)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void buildNoise(GeneratorAccess generatoraccess, StructureManager structuremanager, IChunkAccess ichunkaccess)
|
||||
{
|
||||
ObjectList<StructurePiece> objectlist = new ObjectArrayList<StructurePiece>(10);
|
||||
ObjectList<WorldGenFeatureDefinedStructureJigsawJunction> objectlist1 = new ObjectArrayList<WorldGenFeatureDefinedStructureJigsawJunction>(32);
|
||||
ChunkCoordIntPair chunkcoordintpair = ichunkaccess.getPos();
|
||||
int i = chunkcoordintpair.x;
|
||||
int j = chunkcoordintpair.z;
|
||||
|
||||
if(((IrisTerrainProvider) provisioned.getProvider()).shouldGenerateVanillaStructures())
|
||||
{
|
||||
int k = i << 4;
|
||||
int l = j << 4;
|
||||
Iterator<?> iterator = StructureGenerator.t.iterator();
|
||||
|
||||
while(iterator.hasNext())
|
||||
{
|
||||
StructureGenerator<?> structuregenerator = (StructureGenerator<?>) iterator.next();
|
||||
|
||||
structuremanager.a(SectionPosition.a(chunkcoordintpair, 0), structuregenerator).forEach((structurestart) ->
|
||||
{
|
||||
Iterator<?> iterator1 = structurestart.d().iterator();
|
||||
|
||||
while(iterator1.hasNext())
|
||||
{
|
||||
StructurePiece structurepiece = (StructurePiece) iterator1.next();
|
||||
|
||||
if(structurepiece.a(chunkcoordintpair, 12))
|
||||
{
|
||||
if(structurepiece instanceof WorldGenFeaturePillagerOutpostPoolPiece)
|
||||
{
|
||||
WorldGenFeaturePillagerOutpostPoolPiece worldgenfeaturepillageroutpostpoolpiece = (WorldGenFeaturePillagerOutpostPoolPiece) structurepiece;
|
||||
WorldGenFeatureDefinedStructurePoolTemplate.Matching worldgenfeaturedefinedstructurepooltemplate_matching = worldgenfeaturepillageroutpostpoolpiece.b().e();
|
||||
|
||||
if(worldgenfeaturedefinedstructurepooltemplate_matching == WorldGenFeatureDefinedStructurePoolTemplate.Matching.RIGID)
|
||||
{
|
||||
objectlist.add(worldgenfeaturepillageroutpostpoolpiece);
|
||||
}
|
||||
|
||||
Iterator<?> iterator2 = worldgenfeaturepillageroutpostpoolpiece.e().iterator();
|
||||
|
||||
while(iterator2.hasNext())
|
||||
{
|
||||
WorldGenFeatureDefinedStructureJigsawJunction worldgenfeaturedefinedstructurejigsawjunction = (WorldGenFeatureDefinedStructureJigsawJunction) iterator2.next();
|
||||
int i1 = worldgenfeaturedefinedstructurejigsawjunction.a();
|
||||
int j1 = worldgenfeaturedefinedstructurejigsawjunction.c();
|
||||
|
||||
if(i1 > k - 12 && j1 > l - 12 && i1 < k + 15 + 12 && j1 < l + 15 + 12)
|
||||
{
|
||||
objectlist1.add(worldgenfeaturedefinedstructurejigsawjunction);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
objectlist.add(structurepiece);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
ProtoChunk protochunk = (ProtoChunk) ichunkaccess;
|
||||
HeightMap heightmap = protochunk.a(HeightMap.Type.OCEAN_FLOOR_WG);
|
||||
HeightMap heightmap1 = protochunk.a(HeightMap.Type.WORLD_SURFACE_WG);
|
||||
GeneratedChunk gc = ((ProvisionBukkit) provisioned).generateNMSChunkData(ws.get().getWorld(), new Random(i + j), i, j, new ChunkData()
|
||||
{
|
||||
public int getMaxHeight()
|
||||
{
|
||||
return 256;
|
||||
}
|
||||
|
||||
public void setBlock(int x, int y, int z, Material material)
|
||||
{
|
||||
this.setBlock(x, y, z, material.createBlockData());
|
||||
}
|
||||
|
||||
public void setBlock(int x, int y, int z, MaterialData material)
|
||||
{
|
||||
this.setBlock(x, y, z, CraftMagicNumbers.getBlock((MaterialData) material));
|
||||
}
|
||||
|
||||
public void setBlock(int x, int y, int z, BlockData blockData)
|
||||
{
|
||||
this.setBlock(x, y, z, ((CraftBlockData) blockData).getState());
|
||||
}
|
||||
|
||||
public void setRegion(int xMin, int yMin, int zMin, int xMax, int yMax, int zMax, Material material)
|
||||
{
|
||||
this.setRegion(xMin, yMin, zMin, xMax, yMax, zMax, material.createBlockData());
|
||||
}
|
||||
|
||||
public void setRegion(int xMin, int yMin, int zMin, int xMax, int yMax, int zMax, MaterialData material)
|
||||
{
|
||||
this.setRegion(xMin, yMin, zMin, xMax, yMax, zMax, CraftMagicNumbers.getBlock((MaterialData) material));
|
||||
}
|
||||
|
||||
public void setRegion(int xMin, int yMin, int zMin, int xMax, int yMax, int zMax, BlockData blockData)
|
||||
{
|
||||
this.setRegion(xMin, yMin, zMin, xMax, yMax, zMax, ((CraftBlockData) blockData).getState());
|
||||
}
|
||||
|
||||
public Material getType(int x, int y, int z)
|
||||
{
|
||||
return CraftMagicNumbers.getMaterial((Block) this.getTypeId(x, y, z).getBlock());
|
||||
}
|
||||
|
||||
public MaterialData getTypeAndData(int x, int y, int z)
|
||||
{
|
||||
return CraftMagicNumbers.getMaterial((IBlockData) this.getTypeId(x, y, z));
|
||||
}
|
||||
|
||||
public BlockData getBlockData(int x, int y, int z)
|
||||
{
|
||||
return CraftBlockData.fromData((IBlockData) this.getTypeId(x, y, z));
|
||||
}
|
||||
|
||||
public void setRegion(int xMin, int yMin, int zMin, int xMax, int yMax, int zMax, IBlockData type)
|
||||
{
|
||||
if(xMin > 15 || yMin >= getMaxHeight() || zMin > 15)
|
||||
{
|
||||
return;
|
||||
}
|
||||
if(xMin < 0)
|
||||
{
|
||||
xMin = 0;
|
||||
}
|
||||
if(yMin < 0)
|
||||
{
|
||||
yMin = 0;
|
||||
}
|
||||
if(zMin < 0)
|
||||
{
|
||||
zMin = 0;
|
||||
}
|
||||
if(xMax > 16)
|
||||
{
|
||||
xMax = 16;
|
||||
}
|
||||
if(yMax > getMaxHeight())
|
||||
{
|
||||
yMax = getMaxHeight();
|
||||
}
|
||||
if(zMax > 16)
|
||||
{
|
||||
zMax = 16;
|
||||
}
|
||||
if(xMin >= xMax || yMin >= yMax || zMin >= zMax)
|
||||
{
|
||||
return;
|
||||
}
|
||||
int y = yMin;
|
||||
while(y < yMax)
|
||||
{
|
||||
int x = xMin;
|
||||
while(x < xMax)
|
||||
{
|
||||
int z = zMin;
|
||||
while(z < zMax)
|
||||
{
|
||||
protochunk.setType(new BlockPosition(x, y, z), type, false);
|
||||
++z;
|
||||
}
|
||||
++x;
|
||||
}
|
||||
++y;
|
||||
}
|
||||
}
|
||||
|
||||
public IBlockData getTypeId(int x, int y, int z)
|
||||
{
|
||||
if(x != (x & 15) || y < 0 || y >= getMaxHeight() || z != (z & 15))
|
||||
{
|
||||
return Blocks.AIR.getBlockData();
|
||||
}
|
||||
return protochunk.getType(new BlockPosition(x, y, z));
|
||||
}
|
||||
|
||||
public byte getData(int x, int y, int z)
|
||||
{
|
||||
return CraftMagicNumbers.toLegacyData((IBlockData) this.getTypeId(x, y, z));
|
||||
}
|
||||
|
||||
private void setBlock(int x, int y, int z, IBlockData type)
|
||||
{
|
||||
if(x != (x & 15) || y < 0 || y >= getMaxHeight() || z != (z & 15))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
protochunk.setType(new BlockPosition(x, y, z), type, false);
|
||||
|
||||
if(type.getBlock().isTileEntity())
|
||||
{
|
||||
// if (this.tiles == null) {
|
||||
// this.tiles = new HashSet<BlockPosition>();
|
||||
// }
|
||||
// this.tiles.add(new BlockPosition(x, y, z));
|
||||
}
|
||||
}
|
||||
}, new BiomeGrid()
|
||||
{
|
||||
@Override
|
||||
public void setBiome(int x, int y, int z, Biome bio)
|
||||
{
|
||||
protochunk.getBiomeIndex().setBiome(x, y, z, CraftBlock.biomeToBiomeBase(ws.get().r().b(IRegistry.ay), bio));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBiome(int x, int z, Biome bio)
|
||||
{
|
||||
protochunk.getBiomeIndex().setBiome(x, 0, z, CraftBlock.biomeToBiomeBase(ws.get().r().b(IRegistry.ay), bio));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Biome getBiome(int x, int y, int z)
|
||||
{
|
||||
return CraftBlock.biomeBaseToBiome(ws.get().r().b(IRegistry.ay), protochunk.getBiomeIndex().getBiome(x, y, z));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Biome getBiome(int x, int z)
|
||||
{
|
||||
return CraftBlock.biomeBaseToBiome(ws.get().r().b(IRegistry.ay), protochunk.getBiomeIndex().getBiome(x, 0, z));
|
||||
}
|
||||
});
|
||||
|
||||
for(int xx = 0; xx < 16; xx++)
|
||||
{
|
||||
for(int zz = 0; zz < 16; zz++)
|
||||
{
|
||||
try
|
||||
{
|
||||
int y = gc.getHeight().getHeight(xx, zz);
|
||||
if(y < getSeaLevel())
|
||||
{
|
||||
heightmap.a(xx, y, zz, Blocks.STONE.getBlockData());
|
||||
}
|
||||
heightmap1.a(xx, Math.max(y, getSeaLevel()), zz, Blocks.STONE.getBlockData());
|
||||
}
|
||||
|
||||
catch(Throwable e)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void addDecorations(RegionLimitedWorldAccess regionlimitedworldaccess, StructureManager structuremanager)
|
||||
{
|
||||
if(((IrisTerrainProvider) provisioned.getProvider()).shouldGenerateVanillaStructures())
|
||||
{
|
||||
int i = regionlimitedworldaccess.a();
|
||||
int j = regionlimitedworldaccess.b();
|
||||
int k = i * 16;
|
||||
int l = j * 16;
|
||||
BlockPosition blockposition = new BlockPosition(k, 0, l);
|
||||
BiomeBase biomebase = this.b.getBiome((i << 2) + 2, 2, (j << 2) + 2);
|
||||
SeededRandom seededrandom = new SeededRandom();
|
||||
long i1 = seededrandom.a(regionlimitedworldaccess.getSeed(), k, l);
|
||||
try
|
||||
{
|
||||
a(biomebase, structuremanager, this, regionlimitedworldaccess, i1, seededrandom, blockposition);
|
||||
}
|
||||
catch(Exception exception)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void a(BiomeBase bbase, StructureManager var0, ChunkGenerator var1, RegionLimitedWorldAccess var2, long var3, SeededRandom var5, BlockPosition var6)
|
||||
{
|
||||
if(!((IrisTerrainProvider) provisioned.getProvider()).shouldGenerateVanillaStructures())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
int stages = WorldGenStage.Decoration.values().length;
|
||||
for(int stage = 0; stage < stages; ++stage)
|
||||
{
|
||||
WorldGenStage.Decoration st = WorldGenStage.Decoration.values()[stage];
|
||||
|
||||
if(st.equals(WorldGenStage.Decoration.LAKES))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(st.equals(WorldGenStage.Decoration.LOCAL_MODIFICATIONS))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(st.equals(WorldGenStage.Decoration.RAW_GENERATION))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(st.equals(WorldGenStage.Decoration.TOP_LAYER_MODIFICATION))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(st.equals(WorldGenStage.Decoration.UNDERGROUND_DECORATION))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(st.equals(WorldGenStage.Decoration.UNDERGROUND_ORES))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(st.equals(WorldGenStage.Decoration.VEGETAL_DECORATION))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
StructureGenerator<?> var13;
|
||||
int var10 = 0;
|
||||
if(var0.a())
|
||||
{
|
||||
@SuppressWarnings("unchecked")
|
||||
List<StructureGenerator<?>> structureGenerators = ((Map<Integer, List<StructureGenerator<?>>>) new V(bbase).get("g")).getOrDefault(stage, Collections.emptyList());
|
||||
Iterator<StructureGenerator<?>> iterator = structureGenerators.iterator();
|
||||
while(iterator.hasNext())
|
||||
{
|
||||
var13 = (StructureGenerator<?>) iterator.next();
|
||||
|
||||
if(var13.equals(StructureGenerator.VILLAGE))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(var13.equals(StructureGenerator.JUNGLE_PYRAMID))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(var13.equals(StructureGenerator.IGLOO))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(var13.equals(StructureGenerator.MINESHAFT))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(var13.equals(StructureGenerator.NETHER_FOSSIL))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(var13.equals(StructureGenerator.SHIPWRECK))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(var13.equals(StructureGenerator.SHIPWRECK))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(var13.equals(StructureGenerator.MONUMENT))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(var13.equals(StructureGenerator.OCEAN_RUIN))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(var13.equals(StructureGenerator.BASTION_REMNANT))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var5.b(var3, var10, stage);
|
||||
int var14 = var6.getX() >> 4;
|
||||
int var15 = var6.getZ() >> 4;
|
||||
int var16 = var14 << 4;
|
||||
int var17 = var15 << 4;
|
||||
|
||||
try
|
||||
{
|
||||
var0.a(SectionPosition.a((BlockPosition) var6), var13).forEach(var8 -> var8.a((GeneratorAccessSeed) var2, var0, var1, (Random) var5, new StructureBoundingBox(var16, var17, var16 + 15, var17 + 15), new ChunkCoordIntPair(var14, var15)));
|
||||
}
|
||||
|
||||
catch(Exception var18)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
++var10;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSeaLevel()
|
||||
{
|
||||
return ((IrisTerrainProvider) provisioned.getProvider()).getFluidHeight();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<BiomeSettingsMobs.c> getMobsFor(BiomeBase biomebase, StructureManager structuremanager, EnumCreatureType enumcreaturetype, BlockPosition blockposition)
|
||||
{
|
||||
if(structuremanager.a(blockposition, true, StructureGenerator.SWAMP_HUT).e())
|
||||
{
|
||||
if(enumcreaturetype == EnumCreatureType.MONSTER)
|
||||
{
|
||||
return StructureGenerator.SWAMP_HUT.c();
|
||||
}
|
||||
|
||||
if(enumcreaturetype == EnumCreatureType.CREATURE)
|
||||
{
|
||||
return StructureGenerator.SWAMP_HUT.j();
|
||||
}
|
||||
}
|
||||
|
||||
if(enumcreaturetype == EnumCreatureType.MONSTER)
|
||||
{
|
||||
if(structuremanager.a(blockposition, false, StructureGenerator.PILLAGER_OUTPOST).e())
|
||||
{
|
||||
return StructureGenerator.PILLAGER_OUTPOST.c();
|
||||
}
|
||||
|
||||
if(structuremanager.a(blockposition, false, StructureGenerator.MONUMENT).e())
|
||||
{
|
||||
return StructureGenerator.MONUMENT.c();
|
||||
}
|
||||
|
||||
if(structuremanager.a(blockposition, true, StructureGenerator.FORTRESS).e())
|
||||
{
|
||||
return StructureGenerator.FORTRESS.c();
|
||||
}
|
||||
}
|
||||
|
||||
return super.getMobsFor(biomebase, structuremanager, enumcreaturetype, blockposition);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addMobs(RegionLimitedWorldAccess regionlimitedworldaccess)
|
||||
{
|
||||
int i = regionlimitedworldaccess.a();
|
||||
int j = regionlimitedworldaccess.b();
|
||||
BiomeBase biomebase = regionlimitedworldaccess.getBiome((new ChunkCoordIntPair(i, j)).l());
|
||||
SeededRandom seededrandom = new SeededRandom();
|
||||
seededrandom.a(regionlimitedworldaccess.getSeed(), i << 4, j << 4);
|
||||
SpawnerCreature.a(regionlimitedworldaccess, biomebase, i, j, seededrandom);
|
||||
}
|
||||
|
||||
public void createStructures(IRegistryCustom iregistrycustom, StructureManager structuremanager, IChunkAccess ichunkaccess, DefinedStructureManager definedstructuremanager, long i)
|
||||
{
|
||||
ChunkCoordIntPair chunkcoordintpair = ichunkaccess.getPos();
|
||||
BiomeBase biomebase = this.b.getBiome((chunkcoordintpair.x << 2) + 2, 0, (chunkcoordintpair.z << 2) + 2);
|
||||
this.a(StructureFeatures.k, iregistrycustom, structuremanager, ichunkaccess, definedstructuremanager, i, chunkcoordintpair, biomebase);
|
||||
for(Supplier<StructureFeature<?, ?>> supplier : biomebase.e().a())
|
||||
{
|
||||
StructureFeature<?, ?> structurefeature = (StructureFeature<?, ?>) supplier.get();
|
||||
if(StructureFeature.c == StructureGenerator.STRONGHOLD)
|
||||
{
|
||||
StructureFeature<?, ?> structureFeature = structurefeature;
|
||||
synchronized(structureFeature)
|
||||
{
|
||||
this.a(structurefeature, iregistrycustom, structuremanager, ichunkaccess, definedstructuremanager, i, chunkcoordintpair, biomebase);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
this.a(structurefeature, iregistrycustom, structuremanager, ichunkaccess, definedstructuremanager, i, chunkcoordintpair, biomebase);
|
||||
}
|
||||
}
|
||||
|
||||
private void a(StructureFeature<?, ?> structurefeature, IRegistryCustom iregistrycustom, StructureManager structuremanager, IChunkAccess ichunkaccess, DefinedStructureManager definedstructuremanager, long i, ChunkCoordIntPair chunkcoordintpair, BiomeBase biomebase)
|
||||
{
|
||||
StructureStart<?> structurestart = structuremanager.a(SectionPosition.a((ChunkCoordIntPair) ichunkaccess.getPos(), (int) 0), structurefeature.d, (IStructureAccess) ichunkaccess);
|
||||
int j = structurestart != null ? structurestart.j() : 0;
|
||||
StructureSettingsFeature structuresettingsfeature = getSettings().a(structurefeature.d);
|
||||
if(structuresettingsfeature != null)
|
||||
{
|
||||
StructureStart<?> structurestart1 = structurefeature.a(iregistrycustom, this, this.b, definedstructuremanager, i, chunkcoordintpair, biomebase, j, structuresettingsfeature);
|
||||
structuremanager.a(SectionPosition.a((ChunkCoordIntPair) ichunkaccess.getPos(), (int) 0), structurefeature.d, structurestart1, (IStructureAccess) ichunkaccess);
|
||||
}
|
||||
}
|
||||
|
||||
public void storeStructures(GeneratorAccessSeed generatoraccessseed, StructureManager structuremanager, IChunkAccess ichunkaccess)
|
||||
{
|
||||
int i = ichunkaccess.getPos().x;
|
||||
int j = ichunkaccess.getPos().z;
|
||||
int k = i << 4;
|
||||
int l = j << 4;
|
||||
SectionPosition sectionposition = SectionPosition.a((ChunkCoordIntPair) ichunkaccess.getPos(), (int) 0);
|
||||
int i1 = i - 8;
|
||||
while(i1 <= i + 8)
|
||||
{
|
||||
int j1 = j - 8;
|
||||
while(j1 <= j + 8)
|
||||
{
|
||||
long k1 = ChunkCoordIntPair.pair((int) i1, (int) j1);
|
||||
for(StructureStart<?> structurestart : generatoraccessseed.getChunkAt(i1, j1).h().values())
|
||||
{
|
||||
try
|
||||
{
|
||||
if(structurestart == StructureStart.a || !structurestart.c().a(k, l, k + 15, l + 15))
|
||||
continue;
|
||||
structuremanager.a(sectionposition, structurestart.l(), k1, (IStructureAccess) ichunkaccess);
|
||||
PacketDebug.a((GeneratorAccessSeed) generatoraccessseed, (StructureStart<?>) structurestart);
|
||||
}
|
||||
catch(Exception exception)
|
||||
{
|
||||
CrashReport crashreport = CrashReport.a((Throwable) exception, (String) "Generating structure reference");
|
||||
CrashReportSystemDetails crashreportsystemdetails = crashreport.a("Structure");
|
||||
crashreportsystemdetails.a("Name", () -> structurestart.l().i());
|
||||
crashreportsystemdetails.a("Class", () -> structurestart.l().getClass().getCanonicalName());
|
||||
throw new ReportedException(crashreport);
|
||||
}
|
||||
}
|
||||
++j1;
|
||||
}
|
||||
++i1;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Provisioned getProvisioned()
|
||||
{
|
||||
return provisioned;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void clearRegeneratedLists()
|
||||
{
|
||||
getProvisioned().clearRegeneratedLists();
|
||||
}
|
||||
|
||||
@Override
|
||||
public TerrainProvider getProvider()
|
||||
{
|
||||
return getProvisioned().getProvider();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void regenerate(int x, int z)
|
||||
{
|
||||
getProvisioned().regenerate(x, z);
|
||||
}
|
||||
}
|
||||
@@ -1,680 +0,0 @@
|
||||
package com.volmit.iris.gen.nms.v16_3;
|
||||
|
||||
import com.mojang.serialization.Codec;
|
||||
import com.volmit.iris.gen.IrisTerrainProvider;
|
||||
import com.volmit.iris.gen.provisions.ProvisionBukkit;
|
||||
import com.volmit.iris.gen.scaffold.GeneratedChunk;
|
||||
import com.volmit.iris.gen.scaffold.Provisioned;
|
||||
import com.volmit.iris.gen.scaffold.ProvisionedHolder;
|
||||
import com.volmit.iris.gen.scaffold.TerrainProvider;
|
||||
import com.volmit.iris.util.O;
|
||||
import com.volmit.iris.util.V;
|
||||
import net.minecraft.server.v1_16_R3.*;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.Biome;
|
||||
import org.bukkit.block.data.BlockData;
|
||||
import org.bukkit.craftbukkit.libs.it.unimi.dsi.fastutil.objects.ObjectArrayList;
|
||||
import org.bukkit.craftbukkit.libs.it.unimi.dsi.fastutil.objects.ObjectList;
|
||||
import org.bukkit.craftbukkit.v1_16_R3.block.CraftBlock;
|
||||
import org.bukkit.craftbukkit.v1_16_R3.block.data.CraftBlockData;
|
||||
import org.bukkit.craftbukkit.v1_16_R3.util.CraftMagicNumbers;
|
||||
import org.bukkit.generator.ChunkGenerator.BiomeGrid;
|
||||
import org.bukkit.generator.ChunkGenerator.ChunkData;
|
||||
import org.bukkit.material.MaterialData;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
public class NMSChunkGenerator16_3_SPIGOT extends ChunkGenerator implements ProvisionedHolder
|
||||
{
|
||||
private static final IBlockData k = Blocks.AIR.getBlockData();
|
||||
private final Provisioned provisioned;
|
||||
private final int maxHeight;
|
||||
private final int xzSize;
|
||||
protected final IBlockData f;
|
||||
protected final IBlockData g;
|
||||
private final long w;
|
||||
protected final Supplier<GeneratorSettingBase> h;
|
||||
private final O<WorldServer> ws;
|
||||
private BlockColumn BC;
|
||||
|
||||
public NMSChunkGenerator16_3_SPIGOT(Provisioned p, O<WorldServer> ws, WorldChunkManager worldchunkmanager, long i, Supplier<GeneratorSettingBase> supplier)
|
||||
{
|
||||
this(p, ws, worldchunkmanager, worldchunkmanager, i, supplier);
|
||||
}
|
||||
|
||||
private NMSChunkGenerator16_3_SPIGOT(Provisioned p, O<WorldServer> ws, WorldChunkManager worldchunkmanager, WorldChunkManager worldchunkmanager1, long i, Supplier<GeneratorSettingBase> supplier)
|
||||
{
|
||||
super(worldchunkmanager, worldchunkmanager1, supplier.get().a(), i);
|
||||
this.provisioned = p;
|
||||
this.ws = ws;
|
||||
this.w = i;
|
||||
GeneratorSettingBase generatorsettingbase = supplier.get();
|
||||
|
||||
this.h = supplier;
|
||||
NoiseSettings noisesettings = generatorsettingbase.b();
|
||||
|
||||
this.maxHeight = noisesettings.f() * 4;
|
||||
this.f = generatorsettingbase.c();
|
||||
this.g = generatorsettingbase.d();
|
||||
this.xzSize = noisesettings.a() / this.maxHeight;
|
||||
BC = new BlockColumn(new IBlockData[this.xzSize * this.maxHeight]);
|
||||
}
|
||||
|
||||
public int getSpawnHeight()
|
||||
{
|
||||
return getSeaLevel() + 8;
|
||||
}
|
||||
|
||||
public WorldChunkManager getWorldChunkManager()
|
||||
{
|
||||
return this.c;
|
||||
}
|
||||
|
||||
public int getGenerationDepth()
|
||||
{
|
||||
return 256;
|
||||
}
|
||||
|
||||
public void doCarving(long i, BiomeManager biomemanager, IChunkAccess ichunkaccess, WorldGenStage.Features worldgenstage_features)
|
||||
{
|
||||
if(((IrisTerrainProvider) provisioned.getProvider()).getDimension().isVanillaCaves())
|
||||
{
|
||||
super.doCarving(i, biomemanager, ichunkaccess, worldgenstage_features);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Codec<? extends ChunkGenerator> a()
|
||||
{
|
||||
return ChunkGeneratorAbstract.d;
|
||||
}
|
||||
|
||||
public boolean a(long i, ResourceKey<GeneratorSettingBase> resourcekey)
|
||||
{
|
||||
return this.w == i && this.h.get().a(resourcekey);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getBaseHeight(int i, int j, HeightMap.Type heightmap_type)
|
||||
{
|
||||
return 63;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IBlockAccess a(int x, int z)
|
||||
{
|
||||
return BC;
|
||||
}
|
||||
|
||||
protected IBlockData a(double d0, int i)
|
||||
{
|
||||
IBlockData iblockdata;
|
||||
|
||||
if(d0 > 0.0D)
|
||||
{
|
||||
iblockdata = this.f;
|
||||
}
|
||||
else if(i < this.getSeaLevel())
|
||||
{
|
||||
iblockdata = this.g;
|
||||
}
|
||||
else
|
||||
{
|
||||
iblockdata = NMSChunkGenerator16_3_SPIGOT.k;
|
||||
}
|
||||
|
||||
return iblockdata;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void buildBase(RegionLimitedWorldAccess regionlimitedworldaccess, IChunkAccess ichunkaccess)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void buildNoise(GeneratorAccess generatoraccess, StructureManager structuremanager, IChunkAccess ichunkaccess)
|
||||
{
|
||||
ObjectList<StructurePiece> objectlist = new ObjectArrayList<StructurePiece>(10);
|
||||
ObjectList<WorldGenFeatureDefinedStructureJigsawJunction> objectlist1 = new ObjectArrayList<WorldGenFeatureDefinedStructureJigsawJunction>(32);
|
||||
ChunkCoordIntPair chunkcoordintpair = ichunkaccess.getPos();
|
||||
int i = chunkcoordintpair.x;
|
||||
int j = chunkcoordintpair.z;
|
||||
|
||||
if(((IrisTerrainProvider) provisioned.getProvider()).shouldGenerateVanillaStructures())
|
||||
{
|
||||
int k = i << 4;
|
||||
int l = j << 4;
|
||||
Iterator<?> iterator = StructureGenerator.t.iterator();
|
||||
|
||||
while(iterator.hasNext())
|
||||
{
|
||||
StructureGenerator<?> structuregenerator = (StructureGenerator<?>) iterator.next();
|
||||
|
||||
structuremanager.a(SectionPosition.a(chunkcoordintpair, 0), structuregenerator).forEach((structurestart) ->
|
||||
{
|
||||
Iterator<?> iterator1 = structurestart.d().iterator();
|
||||
|
||||
while(iterator1.hasNext())
|
||||
{
|
||||
StructurePiece structurepiece = (StructurePiece) iterator1.next();
|
||||
|
||||
if(structurepiece.a(chunkcoordintpair, 12))
|
||||
{
|
||||
if(structurepiece instanceof WorldGenFeaturePillagerOutpostPoolPiece)
|
||||
{
|
||||
WorldGenFeaturePillagerOutpostPoolPiece worldgenfeaturepillageroutpostpoolpiece = (WorldGenFeaturePillagerOutpostPoolPiece) structurepiece;
|
||||
WorldGenFeatureDefinedStructurePoolTemplate.Matching worldgenfeaturedefinedstructurepooltemplate_matching = worldgenfeaturepillageroutpostpoolpiece.b().e();
|
||||
|
||||
if(worldgenfeaturedefinedstructurepooltemplate_matching == WorldGenFeatureDefinedStructurePoolTemplate.Matching.RIGID)
|
||||
{
|
||||
objectlist.add(worldgenfeaturepillageroutpostpoolpiece);
|
||||
}
|
||||
|
||||
Iterator<?> iterator2 = worldgenfeaturepillageroutpostpoolpiece.e().iterator();
|
||||
|
||||
while(iterator2.hasNext())
|
||||
{
|
||||
WorldGenFeatureDefinedStructureJigsawJunction worldgenfeaturedefinedstructurejigsawjunction = (WorldGenFeatureDefinedStructureJigsawJunction) iterator2.next();
|
||||
int i1 = worldgenfeaturedefinedstructurejigsawjunction.a();
|
||||
int j1 = worldgenfeaturedefinedstructurejigsawjunction.c();
|
||||
|
||||
if(i1 > k - 12 && j1 > l - 12 && i1 < k + 15 + 12 && j1 < l + 15 + 12)
|
||||
{
|
||||
objectlist1.add(worldgenfeaturedefinedstructurejigsawjunction);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
objectlist.add(structurepiece);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
ProtoChunk protochunk = (ProtoChunk) ichunkaccess;
|
||||
HeightMap heightmap = protochunk.a(HeightMap.Type.OCEAN_FLOOR_WG);
|
||||
HeightMap heightmap1 = protochunk.a(HeightMap.Type.WORLD_SURFACE_WG);
|
||||
GeneratedChunk gc = ((ProvisionBukkit) provisioned).generateNMSChunkData(ws.get().getWorld(), new Random(i + j), i, j, new ChunkData()
|
||||
{
|
||||
public int getMaxHeight()
|
||||
{
|
||||
return 256;
|
||||
}
|
||||
|
||||
public void setBlock(int x, int y, int z, Material material)
|
||||
{
|
||||
this.setBlock(x, y, z, material.createBlockData());
|
||||
}
|
||||
|
||||
public void setBlock(int x, int y, int z, MaterialData material)
|
||||
{
|
||||
this.setBlock(x, y, z, CraftMagicNumbers.getBlock((MaterialData) material));
|
||||
}
|
||||
|
||||
public void setBlock(int x, int y, int z, BlockData blockData)
|
||||
{
|
||||
this.setBlock(x, y, z, ((CraftBlockData) blockData).getState());
|
||||
}
|
||||
|
||||
public void setRegion(int xMin, int yMin, int zMin, int xMax, int yMax, int zMax, Material material)
|
||||
{
|
||||
this.setRegion(xMin, yMin, zMin, xMax, yMax, zMax, material.createBlockData());
|
||||
}
|
||||
|
||||
public void setRegion(int xMin, int yMin, int zMin, int xMax, int yMax, int zMax, MaterialData material)
|
||||
{
|
||||
this.setRegion(xMin, yMin, zMin, xMax, yMax, zMax, CraftMagicNumbers.getBlock((MaterialData) material));
|
||||
}
|
||||
|
||||
public void setRegion(int xMin, int yMin, int zMin, int xMax, int yMax, int zMax, BlockData blockData)
|
||||
{
|
||||
this.setRegion(xMin, yMin, zMin, xMax, yMax, zMax, ((CraftBlockData) blockData).getState());
|
||||
}
|
||||
|
||||
public Material getType(int x, int y, int z)
|
||||
{
|
||||
return CraftMagicNumbers.getMaterial((Block) this.getTypeId(x, y, z).getBlock());
|
||||
}
|
||||
|
||||
public MaterialData getTypeAndData(int x, int y, int z)
|
||||
{
|
||||
return CraftMagicNumbers.getMaterial((IBlockData) this.getTypeId(x, y, z));
|
||||
}
|
||||
|
||||
public BlockData getBlockData(int x, int y, int z)
|
||||
{
|
||||
return CraftBlockData.fromData((IBlockData) this.getTypeId(x, y, z));
|
||||
}
|
||||
|
||||
public void setRegion(int xMin, int yMin, int zMin, int xMax, int yMax, int zMax, IBlockData type)
|
||||
{
|
||||
if(xMin > 15 || yMin >= getMaxHeight() || zMin > 15)
|
||||
{
|
||||
return;
|
||||
}
|
||||
if(xMin < 0)
|
||||
{
|
||||
xMin = 0;
|
||||
}
|
||||
if(yMin < 0)
|
||||
{
|
||||
yMin = 0;
|
||||
}
|
||||
if(zMin < 0)
|
||||
{
|
||||
zMin = 0;
|
||||
}
|
||||
if(xMax > 16)
|
||||
{
|
||||
xMax = 16;
|
||||
}
|
||||
if(yMax > getMaxHeight())
|
||||
{
|
||||
yMax = getMaxHeight();
|
||||
}
|
||||
if(zMax > 16)
|
||||
{
|
||||
zMax = 16;
|
||||
}
|
||||
if(xMin >= xMax || yMin >= yMax || zMin >= zMax)
|
||||
{
|
||||
return;
|
||||
}
|
||||
int y = yMin;
|
||||
while(y < yMax)
|
||||
{
|
||||
int x = xMin;
|
||||
while(x < xMax)
|
||||
{
|
||||
int z = zMin;
|
||||
while(z < zMax)
|
||||
{
|
||||
protochunk.setType(new BlockPosition(x, y, z), type, false);
|
||||
++z;
|
||||
}
|
||||
++x;
|
||||
}
|
||||
++y;
|
||||
}
|
||||
}
|
||||
|
||||
public IBlockData getTypeId(int x, int y, int z)
|
||||
{
|
||||
if(x != (x & 15) || y < 0 || y >= getMaxHeight() || z != (z & 15))
|
||||
{
|
||||
return Blocks.AIR.getBlockData();
|
||||
}
|
||||
return protochunk.getType(new BlockPosition(x, y, z));
|
||||
}
|
||||
|
||||
public byte getData(int x, int y, int z)
|
||||
{
|
||||
return CraftMagicNumbers.toLegacyData((IBlockData) this.getTypeId(x, y, z));
|
||||
}
|
||||
|
||||
private void setBlock(int x, int y, int z, IBlockData type)
|
||||
{
|
||||
if(x != (x & 15) || y < 0 || y >= getMaxHeight() || z != (z & 15))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
protochunk.setType(new BlockPosition(x, y, z), type, false);
|
||||
|
||||
if(type.getBlock().isTileEntity())
|
||||
{
|
||||
// if (this.tiles == null) {
|
||||
// this.tiles = new HashSet<BlockPosition>();
|
||||
// }
|
||||
// this.tiles.add(new BlockPosition(x, y, z));
|
||||
}
|
||||
}
|
||||
}, new BiomeGrid()
|
||||
{
|
||||
@Override
|
||||
public void setBiome(int x, int y, int z, Biome bio)
|
||||
{
|
||||
protochunk.getBiomeIndex().setBiome(x, y, z, CraftBlock.biomeToBiomeBase(ws.get().r().b(IRegistry.ay), bio));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBiome(int x, int z, Biome bio)
|
||||
{
|
||||
protochunk.getBiomeIndex().setBiome(x, 0, z, CraftBlock.biomeToBiomeBase(ws.get().r().b(IRegistry.ay), bio));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Biome getBiome(int x, int y, int z)
|
||||
{
|
||||
return CraftBlock.biomeBaseToBiome(ws.get().r().b(IRegistry.ay), protochunk.getBiomeIndex().getBiome(x, y, z));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Biome getBiome(int x, int z)
|
||||
{
|
||||
return CraftBlock.biomeBaseToBiome(ws.get().r().b(IRegistry.ay), protochunk.getBiomeIndex().getBiome(x, 0, z));
|
||||
}
|
||||
});
|
||||
|
||||
for(int xx = 0; xx < 16; xx++)
|
||||
{
|
||||
for(int zz = 0; zz < 16; zz++)
|
||||
{
|
||||
int y = gc.getHeight().getHeight(xx, zz);
|
||||
if(y < getSeaLevel())
|
||||
{
|
||||
heightmap.a(xx, y, zz, Blocks.STONE.getBlockData());
|
||||
}
|
||||
heightmap1.a(xx, Math.max(y, getSeaLevel()), zz, Blocks.STONE.getBlockData());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void addDecorations(RegionLimitedWorldAccess regionlimitedworldaccess, StructureManager structuremanager)
|
||||
{
|
||||
if(((IrisTerrainProvider) provisioned.getProvider()).shouldGenerateVanillaStructures())
|
||||
{
|
||||
int i = regionlimitedworldaccess.a();
|
||||
int j = regionlimitedworldaccess.b();
|
||||
int k = i * 16;
|
||||
int l = j * 16;
|
||||
BlockPosition blockposition = new BlockPosition(k, 0, l);
|
||||
BiomeBase biomebase = this.b.getBiome((i << 2) + 2, 2, (j << 2) + 2);
|
||||
SeededRandom seededrandom = new SeededRandom();
|
||||
long i1 = seededrandom.a(regionlimitedworldaccess.getSeed(), k, l);
|
||||
try
|
||||
{
|
||||
a(biomebase, structuremanager, this, regionlimitedworldaccess, i1, seededrandom, blockposition);
|
||||
}
|
||||
catch(Exception exception)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void a(BiomeBase bbase, StructureManager var0, ChunkGenerator var1, RegionLimitedWorldAccess var2, long var3, SeededRandom var5, BlockPosition var6)
|
||||
{
|
||||
if(!((IrisTerrainProvider) provisioned.getProvider()).shouldGenerateVanillaStructures())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
int stages = WorldGenStage.Decoration.values().length;
|
||||
for(int stage = 0; stage < stages; ++stage)
|
||||
{
|
||||
WorldGenStage.Decoration st = WorldGenStage.Decoration.values()[stage];
|
||||
|
||||
if(st.equals(WorldGenStage.Decoration.LAKES))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(st.equals(WorldGenStage.Decoration.LOCAL_MODIFICATIONS))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(st.equals(WorldGenStage.Decoration.RAW_GENERATION))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(st.equals(WorldGenStage.Decoration.TOP_LAYER_MODIFICATION))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(st.equals(WorldGenStage.Decoration.UNDERGROUND_DECORATION))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(st.equals(WorldGenStage.Decoration.UNDERGROUND_ORES))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(st.equals(WorldGenStage.Decoration.VEGETAL_DECORATION))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
StructureGenerator<?> var13;
|
||||
int var10 = 0;
|
||||
if(var0.a())
|
||||
{
|
||||
@SuppressWarnings("unchecked")
|
||||
List<StructureGenerator<?>> structureGenerators = ((Map<Integer, List<StructureGenerator<?>>>) new V(bbase).get("g")).getOrDefault(stage, Collections.emptyList());
|
||||
Iterator<StructureGenerator<?>> iterator = structureGenerators.iterator();
|
||||
while(iterator.hasNext())
|
||||
{
|
||||
var13 = (StructureGenerator<?>) iterator.next();
|
||||
|
||||
if(var13.equals(StructureGenerator.VILLAGE))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(var13.equals(StructureGenerator.JUNGLE_PYRAMID))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(var13.equals(StructureGenerator.OCEAN_RUIN))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(var13.equals(StructureGenerator.IGLOO))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(var13.equals(StructureGenerator.MINESHAFT))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(var13.equals(StructureGenerator.NETHER_FOSSIL))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(var13.equals(StructureGenerator.SHIPWRECK))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(var13.equals(StructureGenerator.SHIPWRECK))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(var13.equals(StructureGenerator.MONUMENT))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(var13.equals(StructureGenerator.BASTION_REMNANT))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var5.b(var3, var10, stage);
|
||||
int var14 = var6.getX() >> 4;
|
||||
int var15 = var6.getZ() >> 4;
|
||||
int var16 = var14 << 4;
|
||||
int var17 = var15 << 4;
|
||||
|
||||
try
|
||||
{
|
||||
var0.a(SectionPosition.a((BlockPosition) var6), var13).forEach(var8 -> var8.a((GeneratorAccessSeed) var2, var0, var1, (Random) var5, new StructureBoundingBox(var16, var17, var16 + 15, var17 + 15), new ChunkCoordIntPair(var14, var15)));
|
||||
}
|
||||
|
||||
catch(Exception var18)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
++var10;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSeaLevel()
|
||||
{
|
||||
return ((IrisTerrainProvider) provisioned.getProvider()).getFluidHeight();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<BiomeSettingsMobs.c> getMobsFor(BiomeBase biomebase, StructureManager structuremanager, EnumCreatureType enumcreaturetype, BlockPosition blockposition)
|
||||
{
|
||||
if(structuremanager.a(blockposition, true, StructureGenerator.SWAMP_HUT).e())
|
||||
{
|
||||
if(enumcreaturetype == EnumCreatureType.MONSTER)
|
||||
{
|
||||
return StructureGenerator.SWAMP_HUT.c();
|
||||
}
|
||||
|
||||
if(enumcreaturetype == EnumCreatureType.CREATURE)
|
||||
{
|
||||
return StructureGenerator.SWAMP_HUT.j();
|
||||
}
|
||||
}
|
||||
|
||||
if(enumcreaturetype == EnumCreatureType.MONSTER)
|
||||
{
|
||||
if(structuremanager.a(blockposition, false, StructureGenerator.PILLAGER_OUTPOST).e())
|
||||
{
|
||||
return StructureGenerator.PILLAGER_OUTPOST.c();
|
||||
}
|
||||
|
||||
if(structuremanager.a(blockposition, false, StructureGenerator.MONUMENT).e())
|
||||
{
|
||||
return StructureGenerator.MONUMENT.c();
|
||||
}
|
||||
|
||||
if(structuremanager.a(blockposition, true, StructureGenerator.FORTRESS).e())
|
||||
{
|
||||
return StructureGenerator.FORTRESS.c();
|
||||
}
|
||||
}
|
||||
|
||||
return super.getMobsFor(biomebase, structuremanager, enumcreaturetype, blockposition);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addMobs(RegionLimitedWorldAccess regionlimitedworldaccess)
|
||||
{
|
||||
int i = regionlimitedworldaccess.a();
|
||||
int j = regionlimitedworldaccess.b();
|
||||
BiomeBase biomebase = regionlimitedworldaccess.getBiome((new ChunkCoordIntPair(i, j)).l());
|
||||
SeededRandom seededrandom = new SeededRandom();
|
||||
seededrandom.a(regionlimitedworldaccess.getSeed(), i << 4, j << 4);
|
||||
SpawnerCreature.a(regionlimitedworldaccess, biomebase, i, j, seededrandom);
|
||||
}
|
||||
|
||||
public void createStructures(IRegistryCustom iregistrycustom, StructureManager structuremanager, IChunkAccess ichunkaccess, DefinedStructureManager definedstructuremanager, long i)
|
||||
{
|
||||
ChunkCoordIntPair chunkcoordintpair = ichunkaccess.getPos();
|
||||
BiomeBase biomebase = this.b.getBiome((chunkcoordintpair.x << 2) + 2, 0, (chunkcoordintpair.z << 2) + 2);
|
||||
this.a(StructureFeatures.k, iregistrycustom, structuremanager, ichunkaccess, definedstructuremanager, i, chunkcoordintpair, biomebase);
|
||||
for(Supplier<StructureFeature<?, ?>> supplier : biomebase.e().a())
|
||||
{
|
||||
StructureFeature<?, ?> structurefeature = (StructureFeature<?, ?>) supplier.get();
|
||||
if(StructureFeature.c == StructureGenerator.STRONGHOLD)
|
||||
{
|
||||
StructureFeature<?, ?> structureFeature = structurefeature;
|
||||
synchronized(structureFeature)
|
||||
{
|
||||
this.a(structurefeature, iregistrycustom, structuremanager, ichunkaccess, definedstructuremanager, i, chunkcoordintpair, biomebase);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
this.a(structurefeature, iregistrycustom, structuremanager, ichunkaccess, definedstructuremanager, i, chunkcoordintpair, biomebase);
|
||||
}
|
||||
}
|
||||
|
||||
private void a(StructureFeature<?, ?> structurefeature, IRegistryCustom iregistrycustom, StructureManager structuremanager, IChunkAccess ichunkaccess, DefinedStructureManager definedstructuremanager, long i, ChunkCoordIntPair chunkcoordintpair, BiomeBase biomebase)
|
||||
{
|
||||
StructureStart<?> structurestart = structuremanager.a(SectionPosition.a((ChunkCoordIntPair) ichunkaccess.getPos(), (int) 0), structurefeature.d, (IStructureAccess) ichunkaccess);
|
||||
int j = structurestart != null ? structurestart.j() : 0;
|
||||
StructureSettingsFeature structuresettingsfeature = getSettings().a(structurefeature.d);
|
||||
if(structuresettingsfeature != null)
|
||||
{
|
||||
StructureStart<?> structurestart1 = structurefeature.a(iregistrycustom, this, this.b, definedstructuremanager, i, chunkcoordintpair, biomebase, j, structuresettingsfeature);
|
||||
structuremanager.a(SectionPosition.a((ChunkCoordIntPair) ichunkaccess.getPos(), (int) 0), structurefeature.d, structurestart1, (IStructureAccess) ichunkaccess);
|
||||
}
|
||||
}
|
||||
|
||||
public void storeStructures(GeneratorAccessSeed generatoraccessseed, StructureManager structuremanager, IChunkAccess ichunkaccess)
|
||||
{
|
||||
int i = ichunkaccess.getPos().x;
|
||||
int j = ichunkaccess.getPos().z;
|
||||
int k = i << 4;
|
||||
int l = j << 4;
|
||||
SectionPosition sectionposition = SectionPosition.a((ChunkCoordIntPair) ichunkaccess.getPos(), (int) 0);
|
||||
int i1 = i - 8;
|
||||
while(i1 <= i + 8)
|
||||
{
|
||||
int j1 = j - 8;
|
||||
while(j1 <= j + 8)
|
||||
{
|
||||
long k1 = ChunkCoordIntPair.pair((int) i1, (int) j1);
|
||||
for(StructureStart<?> structurestart : generatoraccessseed.getChunkAt(i1, j1).h().values())
|
||||
{
|
||||
try
|
||||
{
|
||||
if(structurestart == StructureStart.a || !structurestart.c().a(k, l, k + 15, l + 15))
|
||||
continue;
|
||||
structuremanager.a(sectionposition, structurestart.l(), k1, (IStructureAccess) ichunkaccess);
|
||||
PacketDebug.a((GeneratorAccessSeed) generatoraccessseed, (StructureStart<?>) structurestart);
|
||||
}
|
||||
catch(Exception exception)
|
||||
{
|
||||
CrashReport crashreport = CrashReport.a((Throwable) exception, (String) "Generating structure reference");
|
||||
CrashReportSystemDetails crashreportsystemdetails = crashreport.a("Structure");
|
||||
crashreportsystemdetails.a("Name", () -> structurestart.l().i());
|
||||
crashreportsystemdetails.a("Class", () -> structurestart.l().getClass().getCanonicalName());
|
||||
throw new ReportedException(crashreport);
|
||||
}
|
||||
}
|
||||
++j1;
|
||||
}
|
||||
++i1;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Provisioned getProvisioned()
|
||||
{
|
||||
return provisioned;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void clearRegeneratedLists()
|
||||
{
|
||||
getProvisioned().clearRegeneratedLists();
|
||||
}
|
||||
|
||||
@Override
|
||||
public TerrainProvider getProvider()
|
||||
{
|
||||
return getProvisioned().getProvider();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void regenerate(int x, int z)
|
||||
{
|
||||
getProvisioned().regenerate(x, z);
|
||||
}
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
package com.volmit.iris.gen.nms.v1X;
|
||||
|
||||
import com.volmit.iris.gen.atomics.AtomicCache;
|
||||
import com.volmit.iris.gen.nms.INMSBinding;
|
||||
import com.volmit.iris.gen.nms.INMSCreator;
|
||||
|
||||
public class NMSBinding1X implements INMSBinding
|
||||
{
|
||||
private final AtomicCache<INMSCreator> creator = new AtomicCache<>();
|
||||
|
||||
@Override
|
||||
public INMSCreator getCreator()
|
||||
{
|
||||
return creator.aquire(NMSCreator1X::new);
|
||||
}
|
||||
}
|
||||
@@ -1,57 +0,0 @@
|
||||
package com.volmit.iris.gen.scaffold;
|
||||
|
||||
import org.bukkit.World;
|
||||
|
||||
import com.volmit.iris.gen.IrisTerrainProvider;
|
||||
import com.volmit.iris.gen.provisions.ProvisionBukkit;
|
||||
import com.volmit.iris.util.KMap;
|
||||
|
||||
public class IrisWorlds
|
||||
{
|
||||
private static final KMap<String, Provisioned> provisioned = new KMap<>();
|
||||
|
||||
public static void register(World w, Provisioned p)
|
||||
{
|
||||
provisioned.put(w.getUID().toString(), p);
|
||||
}
|
||||
|
||||
public static boolean isIrisWorld(World world)
|
||||
{
|
||||
if(provisioned.containsKey(world.getUID().toString()))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return world.getGenerator() instanceof Provisioned || world.getGenerator() instanceof ProvisionedHolder;
|
||||
}
|
||||
|
||||
public static IrisTerrainProvider getProvider(World world)
|
||||
{
|
||||
if(isIrisWorld(world))
|
||||
{
|
||||
return (IrisTerrainProvider) getProvisioned(world).getProvider();
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public static ProvisionBukkit getProvisioned(World world)
|
||||
{
|
||||
if(isIrisWorld(world))
|
||||
{
|
||||
if(provisioned.containsKey(world.getUID().toString()))
|
||||
{
|
||||
return (ProvisionBukkit) provisioned.get(world.getUID().toString());
|
||||
}
|
||||
|
||||
if(world.getGenerator() instanceof ProvisionedHolder)
|
||||
{
|
||||
return (ProvisionBukkit) ((ProvisionedHolder) world.getGenerator()).getProvisioned();
|
||||
}
|
||||
|
||||
return ((ProvisionBukkit) world.getGenerator());
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -1,18 +1,18 @@
|
||||
package com.volmit.iris.v2.generator;
|
||||
package com.volmit.iris.generator;
|
||||
|
||||
import com.volmit.iris.object.*;
|
||||
import com.volmit.iris.util.*;
|
||||
import com.volmit.iris.v2.scaffold.data.DataProvider;
|
||||
import com.volmit.iris.v2.scaffold.engine.Engine;
|
||||
import com.volmit.iris.scaffold.data.DataProvider;
|
||||
import com.volmit.iris.scaffold.engine.Engine;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.Biome;
|
||||
import org.bukkit.block.data.BlockData;
|
||||
|
||||
import com.volmit.iris.Iris;
|
||||
import com.volmit.iris.v2.scaffold.stream.ProceduralStream;
|
||||
import com.volmit.iris.v2.scaffold.stream.interpolation.Interpolated;
|
||||
import com.volmit.iris.scaffold.stream.ProceduralStream;
|
||||
import com.volmit.iris.scaffold.stream.interpolation.Interpolated;
|
||||
import com.volmit.iris.manager.IrisDataManager;
|
||||
import com.volmit.iris.noise.CNG;
|
||||
import com.volmit.iris.generator.noise.CNG;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
119
src/main/java/com/volmit/iris/generator/IrisEngine.java
Normal file
119
src/main/java/com/volmit/iris/generator/IrisEngine.java
Normal file
@@ -0,0 +1,119 @@
|
||||
package com.volmit.iris.generator;
|
||||
|
||||
import com.volmit.iris.Iris;
|
||||
import com.volmit.iris.scaffold.engine.*;
|
||||
import com.volmit.iris.scaffold.hunk.Hunk;
|
||||
import com.volmit.iris.scaffold.parallel.MultiBurst;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import org.bukkit.Chunk;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.block.Biome;
|
||||
import org.bukkit.block.data.BlockData;
|
||||
import org.bukkit.generator.BlockPopulator;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
public class IrisEngine extends BlockPopulator implements Engine
|
||||
{
|
||||
@Getter
|
||||
private final EngineCompound compound;
|
||||
|
||||
@Getter
|
||||
private final EngineTarget target;
|
||||
|
||||
@Getter
|
||||
private final EngineFramework framework;
|
||||
|
||||
@Getter
|
||||
private final EngineWorldManager worldManager;
|
||||
|
||||
@Setter
|
||||
@Getter
|
||||
private volatile int parallelism;
|
||||
|
||||
@Setter
|
||||
@Getter
|
||||
private volatile int minHeight;
|
||||
private boolean failing;
|
||||
private boolean closed;
|
||||
|
||||
public IrisEngine(EngineTarget target, EngineCompound compound)
|
||||
{
|
||||
Iris.info("Initializing Engine: " + target.getWorld().getName() + "/" + target.getDimension().getLoadKey() + " (" + target.getHeight() + " height)");
|
||||
this.target = target;
|
||||
this.framework = new IrisEngineFramework(this);
|
||||
worldManager = new IrisWorldManager(this);
|
||||
this.compound = compound;
|
||||
minHeight = 0;
|
||||
failing = false;
|
||||
closed = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void close()
|
||||
{
|
||||
closed = true;
|
||||
getWorldManager().close();
|
||||
getFramework().close();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isClosed() {
|
||||
return closed;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double modifyX(double x) {
|
||||
return x / getDimension().getTerrainZoom();
|
||||
}
|
||||
|
||||
@Override
|
||||
public double modifyZ(double z) {
|
||||
return z / getDimension().getTerrainZoom();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void generate(int x, int z, Hunk<BlockData> vblocks, Hunk<Biome> vbiomes) {
|
||||
Hunk<Biome> biomes = vbiomes.synchronize();
|
||||
Hunk<BlockData> blocks = vblocks.synchronize().listen((xx,y,zz,t) -> catchBlockUpdates(x+xx,y+getMinHeight(),z+zz, t));
|
||||
|
||||
MultiBurst.burst.burst(
|
||||
() -> getFramework().getEngineParallax().generateParallaxArea(x, z),
|
||||
() -> getFramework().getBiomeActuator().actuate(x, z, biomes),
|
||||
() -> getFramework().getTerrainActuator().actuate(x, z, blocks)
|
||||
);
|
||||
MultiBurst.burst.burst(
|
||||
() -> getFramework().getCaveModifier().modify(x, z, blocks),
|
||||
() -> getFramework().getRavineModifier().modify(x, z, blocks)
|
||||
);
|
||||
MultiBurst.burst.burst(
|
||||
() -> getFramework().getDecorantActuator().actuate(x, z, blocks),
|
||||
() -> getFramework().getDepositModifier().modify(x, z, blocks),
|
||||
() -> getFramework().getPostModifier().modify(x, z, blocks),
|
||||
() -> getFramework().getEngineParallax().insertParallax(x, z, blocks)
|
||||
);
|
||||
|
||||
getFramework().recycle();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void populate(@NotNull World world, @NotNull Random random, @NotNull Chunk c)
|
||||
{
|
||||
getWorldManager().spawnInitialEntities(c);
|
||||
updateChunk(c);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fail(String error, Throwable e) {
|
||||
failing = true;
|
||||
Iris.error(error);
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasFailed() {
|
||||
return failing;
|
||||
}
|
||||
}
|
||||
@@ -1,17 +1,17 @@
|
||||
package com.volmit.iris.v2.generator;
|
||||
package com.volmit.iris.generator;
|
||||
|
||||
import com.volmit.iris.Iris;
|
||||
import com.volmit.iris.manager.IrisDataManager;
|
||||
import com.volmit.iris.object.IrisDimension;
|
||||
import com.volmit.iris.object.IrisDimensionIndex;
|
||||
import com.volmit.iris.util.KList;
|
||||
import com.volmit.iris.v2.scaffold.engine.Engine;
|
||||
import com.volmit.iris.v2.scaffold.engine.EngineCompound;
|
||||
import com.volmit.iris.v2.scaffold.engine.EngineData;
|
||||
import com.volmit.iris.v2.scaffold.engine.EngineTarget;
|
||||
import com.volmit.iris.v2.scaffold.hunk.Hunk;
|
||||
import com.volmit.iris.v2.scaffold.parallel.BurstExecutor;
|
||||
import com.volmit.iris.v2.scaffold.parallel.MultiBurst;
|
||||
import com.volmit.iris.scaffold.engine.Engine;
|
||||
import com.volmit.iris.scaffold.engine.EngineCompound;
|
||||
import com.volmit.iris.scaffold.engine.EngineData;
|
||||
import com.volmit.iris.scaffold.engine.EngineTarget;
|
||||
import com.volmit.iris.scaffold.hunk.Hunk;
|
||||
import com.volmit.iris.scaffold.parallel.BurstExecutor;
|
||||
import com.volmit.iris.scaffold.parallel.MultiBurst;
|
||||
import lombok.Getter;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.block.Biome;
|
||||
@@ -54,7 +54,7 @@ public class IrisEngineCompound implements EngineCompound {
|
||||
if(rootDimension.getDimensionalComposite().isEmpty())
|
||||
{
|
||||
burster = null;
|
||||
engines = new Engine[]{new IrisEngine(new EngineTarget(world, rootDimension, data, 256, maximumThreads))};
|
||||
engines = new Engine[]{new IrisEngine(new EngineTarget(world, rootDimension, data, 256, maximumThreads), this)};
|
||||
}
|
||||
|
||||
else
|
||||
@@ -80,7 +80,7 @@ public class IrisEngineCompound implements EngineCompound {
|
||||
{
|
||||
IrisDimensionIndex index = rootDimension.getDimensionalComposite().get(i);
|
||||
IrisDimension dimension = data.getDimensionLoader().load(index.getDimension());
|
||||
engines[i] = new IrisEngine(new EngineTarget(world, dimension, data.copy().preferFolder(rootDimension.getLoadKey()), (int)Math.floor(256D * (index.getWeight() / totalWeight)), index.isInverted(), threadDist));
|
||||
engines[i] = new IrisEngine(new EngineTarget(world, dimension, data.copy().preferFolder(rootDimension.getLoadKey()), (int)Math.floor(256D * (index.getWeight() / totalWeight)), index.isInverted(), threadDist), this);
|
||||
engines[i].setMinHeight(buf);
|
||||
buf += engines[i].getHeight();
|
||||
}
|
||||
@@ -173,4 +173,9 @@ public class IrisEngineCompound implements EngineCompound {
|
||||
public void saveEngineMetadata() {
|
||||
engineMetadata.save(getEngineMetadataFile());
|
||||
}
|
||||
|
||||
@Override
|
||||
public IrisDataManager getData(int height) {
|
||||
return getEngineForHeight(height).getData();
|
||||
}
|
||||
}
|
||||
@@ -1,11 +1,11 @@
|
||||
package com.volmit.iris.v2.generator;
|
||||
package com.volmit.iris.generator;
|
||||
|
||||
import com.volmit.iris.v2.generator.actuator.*;
|
||||
import com.volmit.iris.v2.generator.modifier.IrisCaveModifier;
|
||||
import com.volmit.iris.v2.generator.modifier.IrisDepositModifier;
|
||||
import com.volmit.iris.v2.generator.modifier.IrisPostModifier;
|
||||
import com.volmit.iris.v2.generator.modifier.IrisRavineModifier;
|
||||
import com.volmit.iris.v2.scaffold.engine.*;
|
||||
import com.volmit.iris.generator.actuator.*;
|
||||
import com.volmit.iris.generator.modifier.IrisCaveModifier;
|
||||
import com.volmit.iris.generator.modifier.IrisDepositModifier;
|
||||
import com.volmit.iris.generator.modifier.IrisPostModifier;
|
||||
import com.volmit.iris.generator.modifier.IrisRavineModifier;
|
||||
import com.volmit.iris.scaffold.engine.*;
|
||||
import lombok.Getter;
|
||||
import org.bukkit.block.Biome;
|
||||
import org.bukkit.block.data.BlockData;
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.volmit.iris.v2.generator;
|
||||
package com.volmit.iris.generator;
|
||||
|
||||
import com.volmit.iris.v2.scaffold.engine.Engine;
|
||||
import com.volmit.iris.v2.scaffold.engine.EngineParallaxManager;
|
||||
import com.volmit.iris.v2.scaffold.engine.EngineStructureManager;
|
||||
import com.volmit.iris.scaffold.engine.Engine;
|
||||
import com.volmit.iris.scaffold.engine.EngineParallaxManager;
|
||||
import com.volmit.iris.scaffold.engine.EngineStructureManager;
|
||||
import lombok.Getter;
|
||||
|
||||
public class IrisEngineParallax implements EngineParallaxManager {
|
||||
@@ -0,0 +1,10 @@
|
||||
package com.volmit.iris.generator;
|
||||
|
||||
import com.volmit.iris.scaffold.engine.Engine;
|
||||
import com.volmit.iris.scaffold.engine.EngineAssignedStructureManager;
|
||||
|
||||
public class IrisEngineStructure extends EngineAssignedStructureManager {
|
||||
public IrisEngineStructure(Engine engine) {
|
||||
super(engine);
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.volmit.iris.v2.generator;
|
||||
package com.volmit.iris.generator;
|
||||
|
||||
import com.volmit.iris.v2.scaffold.engine.Engine;
|
||||
import com.volmit.iris.v2.scaffold.engine.EngineAssignedWorldManager;
|
||||
import com.volmit.iris.scaffold.engine.Engine;
|
||||
import com.volmit.iris.scaffold.engine.EngineAssignedWorldManager;
|
||||
import org.bukkit.Chunk;
|
||||
import org.bukkit.event.block.BlockBreakEvent;
|
||||
import org.bukkit.event.block.BlockPlaceEvent;
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.volmit.iris.v2.generator.actuator;
|
||||
package com.volmit.iris.generator.actuator;
|
||||
|
||||
import com.volmit.iris.v2.scaffold.engine.Engine;
|
||||
import com.volmit.iris.v2.scaffold.engine.EngineAssignedActuator;
|
||||
import com.volmit.iris.v2.scaffold.hunk.Hunk;
|
||||
import com.volmit.iris.scaffold.engine.Engine;
|
||||
import com.volmit.iris.scaffold.engine.EngineAssignedActuator;
|
||||
import com.volmit.iris.scaffold.hunk.Hunk;
|
||||
import org.bukkit.block.Biome;
|
||||
|
||||
public class IrisBiomeActuator extends EngineAssignedActuator<Biome>
|
||||
@@ -1,15 +1,15 @@
|
||||
package com.volmit.iris.v2.generator.actuator;
|
||||
package com.volmit.iris.generator.actuator;
|
||||
|
||||
import com.volmit.iris.object.IrisBiome;
|
||||
import com.volmit.iris.util.RNG;
|
||||
import com.volmit.iris.v2.generator.decorator.IrisCeilingDecorator;
|
||||
import com.volmit.iris.v2.generator.decorator.IrisSeaSurfaceDecorator;
|
||||
import com.volmit.iris.v2.generator.decorator.IrisShoreLineDecorator;
|
||||
import com.volmit.iris.v2.generator.decorator.IrisSurfaceDecorator;
|
||||
import com.volmit.iris.v2.scaffold.engine.Engine;
|
||||
import com.volmit.iris.v2.scaffold.engine.EngineAssignedActuator;
|
||||
import com.volmit.iris.v2.scaffold.engine.EngineDecorator;
|
||||
import com.volmit.iris.v2.scaffold.hunk.Hunk;
|
||||
import com.volmit.iris.generator.decorator.IrisCeilingDecorator;
|
||||
import com.volmit.iris.generator.decorator.IrisSeaSurfaceDecorator;
|
||||
import com.volmit.iris.generator.decorator.IrisShoreLineDecorator;
|
||||
import com.volmit.iris.generator.decorator.IrisSurfaceDecorator;
|
||||
import com.volmit.iris.scaffold.engine.Engine;
|
||||
import com.volmit.iris.scaffold.engine.EngineAssignedActuator;
|
||||
import com.volmit.iris.scaffold.engine.EngineDecorator;
|
||||
import com.volmit.iris.scaffold.hunk.Hunk;
|
||||
import lombok.Getter;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.data.BlockData;
|
||||
@@ -1,11 +1,11 @@
|
||||
package com.volmit.iris.v2.generator.actuator;
|
||||
package com.volmit.iris.generator.actuator;
|
||||
|
||||
import com.volmit.iris.object.IrisBiome;
|
||||
import com.volmit.iris.util.KList;
|
||||
import com.volmit.iris.util.RNG;
|
||||
import com.volmit.iris.v2.scaffold.engine.Engine;
|
||||
import com.volmit.iris.v2.scaffold.engine.EngineAssignedActuator;
|
||||
import com.volmit.iris.v2.scaffold.hunk.Hunk;
|
||||
import com.volmit.iris.scaffold.engine.Engine;
|
||||
import com.volmit.iris.scaffold.engine.EngineAssignedActuator;
|
||||
import com.volmit.iris.scaffold.hunk.Hunk;
|
||||
import lombok.Getter;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.data.BlockData;
|
||||
@@ -1,11 +1,11 @@
|
||||
package com.volmit.iris.v2.generator.decorator;
|
||||
package com.volmit.iris.generator.decorator;
|
||||
|
||||
import com.volmit.iris.object.DecorationPart;
|
||||
import com.volmit.iris.object.IrisBiome;
|
||||
import com.volmit.iris.object.IrisDecorator;
|
||||
import com.volmit.iris.v2.scaffold.cache.Cache;
|
||||
import com.volmit.iris.v2.scaffold.engine.Engine;
|
||||
import com.volmit.iris.v2.scaffold.hunk.Hunk;
|
||||
import com.volmit.iris.scaffold.cache.Cache;
|
||||
import com.volmit.iris.scaffold.engine.Engine;
|
||||
import com.volmit.iris.scaffold.hunk.Hunk;
|
||||
import org.bukkit.block.data.BlockData;
|
||||
|
||||
public class IrisCeilingDecorator extends IrisEngineDecorator
|
||||
@@ -1,12 +1,12 @@
|
||||
package com.volmit.iris.v2.generator.decorator;
|
||||
package com.volmit.iris.generator.decorator;
|
||||
|
||||
import com.volmit.iris.object.DecorationPart;
|
||||
import com.volmit.iris.object.IrisBiome;
|
||||
import com.volmit.iris.object.IrisDecorator;
|
||||
import com.volmit.iris.util.RNG;
|
||||
import com.volmit.iris.v2.scaffold.engine.Engine;
|
||||
import com.volmit.iris.v2.scaffold.engine.EngineAssignedComponent;
|
||||
import com.volmit.iris.v2.scaffold.engine.EngineDecorator;
|
||||
import com.volmit.iris.scaffold.engine.Engine;
|
||||
import com.volmit.iris.scaffold.engine.EngineAssignedComponent;
|
||||
import com.volmit.iris.scaffold.engine.EngineDecorator;
|
||||
import lombok.Getter;
|
||||
|
||||
public abstract class IrisEngineDecorator extends EngineAssignedComponent implements EngineDecorator {
|
||||
@@ -1,11 +1,11 @@
|
||||
package com.volmit.iris.v2.generator.decorator;
|
||||
package com.volmit.iris.generator.decorator;
|
||||
|
||||
import com.volmit.iris.object.DecorationPart;
|
||||
import com.volmit.iris.object.IrisBiome;
|
||||
import com.volmit.iris.object.IrisDecorator;
|
||||
import com.volmit.iris.v2.scaffold.cache.Cache;
|
||||
import com.volmit.iris.v2.scaffold.engine.Engine;
|
||||
import com.volmit.iris.v2.scaffold.hunk.Hunk;
|
||||
import com.volmit.iris.scaffold.cache.Cache;
|
||||
import com.volmit.iris.scaffold.engine.Engine;
|
||||
import com.volmit.iris.scaffold.hunk.Hunk;
|
||||
import org.bukkit.block.data.BlockData;
|
||||
|
||||
public class IrisSeaSurfaceDecorator extends IrisEngineDecorator
|
||||
@@ -1,11 +1,11 @@
|
||||
package com.volmit.iris.v2.generator.decorator;
|
||||
package com.volmit.iris.generator.decorator;
|
||||
|
||||
import com.volmit.iris.object.DecorationPart;
|
||||
import com.volmit.iris.object.IrisBiome;
|
||||
import com.volmit.iris.object.IrisDecorator;
|
||||
import com.volmit.iris.v2.scaffold.cache.Cache;
|
||||
import com.volmit.iris.v2.scaffold.engine.Engine;
|
||||
import com.volmit.iris.v2.scaffold.hunk.Hunk;
|
||||
import com.volmit.iris.scaffold.cache.Cache;
|
||||
import com.volmit.iris.scaffold.engine.Engine;
|
||||
import com.volmit.iris.scaffold.hunk.Hunk;
|
||||
import org.bukkit.block.data.BlockData;
|
||||
|
||||
public class IrisShoreLineDecorator extends IrisEngineDecorator
|
||||
@@ -1,12 +1,12 @@
|
||||
package com.volmit.iris.v2.generator.decorator;
|
||||
package com.volmit.iris.generator.decorator;
|
||||
|
||||
import com.volmit.iris.object.DecorationPart;
|
||||
import com.volmit.iris.object.InferredType;
|
||||
import com.volmit.iris.object.IrisBiome;
|
||||
import com.volmit.iris.object.IrisDecorator;
|
||||
import com.volmit.iris.v2.scaffold.cache.Cache;
|
||||
import com.volmit.iris.v2.scaffold.engine.Engine;
|
||||
import com.volmit.iris.v2.scaffold.hunk.Hunk;
|
||||
import com.volmit.iris.scaffold.cache.Cache;
|
||||
import com.volmit.iris.scaffold.engine.Engine;
|
||||
import com.volmit.iris.scaffold.hunk.Hunk;
|
||||
import org.bukkit.block.data.BlockData;
|
||||
|
||||
public class IrisSurfaceDecorator extends IrisEngineDecorator
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.volmit.iris.gen;
|
||||
package com.volmit.iris.generator.legacy;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
@@ -22,18 +22,18 @@ import org.bukkit.event.world.ChunkUnloadEvent;
|
||||
import org.bukkit.event.world.WorldUnloadEvent;
|
||||
|
||||
import com.volmit.iris.Iris;
|
||||
import com.volmit.iris.gen.atomics.AtomicCache;
|
||||
import com.volmit.iris.gen.atomics.AtomicMulticache;
|
||||
import com.volmit.iris.gen.scaffold.GeneratedChunk;
|
||||
import com.volmit.iris.gen.scaffold.IrisContext;
|
||||
import com.volmit.iris.gen.scaffold.IrisMetrics;
|
||||
import com.volmit.iris.gen.scaffold.Provisioned;
|
||||
import com.volmit.iris.gen.scaffold.TerrainChunk;
|
||||
import com.volmit.iris.gen.scaffold.TerrainProvider;
|
||||
import com.volmit.iris.gen.scaffold.TerrainTarget;
|
||||
import com.volmit.iris.v2.scaffold.data.DataProvider;
|
||||
import com.volmit.iris.generator.legacy.atomics.AtomicCache;
|
||||
import com.volmit.iris.generator.legacy.atomics.AtomicMulticache;
|
||||
import com.volmit.iris.generator.legacy.scaffold.GeneratedChunk;
|
||||
import com.volmit.iris.generator.legacy.scaffold.IrisContext;
|
||||
import com.volmit.iris.generator.legacy.scaffold.IrisMetrics;
|
||||
import com.volmit.iris.generator.legacy.scaffold.Provisioned;
|
||||
import com.volmit.iris.generator.legacy.scaffold.TerrainChunk;
|
||||
import com.volmit.iris.generator.legacy.scaffold.TerrainProvider;
|
||||
import com.volmit.iris.generator.legacy.scaffold.TerrainTarget;
|
||||
import com.volmit.iris.scaffold.data.DataProvider;
|
||||
import com.volmit.iris.manager.IrisDataManager;
|
||||
import com.volmit.iris.noise.CNG;
|
||||
import com.volmit.iris.generator.noise.CNG;
|
||||
import com.volmit.iris.object.IrisBiome;
|
||||
import com.volmit.iris.object.IrisDimension;
|
||||
import com.volmit.iris.object.IrisGenerator;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.volmit.iris.gen;
|
||||
package com.volmit.iris.generator.legacy;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
@@ -9,7 +9,7 @@ import org.bukkit.entity.Player;
|
||||
|
||||
import com.volmit.iris.Iris;
|
||||
import com.volmit.iris.IrisSettings;
|
||||
import com.volmit.iris.gen.scaffold.TerrainTarget;
|
||||
import com.volmit.iris.generator.legacy.scaffold.TerrainTarget;
|
||||
import com.volmit.iris.object.InferredType;
|
||||
import com.volmit.iris.object.IrisBiome;
|
||||
import com.volmit.iris.object.IrisDimension;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.volmit.iris.gen;
|
||||
package com.volmit.iris.generator.legacy;
|
||||
|
||||
import java.awt.Color;
|
||||
import java.io.File;
|
||||
@@ -20,14 +20,14 @@ import org.bukkit.util.BlockVector;
|
||||
|
||||
import com.volmit.iris.Iris;
|
||||
import com.volmit.iris.IrisSettings;
|
||||
import com.volmit.iris.gen.atomics.AtomicRegionData;
|
||||
import com.volmit.iris.gen.scaffold.GeneratedChunk;
|
||||
import com.volmit.iris.gen.scaffold.IrisContext;
|
||||
import com.volmit.iris.gen.scaffold.IrisGenConfiguration;
|
||||
import com.volmit.iris.gen.scaffold.TerrainChunk;
|
||||
import com.volmit.iris.gen.scaffold.TerrainTarget;
|
||||
import com.volmit.iris.gui.Renderer;
|
||||
import com.volmit.iris.noise.CNG;
|
||||
import com.volmit.iris.generator.legacy.atomics.AtomicRegionData;
|
||||
import com.volmit.iris.generator.legacy.scaffold.GeneratedChunk;
|
||||
import com.volmit.iris.generator.legacy.scaffold.IrisContext;
|
||||
import com.volmit.iris.generator.legacy.scaffold.IrisGenConfiguration;
|
||||
import com.volmit.iris.generator.legacy.scaffold.TerrainChunk;
|
||||
import com.volmit.iris.generator.legacy.scaffold.TerrainTarget;
|
||||
import com.volmit.iris.manager.gui.Renderer;
|
||||
import com.volmit.iris.generator.noise.CNG;
|
||||
import com.volmit.iris.object.IrisBiome;
|
||||
import com.volmit.iris.object.IrisBlockDrops;
|
||||
import com.volmit.iris.object.IrisDimension;
|
||||
@@ -1,47 +1,27 @@
|
||||
package com.volmit.iris.gen;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
package com.volmit.iris.generator.legacy;
|
||||
|
||||
import com.volmit.iris.Iris;
|
||||
import com.volmit.iris.IrisSettings;
|
||||
import com.volmit.iris.generator.legacy.atomics.AtomicSliver;
|
||||
import com.volmit.iris.generator.legacy.atomics.AtomicSliverMap;
|
||||
import com.volmit.iris.generator.legacy.atomics.AtomicWorldData;
|
||||
import com.volmit.iris.generator.legacy.atomics.MasterLock;
|
||||
import com.volmit.iris.generator.legacy.layer.GenLayerText;
|
||||
import com.volmit.iris.generator.legacy.layer.GenLayerUpdate;
|
||||
import com.volmit.iris.generator.legacy.scaffold.TerrainChunk;
|
||||
import com.volmit.iris.generator.legacy.scaffold.TerrainTarget;
|
||||
import com.volmit.iris.object.*;
|
||||
import com.volmit.iris.util.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.bukkit.Chunk;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.block.data.BlockData;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.generator.BlockPopulator;
|
||||
|
||||
import com.volmit.iris.Iris;
|
||||
import com.volmit.iris.IrisSettings;
|
||||
import com.volmit.iris.gen.atomics.AtomicSliver;
|
||||
import com.volmit.iris.gen.atomics.AtomicSliverMap;
|
||||
import com.volmit.iris.gen.atomics.AtomicWorldData;
|
||||
import com.volmit.iris.gen.atomics.MasterLock;
|
||||
import com.volmit.iris.gen.layer.GenLayerText;
|
||||
import com.volmit.iris.gen.layer.GenLayerUpdate;
|
||||
import com.volmit.iris.gen.scaffold.TerrainChunk;
|
||||
import com.volmit.iris.gen.scaffold.TerrainTarget;
|
||||
import com.volmit.iris.object.IrisBiome;
|
||||
import com.volmit.iris.object.IrisBiomeMutation;
|
||||
import com.volmit.iris.object.IrisObjectPlacement;
|
||||
import com.volmit.iris.object.IrisRegion;
|
||||
import com.volmit.iris.object.IrisStructurePlacement;
|
||||
import com.volmit.iris.object.IrisTextPlacement;
|
||||
import com.volmit.iris.util.BiomeMap;
|
||||
import com.volmit.iris.util.CarveResult;
|
||||
import com.volmit.iris.util.CaveResult;
|
||||
import com.volmit.iris.util.ChunkPosition;
|
||||
import com.volmit.iris.util.HeightMap;
|
||||
import com.volmit.iris.util.IObjectPlacer;
|
||||
import com.volmit.iris.util.IrisLock;
|
||||
import com.volmit.iris.util.IrisStructureResult;
|
||||
import com.volmit.iris.util.J;
|
||||
import com.volmit.iris.util.KList;
|
||||
import com.volmit.iris.util.KMap;
|
||||
import com.volmit.iris.util.PrecisionStopwatch;
|
||||
import com.volmit.iris.util.RNG;
|
||||
import com.volmit.iris.util.Spiraler;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@@ -1,11 +1,11 @@
|
||||
package com.volmit.iris.gen;
|
||||
package com.volmit.iris.generator.legacy;
|
||||
|
||||
import com.volmit.iris.Iris;
|
||||
import com.volmit.iris.gen.atomics.AtomicSliver;
|
||||
import com.volmit.iris.gen.atomics.AtomicSliverMap;
|
||||
import com.volmit.iris.gen.scaffold.GeneratedChunk;
|
||||
import com.volmit.iris.gen.scaffold.TerrainChunk;
|
||||
import com.volmit.iris.gen.scaffold.TerrainTarget;
|
||||
import com.volmit.iris.generator.legacy.atomics.AtomicSliver;
|
||||
import com.volmit.iris.generator.legacy.atomics.AtomicSliverMap;
|
||||
import com.volmit.iris.generator.legacy.scaffold.GeneratedChunk;
|
||||
import com.volmit.iris.generator.legacy.scaffold.TerrainChunk;
|
||||
import com.volmit.iris.generator.legacy.scaffold.TerrainTarget;
|
||||
import com.volmit.iris.util.BiomeMap;
|
||||
import com.volmit.iris.util.GroupedExecutor;
|
||||
import com.volmit.iris.util.HeightMap;
|
||||
@@ -1,13 +1,13 @@
|
||||
package com.volmit.iris.gen;
|
||||
package com.volmit.iris.generator.legacy;
|
||||
|
||||
import org.bukkit.block.data.BlockData;
|
||||
import org.bukkit.generator.ChunkGenerator.ChunkData;
|
||||
|
||||
import com.volmit.iris.Iris;
|
||||
import com.volmit.iris.gen.post.PostMasterPatcher;
|
||||
import com.volmit.iris.gen.scaffold.GeneratedChunk;
|
||||
import com.volmit.iris.gen.scaffold.TerrainChunk;
|
||||
import com.volmit.iris.gen.scaffold.TerrainTarget;
|
||||
import com.volmit.iris.generator.legacy.post.PostMasterPatcher;
|
||||
import com.volmit.iris.generator.legacy.scaffold.GeneratedChunk;
|
||||
import com.volmit.iris.generator.legacy.scaffold.TerrainChunk;
|
||||
import com.volmit.iris.generator.legacy.scaffold.TerrainTarget;
|
||||
import com.volmit.iris.util.CaveResult;
|
||||
import com.volmit.iris.util.IPostBlockAccess;
|
||||
import com.volmit.iris.util.IrisLock;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.volmit.iris.gen;
|
||||
package com.volmit.iris.generator.legacy;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.Biome;
|
||||
@@ -6,16 +6,16 @@ import org.bukkit.block.data.Bisected;
|
||||
import org.bukkit.block.data.Bisected.Half;
|
||||
|
||||
import com.volmit.iris.Iris;
|
||||
import com.volmit.iris.gen.atomics.AtomicSliver;
|
||||
import com.volmit.iris.gen.atomics.AtomicSliverMap;
|
||||
import com.volmit.iris.gen.layer.GenLayerBiome;
|
||||
import com.volmit.iris.gen.layer.GenLayerCarve;
|
||||
import com.volmit.iris.gen.layer.GenLayerCave;
|
||||
import com.volmit.iris.gen.layer.GenLayerRavine;
|
||||
import com.volmit.iris.gen.scaffold.GeneratedChunk;
|
||||
import com.volmit.iris.gen.scaffold.TerrainChunk;
|
||||
import com.volmit.iris.gen.scaffold.TerrainTarget;
|
||||
import com.volmit.iris.noise.CNG;
|
||||
import com.volmit.iris.generator.legacy.atomics.AtomicSliver;
|
||||
import com.volmit.iris.generator.legacy.atomics.AtomicSliverMap;
|
||||
import com.volmit.iris.generator.legacy.layer.GenLayerBiome;
|
||||
import com.volmit.iris.generator.legacy.layer.GenLayerCarve;
|
||||
import com.volmit.iris.generator.legacy.layer.GenLayerCave;
|
||||
import com.volmit.iris.generator.legacy.layer.GenLayerRavine;
|
||||
import com.volmit.iris.generator.legacy.scaffold.GeneratedChunk;
|
||||
import com.volmit.iris.generator.legacy.scaffold.TerrainChunk;
|
||||
import com.volmit.iris.generator.legacy.scaffold.TerrainTarget;
|
||||
import com.volmit.iris.generator.noise.CNG;
|
||||
import com.volmit.iris.object.DecorationPart;
|
||||
import com.volmit.iris.object.InferredType;
|
||||
import com.volmit.iris.object.IrisBiome;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.volmit.iris.gen.atomics;
|
||||
package com.volmit.iris.generator.legacy.atomics;
|
||||
|
||||
import com.volmit.iris.object.IrisBiome;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.volmit.iris.gen.atomics;
|
||||
package com.volmit.iris.generator.legacy.atomics;
|
||||
|
||||
import java.util.function.Supplier;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.volmit.iris.gen.atomics;
|
||||
package com.volmit.iris.generator.legacy.atomics;
|
||||
|
||||
import com.google.common.util.concurrent.AtomicDoubleArray;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.volmit.iris.gen.atomics;
|
||||
package com.volmit.iris.generator.legacy.atomics;
|
||||
|
||||
import java.util.concurrent.atomic.AtomicIntegerArray;
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package com.volmit.iris.gen.atomics;
|
||||
package com.volmit.iris.generator.legacy.atomics;
|
||||
|
||||
import com.github.benmanes.caffeine.cache.Caffeine;
|
||||
import com.github.benmanes.caffeine.cache.LoadingCache;
|
||||
import com.volmit.iris.IrisSettings;
|
||||
import com.volmit.iris.gen.IrisTerrainProvider;
|
||||
import com.volmit.iris.generator.legacy.IrisTerrainProvider;
|
||||
import com.volmit.iris.object.IrisBiome;
|
||||
import com.volmit.iris.object.IrisRegion;
|
||||
import com.volmit.iris.util.ChunkPosition;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.volmit.iris.gen.atomics;
|
||||
package com.volmit.iris.generator.legacy.atomics;
|
||||
|
||||
import java.util.concurrent.atomic.AtomicReferenceArray;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.volmit.iris.gen.atomics;
|
||||
package com.volmit.iris.generator.legacy.atomics;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
@@ -9,7 +9,7 @@ import java.util.zip.GZIPInputStream;
|
||||
|
||||
import com.volmit.iris.Iris;
|
||||
import com.volmit.iris.IrisSettings;
|
||||
import com.volmit.iris.gen.scaffold.TerrainTarget;
|
||||
import com.volmit.iris.generator.legacy.scaffold.TerrainTarget;
|
||||
import com.volmit.iris.util.ByteArrayTag;
|
||||
import com.volmit.iris.util.CompoundTag;
|
||||
import com.volmit.iris.util.CustomOutputStream;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.volmit.iris.gen.atomics;
|
||||
package com.volmit.iris.generator.legacy.atomics;
|
||||
|
||||
import com.volmit.iris.object.IrisRegion;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.volmit.iris.gen.atomics;
|
||||
package com.volmit.iris.generator.legacy.atomics;
|
||||
|
||||
import java.io.DataInputStream;
|
||||
import java.io.DataOutputStream;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.volmit.iris.gen.atomics;
|
||||
package com.volmit.iris.generator.legacy.atomics;
|
||||
|
||||
import java.io.DataInputStream;
|
||||
import java.io.DataOutputStream;
|
||||
@@ -9,7 +9,7 @@ import java.io.OutputStream;
|
||||
import org.bukkit.generator.ChunkGenerator.BiomeGrid;
|
||||
import org.bukkit.generator.ChunkGenerator.ChunkData;
|
||||
|
||||
import com.volmit.iris.gen.DimensionalTerrainProvider;
|
||||
import com.volmit.iris.generator.legacy.DimensionalTerrainProvider;
|
||||
import com.volmit.iris.object.IrisStructure;
|
||||
import com.volmit.iris.object.IrisStructureTile;
|
||||
import com.volmit.iris.util.HeightMap;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.volmit.iris.gen.atomics;
|
||||
package com.volmit.iris.generator.legacy.atomics;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
@@ -6,7 +6,7 @@ import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
|
||||
import com.volmit.iris.Iris;
|
||||
import com.volmit.iris.gen.scaffold.TerrainTarget;
|
||||
import com.volmit.iris.generator.legacy.scaffold.TerrainTarget;
|
||||
import com.volmit.iris.util.ChunkPosition;
|
||||
import com.volmit.iris.util.IrisLock;
|
||||
import com.volmit.iris.util.KList;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.volmit.iris.gen.atomics;
|
||||
package com.volmit.iris.generator.legacy.atomics;
|
||||
|
||||
import com.volmit.iris.util.IrisLock;
|
||||
import com.volmit.iris.util.KMap;
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.volmit.iris.gen.layer;
|
||||
package com.volmit.iris.generator.legacy.layer;
|
||||
|
||||
import com.volmit.iris.Iris;
|
||||
import com.volmit.iris.gen.ContextualTerrainProvider;
|
||||
import com.volmit.iris.noise.CNG;
|
||||
import com.volmit.iris.generator.legacy.ContextualTerrainProvider;
|
||||
import com.volmit.iris.generator.noise.CNG;
|
||||
import com.volmit.iris.object.InferredType;
|
||||
import com.volmit.iris.object.IrisBiome;
|
||||
import com.volmit.iris.object.IrisGeneratorStyle;
|
||||
@@ -1,10 +1,10 @@
|
||||
package com.volmit.iris.gen.layer;
|
||||
package com.volmit.iris.generator.legacy.layer;
|
||||
|
||||
import com.volmit.iris.Iris;
|
||||
import com.volmit.iris.IrisSettings;
|
||||
import com.volmit.iris.gen.DimensionalTerrainProvider;
|
||||
import com.volmit.iris.gen.TopographicTerrainProvider;
|
||||
import com.volmit.iris.noise.CNG;
|
||||
import com.volmit.iris.generator.legacy.DimensionalTerrainProvider;
|
||||
import com.volmit.iris.generator.legacy.TopographicTerrainProvider;
|
||||
import com.volmit.iris.generator.noise.CNG;
|
||||
import com.volmit.iris.object.InferredType;
|
||||
import com.volmit.iris.object.IrisBiome;
|
||||
import com.volmit.iris.object.IrisRegion;
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.volmit.iris.gen.layer;
|
||||
package com.volmit.iris.generator.legacy.layer;
|
||||
|
||||
import com.volmit.iris.gen.TopographicTerrainProvider;
|
||||
import com.volmit.iris.generator.legacy.TopographicTerrainProvider;
|
||||
import com.volmit.iris.object.IrisCarveLayer;
|
||||
import com.volmit.iris.util.CarveResult;
|
||||
import com.volmit.iris.util.GenLayer;
|
||||
@@ -1,16 +1,16 @@
|
||||
package com.volmit.iris.gen.layer;
|
||||
package com.volmit.iris.generator.legacy.layer;
|
||||
|
||||
import java.util.function.Function;
|
||||
|
||||
import com.volmit.iris.util.*;
|
||||
import org.bukkit.Material;
|
||||
|
||||
import com.volmit.iris.gen.TopographicTerrainProvider;
|
||||
import com.volmit.iris.gen.atomics.AtomicSliver;
|
||||
import com.volmit.iris.noise.FastNoiseDouble;
|
||||
import com.volmit.iris.noise.FastNoiseDouble.CellularDistanceFunction;
|
||||
import com.volmit.iris.noise.FastNoiseDouble.CellularReturnType;
|
||||
import com.volmit.iris.noise.FastNoiseDouble.NoiseType;
|
||||
import com.volmit.iris.generator.legacy.TopographicTerrainProvider;
|
||||
import com.volmit.iris.generator.legacy.atomics.AtomicSliver;
|
||||
import com.volmit.iris.generator.noise.FastNoiseDouble;
|
||||
import com.volmit.iris.generator.noise.FastNoiseDouble.CellularDistanceFunction;
|
||||
import com.volmit.iris.generator.noise.FastNoiseDouble.CellularReturnType;
|
||||
import com.volmit.iris.generator.noise.FastNoiseDouble.NoiseType;
|
||||
import com.volmit.iris.object.IrisCaveLayer;
|
||||
import org.bukkit.block.data.BlockData;
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
package com.volmit.iris.gen.layer;
|
||||
package com.volmit.iris.generator.legacy.layer;
|
||||
|
||||
import org.bukkit.Material;
|
||||
|
||||
import com.volmit.iris.gen.TopographicTerrainProvider;
|
||||
import com.volmit.iris.gen.atomics.AtomicSliverMap;
|
||||
import com.volmit.iris.gen.scaffold.TerrainChunk;
|
||||
import com.volmit.iris.noise.CNG;
|
||||
import com.volmit.iris.generator.legacy.TopographicTerrainProvider;
|
||||
import com.volmit.iris.generator.legacy.atomics.AtomicSliverMap;
|
||||
import com.volmit.iris.generator.legacy.scaffold.TerrainChunk;
|
||||
import com.volmit.iris.generator.noise.CNG;
|
||||
import com.volmit.iris.object.NoiseStyle;
|
||||
import com.volmit.iris.util.B;
|
||||
import com.volmit.iris.util.BiomeMap;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.volmit.iris.gen.layer;
|
||||
package com.volmit.iris.generator.legacy.layer;
|
||||
|
||||
import java.awt.Font;
|
||||
import java.awt.Graphics;
|
||||
@@ -6,8 +6,8 @@ import java.awt.Graphics2D;
|
||||
import java.awt.image.BufferedImage;
|
||||
|
||||
import com.volmit.iris.Iris;
|
||||
import com.volmit.iris.gen.TopographicTerrainProvider;
|
||||
import com.volmit.iris.gen.atomics.AtomicCache;
|
||||
import com.volmit.iris.generator.legacy.TopographicTerrainProvider;
|
||||
import com.volmit.iris.generator.legacy.atomics.AtomicCache;
|
||||
import com.volmit.iris.object.IrisMaterialPalette;
|
||||
import com.volmit.iris.object.IrisObject;
|
||||
import com.volmit.iris.util.B;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.volmit.iris.gen.layer;
|
||||
package com.volmit.iris.generator.legacy.layer;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Random;
|
||||
@@ -14,10 +14,10 @@ import org.bukkit.inventory.InventoryHolder;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import com.volmit.iris.IrisSettings;
|
||||
import com.volmit.iris.gen.IrisTerrainProvider;
|
||||
import com.volmit.iris.gen.ParallaxTerrainProvider;
|
||||
import com.volmit.iris.gen.atomics.AtomicSliverMap;
|
||||
import com.volmit.iris.gen.scaffold.ChunkWrapper;
|
||||
import com.volmit.iris.generator.legacy.IrisTerrainProvider;
|
||||
import com.volmit.iris.generator.legacy.ParallaxTerrainProvider;
|
||||
import com.volmit.iris.generator.legacy.atomics.AtomicSliverMap;
|
||||
import com.volmit.iris.generator.legacy.scaffold.ChunkWrapper;
|
||||
import com.volmit.iris.object.InventorySlotType;
|
||||
import com.volmit.iris.object.IrisBiome;
|
||||
import com.volmit.iris.object.IrisDepositGenerator;
|
||||
@@ -1,10 +1,9 @@
|
||||
package com.volmit.iris.gen.nms;
|
||||
package com.volmit.iris.generator.legacy.nms;
|
||||
|
||||
import com.volmit.iris.Iris;
|
||||
import com.volmit.iris.IrisSettings;
|
||||
import com.volmit.iris.gen.nms.v16_2.NMSBinding16_2;
|
||||
import com.volmit.iris.gen.nms.v16_3.NMSBinding16_3;
|
||||
import com.volmit.iris.gen.nms.v1X.NMSBinding1X;
|
||||
import com.volmit.iris.generator.legacy.nms.v16_2.NMSBinding16_2;
|
||||
import com.volmit.iris.generator.legacy.nms.v1X.NMSBinding1X;
|
||||
import com.volmit.iris.util.KMap;
|
||||
import org.bukkit.Bukkit;
|
||||
|
||||
@@ -12,8 +11,7 @@ public class INMS
|
||||
{
|
||||
//@builder
|
||||
private static final KMap<String, Class<? extends INMSBinding>> bindings = new KMap<String, Class<? extends INMSBinding>>()
|
||||
.qput("v1_16_R2", NMSBinding16_2.class)
|
||||
.qput("v1_16_R3", NMSBinding16_3.class);
|
||||
.qput("v1_16_R2", NMSBinding16_2.class);
|
||||
//@done
|
||||
private static final INMSBinding binding = bind();
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.volmit.iris.gen.nms;
|
||||
package com.volmit.iris.generator.legacy.nms;
|
||||
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.WorldCreator;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.volmit.iris.gen.nms;
|
||||
package com.volmit.iris.generator.legacy.nms;
|
||||
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.WorldCreator;
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.volmit.iris.generator.legacy.nms.v16_2;
|
||||
|
||||
import com.volmit.iris.generator.legacy.atomics.AtomicCache;
|
||||
import com.volmit.iris.generator.legacy.nms.INMSBinding;
|
||||
import com.volmit.iris.generator.legacy.nms.INMSCreator;
|
||||
|
||||
public class NMSBinding16_2 implements INMSBinding
|
||||
{
|
||||
private final AtomicCache<INMSCreator> creator = new AtomicCache<>();
|
||||
|
||||
@Override
|
||||
public INMSCreator getCreator()
|
||||
{
|
||||
return creator.aquire(NMSCreator16_2::new);
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.volmit.iris.gen.nms.v16_2;
|
||||
package com.volmit.iris.generator.legacy.nms.v16_2;
|
||||
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
@@ -1,12 +1,14 @@
|
||||
package com.volmit.iris.gen.nms.v16_2;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Random;
|
||||
import java.util.function.Supplier;
|
||||
package com.volmit.iris.generator.legacy.nms.v16_2;
|
||||
|
||||
import com.mojang.serialization.Codec;
|
||||
import com.volmit.iris.generator.legacy.provisions.ProvisionBukkit;
|
||||
import com.volmit.iris.generator.legacy.scaffold.GeneratedChunk;
|
||||
import com.volmit.iris.scaffold.engine.IrisAccess;
|
||||
import com.volmit.iris.util.O;
|
||||
import com.volmit.iris.util.V;
|
||||
import it.unimi.dsi.fastutil.objects.ObjectArrayList;
|
||||
import it.unimi.dsi.fastutil.objects.ObjectList;
|
||||
import net.minecraft.server.v1_16_R2.*;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.Biome;
|
||||
import org.bukkit.block.data.BlockData;
|
||||
@@ -17,71 +19,14 @@ import org.bukkit.generator.ChunkGenerator.BiomeGrid;
|
||||
import org.bukkit.generator.ChunkGenerator.ChunkData;
|
||||
import org.bukkit.material.MaterialData;
|
||||
|
||||
import com.mojang.serialization.Codec;
|
||||
import com.volmit.iris.gen.IrisTerrainProvider;
|
||||
import com.volmit.iris.gen.provisions.ProvisionBukkit;
|
||||
import com.volmit.iris.gen.scaffold.GeneratedChunk;
|
||||
import com.volmit.iris.gen.scaffold.Provisioned;
|
||||
import com.volmit.iris.gen.scaffold.ProvisionedHolder;
|
||||
import com.volmit.iris.gen.scaffold.TerrainProvider;
|
||||
import com.volmit.iris.util.O;
|
||||
import com.volmit.iris.util.V;
|
||||
|
||||
import it.unimi.dsi.fastutil.objects.ObjectArrayList;
|
||||
import it.unimi.dsi.fastutil.objects.ObjectList;
|
||||
import net.minecraft.server.v1_16_R2.BiomeBase;
|
||||
import net.minecraft.server.v1_16_R2.BiomeManager;
|
||||
import net.minecraft.server.v1_16_R2.BiomeSettingsMobs;
|
||||
import net.minecraft.server.v1_16_R2.Block;
|
||||
import net.minecraft.server.v1_16_R2.BlockColumn;
|
||||
import net.minecraft.server.v1_16_R2.BlockPosition;
|
||||
import net.minecraft.server.v1_16_R2.Blocks;
|
||||
import net.minecraft.server.v1_16_R2.ChunkCoordIntPair;
|
||||
import net.minecraft.server.v1_16_R2.ChunkGenerator;
|
||||
import net.minecraft.server.v1_16_R2.ChunkGeneratorAbstract;
|
||||
import net.minecraft.server.v1_16_R2.CrashReport;
|
||||
import net.minecraft.server.v1_16_R2.CrashReportSystemDetails;
|
||||
import net.minecraft.server.v1_16_R2.DefinedStructureManager;
|
||||
import net.minecraft.server.v1_16_R2.EnumCreatureType;
|
||||
import net.minecraft.server.v1_16_R2.GeneratorAccess;
|
||||
import net.minecraft.server.v1_16_R2.GeneratorAccessSeed;
|
||||
import net.minecraft.server.v1_16_R2.GeneratorSettingBase;
|
||||
import net.minecraft.server.v1_16_R2.HeightMap;
|
||||
import net.minecraft.server.v1_16_R2.IBlockAccess;
|
||||
import net.minecraft.server.v1_16_R2.IBlockData;
|
||||
import net.minecraft.server.v1_16_R2.IChunkAccess;
|
||||
import net.minecraft.server.v1_16_R2.IRegistry;
|
||||
import net.minecraft.server.v1_16_R2.IRegistryCustom;
|
||||
import net.minecraft.server.v1_16_R2.IStructureAccess;
|
||||
import net.minecraft.server.v1_16_R2.NoiseSettings;
|
||||
import net.minecraft.server.v1_16_R2.PacketDebug;
|
||||
import net.minecraft.server.v1_16_R2.ProtoChunk;
|
||||
import net.minecraft.server.v1_16_R2.RegionLimitedWorldAccess;
|
||||
import net.minecraft.server.v1_16_R2.ReportedException;
|
||||
import net.minecraft.server.v1_16_R2.ResourceKey;
|
||||
import net.minecraft.server.v1_16_R2.SectionPosition;
|
||||
import net.minecraft.server.v1_16_R2.SeededRandom;
|
||||
import net.minecraft.server.v1_16_R2.SpawnerCreature;
|
||||
import net.minecraft.server.v1_16_R2.StructureBoundingBox;
|
||||
import net.minecraft.server.v1_16_R2.StructureFeature;
|
||||
import net.minecraft.server.v1_16_R2.StructureFeatures;
|
||||
import net.minecraft.server.v1_16_R2.StructureGenerator;
|
||||
import net.minecraft.server.v1_16_R2.StructureManager;
|
||||
import net.minecraft.server.v1_16_R2.StructurePiece;
|
||||
import net.minecraft.server.v1_16_R2.StructureSettingsFeature;
|
||||
import net.minecraft.server.v1_16_R2.StructureStart;
|
||||
import net.minecraft.server.v1_16_R2.WorldChunkManager;
|
||||
import net.minecraft.server.v1_16_R2.WorldGenFeatureDefinedStructureJigsawJunction;
|
||||
import net.minecraft.server.v1_16_R2.WorldGenFeatureDefinedStructurePoolTemplate;
|
||||
import net.minecraft.server.v1_16_R2.WorldGenFeaturePillagerOutpostPoolPiece;
|
||||
import net.minecraft.server.v1_16_R2.WorldGenStage;
|
||||
import net.minecraft.server.v1_16_R2.WorldServer;
|
||||
import java.util.*;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
public class NMSChunkGenerator16_2_PAPER extends ChunkGenerator implements ProvisionedHolder
|
||||
public class NMSChunkGenerator16_2_PAPER extends ChunkGenerator
|
||||
{
|
||||
private static final IBlockData k = Blocks.AIR.getBlockData();
|
||||
private final Provisioned provisioned;
|
||||
private final IrisAccess provisioned;
|
||||
private final int maxHeight;
|
||||
private final int xzSize;
|
||||
protected final IBlockData f;
|
||||
@@ -91,12 +36,12 @@ public class NMSChunkGenerator16_2_PAPER extends ChunkGenerator implements Provi
|
||||
private final O<WorldServer> ws;
|
||||
private BlockColumn BC;
|
||||
|
||||
public NMSChunkGenerator16_2_PAPER(Provisioned p, O<WorldServer> ws, WorldChunkManager worldchunkmanager, long i, Supplier<GeneratorSettingBase> supplier)
|
||||
public NMSChunkGenerator16_2_PAPER(IrisAccess p, O<WorldServer> ws, WorldChunkManager worldchunkmanager, long i, Supplier<GeneratorSettingBase> supplier)
|
||||
{
|
||||
this(p, ws, worldchunkmanager, worldchunkmanager, i, supplier);
|
||||
}
|
||||
|
||||
private NMSChunkGenerator16_2_PAPER(Provisioned p, O<WorldServer> ws, WorldChunkManager worldchunkmanager, WorldChunkManager worldchunkmanager1, long i, Supplier<GeneratorSettingBase> supplier)
|
||||
private NMSChunkGenerator16_2_PAPER(IrisAccess p, O<WorldServer> ws, WorldChunkManager worldchunkmanager, WorldChunkManager worldchunkmanager1, long i, Supplier<GeneratorSettingBase> supplier)
|
||||
{
|
||||
super(worldchunkmanager, worldchunkmanager1, supplier.get().a(), i);
|
||||
this.provisioned = p;
|
||||
@@ -131,7 +76,7 @@ public class NMSChunkGenerator16_2_PAPER extends ChunkGenerator implements Provi
|
||||
|
||||
public void doCarving(long i, BiomeManager biomemanager, IChunkAccess ichunkaccess, WorldGenStage.Features worldgenstage_features)
|
||||
{
|
||||
if(((IrisTerrainProvider) provisioned.getProvider()).getDimension().isVanillaCaves())
|
||||
if(provisioned.getCompound().getRootDimension().isVanillaCaves())
|
||||
{
|
||||
super.doCarving(i, biomemanager, ichunkaccess, worldgenstage_features);
|
||||
}
|
||||
@@ -195,7 +140,7 @@ public class NMSChunkGenerator16_2_PAPER extends ChunkGenerator implements Provi
|
||||
int i = chunkcoordintpair.x;
|
||||
int j = chunkcoordintpair.z;
|
||||
|
||||
if(((IrisTerrainProvider) provisioned.getProvider()).shouldGenerateVanillaStructures())
|
||||
if(provisioned.getCompound().getRootDimension().isVanillaStructures())
|
||||
{
|
||||
int k = i << 4;
|
||||
int l = j << 4;
|
||||
@@ -438,7 +383,7 @@ public class NMSChunkGenerator16_2_PAPER extends ChunkGenerator implements Provi
|
||||
|
||||
public void addDecorations(RegionLimitedWorldAccess regionlimitedworldaccess, StructureManager structuremanager)
|
||||
{
|
||||
if(((IrisTerrainProvider) provisioned.getProvider()).shouldGenerateVanillaStructures())
|
||||
if(provisioned.getCompound().getRootDimension().isVanillaStructures())
|
||||
{
|
||||
int i = regionlimitedworldaccess.a();
|
||||
int j = regionlimitedworldaccess.b();
|
||||
@@ -461,7 +406,7 @@ public class NMSChunkGenerator16_2_PAPER extends ChunkGenerator implements Provi
|
||||
|
||||
public void a(BiomeBase bbase, StructureManager var0, ChunkGenerator var1, RegionLimitedWorldAccess var2, long var3, SeededRandom var5, BlockPosition var6)
|
||||
{
|
||||
if(!((IrisTerrainProvider) provisioned.getProvider()).shouldGenerateVanillaStructures())
|
||||
if(!provisioned.getCompound().getRootDimension().isVanillaStructures())
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -592,7 +537,7 @@ public class NMSChunkGenerator16_2_PAPER extends ChunkGenerator implements Provi
|
||||
@Override
|
||||
public int getSeaLevel()
|
||||
{
|
||||
return ((IrisTerrainProvider) provisioned.getProvider()).getFluidHeight();
|
||||
return provisioned.getCompound().getRootDimension().getFluidHeight();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -713,28 +658,4 @@ public class NMSChunkGenerator16_2_PAPER extends ChunkGenerator implements Provi
|
||||
++i1;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Provisioned getProvisioned()
|
||||
{
|
||||
return provisioned;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void clearRegeneratedLists()
|
||||
{
|
||||
getProvisioned().clearRegeneratedLists();
|
||||
}
|
||||
|
||||
@Override
|
||||
public TerrainProvider getProvider()
|
||||
{
|
||||
return getProvisioned().getProvider();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void regenerate(int x, int z)
|
||||
{
|
||||
getProvisioned().regenerate(x, z);
|
||||
}
|
||||
}
|
||||
@@ -1,24 +1,23 @@
|
||||
package com.volmit.iris.gen.nms.v16_3;
|
||||
package com.volmit.iris.generator.legacy.nms.v16_2;
|
||||
|
||||
import com.google.common.base.Preconditions;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
import com.mojang.serialization.DynamicOps;
|
||||
import com.mojang.serialization.Lifecycle;
|
||||
import com.volmit.iris.gen.nms.INMSCreator;
|
||||
import com.volmit.iris.gen.scaffold.IrisWorlds;
|
||||
import com.volmit.iris.gen.scaffold.Provisioned;
|
||||
import com.volmit.iris.generator.legacy.nms.INMSCreator;
|
||||
import com.volmit.iris.scaffold.IrisWorlds;
|
||||
import com.volmit.iris.scaffold.engine.IrisAccess;
|
||||
import com.volmit.iris.util.O;
|
||||
import com.volmit.iris.util.V;
|
||||
import io.papermc.lib.PaperLib;
|
||||
import net.minecraft.server.v1_16_R3.*;
|
||||
import net.minecraft.server.v1_16_R3.IRegistryCustom.Dimension;
|
||||
import net.minecraft.server.v1_16_R2.*;
|
||||
import net.minecraft.server.v1_16_R2.IRegistryCustom.Dimension;
|
||||
import org.apache.commons.lang.Validate;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.World.Environment;
|
||||
import org.bukkit.WorldCreator;
|
||||
import org.bukkit.craftbukkit.v1_16_R3.CraftServer;
|
||||
import org.bukkit.craftbukkit.v1_16_R2.CraftServer;
|
||||
import org.bukkit.event.Event;
|
||||
import org.bukkit.event.world.WorldInitEvent;
|
||||
import org.bukkit.event.world.WorldLoadEvent;
|
||||
@@ -29,7 +28,7 @@ import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Modifier;
|
||||
import java.util.*;
|
||||
|
||||
class NMSCreator16_3 implements INMSCreator
|
||||
class NMSCreator16_2 implements INMSCreator
|
||||
{
|
||||
@SuppressWarnings({"unchecked", "rawtypes", "resource"})
|
||||
public World createWorld(WorldCreator creator, boolean loadSpawn)
|
||||
@@ -39,7 +38,7 @@ class NMSCreator16_3 implements INMSCreator
|
||||
return creator.createWorld();
|
||||
}
|
||||
|
||||
Provisioned pro = (Provisioned) creator.generator();
|
||||
IrisAccess pro = (IrisAccess) creator.generator();
|
||||
CraftServer server = ((CraftServer) Bukkit.getServer());
|
||||
Map<String, World> worlds = new V(server).get("worlds");
|
||||
DedicatedServer console = new V(server).get("console");
|
||||
@@ -117,22 +116,17 @@ class NMSCreator16_3 implements INMSCreator
|
||||
worlddata.a(console.getServerModName(), console.getModded().isPresent());
|
||||
if(console.options.has("forceUpgrade"))
|
||||
{
|
||||
net.minecraft.server.v1_16_R3.Main.convertWorld(worldSession, DataConverterRegistry.a(), console.options.has("eraseCache"), () -> true, (ImmutableSet) worlddata.getGeneratorSettings().d().d().stream().map(entry -> ResourceKey.a(IRegistry.K, entry.getKey().a())).collect(ImmutableSet.toImmutableSet()));
|
||||
net.minecraft.server.v1_16_R2.Main.convertWorld(worldSession, DataConverterRegistry.a(), console.options.has("eraseCache"), () -> true, (ImmutableSet) worlddata.getGeneratorSettings().d().d().stream().map(entry -> ResourceKey.a(IRegistry.K, entry.getKey().a())).collect(ImmutableSet.toImmutableSet()));
|
||||
}
|
||||
final long j = BiomeManager.a(creator.seed());
|
||||
final List<MobSpawner> list = (List<MobSpawner>) ImmutableList.of((MobSpawner) new MobSpawnerPhantom(), (MobSpawner) new MobSpawnerPatrol(), (MobSpawner) new MobSpawnerCat(), (MobSpawner) new VillageSiege(), (MobSpawner) new MobSpawnerTrader((IWorldDataServer) worlddata));
|
||||
DimensionManager dimensionmanager;
|
||||
net.minecraft.server.v1_16_R3.ChunkGenerator chunkgenerator;
|
||||
net.minecraft.server.v1_16_R2.ChunkGenerator chunkgenerator;
|
||||
long ll = creator.seed();
|
||||
dimensionmanager = (DimensionManager) getConsoleDimension(console).a().d(DimensionManager.OVERWORLD);
|
||||
O<WorldServer> ws = new O<WorldServer>();
|
||||
chunkgenerator = PaperLib.isPaper() ? new NMSChunkGenerator16_3_PAPER(pro, ws, (WorldChunkManager) new WorldChunkManagerOverworld(ll, false, false, (IRegistry<BiomeBase>) getConsoleDimension(console).b(IRegistry.ay)), ll,
|
||||
|
||||
() -> (GeneratorSettingBase)
|
||||
getConsoleDimension(console)
|
||||
.b(IRegistry.ar)
|
||||
.d(GeneratorSettingBase.c)) : new NMSChunkGenerator16_3_SPIGOT(pro, ws, (WorldChunkManager) new WorldChunkManagerOverworld(ll, false, false, (IRegistry<BiomeBase>) getConsoleDimension(console).b(IRegistry.ay)), ll, () -> (GeneratorSettingBase) getConsoleDimension(console).b(IRegistry.ar).d(GeneratorSettingBase.c));
|
||||
final ResourceKey<net.minecraft.server.v1_16_R3.World> worldKey = (ResourceKey<net.minecraft.server.v1_16_R3.World>) ResourceKey.a(IRegistry.L, new MinecraftKey(name.toLowerCase(Locale.ENGLISH)));
|
||||
chunkgenerator = new NMSChunkGenerator16_2_PAPER(pro, ws, (WorldChunkManager) new WorldChunkManagerOverworld(ll, false, false, (IRegistry<BiomeBase>) getConsoleDimension(console).b(IRegistry.ay)), ll, () -> (GeneratorSettingBase) getConsoleDimension(console).b(IRegistry.ar).d(GeneratorSettingBase.c));
|
||||
final ResourceKey<net.minecraft.server.v1_16_R2.World> worldKey = (ResourceKey<net.minecraft.server.v1_16_R2.World>) ResourceKey.a(IRegistry.L, new MinecraftKey(name.toLowerCase(Locale.ENGLISH)));
|
||||
//@builder
|
||||
final WorldServer internal = new WorldServer((MinecraftServer) console,
|
||||
console.executorService, worldSession,
|
||||
@@ -143,7 +137,7 @@ class NMSCreator16_3 implements INMSCreator
|
||||
chunkgenerator,
|
||||
worlddata.getGeneratorSettings().isDebugWorld(),
|
||||
j,
|
||||
(List) ((creator.environment() == Environment.NORMAL) ? list : ImmutableList.of()),
|
||||
(List) ((creator.environment() == World.Environment.NORMAL) ? list : ImmutableList.of()),
|
||||
true,
|
||||
creator.environment(),
|
||||
server.getGenerator(name));
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.volmit.iris.generator.legacy.nms.v1X;
|
||||
|
||||
import com.volmit.iris.generator.legacy.atomics.AtomicCache;
|
||||
import com.volmit.iris.generator.legacy.nms.INMSBinding;
|
||||
import com.volmit.iris.generator.legacy.nms.INMSCreator;
|
||||
|
||||
public class NMSBinding1X implements INMSBinding
|
||||
{
|
||||
private final AtomicCache<INMSCreator> creator = new AtomicCache<>();
|
||||
|
||||
@Override
|
||||
public INMSCreator getCreator()
|
||||
{
|
||||
return creator.aquire(NMSCreator1X::new);
|
||||
}
|
||||
}
|
||||
@@ -1,9 +1,9 @@
|
||||
package com.volmit.iris.gen.nms.v1X;
|
||||
package com.volmit.iris.generator.legacy.nms.v1X;
|
||||
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.WorldCreator;
|
||||
|
||||
import com.volmit.iris.gen.nms.INMSCreator;
|
||||
import com.volmit.iris.generator.legacy.nms.INMSCreator;
|
||||
|
||||
class NMSCreator1X implements INMSCreator
|
||||
{
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.volmit.iris.gen.post;
|
||||
package com.volmit.iris.generator.legacy.post;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.data.BlockData;
|
||||
@@ -7,7 +7,7 @@ import org.bukkit.block.data.type.Slab;
|
||||
import org.bukkit.block.data.type.Slab.Type;
|
||||
import org.bukkit.generator.ChunkGenerator.ChunkData;
|
||||
|
||||
import com.volmit.iris.gen.PostBlockTerrainProvider;
|
||||
import com.volmit.iris.generator.legacy.PostBlockTerrainProvider;
|
||||
import com.volmit.iris.object.InferredType;
|
||||
import com.volmit.iris.object.IrisBiome;
|
||||
import com.volmit.iris.util.B;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.volmit.iris.gen.provisions;
|
||||
package com.volmit.iris.generator.legacy.provisions;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
@@ -15,12 +15,12 @@ import org.bukkit.generator.BlockPopulator;
|
||||
import org.bukkit.generator.ChunkGenerator;
|
||||
|
||||
import com.volmit.iris.Iris;
|
||||
import com.volmit.iris.gen.IrisTerrainProvider;
|
||||
import com.volmit.iris.gen.scaffold.GeneratedChunk;
|
||||
import com.volmit.iris.gen.scaffold.HeightedFakeWorld;
|
||||
import com.volmit.iris.gen.scaffold.Provisioned;
|
||||
import com.volmit.iris.gen.scaffold.TerrainChunk;
|
||||
import com.volmit.iris.gen.scaffold.TerrainProvider;
|
||||
import com.volmit.iris.generator.legacy.IrisTerrainProvider;
|
||||
import com.volmit.iris.generator.legacy.scaffold.GeneratedChunk;
|
||||
import com.volmit.iris.generator.legacy.scaffold.HeightedFakeWorld;
|
||||
import com.volmit.iris.generator.legacy.scaffold.Provisioned;
|
||||
import com.volmit.iris.generator.legacy.scaffold.TerrainChunk;
|
||||
import com.volmit.iris.generator.legacy.scaffold.TerrainProvider;
|
||||
import com.volmit.iris.util.ChunkPosition;
|
||||
import com.volmit.iris.util.KList;
|
||||
import com.volmit.iris.util.KMap;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.volmit.iris.gen.scaffold;
|
||||
package com.volmit.iris.generator.legacy.scaffold;
|
||||
|
||||
import org.bukkit.Chunk;
|
||||
import org.bukkit.Material;
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.volmit.iris.gen.scaffold;
|
||||
package com.volmit.iris.generator.legacy.scaffold;
|
||||
|
||||
import com.volmit.iris.gen.atomics.AtomicSliverMap;
|
||||
import com.volmit.iris.generator.legacy.atomics.AtomicSliverMap;
|
||||
import com.volmit.iris.util.BiomeMap;
|
||||
import com.volmit.iris.util.HeightMap;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.volmit.iris.gen.scaffold;
|
||||
package com.volmit.iris.generator.legacy.scaffold;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Collection;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.volmit.iris.gen.scaffold;
|
||||
package com.volmit.iris.generator.legacy.scaffold;
|
||||
|
||||
import org.bukkit.block.Biome;
|
||||
import org.bukkit.generator.ChunkGenerator.BiomeGrid;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.volmit.iris.gen.scaffold;
|
||||
package com.volmit.iris.generator.legacy.scaffold;
|
||||
|
||||
import com.volmit.iris.object.IrisBiome;
|
||||
import com.volmit.iris.object.IrisDimension;
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.volmit.iris.gen.scaffold;
|
||||
package com.volmit.iris.generator.legacy.scaffold;
|
||||
|
||||
import com.volmit.iris.gen.IrisTerrainProvider;
|
||||
import com.volmit.iris.generator.legacy.IrisTerrainProvider;
|
||||
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.volmit.iris.gen.scaffold;
|
||||
package com.volmit.iris.generator.legacy.scaffold;
|
||||
|
||||
import com.volmit.iris.Iris;
|
||||
import com.volmit.iris.util.RollingSequence;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.volmit.iris.gen.scaffold;
|
||||
package com.volmit.iris.generator.legacy.scaffold;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.volmit.iris.gen.scaffold;
|
||||
package com.volmit.iris.generator.legacy.scaffold;
|
||||
|
||||
public interface Provisioned
|
||||
{
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.volmit.iris.gen.scaffold;
|
||||
package com.volmit.iris.generator.legacy.scaffold;
|
||||
|
||||
public interface ProvisionedHolder extends Provisioned
|
||||
{
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.volmit.iris.gen.scaffold;
|
||||
package com.volmit.iris.generator.legacy.scaffold;
|
||||
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.block.Biome;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.volmit.iris.gen.scaffold;
|
||||
package com.volmit.iris.generator.legacy.scaffold;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.volmit.iris.gen.scaffold;
|
||||
package com.volmit.iris.generator.legacy.scaffold;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
@@ -1,15 +1,15 @@
|
||||
package com.volmit.iris.v2.generator.modifier;
|
||||
package com.volmit.iris.generator.modifier;
|
||||
|
||||
import com.volmit.iris.noise.FastNoiseDouble;
|
||||
import com.volmit.iris.generator.noise.FastNoiseDouble;
|
||||
import com.volmit.iris.object.IrisBiome;
|
||||
import com.volmit.iris.object.IrisCaveLayer;
|
||||
import com.volmit.iris.util.B;
|
||||
import com.volmit.iris.util.CaveResult;
|
||||
import com.volmit.iris.util.KList;
|
||||
import com.volmit.iris.util.RNG;
|
||||
import com.volmit.iris.v2.scaffold.engine.Engine;
|
||||
import com.volmit.iris.v2.scaffold.engine.EngineAssignedModifier;
|
||||
import com.volmit.iris.v2.scaffold.hunk.Hunk;
|
||||
import com.volmit.iris.scaffold.engine.Engine;
|
||||
import com.volmit.iris.scaffold.engine.EngineAssignedModifier;
|
||||
import com.volmit.iris.scaffold.hunk.Hunk;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.data.BlockData;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.volmit.iris.v2.generator.modifier;
|
||||
package com.volmit.iris.generator.modifier;
|
||||
|
||||
import com.volmit.iris.object.IrisBiome;
|
||||
import com.volmit.iris.object.IrisDepositGenerator;
|
||||
@@ -6,9 +6,9 @@ import com.volmit.iris.object.IrisObject;
|
||||
import com.volmit.iris.object.IrisRegion;
|
||||
import com.volmit.iris.util.HeightMap;
|
||||
import com.volmit.iris.util.RNG;
|
||||
import com.volmit.iris.v2.scaffold.engine.Engine;
|
||||
import com.volmit.iris.v2.scaffold.engine.EngineAssignedModifier;
|
||||
import com.volmit.iris.v2.scaffold.hunk.Hunk;
|
||||
import com.volmit.iris.scaffold.engine.Engine;
|
||||
import com.volmit.iris.scaffold.engine.EngineAssignedModifier;
|
||||
import com.volmit.iris.scaffold.hunk.Hunk;
|
||||
import org.bukkit.block.data.BlockData;
|
||||
import org.bukkit.util.BlockVector;
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
package com.volmit.iris.v2.generator.modifier;
|
||||
package com.volmit.iris.generator.modifier;
|
||||
|
||||
import com.volmit.iris.object.*;
|
||||
import com.volmit.iris.util.B;
|
||||
import com.volmit.iris.util.CaveResult;
|
||||
import com.volmit.iris.util.RNG;
|
||||
import com.volmit.iris.v2.scaffold.engine.Engine;
|
||||
import com.volmit.iris.v2.scaffold.engine.EngineAssignedModifier;
|
||||
import com.volmit.iris.v2.scaffold.hunk.Hunk;
|
||||
import com.volmit.iris.scaffold.engine.Engine;
|
||||
import com.volmit.iris.scaffold.engine.EngineAssignedModifier;
|
||||
import com.volmit.iris.scaffold.hunk.Hunk;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.data.BlockData;
|
||||
import org.bukkit.block.data.Levelled;
|
||||
@@ -1,11 +1,11 @@
|
||||
package com.volmit.iris.v2.generator.modifier;
|
||||
package com.volmit.iris.generator.modifier;
|
||||
|
||||
import com.volmit.iris.noise.CNG;
|
||||
import com.volmit.iris.generator.noise.CNG;
|
||||
import com.volmit.iris.object.NoiseStyle;
|
||||
import com.volmit.iris.util.*;
|
||||
import com.volmit.iris.v2.scaffold.engine.Engine;
|
||||
import com.volmit.iris.v2.scaffold.engine.EngineAssignedModifier;
|
||||
import com.volmit.iris.v2.scaffold.hunk.Hunk;
|
||||
import com.volmit.iris.scaffold.engine.Engine;
|
||||
import com.volmit.iris.scaffold.engine.EngineAssignedModifier;
|
||||
import com.volmit.iris.scaffold.hunk.Hunk;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.data.BlockData;
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
package com.volmit.iris.noise;
|
||||
package com.volmit.iris.generator.noise;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.volmit.iris.Iris;
|
||||
import com.volmit.iris.v2.scaffold.stream.ProceduralStream;
|
||||
import com.volmit.iris.v2.scaffold.stream.sources.CNGStream;
|
||||
import com.volmit.iris.v2.scaffold.stream.arithmetic.FittedStream;
|
||||
import com.volmit.iris.scaffold.stream.ProceduralStream;
|
||||
import com.volmit.iris.scaffold.stream.sources.CNGStream;
|
||||
import com.volmit.iris.scaffold.stream.arithmetic.FittedStream;
|
||||
import com.volmit.iris.util.IRare;
|
||||
import com.volmit.iris.util.IrisInterpolation;
|
||||
import com.volmit.iris.util.KList;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.volmit.iris.noise;
|
||||
package com.volmit.iris.generator.noise;
|
||||
|
||||
import com.volmit.iris.util.RNG;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.volmit.iris.noise;
|
||||
package com.volmit.iris.generator.noise;
|
||||
|
||||
import com.volmit.iris.util.RNG;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.volmit.iris.noise;
|
||||
package com.volmit.iris.generator.noise;
|
||||
|
||||
import com.volmit.iris.util.M;
|
||||
import com.volmit.iris.util.RNG;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.volmit.iris.noise;
|
||||
package com.volmit.iris.generator.noise;
|
||||
|
||||
import com.volmit.iris.util.RNG;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.volmit.iris.noise;
|
||||
package com.volmit.iris.generator.noise;
|
||||
|
||||
import com.volmit.iris.util.RNG;
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
// off every 'zix'.)
|
||||
//
|
||||
|
||||
package com.volmit.iris.noise;
|
||||
package com.volmit.iris.generator.noise;
|
||||
|
||||
import com.volmit.iris.util.Vector2f;
|
||||
import com.volmit.iris.util.Vector3f;
|
||||
@@ -25,7 +25,7 @@
|
||||
// The developer's email is jorzixdan.me2@gzixmail.com (for great email, take
|
||||
// off every 'zix'.)
|
||||
//
|
||||
package com.volmit.iris.noise;
|
||||
package com.volmit.iris.generator.noise;
|
||||
|
||||
import com.volmit.iris.util.Vector2f;
|
||||
import com.volmit.iris.util.Vector3f;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.volmit.iris.noise;
|
||||
package com.volmit.iris.generator.noise;
|
||||
|
||||
public class FlatNoise implements NoiseGenerator
|
||||
{
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.volmit.iris.noise;
|
||||
package com.volmit.iris.generator.noise;
|
||||
|
||||
import com.volmit.iris.noise.FastNoiseDouble.FractalType;
|
||||
import com.volmit.iris.generator.noise.FastNoiseDouble.FractalType;
|
||||
import com.volmit.iris.util.RNG;
|
||||
|
||||
public class FractalBillowPerlinNoise implements NoiseGenerator, OctaveNoise
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.volmit.iris.noise;
|
||||
package com.volmit.iris.generator.noise;
|
||||
|
||||
import com.volmit.iris.noise.FastNoiseDouble.FractalType;
|
||||
import com.volmit.iris.generator.noise.FastNoiseDouble.FractalType;
|
||||
import com.volmit.iris.util.RNG;
|
||||
|
||||
public class FractalBillowSimplexNoise implements NoiseGenerator, OctaveNoise
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.volmit.iris.noise;
|
||||
package com.volmit.iris.generator.noise;
|
||||
|
||||
import com.volmit.iris.noise.FastNoiseDouble.FractalType;
|
||||
import com.volmit.iris.generator.noise.FastNoiseDouble.FractalType;
|
||||
import com.volmit.iris.util.RNG;
|
||||
|
||||
public class FractalCubicNoise implements NoiseGenerator
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.volmit.iris.noise;
|
||||
package com.volmit.iris.generator.noise;
|
||||
|
||||
import com.volmit.iris.noise.FastNoiseDouble.FractalType;
|
||||
import com.volmit.iris.generator.noise.FastNoiseDouble.FractalType;
|
||||
import com.volmit.iris.util.RNG;
|
||||
|
||||
public class FractalFBMSimplexNoise implements NoiseGenerator, OctaveNoise
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.volmit.iris.noise;
|
||||
package com.volmit.iris.generator.noise;
|
||||
|
||||
import com.volmit.iris.noise.FastNoiseDouble.FractalType;
|
||||
import com.volmit.iris.generator.noise.FastNoiseDouble.FractalType;
|
||||
import com.volmit.iris.util.RNG;
|
||||
|
||||
public class FractalRigidMultiSimplexNoise implements NoiseGenerator, OctaveNoise
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.volmit.iris.noise;
|
||||
package com.volmit.iris.generator.noise;
|
||||
|
||||
import com.volmit.iris.util.RNG;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.volmit.iris.noise;
|
||||
package com.volmit.iris.generator.noise;
|
||||
|
||||
@FunctionalInterface
|
||||
public interface NoiseFactory
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.volmit.iris.noise;
|
||||
package com.volmit.iris.generator.noise;
|
||||
|
||||
public interface NoiseGenerator
|
||||
{
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.volmit.iris.noise;
|
||||
package com.volmit.iris.generator.noise;
|
||||
|
||||
public enum NoiseType {
|
||||
WHITE(seed -> new WhiteNoise(seed)),
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.volmit.iris.noise;
|
||||
package com.volmit.iris.generator.noise;
|
||||
|
||||
public interface OctaveNoise
|
||||
{
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.volmit.iris.noise;
|
||||
package com.volmit.iris.generator.noise;
|
||||
|
||||
import com.volmit.iris.util.RNG;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.volmit.iris.noise;
|
||||
package com.volmit.iris.generator.noise;
|
||||
|
||||
import com.volmit.iris.util.IRare;
|
||||
import com.volmit.iris.util.KList;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.volmit.iris.noise;
|
||||
package com.volmit.iris.generator.noise;
|
||||
|
||||
import com.volmit.iris.util.RNG;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user