/** * 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.ability.api.Category; import cn.academy.ability.api.Skill; import cn.academy.ability.api.event.SkillLearnEvent; import cn.academy.misc.achievements.DispatcherAch; import net.minecraft.block.Block; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.stats.Achievement; /** * @author EAirPeter */ public final class AchEvSkillLearn<Cat extends Category> extends AchAbility<Cat> implements IAchEventDriven<SkillLearnEvent> { public AchEvSkillLearn(Skill skill, String id, int x, int y, Item display, Achievement parent) { super((Cat) skill.getCategory(), id, x, y, display, parent); cSkill = skill; } public AchEvSkillLearn(Skill skill, String id, int x, int y, Block display, Achievement parent) { super((Cat) skill.getCategory(), id, x, y, display, parent); cSkill = skill; } public AchEvSkillLearn(Skill skill, String id, int x, int y, ItemStack display, Achievement parent) { super((Cat) skill.getCategory(), id, x, y, display, parent); cSkill = skill; } public AchEvSkillLearn(Skill skill, int x, int y, Item display, Achievement parent) { super((Cat) skill.getCategory(), skill.getName(), x, y, display, parent); cSkill = skill; } public AchEvSkillLearn(Skill skill, int x, int y, Block display, Achievement parent) { super((Cat) skill.getCategory(), skill.getName(), x, y, display, parent); cSkill = skill; } public AchEvSkillLearn(Skill skill, int x, int y, ItemStack display, Achievement parent) { super((Cat) skill.getCategory(), skill.getName(), x, y, display, parent); cSkill = skill; } public AchEvSkillLearn(Skill skill, String id, int x, int y, Achievement parent) { super(skill, id, x, y, parent); cSkill = skill; } public AchEvSkillLearn(Skill skill, int x, int y, Achievement parent) { super(skill, x, y, parent); cSkill = skill; } private final Skill cSkill; @Override public void registerAll() { DispatcherAch.INSTANCE.rgSkillLearn(cSkill, this); } @Override public void unregisterAll() { DispatcherAch.INSTANCE.urSkillLearn(cSkill); } @Override public boolean accept(SkillLearnEvent event) { return event.skill == cSkill; } }