public static void createSkyblock(World world, BlockPos pos) { for(int i = 0; i < 3; i++) for(int j = 0; j < 4; j++) for(int k = 0; k < 3; k++) world.setBlockState(pos.add(-1 + i, -1 - j, -1 + k), j == 0 ? Blocks.GRASS.getDefaultState() : Blocks.DIRT.getDefaultState()); world.setBlockState(pos.add(-1, -2, 0), Blocks.FLOWING_WATER.getDefaultState()); world.setBlockState(pos.add(1, 2, 1), ModBlocks.manaFlame.getDefaultState()); ((TileManaFlame) world.getTileEntity(pos.add(1, 2, 1))).setColor(new Color(70 + world.rand.nextInt(185), 70 + world.rand.nextInt(185), 70 + world.rand.nextInt(185)).getRGB()); int[][] rootPositions = new int[][] { { -1, -3, -1 }, { -2, -4, -1 }, { -2, -4, -2 }, { +1, -4, -1 }, { +1, -5, -1 }, { +2, -5, -1 }, { +2, -6, +0 }, { +0, -4, +2 }, { +0, -5, +2 }, { +0, -5, +3 }, { +0, -6, +3 }, }; for(int[] root : rootPositions) world.setBlockState(pos.add(root[0], root[1], root[2]), ModBlocks.root.getDefaultState()); world.setBlockState(pos.down(4), Blocks.BEDROCK.getDefaultState()); }
public UndergroundBiomeLush() { super(Blocks.GRASS.getDefaultState(), null, null); }
@Override public Surface createSurfaceGenerator(EarthCoverContext context) { return new Surface(context, this, Blocks.GRASS.getDefaultState(), true); }
private static BlockSwapper swapperFromMeta(World world, BlockPos pos, int meta) { switch(meta) { case 1 : return new BlockSwapper(world, pos, Blocks.DIRT.getDefaultState().withProperty(BlockDirt.VARIANT, BlockDirt.DirtType.PODZOL)); case 2 : return new BlockSwapper(world, pos, Blocks.MYCELIUM.getDefaultState()); case 3 : return new BlockSwapper(world, pos, ModBlocks.altGrass.getDefaultState().withProperty(BotaniaStateProps.ALTGRASS_VARIANT, AltGrassVariant.DRY)); case 4 : return new BlockSwapper(world, pos, ModBlocks.altGrass.getDefaultState().withProperty(BotaniaStateProps.ALTGRASS_VARIANT, AltGrassVariant.GOLDEN)); case 5 : return new BlockSwapper(world, pos, ModBlocks.altGrass.getDefaultState().withProperty(BotaniaStateProps.ALTGRASS_VARIANT, AltGrassVariant.VIVID)); case 6 : return new BlockSwapper(world, pos, ModBlocks.altGrass.getDefaultState().withProperty(BotaniaStateProps.ALTGRASS_VARIANT, AltGrassVariant.SCORCHED)); case 7 : return new BlockSwapper(world, pos, ModBlocks.altGrass.getDefaultState().withProperty(BotaniaStateProps.ALTGRASS_VARIANT, AltGrassVariant.INFUSED)); case 8 : return new BlockSwapper(world, pos, ModBlocks.altGrass.getDefaultState().withProperty(BotaniaStateProps.ALTGRASS_VARIANT, AltGrassVariant.MUTATED)); default : return new BlockSwapper(world, pos, Blocks.GRASS.getDefaultState()); } }
@Override public boolean generate(World world, Random rand, BlockPos pos) { int x = pos.getX(); int y = pos.getY(); int z = pos.getZ(); for (int attempt = 0; attempt < 64; ++attempt) { int xx = x + rand.nextInt(8) - rand.nextInt(8); int yy = y + rand.nextInt(4) - rand.nextInt(4); int zz = z + rand.nextInt(8) - rand.nextInt(8); BlockPos posTurnip = new BlockPos(xx, yy, zz); if (world.isAirBlock(posTurnip) && world.getBlockState(posTurnip.down()) == Blocks.GRASS.getDefaultState()) world.setBlockState(posTurnip, ModBlocks.CROP_TURNIP.getDefaultState().withProperty(BlockTurnip.AGE, Integer.valueOf(7))); } return true; } }
@Override public boolean generate(World world, Random rand, BlockPos pos) { boolean canSpawn = rand.nextBoolean() && rand.nextBoolean(); int x = pos.getX(); int y = pos.getY(); int z = pos.getZ(); if (!canSpawn) for (int waterAttempt = 0; waterAttempt < 30; waterAttempt++) if (world.getBlockState(new BlockPos(x + rand.nextInt(8) - rand.nextInt(8), y + rand.nextInt(4) - rand.nextInt(4), z + rand.nextInt(8) - rand.nextInt(8))).getMaterial() == Material.WATER) { canSpawn = true; break; } if (!canSpawn) return false; for (int attempt = 0, xx, yy, zz; attempt < 64; ++attempt) { xx = x + rand.nextInt(8) - rand.nextInt(8); yy = y + rand.nextInt(4) - rand.nextInt(4); zz = z + rand.nextInt(8) - rand.nextInt(8); BlockPos posMelon = new BlockPos(xx, yy, zz); if (world.isAirBlock(posMelon) && world.getBlockState(posMelon.down()) == Blocks.GRASS.getDefaultState() && Blocks.MELON_BLOCK.canPlaceBlockAt(world, posMelon)) world.setBlockState(posMelon, Blocks.MELON_BLOCK.getDefaultState(), 3); } return true; }
@Override public boolean generate(World world, Random rand, BlockPos pos) { boolean plausible = false; int y = pos.getY(); for (int a = 0; a < 10; a++) { if (world.isAirBlock(pos) && world.getBlockState(pos.down()) == Blocks.GRASS.getDefaultState()) { plausible = true; break; } if (--y <= 1) return false; } if (!plausible) return false; float rad = rand.nextFloat() + 2.6F; int ceilRad = 1 + (int) Math.ceil(rad); for (int xx = -ceilRad; xx <= ceilRad; xx++) for (int yy = -ceilRad; yy <= ceilRad; yy++) for (int zz = -ceilRad; zz <= ceilRad; zz++) if (Math.sqrt(xx * xx + yy * yy + zz * zz) <= rad + rand.nextFloat() * 0.4F) setAmberBlock(world, pos.add(xx, yy, zz), rand); return true; }
@Override public boolean generate(World world, Random rand, BlockPos pos) { int x = pos.getX(); int y = pos.getY(); int z = pos.getZ(); float ang, len; for (int attempt = 0, placed = 0, xx, yy, zz; attempt < 10 && placed < 5; ++attempt) { ang = (float) (rand.nextDouble() * Math.PI * 2D); len = rand.nextFloat() * (0.3F + rand.nextFloat() * 0.7F) * 7F; xx = (int) (x + 0.5F + MathHelper.cos(ang) * len); yy = y + rand.nextInt(3) - rand.nextInt(3); zz = (int) (z + 0.5F + MathHelper.sin(ang) * len); BlockPos posNew = new BlockPos(xx, yy, zz); if (world.isAirBlock(posNew) && world.getBlockState(posNew.down()) == Blocks.GRASS.getDefaultState()) { world.setBlockState(posNew, ModBlocks.SMALL_PLANT.getDefaultState().withProperty(BlockSmallPlant.PLANT_TYPE, rand.nextBoolean() ? BlockSmallPlant.EnumSmallPlantType.NETTLE : BlockSmallPlant.EnumSmallPlantType.NETTLE_FLOWERED), 2); ++placed; } } return true; } }
@Override public boolean generate(World world, Random rand, BlockPos pos) { int x = pos.getX(); int y = pos.getY(); int z = pos.getZ(); float ang, len; for (int attempt = 0, placed = 0, xx, yy, zz; attempt < 10 && placed < 5; ++attempt) { ang = (float) (rand.nextDouble() * Math.PI * 2D); len = rand.nextFloat() * (0.3F + rand.nextFloat() * 0.7F) * 7F; xx = (int) (x + 0.5F + MathHelper.cos(ang) * len); yy = y + rand.nextInt(3) - rand.nextInt(3); zz = (int) (z + 0.5F + MathHelper.sin(ang) * len); BlockPos posNew = new BlockPos(xx, yy, zz); if (world.isAirBlock(posNew.up()) && world.getBlockState(posNew) == Blocks.GRASS.getDefaultState()) { world.setBlockState(posNew, ModBlocks.SWAMP_VENT.getDefaultState(), 2); ++placed; } } return true; } }
@Override public void updateTick(World world, BlockPos blockPos, IBlockState blockState, Random random) { if(random.nextInt(CHANCE_DESPAWN) == 0) { if(random.nextInt(CHANCE_BONEMEAL) == 0) { for(int xr = - 2; xr <= 2; xr++) { for(int zr = - 2; zr <= 2; zr++) { if(random.nextInt(9) == 0) { IBlockState blockBelow = world.getBlockState(blockPos.add(xr, -1, zr)); if(blockBelow.getBlock() == Blocks.DIRT) { world.setBlockState(blockPos.add(xr, -1, zr), Blocks.GRASS.getDefaultState()); } else if(blockBelow == Blocks.GRASS) { ItemDye.applyBonemeal(new ItemStack(Items.DYE, 1), world, blockPos.add(xr, -1, zr)); } ItemDye.applyBonemeal(new ItemStack(Items.DYE, 1), world, blockPos.add(xr, -1, zr)); } } } } world.setBlockToAir(blockPos); } }
@Override public boolean generate(World world, Random rand, BlockPos pos) { int x = pos.getX(); int y = pos.getY(); int z = pos.getZ(); float ang, len; int randomBush = rand.nextInt(2); for (int attempt = 0, placed = 0, xx, yy, zz; attempt < 10 && placed < 5; ++attempt) { ang = (float) (rand.nextDouble() * Math.PI * 2D); len = rand.nextFloat() * (0.3F + rand.nextFloat() * 0.7F) * 7F; xx = (int) (x + 0.5F + MathHelper.cos(ang) * len); yy = y + rand.nextInt(3) - rand.nextInt(3); zz = (int) (z + 0.5F + MathHelper.sin(ang) * len); BlockPos posBush = new BlockPos(xx, yy, zz); if (world.isAirBlock(posBush) && world.getBlockState(posBush.down()) == ModBlocks.UMBERSTONE.getDefaultState()) { world.setBlockState(posBush.down(), Blocks.DIRT.getDefaultState(), 2); world.setBlockState(posBush, bushType[2], 2); ++placed; } else if (world.isAirBlock(posBush) && world.getBlockState(posBush.down()) == Blocks.GRASS.getDefaultState()) { world.setBlockState(posBush, bushType[randomBush], 2); ++placed; } } return true; } }
public boolean matchBlock(IBlockState block) { switch (this) { case GRASS: return block == Blocks.GRASS.getDefaultState() || block == Blocks.MYCELIUM.getDefaultState(); case DIRT: return block == Blocks.DIRT.getDefaultState(); case SAND: return block == Blocks.SAND.getDefaultState() || block == Blocks.SAND.getDefaultState().withProperty(BlockSand.VARIANT, BlockSand.EnumType.RED_SAND); case MIXED: return block == Blocks.GRASS.getDefaultState() || block == Blocks.DIRT.getDefaultState() || block == Blocks.SAND.getDefaultState() || block == Blocks.SAND.getDefaultState().withProperty(BlockSand.VARIANT, BlockSand.EnumType.RED_SAND); case UMBERSTONE: return block == ModBlocks.UMBERSTONE.getDefaultState(); case VOLCANIC_ROCK: return block == ModBlocks.VOLCANIC_ROCK.getDefaultState(); case DUST: return block == ModBlocks.DUST.getDefaultState(); default: return false; } } }
@Override @SuppressWarnings("deprecation, unchecked") @Nonnull public IBlockState getActualState(@Nonnull IBlockState state, IBlockAccess world, BlockPos pos) { CropType stage = getEnumFromState(state); TileWithered crop = CropHelper.getTile(world, pos, stage.getSection()); if (stage.getSection() == PlantSection.TOP && crop == null) { IBlockState theState = CropHelper.getTempState(pos); return theState == null ? Blocks.GRASS.getDefaultState(): theState; } if (crop != null) return crop.getData().getCrop().getStateHandler().getState(world, pos, stage.getSection(), crop.getData().getCrop(), crop.getData().getStage(), stage.isWithered()); else return Blocks.DEADBUSH.getDefaultState(); }
public boolean addComponentParts(World worldIn, Random randomIn, StructureBoundingBox structureBoundingBoxIn) { if (this.averageGroundLvl < 0) { this.averageGroundLvl = this.getAverageGroundLevel(worldIn, structureBoundingBoxIn); if (this.averageGroundLvl < 0) { return true; } this.boundingBox.offset(1, this.averageGroundLvl - this.boundingBox.maxY - 1, 1); } this.fillWithBlocks(worldIn, structureBoundingBoxIn, 0, 0, 0, 3, 0, 3, Blocks.GRASS.getDefaultState(), Blocks.GRASS_PATH.getDefaultState(), false); BlockPos blockpos = new BlockPos(this.getXWithOffset(1, 2), this.getYWithOffset(1), this.getZWithOffset(1, 2)); TREE_GEN.generate(worldIn, randomIn, blockpos); this.fillWithBlocks(worldIn, structureBoundingBoxIn, 0, 0, 0, 3, 0, 3, Blocks.GRASS_PATH.getDefaultState(), Blocks.GRASS_PATH.getDefaultState(), false); for (int l = 0; l < 3; ++l) { for (int k = 0; k < 3; ++k) { this.replaceAirAndLiquidDownwards(worldIn, Blocks.DIRT.getDefaultState(), l, -1, k, structureBoundingBoxIn); } } return true; }
public BiomeFungalForest(BiomeProperties properties) { super(properties, new BiomeDecoratorFungalForest()); properties.setBaseBiome("Fungal Forest"); properties.setTemperature(0.9F); properties.setRainDisabled(); setColors(0x4E8833); setFog(203, 209, 218); topBlock = Blocks.GRASS.getDefaultState(); spawningGradual.add(new SpawnEntry(EntityFungalWeevil.class, 10).setGroupSize(1, 1)); spawningGradual.add(new SpawnEntry(EntityCrushroom.class, 5).setGroupSize(1, 2)); spawningGradual.add(new SpawnEntry(EntityBlackAnt.class, 15).setGroupSize(3, 5)); spawningGradual.add(new SpawnEntry(EntityPunchroom.class, 10).setGroupSize(1, 2)); spawningGradual.add(new SpawnEntry(EntityStagBeetle.class, 8).setGroupSize(1, 1)); spawningGradual.add(new SpawnEntry(EntityZombieAnt.class, 8).setGroupSize(1, 4)); spawningGradual.add(new SpawnEntry(EntityZombieAntSoldier.class, 8).setGroupSize(1, 2)); } }
protected void digBlock(ChunkPrimer data, int x, int y, int z, int chunkX, int chunkZ, boolean foundTop) { Biome biome = world.getBiome(new BlockPos(x + chunkX * 16, 0, z + chunkZ * 16)); IBlockState top = isExceptionBiome(biome) ? Blocks.GRASS.getDefaultState() : biome.topBlock; IBlockState filler = isExceptionBiome(biome) ? Blocks.DIRT.getDefaultState() : biome.fillerBlock; IBlockState state = data.getBlockState(x, y, z); if (state.getBlock() == ModBlocks.UMBERSTONE || state.getBlock() == top.getBlock() || state.getBlock() == filler.getBlock()) { if (y < 3) data.setBlockState(x, y, z, Blocks.BEDROCK.getDefaultState()); else if (y < 4) data.setBlockState(x, y, z, ModBlocks.UMBERSTONE.getDefaultState()); else if (y < 10 && Biome.getIdForBiome(biome) == Biome.getIdForBiome(ModBiomes.VOLCANIC_DESERT)) data.setBlockState(x, y, z, Blocks.FLOWING_LAVA.getDefaultState()); else if (y < ChunkProviderErebus.swampWaterHeight - 1 && Biome.getIdForBiome(biome) == Biome.getIdForBiome(ModBiomes.SUBMERGED_SWAMP)) data.setBlockState(x, y, z, Blocks.FLOWING_WATER.getDefaultState()); else { data.setBlockState(x, y, z, Blocks.AIR.getDefaultState()); if (foundTop && data.getBlockState(x, y - 1, z).getBlock() == filler.getBlock()) data.setBlockState(x, y - 1, z, top.getBlock().getDefaultState()); } } } }
public void addInteractions() { addInteraction(Blocks.DIRT.getDefaultState().withProperty(BlockDirt.VARIANT, DirtType.DIRT), Blocks.GRASS.getDefaultState(), false); addInteraction(Blocks.DIRT.getDefaultState().withProperty(BlockDirt.VARIANT, DirtType.COARSE_DIRT), Blocks.DIRT.getDefaultState().withProperty(BlockDirt.VARIANT, DirtType.PODZOL), false); addInteraction(Blocks.GLASS, Blocks.SAND); // addInteraction(Blocks.stained_glass, -1, Blocks.glass); // addInteraction(Blocks.diamond_ore, -1, TFBlocks.blockOre, 1); // addInteraction(Blocks.cauldron, -1, Blocks.carpet, 1); // addInteraction(Blocks.cactus, -1, Blocks.cake, 5); // addInteraction(Blocks.enchanting_table, -1, Blocks.brewing_stand, 0); // addInteraction(Blocks.bookshelf, 0, Blocks.chest, 0); // addInteraction(Blocks.ender_chest, -1, TFBlocks.blockFluidEnder, 1); // addInteraction(Blocks.dragon_egg, -1, Blocks.bedrock, 1); addInteraction(Blocks.REDSTONE_ORE.getDefaultState(), Blocks.LIT_REDSTONE_ORE.getDefaultState(), true); addInteraction(Blocks.LAPIS_ORE.getDefaultState(), Blocks.LAPIS_BLOCK.getDefaultState(), true); addInteraction(Blocks.FARMLAND.getDefaultState(), Blocks.MYCELIUM.getDefaultState(), true); // for (int i = 8; i-- > 0; ) { // addInteraction(Blocks.DOUBLE_STONE_SLAB.getStateFromMeta(i), Blocks.DOUBLE_STONE_SLAB.getStateFromMeta(i + 8), false); // } addInteraction(TFBlocks.blockOre.getDefaultState().withProperty(BlockOre.VARIANT, BlockOre.Type.SILVER), TFBlocks.blockOre.getDefaultState().withProperty(BlockOre.VARIANT, BlockOre.Type.MITHRIL)); addInteraction(TFBlocks.blockOre.getDefaultState().withProperty(BlockOre.VARIANT, BlockOre.Type.LEAD), Blocks.GOLD_ORE.getDefaultState()); addInteraction(TFBlocks.blockStorage.getDefaultState().withProperty(BlockStorage.VARIANT, BlockStorage.Type.SILVER), TFBlocks.blockStorage.getDefaultState().withProperty(BlockStorage.VARIANT, BlockStorage.Type.MITHRIL)); addInteraction(TFBlocks.blockStorage.getDefaultState().withProperty(BlockStorage.VARIANT, BlockStorage.Type.LEAD), Blocks.GOLD_BLOCK.getDefaultState()); }
public BiomeSubterraneanSavannah(BiomeProperties properties) { super(properties, new BiomeDecoratorSubterraneanSavannah()); properties.setBaseBiome("Subterranean Savannah"); properties.setTemperature(0.95F); properties.setRainDisabled(); setColors(0xB6B957, 0xA3A52D); setFog(140, 116, 9); spawningGradual.add(new SpawnEntry(EntityMosquito.class, 60).setGroupSize(1, 3)); spawningGradual.add(new SpawnEntry(EntityFly.class, 15).setGroupSize(8, 8)); spawningGradual.add(new SpawnEntry(EntityWasp.class, 20).setGroupSize(4, 8)); spawningGradual.add(new SpawnEntry(EntityBeetleLarva.class, 25).setGroupSize(2, 4)); spawningGradual.add(new SpawnEntry(EntityBeetle.class, 20).setGroupSize(1, 2)); spawningGradual.add(new SpawnEntry(EntityGrasshopper.class, 10).setGroupSize(4, 8)); spawningGradual.add(new SpawnEntry(EntityChameleonTick.class, 10).setGroupSize(1, 2)); spawningGradual.add(new SpawnEntry(EntityScytodes.class, 20).setGroupSize(1, 4)); spawningGradual.add(new SpawnEntry(EntityTarantula.class, 10).setGroupSize(1, 4)); spawningGradual.add(new SpawnEntry(EntityScorpion.class, 10).setGroupSize(1, 3)); spawningGradual.add(new SpawnEntry(EntityGlowWorm.class, 8).setGroupSize(1, 4)); topBlock = Blocks.GRASS.getDefaultState(); fillerBlock = Blocks.DIRT.getDefaultState(); } }
public void setupChars(LostCityProfile profile) { if (!charsSetup) { airChar = (char) Block.BLOCK_STATE_IDS.get(Blocks.AIR.getDefaultState()); hardAirChar = (char) Block.BLOCK_STATE_IDS.get(Blocks.COMMAND_BLOCK.getDefaultState()); glowstoneChar = (char) Block.BLOCK_STATE_IDS.get(Blocks.GLOWSTONE.getDefaultState()); gravelChar = (char) Block.BLOCK_STATE_IDS.get(Blocks.GRAVEL.getDefaultState()); baseChar = (char) Block.BLOCK_STATE_IDS.get(profile.getBaseBlock()); liquidChar = (char) Block.BLOCK_STATE_IDS.get(profile.getLiquidBlock()); // @todo glassChar = (char) Block.BLOCK_STATE_IDS.get(Blocks.GLASS.getDefaultState()); leavesChar = (char) Block.BLOCK_STATE_IDS.get(Blocks.LEAVES.getDefaultState() .withProperty(BlockLeaves.DECAYABLE, false)); leaves2Char = (char) Block.BLOCK_STATE_IDS.get(Blocks.LEAVES.getDefaultState() .withProperty(BlockLeaves.DECAYABLE, false) .withProperty(BlockOldLeaf.VARIANT, BlockPlanks.EnumType.JUNGLE)); leaves3Char = (char) Block.BLOCK_STATE_IDS.get(Blocks.LEAVES.getDefaultState() .withProperty(BlockLeaves.DECAYABLE, false) .withProperty(BlockOldLeaf.VARIANT, BlockPlanks.EnumType.SPRUCE)); ironbarsChar = (char) Block.BLOCK_STATE_IDS.get(Blocks.IRON_BARS.getDefaultState()); grassChar = (char) Block.BLOCK_STATE_IDS.get(Blocks.GRASS.getDefaultState()); bedrockChar = (char) Block.BLOCK_STATE_IDS.get(Blocks.BEDROCK.getDefaultState()); endportalChar = (char) Block.BLOCK_STATE_IDS.get(Blocks.END_PORTAL.getDefaultState()); endportalFrameChar = (char) Block.BLOCK_STATE_IDS.get(Blocks.END_PORTAL_FRAME.getDefaultState()); goldBlockChar = (char) Block.BLOCK_STATE_IDS.get(Blocks.GOLD_BLOCK.getDefaultState()); diamondBlockChar = (char) Block.BLOCK_STATE_IDS.get(Blocks.DIAMOND_BLOCK.getDefaultState()); charsSetup = true; } }
public BiomeUndergroundJungle(BiomeProperties properties) { super(properties, new BiomeDecoratorUndergroundJungle()); properties.setBaseBiome("Underground Jungle"); properties.setTemperature(1.35F); properties.setRainDisabled(); setColors(0x53CA37, 0x29BC05); setFog(8, 128, 8); spawningGradual.add(new SpawnEntry(EntityMosquito.class, 60).setGroupSize(1, 3)); spawningGradual.add(new SpawnEntry(EntityFly.class, 10).setGroupSize(8, 8)); spawningGradual.add(new SpawnEntry(EntityWasp.class, 20).setGroupSize(4, 8)); spawningGradual.add(new SpawnEntry(EntityCentipede.class, 10).setGroupSize(4, 8)); spawningGradual.add(new SpawnEntry(EntityBotFly.class, 10).setGroupSize(2, 3)); spawningGradual.add(new SpawnEntry(EntityBeetleLarva.class, 20).setGroupSize(2, 4)); spawningGradual.add(new SpawnEntry(EntityBeetle.class, 15).setGroupSize(1, 2)); spawningGradual.add(new SpawnEntry(EntityBombardierBeetle.class, 8).setGroupSize(1, 2)); spawningGradual.add(new SpawnEntry(EntityBombardierBeetleLarva.class, 20).setGroupSize(2, 4)); spawningGradual.add(new SpawnEntry(EntityJumpingSpider.class, 10).setGroupSize(1, 4)); spawningGradual.add(new SpawnEntry(EntityPrayingMantis.class, 10).setGroupSize(4, 8)); spawningGradual.add(new SpawnEntry(EntityScytodes.class, 20).setGroupSize(1, 4)); spawningGradual.add(new SpawnEntry(EntityTarantula.class, 10).setGroupSize(4, 8)); spawningGradual.add(new SpawnEntry(EntityChameleonTick.class, 10).setGroupSize(1, 2)); spawningGradual.add(new SpawnEntry(EntityVelvetWorm.class, 10).setGroupSize(1, 2)); topBlock = Blocks.GRASS.getDefaultState(); fillerBlock = Blocks.DIRT.getDefaultState(); }