Merge branch 'fix-bonegrinder' into 'master'

Fix bonegrinder

See merge request 2009scape/2009scape!80
This commit is contained in:
Ceikry
2021-07-01 22:46:25 +00:00
2 changed files with 146 additions and 152 deletions
@@ -1,152 +0,0 @@
package core.game.content.global;
import core.game.node.item.Item;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
/**
* Represents the type of bones.
* @author Apache Ah64
*/
public enum Bones {
BONES(2530, 4.5),
BONES_2(526,4.5),
WOLF_BONES(2859, 4.5),
BURNST_BONES(528, 4.5),
MONKEY_BONES(3183, 5),
MONKEY_BONES2(3179, 5),
BAT_BONES(530, 5.3),
BIG_BONES(532, 15),
JOGRE_BONES(3125, 15),
ZOGRE_BONES(4812, 12.5),
SHAIKAHAN_BONES(3123, 25),
BABY_DRAGON_BONES(534, 30),
WYVERN_BONES(6812, 50),
DRAGON_BONES(536, 72),
FAYRG(4830, 84),
RAURG_BONES(4832, 96),
DAGANNOTH(6729, 125),
OURG_BONES(4834, 140),
LAVA_DRAGON_BONES(14693, 85);
/**
* Holds all bones.
*/
private static HashMap<Integer, Bones> bones = new HashMap<Integer, Bones>();
/**
* The bone item id.
*/
private int itemId;
/**
* The experience given by burying the bone.
*/
private double experience;
/**
* Construct a new {@code Bones} {@code Object}.
* @param itemId The item id.
* @param experience The experience given by burying the bone.
*/
private Bones(int itemId, double experience) {
this.itemId = itemId;
this.experience = experience;
}
/**
* Gets the bone meal item.
* @return the item.
*/
public Item getBoneMeal() {
return new Item(4255 + ordinal());
}
/**
* Get the bone experience given when you bury the bone.
* @return The experience.
*/
public double getExperience() {
return experience;
}
public int getItemId() {
return itemId;
}
/**
* Gets the bones for the bone meal.
* @param itemId the item.
* @return the bones.
*/
public static Bones forBoneMeal(int itemId) {
for (Bones bone : Bones.values()) {
if (bone.getBoneMeal().getId() == itemId) {
return bone;
}
}
return null;
}
/**
* Gets the config value for the bone.
* @param value the value.
* @param hopper hopper.
* @return {@code True} if so.
*/
public static Bones forConfigValue(int value, boolean hopper) {
for (Bones bone : Bones.values()) {
if (bone.getConfigValue(hopper) == value) {
return bone;
}
}
return null;
}
/**
* Gets the config value for the bone type.
* @param hopper the hopper.
* @return the value.
*/
public int getConfigValue(boolean hopper) {
return (this == BONES_2 ? ordinal() : ordinal() - 1) | (hopper ? 4 : 8) << 16;
}
/**
* Gets the bone ids.
* @return the ids.
*/
public static int[] getArray() {
List<Integer> list = new ArrayList<>(20);
for (int i : bones.keySet()) {
list.add(i);
}
int[] array = new int[list.size()];
for (int i = 0; i < list.size(); i++) {
array[i] = list.get(i);
}
return array;
}
/**
* Get the bone.
* @param itemId The item id.
* @return The bone.
*/
public static Bones forId(int itemId) {
return bones.get(itemId);
}
/**
* Construct the bones.
*/
static {
for (Bones bone : Bones.values()) {
bones.put(bone.itemId, bone);
}
}
}
@@ -0,0 +1,146 @@
package core.game.content.global
import core.game.content.global.Bones
import core.game.node.item.Item
import java.util.ArrayList
import java.util.HashMap
/**
* Represents the type of bones.
* @author Apache Ah64
*/
enum class Bones
/**
* Construct a new `Bones` `Object`.
* @param itemId The item id.
* @param experience The experience given by burying the bone.
*/(
/**
* The bone item id.
*/
val itemId: Int,
/**
* The experience given by burying the bone.
*/
val experience: Double) {
BONES(2530, 4.5),
BONES_2(526, 4.5),
WOLF_BONES(2859, 4.5),
BURNST_BONES(528, 4.5),
MONKEY_BONES(3183, 5.0),
MONKEY_BONES2(3179, 5.0),
BAT_BONES(530, 5.3),
BIG_BONES(532, 15.0),
JOGRE_BONES(3125, 15.0),
ZOGRE_BONES(4812, 12.5),
SHAIKAHAN_BONES(3123, 25.0),
BABY_DRAGON_BONES(534, 30.0),
WYVERN_BONES(6812, 50.0),
DRAGON_BONES(536, 72.0),
FAYRG(4830, 84.0),
RAURG_BONES(4832, 96.0),
DAGANNOTH(6729, 125.0),
OURG_BONES(4834, 140.0),
LAVA_DRAGON_BONES(14693, 85.0);
/**
* Get the bone experience given when you bury the bone.
* @return The experience.
*/
/**
* Gets the bone meal item.
* @return the item.
*/
val boneMeal: Item
get() {
return when(this){
FAYRG -> Item(4852)
RAURG_BONES -> Item(4853)
OURG_BONES -> Item(4854)
else -> Item(4255 + ordinal)
}
}
/**
* Gets the config value for the bone type.
* @param hopper the hopper.
* @return the value.
*/
fun getConfigValue(hopper: Boolean): Int {
return (if (this == BONES_2) ordinal else ordinal - 1) or (if (hopper) 4 else 8) shl 16
}
companion object {
/**
* Holds all bones.
*/
private val bones = HashMap<Int, Bones>()
/**
* Gets the bones for the bone meal.
* @param itemId the item.
* @return the bones.
*/
@JvmStatic
fun forBoneMeal(itemId: Int): Bones? {
for (bone in values()) {
if (bone.boneMeal.id == itemId) {
return bone
}
}
return null
}
/**
* Gets the config value for the bone.
* @param value the value.
* @param hopper hopper.
* @return `True` if so.
*/
@JvmStatic
fun forConfigValue(value: Int, hopper: Boolean): Bones? {
for (bone in values()) {
if (bone.getConfigValue(hopper) == value) {
return bone
}
}
return null
}
/**
* Gets the bone ids.
* @return the ids.
*/
val array: IntArray
@JvmStatic get() {
val list: MutableList<Int> = ArrayList(20)
for (i in bones.keys) {
list.add(i)
}
val array = IntArray(list.size)
for (i in list.indices) {
array[i] = list[i]
}
return array
}
/**
* Get the bone.
* @param itemId The item id.
* @return The bone.
*/
@JvmStatic
fun forId(itemId: Int): Bones? {
return bones[itemId]
}
/**
* Construct the bones.
*/
init {
for (bone in values()) {
bones[bone.itemId] = bone
}
}
}
}