Search in sources :

Example 1 with PopulateDataBaseEvent

use of com.ferreusveritas.dynamictrees.api.events.PopulateDataBaseEvent in project DynamicTrees by DynamicTreesTeam.

the class WorldGenRegistry method populateDataBase.

public static void populateDataBase() {
    if (WorldGenRegistry.isWorldGenEnabled()) {
        BiomeDataBaseJsonCapabilityRegistryEvent capabilityEvent = new BiomeDataBaseJsonCapabilityRegistryEvent();
        // Register the main Json capabilities
        BiomeDataBasePopulatorJson.registerJsonCapabilities(capabilityEvent);
        // Send out an event asking for Json Capabilities to be registered
        MinecraftForge.EVENT_BUS.post(capabilityEvent);
        // Prep the databases by clearing them out
        TreeGenerator.getTreeGenerator().clearAllBiomeDataBases();
        BiomeDataBase database = TreeGenerator.getTreeGenerator().getDefaultBiomeDataBase();
        // This collects all available populators and returns an aggregate populator for the lot
        IBiomeDataBasePopulator biomePopulator = collectDataBasePopulators();
        // This is where the main population occurs
        biomePopulator.populate(database);
        // Send out an event after the database has been populated
        MinecraftForge.EVENT_BUS.post(new PopulateDataBaseEvent(database, biomePopulator));
        // Populate custom dimensions if available
        loadMultiDimensionalPopulator(biomePopulator);
        // Blacklist certain dimensions according to the base config
        ModConfigs.dimensionBlacklist.forEach(d -> TreeGenerator.getTreeGenerator().BlackListDimension(d));
        // Cleanup all of the unused static objects
        BiomeDataBasePopulatorJson.cleanup();
    }
}
Also used : IBiomeDataBasePopulator(com.ferreusveritas.dynamictrees.api.worldgen.IBiomeDataBasePopulator) PopulateDataBaseEvent(com.ferreusveritas.dynamictrees.api.events.PopulateDataBaseEvent) BiomeDataBase(com.ferreusveritas.dynamictrees.worldgen.BiomeDataBase)

Aggregations

PopulateDataBaseEvent (com.ferreusveritas.dynamictrees.api.events.PopulateDataBaseEvent)1 IBiomeDataBasePopulator (com.ferreusveritas.dynamictrees.api.worldgen.IBiomeDataBasePopulator)1 BiomeDataBase (com.ferreusveritas.dynamictrees.worldgen.BiomeDataBase)1