/** * This class was created by <Vazkii>. It's distributed as * part of the Botania Mod. Get the Source Code in github: * https://github.com/Vazkii/Botania * * Botania is Open Source and distributed under the * Botania License: http://botaniamod.net/license.php * * File Created @ [Jan 14, 2014, 5:17:55 PM (GMT)] */ package vazkii.botania.common.block; import net.minecraft.block.Block; import net.minecraft.block.BlockDispenser; import net.minecraft.init.Blocks; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.fml.common.Loader; import net.minecraftforge.fml.common.registry.GameRegistry; import net.minecraftforge.oredict.OreDictionary; import vazkii.botania.api.BotaniaAPI; import vazkii.botania.api.recipe.RecipeManaInfusion; import vazkii.botania.api.subtile.SubTileEntity; import vazkii.botania.client.lib.LibResources; import vazkii.botania.common.block.corporea.BlockCorporeaCrystalCube; import vazkii.botania.common.block.corporea.BlockCorporeaFunnel; import vazkii.botania.common.block.corporea.BlockCorporeaIndex; import vazkii.botania.common.block.corporea.BlockCorporeaInterceptor; import vazkii.botania.common.block.corporea.BlockCorporeaRetainer; import vazkii.botania.common.block.decor.BlockBlaze; import vazkii.botania.common.block.decor.BlockBuriedPetals; import vazkii.botania.common.block.decor.BlockCustomBrick; import vazkii.botania.common.block.decor.BlockElfGlass; import vazkii.botania.common.block.decor.BlockFloatingFlower; import vazkii.botania.common.block.decor.BlockManaFlame; import vazkii.botania.common.block.decor.BlockManaGlass; import vazkii.botania.common.block.decor.BlockModMushroom; import vazkii.botania.common.block.decor.BlockPetalBlock; import vazkii.botania.common.block.decor.BlockShimmerrock; import vazkii.botania.common.block.decor.BlockShimmerwoodPlanks; import vazkii.botania.common.block.decor.BlockShinyFlower; import vazkii.botania.common.block.decor.BlockStarfield; import vazkii.botania.common.block.decor.BlockTinyPotato; import vazkii.botania.common.block.dispenser.BehaviourFelPumpkin; import vazkii.botania.common.block.dispenser.BehaviourPoolMinecart; import vazkii.botania.common.block.dispenser.BehaviourWand; import vazkii.botania.common.block.dispenser.SeedBehaviours; import vazkii.botania.common.block.mana.BlockAlchemyCatalyst; import vazkii.botania.common.block.mana.BlockBellows; import vazkii.botania.common.block.mana.BlockBrewery; import vazkii.botania.common.block.mana.BlockConjurationCatalyst; import vazkii.botania.common.block.mana.BlockDistributor; import vazkii.botania.common.block.mana.BlockEnchanter; import vazkii.botania.common.block.mana.BlockForestDrum; import vazkii.botania.common.block.mana.BlockManaDetector; import vazkii.botania.common.block.mana.BlockManaVoid; import vazkii.botania.common.block.mana.BlockPool; import vazkii.botania.common.block.mana.BlockPrism; import vazkii.botania.common.block.mana.BlockPump; import vazkii.botania.common.block.mana.BlockRFGenerator; import vazkii.botania.common.block.mana.BlockRuneAltar; import vazkii.botania.common.block.mana.BlockSpawnerClaw; import vazkii.botania.common.block.mana.BlockSpreader; import vazkii.botania.common.block.mana.BlockTerraPlate; import vazkii.botania.common.block.mana.BlockTurntable; import vazkii.botania.common.block.string.BlockRedStringComparator; import vazkii.botania.common.block.string.BlockRedStringContainer; import vazkii.botania.common.block.string.BlockRedStringDispenser; import vazkii.botania.common.block.string.BlockRedStringFertilizer; import vazkii.botania.common.block.string.BlockRedStringInterceptor; import vazkii.botania.common.block.string.BlockRedStringRelay; import vazkii.botania.common.block.subtile.SubTileManastar; import vazkii.botania.common.block.subtile.SubTilePureDaisy; import vazkii.botania.common.block.subtile.functional.SubTileAgricarnation; import vazkii.botania.common.block.subtile.functional.SubTileBellethorn; import vazkii.botania.common.block.subtile.functional.SubTileBergamute; import vazkii.botania.common.block.subtile.functional.SubTileBubbell; import vazkii.botania.common.block.subtile.functional.SubTileClayconia; import vazkii.botania.common.block.subtile.functional.SubTileDaffomill; import vazkii.botania.common.block.subtile.functional.SubTileDreadthorn; import vazkii.botania.common.block.subtile.functional.SubTileExoflame; import vazkii.botania.common.block.subtile.functional.SubTileFallenKanade; import vazkii.botania.common.block.subtile.functional.SubTileHeiseiDream; import vazkii.botania.common.block.subtile.functional.SubTileHopperhock; import vazkii.botania.common.block.subtile.functional.SubTileHyacidus; import vazkii.botania.common.block.subtile.functional.SubTileJadedAmaranthus; import vazkii.botania.common.block.subtile.functional.SubTileJiyuulia; import vazkii.botania.common.block.subtile.functional.SubTileLoonuim; import vazkii.botania.common.block.subtile.functional.SubTileMarimorphosis; import vazkii.botania.common.block.subtile.functional.SubTileMedumone; import vazkii.botania.common.block.subtile.functional.SubTileOrechid; import vazkii.botania.common.block.subtile.functional.SubTileOrechidIgnem; import vazkii.botania.common.block.subtile.functional.SubTilePollidisiac; import vazkii.botania.common.block.subtile.functional.SubTileRannuncarpus; import vazkii.botania.common.block.subtile.functional.SubTileSolegnolia; import vazkii.botania.common.block.subtile.functional.SubTileSpectranthemum; import vazkii.botania.common.block.subtile.functional.SubTileTangleberrie; import vazkii.botania.common.block.subtile.functional.SubTileTigerseye; import vazkii.botania.common.block.subtile.functional.SubTileVinculotus; import vazkii.botania.common.block.subtile.generating.SubTileArcaneRose; import vazkii.botania.common.block.subtile.generating.SubTileDandelifeon; import vazkii.botania.common.block.subtile.generating.SubTileEndoflame; import vazkii.botania.common.block.subtile.generating.SubTileEntropinnyum; import vazkii.botania.common.block.subtile.generating.SubTileGourmaryllis; import vazkii.botania.common.block.subtile.generating.SubTileHydroangeas; import vazkii.botania.common.block.subtile.generating.SubTileKekimurus; import vazkii.botania.common.block.subtile.generating.SubTileMunchdew; import vazkii.botania.common.block.subtile.generating.SubTileNarslimmus; import vazkii.botania.common.block.subtile.generating.SubTileRafflowsia; import vazkii.botania.common.block.subtile.generating.SubTileSpectrolus; import vazkii.botania.common.block.subtile.generating.SubTileThermalily; import vazkii.botania.common.block.tile.TileAlfPortal; import vazkii.botania.common.block.tile.TileAltar; import vazkii.botania.common.block.tile.TileAnimatedTorch; import vazkii.botania.common.block.tile.TileAvatar; import vazkii.botania.common.block.tile.TileBifrost; import vazkii.botania.common.block.tile.TileBrewery; import vazkii.botania.common.block.tile.TileCacophonium; import vazkii.botania.common.block.tile.TileCell; import vazkii.botania.common.block.tile.TileCocoon; import vazkii.botania.common.block.tile.TileCraftCrate; import vazkii.botania.common.block.tile.TileEnchanter; import vazkii.botania.common.block.tile.TileEnderEye; import vazkii.botania.common.block.tile.TileFakeAir; import vazkii.botania.common.block.tile.TileFloatingFlower; import vazkii.botania.common.block.tile.TileFloatingSpecialFlower; import vazkii.botania.common.block.tile.TileForestEye; import vazkii.botania.common.block.tile.TileGaiaHead; import vazkii.botania.common.block.tile.TileHourglass; import vazkii.botania.common.block.tile.TileIncensePlate; import vazkii.botania.common.block.tile.TileLightRelay; import vazkii.botania.common.block.tile.TileManaFlame; import vazkii.botania.common.block.tile.TileOpenCrate; import vazkii.botania.common.block.tile.TilePlatform; import vazkii.botania.common.block.tile.TilePylon; import vazkii.botania.common.block.tile.TileRuneAltar; import vazkii.botania.common.block.tile.TileSparkChanger; import vazkii.botania.common.block.tile.TileSpawnerClaw; import vazkii.botania.common.block.tile.TileSpecialFlower; import vazkii.botania.common.block.tile.TileStarfield; import vazkii.botania.common.block.tile.TileTerraPlate; import vazkii.botania.common.block.tile.TileTeruTeruBozu; import vazkii.botania.common.block.tile.TileTinyPlanet; import vazkii.botania.common.block.tile.TileTinyPotato; import vazkii.botania.common.block.tile.corporea.TileCorporeaCrystalCube; import vazkii.botania.common.block.tile.corporea.TileCorporeaFunnel; import vazkii.botania.common.block.tile.corporea.TileCorporeaIndex; import vazkii.botania.common.block.tile.corporea.TileCorporeaInterceptor; import vazkii.botania.common.block.tile.corporea.TileCorporeaRetainer; import vazkii.botania.common.block.tile.mana.TileBellows; import vazkii.botania.common.block.tile.mana.TileDistributor; import vazkii.botania.common.block.tile.mana.TileManaDetector; import vazkii.botania.common.block.tile.mana.TileManaVoid; import vazkii.botania.common.block.tile.mana.TilePool; import vazkii.botania.common.block.tile.mana.TilePrism; import vazkii.botania.common.block.tile.mana.TilePump; import vazkii.botania.common.block.tile.mana.TileRFGenerator; import vazkii.botania.common.block.tile.mana.TileSpreader; import vazkii.botania.common.block.tile.mana.TileTurntable; import vazkii.botania.common.block.tile.string.TileRedStringComparator; import vazkii.botania.common.block.tile.string.TileRedStringContainer; import vazkii.botania.common.block.tile.string.TileRedStringDispenser; import vazkii.botania.common.block.tile.string.TileRedStringFertilizer; import vazkii.botania.common.block.tile.string.TileRedStringInterceptor; import vazkii.botania.common.block.tile.string.TileRedStringRelay; import vazkii.botania.common.item.ModItems; import vazkii.botania.common.lib.LibBlockNames; import vazkii.botania.common.lib.LibOreDict; public final class ModBlocks { public static Block flower; public static Block altar; public static Block livingrock; public static Block livingwood; public static Block specialFlower; public static Block spreader; public static Block pool; public static Block runeAltar; public static Block pylon; public static Block pistonRelay; public static Block distributor; public static Block manaVoid; public static Block manaDetector; public static Block enchanter; public static Block turntable; public static Block tinyPlanet; public static Block alchemyCatalyst; public static Block openCrate; public static Block forestEye; public static Block storage; public static Block forestDrum; public static Block shinyFlower; public static Block platform; public static Block alfPortal; public static Block dreamwood; public static Block conjurationCatalyst; public static Block bifrost; public static Block solidVines; public static Block buriedPetals; public static Block floatingFlower; public static Block tinyPotato; public static Block spawnerClaw; public static Block customBrick; public static Block enderEye; public static Block starfield; public static Block rfGenerator; public static Block elfGlass; public static Block brewery; public static Block manaGlass; public static Block terraPlate; public static Block redStringContainer; public static Block redStringDispenser; public static Block redStringFertilizer; public static Block redStringComparator; public static Block redStringRelay; public static Block floatingSpecialFlower; public static Block manaFlame; public static Block prism; public static Block enchantedSoil; public static Block petalBlock; public static Block corporeaIndex; public static Block corporeaFunnel; public static Block mushroom; public static Block pump; public static Block doubleFlower1; public static Block doubleFlower2; public static Block fakeAir; public static Block blazeBlock; public static Block corporeaInterceptor; public static Block corporeaCrystalCube; public static Block incensePlate; public static Block hourglass; public static Block ghostRail; public static Block sparkChanger; public static Block root; public static Block felPumpkin; public static Block cocoon; public static Block lightRelay; public static Block lightLauncher; public static Block manaBomb; public static Block cacophonium; public static Block bellows; public static Block bifrostPerm; public static Block cellBlock; public static Block redStringInterceptor; public static Block gaiaHead; public static Block corporeaRetainer; public static Block teruTeruBozu; public static Block shimmerrock; public static Block shimmerwoodPlanks; public static Block avatar; public static Block altGrass; public static Block animatedTorch; public static void init() { flower = new BlockModFlower(); altar = new BlockAltar(); livingrock = new BlockLivingrock(); livingwood = new BlockLivingwood(); specialFlower = new BlockSpecialFlower(); spreader = new BlockSpreader(); pool = new BlockPool(); runeAltar = new BlockRuneAltar(); pylon = new BlockPylon(); pistonRelay = new BlockPistonRelay(); distributor = new BlockDistributor(); manaVoid = new BlockManaVoid(); manaDetector = new BlockManaDetector(); enchanter = new BlockEnchanter(); turntable = new BlockTurntable(); tinyPlanet = new BlockTinyPlanet(); alchemyCatalyst = new BlockAlchemyCatalyst(); openCrate = new BlockOpenCrate(); forestEye = new BlockForestEye(); storage = new BlockStorage(); forestDrum = new BlockForestDrum(); shinyFlower = new BlockShinyFlower(); platform = new BlockPlatform(); alfPortal = new BlockAlfPortal(); dreamwood = new BlockDreamwood(); conjurationCatalyst = new BlockConjurationCatalyst(); bifrost = new BlockBifrost(); solidVines = new BlockSolidVines(); buriedPetals = new BlockBuriedPetals(); floatingFlower = new BlockFloatingFlower(); tinyPotato = new BlockTinyPotato(); spawnerClaw = new BlockSpawnerClaw(); customBrick = new BlockCustomBrick(); enderEye = new BlockEnderEye(); starfield = new BlockStarfield(); rfGenerator = new BlockRFGenerator(); elfGlass = new BlockElfGlass(); brewery = new BlockBrewery(); manaGlass = new BlockManaGlass(); terraPlate = new BlockTerraPlate(); redStringContainer = new BlockRedStringContainer(); redStringDispenser = new BlockRedStringDispenser(); redStringFertilizer = new BlockRedStringFertilizer(); redStringComparator = new BlockRedStringComparator(); redStringRelay = new BlockRedStringRelay(); floatingSpecialFlower = new BlockFloatingSpecialFlower(); manaFlame = new BlockManaFlame(); prism = new BlockPrism(); enchantedSoil = new BlockEnchantedSoil(); petalBlock = new BlockPetalBlock(); corporeaIndex = new BlockCorporeaIndex(); corporeaFunnel = new BlockCorporeaFunnel(); mushroom = new BlockModMushroom(); pump = new BlockPump(); doubleFlower1 = new BlockModDoubleFlower1(); doubleFlower2 = new BlockModDoubleFlower2(); fakeAir = new BlockFakeAir(); blazeBlock = new BlockBlaze(); corporeaInterceptor = new BlockCorporeaInterceptor(); corporeaCrystalCube = new BlockCorporeaCrystalCube(); incensePlate = new BlockIncensePlate(); hourglass = new BlockHourglass(); ghostRail = new BlockGhostRail(); sparkChanger = new BlockSparkChanger(); root = new BlockRoot(); felPumpkin = new BlockFelPumpkin(); cocoon = new BlockCocoon(); lightRelay = new BlockLightRelay(); lightLauncher = new BlockLightLauncher(); manaBomb = new BlockManaBomb(); cacophonium = new BlockCacophonium(); bellows = new BlockBellows(); bifrostPerm = new BlockBifrostPerm(); cellBlock = new BlockCell(); redStringInterceptor = new BlockRedStringInterceptor(); gaiaHead = new BlockGaiaHead(); corporeaRetainer = new BlockCorporeaRetainer(); teruTeruBozu = new BlockTeruTeruBozu(); shimmerrock = new BlockShimmerrock(); shimmerwoodPlanks = new BlockShimmerwoodPlanks(); avatar = new BlockAvatar(); altGrass = new BlockAltGrass(); animatedTorch = new BlockAnimatedTorch(); ModFluffBlocks.init(); for(int i = 0; i < 16; i++) OreDictionary.registerOre(LibOreDict.FLOWER[i], new ItemStack(flower, 1, i)); OreDictionary.registerOre(LibOreDict.LIVING_ROCK, livingrock); OreDictionary.registerOre(LibOreDict.LIVING_WOOD, livingwood); OreDictionary.registerOre(LibOreDict.DREAM_WOOD, dreamwood); for(int i = 0; i < 8; i++) { OreDictionary.registerOre(LibOreDict.DOUBLE_FLOWER[i], new ItemStack(doubleFlower1, 1, i)); OreDictionary.registerOre(LibOreDict.DOUBLE_FLOWER[i + 8], new ItemStack(doubleFlower2, 1, i)); } OreDictionary.registerOre(LibOreDict.BLAZE_BLOCK, blazeBlock); // Vanilla OreDict entries OreDictionary.registerOre("hardenedClay", new ItemStack(Blocks.HARDENED_CLAY, 1, OreDictionary.WILDCARD_VALUE)); OreDictionary.registerOre("snowLayer", Blocks.SNOW_LAYER); OreDictionary.registerOre("mycelium", Blocks.MYCELIUM); OreDictionary.registerOre("podzol", new ItemStack(Blocks.DIRT, 1, 2)); OreDictionary.registerOre("soulSand", Blocks.SOUL_SAND); OreDictionary.registerOre("ice", Blocks.ICE); OreDictionary.registerOre("slabCobblestone", new ItemStack(Blocks.STONE_SLAB, 1, 3)); RecipeManaInfusion.alchemyState = alchemyCatalyst.getDefaultState(); RecipeManaInfusion.conjurationState = conjurationCatalyst.getDefaultState(); initTileEntities(); } public static void addDispenserBehaviours() { BlockDispenser.DISPENSE_BEHAVIOR_REGISTRY.putObject(ModItems.twigWand, new BehaviourWand()); BlockDispenser.DISPENSE_BEHAVIOR_REGISTRY.putObject(ModItems.poolMinecart, new BehaviourPoolMinecart()); BlockDispenser.DISPENSE_BEHAVIOR_REGISTRY.putObject(Item.getItemFromBlock(ModBlocks.felPumpkin), new BehaviourFelPumpkin()); SeedBehaviours.init(); } private static void initTileEntities() { registerTile(TileAltar.class, LibBlockNames.ALTAR); registerTile(TileSpecialFlower.class, LibBlockNames.SPECIAL_FLOWER); registerTile(TileSpreader.class, LibBlockNames.SPREADER); registerTile(TilePool.class, LibBlockNames.POOL); registerTile(TileRuneAltar.class, LibBlockNames.RUNE_ALTAR); registerTile(TilePylon.class, LibBlockNames.PYLON); registerTile(TileDistributor.class, LibBlockNames.DISTRIBUTOR); registerTile(TileManaVoid.class, LibBlockNames.MANA_VOID); registerTile(TileManaDetector.class, LibBlockNames.MANA_DETECTOR); registerTile(TileEnchanter.class, LibBlockNames.ENCHANTER); registerTile(TileTurntable.class, LibBlockNames.TURNTABLE); registerTile(TileTinyPlanet.class, LibBlockNames.TINY_PLANET); registerTile(TileOpenCrate.class, LibBlockNames.OPEN_CRATE); registerTile(TileCraftCrate.class, LibBlockNames.CRAFT_CRATE); registerTile(TileForestEye.class, LibBlockNames.FOREST_EYE); registerTile(TilePlatform.class, LibBlockNames.PLATFORM); registerTile(TileAlfPortal.class, LibBlockNames.ALF_PORTAL); registerTile(TileBifrost.class, LibBlockNames.BIFROST); registerTile(TileFloatingFlower.class, LibBlockNames.MINI_ISLAND); registerTile(TileTinyPotato.class, LibBlockNames.TINY_POTATO); registerTile(TileSpawnerClaw.class, LibBlockNames.SPAWNER_CLAW); registerTile(TileEnderEye.class, LibBlockNames.ENDER_EYE_BLOCK); registerTile(TileStarfield.class, LibBlockNames.STARFIELD); registerTile(TileRFGenerator.class, LibBlockNames.RF_GENERATOR); registerTile(TileBrewery.class, LibBlockNames.BREWERY); registerTile(TileTerraPlate.class, LibBlockNames.TERRA_PLATE); registerTile(TileRedStringContainer.class, LibBlockNames.RED_STRING_CONTAINER); registerTile(TileRedStringDispenser.class, LibBlockNames.RED_STRING_DISPENSER); registerTile(TileRedStringFertilizer.class, LibBlockNames.RED_STRING_FERTILIZER); registerTile(TileRedStringComparator.class, LibBlockNames.RED_STRING_COMPARATOR); registerTile(TileRedStringRelay.class, LibBlockNames.RED_STRING_RELAY); registerTile(TileFloatingSpecialFlower.class, LibBlockNames.FLOATING_SPECIAL_FLOWER); registerTile(TileManaFlame.class, LibBlockNames.MANA_FLAME); registerTile(TilePrism.class, LibBlockNames.PRISM); registerTile(TileCorporeaIndex.class, LibBlockNames.CORPOREA_INDEX); registerTile(TileCorporeaFunnel.class, LibBlockNames.CORPOREA_FUNNEL); registerTile(TilePump.class, LibBlockNames.PUMP); registerTile(TileFakeAir.class, LibBlockNames.FAKE_AIR); registerTile(TileCorporeaInterceptor.class, LibBlockNames.CORPOREA_INTERCEPTOR); registerTile(TileCorporeaCrystalCube.class, LibBlockNames.CORPOREA_CRYSTAL_CUBE); registerTile(TileIncensePlate.class, LibBlockNames.INCENSE_PLATE); registerTile(TileHourglass.class, LibBlockNames.HOURGLASS); registerTile(TileSparkChanger.class, LibBlockNames.SPARK_CHANGER); registerTile(TileCocoon.class, LibBlockNames.COCOON); registerTile(TileLightRelay.class, LibBlockNames.LIGHT_RELAY); registerTile(TileCacophonium.class, LibBlockNames.CACOPHONIUM); registerTile(TileBellows.class, LibBlockNames.BELLOWS); registerTile(TileCell.class, LibBlockNames.CELL_BLOCK); registerTile(TileRedStringInterceptor.class, LibBlockNames.RED_STRING_INTERCEPTOR); registerTile(TileGaiaHead.class, LibBlockNames.GAIA_HEAD); registerTile(TileCorporeaRetainer.class, LibBlockNames.CORPOREA_RETAINER); registerTile(TileTeruTeruBozu.class, LibBlockNames.TERU_TERU_BOZU); registerTile(TileAvatar.class, LibBlockNames.AVATAR); registerTile(TileAnimatedTorch.class, LibBlockNames.ANIMATED_TORCH); BotaniaAPI.registerSubTile(LibBlockNames.SUBTILE_PUREDAISY, SubTilePureDaisy.class); BotaniaAPI.registerSubTile(LibBlockNames.SUBTILE_MANASTAR, SubTileManastar.class); BotaniaAPI.registerSubTile(LibBlockNames.SUBTILE_HYDROANGEAS, SubTileHydroangeas.class); BotaniaAPI.registerSubTile(LibBlockNames.SUBTILE_ENDOFLAME, SubTileEndoflame.class); BotaniaAPI.registerSubTile(LibBlockNames.SUBTILE_THERMALILY, SubTileThermalily.class); BotaniaAPI.registerSubTile(LibBlockNames.SUBTILE_ARCANE_ROSE, SubTileArcaneRose.class); BotaniaAPI.registerSubTile(LibBlockNames.SUBTILE_MUNCHDEW, SubTileMunchdew.class); BotaniaAPI.registerSubTile(LibBlockNames.SUBTILE_ENTROPINNYUM, SubTileEntropinnyum.class); BotaniaAPI.registerSubTile(LibBlockNames.SUBTILE_KEKIMURUS, SubTileKekimurus.class); BotaniaAPI.registerSubTile(LibBlockNames.SUBTILE_GOURMARYLLIS, SubTileGourmaryllis.class); BotaniaAPI.registerSubTile(LibBlockNames.SUBTILE_NARSLIMMUS, SubTileNarslimmus.class); BotaniaAPI.registerSubTile(LibBlockNames.SUBTILE_SPECTROLUS, SubTileSpectrolus.class); BotaniaAPI.registerSubTile(LibBlockNames.SUBTILE_DANDELIFEON, SubTileDandelifeon.class); BotaniaAPI.registerSubTile(LibBlockNames.SUBTILE_RAFFLOWSIA, SubTileRafflowsia.class); registerSubTileWithMini(LibBlockNames.SUBTILE_BELLETHORN, SubTileBellethorn.class); BotaniaAPI.registerSubTile(LibBlockNames.SUBTILE_DREADTHORN, SubTileDreadthorn.class); BotaniaAPI.registerSubTile(LibBlockNames.SUBTILE_HEISEI_DREAM, SubTileHeiseiDream.class); BotaniaAPI.registerSubTile(LibBlockNames.SUBTILE_TIGERSEYE, SubTileTigerseye.class); BotaniaAPI.registerSubTile(LibBlockNames.SUBTILE_JADED_AMARANTHUS, SubTileJadedAmaranthus.class); BotaniaAPI.registerSubTile(LibBlockNames.SUBTILE_ORECHID, SubTileOrechid.class); BotaniaAPI.registerSubTile(LibBlockNames.SUBTILE_ORECHID_IGNEM, SubTileOrechidIgnem.class); BotaniaAPI.registerSubTile(LibBlockNames.SUBTILE_FALLEN_KANADE, SubTileFallenKanade.class); BotaniaAPI.registerSubTile(LibBlockNames.SUBTILE_EXOFLAME, SubTileExoflame.class); registerSubTileWithMini(LibBlockNames.SUBTILE_AGRICARNATION, SubTileAgricarnation.class); registerSubTileWithMini(LibBlockNames.SUBTILE_HOPPERHOCK, SubTileHopperhock.class); BotaniaAPI.registerSubTile(LibBlockNames.SUBTILE_TANGLEBERRIE, SubTileTangleberrie.class); BotaniaAPI.registerSubTile(LibBlockNames.SUBTILE_JIYUULIA, SubTileJiyuulia.class); registerSubTileWithMini(LibBlockNames.SUBTILE_RANNUNCARPUS, SubTileRannuncarpus.class); BotaniaAPI.registerSubTile(LibBlockNames.SUBTILE_HYACIDUS, SubTileHyacidus.class); BotaniaAPI.registerSubTile(LibBlockNames.SUBTILE_POLLIDISIAC, SubTilePollidisiac.class); registerSubTileWithMini(LibBlockNames.SUBTILE_CLAYCONIA, SubTileClayconia.class); BotaniaAPI.registerSubTile(LibBlockNames.SUBTILE_LOONIUM, SubTileLoonuim.class); BotaniaAPI.registerSubTile(LibBlockNames.SUBTILE_DAFFOMILL, SubTileDaffomill.class); BotaniaAPI.registerSubTile(LibBlockNames.SUBTILE_VINCULOTUS, SubTileVinculotus.class); BotaniaAPI.registerSubTile(LibBlockNames.SUBTILE_SPECTRANTHEMUM, SubTileSpectranthemum.class); BotaniaAPI.registerSubTile(LibBlockNames.SUBTILE_MEDUMONE, SubTileMedumone.class); registerSubTileWithMini(LibBlockNames.SUBTILE_MARIMORPHOSIS, SubTileMarimorphosis.class); registerSubTileWithMini(LibBlockNames.SUBTILE_BUBBELL, SubTileBubbell.class); registerSubTileWithMini(LibBlockNames.SUBTILE_SOLEGNOLIA, SubTileSolegnolia.class); BotaniaAPI.registerSubTile(LibBlockNames.SUBTILE_BERGAMUTE, SubTileBergamute.class); } private static void registerSubTileWithMini(String key, Class<? extends SubTileEntity> clazz) { BotaniaAPI.registerSubTile(key, clazz); for(Class innerClazz : clazz.getDeclaredClasses()) if(innerClazz.getSimpleName().equals("Mini")) BotaniaAPI.registerMiniSubTile(key + "Chibi", innerClazz, key); } private static void registerTile(Class<? extends TileEntity> clazz, String key) { GameRegistry.registerTileEntity(clazz, LibResources.PREFIX_MOD + key); } }