//Sets the dimension to generate as the void biome. The sky islands will override this where they generate, so this will only be the biome between the islands.
setSingleBiome("minecraft:void")

//Add Vanilla Biome Types - Creates a new SkyIslandType. The argument is a biome id.
forest = new SkyIslandType("minecraft:forest")

cold_taiga = new SkyIslandType("minecraft:taiga_cold")

desert = new SkyIslandType("minecraft:desert")
desert.disableFluid()

mesa = new SkyIslandType("minecraft:mesa")

jungle = new SkyIslandType("minecraft:jungle")

plains = new SkyIslandType("minecraft:plains")

taiga = new SkyIslandType("minecraft:taiga")

swamp = new SkyIslandType("minecraft:swampland")

mushroom = new SkyIslandType("minecraft:mushroom_island")

ice_plains = new SkyIslandType("minecraft:ice_flats")

savanna = new SkyIslandType("minecraft:savanna")

roofed_forest = new SkyIslandType("minecraft:roofed_forest")

redwood_taiga = new SkyIslandType("minecraft:redwood_taiga")

ocean = new SkyIslandType("minecraft:ocean")
ocean.setFluidPercentage(.9)
lilypad = new ScatteredBlockGenerator(<minecraft:waterlily>, 164, 16)
lilypad.addRequiredBlock(<minecraft:water>)
ocean.addGenerator(lilypad)

//=====================================
// Add Biomes o plenty biome types
bop_oasis = new SkyIslandType("biomesoplenty:oasis")

bop_woodland = new SkyIslandType("biomesoplenty:woodland")

bop_white_beach = new SkyIslandType("biomesoplenty:white_beach")

bop_shrubland = new SkyIslandType("biomesoplenty:shrubland")
bop_shrubland.disableFluid()

bop_xeric_shrubland = new SkyIslandType("biomesoplenty:xeric_shrubland")

bop_tropical_rainforest = new SkyIslandType("biomesoplenty:tropical_rainforest")

bop_fen = new SkyIslandType("biomesoplenty:fen")

bop_steppe = new SkyIslandType("biomesoplenty:steppe")

bop_alps_foothills = new SkyIslandType("biomesoplenty:alps_foothills")

bop_redwood_forest_edge = new SkyIslandType("biomesoplenty:redwood_forest_edge")

bop_bayou = new SkyIslandType("biomesoplenty:bayou")

// Probability of spawning mineshaft in a mountain biome island is ("one in 1" = 100%)
bop_mountain = new SkyIslandType("biomesoplenty:mountain")
bop_mountain.generateMineshafts(1)

bop_overgrown_cliffs = new SkyIslandType("biomesoplenty:overgrown_cliffs")

bop_highland = new SkyIslandType("biomesoplenty:highland")

bop_volcanic_island = new SkyIslandType("biomesoplenty:volcanic_island")

bop_quagmire = new SkyIslandType("biomesoplenty:quagmire")

bop_marsh = new SkyIslandType("biomesoplenty:marsh")

bop_chaparral = new SkyIslandType("biomesoplenty:chaparral")

bop_flower_island = new SkyIslandType("biomesoplenty:flower_island")

bop_flower_field = new SkyIslandType("biomesoplenty:flower_field")

bop_wetland = new SkyIslandType("biomesoplenty:wetland")

bop_mystic_grove = new SkyIslandType("biomesoplenty:mystic_grove")

bop_cold_desert = new SkyIslandType("biomesoplenty:cold_desert")
bop_cold_desert.disableFluid()

bop_mountain_foothills = new SkyIslandType("biomesoplenty:mountain_foothills")

bop_maple_woods = new SkyIslandType("biomesoplenty:maple_woods")

bop_coral_reef = new SkyIslandType("biomesoplenty:coral_reef")
bop_coral_reef.setFluidPercentage(.8)

bop_orchard = new SkyIslandType("biomesoplenty:orchard")
bop_orchard.setFluidPercentage(.02)
bop_orchard.generateVillages(4)

bop_moor = new SkyIslandType("biomesoplenty:moor")

bop_land_of_lakes = new SkyIslandType("biomesoplenty:land_of_lakes")

bop_bog = new SkyIslandType("biomesoplenty:bog")

bop_coniferous_forest = new SkyIslandType("biomesoplenty:coniferous_forest")

bop_eucalyptus_forest = new SkyIslandType("biomesoplenty:eucalyptus_forest")

bop_outback = new SkyIslandType("biomesoplenty:outback")

bop_shield = new SkyIslandType("biomesoplenty:shield")

bop_snowy_tundra = new SkyIslandType("biomesoplenty:snowy_tundra")


