示例#1
0
  public void hatch() {
    if (!worldObj.isRemote) {
      worldObj.playAuxSFX(2001, xCoord, yCoord, zCoord, Block.getIdFromBlock(getBlockType()));
      worldObj.setBlockToAir(xCoord, yCoord, zCoord);

      EntityAnimal entity = null;

      float specialChance = 0.05F;
      if (Math.random() < specialChance) {
        int entityType = worldObj.rand.nextInt(3);
        switch (entityType) {
          case 0:
            entity = new EntityHorse(worldObj);
            break;
          case 1:
            entity = new EntityWolf(worldObj);
            break;
          case 2:
            entity = new EntityOcelot(worldObj);
            break;
        }
      } else {
        int entityType = worldObj.rand.nextInt(4);
        switch (entityType) {
          case 0:
            entity = new EntitySheep(worldObj);
            break;
          case 1:
            if (Math.random() < 0.01) entity = new EntityMooshroom(worldObj);
            else entity = new EntityCow(worldObj);
            break;
          case 2:
            entity = new EntityPig(worldObj);
            break;
          case 3:
            entity = new EntityChicken(worldObj);
            break;
        }
      }

      if (entity != null) {
        entity.setPosition(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5);
        entity.setGrowingAge(-24000);
        worldObj.spawnEntityInWorld(entity);
        entity.spawnExplosionParticle();
      }
    }
  }