diff --git a/src/main/java/vazkii/botania/api/BotaniaAPI.java b/src/main/java/vazkii/botania/api/BotaniaAPI.java index 0ab58bbe7..8614d6a64 100644 --- a/src/main/java/vazkii/botania/api/BotaniaAPI.java +++ b/src/main/java/vazkii/botania/api/BotaniaAPI.java @@ -72,8 +72,8 @@ public final class BotaniaAPI { public static Set subtilesForCreativeMenu = new LinkedHashSet(); public static Map oreWeights = new HashMap(); - public static Map seeds = new HashMap(); + public static Set looniumBlacklist = new LinkedHashSet(); public static ArmorMaterial manasteelArmorMaterial = EnumHelper.addArmorMaterial("MANASTEEL", 16, new int[] { 2, 6, 5, 2 }, 18); public static ToolMaterial manasteelToolMaterial = EnumHelper.addToolMaterial("MANASTEEL", 3, 300, 6.2F, 2F, 20); @@ -405,6 +405,13 @@ public final class BotaniaAPI { seeds.put(item, block); } + /** + * Blacklists an item from the Loonium drop table. + */ + public static void blackListItemFromLoonium(Item item) { + looniumBlacklist.add(item); + } + /** * Gets the last recipe to have been added to the recipe list. */ diff --git a/src/main/java/vazkii/botania/common/block/subtile/functional/SubTileLoonuim.java b/src/main/java/vazkii/botania/common/block/subtile/functional/SubTileLoonuim.java index 2f72fd408..a91779e81 100644 --- a/src/main/java/vazkii/botania/common/block/subtile/functional/SubTileLoonuim.java +++ b/src/main/java/vazkii/botania/common/block/subtile/functional/SubTileLoonuim.java @@ -15,6 +15,7 @@ import java.util.Random; import net.minecraft.entity.item.EntityItem; import net.minecraft.item.ItemStack; import net.minecraftforge.common.ChestGenHooks; +import vazkii.botania.api.BotaniaAPI; import vazkii.botania.api.lexicon.LexiconEntry; import vazkii.botania.api.subtile.RadiusDescriptor; import vazkii.botania.api.subtile.RadiusDescriptor.Square; @@ -31,7 +32,12 @@ public class SubTileLoonuim extends SubTileFunctional { super.onUpdate(); if(redstoneSignal == 0 && ticksExisted % 200 == 0 && mana >= COST) { Random rand = supertile.getWorldObj().rand; - ItemStack stack = ChestGenHooks.getOneItem(ChestGenHooks.DUNGEON_CHEST, rand); + + ItemStack stack; + do { + stack = ChestGenHooks.getOneItem(ChestGenHooks.DUNGEON_CHEST, rand); + } while(stack == null || BotaniaAPI.looniumBlacklist.contains(stack.getItem())); + int bound = RANGE * 2 + 1; EntityItem entity = new EntityItem(supertile.getWorldObj(), supertile.xCoord - RANGE + rand.nextInt(bound) , supertile.yCoord + 1, supertile.zCoord - RANGE + rand.nextInt(bound), stack); entity.motionX = 0;