// Probability of spawning mineshaft in alps biome island is (3 e.g. "one in 2" e.g. 50%)
bop_alps = new SkyIslandType("biomesoplenty:alps")
bop_alps.generateMineshafts(1)

bop_lush_desert = new SkyIslandType("biomesoplenty:lush_desert")

bop_mangrove = new SkyIslandType("biomesoplenty:mangrove")

bop_boreal_forest = new SkyIslandType("biomesoplenty:boreal_forest")

bop_redwood_forest = new SkyIslandType("biomesoplenty:redwood_forest")

bop_cherry_blossom_grove = new SkyIslandType("biomesoplenty:cherry_blossom_grove")

bop_snowy_forest = new SkyIslandType("biomesoplenty:snowy_forest")

bop_seasonal_forest = new SkyIslandType("biomesoplenty:seasonal_forest")

bop_temperate_rainforest = new SkyIslandType("biomesoplenty:temperate_rainforest")

bop_dead_forest = new SkyIslandType("biomesoplenty:dead_forest")

bop_bamboo_forest = new SkyIslandType("biomesoplenty:bamboo_forest")

bop_dead_swamp = new SkyIslandType("biomesoplenty:dead_swamp")

bop_kelp_forest = new SkyIslandType("biomesoplenty:kelp_forest")

bop_pasture = new SkyIslandType("biomesoplenty:pasture")

bop_glacier = new SkyIslandType("biomesoplenty:glacier")

bop_meadow = new SkyIslandType("biomesoplenty:meadow")
bop_meadow.setFluidPercentage(.02)
bop_meadow.generateVillages(4)

bop_lush_swamp = new SkyIslandType("biomesoplenty:lush_swamp")

bop_tropical_island = new SkyIslandType("biomesoplenty:tropical_island")

bop_grassland = new SkyIslandType("biomesoplenty:grassland")

bop_prairie = new SkyIslandType("biomesoplenty:prairie")

bop_snowy_coniferous_forest = new SkyIslandType("biomesoplenty:snowy_coniferous_forest")

bop_tundra = new SkyIslandType("biomesoplenty:tundra")

bop_origin_island = new SkyIslandType("biomesoplenty:origin_island")

bop_gravel_beach = new SkyIslandType("biomesoplenty:gravel_beach")

bop_grove = new SkyIslandType("biomesoplenty:grove")

bop_lavender_fields = new SkyIslandType("biomesoplenty:lavender_fields")
bop_lavender_fields.setFluidPercentage(.02)
bop_lavender_fields.generateVillages(4)

bop_origin_beach = new SkyIslandType("biomesoplenty:origin_beach")

bop_rainforest = new SkyIslandType("biomesoplenty:rainforest")

bop_sacred_springs = new SkyIslandType("biomesoplenty:sacred_springs")

bop_crag = new SkyIslandType("biomesoplenty:crag")

bop_brushland = new SkyIslandType("biomesoplenty:brushland")

bop_ominous_woods = new SkyIslandType("biomesoplenty:ominous_woods")

//=====================================
// Add Thaumcraft biome types (eldritch / outerlands is the End so not here in overworld)
thc_eerie = new SkyIslandType("thaumcraft:eerie")

thc_magical_forest = new SkyIslandType("thaumcraft:magical_forest")


//=====================================
//Creates a new SkyIslandGenerator, sets its grid region size, and adds it to the generator list for the dimension.
skyIslands = new SkyIslandGeneratorV2()
skyIslands.setRegionSize(32)
addGenerator(skyIslands)

// Add global caves generator (seems incompatible w/ Worley's Caves and also Apotheosis unfortunately)
caves = new VanillaCaveGenerator()
addGenerator(caves)

//Adds sky islands. Arguments are horizontal radius, top height, bottom height, number of times to attempt to generate in each region, and whether each island should choose a random type (true), or if types should be used in order (false).
large = skyIslands.addSkyIslands(128, 128, 79, 1, true)

//Adds a SkyIslandType we created above to the island generator.
large.addType(forest)
large.addType(cold_taiga)
large.addType(desert)
large.addType(mesa)
large.addType(jungle)
large.addType(plains)
large.addType(taiga)
large.addType(swamp)
large.addType(mushroom)
large.addType(ice_plains)
large.addType(savanna)
large.addType(roofed_forest)
large.addType(redwood_taiga)

