Pickaxe: add overhead mining animations (#12509)

This commit is contained in:
Hydrox
2020-09-21 05:32:08 +01:00
committed by GitHub
parent ce9ba6fea8
commit e1120614b0

View File

@@ -26,7 +26,6 @@ package net.runelite.client.plugins.mining;
import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMap;
import java.util.Map; import java.util.Map;
import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
import static net.runelite.api.AnimationID.MINING_3A_PICKAXE; import static net.runelite.api.AnimationID.MINING_3A_PICKAXE;
import static net.runelite.api.AnimationID.MINING_ADAMANT_PICKAXE; import static net.runelite.api.AnimationID.MINING_ADAMANT_PICKAXE;
@@ -40,6 +39,20 @@ import static net.runelite.api.AnimationID.MINING_GILDED_PICKAXE;
import static net.runelite.api.AnimationID.MINING_INFERNAL_PICKAXE; import static net.runelite.api.AnimationID.MINING_INFERNAL_PICKAXE;
import static net.runelite.api.AnimationID.MINING_IRON_PICKAXE; import static net.runelite.api.AnimationID.MINING_IRON_PICKAXE;
import static net.runelite.api.AnimationID.MINING_MITHRIL_PICKAXE; import static net.runelite.api.AnimationID.MINING_MITHRIL_PICKAXE;
import static net.runelite.api.AnimationID.MINING_MOTHERLODE_3A;
import static net.runelite.api.AnimationID.MINING_MOTHERLODE_ADAMANT;
import static net.runelite.api.AnimationID.MINING_MOTHERLODE_BLACK;
import static net.runelite.api.AnimationID.MINING_MOTHERLODE_BRONZE;
import static net.runelite.api.AnimationID.MINING_MOTHERLODE_CRYSTAL;
import static net.runelite.api.AnimationID.MINING_MOTHERLODE_DRAGON;
import static net.runelite.api.AnimationID.MINING_MOTHERLODE_DRAGON_OR;
import static net.runelite.api.AnimationID.MINING_MOTHERLODE_DRAGON_UPGRADED;
import static net.runelite.api.AnimationID.MINING_MOTHERLODE_GILDED;
import static net.runelite.api.AnimationID.MINING_MOTHERLODE_INFERNAL;
import static net.runelite.api.AnimationID.MINING_MOTHERLODE_IRON;
import static net.runelite.api.AnimationID.MINING_MOTHERLODE_MITHRIL;
import static net.runelite.api.AnimationID.MINING_MOTHERLODE_RUNE;
import static net.runelite.api.AnimationID.MINING_MOTHERLODE_STEEL;
import static net.runelite.api.AnimationID.MINING_RUNE_PICKAXE; import static net.runelite.api.AnimationID.MINING_RUNE_PICKAXE;
import static net.runelite.api.AnimationID.MINING_STEEL_PICKAXE; import static net.runelite.api.AnimationID.MINING_STEEL_PICKAXE;
import static net.runelite.api.ItemID.ADAMANT_PICKAXE; import static net.runelite.api.ItemID.ADAMANT_PICKAXE;
@@ -58,27 +71,26 @@ import static net.runelite.api.ItemID.STEEL_PICKAXE;
import static net.runelite.api.ItemID._3RD_AGE_PICKAXE; import static net.runelite.api.ItemID._3RD_AGE_PICKAXE;
import net.runelite.api.Player; import net.runelite.api.Player;
@AllArgsConstructor
@Getter @Getter
enum Pickaxe enum Pickaxe
{ {
BRONZE(MINING_BRONZE_PICKAXE, BRONZE_PICKAXE), BRONZE(BRONZE_PICKAXE, MINING_BRONZE_PICKAXE, MINING_MOTHERLODE_BRONZE),
IRON(MINING_IRON_PICKAXE, IRON_PICKAXE), IRON(IRON_PICKAXE, MINING_IRON_PICKAXE, MINING_MOTHERLODE_IRON),
STEEL(MINING_STEEL_PICKAXE, STEEL_PICKAXE), STEEL(STEEL_PICKAXE, MINING_STEEL_PICKAXE, MINING_MOTHERLODE_STEEL),
BLACK(MINING_BLACK_PICKAXE, BLACK_PICKAXE), BLACK(BLACK_PICKAXE, MINING_BLACK_PICKAXE, MINING_MOTHERLODE_BLACK),
MITHRIL(MINING_MITHRIL_PICKAXE, MITHRIL_PICKAXE), MITHRIL(MITHRIL_PICKAXE, MINING_MITHRIL_PICKAXE, MINING_MOTHERLODE_MITHRIL),
ADAMANT(MINING_ADAMANT_PICKAXE, ADAMANT_PICKAXE), ADAMANT(ADAMANT_PICKAXE, MINING_ADAMANT_PICKAXE, MINING_MOTHERLODE_ADAMANT),
RUNE(MINING_RUNE_PICKAXE, RUNE_PICKAXE), RUNE(RUNE_PICKAXE, MINING_RUNE_PICKAXE, MINING_MOTHERLODE_RUNE),
GILDED(MINING_GILDED_PICKAXE, GILDED_PICKAXE), GILDED(GILDED_PICKAXE, MINING_GILDED_PICKAXE, MINING_MOTHERLODE_GILDED),
DRAGON(MINING_DRAGON_PICKAXE, DRAGON_PICKAXE), DRAGON(DRAGON_PICKAXE, MINING_DRAGON_PICKAXE, MINING_MOTHERLODE_DRAGON),
DRAGON_OR(MINING_DRAGON_PICKAXE_OR, DRAGON_PICKAXEOR), DRAGON_OR(DRAGON_PICKAXEOR, MINING_DRAGON_PICKAXE_OR, MINING_MOTHERLODE_DRAGON_OR),
DRAGON_UPGRADED(MINING_DRAGON_PICKAXE_UPGRADED, DRAGON_PICKAXE_12797), DRAGON_UPGRADED(DRAGON_PICKAXE_12797, MINING_DRAGON_PICKAXE_UPGRADED, MINING_MOTHERLODE_DRAGON_UPGRADED),
INFERNAL(MINING_INFERNAL_PICKAXE, INFERNAL_PICKAXE), INFERNAL(INFERNAL_PICKAXE, MINING_INFERNAL_PICKAXE, MINING_MOTHERLODE_INFERNAL),
THIRDAGE(MINING_3A_PICKAXE, _3RD_AGE_PICKAXE), THIRDAGE(_3RD_AGE_PICKAXE, MINING_3A_PICKAXE, MINING_MOTHERLODE_3A),
CRYSTAL(MINING_CRYSTAL_PICKAXE, CRYSTAL_PICKAXE); CRYSTAL(CRYSTAL_PICKAXE, MINING_CRYSTAL_PICKAXE, MINING_MOTHERLODE_CRYSTAL);
private final int animId;
private final int itemId; private final int itemId;
private final int[] animIds;
private static final Map<Integer, Pickaxe> PICKAXE_ANIM_IDS; private static final Map<Integer, Pickaxe> PICKAXE_ANIM_IDS;
@@ -88,15 +100,24 @@ enum Pickaxe
for (Pickaxe pickaxe : values()) for (Pickaxe pickaxe : values())
{ {
builder.put(pickaxe.animId, pickaxe); for (int animId : pickaxe.animIds)
{
builder.put(animId, pickaxe);
}
} }
PICKAXE_ANIM_IDS = builder.build(); PICKAXE_ANIM_IDS = builder.build();
} }
Pickaxe(int itemId, int ... animIds)
{
this.itemId = itemId;
this.animIds = animIds;
}
boolean matchesMiningAnimation(final Player player) boolean matchesMiningAnimation(final Player player)
{ {
return player != null && animId == player.getAnimation(); return player != null && fromAnimation(player.getAnimation()) == this;
} }
static Pickaxe fromAnimation(int animId) static Pickaxe fromAnimation(int animId)