Browse Source

Bitvector helper method added.

combat-2
MagicBot 9 months ago
parent
commit
1dac740fca
  1. 14
      src/engine/Enum.java
  2. 8
      src/engine/objects/ItemTemplate.java
  3. 1
      src/engine/util/MiscUtils.java

14
src/engine/Enum.java

@ -34,6 +34,20 @@ import java.util.concurrent.ThreadLocalRandom; @@ -34,6 +34,20 @@ import java.util.concurrent.ThreadLocalRandom;
public class Enum {
public static <E extends java.lang.Enum<E>> EnumSet<E> fromLong(long bitVector, Class<E> enumClass) {
// Bitvector -> EnumSet without the EnumBitvector dependency
EnumSet<E> enumSet = EnumSet.noneOf(enumClass);
for (E enumValue : enumClass.getEnumConstants()) {
if ((bitVector & (1L << enumValue.ordinal())) != 0) {
enumSet.add(enumValue);
}
}
return enumSet;
}
public enum PetitionType {
NONE,
GENERAL,

8
src/engine/objects/ItemTemplate.java

@ -129,6 +129,8 @@ public class ItemTemplate { @@ -129,6 +129,8 @@ public class ItemTemplate {
public final HashMap<String, int[]> rune_skill_adj = new HashMap<>();
public final EnumSet<Enum.MonsterType> rune_enemy_monster_types = EnumSet.noneOf(Enum.MonsterType.class);
public final EnumSet<Enum.MonsterType> rune_not_enemy_monster_types = EnumSet.noneOf(Enum.MonsterType.class);
public final EnumSet<Enum.MonsterType> rune_groupee_monster_types = EnumSet.noneOf(Enum.MonsterType.class);
public final EnumSet<Enum.MonsterType> rune_helper_monster_types = EnumSet.noneOf(Enum.MonsterType.class);
public ItemTemplate(JSONObject jsonObject) {
@ -511,6 +513,12 @@ public class ItemTemplate { @@ -511,6 +513,12 @@ public class ItemTemplate {
rune_not_enemy_monster_types.add(monsterType);
}
long rune_groupee_bitvector = ((Long) jsonObject.get("rune_groupee_monster_types")).intValue();
rune_groupee_monster_types.addAll(Enum.fromLong(rune_groupee_bitvector, Enum.MonsterType.class));
long rune_helper_bitvector = ((Long) jsonObject.get("rune_helper_monster_types")).intValue();
rune_helper_monster_types.addAll(Enum.fromLong(rune_helper_bitvector, Enum.MonsterType.class));
rune_renderable = ((Boolean) jsonObject.get("rune_renderable"));
rune_natural_power_attack = ((Long) jsonObject.get("rune_natural_power_attack")).intValue();

1
src/engine/util/MiscUtils.java

@ -35,4 +35,5 @@ public class MiscUtils { @@ -35,4 +35,5 @@ public class MiscUtils {
// empty last names are fine, return false
return false;
}
}

Loading…
Cancel
Save