From a96cbd69d8da62ba5dcebaee8870caef87458d5a Mon Sep 17 00:00:00 2001 From: Vasco Lavos Date: Sun, 20 Sep 2015 01:16:58 +0100 Subject: [PATCH] New cheeves --- .../common/achievement/ModAchievements.java | 115 +++++++++++------- .../botania/common/block/BlockManaBomb.java | 11 +- .../common/block/tile/TileLightRelay.java | 8 +- .../botania/common/item/ItemCacophonium.java | 11 +- .../botania/common/item/ItemCraftingHalo.java | 10 +- .../botania/common/item/ItemPoolMinecart.java | 11 +- .../botania/common/item/ItemTwigWand.java | 2 + .../item/block/ItemBlockSpecialFlower.java | 6 + .../common/item/brew/ItemBrewBase.java | 11 +- .../armor/manaweave/ItemManaweaveArmor.java | 11 +- .../common/item/rod/ItemTerraformRod.java | 10 +- .../common/lib/LibAchievementNames.java | 14 ++- .../resources/assets/botania/lang/en_US.lang | 24 ++++ 13 files changed, 192 insertions(+), 52 deletions(-) diff --git a/src/main/java/vazkii/botania/common/achievement/ModAchievements.java b/src/main/java/vazkii/botania/common/achievement/ModAchievements.java index 19a68a27d..b12c311e4 100644 --- a/src/main/java/vazkii/botania/common/achievement/ModAchievements.java +++ b/src/main/java/vazkii/botania/common/achievement/ModAchievements.java @@ -31,26 +31,45 @@ public final class ModAchievements { public static Achievement flowerPickup; public static Achievement lexiconUse; public static Achievement daybloomPickup; + public static Achievement cacophoniumCraft; public static Achievement manaPoolPickup; + public static Achievement endoflamePickup; public static Achievement tinyPotatoPet; public static Achievement sparkCraft; public static Achievement baubleWear; public static Achievement manaCookieEat; + public static Achievement manaweaveArmorCraft; + public static Achievement craftingHaloCraft; + public static Achievement manaCartCraft; + public static Achievement enchanterMake; public static Achievement runePickup; + public static Achievement dirtRodCraft; + public static Achievement terraformRodCraft; public static Achievement manaBlasterShoot; + public static Achievement pollidisiacPickup; + public static Achievement brewPickup; public static Achievement terrasteelPickup; + public static Achievement terrasteelWeaponCraft; public static Achievement elfPortalOpen; + public static Achievement kekimurusPickup; public static Achievement heiseiDreamPickup; - public static Achievement gaiaGuardianKill; - public static Achievement spawnerMoverUse; - public static Achievement tiaraWings; + public static Achievement bubbellPickup; + public static Achievement luminizerRide; + public static Achievement enderAirMake; public static Achievement corporeaCraft; - + + public static Achievement gaiaGuardianKill; + + public static Achievement spawnerMoverUse; + public static Achievement tiaraWings; + public static Achievement manaBombIgnite; + public static Achievement dandelifeonPickup; + public static Achievement signalFlareStun; public static Achievement l20ShardUse; public static Achievement gaiaGuardianNoArmor; @@ -70,57 +89,69 @@ public final class ModAchievements { public static Achievement desuGun; public static void init() { - flowerPickup = new AchievementMod(LibAchievementNames.FLOWER_PICKUP, 0, 0, new ItemStack(ModBlocks.flower, 1, 6), null); - lexiconUse = new AchievementMod(LibAchievementNames.LEXICON_USE, 1, 1, ModItems.lexicon, flowerPickup); - daybloomPickup = new AchievementMod(LibAchievementNames.DAYBLOOM_PICKUP, 3, 1, ItemBlockSpecialFlower.ofType(LibBlockNames.SUBTILE_DAYBLOOM), lexiconUse); - manaPoolPickup = new AchievementMod(LibAchievementNames.MANA_POOL_PICKUP, 3, -1, ModBlocks.pool, daybloomPickup); + flowerPickup = new AchievementMod(LibAchievementNames.FLOWER_PICKUP, 0, 4, new ItemStack(ModBlocks.flower, 1, 6), null); + lexiconUse = new AchievementMod(LibAchievementNames.LEXICON_USE, 1, 5, ModItems.lexicon, flowerPickup); + daybloomPickup = new AchievementMod(LibAchievementNames.DAYBLOOM_PICKUP, 3, 5, ItemBlockSpecialFlower.ofType(LibBlockNames.SUBTILE_DAYBLOOM), lexiconUse); + cacophoniumCraft = new AchievementMod(LibAchievementNames.CACOPHONIUM_CRAFT, -1, 2, ModItems.cacophonium, flowerPickup); + manaPoolPickup = new AchievementMod(LibAchievementNames.MANA_POOL_PICKUP, 3, 2, ModBlocks.pool, daybloomPickup); - endoflamePickup = new AchievementMod(LibAchievementNames.ENDOFLAME_PICKUP, 1, -3, ItemBlockSpecialFlower.ofType(LibBlockNames.SUBTILE_ENDOFLAME), manaPoolPickup); - tinyPotatoPet = new AchievementMod(LibAchievementNames.TINY_POTATO_PET, 2, -5, ModBlocks.tinyPotato, manaPoolPickup); - sparkCraft = new AchievementMod(LibAchievementNames.SPARK_CRAFT, 4, -5, ModItems.spark, manaPoolPickup); - baubleWear = new AchievementMod(LibAchievementNames.BAUBLE_WEAR, 5, -3, ModItems.manaRing, manaPoolPickup); - manaCookieEat = new AchievementMod(LibAchievementNames.MANA_COOKIE_EAT, 3, -7, ModItems.manaCookie, manaPoolPickup); - runePickup = new AchievementMod(LibAchievementNames.RUNE_PICKUP, 6, -1, ModBlocks.runeAltar, manaPoolPickup); + endoflamePickup = new AchievementMod(LibAchievementNames.ENDOFLAME_PICKUP, 2, 0, ItemBlockSpecialFlower.ofType(LibBlockNames.SUBTILE_ENDOFLAME), manaPoolPickup); + tinyPotatoPet = new AchievementMod(LibAchievementNames.TINY_POTATO_PET, 2, -2, ModBlocks.tinyPotato, manaPoolPickup); + sparkCraft = new AchievementMod(LibAchievementNames.SPARK_CRAFT, 4, -2, ModItems.spark, manaPoolPickup); + baubleWear = new AchievementMod(LibAchievementNames.BAUBLE_WEAR, 4, 0, ModItems.manaRing, manaPoolPickup); + manaCookieEat = new AchievementMod(LibAchievementNames.MANA_COOKIE_EAT, 2, -4, ModItems.manaCookie, manaPoolPickup); + manaweaveArmorCraft = new AchievementMod(LibAchievementNames.MANAWEAVE_ARMOR_CRAFT, 4, -4, ModItems.manaweaveChest, manaPoolPickup); + craftingHaloCraft = new AchievementMod(LibAchievementNames.CRAFTING_HALO_CRAFT, 3, -6, ModItems.craftingHalo, manaPoolPickup); + manaCartCraft = new AchievementMod(LibAchievementNames.MANA_CART_CRAFT, 5, 3, ModItems.poolMinecart, manaPoolPickup); + enchanterMake = new AchievementMod(LibAchievementNames.ENCHANTER_MAKE, 1, 2, ModBlocks.enchanter, manaPoolPickup); + runePickup = new AchievementMod(LibAchievementNames.RUNE_PICKUP, 6, 2, ModBlocks.runeAltar, manaPoolPickup); - dirtRodCraft = new AchievementMod(LibAchievementNames.DIRT_ROD_CRAFT, 8, 0, ModItems.dirtRod, runePickup); - manaBlasterShoot = new AchievementMod(LibAchievementNames.MANA_BLASTER_SHOOT, 8, -2, ModItems.manaGun, runePickup); - terrasteelPickup = new AchievementMod(LibAchievementNames.TERRASTEEL_PICKUP, 6, 4, new ItemStack(ModItems.manaResource, 1, 4), runePickup).setSpecial(); + dirtRodCraft = new AchievementMod(LibAchievementNames.DIRT_ROD_CRAFT, 8, 3, ModItems.dirtRod, runePickup); + terraformRodCraft = new AchievementMod(LibAchievementNames.TERRAFORM_ROD_CRAFT, 10, 3, ModItems.terraformRod, dirtRodCraft); + manaBlasterShoot = new AchievementMod(LibAchievementNames.MANA_BLASTER_SHOOT, 8, 1, ModItems.manaGun, runePickup); + pollidisiacPickup = new AchievementMod(LibAchievementNames.POLLIDISIAC_PICKUP, 8, 5, ItemBlockSpecialFlower.ofType(LibBlockNames.SUBTILE_POLLIDISIAC), runePickup); + brewPickup = new AchievementMod(LibAchievementNames.BREW_PICKUP, 6, 0, ModBlocks.brewery, runePickup); + terrasteelPickup = new AchievementMod(LibAchievementNames.TERRASTEEL_PICKUP, 6, 9, new ItemStack(ModItems.manaResource, 1, 4), runePickup).setSpecial(); - terrasteelWeaponCraft = new AchievementMod(LibAchievementNames.TERRASTEEL_WEAPON_CRAFT, 8, 5, ModItems.terraSword, terrasteelPickup); - elfPortalOpen = new AchievementMod(LibAchievementNames.ELF_PORTAL_OPEN, 4, 4, ModBlocks.alfPortal, terrasteelPickup).setSpecial(); + terrasteelWeaponCraft = new AchievementMod(LibAchievementNames.TERRASTEEL_WEAPON_CRAFT, 8, 10, ModItems.terraSword, terrasteelPickup); + elfPortalOpen = new AchievementMod(LibAchievementNames.ELF_PORTAL_OPEN, 4, 9, ModBlocks.alfPortal, terrasteelPickup).setSpecial(); - kekimurusPickup = new AchievementMod(LibAchievementNames.KEKIMURUS_PICKUP, 3, 6, ItemBlockSpecialFlower.ofType(LibBlockNames.SUBTILE_KEKIMURUS), elfPortalOpen); - heiseiDreamPickup = new AchievementMod(LibAchievementNames.HEISEI_DREAM_PICKUP, 5, 6, ItemBlockSpecialFlower.ofType(LibBlockNames.SUBTILE_HEISEI_DREAM), elfPortalOpen); - enderAirMake = new AchievementMod(LibAchievementNames.ENDER_AIR_MAKE, 4, 8, new ItemStack(ModItems.manaResource, 1, 15), elfPortalOpen); - corporeaCraft = new AchievementMod(LibAchievementNames.CORPOREA_CRAFT, 2, 8, ModBlocks.corporeaFunnel, enderAirMake); + kekimurusPickup = new AchievementMod(LibAchievementNames.KEKIMURUS_PICKUP, 3, 11, ItemBlockSpecialFlower.ofType(LibBlockNames.SUBTILE_KEKIMURUS), elfPortalOpen); + heiseiDreamPickup = new AchievementMod(LibAchievementNames.HEISEI_DREAM_PICKUP, 5, 11, ItemBlockSpecialFlower.ofType(LibBlockNames.SUBTILE_HEISEI_DREAM), elfPortalOpen); + bubbellPickup = new AchievementMod(LibAchievementNames.BUBBELL_PICKUP, 6, 12, ItemBlockSpecialFlower.ofType(LibBlockNames.SUBTILE_BUBBELL), elfPortalOpen); + enderAirMake = new AchievementMod(LibAchievementNames.ENDER_AIR_MAKE, 4, 14, new ItemStack(ModItems.manaResource, 1, 15), elfPortalOpen); + corporeaCraft = new AchievementMod(LibAchievementNames.CORPOREA_CRAFT, 2, 14, ModBlocks.corporeaFunnel, enderAirMake); + luminizerRide = new AchievementMod(LibAchievementNames.LUMINIZER_RIDE, 6, 14, ModBlocks.lightRelay, enderAirMake); - gaiaGuardianKill = new AchievementMod(LibAchievementNames.GAIA_GUARDIAN_KILL, 2, 4, new ItemStack(ModItems.manaResource, 1, 5), elfPortalOpen).setSpecial(); + gaiaGuardianKill = new AchievementMod(LibAchievementNames.GAIA_GUARDIAN_KILL, 2, 9, new ItemStack(ModItems.manaResource, 1, 5), elfPortalOpen).setSpecial(); - spawnerMoverUse = new AchievementMod(LibAchievementNames.SPAWNER_MOVER_USE, -1, 5, ModItems.spawnerMover, gaiaGuardianKill); - tiaraWings = new AchievementMod(LibAchievementNames.TIARA_WINGS, -1, 3, ModItems.flightTiara, gaiaGuardianKill); - - signalFlareStun = new AchievementMod(LibAchievementNames.SIGNAL_FLARE_STUN, -3, -3, ModItems.signalFlare, null).setSpecial(); - l20ShardUse = new AchievementMod(LibAchievementNames.L20_SHARD_USE, -5, -1, ModItems.laputaShard, null).setSpecial(); - gaiaGuardianNoArmor = new AchievementMod(LibAchievementNames.GAIA_GUARDIAN_NO_ARMOR, -5, -3, new ItemStack(Items.skull, 1, 3), null).setSpecial(); - rankSSPick = new AchievementMod(LibAchievementNames.RANK_SS_PICK, -3, -1, ModItems.terraPick, null).setSpecial(); - superCorporeaRequest = new AchievementMod(LibAchievementNames.SUPER_CORPOREA_REQUEST, -3, -5, ModBlocks.corporeaIndex, null).setSpecial(); - pinkinator = new AchievementMod(LibAchievementNames.PINKINATOR, -5, -5, ModItems.pinkinator, null).setSpecial(); + spawnerMoverUse = new AchievementMod(LibAchievementNames.SPAWNER_MOVER_USE, -1, 10, ModItems.spawnerMover, gaiaGuardianKill); + tiaraWings = new AchievementMod(LibAchievementNames.TIARA_WINGS, -1, 8, ModItems.flightTiara, gaiaGuardianKill); + manaBombIgnite = new AchievementMod(LibAchievementNames.MANA_BOMB_IGNITE, 0, 11, ModBlocks.manaBomb, gaiaGuardianKill); + dandelifeonPickup = new AchievementMod(LibAchievementNames.DANDELIFEON_PICKUP, 0, 7, ItemBlockSpecialFlower.ofType(LibBlockNames.SUBTILE_DANDELIFEON), gaiaGuardianKill); + + signalFlareStun = new AchievementMod(LibAchievementNames.SIGNAL_FLARE_STUN, -3, 1, ModItems.signalFlare, null).setSpecial(); + l20ShardUse = new AchievementMod(LibAchievementNames.L20_SHARD_USE, -5, 3, ModItems.laputaShard, null).setSpecial(); + gaiaGuardianNoArmor = new AchievementMod(LibAchievementNames.GAIA_GUARDIAN_NO_ARMOR, -5, 1, new ItemStack(Items.skull, 1, 3), null).setSpecial(); + rankSSPick = new AchievementMod(LibAchievementNames.RANK_SS_PICK, -3, 3, ModItems.terraPick, null).setSpecial(); + superCorporeaRequest = new AchievementMod(LibAchievementNames.SUPER_CORPOREA_REQUEST, -3, -1, ModBlocks.corporeaIndex, null).setSpecial(); + pinkinator = new AchievementMod(LibAchievementNames.PINKINATOR, -5, -1, ModItems.pinkinator, null).setSpecial(); if(ConfigHandler.relicsEnabled) { - relicInfiniteFruit = new AchievementMod(LibAchievementNames.RELIC_INFINITE_FRUIT, -9, 4, ModItems.infiniteFruit, null); - relicKingKey = new AchievementMod(LibAchievementNames.RELIC_KING_KEY, -7, 7, ModItems.kingKey, null); - relicFlugelEye = new AchievementMod(LibAchievementNames.RELIC_FLUGEL_EYE, -5, 4, ModItems.flugelEye, null); - relicThorRing = new AchievementMod(LibAchievementNames.RELIC_THOR_RING, -7, 3, ModItems.thorRing, null); - relicOdinRing = new AchievementMod(LibAchievementNames.RELIC_ODIN_RING, -9, 6, ModItems.odinRing, null); - relicLokiRing = new AchievementMod(LibAchievementNames.RELIC_LOKI_RING, -5, 6, ModItems.lokiRing, null); - relicAesirRing = new AchievementMod(LibAchievementNames.RELIC_AESIR_RING, -7, 5, ModItems.aesirRing, null).setSpecial(); + relicInfiniteFruit = new AchievementMod(LibAchievementNames.RELIC_INFINITE_FRUIT, -9, 8, ModItems.infiniteFruit, null); + relicKingKey = new AchievementMod(LibAchievementNames.RELIC_KING_KEY, -7, 11, ModItems.kingKey, null); + relicFlugelEye = new AchievementMod(LibAchievementNames.RELIC_FLUGEL_EYE, -5, 8, ModItems.flugelEye, null); + relicThorRing = new AchievementMod(LibAchievementNames.RELIC_THOR_RING, -7, 7, ModItems.thorRing, null); + relicOdinRing = new AchievementMod(LibAchievementNames.RELIC_ODIN_RING, -9, 10, ModItems.odinRing, null); + relicLokiRing = new AchievementMod(LibAchievementNames.RELIC_LOKI_RING, -5, 10, ModItems.lokiRing, null); + relicAesirRing = new AchievementMod(LibAchievementNames.RELIC_AESIR_RING, -7, 9, ModItems.aesirRing, null).setSpecial(); } - nullFlower = new AchievementMod(LibAchievementNames.NULL_FLOWER, -8, -4, ModBlocks.specialFlower, null).setSpecial(); + nullFlower = new AchievementMod(LibAchievementNames.NULL_FLOWER, -8, 0, ModBlocks.specialFlower, null).setSpecial(); ItemStack desu = new ItemStack(ModItems.manaGun); desu.setStackDisplayName("desu gun"); - desuGun = new AchievementMod(LibAchievementNames.DESU_GUN, -8, -2, desu, null).setSpecial(); + desuGun = new AchievementMod(LibAchievementNames.DESU_GUN, -8, 2, desu, null).setSpecial(); pageIndex = AchievementPage.getAchievementPages().size(); botaniaPage = new AchievementPage(LibMisc.MOD_NAME, AchievementMod.achievements.toArray(new Achievement[AchievementMod.achievements.size()])); diff --git a/src/main/java/vazkii/botania/common/block/BlockManaBomb.java b/src/main/java/vazkii/botania/common/block/BlockManaBomb.java index 10c028ba1..5154cd727 100644 --- a/src/main/java/vazkii/botania/common/block/BlockManaBomb.java +++ b/src/main/java/vazkii/botania/common/block/BlockManaBomb.java @@ -12,17 +12,21 @@ package vazkii.botania.common.block; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; +import net.minecraft.stats.Achievement; import net.minecraft.world.World; import vazkii.botania.api.internal.IManaBurst; import vazkii.botania.api.lexicon.ILexiconable; import vazkii.botania.api.lexicon.LexiconEntry; import vazkii.botania.api.mana.IManaTrigger; +import vazkii.botania.common.achievement.ICraftAchievement; +import vazkii.botania.common.achievement.ModAchievements; import vazkii.botania.common.entity.EntityManaStorm; import vazkii.botania.common.lexicon.LexiconData; import vazkii.botania.common.lib.LibBlockNames; -public class BlockManaBomb extends BlockMod implements IManaTrigger, ILexiconable { +public class BlockManaBomb extends BlockMod implements IManaTrigger, ILexiconable, ICraftAchievement { public BlockManaBomb() { super(Material.wood); @@ -47,4 +51,9 @@ public class BlockManaBomb extends BlockMod implements IManaTrigger, ILexiconabl return LexiconData.manaBomb; } + @Override + public Achievement getAchievementOnCraft(ItemStack stack, EntityPlayer player, IInventory matrix) { + return ModAchievements.manaBombIgnite; + } + } diff --git a/src/main/java/vazkii/botania/common/block/tile/TileLightRelay.java b/src/main/java/vazkii/botania/common/block/tile/TileLightRelay.java index c11eef380..1195c5e42 100644 --- a/src/main/java/vazkii/botania/common/block/tile/TileLightRelay.java +++ b/src/main/java/vazkii/botania/common/block/tile/TileLightRelay.java @@ -25,6 +25,7 @@ import net.minecraft.util.DamageSource; import net.minecraft.world.World; import vazkii.botania.api.wand.IWandBindable; import vazkii.botania.common.Botania; +import vazkii.botania.common.achievement.ModAchievements; import vazkii.botania.common.block.ModBlocks; import vazkii.botania.common.core.helper.MathHelper; import vazkii.botania.common.core.helper.Vector3; @@ -47,8 +48,11 @@ public class TileLightRelay extends TileMod implements IWandBindable { EntityPlayerMover mover = new EntityPlayerMover(worldObj, xCoord, yCoord, zCoord, bindX, bindY, bindZ); worldObj.spawnEntityInWorld(mover); e.mountEntity(mover); - if(!(e instanceof EntityItem)) - worldObj.playSoundAtEntity(mover, "botania:lightRelay", 0.2F, (float) Math.random() * 0.3F + 0.7F); + if(!(e instanceof EntityItem)) { + worldObj.playSoundAtEntity(mover, "botania:lightRelay", 0.2F, (float) Math.random() * 0.3F + 0.7F); + if(e instanceof EntityPlayer) + ((EntityPlayer) e).addStat(ModAchievements.luminizerRide, 1); + } } @Override diff --git a/src/main/java/vazkii/botania/common/item/ItemCacophonium.java b/src/main/java/vazkii/botania/common/item/ItemCacophonium.java index dee2dd480..e5c52b05e 100644 --- a/src/main/java/vazkii/botania/common/item/ItemCacophonium.java +++ b/src/main/java/vazkii/botania/common/item/ItemCacophonium.java @@ -20,10 +20,14 @@ import net.minecraft.entity.monster.EntityCreeper; import net.minecraft.entity.monster.EntitySlime; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; +import net.minecraft.inventory.IInventory; import net.minecraft.item.EnumAction; import net.minecraft.item.ItemStack; +import net.minecraft.stats.Achievement; import net.minecraft.util.StatCollector; import net.minecraft.world.World; +import vazkii.botania.common.achievement.ICraftAchievement; +import vazkii.botania.common.achievement.ModAchievements; import vazkii.botania.common.block.ModBlocks; import vazkii.botania.common.block.tile.TileCacophonium; import vazkii.botania.common.core.helper.ItemNBTHelper; @@ -31,7 +35,7 @@ import vazkii.botania.common.lib.LibItemNames; import vazkii.botania.common.lib.LibObfuscation; import cpw.mods.fml.relauncher.ReflectionHelper; -public class ItemCacophonium extends ItemMod { +public class ItemCacophonium extends ItemMod implements ICraftAchievement { private static final String TAG_SOUND = "sound"; private static final String TAG_SOUND_NAME = "soundName"; @@ -147,4 +151,9 @@ public class ItemCacophonium extends ItemMod { private static boolean isDOIT(ItemStack stack) { return stack != null && stack.getDisplayName().equalsIgnoreCase("shia labeouf"); } + + @Override + public Achievement getAchievementOnCraft(ItemStack stack, EntityPlayer player, IInventory matrix) { + return ModAchievements.cacophoniumCraft; + } } diff --git a/src/main/java/vazkii/botania/common/item/ItemCraftingHalo.java b/src/main/java/vazkii/botania/common/item/ItemCraftingHalo.java index c3337b34e..e948ec813 100644 --- a/src/main/java/vazkii/botania/common/item/ItemCraftingHalo.java +++ b/src/main/java/vazkii/botania/common/item/ItemCraftingHalo.java @@ -33,6 +33,7 @@ import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.CraftingManager; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.stats.Achievement; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IIcon; import net.minecraft.util.MathHelper; @@ -51,6 +52,8 @@ import vazkii.botania.client.core.handler.ClientTickHandler; import vazkii.botania.client.gui.crafting.InventoryCraftingHalo; import vazkii.botania.client.lib.LibResources; import vazkii.botania.common.Botania; +import vazkii.botania.common.achievement.ICraftAchievement; +import vazkii.botania.common.achievement.ModAchievements; import vazkii.botania.common.core.helper.InventoryHelper; import vazkii.botania.common.core.helper.InventoryHelper.GenericInventory; import vazkii.botania.common.core.helper.ItemNBTHelper; @@ -63,7 +66,7 @@ import cpw.mods.fml.common.gameevent.PlayerEvent.ItemCraftedEvent; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -public class ItemCraftingHalo extends ItemMod { +public class ItemCraftingHalo extends ItemMod implements ICraftAchievement { private static final ResourceLocation glowTexture = new ResourceLocation(LibResources.MISC_GLOW_GREEN); private static final ItemStack craftingTable = new ItemStack(Blocks.crafting_table); @@ -595,4 +598,9 @@ public class ItemCraftingHalo extends ItemMod { mc.fontRenderer.drawStringWithShadow(label, resolution.getScaledWidth() / 2 - mc.fontRenderer.getStringWidth(label) / 2, resolution.getScaledHeight() / 2 - yoff, 0xFFFFFF); } + @Override + public Achievement getAchievementOnCraft(ItemStack stack, EntityPlayer player, IInventory matrix) { + return ModAchievements.craftingHaloCraft; + } + } diff --git a/src/main/java/vazkii/botania/common/item/ItemPoolMinecart.java b/src/main/java/vazkii/botania/common/item/ItemPoolMinecart.java index 54d4dcb73..3e4648c03 100644 --- a/src/main/java/vazkii/botania/common/item/ItemPoolMinecart.java +++ b/src/main/java/vazkii/botania/common/item/ItemPoolMinecart.java @@ -13,12 +13,16 @@ package vazkii.botania.common.item; import net.minecraft.block.BlockRailBase; import net.minecraft.entity.item.EntityMinecart; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; +import net.minecraft.stats.Achievement; import net.minecraft.world.World; +import vazkii.botania.common.achievement.ICraftAchievement; +import vazkii.botania.common.achievement.ModAchievements; import vazkii.botania.common.entity.EntityPoolMinecart; import vazkii.botania.common.lib.LibItemNames; -public class ItemPoolMinecart extends ItemMod { +public class ItemPoolMinecart extends ItemMod implements ICraftAchievement { public ItemPoolMinecart() { setMaxStackSize(1); @@ -44,4 +48,9 @@ public class ItemPoolMinecart extends ItemMod { return false; } + @Override + public Achievement getAchievementOnCraft(ItemStack stack, EntityPlayer player, IInventory matrix) { + return ModAchievements.manaCartCraft; + } + } diff --git a/src/main/java/vazkii/botania/common/item/ItemTwigWand.java b/src/main/java/vazkii/botania/common/item/ItemTwigWand.java index 4984befab..0b706a86b 100644 --- a/src/main/java/vazkii/botania/common/item/ItemTwigWand.java +++ b/src/main/java/vazkii/botania/common/item/ItemTwigWand.java @@ -38,6 +38,7 @@ import vazkii.botania.api.wand.IWandBindable; import vazkii.botania.api.wand.IWandable; import vazkii.botania.client.core.helper.IconHelper; import vazkii.botania.common.Botania; +import vazkii.botania.common.achievement.ModAchievements; import vazkii.botania.common.block.BlockPistonRelay; import vazkii.botania.common.block.ModBlocks; import vazkii.botania.common.block.tile.TileEnchanter; @@ -96,6 +97,7 @@ public class ItemTwigWand extends Item16Colors implements ICoordBoundItem { if(meta != -1 && !par3World.isRemote) { par3World.setBlock(par4, par5, par6, ModBlocks.enchanter, meta, 1 | 2); + par2EntityPlayer.addStat(ModAchievements.enchanterMake, 1); par3World.playSoundEffect(par4, par5, par6, "botania:enchanterBlock", 0.5F, 0.6F); for(int i = 0; i < 50; i++) { float red = (float) Math.random(); diff --git a/src/main/java/vazkii/botania/common/item/block/ItemBlockSpecialFlower.java b/src/main/java/vazkii/botania/common/item/block/ItemBlockSpecialFlower.java index c03ff5503..8311cae46 100644 --- a/src/main/java/vazkii/botania/common/item/block/ItemBlockSpecialFlower.java +++ b/src/main/java/vazkii/botania/common/item/block/ItemBlockSpecialFlower.java @@ -126,6 +126,12 @@ public class ItemBlockSpecialFlower extends ItemBlockMod implements IRecipeKeyPr return ModAchievements.kekimurusPickup; else if(type.equals(LibBlockNames.SUBTILE_HEISEI_DREAM)) return ModAchievements.heiseiDreamPickup; + else if(type.equals(LibBlockNames.SUBTILE_POLLIDISIAC)) + return ModAchievements.pollidisiacPickup; + else if(type.equals(LibBlockNames.SUBTILE_BUBBELL)) + return ModAchievements.bubbellPickup; + else if(type.equals(LibBlockNames.SUBTILE_DANDELIFEON)) + return ModAchievements.dandelifeonPickup; else if(type.equals("")) return ModAchievements.nullFlower; return null; diff --git a/src/main/java/vazkii/botania/common/item/brew/ItemBrewBase.java b/src/main/java/vazkii/botania/common/item/brew/ItemBrewBase.java index ff6785759..c419fb70d 100644 --- a/src/main/java/vazkii/botania/common/item/brew/ItemBrewBase.java +++ b/src/main/java/vazkii/botania/common/item/brew/ItemBrewBase.java @@ -15,12 +15,14 @@ import java.util.List; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.EnumAction; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; +import net.minecraft.stats.Achievement; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IIcon; import net.minecraft.util.StatCollector; @@ -30,10 +32,12 @@ import vazkii.botania.api.brew.Brew; import vazkii.botania.api.brew.IBrewItem; import vazkii.botania.client.core.handler.ClientTickHandler; import vazkii.botania.client.core.helper.IconHelper; +import vazkii.botania.common.achievement.IPickupAchievement; +import vazkii.botania.common.achievement.ModAchievements; import vazkii.botania.common.core.helper.ItemNBTHelper; import vazkii.botania.common.item.ItemMod; -public abstract class ItemBrewBase extends ItemMod implements IBrewItem { +public abstract class ItemBrewBase extends ItemMod implements IBrewItem, IPickupAchievement { private static final String TAG_BREW_KEY = "brewKey"; private static final String TAG_SWIGS_LEFT = "swigsLeft"; @@ -185,4 +189,9 @@ public abstract class ItemBrewBase extends ItemMod implements IBrewItem { ItemNBTHelper.setInt(stack, TAG_SWIGS_LEFT, swigs); } + @Override + public Achievement getAchievementOnPickup(ItemStack stack, EntityPlayer player, EntityItem item) { + return ModAchievements.brewPickup; + } + } diff --git a/src/main/java/vazkii/botania/common/item/equipment/armor/manaweave/ItemManaweaveArmor.java b/src/main/java/vazkii/botania/common/item/equipment/armor/manaweave/ItemManaweaveArmor.java index e1c728f72..2c406ac29 100644 --- a/src/main/java/vazkii/botania/common/item/equipment/armor/manaweave/ItemManaweaveArmor.java +++ b/src/main/java/vazkii/botania/common/item/equipment/armor/manaweave/ItemManaweaveArmor.java @@ -13,14 +13,18 @@ package vazkii.botania.common.item.equipment.armor.manaweave; import java.util.List; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; +import net.minecraft.stats.Achievement; import net.minecraft.util.StatCollector; import vazkii.botania.api.BotaniaAPI; import vazkii.botania.client.lib.LibResources; +import vazkii.botania.common.achievement.ICraftAchievement; +import vazkii.botania.common.achievement.ModAchievements; import vazkii.botania.common.item.ModItems; import vazkii.botania.common.item.equipment.armor.manasteel.ItemManasteelArmor; -public class ItemManaweaveArmor extends ItemManasteelArmor { +public class ItemManaweaveArmor extends ItemManasteelArmor implements ICraftAchievement { public ItemManaweaveArmor(int type, String name) { super(type, name, BotaniaAPI.manaweaveArmorMaterial); @@ -77,4 +81,9 @@ public class ItemManaweaveArmor extends ItemManasteelArmor { addStringToTooltip(StatCollector.translateToLocal("botania.armorset.manaweave.desc0"), list); addStringToTooltip(StatCollector.translateToLocal("botania.armorset.manaweave.desc1"), list); } + @Override + public Achievement getAchievementOnCraft(ItemStack stack, EntityPlayer player, IInventory matrix) { + return ModAchievements.manaweaveArmorCraft; + } + } diff --git a/src/main/java/vazkii/botania/common/item/rod/ItemTerraformRod.java b/src/main/java/vazkii/botania/common/item/rod/ItemTerraformRod.java index 88706cb8f..a097c21b1 100644 --- a/src/main/java/vazkii/botania/common/item/rod/ItemTerraformRod.java +++ b/src/main/java/vazkii/botania/common/item/rod/ItemTerraformRod.java @@ -18,8 +18,10 @@ import net.minecraft.block.Block; import net.minecraft.block.BlockFlower; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; +import net.minecraft.inventory.IInventory; import net.minecraft.item.EnumAction; import net.minecraft.item.ItemStack; +import net.minecraft.stats.Achievement; import net.minecraft.util.ChunkCoordinates; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -30,11 +32,13 @@ import vazkii.botania.api.mana.IManaUsingItem; import vazkii.botania.api.mana.ManaItemHandler; import vazkii.botania.api.subtile.ISpecialFlower; import vazkii.botania.common.Botania; +import vazkii.botania.common.achievement.ICraftAchievement; +import vazkii.botania.common.achievement.ModAchievements; import vazkii.botania.common.item.ItemMod; import vazkii.botania.common.lib.LibItemNames; import vazkii.botania.common.lib.LibMisc; -public class ItemTerraformRod extends ItemMod implements IManaUsingItem, IBlockProvider { +public class ItemTerraformRod extends ItemMod implements IManaUsingItem, IBlockProvider, ICraftAchievement{ private static final int COST_PER = 55; @@ -190,5 +194,9 @@ public class ItemTerraformRod extends ItemMod implements IManaUsingItem, IBlockP return 0; } + @Override + public Achievement getAchievementOnCraft(ItemStack stack, EntityPlayer player, IInventory matrix) { + return ModAchievements.terraformRodCraft; + } } diff --git a/src/main/java/vazkii/botania/common/lib/LibAchievementNames.java b/src/main/java/vazkii/botania/common/lib/LibAchievementNames.java index c969a1e21..33bb4b818 100644 --- a/src/main/java/vazkii/botania/common/lib/LibAchievementNames.java +++ b/src/main/java/vazkii/botania/common/lib/LibAchievementNames.java @@ -34,7 +34,19 @@ public final class LibAchievementNames { public static final String SPAWNER_MOVER_USE = "spawnerMoverUse"; public static final String ENDER_AIR_MAKE = "enderAirMake"; public static final String CORPOREA_CRAFT = "corporeaCraft"; - + public static final String CACOPHONIUM_CRAFT = "cacophoniumCraft"; + public static final String MANA_CART_CRAFT = "manaCartCraft"; + public static final String CRAFTING_HALO_CRAFT = "craftingHaloCraft"; + public static final String MANAWEAVE_ARMOR_CRAFT = "manaweaveArmorCraft"; + public static final String ENCHANTER_MAKE = "enchanterMake"; + public static final String POLLIDISIAC_PICKUP = "pollidisiacPickup"; + public static final String BREW_PICKUP = "brewPickup"; + public static final String TERRAFORM_ROD_CRAFT = "terraformRodCraft"; + public static final String BUBBELL_PICKUP = "bubbellPickup"; + public static final String LUMINIZER_RIDE = "luminizerRide"; + public static final String MANA_BOMB_IGNITE = "manaBombIgnite"; + public static final String DANDELIFEON_PICKUP = "dandelifeonPickup"; + public static final String SIGNAL_FLARE_STUN = "signalFlareStun"; public static final String L20_SHARD_USE = "l20ShardUse"; public static final String GAIA_GUARDIAN_NO_ARMOR = "gaiaGuardianNoArmor"; diff --git a/src/main/resources/assets/botania/lang/en_US.lang b/src/main/resources/assets/botania/lang/en_US.lang index 7df82252b..e02ce221f 100644 --- a/src/main/resources/assets/botania/lang/en_US.lang +++ b/src/main/resources/assets/botania/lang/en_US.lang @@ -455,6 +455,30 @@ achievement.botania:enderAirMake=Imitation Air achievement.botania:enderAirMake.desc=Collect a Bottle of Ender Air achievement.botania:corporeaCraft=Drop Pop Candy achievement.botania:corporeaCraft.desc=Craft a block that makes use of the Corporea Network +achievement.botania:cacophoniumCraft=Noisy Lover Soul +achievement.botania:cacophoniumCraft.desc=Craft a Cacophonium to mildly infuriate your foes +achievement.botania:manaCartCraft=World Domination How-To +achievement.botania:manaCartCraft.desc=Create a Minecart with Mana Pool for long range mana transport +achievement.botania:craftingHaloCraft=Segments Blue +achievement.botania:craftingHaloCraft.desc=Craft an Assembly Halo to facilitate crafting +achievement.botania:manaweaveArmorCraft=Imagination Forest +achievement.botania:manaweaveArmorCraft.desc=Create Manaweave Armor to power up your Rods +achievement.botania:enchanterMake=Odds and Ends +achievement.botania:enchanterMake.desc=Create a Mana Enchanter in order to have better control over enchanting +achievement.botania:pollidisiacPickup=Romeo and Cinderella +achievement.botania:pollidisiacPickup.desc=Create a Pollidisiac, get love in the air +achievement.botania:brewPickup=Childhood Blues +achievement.botania:brewPickup.desc=Craft a Botanical Brewery and use it to create a Brew of any kind +achievement.botania:terraformRodCraft=World is Mine +achievement.botania:terraformRodCraft.desc=Create a Rod of the Terra Firma and change the world +achievement.botania:bubbellPickup=Deep Sea Girl +achievement.botania:bubbellPickup.desc=Create a Bubbell to allow for underwater base creation +achievement.botania:luminizerRide=World's End Dancehall +achievement.botania:luminizerRide.desc=Craft some Luminizers and use them for transport +achievement.botania:manaBombIgnite=Under of Fragments +achievement.botania:manaBombIgnite.desc=Craft a Manastorm Charge, ignite it on a far away place +achievement.botania:dandelifeonPickup=Donut Hole +achievement.botania:dandelifeonPickup.desc=Create a Dandelifeon and challenge your mind with it achievement.botania:signalFlareStun=See the Lights achievement.botania:signalFlareStun.desc=Stun 100 or more mobs at once with a Signal Flare