// Add biomes o plenty types to large
large.addType(bop_oasis)
large.addType(bop_woodland)
large.addType(bop_white_beach)
large.addType(bop_shrubland)
large.addType(bop_xeric_shrubland)
large.addType(bop_tropical_rainforest)
large.addType(bop_fen)
large.addType(bop_steppe)
large.addType(bop_alps_foothills)
large.addType(bop_redwood_forest_edge)
large.addType(bop_bayou)
large.addType(bop_mountain)
large.addType(bop_overgrown_cliffs)
large.addType(bop_highland)
large.addType(bop_volcanic_island)
large.addType(bop_quagmire)
large.addType(bop_marsh)
large.addType(bop_chaparral)
large.addType(bop_flower_island)
large.addType(bop_flower_field)
large.addType(bop_wetland)
large.addType(bop_mystic_grove)
large.addType(bop_cold_desert)
large.addType(bop_mountain_foothills)
large.addType(bop_maple_woods)
large.addType(bop_coral_reef)
large.addType(bop_orchard)
large.addType(bop_moor)
large.addType(bop_land_of_lakes)
large.addType(bop_bog)
large.addType(bop_coniferous_forest)
large.addType(bop_eucalyptus_forest)
large.addType(bop_outback)
large.addType(bop_shield)
large.addType(bop_snowy_tundra)
large.addType(bop_alps)
large.addType(bop_lush_desert)
large.addType(bop_mangrove)
large.addType(bop_boreal_forest)
large.addType(bop_redwood_forest)
large.addType(bop_cherry_blossom_grove)
large.addType(bop_snowy_forest)
large.addType(bop_seasonal_forest)
large.addType(bop_temperate_rainforest)
large.addType(bop_dead_forest)
large.addType(bop_bamboo_forest)
large.addType(bop_dead_swamp)
large.addType(bop_kelp_forest)
large.addType(bop_pasture)
large.addType(bop_glacier)
large.addType(bop_meadow)
large.addType(bop_lush_swamp)
large.addType(bop_tropical_island)
large.addType(bop_grassland)
large.addType(bop_prairie)
large.addType(bop_snowy_coniferous_forest)
large.addType(bop_tundra)
large.addType(bop_origin_island)
large.addType(bop_gravel_beach)
large.addType(bop_grove)
large.addType(bop_lavender_fields)
large.addType(bop_origin_beach)
large.addType(bop_rainforest)
large.addType(bop_sacred_springs)
large.addType(bop_crag)
large.addType(bop_brushland)
large.addType(bop_ominous_woods)

// Add Thaumcraft biome types
large.addType(thc_eerie)
large.addType(thc_magical_forest)

//=====================================
oceanIslands = skyIslands.addSkyIslands(96, 96, 59, 1, false)
oceanIslands.setFluidDepth(24)
oceanIslands.addType(ocean)

//=====================================
medium = skyIslands.addSkyIslands(96, 96, 59, 32, true)
medium.addType(forest)
medium.addType(cold_taiga)
medium.addType(desert)
medium.addType(mesa)
medium.addType(jungle)
medium.addType(plains)
medium.addType(taiga)
medium.addType(swamp)
medium.addType(mushroom)
medium.addType(ice_plains)
medium.addType(savanna)
medium.addType(roofed_forest)
medium.addType(redwood_taiga)

// Add biomes o plenty types to medium
medium.addType(bop_oasis)
medium.addType(bop_woodland)
medium.addType(bop_white_beach)
medium.addType(bop_shrubland)
medium.addType(bop_xeric_shrubland)
medium.addType(bop_tropical_rainforest)
medium.addType(bop_fen)
medium.addType(bop_steppe)
medium.addType(bop_alps_foothills)
medium.addType(bop_redwood_forest_edge)
medium.addType(bop_bayou)
// mountains only for large as they may have a mineshaft structure
//medium.addType(bop_mountain)
medium.addType(bop_overgrown_cliffs)
medium.addType(bop_highland)
medium.addType(bop_volcanic_island)
medium.addType(bop_quagmire)
medium.addType(bop_marsh)
medium.addType(bop_chaparral)
medium.addType(bop_flower_island)
medium.addType(bop_flower_field)
medium.addType(bop_wetland)
medium.addType(bop_mystic_grove)
medium.addType(bop_cold_desert)
medium.addType(bop_mountain_foothills)
medium.addType(bop_maple_woods)
medium.addType(bop_coral_reef)
medium.addType(bop_orchard)
medium.addType(bop_moor)
medium.addType(bop_land_of_lakes)
medium.addType(bop_bog)
medium.addType(bop_coniferous_forest)
medium.addType(bop_eucalyptus_forest)
medium.addType(bop_outback)
medium.addType(bop_shield)
medium.addType(bop_snowy_tundra)
// alps only for large as they may have a mineshaft structure
//medium.addType(bop_alps)
medium.addType(bop_lush_desert)
medium.addType(bop_mangrove)
medium.addType(bop_boreal_forest)
medium.addType(bop_redwood_forest)
medium.addType(bop_cherry_blossom_grove)
medium.addType(bop_snowy_forest)
medium.addType(bop_seasonal_forest)
medium.addType(bop_temperate_rainforest)
medium.addType(bop_dead_forest)
medium.addType(bop_bamboo_forest)
medium.addType(bop_dead_swamp)
medium.addType(bop_kelp_forest)
medium.addType(bop_pasture)
medium.addType(bop_glacier)
medium.addType(bop_meadow)
medium.addType(bop_lush_swamp)
medium.addType(bop_tropical_island)
medium.addType(bop_grassland)
medium.addType(bop_prairie)
medium.addType(bop_snowy_coniferous_forest)
medium.addType(bop_tundra)
medium.addType(bop_origin_island)
medium.addType(bop_gravel_beach)
medium.addType(bop_grove)
medium.addType(bop_lavender_fields)
medium.addType(bop_origin_beach)
medium.addType(bop_rainforest)
medium.addType(bop_sacred_springs)
medium.addType(bop_crag)
medium.addType(bop_brushland)
medium.addType(bop_ominous_woods)

