545 lines
31 KiB
Java
545 lines
31 KiB
Java
/*******************************************************************************
|
|
* Copyright 2014-2019, the Biomes O' Plenty Team
|
|
*
|
|
* This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License.
|
|
*
|
|
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
|
|
******************************************************************************/
|
|
package biomesoplenty.init;
|
|
|
|
import biomesoplenty.api.enums.BOPClimates;
|
|
import biomesoplenty.common.biome.BiomeMetadata;
|
|
import biomesoplenty.common.biome.BiomeRegistry;
|
|
import biomesoplenty.common.biome.BiomeTemplate;
|
|
import biomesoplenty.common.biome.nether.CrystallineChasmBiome;
|
|
import biomesoplenty.common.biome.nether.UndergrowthBiome;
|
|
import biomesoplenty.common.biome.nether.VisceralHeapBiome;
|
|
import biomesoplenty.common.biome.nether.WitheredAbyssBiome;
|
|
import biomesoplenty.common.biome.overworld.*;
|
|
import biomesoplenty.common.util.biome.BiomeUtil;
|
|
import biomesoplenty.common.world.BOPBiomeGeneratorTypeScreen;
|
|
import biomesoplenty.common.world.BOPBiomeProvider;
|
|
import biomesoplenty.common.world.BOPNetherBiomeProvider;
|
|
import com.google.common.collect.HashMultimap;
|
|
import com.google.common.collect.Lists;
|
|
import com.google.common.collect.Maps;
|
|
import com.google.common.collect.Multimap;
|
|
import net.minecraft.client.gui.screen.BiomeGeneratorTypeScreens;
|
|
import net.minecraft.entity.villager.VillagerType;
|
|
import net.minecraft.util.RegistryKey;
|
|
import net.minecraft.util.registry.Registry;
|
|
import net.minecraft.world.biome.Biome;
|
|
import net.minecraft.world.biome.BiomeColors;
|
|
import net.minecraft.world.biome.Biomes;
|
|
import net.minecraft.world.level.ColorResolver;
|
|
import net.minecraftforge.api.distmarker.Dist;
|
|
import net.minecraftforge.common.BiomeDictionary;
|
|
import net.minecraftforge.common.BiomeDictionary.Type;
|
|
import net.minecraftforge.event.RegistryEvent;
|
|
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
|
import net.minecraftforge.fml.common.Mod;
|
|
import net.minecraftforge.fml.loading.FMLEnvironment;
|
|
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
|
|
import static biomesoplenty.api.biome.BOPBiomes.*;
|
|
|
|
@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD)
|
|
public class ModBiomes
|
|
{
|
|
public static BOPBiomeGeneratorTypeScreen biomeGeneratorTypeScreenBOP;
|
|
|
|
public static Multimap<Integer, WeightedSubBiome> subBiomes = HashMultimap.create();
|
|
public static List<Integer> islandBiomeIds = Lists.newArrayList();
|
|
public static Map<RegistryKey<Biome>, BiomeMetadata> biomeMetadata = Maps.newHashMap();
|
|
|
|
public static void setup()
|
|
{
|
|
if (FMLEnvironment.dist == Dist.CLIENT)
|
|
{
|
|
biomeGeneratorTypeScreenBOP = new BOPBiomeGeneratorTypeScreen();
|
|
BiomeGeneratorTypeScreens.PRESETS.add(biomeGeneratorTypeScreenBOP);
|
|
|
|
ColorResolver grassColorResolver = BiomeColors.GRASS_COLOR_RESOLVER;
|
|
ColorResolver foliageColorResolver = BiomeColors.FOLIAGE_COLOR_RESOLVER;
|
|
ColorResolver waterColorResolver = BiomeColors.WATER_COLOR_RESOLVER;
|
|
|
|
BiomeColors.GRASS_COLOR_RESOLVER = (biome, posX, posZ) ->
|
|
{
|
|
RegistryKey<Biome> key = BiomeUtil.getClientKey(biome);
|
|
BiomeMetadata meta = BiomeUtil.getMetadata(key);
|
|
|
|
if (meta != null && meta.getGrassColorFunction() != null)
|
|
{
|
|
return meta.getGrassColorFunction().apply(posX, posZ);
|
|
}
|
|
|
|
return grassColorResolver.getColor(biome, posX, posZ);
|
|
};
|
|
|
|
BiomeColors.FOLIAGE_COLOR_RESOLVER = (biome, posX, posZ) ->
|
|
{
|
|
RegistryKey<Biome> key = BiomeUtil.getClientKey(biome);
|
|
BiomeMetadata meta = BiomeUtil.getMetadata(key);
|
|
|
|
if (meta != null && meta.getFoliageColorFunction() != null)
|
|
{
|
|
return meta.getFoliageColorFunction().apply(posX, posZ);
|
|
}
|
|
|
|
return foliageColorResolver.getColor(biome, posX, posZ);
|
|
};
|
|
|
|
BiomeColors.WATER_COLOR_RESOLVER = (biome, posX, posZ) ->
|
|
{
|
|
RegistryKey<Biome> key = BiomeUtil.getClientKey(biome);
|
|
BiomeMetadata meta = BiomeUtil.getMetadata(key);
|
|
|
|
if (meta != null && meta.getWaterColorFunction() != null)
|
|
{
|
|
return meta.getWaterColorFunction().apply(posX, posZ);
|
|
}
|
|
|
|
return waterColorResolver.getColor(biome, posX, posZ);
|
|
};
|
|
}
|
|
|
|
// Register biome providers
|
|
Registry.register(Registry.BIOME_SOURCE, "biomesoplenty_overworld", BOPBiomeProvider.CODEC);
|
|
Registry.register(Registry.BIOME_SOURCE, "biomesoplenty_nether", BOPNetherBiomeProvider.CODEC);
|
|
}
|
|
|
|
@SubscribeEvent
|
|
public static void registerBiomes(RegistryEvent.Register<Biome> event)
|
|
{
|
|
//Technical Biomes (Need to be registered before main biomes that use them)
|
|
registerTechnicalBiome(new GravelBeachBiome(), "gravel_beach");
|
|
registerTechnicalBiome(new TropicBeachBiome(), "tropic_beach");
|
|
registerTechnicalBiome(new AlpsFoothillsBiome(), "alps_foothills");
|
|
registerTechnicalBiome(new RedwoodForestEdgeBiome(), "redwood_forest_edge");
|
|
registerTechnicalBiome(new VolcanicPlainsBiome(), "volcanic_plains");
|
|
registerTechnicalBiome(new OrchardBiome(), "orchard");
|
|
|
|
BiomeRegistry.configureTechnicalBiomes();
|
|
BiomeRegistry.finalizeRegistrations(BiomeRegistry.RegistrationType.TECHNICAL_BIOME);
|
|
|
|
// Both a standard biome and a technical biome
|
|
registerBiome(new BayouMangroveBiome(), "bayou_mangrove");
|
|
|
|
//Overworld Biomes
|
|
registerBiome(new AlpsBiome(), "alps");
|
|
registerBiome(new BambooBlossomGroveBiome(), "bamboo_blossom_grove");
|
|
registerBiome(new BayouBiome(), "bayou");
|
|
registerBiome(new BurntForestBiome(), "burnt_forest");
|
|
registerBiome(new CherryBlossomGroveBiome(), "cherry_blossom_grove");
|
|
registerBiome(new ConiferousForestBiome(), "coniferous_forest");
|
|
registerBiome(new ConiferousLakesBiome(), "coniferous_lakes");
|
|
registerBiome(new DeadForestBiome(), "dead_forest");
|
|
registerBiome(new DeadSwampBiome(), "dead_swamp");
|
|
registerBiome(new DeepBayouBiome(), "deep_bayou");
|
|
registerBiome(new DrylandBiome(), "dryland");
|
|
registerBiome(new DryBoneyardBiome(), "dry_boneyard");
|
|
registerBiome(new FirClearingBiome(), "fir_clearing");
|
|
registerBiome(new FlowerMeadowBiome(), "flower_meadow");
|
|
registerBiome(new FungalFieldBiome(), "fungal_field");
|
|
registerBiome(new FungalJungleBiome(), "fungal_jungle");
|
|
registerBiome(new GoldenPrairieBiome(), "golden_prairie");
|
|
registerBiome(new GroveBiome(), "grove");
|
|
registerBiome(new GroveClearingBiome(), "grove_clearing");
|
|
registerBiome(new GroveLakesBiome(), "grove_lakes");
|
|
registerBiome(new HighlandBiome(), "highland");
|
|
registerBiome(new HighlandCragBiome(), "highland_crag");
|
|
registerBiome(new HighlandMoorBiome(), "highland_moor");
|
|
registerBiome(new JadeCliffsBiome(), "jade_cliffs");
|
|
registerBiome(new JadeGrasslandBiome(), "jade_grassland");
|
|
registerBiome(new LavenderFieldBiome(), "lavender_field");
|
|
registerBiome(new LavenderForestBiome(), "lavender_forest");
|
|
registerBiome(new LushDesertBiome(), "lush_desert");
|
|
registerBiome(new LushSavannaBiome(), "lush_savanna");
|
|
registerBiome(new MeadowBiome(), "meadow");
|
|
registerBiome(new MeadowForestBiome(), "meadow_forest");
|
|
registerBiome(new MysticGroveBiome(), "mystic_grove");
|
|
registerBiome(new MysticPlainsBiome(), "mystic_plains");
|
|
registerBiome(new OminousWoodsBiome(), "ominous_woods");
|
|
registerBiome(new OminousMireBiome(), "ominous_mire");
|
|
registerBiome(new OriginValleyBiome(), "origin_valley");
|
|
registerBiome(new OvergrownFungalJungleBiome(), "overgrown_fungal_jungle");
|
|
registerBiome(new PrairieBiome(), "prairie");
|
|
registerBiome(new RainbowHillsBiome(), "rainbow_hills");
|
|
registerBiome(new RainforestBiome(), "rainforest");
|
|
registerBiome(new RainforestCliffsBiome(), "rainforest_cliffs");
|
|
registerBiome(new RainforestFloodplainBiome(), "rainforest_floodplain");
|
|
registerBiome(new RedwoodForestBiome(), "redwood_forest");
|
|
registerBiome(new RedwoodHillsBiome(), "redwood_hills");
|
|
registerBiome(new ScrublandBiome(), "scrubland");
|
|
registerBiome(new SeasonalForestBiome(), "seasonal_forest");
|
|
registerBiome(new SeasonalOrchardBiome(), "seasonal_orchard");
|
|
registerBiome(new SeasonalPumpkinPatchBiome(), "seasonal_pumpkin_patch");
|
|
registerBiome(new ShrublandBiome(), "shrubland");
|
|
registerBiome(new ShrublandHillsBiome(), "shrubland_hills");
|
|
registerBiome(new SilkgladeBiome(), "silkglade");
|
|
registerBiome(new SilkgladeNestBiome(), "silkglade_nest");
|
|
registerBiome(new SnowyConiferousForestBiome(), "snowy_coniferous_forest");
|
|
registerBiome(new SnowyMapleForestBiome(), "snowy_maple_forest");
|
|
registerBiome(new SnowyFirClearingBiome(), "snowy_fir_clearing");
|
|
registerBiome(new TropicPlainsBiome(), "tropic_plains");
|
|
registerBiome(new TropicsBiome(), "tropics");
|
|
registerBiome(new TundraBiome(), "tundra");
|
|
registerBiome(new TundraBasinBiome(), "tundra_basin");
|
|
registerBiome(new TundraBogBiome(), "tundra_bog");
|
|
registerBiome(new VolcanoBiome(), "volcano");
|
|
registerBiome(new WastelandBiome(), "wasteland");
|
|
registerBiome(new WetlandBiome(), "wetland");
|
|
registerBiome(new WetlandMarshBiome(), "wetland_marsh");
|
|
registerBiome(new WoodedScrublandBiome(), "wooded_scrubland");
|
|
registerBiome(new WoodedWastelandBiome(), "wooded_wasteland");
|
|
|
|
//Nether Biomes
|
|
registerBiome(new CrystallineChasmBiome(), "crystalline_chasm");
|
|
registerBiome(new UndergrowthBiome(), "undergrowth");
|
|
registerBiome(new VisceralHeapBiome(), "visceral_heap");
|
|
registerBiome(new WitheredAbyssBiome(), "withered_abyss");
|
|
|
|
BiomeRegistry.configureStandardBiomes();
|
|
BiomeRegistry.finalizeRegistrations(BiomeRegistry.RegistrationType.STANDARD_BIOME);
|
|
|
|
//Sub/Island Biomes (Note: Rarity supports two decimal places)
|
|
registerSubBiome(bayou, deep_bayou, 1.0F, 100);
|
|
registerSubBiome(bayou, bayou_mangrove, 1.0F, 100);
|
|
|
|
registerSubBiome(cherry_blossom_grove, bamboo_blossom_grove, 0.8F, 100);
|
|
|
|
registerSubBiome(coniferous_forest, fir_clearing, 0.75F, 100);
|
|
registerSubBiome(coniferous_forest, coniferous_lakes, 1.0F, 100);
|
|
|
|
registerSubBiome(dead_forest, dead_swamp, 0.75F, 100);
|
|
registerSubBiome(dead_forest, burnt_forest, 0.75F, 100);
|
|
|
|
registerSubBiome(dryland, dry_boneyard, 0.75F, 100);
|
|
|
|
registerSubBiome(fungal_jungle, fungal_field, 0.9F, 100);
|
|
registerSubBiome(fungal_jungle, overgrown_fungal_jungle, 0.65F, 100);
|
|
|
|
registerSubBiome(grove, grove_clearing, 1.0F, 100);
|
|
registerSubBiome(grove, grove_lakes, 1.0F, 100);
|
|
|
|
registerSubBiome(highland, highland_crag, 1.25F, 100);
|
|
registerSubBiome(highland, highland_moor, 0.75F, 100);
|
|
|
|
registerSubBiome(jade_cliffs, jade_grassland, 0.85F, 100);
|
|
|
|
registerSubBiome(lavender_field, lavender_forest, 0.6F, 100);
|
|
|
|
registerSubBiome(lush_desert, lush_savanna, 0.65F, 100);
|
|
|
|
registerSubBiome(meadow, flower_meadow, 1.0F, 100);
|
|
registerSubBiome(meadow, meadow_forest, 1.0F, 100);
|
|
|
|
registerSubBiome(mystic_grove, mystic_plains, 0.75F, 100);
|
|
|
|
registerSubBiome(ominous_woods, ominous_mire, 0.75F, 100);
|
|
|
|
registerSubBiome(prairie, golden_prairie, 1.0F, 100);
|
|
|
|
registerSubBiome(rainforest, rainforest_cliffs, 2.0F, 100);
|
|
registerSubBiome(rainforest, rainforest_floodplain, 2.0F, 100);
|
|
|
|
registerSubBiome(redwood_forest, redwood_hills, 0.75F, 100);
|
|
|
|
registerSubBiome(scrubland, wooded_scrubland, 1.0F, 100);
|
|
|
|
registerSubBiome(seasonal_forest, seasonal_orchard, 1.0F, 100);
|
|
registerSubBiome(seasonal_forest, seasonal_pumpkin_patch, 1.0F, 100);
|
|
|
|
registerSubBiome(shrubland, shrubland_hills, 0.75F, 100);
|
|
|
|
registerSubBiome(silkglade, silkglade_nest, 0.45F, 100);
|
|
|
|
registerSubBiome(snowy_coniferous_forest, snowy_fir_clearing, 0.75F, 100);
|
|
registerSubBiome(snowy_coniferous_forest, snowy_maple_forest, 1.25F, 100);
|
|
|
|
registerSubBiome(tropics, tropic_plains, 0.75F, 100);
|
|
|
|
registerSubBiome(tundra, tundra_basin, 1.5F, 100);
|
|
registerSubBiome(tundra, tundra_bog, 2.0F, 100);
|
|
|
|
registerSubBiome(wasteland, wooded_wasteland, 0.85F, 100);
|
|
|
|
registerSubBiome(wetland, wetland_marsh, 1.0F, 100);
|
|
|
|
BiomeRegistry.configureSubBiomes();
|
|
BiomeRegistry.finalizeRegistrations(BiomeRegistry.RegistrationType.SUB_BIOME);
|
|
|
|
registerIslandBiome(origin_valley, BOPClimates.COOL_TEMPERATE, 50);
|
|
registerIslandBiome(origin_valley, BOPClimates.DRY_TEMPERATE, 50);
|
|
registerIslandBiome(origin_valley, BOPClimates.WET_TEMPERATE, 75);
|
|
|
|
registerIslandBiome(volcano, BOPClimates.WARM_TEMPERATE, 75);
|
|
registerIslandBiome(volcano, BOPClimates.MEDITERRANEAN, 75);
|
|
registerIslandBiome(volcano, BOPClimates.SAVANNA, 50);
|
|
|
|
registerIslandBiome(rainbow_hills, BOPClimates.WET_TEMPERATE, 25);
|
|
registerIslandBiome(rainbow_hills, BOPClimates.WARM_TEMPERATE, 25);
|
|
registerIslandBiome(rainbow_hills, BOPClimates.MEDITERRANEAN, 25);
|
|
|
|
registerIslandBiome(tropics, BOPClimates.SUBTROPICAL, 75);
|
|
registerIslandBiome(tropics, BOPClimates.TROPICAL, 50);
|
|
registerIslandBiome(tropics, BOPClimates.HOT_DESERT, 50);
|
|
|
|
BiomeRegistry.configureIslandBiomes();
|
|
BiomeRegistry.finalizeRegistrations(BiomeRegistry.RegistrationType.ISLAND_BIOME);
|
|
|
|
// Set up vanilla biomes
|
|
registerVanillaBiome(Biomes.SNOWY_TUNDRA, BOPClimates.ICE_CAP, 10);
|
|
registerVanillaBiome(Biomes.FROZEN_OCEAN, BOPClimates.ICE_CAP, 3);
|
|
registerVanillaBiome(Biomes.MOUNTAINS, BOPClimates.TUNDRA, 10);
|
|
registerVanillaBiome(Biomes.SNOWY_TAIGA, BOPClimates.TUNDRA, 7);
|
|
registerVanillaBiome(Biomes.TAIGA, BOPClimates.WET_BOREAL, 10);
|
|
registerVanillaBiome(Biomes.GIANT_TREE_TAIGA, BOPClimates.DRY_BOREAL, 5);
|
|
registerVanillaBiome(Biomes.DARK_FOREST, BOPClimates.WET_TEMPERATE, 7);
|
|
registerVanillaBiome(Biomes.BIRCH_FOREST, BOPClimates.DRY_TEMPERATE, 5);
|
|
registerVanillaBiome(Biomes.FOREST, BOPClimates.COOL_TEMPERATE, 10);
|
|
registerVanillaBiome(Biomes.PLAINS, BOPClimates.WARM_TEMPERATE, 10);
|
|
registerVanillaBiome(Biomes.SWAMP, BOPClimates.SUBTROPICAL, 7);
|
|
registerVanillaBiome(Biomes.LUKEWARM_OCEAN, BOPClimates.SUBTROPICAL, 3);
|
|
registerVanillaBiome(Biomes.JUNGLE, BOPClimates.TROPICAL, 10);
|
|
registerVanillaBiome(Biomes.SAVANNA, BOPClimates.SAVANNA, 10);
|
|
registerVanillaBiome(Biomes.DESERT, BOPClimates.HOT_DESERT, 15);
|
|
registerVanillaBiome(Biomes.BADLANDS_PLATEAU, BOPClimates.HOT_DESERT, 10);
|
|
registerVanillaBiome(Biomes.WOODED_BADLANDS_PLATEAU, BOPClimates.HOT_DESERT, 3);
|
|
|
|
registerVanillaBiome(Biomes.BASALT_DELTAS, BOPClimates.NETHER, 10);
|
|
registerVanillaBiome(Biomes.CRIMSON_FOREST, BOPClimates.NETHER, 10);
|
|
registerVanillaBiome(Biomes.NETHER_WASTES, BOPClimates.NETHER, 10);
|
|
registerVanillaBiome(Biomes.SOUL_SAND_VALLEY, BOPClimates.NETHER, 10);
|
|
registerVanillaBiome(Biomes.WARPED_FOREST, BOPClimates.NETHER, 10);
|
|
|
|
BiomeRegistry.configureVanillaBiomes();
|
|
BiomeRegistry.finalizeRegistrations(BiomeRegistry.RegistrationType.VANILLA_BIOME);
|
|
|
|
registerBiomeDictionaryTags();
|
|
registerVillagerTypes();
|
|
}
|
|
|
|
private static void registerBiomeDictionaryTags()
|
|
{
|
|
//Overworld Biomes
|
|
registerBiomeToDictionary(alps, Type.OVERWORLD, Type.COLD, Type.SPARSE, Type.CONIFEROUS, Type.MOUNTAIN, Type.SNOWY);
|
|
registerBiomeToDictionary(alps_foothills, Type.OVERWORLD, Type.COLD, Type.SPARSE, Type.CONIFEROUS, Type.FOREST, Type.MOUNTAIN, Type.SNOWY);
|
|
registerBiomeToDictionary(bamboo_blossom_grove, Type.OVERWORLD, Type.WET, Type.LUSH, Type.RARE, Type.FOREST);
|
|
registerBiomeToDictionary(bayou, Type.OVERWORLD, Type.HOT, Type.WET, Type.SWAMP);
|
|
registerBiomeToDictionary(bayou_mangrove, Type.OVERWORLD, Type.HOT, Type.WET, Type.SWAMP);
|
|
registerBiomeToDictionary(burnt_forest, Type.OVERWORLD, Type.COLD, Type.SPARSE, Type.DRY, Type.DEAD, Type.RARE, Type.FOREST);
|
|
registerBiomeToDictionary(cherry_blossom_grove, Type.OVERWORLD, Type.WET, Type.LUSH, Type.RARE, Type.FOREST);
|
|
registerBiomeToDictionary(coniferous_forest, Type.OVERWORLD, Type.DENSE, Type.CONIFEROUS, Type.FOREST);
|
|
registerBiomeToDictionary(coniferous_lakes, Type.OVERWORLD, Type.SPARSE, Type.CONIFEROUS, Type.FOREST);
|
|
registerBiomeToDictionary(dead_forest, Type.OVERWORLD, Type.COLD, Type.SPARSE, Type.DEAD, Type.RARE, Type.FOREST);
|
|
registerBiomeToDictionary(dead_swamp, Type.OVERWORLD, Type.COLD, Type.SPARSE, Type.WET, Type.DEAD, Type.RARE, Type.SWAMP);
|
|
registerBiomeToDictionary(deep_bayou, Type.OVERWORLD, Type.HOT, Type.DENSE, Type.WET, Type.SWAMP);
|
|
registerBiomeToDictionary(dryland, Type.OVERWORLD, Type.HOT, Type.SPARSE, Type.DRY, Type.SAVANNA, Type.SANDY);
|
|
registerBiomeToDictionary(dry_boneyard, Type.OVERWORLD, Type.HOT, Type.SPARSE, Type.DRY, Type.SAVANNA, Type.DEAD, Type.SANDY, Type.WASTELAND);
|
|
registerBiomeToDictionary(fir_clearing, Type.OVERWORLD, Type.SPARSE, Type.CONIFEROUS, Type.FOREST);
|
|
registerBiomeToDictionary(flower_meadow, Type.OVERWORLD, Type.SPARSE, Type.CONIFEROUS, Type.LUSH, Type.PLAINS);
|
|
registerBiomeToDictionary(fungal_field, Type.OVERWORLD, Type.HOT, Type.WET, Type.JUNGLE, Type.LUSH, Type.MUSHROOM, Type.RARE, Type.PLAINS);
|
|
registerBiomeToDictionary(fungal_jungle, Type.OVERWORLD, Type.HOT, Type.WET, Type.JUNGLE, Type.LUSH, Type.MUSHROOM, Type.RARE);
|
|
registerBiomeToDictionary(golden_prairie, Type.OVERWORLD, Type.DRY, Type.PLAINS);
|
|
registerBiomeToDictionary(gravel_beach, Type.OVERWORLD, Type.SPARSE, Type.BEACH);
|
|
registerBiomeToDictionary(grove, Type.OVERWORLD, Type.FOREST, Type.HILLS);
|
|
registerBiomeToDictionary(grove_clearing, Type.OVERWORLD, Type.SPARSE, Type.PLAINS);
|
|
registerBiomeToDictionary(grove_lakes, Type.OVERWORLD, Type.SPARSE);
|
|
registerBiomeToDictionary(highland, Type.OVERWORLD, Type.SPARSE, Type.MOUNTAIN, Type.PLAINS);
|
|
registerBiomeToDictionary(highland_crag, Type.OVERWORLD, Type.SPARSE, Type.MOUNTAIN, Type.WASTELAND);
|
|
registerBiomeToDictionary(highland_moor, Type.OVERWORLD, Type.SPARSE, Type.WET, Type.MOUNTAIN, Type.SWAMP);
|
|
registerBiomeToDictionary(jade_cliffs, Type.OVERWORLD, Type.CONIFEROUS, Type.MAGICAL, Type.RARE, Type.FOREST, Type.MOUNTAIN);
|
|
registerBiomeToDictionary(jade_grassland, Type.OVERWORLD, Type.SPARSE, Type.CONIFEROUS, Type.MAGICAL, Type.RARE, Type.PLAINS);
|
|
registerBiomeToDictionary(lavender_field, Type.OVERWORLD, Type.LUSH, Type.PLAINS);
|
|
registerBiomeToDictionary(lavender_forest, Type.OVERWORLD, Type.DENSE, Type.LUSH, Type.FOREST);
|
|
registerBiomeToDictionary(lush_desert, Type.OVERWORLD, Type.HOT, Type.SPARSE, Type.SAVANNA, Type.LUSH, Type.RARE, Type.SANDY);
|
|
registerBiomeToDictionary(lush_savanna, Type.OVERWORLD, Type.HOT, Type.SPARSE, Type.SAVANNA, Type.LUSH, Type.RARE, Type.PLAINS);
|
|
registerBiomeToDictionary(meadow, Type.OVERWORLD, Type.WET, Type.CONIFEROUS, Type.FOREST);
|
|
registerBiomeToDictionary(meadow_forest, Type.OVERWORLD, Type.WET, Type.CONIFEROUS, Type.FOREST);
|
|
registerBiomeToDictionary(mystic_grove, Type.OVERWORLD, Type.WET, Type.LUSH, Type.MAGICAL, Type.RARE, Type.FOREST);
|
|
registerBiomeToDictionary(mystic_plains, Type.OVERWORLD, Type.SPARSE, Type.WET, Type.LUSH, Type.MAGICAL, Type.RARE, Type.PLAINS);
|
|
registerBiomeToDictionary(ominous_mire, Type.OVERWORLD, Type.COLD, Type.WET, Type.CONIFEROUS, Type.SPOOKY, Type.RARE, Type.FOREST, Type.SWAMP);
|
|
registerBiomeToDictionary(ominous_woods, Type.OVERWORLD, Type.COLD, Type.WET, Type.CONIFEROUS, Type.SPOOKY, Type.RARE, Type.FOREST);
|
|
registerBiomeToDictionary(orchard, Type.OVERWORLD, Type.SPARSE, Type.LUSH, Type.FOREST, Type.PLAINS);
|
|
registerBiomeToDictionary(origin_valley, Type.OVERWORLD, Type.RARE);
|
|
registerBiomeToDictionary(overgrown_fungal_jungle, Type.OVERWORLD, Type.HOT, Type.DENSE, Type.WET, Type.JUNGLE, Type.LUSH, Type.MUSHROOM, Type.RARE, Type.FOREST);
|
|
registerBiomeToDictionary(prairie, Type.OVERWORLD, Type.SPARSE, Type.DRY, Type.PLAINS);
|
|
registerBiomeToDictionary(rainbow_hills, Type.OVERWORLD, Type.DENSE, Type.WET, Type.LUSH, Type.MAGICAL, Type.FOREST, Type.HILLS);
|
|
registerBiomeToDictionary(rainforest, Type.OVERWORLD, Type.HOT, Type.DENSE, Type.WET, Type.JUNGLE, Type.LUSH, Type.FOREST);
|
|
registerBiomeToDictionary(rainforest_cliffs, Type.OVERWORLD, Type.HOT, Type.DENSE, Type.WET, Type.JUNGLE, Type.LUSH, Type.PLATEAU);
|
|
registerBiomeToDictionary(rainforest_floodplain, Type.OVERWORLD, Type.HOT, Type.WET, Type.JUNGLE, Type.LUSH, Type.SWAMP);
|
|
registerBiomeToDictionary(redwood_forest, Type.OVERWORLD, Type.DENSE, Type.FOREST);
|
|
registerBiomeToDictionary(redwood_forest_edge, Type.OVERWORLD, Type.FOREST);
|
|
registerBiomeToDictionary(redwood_hills, Type.OVERWORLD, Type.DENSE, Type.FOREST, Type.HILLS);
|
|
registerBiomeToDictionary(scrubland, Type.OVERWORLD, Type.HOT, Type.SPARSE, Type.DRY, Type.SAVANNA);
|
|
registerBiomeToDictionary(seasonal_forest, Type.OVERWORLD, Type.FOREST);
|
|
registerBiomeToDictionary(seasonal_orchard, Type.OVERWORLD, Type.FOREST);
|
|
registerBiomeToDictionary(seasonal_pumpkin_patch, Type.OVERWORLD, Type.SPARSE, Type.FOREST);
|
|
registerBiomeToDictionary(shrubland, Type.OVERWORLD, Type.SPARSE, Type.PLAINS);
|
|
registerBiomeToDictionary(shrubland_hills, Type.OVERWORLD, Type.PLAINS, Type.HILLS);
|
|
registerBiomeToDictionary(silkglade, Type.OVERWORLD, Type.DRY, Type.SPOOKY, Type.RARE, Type.FOREST);
|
|
registerBiomeToDictionary(silkglade_nest, Type.OVERWORLD, Type.DENSE, Type.DRY, Type.SPOOKY, Type.RARE, Type.FOREST);
|
|
registerBiomeToDictionary(snowy_coniferous_forest, Type.OVERWORLD, Type.COLD, Type.CONIFEROUS, Type.FOREST, Type.SNOWY);
|
|
registerBiomeToDictionary(snowy_fir_clearing, Type.OVERWORLD, Type.COLD, Type.SPARSE, Type.CONIFEROUS, Type.FOREST, Type.SNOWY);
|
|
registerBiomeToDictionary(snowy_maple_forest, Type.OVERWORLD, Type.COLD, Type.DENSE, Type.CONIFEROUS, Type.FOREST, Type.SNOWY);
|
|
registerBiomeToDictionary(tropic_beach, Type.OVERWORLD, Type.HOT, Type.WET, Type.JUNGLE, Type.LUSH, Type.RARE, Type.BEACH, Type.SANDY);
|
|
registerBiomeToDictionary(tropic_plains, Type.OVERWORLD, Type.HOT, Type.SPARSE, Type.WET, Type.JUNGLE, Type.LUSH, Type.RARE, Type.PLAINS);
|
|
registerBiomeToDictionary(tropics, Type.OVERWORLD, Type.HOT, Type.WET, Type.JUNGLE, Type.LUSH, Type.RARE);
|
|
registerBiomeToDictionary(tundra, Type.OVERWORLD, Type.COLD, Type.SPARSE, Type.DEAD, Type.PLAINS);
|
|
registerBiomeToDictionary(tundra_basin, Type.OVERWORLD, Type.COLD, Type.SPARSE, Type.DRY, Type.DEAD, Type.WASTELAND);
|
|
registerBiomeToDictionary(tundra_bog, Type.OVERWORLD, Type.COLD, Type.SPARSE, Type.WET, Type.SWAMP);
|
|
registerBiomeToDictionary(volcanic_plains, Type.OVERWORLD, Type.HOT, Type.SPARSE, Type.RARE, Type.BEACH, Type.WASTELAND);
|
|
registerBiomeToDictionary(volcano, Type.OVERWORLD, Type.HOT, Type.SPARSE, Type.DRY, Type.DEAD, Type.RARE, Type.MOUNTAIN, Type.WASTELAND);
|
|
registerBiomeToDictionary(wasteland, Type.OVERWORLD, Type.HOT, Type.SPARSE, Type.DRY, Type.SAVANNA, Type.DEAD, Type.RARE, Type.WASTELAND);
|
|
registerBiomeToDictionary(wetland, Type.OVERWORLD, Type.WET, Type.FOREST, Type.SWAMP);
|
|
registerBiomeToDictionary(wetland_marsh, Type.OVERWORLD, Type.SPARSE, Type.WET, Type.SWAMP);
|
|
registerBiomeToDictionary(wooded_scrubland, Type.OVERWORLD, Type.HOT, Type.SPARSE, Type.SAVANNA);
|
|
registerBiomeToDictionary(wooded_wasteland, Type.OVERWORLD, Type.HOT, Type.SPARSE, Type.DRY, Type.SAVANNA, Type.DEAD, Type.RARE, Type.WASTELAND);
|
|
|
|
//Nether Biomes
|
|
registerBiomeToDictionary(crystalline_chasm, Type.NETHER, Type.HOT, Type.DRY, Type.MAGICAL);
|
|
registerBiomeToDictionary(undergrowth, Type.NETHER, Type.HOT, Type.DRY, Type.FOREST);
|
|
registerBiomeToDictionary(visceral_heap, Type.NETHER, Type.HOT, Type.DRY);
|
|
registerBiomeToDictionary(withered_abyss, Type.NETHER, Type.HOT, Type.DRY, Type.VOID);
|
|
}
|
|
|
|
private static void registerVillagerTypes()
|
|
{
|
|
registerVillagerType(alps, VillagerType.SNOW);
|
|
registerVillagerType(alps_foothills, VillagerType.SNOW);
|
|
registerVillagerType(bamboo_blossom_grove, VillagerType.PLAINS);
|
|
registerVillagerType(bayou, VillagerType.SWAMP);
|
|
registerVillagerType(bayou_mangrove, VillagerType.SWAMP);
|
|
registerVillagerType(burnt_forest, VillagerType.TAIGA);
|
|
registerVillagerType(cherry_blossom_grove, VillagerType.PLAINS);
|
|
registerVillagerType(coniferous_forest, VillagerType.TAIGA);
|
|
registerVillagerType(coniferous_lakes, VillagerType.TAIGA);
|
|
registerVillagerType(dead_forest, VillagerType.TAIGA);
|
|
registerVillagerType(dead_swamp, VillagerType.TAIGA);
|
|
registerVillagerType(deep_bayou, VillagerType.SWAMP);
|
|
registerVillagerType(dryland, VillagerType.PLAINS);
|
|
registerVillagerType(dry_boneyard, VillagerType.PLAINS);
|
|
registerVillagerType(fir_clearing, VillagerType.TAIGA);
|
|
registerVillagerType(flower_meadow, VillagerType.TAIGA);
|
|
registerVillagerType(fungal_field, VillagerType.JUNGLE);
|
|
registerVillagerType(fungal_jungle, VillagerType.JUNGLE);
|
|
registerVillagerType(golden_prairie, VillagerType.PLAINS);
|
|
registerVillagerType(gravel_beach, VillagerType.PLAINS);
|
|
registerVillagerType(grove, VillagerType.PLAINS);
|
|
registerVillagerType(grove_clearing, VillagerType.PLAINS);
|
|
registerVillagerType(grove_lakes, VillagerType.PLAINS);
|
|
registerVillagerType(highland, VillagerType.PLAINS);
|
|
registerVillagerType(highland_crag, VillagerType.PLAINS);
|
|
registerVillagerType(highland_moor, VillagerType.PLAINS);
|
|
registerVillagerType(jade_cliffs, VillagerType.PLAINS);
|
|
registerVillagerType(jade_grassland, VillagerType.PLAINS);
|
|
registerVillagerType(lavender_field, VillagerType.PLAINS);
|
|
registerVillagerType(lavender_forest, VillagerType.PLAINS);
|
|
registerVillagerType(lush_desert, VillagerType.SAVANNA);
|
|
registerVillagerType(lush_savanna, VillagerType.SAVANNA);
|
|
registerVillagerType(meadow, VillagerType.TAIGA);
|
|
registerVillagerType(meadow_forest, VillagerType.TAIGA);
|
|
registerVillagerType(mystic_grove, VillagerType.PLAINS);
|
|
registerVillagerType(mystic_plains, VillagerType.PLAINS);
|
|
registerVillagerType(ominous_mire, VillagerType.SWAMP);
|
|
registerVillagerType(ominous_woods, VillagerType.SWAMP);
|
|
registerVillagerType(orchard, VillagerType.PLAINS);
|
|
registerVillagerType(origin_valley, VillagerType.PLAINS);
|
|
registerVillagerType(overgrown_fungal_jungle, VillagerType.JUNGLE);
|
|
registerVillagerType(prairie, VillagerType.PLAINS);
|
|
registerVillagerType(rainbow_hills, VillagerType.PLAINS);
|
|
registerVillagerType(rainforest, VillagerType.JUNGLE);
|
|
registerVillagerType(rainforest_cliffs, VillagerType.JUNGLE);
|
|
registerVillagerType(rainforest_floodplain, VillagerType.JUNGLE);
|
|
registerVillagerType(redwood_forest, VillagerType.PLAINS);
|
|
registerVillagerType(redwood_forest_edge, VillagerType.PLAINS);
|
|
registerVillagerType(redwood_hills, VillagerType.PLAINS);
|
|
registerVillagerType(scrubland, VillagerType.SAVANNA);
|
|
registerVillagerType(seasonal_forest, VillagerType.PLAINS);
|
|
registerVillagerType(seasonal_orchard, VillagerType.PLAINS);
|
|
registerVillagerType(seasonal_pumpkin_patch, VillagerType.PLAINS);
|
|
registerVillagerType(shrubland, VillagerType.PLAINS);
|
|
registerVillagerType(shrubland_hills, VillagerType.PLAINS);
|
|
registerVillagerType(silkglade, VillagerType.SWAMP);
|
|
registerVillagerType(silkglade_nest, VillagerType.SWAMP);
|
|
registerVillagerType(snowy_coniferous_forest, VillagerType.SNOW);
|
|
registerVillagerType(snowy_fir_clearing, VillagerType.SNOW);
|
|
registerVillagerType(snowy_maple_forest, VillagerType.SNOW);
|
|
registerVillagerType(tropic_beach, VillagerType.JUNGLE);
|
|
registerVillagerType(tropic_plains, VillagerType.JUNGLE);
|
|
registerVillagerType(tropics, VillagerType.JUNGLE);
|
|
registerVillagerType(tundra, VillagerType.TAIGA);
|
|
registerVillagerType(tundra_basin, VillagerType.TAIGA);
|
|
registerVillagerType(tundra_bog, VillagerType.TAIGA);
|
|
registerVillagerType(volcanic_plains, VillagerType.PLAINS);
|
|
registerVillagerType(volcano, VillagerType.PLAINS);
|
|
registerVillagerType(wasteland, VillagerType.DESERT);
|
|
registerVillagerType(wetland, VillagerType.SWAMP);
|
|
registerVillagerType(wetland_marsh, VillagerType.SWAMP);
|
|
registerVillagerType(wooded_scrubland, VillagerType.SAVANNA);
|
|
registerVillagerType(wooded_wasteland, VillagerType.DESERT);
|
|
}
|
|
|
|
private static void registerBiomeToDictionary(RegistryKey<Biome> key, Type...type)
|
|
{
|
|
if (BiomeUtil.exists(key))
|
|
{
|
|
BiomeDictionary.addTypes(key, type);
|
|
}
|
|
}
|
|
|
|
private static void registerVillagerType(RegistryKey<Biome> key, VillagerType type)
|
|
{
|
|
if (BiomeUtil.exists(key))
|
|
{
|
|
VillagerType.BY_BIOME.put(key, type);
|
|
}
|
|
}
|
|
|
|
/*
|
|
* Biome registration helpers
|
|
*/
|
|
|
|
public static void registerBiome(BiomeTemplate biome, String name)
|
|
{
|
|
BiomeRegistry.deferStandardRegistration(biome, name);
|
|
}
|
|
|
|
public static void registerTechnicalBiome(BiomeTemplate biome, String name)
|
|
{
|
|
BiomeRegistry.deferTechnicalBiomeRegistration(biome, name);
|
|
}
|
|
|
|
public static void registerSubBiome(RegistryKey<Biome> parent, RegistryKey<Biome> child, float rarity, int weight)
|
|
{
|
|
BiomeRegistry.deferSubBiomeRegistration(parent, child, weight, rarity);
|
|
}
|
|
|
|
public static void registerIslandBiome(RegistryKey<Biome> key, BOPClimates climate, int weight)
|
|
{
|
|
BiomeRegistry.deferIslandBiomeRegistration(key, climate, weight);
|
|
}
|
|
|
|
private static void registerVanillaBiome(RegistryKey<Biome> key, BOPClimates climate, int weight)
|
|
{
|
|
BiomeRegistry.deferVanillaBiomeRegistration(key, climate, weight);
|
|
}
|
|
|
|
public static class WeightedSubBiome
|
|
{
|
|
public final RegistryKey<Biome> biome;
|
|
public final float rarity;
|
|
public final int weight;
|
|
|
|
public WeightedSubBiome(RegistryKey<Biome> biome, float rarity, int weight)
|
|
{
|
|
this.biome = biome;
|
|
this.rarity = rarity;
|
|
this.weight = weight;
|
|
}
|
|
}
|
|
}
|