package net.scapeemulator.game.model.player.skills.mining; import static net.scapeemulator.game.model.player.skills.mining.Mining.ADAMANT_ROCKS; import static net.scapeemulator.game.model.player.skills.mining.Mining.BLURITE_ROCKS; import static net.scapeemulator.game.model.player.skills.mining.Mining.CLAY_ROCKS; import static net.scapeemulator.game.model.player.skills.mining.Mining.COAL_ROCKS; import static net.scapeemulator.game.model.player.skills.mining.Mining.COPPER_ROCKS; import static net.scapeemulator.game.model.player.skills.mining.Mining.GOLD_ROCKS; import static net.scapeemulator.game.model.player.skills.mining.Mining.IRON_ROCKS; import static net.scapeemulator.game.model.player.skills.mining.Mining.MITHRIL_ROCKS; import static net.scapeemulator.game.model.player.skills.mining.Mining.RUNITE_ROCKS; import static net.scapeemulator.game.model.player.skills.mining.Mining.SILVER_ROCKS; import static net.scapeemulator.game.model.player.skills.mining.Mining.TIN_ROCKS; import net.scapeemulator.game.model.player.requirement.Requirements; import net.scapeemulator.game.model.player.requirement.SkillRequirement; import net.scapeemulator.game.model.player.skills.Skill; /** * @author David Insley */ public enum RockType { CLAY(1, 5, 434, 2, CLAY_ROCKS), COPPER(1, 17.5, 436, 3, COPPER_ROCKS), TIN(1, 17.5, 438, 3, TIN_ROCKS), BLURITE(10, 17.5, 668, 30, BLURITE_ROCKS), IRON(15, 35, 440, 7, IRON_ROCKS), SILVER(20, 40, 442, 80, SILVER_ROCKS), COAL(30, 50, 453, 40, COAL_ROCKS), GOLD(40, 65, 444, 80, GOLD_ROCKS), MITHRIL(55, 80, 447, 120, MITHRIL_ROCKS), ADAMANT(70, 95, 449, 360, ADAMANT_ROCKS), RUNITE(85, 125, 451, 900, RUNITE_ROCKS); private final int level; private final double xp; private final int oreId; private final int respawnTicks; private final Requirements requirements; private final int[] objectIds; private RockType(int level, double xp, int oreId, int respawnTime, int... objectIds) { this.level = level; this.xp = xp; this.oreId = oreId; respawnTicks = (int) (respawnTime * (5.0 / 3.0)); requirements = new Requirements(); requirements.addRequirement(new SkillRequirement(Skill.MINING, level, true, "mine that rock")); this.objectIds = objectIds; } /** * Finds the RockType for the given objectId. * * @param objectId the objectId to search for * @return the RockType that corresponds to the given objectId, or null if none found */ public static RockType forId(int objectId) { for (RockType type : values()) { for (int typeId : type.objectIds) { if (typeId == objectId) { return type; } } } return null; } public int getLevel() { return level; } public double getXp() { return xp; } public int getOreId() { return oreId; } public int getRespawnTicks() { return respawnTicks; } public Requirements getRequirements() { return requirements; } }