// Add Thaumcraft biome types
medium.addType(thc_eerie)
medium.addType(thc_magical_forest)


//=====================================
// Add Vanilla Biomes to small types
small = skyIslands.addSkyIslands(48, 48, 30, 64, true)
small.addType(forest)
small.addType(cold_taiga)
small.addType(desert)
small.addType(mesa)
small.addType(jungle)
small.addType(plains)
small.addType(taiga)
small.addType(swamp)
small.addType(mushroom)
small.addType(ice_plains)
small.addType(savanna)
small.addType(roofed_forest)
small.addType(redwood_taiga)

// Add biomes o plenty types to small islands
small.addType(bop_oasis)
small.addType(bop_woodland)
small.addType(bop_white_beach)
small.addType(bop_shrubland)
small.addType(bop_xeric_shrubland)
small.addType(bop_tropical_rainforest)
small.addType(bop_fen)
small.addType(bop_steppe)
small.addType(bop_alps_foothills)
small.addType(bop_redwood_forest_edge)
small.addType(bop_bayou)
// mountains only for large as they may have a mineshaft structure
//small.addType(bop_mountain)
small.addType(bop_overgrown_cliffs)
small.addType(bop_highland)
small.addType(bop_volcanic_island)
small.addType(bop_quagmire)
small.addType(bop_marsh)
small.addType(bop_chaparral)
small.addType(bop_flower_island)
small.addType(bop_flower_field)
small.addType(bop_wetland)
small.addType(bop_mystic_grove)
small.addType(bop_cold_desert)
small.addType(bop_mountain_foothills)
small.addType(bop_maple_woods)
small.addType(bop_coral_reef)
small.addType(bop_orchard)
small.addType(bop_moor)
small.addType(bop_land_of_lakes)
small.addType(bop_bog)
small.addType(bop_coniferous_forest)
small.addType(bop_eucalyptus_forest)
small.addType(bop_outback)
small.addType(bop_shield)
small.addType(bop_snowy_tundra)
// alps only for large as they may have a mineshaft structure
//small.addType(bop_alps)
small.addType(bop_lush_desert)
small.addType(bop_mangrove)
small.addType(bop_boreal_forest)
small.addType(bop_redwood_forest)
small.addType(bop_cherry_blossom_grove)
small.addType(bop_snowy_forest)
small.addType(bop_seasonal_forest)
small.addType(bop_temperate_rainforest)
small.addType(bop_dead_forest)
small.addType(bop_bamboo_forest)
small.addType(bop_dead_swamp)
small.addType(bop_kelp_forest)
small.addType(bop_pasture)
small.addType(bop_glacier)
small.addType(bop_meadow)
small.addType(bop_lush_swamp)
small.addType(bop_tropical_island)
small.addType(bop_grassland)
small.addType(bop_prairie)
small.addType(bop_snowy_coniferous_forest)
small.addType(bop_tundra)
small.addType(bop_origin_island)
small.addType(bop_gravel_beach)
small.addType(bop_grove)
small.addType(bop_lavender_fields)
small.addType(bop_origin_beach)
small.addType(bop_rainforest)
small.addType(bop_sacred_springs)
small.addType(bop_crag)
small.addType(bop_brushland)
small.addType(bop_ominous_woods)

// Add Thaumcraft biome types
small.addType(thc_eerie)
small.addType(thc_magical_forest)

//=====================================
//Sets the nbt spawn structure for the dimension at y=64
//because wizardry needs ~>= 140 blocks of falling onto bedrock
//and you can't disassemble a davinci's airship above 255
setSpawnStructure("smi_spawn_island", 64)

//=====================================
//Disable Nether Portal Creation
disableNetherPortal()

