9
0
mirror of https://github.com/VolmitSoftware/Iris.git synced 2025-12-29 12:09:07 +00:00
This commit is contained in:
Daniel Mills
2020-11-22 13:00:24 -05:00
parent 34040abc8f
commit d6b7a4bdba
11 changed files with 219 additions and 100 deletions

View File

@@ -154,54 +154,59 @@ public final class NMSChunkGenerator_16_2 extends ChunkGenerator {
int k = i << 4;
int l = j << 4;
Iterator<?> iterator = StructureGenerator.t.iterator();
while(iterator.hasNext())
if(gen.shouldGenerateStructures())
{
StructureGenerator<?> structuregenerator = (StructureGenerator<?>) iterator.next();
Iterator<?> iterator = StructureGenerator.t.iterator();
structuremanager.a(SectionPosition.a(chunkcoordintpair, 0), structuregenerator).forEach((structurestart) ->
while(iterator.hasNext())
{
Iterator<?> iterator1 = structurestart.d().iterator();
StructureGenerator<?> structuregenerator = (StructureGenerator<?>) iterator.next();
while(iterator1.hasNext())
structuremanager.a(SectionPosition.a(chunkcoordintpair, 0), structuregenerator).forEach((structurestart) ->
{
StructurePiece structurepiece = (StructurePiece) iterator1.next();
Iterator<?> iterator1 = structurestart.d().iterator();
if(structurepiece.a(chunkcoordintpair, 12))
while(iterator1.hasNext())
{
if(structurepiece instanceof WorldGenFeaturePillagerOutpostPoolPiece)
StructurePiece structurepiece = (StructurePiece) iterator1.next();
if(structurepiece.a(chunkcoordintpair, 12))
{
WorldGenFeaturePillagerOutpostPoolPiece worldgenfeaturepillageroutpostpoolpiece = (WorldGenFeaturePillagerOutpostPoolPiece) structurepiece;
WorldGenFeatureDefinedStructurePoolTemplate.Matching worldgenfeaturedefinedstructurepooltemplate_matching = worldgenfeaturepillageroutpostpoolpiece.b().e();
if(worldgenfeaturedefinedstructurepooltemplate_matching == WorldGenFeatureDefinedStructurePoolTemplate.Matching.RIGID)
if(structurepiece instanceof WorldGenFeaturePillagerOutpostPoolPiece)
{
objectlist.add(worldgenfeaturepillageroutpostpoolpiece);
}
WorldGenFeaturePillagerOutpostPoolPiece worldgenfeaturepillageroutpostpoolpiece = (WorldGenFeaturePillagerOutpostPoolPiece) structurepiece;
WorldGenFeatureDefinedStructurePoolTemplate.Matching worldgenfeaturedefinedstructurepooltemplate_matching = worldgenfeaturepillageroutpostpoolpiece.b().e();
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)
if(worldgenfeaturedefinedstructurepooltemplate_matching == WorldGenFeatureDefinedStructurePoolTemplate.Matching.RIGID)
{
objectlist1.add(worldgenfeaturedefinedstructurejigsawjunction);
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);
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);
@@ -391,21 +396,26 @@ public final class NMSChunkGenerator_16_2 extends ChunkGenerator {
public void addDecorations(RegionLimitedWorldAccess regionlimitedworldaccess, StructureManager structuremanager)
{
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 = getStructureBiome(k, l);
SeededRandom seededrandom = new SeededRandom();
long i1 = seededrandom.a(regionlimitedworldaccess.getSeed(), k, l);
try
{
a(biomebase, structuremanager, this, regionlimitedworldaccess, i1, seededrandom, blockposition);
}
catch(Exception exception)
if(gen.shouldGenerateStructures())
{
BlockPosition blockposition = new BlockPosition(k, 0, l);
BiomeBase biomebase = getStructureBiome(k, l);
SeededRandom seededrandom = new SeededRandom();
long i1 = seededrandom.a(regionlimitedworldaccess.getSeed(), k, l);
try
{
a(biomebase, structuremanager, this, regionlimitedworldaccess, i1, seededrandom, blockposition);
}
catch(Exception exception)
{
}
}
Runnable r = posts.remove(Cache.key(i, j));

View File

@@ -154,54 +154,59 @@ public final class NMSChunkGenerator16_3 extends ChunkGenerator {
int k = i << 4;
int l = j << 4;
Iterator<?> iterator = StructureGenerator.t.iterator();
while(iterator.hasNext())
if(gen.shouldGenerateStructures())
{
StructureGenerator<?> structuregenerator = (StructureGenerator<?>) iterator.next();
Iterator<?> iterator = StructureGenerator.t.iterator();
structuremanager.a(SectionPosition.a(chunkcoordintpair, 0), structuregenerator).forEach((structurestart) ->
while(iterator.hasNext())
{
Iterator<?> iterator1 = structurestart.d().iterator();
StructureGenerator<?> structuregenerator = (StructureGenerator<?>) iterator.next();
while(iterator1.hasNext())
structuremanager.a(SectionPosition.a(chunkcoordintpair, 0), structuregenerator).forEach((structurestart) ->
{
StructurePiece structurepiece = (StructurePiece) iterator1.next();
Iterator<?> iterator1 = structurestart.d().iterator();
if(structurepiece.a(chunkcoordintpair, 12))
while(iterator1.hasNext())
{
if(structurepiece instanceof WorldGenFeaturePillagerOutpostPoolPiece)
StructurePiece structurepiece = (StructurePiece) iterator1.next();
if(structurepiece.a(chunkcoordintpair, 12))
{
WorldGenFeaturePillagerOutpostPoolPiece worldgenfeaturepillageroutpostpoolpiece = (WorldGenFeaturePillagerOutpostPoolPiece) structurepiece;
WorldGenFeatureDefinedStructurePoolTemplate.Matching worldgenfeaturedefinedstructurepooltemplate_matching = worldgenfeaturepillageroutpostpoolpiece.b().e();
if(worldgenfeaturedefinedstructurepooltemplate_matching == WorldGenFeatureDefinedStructurePoolTemplate.Matching.RIGID)
if(structurepiece instanceof WorldGenFeaturePillagerOutpostPoolPiece)
{
objectlist.add(worldgenfeaturepillageroutpostpoolpiece);
}
WorldGenFeaturePillagerOutpostPoolPiece worldgenfeaturepillageroutpostpoolpiece = (WorldGenFeaturePillagerOutpostPoolPiece) structurepiece;
WorldGenFeatureDefinedStructurePoolTemplate.Matching worldgenfeaturedefinedstructurepooltemplate_matching = worldgenfeaturepillageroutpostpoolpiece.b().e();
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)
if(worldgenfeaturedefinedstructurepooltemplate_matching == WorldGenFeatureDefinedStructurePoolTemplate.Matching.RIGID)
{
objectlist1.add(worldgenfeaturedefinedstructurejigsawjunction);
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);
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);
@@ -395,17 +400,21 @@ public final class NMSChunkGenerator16_3 extends ChunkGenerator {
int j = regionlimitedworldaccess.b();
int k = i * 16;
int l = j * 16;
BlockPosition blockposition = new BlockPosition(k, 0, l);
BiomeBase biomebase = getStructureBiome(k, l);
SeededRandom seededrandom = new SeededRandom();
long i1 = seededrandom.a(regionlimitedworldaccess.getSeed(), k, l);
try
{
a(biomebase, structuremanager, this, regionlimitedworldaccess, i1, seededrandom, blockposition);
}
catch(Exception exception)
{
if(gen.shouldGenerateStructures())
{
BlockPosition blockposition = new BlockPosition(k, 0, l);
BiomeBase biomebase = getStructureBiome(k, l);
SeededRandom seededrandom = new SeededRandom();
long i1 = seededrandom.a(regionlimitedworldaccess.getSeed(), k, l);
try
{
a(biomebase, structuremanager, this, regionlimitedworldaccess, i1, seededrandom, blockposition);
}
catch(Exception exception)
{
}
}
Runnable r = posts.remove(Cache.key(i, j));
@@ -422,11 +431,6 @@ public final class NMSChunkGenerator16_3 extends ChunkGenerator {
}
}
public boolean isStructures()
{
return gen.shouldGenerateStructures();
}
private BiomeBase getStructureBiome(int k, int l) {
return (BiomeBase) INMS.get().getBiomeBase(ws.get().getWorld(), gen.getComposite().getDefaultEngine().getSurfaceBiome(k, l).getVanillaDerivative());
}