/******************************************************************************* * AbyssalCraft * Copyright (c) 2012 - 2017 Shinoow. * All rights reserved. This program and the accompanying materials * are made available under the terms of the GNU Lesser Public License v3 * which accompanies this distribution, and is available at * http://www.gnu.org/licenses/lgpl-3.0.txt * * Contributors: * Shinoow - implementation ******************************************************************************/ package com.shinoow.abyssalcraft.init; import static com.shinoow.abyssalcraft.AbyssalCraft.*; import static com.shinoow.abyssalcraft.init.InitHandler.*; import net.minecraft.util.ResourceLocation; import net.minecraft.world.DimensionType; import net.minecraft.world.biome.Biome; import net.minecraft.world.biome.Biome.BiomeProperties; import net.minecraft.world.gen.structure.MapGenStructureIO; import net.minecraftforge.common.BiomeDictionary; import net.minecraftforge.common.BiomeDictionary.Type; import net.minecraftforge.common.BiomeManager; import net.minecraftforge.common.BiomeManager.BiomeEntry; import net.minecraftforge.common.BiomeManager.BiomeType; import net.minecraftforge.common.DimensionManager; import net.minecraftforge.fml.common.event.*; import net.minecraftforge.fml.common.registry.GameRegistry; import com.shinoow.abyssalcraft.api.biome.ACBiomes; import com.shinoow.abyssalcraft.common.structures.abyss.stronghold.MapGenAbyStronghold; import com.shinoow.abyssalcraft.common.structures.abyss.stronghold.StructureAbyStrongholdPieces; import com.shinoow.abyssalcraft.common.structures.dreadlands.mineshaft.StructureDreadlandsMinePieces; import com.shinoow.abyssalcraft.common.structures.dreadlands.mineshaft.StructureDreadlandsMineStart; import com.shinoow.abyssalcraft.common.structures.omothol.MapGenOmothol; import com.shinoow.abyssalcraft.common.structures.omothol.StructureOmotholPieces; import com.shinoow.abyssalcraft.common.world.*; import com.shinoow.abyssalcraft.common.world.biome.*; import com.shinoow.abyssalcraft.lib.ACConfig; import com.shinoow.abyssalcraft.lib.ACLib; public class WorldHandler implements ILifeCycleHandler { @Override public void preInit(FMLPreInitializationEvent event) { ACBiomes.darklands = new BiomeGenDarklands(new BiomeProperties("Darklands").setWaterColor(14745518)); ACBiomes.abyssal_wastelands = new BiomeGenAbywasteland(new BiomeProperties("Abyssal Wastelands").setWaterColor(0x24FF83).setRainDisabled()); ACBiomes.dreadlands = new BiomeGenDreadlands(new BiomeProperties("Dreadlands").setRainDisabled()); ACBiomes.purified_dreadlands = new BiomeGenAbyDreadlands(new BiomeProperties("Purified Dreadlands").setRainDisabled()); ACBiomes.dreadlands_forest = new BiomeGenForestDreadlands(new BiomeProperties("Dreadlands Forest").setRainDisabled()); ACBiomes.dreadlands_mountains = new BiomeGenMountainDreadlands(new BiomeProperties("Dreadlands Mountains").setBaseHeight(1.3F).setHeightVariation(0.9F).setRainDisabled()); ACBiomes.darklands_forest = new BiomeGenDarklandsForest(new BiomeProperties("Darklands Forest").setWaterColor(14745518)); ACBiomes.darklands_plains = new BiomeGenDarklandsPlains(new BiomeProperties("Darklands Plains").setWaterColor(14745518)); ACBiomes.darklands_hills = new BiomeGenDarklandsHills(new BiomeProperties("Darklands Highland").setWaterColor(14745518).setBaseHeight(1.1F).setHeightVariation(0.5F).setTemperature(0.2F).setRainfall(0.3F)); ACBiomes.darklands_mountains = new BiomeGenDarklandsMountains(new BiomeProperties("Darklands Mountains").setWaterColor(14745518).setBaseHeight(1.3F).setHeightVariation(0.9F).setTemperature(0.2F).setRainfall(0.3F)); ACBiomes.coralium_infested_swamp = new BiomeGenCorSwamp(new BiomeProperties("Coralium Infested Swamp").setWaterColor(0x24FF83).setBaseHeight(-0.2F).setHeightVariation(0.1F)); ACBiomes.omothol = new BiomeGenOmothol(new BiomeProperties("Omothol").setWaterColor(14745518).setRainDisabled()); ACBiomes.dark_realm = new BiomeGenDarkRealm(new BiomeProperties("Dark Realm").setWaterColor(14745518).setRainDisabled()); if(dark1 == true){ registerBiomeWithTypes(ACBiomes.darklands, "darklands", darkWeight1, BiomeType.WARM, Type.WASTELAND, Type.SPOOKY); BiomeManager.addVillageBiome(ACBiomes.darklands, true); } if(dark2 == true){ registerBiomeWithTypes(ACBiomes.darklands_forest, "darklands_forest", darkWeight2, BiomeType.WARM, Type.FOREST, Type.SPOOKY); BiomeManager.addVillageBiome(ACBiomes.darklands_forest, true); } if(dark3 == true){ registerBiomeWithTypes(ACBiomes.darklands_plains, "darklands_plains", darkWeight3, BiomeType.WARM, Type.PLAINS, Type.SPOOKY); BiomeManager.addVillageBiome(ACBiomes.darklands_plains, true); } if(dark4 == true) registerBiomeWithTypes(ACBiomes.darklands_hills, "darklands_hills", darkWeight4, BiomeType.COOL, Type.HILLS, Type.SPOOKY); if(dark5 == true){ registerBiomeWithTypes(ACBiomes.darklands_mountains, "darklands_mountains", darkWeight5, BiomeType.COOL, Type.MOUNTAIN, Type.SPOOKY); BiomeManager.addStrongholdBiome(ACBiomes.darklands_mountains); } if(coralium1 == true) registerBiomeWithTypes(ACBiomes.coralium_infested_swamp, "coralium_infested_swamp", coraliumWeight, BiomeType.WARM, Type.SWAMP); if(darkspawn1 == true) BiomeManager.addSpawnBiome(ACBiomes.darklands); if(darkspawn2 == true) BiomeManager.addSpawnBiome(ACBiomes.darklands_forest); if(darkspawn3 == true) BiomeManager.addSpawnBiome(ACBiomes.darklands_plains); if(darkspawn4 == true) BiomeManager.addSpawnBiome(ACBiomes.darklands_hills); if(darkspawn5 == true) BiomeManager.addSpawnBiome(ACBiomes.darklands_mountains); if(coraliumspawn1 == true) BiomeManager.addSpawnBiome(ACBiomes.coralium_infested_swamp); GameRegistry.register(ACBiomes.abyssal_wastelands.setRegistryName(new ResourceLocation(modid, "abyssal_wastelands"))); GameRegistry.register(ACBiomes.dreadlands.setRegistryName(new ResourceLocation(modid, "dreadlands"))); GameRegistry.register(ACBiomes.purified_dreadlands.setRegistryName(new ResourceLocation(modid, "purified_dreadlands"))); GameRegistry.register(ACBiomes.dreadlands_forest.setRegistryName(new ResourceLocation(modid, "dreadlands_forest"))); GameRegistry.register(ACBiomes.dreadlands_mountains.setRegistryName(new ResourceLocation(modid, "dreadlands_mountains"))); GameRegistry.register(ACBiomes.omothol.setRegistryName(new ResourceLocation(modid, "omothol"))); GameRegistry.register(ACBiomes.dark_realm.setRegistryName(new ResourceLocation(modid, "dark_realm"))); BiomeDictionary.addTypes(ACBiomes.abyssal_wastelands, Type.DEAD); BiomeDictionary.addTypes(ACBiomes.dreadlands, Type.DEAD); BiomeDictionary.addTypes(ACBiomes.purified_dreadlands, Type.DEAD); BiomeDictionary.addTypes(ACBiomes.dreadlands_mountains, Type.DEAD); BiomeDictionary.addTypes(ACBiomes.dreadlands_forest, Type.DEAD); BiomeDictionary.addTypes(ACBiomes.omothol, Type.DEAD); BiomeDictionary.addTypes(ACBiomes.dark_realm, Type.DEAD); ACLib.THE_ABYSSAL_WASTELAND = DimensionType.register("The Abyssal Wasteland", "_aw", ACLib.abyssal_wasteland_id, WorldProviderAbyss.class, ACConfig.keepLoaded1); ACLib.THE_DREADLANDS = DimensionType.register("The Dreadlands", "_dl", ACLib.dreadlands_id, WorldProviderDreadlands.class, ACConfig.keepLoaded2); ACLib.OMOTHOL = DimensionType.register("Omothol", "_omt", ACLib.omothol_id, WorldProviderOmothol.class, ACConfig.keepLoaded3); ACLib.THE_DARK_REALM = DimensionType.register("The Dark Realm", "_dl", ACLib.dark_realm_id, WorldProviderDarkRealm.class, ACConfig.keepLoaded4); DimensionManager.registerDimension(ACLib.abyssal_wasteland_id, ACLib.THE_ABYSSAL_WASTELAND); DimensionManager.registerDimension(ACLib.dreadlands_id, ACLib.THE_DREADLANDS); DimensionManager.registerDimension(ACLib.omothol_id, ACLib.OMOTHOL); DimensionManager.registerDimension(ACLib.dark_realm_id, ACLib.THE_DARK_REALM); } @Override public void init(FMLInitializationEvent event) { MapGenStructureIO.registerStructure(MapGenAbyStronghold.Start.class, "AbyStronghold"); StructureAbyStrongholdPieces.registerStructurePieces(); MapGenStructureIO.registerStructure(StructureDreadlandsMineStart.class, "DreadMine"); StructureDreadlandsMinePieces.registerStructurePieces(); MapGenStructureIO.registerStructure(MapGenOmothol.Start.class, "Omothol"); StructureOmotholPieces.registerOmotholPieces(); GameRegistry.registerWorldGenerator(new AbyssalCraftWorldGenerator(), 0); } @Override public void postInit(FMLPostInitializationEvent event) {} @Override public void loadComplete(FMLLoadCompleteEvent event) { if(ACConfig.purgeMobSpawns){ ((BiomeGenAbywasteland) ACBiomes.abyssal_wastelands).setMobSpawns(); ((BiomeGenDreadlands) ACBiomes.dreadlands).setMobSpawns(); ((BiomeGenAbyDreadlands) ACBiomes.purified_dreadlands).setMobSpawns(); ((BiomeGenForestDreadlands) ACBiomes.dreadlands_forest).setMobSpawns(); ((BiomeGenMountainDreadlands) ACBiomes.dreadlands_mountains).setMobSpawns(); ((BiomeGenOmothol) ACBiomes.omothol).setMobSpawns(); ((BiomeGenDarkRealm) ACBiomes.dark_realm).setMobSpawns(); } } private static void registerBiomeWithTypes(Biome biome, String name, int weight, BiomeType btype, Type...types){ GameRegistry.register(biome.setRegistryName(new ResourceLocation(modid, name))); BiomeDictionary.addTypes(biome, types); BiomeManager.addBiome(btype, new BiomeEntry(biome, weight)); } }