diff options
Diffstat (limited to 'src/main/java/gtPlusPlus/australia/chunk/ChunkProviderAustralia.java')
-rw-r--r-- | src/main/java/gtPlusPlus/australia/chunk/ChunkProviderAustralia.java | 846 |
1 files changed, 0 insertions, 846 deletions
diff --git a/src/main/java/gtPlusPlus/australia/chunk/ChunkProviderAustralia.java b/src/main/java/gtPlusPlus/australia/chunk/ChunkProviderAustralia.java deleted file mode 100644 index 5649cc4c78..0000000000 --- a/src/main/java/gtPlusPlus/australia/chunk/ChunkProviderAustralia.java +++ /dev/null @@ -1,846 +0,0 @@ -package gtPlusPlus.australia.chunk; - -import static net.minecraft.world.gen.structure.MapGenVillage.villageSpawnBiomes; -import static net.minecraftforge.event.terraingen.PopulateChunkEvent.Populate.EventType.ANIMALS; - -import cpw.mods.fml.common.eventhandler.Event.Result; -import gtPlusPlus.api.objects.Logger; -import gtPlusPlus.australia.gen.map.MapGenLargeRavine; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Random; -import net.minecraft.block.Block; -import net.minecraft.entity.EnumCreatureType; -import net.minecraft.init.Blocks; -import net.minecraft.util.IProgressUpdate; -import net.minecraft.util.MathHelper; -import net.minecraft.world.ChunkPosition; -import net.minecraft.world.SpawnerAnimals; -import net.minecraft.world.World; -import net.minecraft.world.WorldType; -import net.minecraft.world.biome.BiomeGenBase; -import net.minecraft.world.chunk.Chunk; -import net.minecraft.world.chunk.IChunkProvider; -import net.minecraft.world.gen.ChunkProviderGenerate; -import net.minecraft.world.gen.MapGenBase; -import net.minecraft.world.gen.MapGenCaves; -import net.minecraft.world.gen.NoiseGenerator; -import net.minecraft.world.gen.NoiseGeneratorOctaves; -import net.minecraft.world.gen.NoiseGeneratorPerlin; -import net.minecraft.world.gen.feature.WorldGenDungeons; -import net.minecraft.world.gen.structure.MapGenMineshaft; -import net.minecraft.world.gen.structure.MapGenScatteredFeature; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.terraingen.ChunkProviderEvent; -import net.minecraftforge.event.terraingen.PopulateChunkEvent; -import net.minecraftforge.event.terraingen.TerrainGen; - -public class ChunkProviderAustralia extends ChunkProviderGenerate implements IChunkProvider { - private Random rand; - private NoiseGeneratorOctaves noiseGen1; - private NoiseGeneratorOctaves noiseGen2; - private NoiseGeneratorOctaves noiseGen3; - private NoiseGeneratorPerlin noiseGen4; - /** - * Reference to the World object. - */ - private World worldObj; - - private WorldType worldType; - private final double[] field_147434_q; - private final float[] parabolicField; - private double[] stoneNoise = new double[256]; - private MapGenBase caveGenerator = new MapGenCaves(); - /** - * Holds Stronghold Generator - */ - // private MapGenStronghold strongholdGenerator = new - // MapGenStronghold(); - - /** - * Holds Mineshaft Generator - */ - private MapGenMineshaft mineshaftGenerator = new MapGenMineshaft(); - - private MapGenScatteredFeature scatteredFeatureGenerator = new MapGenScatteredFeature(); - /** - * Holds ravine generator - */ - private MapGenBase ravineGenerator = new MapGenLargeRavine(); - /** - * The biomes that are used to generate the chunk - */ - private BiomeGenBase[] biomesForGeneration; - - double[] doubleArray1; - double[] doubleArray2; - double[] doubleArray3; - double[] doubleArray4; - - int[][] field_73219_j = new int[32][32]; - Map map; - - // Some Init Field? - { - try { - List<BiomeGenBase> y = new ArrayList<BiomeGenBase>(); - if (!villageSpawnBiomes.isEmpty()) { - y.addAll(villageSpawnBiomes); - } - - for (BiomeGenBase h : gtPlusPlus.australia.gen.map.MapGenExtendedVillage.villageSpawnBiomes) { - if (!y.contains(h)) { - if (h instanceof BiomeGenBase) { - try { - y.add(h); - } catch (Throwable t) { - } - } - } - } - if (y.size() > villageSpawnBiomes.size()) { - villageSpawnBiomes = y; - } - } catch (Throwable t) { - } - - caveGenerator = TerrainGen.getModdedMapGen( - caveGenerator, net.minecraftforge.event.terraingen.InitMapGenEvent.EventType.CAVE); - mineshaftGenerator = (MapGenMineshaft) TerrainGen.getModdedMapGen( - mineshaftGenerator, net.minecraftforge.event.terraingen.InitMapGenEvent.EventType.MINESHAFT); - scatteredFeatureGenerator = (MapGenScatteredFeature) TerrainGen.getModdedMapGen( - scatteredFeatureGenerator, - net.minecraftforge.event.terraingen.InitMapGenEvent.EventType.SCATTERED_FEATURE); - ravineGenerator = TerrainGen.getModdedMapGen( - ravineGenerator, net.minecraftforge.event.terraingen.InitMapGenEvent.EventType.RAVINE); - } - - public ChunkProviderAustralia(World par1World, long par2) { - super(par1World, par2, true); - this.worldObj = par1World; - this.worldType = par1World.getWorldInfo().getTerrainType(); - this.rand = new Random(par2); - this.noiseGen1 = new NoiseGeneratorOctaves(this.rand, 16); - this.noiseGen2 = new NoiseGeneratorOctaves(this.rand, 16); - this.noiseGen3 = new NoiseGeneratorOctaves(this.rand, 8); - this.noiseGen4 = new NoiseGeneratorPerlin(this.rand, 4); - this.noiseGen5 = new NoiseGeneratorOctaves(this.rand, 10); - this.noiseGen6 = new NoiseGeneratorOctaves(this.rand, 16); - this.mobSpawnerNoise = new NoiseGeneratorOctaves(this.rand, 8); - this.field_147434_q = new double[2500]; - this.parabolicField = new float[25]; - for (int j = -2; j <= 2; j++) { - for (int k = -2; k <= 2; k++) { - float f = 10.0F / MathHelper.sqrt_float(j * j + k * k + 0.2F); - this.parabolicField[(j + 2 + (k + 2) * 5)] = f; - } - } - NoiseGenerator[] noiseGens = { - this.noiseGen1, - this.noiseGen2, - this.noiseGen3, - this.noiseGen4, - this.noiseGen5, - this.noiseGen6, - this.mobSpawnerNoise - }; - noiseGens = TerrainGen.getModdedNoiseGenerators(par1World, this.rand, noiseGens); - this.noiseGen1 = ((NoiseGeneratorOctaves) noiseGens[0]); - this.noiseGen2 = ((NoiseGeneratorOctaves) noiseGens[1]); - this.noiseGen3 = ((NoiseGeneratorOctaves) noiseGens[2]); - this.noiseGen4 = ((NoiseGeneratorPerlin) noiseGens[3]); - this.noiseGen5 = ((NoiseGeneratorOctaves) noiseGens[4]); - this.noiseGen6 = ((NoiseGeneratorOctaves) noiseGens[5]); - this.mobSpawnerNoise = ((NoiseGeneratorOctaves) noiseGens[6]); - } - - public void func_147424_a(int p_147424_1_, int p_147424_2_, Block[] p_147424_3_) { - byte b0 = 63; - this.biomesForGeneration = this.worldObj - .getWorldChunkManager() - .getBiomesForGeneration(this.biomesForGeneration, p_147424_1_ * 4 - 2, p_147424_2_ * 4 - 2, 10, 10); - - func_147423_a(p_147424_1_ * 4, 0, p_147424_2_ * 4); - for (int k = 0; k < 4; k++) { - int l = k * 5; - int i1 = (k + 1) * 5; - for (int j1 = 0; j1 < 4; j1++) { - int k1 = (l + j1) * 33; - int l1 = (l + j1 + 1) * 33; - int i2 = (i1 + j1) * 33; - int j2 = (i1 + j1 + 1) * 33; - for (int k2 = 0; k2 < 32; k2++) { - double d0 = 0.125D; - double d1 = this.field_147434_q[(k1 + k2)]; - double d2 = this.field_147434_q[(l1 + k2)]; - double d3 = this.field_147434_q[(i2 + k2)]; - double d4 = this.field_147434_q[(j2 + k2)]; - double d5 = (this.field_147434_q[(k1 + k2 + 1)] - d1) * d0; - double d6 = (this.field_147434_q[(l1 + k2 + 1)] - d2) * d0; - double d7 = (this.field_147434_q[(i2 + k2 + 1)] - d3) * d0; - double d8 = (this.field_147434_q[(j2 + k2 + 1)] - d4) * d0; - for (int l2 = 0; l2 < 8; l2++) { - double d9 = 0.25D; - double d10 = d1; - double d11 = d2; - double d12 = (d3 - d1) * d9; - double d13 = (d4 - d2) * d9; - for (int i3 = 0; i3 < 4; i3++) { - int j3 = i3 + k * 4 << 12 | 0 + j1 * 4 << 8 | k2 * 8 + l2; - short short1 = 256; - j3 -= short1; - double d14 = 0.25D; - double d16 = (d11 - d10) * d14; - double d15 = d10 - d16; - for (int k3 = 0; k3 < 4; k3++) { - if ((d15 += d16) > 0.0D) { - p_147424_3_[(j3 += short1)] = Blocks.stone; - } else if (k2 * 8 + l2 < b0) { - p_147424_3_[(j3 += short1)] = Blocks.water; - } else { - p_147424_3_[(j3 += short1)] = null; - } - } - d10 += d12; - d11 += d13; - } - d1 += d5; - d2 += d6; - d3 += d7; - d4 += d8; - } - } - } - } - } - - public void replaceBlocksForBiome( - int p_147422_1_, int p_147422_2_, Block[] p_147422_3_, byte[] p_147422_4_, BiomeGenBase[] p_147422_5_) { - ChunkProviderEvent.ReplaceBiomeBlocks event = - new ChunkProviderEvent.ReplaceBiomeBlocks(this, p_147422_1_, p_147422_2_, p_147422_3_, p_147422_5_); - MinecraftForge.EVENT_BUS.post(event); - if (event.getResult() == Result.DENY) { - return; - } - double d0 = 0.03125D; - this.stoneNoise = this.noiseGen4.func_151599_a( - this.stoneNoise, p_147422_1_ * 16, p_147422_2_ * 16, 16, 16, d0 * 2.0D, d0 * 2.0D, 1.0D); - for (int k = 0; k < 16; k++) { - for (int l = 0; l < 16; l++) { - BiomeGenBase biomegenbase = p_147422_5_[(l + k * 16)]; - biomegenbase.genTerrainBlocks( - this.worldObj, - this.rand, - p_147422_3_, - p_147422_4_, - p_147422_1_ * 16 + k, - p_147422_2_ * 16 + l, - this.stoneNoise[(l + k * 16)]); - } - } - } - - /** - * loads or generates the chunk at the chunk location specified - */ - @Override - public Chunk loadChunk(int par1, int par2) { - return this.provideChunk(par1, par2); - } - - /** - * Will return back a chunk, if it doesn't exist and its not a MP client it will - * generates all the blocks for the specified chunk from the map seed and chunk - * seed - */ - @Override - public Chunk provideChunk(int x, int z) { - try { - Block[] ablock = new Block[65536]; - // generateTerrain(x, z, ablock); - caveGenerator.func_151539_a(this, worldObj, x, z, ablock); - ravineGenerator.func_151539_a(this, worldObj, x, z, ablock); - } catch (Exception e) { - e.printStackTrace(); - } - return super.provideChunk(x, z); - /* - * rand.setSeed(x * 341873128712L + z * 132897987541L); Block[] ablock = new - * Block[65536]; byte[] abyte = new byte[65536]; generateTerrain(x, z, ablock); - * biomesForGeneration = - * worldObj.getWorldChunkManager().loadBlockGeneratorData(biomesForGeneration, x - * * 16, z * 16, 16, 16); replaceBlocksForBiome(x, z, ablock, abyte, - * biomesForGeneration); - * - * caveGenerator.func_151539_a(this, worldObj, x, z, ablock); - * caveGenerator.func_151539_a(this, worldObj, x, z, ablock); - * ravineGenerator.func_151539_a(this, worldObj, x, z, ablock); - * ravineGenerator.func_151539_a(this, worldObj, x, z, ablock); - * ravineGenerator.func_151539_a(this, worldObj, x, z, ablock); - * ravineGenerator.func_151539_a(this, worldObj, x, z, ablock); - * //villageGenerator.func_151539_a(this, worldObj, x, z, ablock); - * scatteredFeatureGenerator.func_151539_a(this, worldObj, x, z, ablock); - * scatteredFeatureGenerator.func_151539_a(this, worldObj, x, z, ablock); - * scatteredFeatureGenerator.func_151539_a(this, worldObj, x, z, ablock); - * scatteredFeatureGenerator.func_151539_a(this, worldObj, x, z, ablock); - * scatteredFeatureGenerator.func_151539_a(this, worldObj, x, z, ablock); - * mineshaftGenerator.func_151539_a(this, worldObj, x, z, ablock); - * - * Chunk chunk = new Chunk(worldObj, ablock, abyte, x, z); byte[] abyte1 = - * chunk.getBiomeArray(); - * - * for (int k = 0; k < abyte1.length; ++k) abyte1[k] = - * (byte)biomesForGeneration[k].biomeID; - * - * chunk.generateSkylightMap(); return chunk; - */ - } - - public void generateTerrain(int x, int z, Block[] par3BlockArray) { - byte b0 = 63; - biomesForGeneration = worldObj.getWorldChunkManager() - .getBiomesForGeneration(biomesForGeneration, x * 4 - 2, z * 4 - 2, 10, 10); - generateNoise(x * 4, 0, z * 4); - - for (int k = 0; k < 4; ++k) { - int l = k * 5; - int i1 = (k + 1) * 5; - - for (int j1 = 0; j1 < 4; ++j1) { - int k1 = (l + j1) * 33; - int l1 = (l + j1 + 1) * 33; - int i2 = (i1 + j1) * 33; - int j2 = (i1 + j1 + 1) * 33; - - for (int k2 = 0; k2 < 32; ++k2) { - double d0 = 0.125D; - double d1 = field_147434_q[k1 + k2]; - double d2 = field_147434_q[l1 + k2]; - double d3 = field_147434_q[i2 + k2]; - double d4 = field_147434_q[j2 + k2]; - double d5 = (field_147434_q[k1 + k2 + 1] - d1) * d0; - double d6 = (field_147434_q[l1 + k2 + 1] - d2) * d0; - double d7 = (field_147434_q[i2 + k2 + 1] - d3) * d0; - double d8 = (field_147434_q[j2 + k2 + 1] - d4) * d0; - - for (int l2 = 0; l2 < 8; ++l2) { - double d9 = 0.25D; - double d10 = d1; - double d11 = d2; - double d12 = (d3 - d1) * d9; - double d13 = (d4 - d2) * d9; - - for (int i3 = 0; i3 < 4; ++i3) { - int j3 = i3 + k * 4 << 12 | 0 + j1 * 4 << 8 | k2 * 8 + l2; - short short1 = 256; - j3 -= short1; - double d14 = 0.25D; - double d16 = (d11 - d10) * d14; - double d15 = d10 - d16; - - for (int k3 = 0; k3 < 4; ++k3) - if ((d15 += d16) > 0.0D) par3BlockArray[j3 += short1] = Blocks.stone; - else if (k2 * 8 + l2 < b0) par3BlockArray[j3 += short1] = Blocks.water; - else par3BlockArray[j3 += short1] = null; - - d10 += d12; - d11 += d13; - } - - d1 += d5; - d2 += d6; - d3 += d7; - d4 += d8; - } - } - } - } - } - - private void generateNoise(int x, int y, int z) { - doubleArray4 = noiseGen6.generateNoiseOctaves(doubleArray4, x, z, 5, 5, 200.0D, 200.0D, 0.5D); - doubleArray1 = noiseGen3.generateNoiseOctaves( - doubleArray1, x, y, z, 5, 33, 5, 8.555150000000001D, 4.277575000000001D, 8.555150000000001D); - doubleArray2 = noiseGen1.generateNoiseOctaves(doubleArray2, x, y, z, 5, 33, 5, 684.412D, 684.412D, 684.412D); - doubleArray3 = noiseGen2.generateNoiseOctaves(doubleArray3, x, y, z, 5, 33, 5, 684.412D, 684.412D, 684.412D); - int l = 0; - int i1 = 0; - for (int j1 = 0; j1 < 5; ++j1) - for (int k1 = 0; k1 < 5; ++k1) { - float f = 0.0F; - float f1 = 0.0F; - float f2 = 0.0F; - byte b0 = 2; - BiomeGenBase biomegenbase = biomesForGeneration[j1 + 2 + (k1 + 2) * 10]; - - for (int l1 = -b0; l1 <= b0; ++l1) - for (int i2 = -b0; i2 <= b0; ++i2) { - BiomeGenBase biomegenbase1 = biomesForGeneration[j1 + l1 + 2 + (k1 + i2 + 2) * 10]; - float f3 = biomegenbase1.rootHeight; - float f4 = biomegenbase1.heightVariation; - - if (worldType == WorldType.AMPLIFIED && f3 > 0.0F) { - f3 = 1.0F + f3 * 2.0F; - f4 = 1.0F + f4 * 4.0F; - } - - float f5 = parabolicField[l1 + 2 + (i2 + 2) * 5] / (f3 + 2.0F); - - if (biomegenbase1.rootHeight > biomegenbase.rootHeight) f5 /= 2.0F; - - f += f4 * f5; - f1 += f3 * f5; - f2 += f5; - } - - f /= f2; - f1 /= f2; - f = f * 0.9F + 0.1F; - f1 = (f1 * 4.0F - 1.0F) / 8.0F; - double d13 = doubleArray4[i1] / 8000.0D; - - if (d13 < 0.0D) d13 = -d13 * 0.3D; - - d13 = d13 * 3.0D - 2.0D; - - if (d13 < 0.0D) { - d13 /= 2.0D; - - if (d13 < -1.0D) d13 = -1.0D; - - d13 /= 1.4D; - d13 /= 2.0D; - } else { - if (d13 > 1.0D) d13 = 1.0D; - - d13 /= 8.0D; - } - - ++i1; - double d12 = f1; - double d14 = f; - d12 += d13 * 0.2D; - d12 = d12 * 8.5D / 8.0D; - double d5 = 8.5D + d12 * 4.0D; - - for (int j2 = 0; j2 < 33; ++j2) { - double d6 = (j2 - d5) * 12.0D * 128.0D / 256.0D / d14; - - if (d6 < 0.0D) d6 *= 4.0D; - - double d7 = doubleArray2[l] / 512.0D; - double d8 = doubleArray3[l] / 512.0D; - double d9 = (doubleArray1[l] / 10.0D + 1.0D) / 2.0D; - double d10 = MathHelper.denormalizeClamp(d7, d8, d9) - d6; - - if (j2 > 29) { - double d11 = (j2 - 29) / 3.0F; - d10 = d10 * (1.0D - d11) + -10.0D * d11; - } - - field_147434_q[l] = d10; - ++l; - } - } - } - - private void func_147423_a(int p_147423_1_, int p_147423_2_, int p_147423_3_) { - double d0 = 684.412D; - double d1 = 684.412D; - double d2 = 512.0D; - double d3 = 512.0D; - this.doubleArray4 = this.noiseGen6.generateNoiseOctaves( - this.doubleArray4, p_147423_1_, p_147423_3_, 5, 5, 200.0D, 200.0D, 0.5D); - this.doubleArray1 = this.noiseGen3.generateNoiseOctaves( - this.doubleArray1, - p_147423_1_, - p_147423_2_, - p_147423_3_, - 5, - 33, - 5, - 8.555150000000001D, - 4.277575000000001D, - 8.555150000000001D); - - this.doubleArray2 = this.noiseGen1.generateNoiseOctaves( - this.doubleArray2, p_147423_1_, p_147423_2_, p_147423_3_, 5, 33, 5, 684.412D, 684.412D, 684.412D); - - this.doubleArray3 = this.noiseGen2.generateNoiseOctaves( - this.doubleArray3, p_147423_1_, p_147423_2_, p_147423_3_, 5, 33, 5, 684.412D, 684.412D, 684.412D); - - boolean flag1 = false; - boolean flag = false; - int l = 0; - int i1 = 0; - double d4 = 8.5D; - for (int j1 = 0; j1 < 5; j1++) { - for (int k1 = 0; k1 < 5; k1++) { - float f = 0.0F; - float f1 = 0.0F; - float f2 = 0.0F; - byte b0 = 2; - BiomeGenBase biomegenbase = this.biomesForGeneration[(j1 + 2 + (k1 + 2) * 10)]; - for (int l1 = -b0; l1 <= b0; l1++) { - for (int i2 = -b0; i2 <= b0; i2++) { - BiomeGenBase biomegenbase1 = this.biomesForGeneration[(j1 + l1 + 2 + (k1 + i2 + 2) * 10)]; - float f3 = biomegenbase1.rootHeight; - float f4 = biomegenbase1.heightVariation; - if ((this.worldType == WorldType.AMPLIFIED) && (f3 > 0.0F)) { - f3 = 1.0F + f3 * 2.0F; - f4 = 1.0F + f4 * 4.0F; - } - float f5 = this.parabolicField[(l1 + 2 + (i2 + 2) * 5)] / (f3 + 2.0F); - if (biomegenbase1.rootHeight > biomegenbase.rootHeight) { - f5 /= 2.0F; - } - f += f4 * f5; - f1 += f3 * f5; - f2 += f5; - } - } - f /= f2; - f1 /= f2; - f = f * 0.9F + 0.1F; - f1 = (f1 * 4.0F - 1.0F) / 8.0F; - double d13 = this.doubleArray4[i1] / 8000.0D; - if (d13 < 0.0D) { - d13 = -d13 * 0.3D; - } - d13 = d13 * 3.0D - 2.0D; - if (d13 < 0.0D) { - d13 /= 2.0D; - if (d13 < -1.0D) { - d13 = -1.0D; - } - d13 /= 1.4D; - d13 /= 2.0D; - } else { - if (d13 > 1.0D) { - d13 = 1.0D; - } - d13 /= 8.0D; - } - i1++; - double d12 = f1; - double d14 = f; - d12 += d13 * 0.2D; - d12 = d12 * 8.5D / 8.0D; - double d5 = 8.5D + d12 * 4.0D; - for (int j2 = 0; j2 < 33; j2++) { - double d6 = (j2 - d5) * 12.0D * 128.0D / 256.0D / d14; - if (d6 < 0.0D) { - d6 *= 4.0D; - } - double d7 = this.doubleArray2[l] / 512.0D; - double d8 = this.doubleArray3[l] / 512.0D; - double d9 = (this.doubleArray1[l] / 10.0D + 1.0D) / 2.0D; - double d10 = MathHelper.denormalizeClamp(d7, d8, d9) - d6; - if (j2 > 29) { - double d11 = (j2 - 29) / 3.0F; - d10 = d10 * (1.0D - d11) + -10.0D * d11; - } - this.field_147434_q[l] = d10; - l++; - } - } - } - } - - /** - * Checks to see if a chunk exists at x, y - */ - @Override - public boolean chunkExists(int par1, int par2) { - return super.chunkExists(par1, par2); - } - - /** - * Populates chunk with ores etc etc - */ - @Override - public void populate(IChunkProvider par1IChunkProvider, int par2, int par3) { - - if (this.worldObj.getChunkFromChunkCoords(par2, par3) != null) { - super.populate(par1IChunkProvider, par2, par3); - try { - // Maybe Custom stuff? - boolean doGen = false; - boolean flag = false; - int k1; - int l1; - int i2; - int x = par2 * 16; - int z = par3 * 16; - BiomeGenBase biomegenbase = this.worldObj.getBiomeGenForCoords(x + 16, z + 16); - MinecraftForge.EVENT_BUS.post( - new PopulateChunkEvent.Pre(par1IChunkProvider, worldObj, rand, par2, par3, flag)); - doGen = TerrainGen.populate( - par1IChunkProvider, - worldObj, - rand, - par2, - par3, - flag, - net.minecraftforge.event.terraingen.PopulateChunkEvent.Populate.EventType.DUNGEON); - for (k1 = 0; doGen && k1 < 8; ++k1) { - l1 = x + this.rand.nextInt(16) + 8; - i2 = this.rand.nextInt(256); - int j2 = z + this.rand.nextInt(16) + 8; - (new WorldGenDungeons()).generate(this.worldObj, this.rand, l1, i2, j2); - } - - if (TerrainGen.populate(par1IChunkProvider, worldObj, rand, par2, par3, flag, ANIMALS)) { - SpawnerAnimals.performWorldGenSpawning( - this.worldObj, biomegenbase, x + 8, z + 8, 16, 16, this.rand); - SpawnerAnimals.performWorldGenSpawning( - this.worldObj, biomegenbase, x + 8, z + 8, 16, 16, this.rand); - } - MinecraftForge.EVENT_BUS.post( - new PopulateChunkEvent.Post(par1IChunkProvider, worldObj, rand, par2, par3, flag)); - } catch (Throwable t) { - t.printStackTrace(); - } - } - - /*boolean generateStructures = true; - - BlockFalling.fallInstantly = true; - int x = par2 * 16; - int z = par3 * 16; - BiomeGenBase biomegenbase = this.worldObj.getBiomeGenForCoords(x + 16, z + 16); - this.rand.setSeed(this.worldObj.getSeed()); - long i1 = this.rand.nextLong() / 2L * 2L + 1L; - long j1 = this.rand.nextLong() / 2L * 2L + 1L; - this.rand.setSeed(par2 * i1 + par3 * j1 ^ this.worldObj.getSeed()); - boolean flag = false; - - MinecraftForge.EVENT_BUS.post(new PopulateChunkEvent.Pre(par1IChunkProvider, worldObj, rand, par2, par3, flag)); - - if (generateStructures) { - this.mineshaftGenerator.generateStructuresInChunk(this.worldObj, this.rand, par2, par3); - // flag = this.villageGenerator.generateStructuresInChunk(this.worldObj, - // this.rand, par2, par3); - this.scatteredFeatureGenerator.generateStructuresInChunk(this.worldObj, this.rand, par2, par3); - } - - int k1; - int l1; - int i2; - - if (generateStructures) { - if (generateStructures) { - // No specific liquid dimlets specified: we generate default lakes (water and - // lava were appropriate). - if (biomegenbase != BiomeGenBase.desert && biomegenbase != BiomeGenBase.desertHills && !flag - && this.rand.nextInt(4) == 0 - && TerrainGen.populate(par1IChunkProvider, worldObj, rand, par2, par3, flag, - net.minecraftforge.event.terraingen.PopulateChunkEvent.Populate.EventType.LAKE)) { - k1 = x + this.rand.nextInt(16) + 8; - l1 = this.rand.nextInt(256); - i2 = z + this.rand.nextInt(16) + 8; - (new WorldGenLakes(Blocks.water)).generate(this.worldObj, this.rand, k1, l1, i2); - } - - if (TerrainGen.populate(par1IChunkProvider, worldObj, rand, par2, par3, flag, - net.minecraftforge.event.terraingen.PopulateChunkEvent.Populate.EventType.LAVA) && !flag - && this.rand.nextInt(8) == 0) { - k1 = x + this.rand.nextInt(16) + 8; - l1 = this.rand.nextInt(this.rand.nextInt(248) + 8); - i2 = z + this.rand.nextInt(16) + 8; - - if (l1 < 63 || this.rand.nextInt(10) == 0) { - (new WorldGenLakes(Blocks.lava)).generate(this.worldObj, this.rand, k1, l1, i2); - } - } - } - * else { // Generate lakes for the specified biomes. for (Block liquid : - * dimensionInformation.getFluidsForLakes()) { if (!flag && this.rand.nextInt(4) - * == 0 && TerrainGen.populate(par1IChunkProvider, worldObj, rand, par2, par3, - * flag, - * net.minecraftforge.event.terraingen.PopulateChunkEvent.Populate.EventType. - * LAKE)) { k1 = x + this.rand.nextInt(16) + 8; l1 = this.rand.nextInt(256); i2 - * = z + this.rand.nextInt(16) + 8; (new - * WorldGenLakes(liquid)).generate(this.worldObj, this.rand, k1, l1, i2); } } } - - } - - boolean doGen = false; - if (generateStructures) { - doGen = TerrainGen.populate(par1IChunkProvider, worldObj, rand, par2, par3, flag, - net.minecraftforge.event.terraingen.PopulateChunkEvent.Populate.EventType.DUNGEON); - for (k1 = 0; doGen && k1 < 8; ++k1) { - l1 = x + this.rand.nextInt(16) + 8; - i2 = this.rand.nextInt(256); - int j2 = z + this.rand.nextInt(16) + 8; - (new WorldGenDungeons()).generate(this.worldObj, this.rand, l1, i2, j2); - } - } - - biomegenbase.decorate(this.worldObj, this.rand, x, z); - if (TerrainGen.populate(par1IChunkProvider, worldObj, rand, par2, par3, flag, ANIMALS)) { - SpawnerAnimals.performWorldGenSpawning(this.worldObj, biomegenbase, x + 8, z + 8, 16, 16, this.rand); - } - x += 8; - z += 8; - - doGen = TerrainGen.populate(par1IChunkProvider, worldObj, rand, par2, par3, flag, - net.minecraftforge.event.terraingen.PopulateChunkEvent.Populate.EventType.ICE); - for (k1 = 0; doGen && k1 < 16; ++k1) { - for (l1 = 0; l1 < 16; ++l1) { - i2 = this.worldObj.getPrecipitationHeight(x + k1, z + l1); - - if (this.worldObj.isBlockFreezable(k1 + x, i2 - 1, l1 + z)) { - this.worldObj.setBlock(k1 + x, i2 - 1, l1 + z, Blocks.ice, 0, 2); - } - - if (this.worldObj.func_147478_e(k1 + x, i2, l1 + z, true)) { - this.worldObj.setBlock(k1 + x, i2, l1 + z, Blocks.snow_layer, 0, 2); - } - } - } - - MinecraftForge.EVENT_BUS - .post(new PopulateChunkEvent.Post(par1IChunkProvider, worldObj, rand, par2, par3, flag)); - - BlockFalling.fallInstantly = false;*/ - // super.populate(par1IChunkProvider, par2, par3); - /* - * net.minecraft.block.BlockFalling.fallInstantly = false; int k = par2 * 16; - * int l = par3 * 16; BiomeGenBase biomegenbase = - * this.worldObj.getBiomeGenForCoords(k + 16, l + 16); - * this.rand.setSeed(this.worldObj.getSeed()); long i1 = this.rand.nextLong() / - * 2L * 2L + 1L; long j1 = this.rand.nextLong() / 2L * 2L + 1L; - * this.rand.setSeed(par2 * i1 + par3 * j1 ^ this.worldObj.getSeed()); boolean - * flag = false; - * - * MinecraftForge.EVENT_BUS.post(new PopulateChunkEvent.Pre(par1IChunkProvider, - * this.worldObj, this.rand, par2, par3, flag)); - * - * - * this.mineshaftGenerator.generateStructuresInChunk(this.worldObj, this.rand, - * par2, par3); flag = - * this.villageGenerator.generateStructuresInChunk(this.worldObj, this.rand, - * par2, par3); - * this.scatteredFeatureGenerator.generateStructuresInChunk(this.worldObj, - * this.rand, par2, par3); if (flag) { Logger.INFO("Did Generate? "+flag); } - * else { - * //Logger.INFO("Can village spawn here? "+villageGenerator.villageSpawnBiomes. - * contains(biomegenbase)); } - * - * - * if ((biomegenbase != BiomeGenBase.desert) && (biomegenbase != - * BiomeGenBase.desertHills) && (!flag)) { if ((this.rand.nextInt(4) == 0) && - * (TerrainGen.populate(par1IChunkProvider, this.worldObj, this.rand, par2, - * par3, flag, PopulateChunkEvent.Populate.EventType.LAKE))) { int k1 = k + - * this.rand.nextInt(16) + 8; int l1 = this.rand.nextInt(256); int i2 = l + - * this.rand.nextInt(16) + 8; new - * WorldGenLakes(Blocks.water).generate(this.worldObj, this.rand, k1, l1, i2); } - * } if ((TerrainGen.populate(par1IChunkProvider, this.worldObj, this.rand, - * par2, par3, flag, PopulateChunkEvent.Populate.EventType.LAVA)) && (!flag) && - * (this.rand.nextInt(8) == 0)) { int k1 = k + this.rand.nextInt(16) + 8; int l1 - * = this.rand.nextInt(this.rand.nextInt(248) + 8); int i2 = l + - * this.rand.nextInt(16) + 8; if ((l1 < 63) || (this.rand.nextInt(10) == 0)) { - * new WorldGenLakes(Blocks.water).generate(this.worldObj, this.rand, k1, l1, - * i2); } } int var4 = par2 * 16; int var5 = par3 * 16; - * - * biomegenbase.decorate(this.worldObj, this.rand, k, l); - * SpawnerAnimals.performWorldGenSpawning(this.worldObj, biomegenbase, k + 8, l - * + 8, 16, 16, this.rand); if (TerrainGen.populate(this, worldObj, rand, par2, - * par3, flag, ANIMALS)) { SpawnerAnimals.performWorldGenSpawning(this.worldObj, - * biomegenbase, k + 8, l + 8, 16, 16, this.rand); } k += 8; l += 8; - * - * MinecraftForge.EVENT_BUS.post(new PopulateChunkEvent.Post(par1IChunkProvider, - * this.worldObj, this.rand, par2, par3, flag)); - * - * net.minecraft.block.BlockFalling.fallInstantly = false; - */ - } - - /** - * Two modes of operation: if passed true, save all Chunks in one go. If passed - * false, save up to two chunks. Return true if all chunks have been saved. - */ - @Override - public boolean saveChunks(boolean par1, IProgressUpdate par2IProgressUpdate) { - return super.saveChunks(par1, par2IProgressUpdate); - } - - /** - * Save extra data not associated with any Chunk. Not saved during autosave, - * only during world unload. Currently unimplemented. - */ - @Override - public void saveExtraData() { - super.saveExtraData(); - } - - /** - * Unloads chunks that are marked to be unloaded. This is not guaranteed to - * unload every such chunk. - */ - @Override - public boolean unloadQueuedChunks() { - return super.unloadQueuedChunks(); - } - - /** - * Returns if the IChunkProvider supports saving. - */ - @Override - public boolean canSave() { - return super.canSave(); - } - - /** - * Converts the instance data to a readable string. - */ - @Override - public String makeString() { - return "RandomLevelSource"; - } - - /** - * Returns a list of creatures of the specified type that can spawn at the given - * location. - */ - @SuppressWarnings("rawtypes") - @Override - public List getPossibleCreatures(EnumCreatureType par1EnumCreatureType, int par2, int par3, int par4) { - BiomeGenBase biomegenbase = this.worldObj.getBiomeGenForCoords(par2, par4); - return (par1EnumCreatureType == EnumCreatureType.monster) - && (this.scatteredFeatureGenerator.func_143030_a(par2, par3, par4)) - ? this.scatteredFeatureGenerator.getScatteredFeatureSpawnList() - : biomegenbase.getSpawnableList(par1EnumCreatureType); - } - - @Override - public ChunkPosition func_147416_a( - World p_147416_1_, String p_147416_2_, int p_147416_3_, int p_147416_4_, int p_147416_5_) { - Logger.INFO("func_147416_a: " + p_147416_2_); - return super.func_147416_a(p_147416_1_, p_147416_2_, p_147416_3_, p_147416_4_, p_147416_5_); - /* - * return "ExtendedVillage".equals(p_147416_2_) && this.villageGenerator != null - * ? this.villageGenerator.func_151545_a(p_147416_1_, p_147416_3_, p_147416_4_, - * p_147416_5_) : null; - */ - } - - @Override - public int getLoadedChunkCount() { - return super.getLoadedChunkCount(); - } - - @Override - public void recreateStructures(int par1, int par2) { - super.recreateStructures(par1, par2); - // this.mineshaftGenerator.func_151539_a(this, this.worldObj, par1, par2, - // (Block[])null); - // this.villageGenerator.func_151539_a(this, this.worldObj, par1, par2, - // (Block[])null); - // this.scatteredFeatureGenerator.func_151539_a(this, this.worldObj, par1, par2, - // (Block[])null); - - } -} |