/** * Copyright (c) Lambda Innovation, 2013-2016 * This file is part of the AcademyCraft mod. * https://github.com/LambdaInnovation/AcademyCraft * Licensed under GPLv3, see project root for more information. */ package cn.academy.misc.achievements.aches; import cn.academy.misc.achievements.DispatcherAch; import cpw.mods.fml.common.gameevent.PlayerEvent; import cpw.mods.fml.common.gameevent.PlayerEvent.ItemPickupEvent; import net.minecraft.block.Block; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.stats.Achievement; public class AchEvItemPickup extends ACAchievement implements IAchEventDriven<PlayerEvent.ItemPickupEvent> { ItemStack stack; public AchEvItemPickup(String id, int x, int y, Item display, Achievement parent) { super(id, x, y, display, parent); } public AchEvItemPickup(String id, int x, int y, Block display, Achievement parent) { super(id, x, y, display, parent); } public AchEvItemPickup(String id, int x, int y, ItemStack display, Achievement parent) { super(id, x, y, display, parent); } @Override public void registerAll() { if(stack != null) DispatcherAch.INSTANCE.rgPlayerPickup(stack, this); } @Override public void unregisterAll() {} public AchEvItemPickup setTrigger(ItemStack s) { stack = s; return this; } @Override public boolean accept(ItemPickupEvent event) { if(stack == null) return false; Item item = stack.getItem(); int dmg = stack.getItemDamage(); ItemStack cmp = event.pickedUp.getEntityItem(); return cmp.getItem() == item && dmg == cmp.getItemDamage(); } }