Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package net.CaveBiomes.main;
- import java.lang.reflect.Field;
- import com.google.common.base.Throwables;
- import com.google.common.collect.ObjectArrays;
- import net.CaveBiomes.biomes.DesertCave;
- import net.CaveBiomes.items.GlowShroom;
- import net.minecraft.item.Item;
- import net.minecraft.world.biome.BiomeGenBase;
- import net.minecraft.world.gen.layer.CaveBiomesGenLayerAccessor;
- import net.minecraft.world.gen.layer.GenLayer;
- import net.minecraft.world.gen.layer.GenLayerBiome;
- import net.minecraft.world.gen.layer.GenLayerRiverMix;
- import net.minecraftforge.common.MinecraftForge;
- import net.minecraftforge.event.terraingen.WorldTypeEvent;
- import cpw.mods.fml.common.Mod;
- import cpw.mods.fml.common.Mod.EventHandler;
- import cpw.mods.fml.common.event.FMLInitializationEvent;
- import cpw.mods.fml.common.event.FMLPostInitializationEvent;
- import cpw.mods.fml.common.event.FMLPreInitializationEvent;
- import cpw.mods.fml.common.eventhandler.SubscribeEvent;
- import cpw.mods.fml.common.registry.GameRegistry;
- import cpw.mods.fml.common.registry.LanguageRegistry;
- import net.minecraftforge.event.terraingen.WorldTypeEvent;
- @Mod(modid = CaveBiomes.modid, version = CaveBiomes.version)
- public class CaveBiomes<itemGlowShroom> {
- public static final String modid = "CaveBiomes";
- public static final String version = "1.7.2";
- //Items
- public static Item itemGlowShroom;
- //biomes
- public static BiomeGenBase DesertCave = new DesertCave(34).setBiomeName("DesertCave");
- @EventHandler
- public void Init(FMLInitializationEvent preEvent){
- //Item Registry
- itemGlowShroom = new GlowShroom().setUnlocalizedName("GlowShroom");
- GameRegistry.registerItem(itemGlowShroom, "Glow Shroom");
- LanguageRegistry.addName(itemGlowShroom, "Glow Shroom");
- //Biome Registry
- ;
- }
- @EventHandler
- public void PreInit(FMLPreInitializationEvent event){
- MinecraftForge.TERRAIN_GEN_BUS.register(this);
- DesertCave = new BiomeGenBase(233) {
- };
- }
- public static Field biomePatternGeneratorChainfield;
- public static Field biomeArrayField;
- static{
- try {
- biomePatternGeneratorChainfield = GenLayerRiverMix.class.getDeclaredField("field_151622_e");
- biomePatternGeneratorChainfield.setAccessible(true);
- biomeArrayField = GenLayerBiome.class.getDeclaredField("field_151622_e");
- biomeArrayField.setAccessible(true);
- } catch (NoSuchFieldException e) {
- Throwables.propagate(e);
- }
- }
- @SubscribeEvent
- public void onGenLayerInit(WorldTypeEvent.InitBiomeGens event) throws IllegalAccessException {
- GenLayer biomeLayer = event.originalBiomeGens[1];
- do{
- if (biomeLayer instanceof GenLayerRiverMix) {
- biomeLayer = (GenLayer) biomePatternGeneratorChainfield.get(biomeLayer);
- } else {
- biomeLayer = CaveBiomesGenLayerAccessor.getParent(biomeLayer);
- }
- } while (biomeLayer != null && !(biomeLayer instanceof GenLayerBiome));
- if (biomeLayer == null) {
- throw new IllegalStateException("couldn't locate GenLayerbiome!");
- }
- BiomeGenBase[] biomes = (BiomeGenBase[]) biomeArrayField.get(biomeLayer);
- biomes = ObjectArrays.concat(biomes, DesertCave);
- biomeArrayField.set(biomeLayer, biomes);
- }
- @EventHandler
- public void postInit(FMLPostInitializationEvent postEvent){
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement