All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.minecraft.server.BiomeForest Maven / Gradle / Ivy

package net.minecraft.server;

import java.util.Random;

public class BiomeForest extends BiomeBase {

  protected static final WorldGenForest aD = new WorldGenForest(false, true);
  protected static final WorldGenForest aE = new WorldGenForest(false, false);
  protected static final WorldGenForestTree aF = new WorldGenForestTree(false);
  private final int aG;

  public BiomeForest(int i, int j) {
    super(i);
    this.aG = j;
    this.as.A = 10;
    this.as.C = 2;
    if (this.aG == 1) {
      this.as.A = 6;
      this.as.B = 100;
      this.as.C = 1;
    }

    this.a(5159473);
    this.a(0.7F, 0.8F);
    if (this.aG == 2) {
      this.aj = 353825;
      this.ai = 3175492;
      this.a(0.6F, 0.6F);
    }

    if (this.aG == 0) {
      this.au.add(new BiomeMeta(EntityWolf.class, 5, 4, 4));
    }

    if (this.aG == 3) {
      this.as.A = -999;
    }

  }

  protected BiomeBase a(int i, boolean flag) {
    if (this.aG == 2) {
      this.aj = 353825;
      this.ai = i;
      if (flag) {
        this.aj = (this.aj & 16711422) >> 1;
      }

      return this;
    } else {
      return super.a(i, flag);
    }
  }

  public WorldGenTreeAbstract a(Random random) {
    return this.aG == 3 && random.nextInt(3) > 0 ? BiomeForest.aF : (this.aG != 2 && random.nextInt(5) != 0 ? this.aA : BiomeForest.aE);
  }

  public BlockFlowers.EnumFlowerVarient a(Random random, BlockPosition blockposition) {
    if (this.aG == 1) {
      double d0 = MathHelper.a((1.0D + BiomeForest.af.a((double) blockposition.getX() / 48.0D, (double) blockposition.getZ() / 48.0D)) / 2.0D, 0.0D, 0.9999D);
      BlockFlowers.EnumFlowerVarient blockflowers_enumflowervarient = BlockFlowers.EnumFlowerVarient.values()[(int) (d0 * (double) BlockFlowers.EnumFlowerVarient.values().length)];

      return blockflowers_enumflowervarient == BlockFlowers.EnumFlowerVarient.BLUE_ORCHID ? BlockFlowers.EnumFlowerVarient.POPPY : blockflowers_enumflowervarient;
    } else {
      return super.a(random, blockposition);
    }
  }

  public void a(World world, Random random, BlockPosition blockposition) {
    int i;
    int j;
    int k;
    int l;

    if (this.aG == 3) {
      for (i = 0; i < 4; ++i) {
        for (j = 0; j < 4; ++j) {
          k = i * 4 + 1 + 8 + random.nextInt(3);
          l = j * 4 + 1 + 8 + random.nextInt(3);
          BlockPosition blockposition1 = world.getHighestBlockYAt(blockposition.a(k, 0, l));

          if (random.nextInt(20) == 0) {
            WorldGenHugeMushroom worldgenhugemushroom = new WorldGenHugeMushroom();

            worldgenhugemushroom.generate(world, random, blockposition1);
          } else {
            WorldGenTreeAbstract worldgentreeabstract = this.a(random);

            worldgentreeabstract.e();
            if (worldgentreeabstract.generate(world, random, blockposition1)) {
              worldgentreeabstract.a(world, random, blockposition1);
            }
          }
        }
      }
    }

    i = random.nextInt(5) - 3;
    if (this.aG == 1) {
      i += 2;
    }

    j = 0;

    while (j < i) {
      k = random.nextInt(3);
      if (k == 0) {
        BiomeForest.ag.a(BlockTallPlant.EnumTallFlowerVariants.SYRINGA);
      } else if (k == 1) {
        BiomeForest.ag.a(BlockTallPlant.EnumTallFlowerVariants.ROSE);
      } else {
        BiomeForest.ag.a(BlockTallPlant.EnumTallFlowerVariants.PAEONIA);
      }

      l = 0;

      while (true) {
        if (l < 5) {
          int i1 = random.nextInt(16) + 8;
          int j1 = random.nextInt(16) + 8;
          int k1 = random.nextInt(world.getHighestBlockYAt(blockposition.a(i1, 0, j1)).getY() + 32);

          if (!BiomeForest.ag.generate(world, random, new BlockPosition(blockposition.getX() + i1, k1, blockposition.getZ() + j1))) {
            ++l;
            continue;
          }
        }

        ++j;
        break;
      }
    }

    super.a(world, random, blockposition);
  }

  protected BiomeBase d(final int i) {
    if (this.id == BiomeBase.FOREST.id) {
      BiomeForest biomeforest = new BiomeForest(i, 1);

      biomeforest.a(new BiomeTemperature(this.an, this.ao + 0.2F));
      biomeforest.a("Flower Forest");
      biomeforest.a(6976549, true);
      biomeforest.a(8233509);
      return biomeforest;
    } else {
      return this.id != BiomeBase.BIRCH_FOREST.id && this.id != BiomeBase.BIRCH_FOREST_HILLS.id ? new BiomeBaseSub(i, this) {
        public void a(World world, Random random, BlockPosition blockposition) {
          this.aE.a(world, random, blockposition);
        }
      } : new BiomeBaseSub(i, this) {
        public WorldGenTreeAbstract a(Random random) {
          return random.nextBoolean() ? BiomeForest.aD : BiomeForest.aE;
        }
      };
    }
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy