public override bool generate(World world, java.util.Random random, int i, int j, int k) { worldObj = world; long l = random.nextLong(); random0.setSeed(l); basePos[0] = i; basePos[1] = j; basePos[2] = k; if (heightLimit == 0) { heightLimit = 5 + random0.nextInt(heightLimitLimit); } if (!validTreeLocation()) { return(false); } else { generateLeafNodeList(); generateLeaves(); generateTrunk(); generateLeafNodeBases(); return(true); } }
public override bool generate(World world, Random random, int i, int j, int k) { worldObj = world; long l = random.nextLong(); field_759_b.setSeed(l); basePos[0] = i; basePos[1] = j; basePos[2] = k; if (field_756_e == 0) { field_756_e = 5 + field_759_b.nextInt(field_748_m); } if (!func_422_e()) { return(false); } else { func_424_a(); func_421_b(); func_432_c(); func_428_d(); return(true); } }
public override bool generate(World world, Random random, int i, int j, int k) { worldObj = world; long l = random.nextLong(); field_759_b.setSeed(l); basePos[0] = i; basePos[1] = j; basePos[2] = k; if (field_756_e == 0) { field_756_e = 5 + field_759_b.nextInt(field_748_m); } if (!func_422_e()) { return false; } else { func_424_a(); func_421_b(); func_432_c(); func_428_d(); return true; } }
// NextInt64(long, long) uses Sample() public virtual long NextInt64(long minValue, long maxValue) { if (maxValue < minValue) { ThrowHelper.ThrowArgumentOutOfRangeException(); } return(isSystemRandom ? (_random.nextLong() % maxValue) : (long)(Sample() * long.MaxValue)); }
public virtual void generate(World world, int i, int j, byte[] abyte0) { int k = field_947_a; field_35530_d = world; rand = new java.util.Random(world.seed); long l = rand.nextLong(); long l1 = rand.nextLong(); for(int i1 = i - k; i1 <= i + k; i1++) { for(int j1 = j - k; j1 <= j + k; j1++) { long l2 = (long)i1 * l; long l3 = (long)j1 * l1; rand = new java.util.Random(l2 ^ l3 ^ world.seed); recursiveGenerate(world, i1, j1, i, j, abyte0); } } }
public virtual void generate(World world, int i, int j, byte[] abyte0) { int k = field_947_a; field_35530_d = world; rand = new java.util.Random(world.seed); long l = rand.nextLong(); long l1 = rand.nextLong(); for (int i1 = i - k; i1 <= i + k; i1++) { for (int j1 = j - k; j1 <= j + k; j1++) { long l2 = (long)i1 * l; long l3 = (long)j1 * l1; rand = new java.util.Random(l2 ^ l3 ^ world.seed); recursiveGenerate(world, i1, j1, i, j, abyte0); } } }
protected void generateCaveNode(long l, int i, int j, byte[] abyte0, double d, double d1, double d2, float f, float f1, float f2, int k, int i1, double d3) { double d4 = i * 16 + 8; double d5 = j * 16 + 8; float f3 = 0.0F; float f4 = 0.0F; java.util.Random random = new java.util.Random(l); if(i1 <= 0) { int j1 = field_947_a * 16 - 16; i1 = j1 - random.nextInt(j1 / 4); } bool flag = false; if(k == -1) { k = i1 / 2; flag = true; } int k1 = random.nextInt(i1 / 2) + i1 / 4; bool flag1 = random.nextInt(6) == 0; for(; k < i1; k++) { double d6 = 1.5D + (double)(MathHelper.sin(((float)k * 3.141593F) / (float)i1) * f * 1.0F); double d7 = d6 * d3; float f5 = MathHelper.cos(f2); float f6 = MathHelper.sin(f2); d += MathHelper.cos(f1) * f5; d1 += f6; d2 += MathHelper.sin(f1) * f5; if(flag1) { f2 *= 0.92F; } else { f2 *= 0.7F; } f2 += f4 * 0.1F; f1 += f3 * 0.1F; f4 *= 0.9F; f3 *= 0.75F; f4 += (random.nextFloat() - random.nextFloat()) * random.nextFloat() * 2.0F; f3 += (random.nextFloat() - random.nextFloat()) * random.nextFloat() * 4F; if(!flag && k == k1 && f > 1.0F && i1 > 0) { generateCaveNode(random.nextLong(), i, j, abyte0, d, d1, d2, random.nextFloat() * 0.5F + 0.5F, f1 - 1.570796F, f2 / 3F, k, i1, 1.0D); generateCaveNode(random.nextLong(), i, j, abyte0, d, d1, d2, random.nextFloat() * 0.5F + 0.5F, f1 + 1.570796F, f2 / 3F, k, i1, 1.0D); return; } if(!flag && random.nextInt(4) == 0) { continue; } double d8 = d - d4; double d9 = d2 - d5; double d10 = i1 - k; double d11 = f + 2.0F + 16F; if((d8 * d8 + d9 * d9) - d10 * d10 > d11 * d11) { return; } if(d < d4 - 16D - d6 * 2D || d2 < d5 - 16D - d6 * 2D || d > d4 + 16D + d6 * 2D || d2 > d5 + 16D + d6 * 2D) { continue; } d8 = MathHelper.floor_double(d - d6) - i * 16 - 1; int l1 = (MathHelper.floor_double(d + d6) - i * 16) + 1; d9 = MathHelper.floor_double(d1 - d7) - 1; int i2 = MathHelper.floor_double(d1 + d7) + 1; d10 = MathHelper.floor_double(d2 - d6) - j * 16 - 1; int j2 = (MathHelper.floor_double(d2 + d6) - j * 16) + 1; if(d8 < 0) { d8 = 0; } if(l1 > 16) { l1 = 16; } if(d9 < 1) { d9 = 1; } //field_35530_d.getClass(); if(i2 > 128 - 8) { //field_35530_d.getClass(); i2 = 128 - 8; } if(d10 < 0) { d10 = 0; } if(j2 > 16) { j2 = 16; } bool flag2 = false; for(int k2 = (int) d8; !flag2 && k2 < l1; k2++) { for(int i3 = (int) d10; !flag2 && i3 < j2; i3++) { for(int j3 = i2 + 1; !flag2 && j3 >= d9 - 1; j3--) { //field_35530_d.getClass(); int k3 = (k2 * 16 + i3) * 128 + j3; if(j3 < 0) { continue; } //field_35530_d.getClass(); if(j3 >= 128) { continue; } if(abyte0[k3] == (byte)Blocks.AWater || abyte0[k3] == (byte)Blocks.SWater) { flag2 = true; } if(j3 != d9 - 1 && k2 != d8 && k2 != l1 - 1 && i3 != d10 && i3 != j2 - 1) { j3 = (int) d9; } } } } if(flag2) { continue; } for(int l2 = (int) d8; l2 < l1; l2++) { double d12 = (((double)(l2 + i * 16) + 0.5D) - d) / d6; for(int l3 = (int) d10; l3 < j2; l3++) { double d13 = (((double)(l3 + j * 16) + 0.5D) - d2) / d6; //field_35530_d.getClass(); int i4 = (l2 * 16 + l3) * 128 + i2; bool flag3 = false; if(d12 * d12 + d13 * d13 >= 1.0D) { continue; } int j4 = i2 - 1; bool label0 = false; do { if(j4 < d9) { label0 = true; break; } double d14 = (((double)j4 + 0.5D) - d1) / d7; if(d14 > -0.69999999999999996D && d12 * d12 + d14 * d14 + d13 * d13 < 1.0D) { byte byte0 = abyte0[i4]; if (byte0 == (byte)Blocks.Grass) { flag3 = true; } if (byte0 == (byte)Blocks.Stone || byte0 == (byte)Blocks.Dirt || byte0 == (byte)Blocks.Grass) { if(j4 < 10) { abyte0[i4] = (byte)Blocks.ALava; } else { abyte0[i4] = 0; if (flag3 && abyte0[i4 - 1] == (byte)Blocks.Dirt) { abyte0[i4 - 1] = (byte)Blocks.Grass; } } } } i4--; j4--; } while(true); if (label0) continue; } } if(flag) { break; } } }
protected void generateCaveNode(long l, int i, int j, byte[] abyte0, double d, double d1, double d2, float f, float f1, float f2, int k, int i1, double d3) { double d4 = i * 16 + 8; double d5 = j * 16 + 8; float f3 = 0.0F; float f4 = 0.0F; java.util.Random random = new java.util.Random(l); if (i1 <= 0) { int j1 = field_947_a * 16 - 16; i1 = j1 - random.nextInt(j1 / 4); } bool flag = false; if (k == -1) { k = i1 / 2; flag = true; } int k1 = random.nextInt(i1 / 2) + i1 / 4; bool flag1 = random.nextInt(6) == 0; for (; k < i1; k++) { double d6 = 1.5D + (double)(MathHelper.sin(((float)k * 3.141593F) / (float)i1) * f * 1.0F); double d7 = d6 * d3; float f5 = MathHelper.cos(f2); float f6 = MathHelper.sin(f2); d += MathHelper.cos(f1) * f5; d1 += f6; d2 += MathHelper.sin(f1) * f5; if (flag1) { f2 *= 0.92F; } else { f2 *= 0.7F; } f2 += f4 * 0.1F; f1 += f3 * 0.1F; f4 *= 0.9F; f3 *= 0.75F; f4 += (random.nextFloat() - random.nextFloat()) * random.nextFloat() * 2.0F; f3 += (random.nextFloat() - random.nextFloat()) * random.nextFloat() * 4F; if (!flag && k == k1 && f > 1.0F && i1 > 0) { generateCaveNode(random.nextLong(), i, j, abyte0, d, d1, d2, random.nextFloat() * 0.5F + 0.5F, f1 - 1.570796F, f2 / 3F, k, i1, 1.0D); generateCaveNode(random.nextLong(), i, j, abyte0, d, d1, d2, random.nextFloat() * 0.5F + 0.5F, f1 + 1.570796F, f2 / 3F, k, i1, 1.0D); return; } if (!flag && random.nextInt(4) == 0) { continue; } double d8 = d - d4; double d9 = d2 - d5; double d10 = i1 - k; double d11 = f + 2.0F + 16F; if ((d8 * d8 + d9 * d9) - d10 * d10 > d11 * d11) { return; } if (d < d4 - 16D - d6 * 2D || d2 < d5 - 16D - d6 * 2D || d > d4 + 16D + d6 * 2D || d2 > d5 + 16D + d6 * 2D) { continue; } d8 = MathHelper.floor_double(d - d6) - i * 16 - 1; int l1 = (MathHelper.floor_double(d + d6) - i * 16) + 1; d9 = MathHelper.floor_double(d1 - d7) - 1; int i2 = MathHelper.floor_double(d1 + d7) + 1; d10 = MathHelper.floor_double(d2 - d6) - j * 16 - 1; int j2 = (MathHelper.floor_double(d2 + d6) - j * 16) + 1; if (d8 < 0) { d8 = 0; } if (l1 > 16) { l1 = 16; } if (d9 < 1) { d9 = 1; } //field_35530_d.getClass(); if (i2 > 128 - 8) { //field_35530_d.getClass(); i2 = 128 - 8; } if (d10 < 0) { d10 = 0; } if (j2 > 16) { j2 = 16; } bool flag2 = false; for (int k2 = (int)d8; !flag2 && k2 < l1; k2++) { for (int i3 = (int)d10; !flag2 && i3 < j2; i3++) { for (int j3 = i2 + 1; !flag2 && j3 >= d9 - 1; j3--) { //field_35530_d.getClass(); int k3 = (k2 * 16 + i3) * 128 + j3; if (j3 < 0) { continue; } //field_35530_d.getClass(); if (j3 >= 128) { continue; } if (abyte0[k3] == (byte)Blocks.AWater || abyte0[k3] == (byte)Blocks.SWater) { flag2 = true; } if (j3 != d9 - 1 && k2 != d8 && k2 != l1 - 1 && i3 != d10 && i3 != j2 - 1) { j3 = (int)d9; } } } } if (flag2) { continue; } for (int l2 = (int)d8; l2 < l1; l2++) { double d12 = (((double)(l2 + i * 16) + 0.5D) - d) / d6; for (int l3 = (int)d10; l3 < j2; l3++) { double d13 = (((double)(l3 + j * 16) + 0.5D) - d2) / d6; //field_35530_d.getClass(); int i4 = (l2 * 16 + l3) * 128 + i2; bool flag3 = false; if (d12 * d12 + d13 * d13 >= 1.0D) { continue; } int j4 = i2 - 1; bool label0 = false; do { if (j4 < d9) { label0 = true; break; } double d14 = (((double)j4 + 0.5D) - d1) / d7; if (d14 > -0.69999999999999996D && d12 * d12 + d14 * d14 + d13 * d13 < 1.0D) { byte byte0 = abyte0[i4]; if (byte0 == (byte)Blocks.Grass) { flag3 = true; } if (byte0 == (byte)Blocks.Stone || byte0 == (byte)Blocks.Dirt || byte0 == (byte)Blocks.Grass) { if (j4 < 10) { abyte0[i4] = (byte)Blocks.ALava; } else { abyte0[i4] = 0; if (flag3 && abyte0[i4 - 1] == (byte)Blocks.Dirt) { abyte0[i4 - 1] = (byte)Blocks.Grass; } } } } i4--; j4--; } while(true); if (label0) { continue; } } } if (flag) { break; } } }
public override void Populate(Chunk c) { if (worldObj.seed != 0) { lock (this.Lock) { //BlockSand.fallInstantly = true; int k = c.x * 16; int l = c.z * 16; BiomeGenBase biomegenbase = worldObj.chunkManager.getBiomeGenAt(k + 16, l + 16); random.setSeed(worldObj.seed); long l1 = (random.nextLong() / 2L) * 2L + 1L; long l2 = (random.nextLong() / 2L) * 2L + 1L; random.setSeed((long)c.x * l1 + (long)c.z * l2 ^ worldObj.seed); bool flag = false; if (mapFeaturesEnabled) { //mineshaftGenerator.func_35532_a(worldObj, rand, i, j); //flag = villageGenerator.func_35532_a(worldObj, rand, i, j); //strongholdGenerator.func_35532_a(worldObj, rand, i, j); } if (!flag && random.nextInt(4) == 0) { int i1 = k + random.nextInt(16) + 8; int i2 = random.nextInt(worldObj.worldYMax); int i3 = l + random.nextInt(16) + 8; (new WorldGenLakes((byte)Blocks.SWater)).generate(worldObj, random, i1, i2, i3); } if (!flag && random.nextInt(8) == 0) { int j1 = k + random.nextInt(16) + 8; int j2 = random.nextInt(random.nextInt(worldObj.worldYMax - 8) + 8); int j3 = l + random.nextInt(16) + 8; if (j2 < 63 || random.nextInt(10) == 0) { (new WorldGenLakes((byte)Blocks.SLava)).generate(worldObj, random, j1, j2, j3); } } for (int k1 = 0; k1 < 8; k1++) { int k2 = k + random.nextInt(16) + 8; int k3 = random.nextInt(worldObj.worldYMax); int l3 = l + random.nextInt(16) + 8; if (!(new WorldGenDungeons()).generate(worldObj, random, k2, k3, l3)) { ; } //if ((new WorldGenDungeons()).generate(worldObj, random, k2, k3, l3)) Console.WriteLine("Dungeon @ {0},{1},{2}", k2, k3, l3); } biomegenbase.func_35513_a(worldObj, random, k, l); //SpawnerAnimals.func_35573_a(worldObj, biomegenbase, k + 8, l + 8, 16, 16, rand); k += 8; l += 8; for (int i2 = 0; i2 < 16; i2++) { for (int j3 = 0; j3 < 16; j3++) { int j4 = worldObj.GetTopSolidOrLiquidBlock(k + i2, l + j3); if (worldObj.func_40210_p(i2 + k, j4 - 1, j3 + l)) { worldObj.SetBlock(i2 + k, j4 - 1, j3 + l, (byte)Blocks.Ice); } if (worldObj.func_40215_r(i2 + k, j4, j3 + l)) { worldObj.SetBlock(i2 + k, j4, j3 + l, (byte)Blocks.Snow); } } } //BlockSand.fallInstantly = false; } } }