diff options
Diffstat (limited to 'src/Java/gtPlusPlus/xmod/witchery/WitchUtils.java')
-rw-r--r-- | src/Java/gtPlusPlus/xmod/witchery/WitchUtils.java | 99 |
1 files changed, 0 insertions, 99 deletions
diff --git a/src/Java/gtPlusPlus/xmod/witchery/WitchUtils.java b/src/Java/gtPlusPlus/xmod/witchery/WitchUtils.java deleted file mode 100644 index 35f9f4bbe8..0000000000 --- a/src/Java/gtPlusPlus/xmod/witchery/WitchUtils.java +++ /dev/null @@ -1,99 +0,0 @@ -package gtPlusPlus.xmod.witchery; - -import java.lang.reflect.Field; -import java.util.ArrayList; - -import com.mojang.authlib.GameProfile; - -import gtPlusPlus.core.lib.LoadedMods; -import gtPlusPlus.core.material.ALLOY; -import gtPlusPlus.core.util.reflect.ReflectionUtils; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.FurnaceRecipes; -import net.minecraftforge.event.world.BlockEvent; -import net.minecraftforge.oredict.OreDictionary; - -public class WitchUtils { - - private static final GameProfile NORMAL_MINER_PROFILE; - private static final GameProfile KOBOLDITE_MINER_PROFILE; - - static { - Field a1 = null, a2 = null; - GameProfile b1 = null, b2 = null; - if (LoadedMods.Witchery) { - try { - a1 = getField("com.emoniph.witchery.entity.ai.EntityAIDigBlocks", "NORMAL_MINER_PROFILE"); - a2 = getField("com.emoniph.witchery.entity.ai.EntityAIDigBlocks", "KOBOLDITE_MINER_PROFILE"); - b1 = (GameProfile) a1.get(null); - b2 = (GameProfile) a2.get(null); - } - catch (Throwable t) { - } - } - NORMAL_MINER_PROFILE = b1; - KOBOLDITE_MINER_PROFILE = b2; - } - - //com.emoniph.witchery.entity.ai.EntityAIDigBlocks.onHarvestDrops(EntityPlayer, HarvestDropsEvent) - public static void onHarvestDrops(final EntityPlayer harvester, final BlockEvent.HarvestDropsEvent event) { - - - if (LoadedMods.Witchery) { - - if (harvester != null && !harvester.worldObj.isRemote && !event.isCanceled() && (isEqual(harvester.getGameProfile(), KOBOLDITE_MINER_PROFILE) || isEqual(harvester.getGameProfile(), NORMAL_MINER_PROFILE))) { - final boolean hasKobolditePick = isEqual(harvester.getGameProfile(), KOBOLDITE_MINER_PROFILE); - final ArrayList<ItemStack> newDrops = new ArrayList<ItemStack>(); - double kobolditeChance = hasKobolditePick ? 0.02 : 0.01; - for (final ItemStack drop : event.drops) { - final int[] oreIDs = OreDictionary.getOreIDs(drop); - boolean addOriginal = true; - if (oreIDs.length > 0) { - final String oreName = OreDictionary.getOreName(oreIDs[0]); - if (oreName != null && oreName.startsWith("ore")) { - final ItemStack smeltedDrop = FurnaceRecipes.smelting().getSmeltingResult(drop); - if (smeltedDrop != null && hasKobolditePick && harvester.worldObj.rand.nextDouble() < 0.5) { - addOriginal = false; - newDrops.add(smeltedDrop.copy()); - newDrops.add(smeltedDrop.copy()); - if (harvester.worldObj.rand.nextDouble() < 0.25) { - newDrops.add(smeltedDrop.copy()); - } - } - kobolditeChance = (hasKobolditePick ? 0.08 : 0.05); - } - } - if (addOriginal) { - newDrops.add(drop); - } - } - event.drops.clear(); - for (final ItemStack newDrop : newDrops) { - event.drops.add(newDrop); - } - if (kobolditeChance > 0.0 && harvester.worldObj.rand.nextDouble() < kobolditeChance) { - event.drops.add(ALLOY.KOBOLDITE.getDust(1)); - } - } - } - - } - - public static Field getField(String aClassName, String aFieldName) { - Class c; - c = ReflectionUtils.getClass(aClassName); - if (c != null) { - Field f = ReflectionUtils.getField(c, aFieldName); - if (f != null) { - return f; - } - } - return null; - } - - public static boolean isEqual(final GameProfile a, final GameProfile b) { - return a != null && b != null && a.getId() != null && b.getId() != null && a.getId().equals(b.getId()); - } - -} |