Compare commits
2
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
765cb9edb6 | ||
|
|
4765e7993f |
No files matched your search
@@ -10,6 +10,7 @@ package engine.objects;
|
||||
|
||||
import engine.math.Vector3fImmutable;
|
||||
import engine.mbEnums;
|
||||
import engine.parsers.objects.CObjectTemplate;
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONObject;
|
||||
import org.pmw.tinylog.Logger;
|
||||
@@ -157,6 +158,9 @@ public class ItemTemplate {
|
||||
public final ArrayList<Integer> rune_helper_monster_types = new ArrayList<>();
|
||||
public int item_bane_rank;
|
||||
|
||||
// Cache JSON counterpart, so consumers can move to the new templates one field at a time.
|
||||
public CObjectTemplate cacheTemplate;
|
||||
|
||||
public ItemTemplate(JSONObject jsonObject) {
|
||||
|
||||
try {
|
||||
@@ -646,4 +650,22 @@ public class ItemTemplate {
|
||||
}
|
||||
}
|
||||
|
||||
// Run after CObjectIndex.build(); the DB templates load before the cache parsers.
|
||||
|
||||
public static void linkCacheTemplates() {
|
||||
|
||||
int missingCount = 0;
|
||||
|
||||
for (ItemTemplate template : templates.values()) {
|
||||
template.cacheTemplate = CObjectTemplate.lookup(template.template_id);
|
||||
|
||||
if (template.cacheTemplate == null) {
|
||||
missingCount++;
|
||||
Logger.warn(template.template_id + ": " + template.obj_name + " has no cache template");
|
||||
}
|
||||
}
|
||||
|
||||
Logger.info("Linked " + (templates.size() - missingCount) + " of " + templates.size() + " item templates to cache templates");
|
||||
}
|
||||
|
||||
}
|
||||
+16
@@ -13,6 +13,7 @@ import engine.gameManager.DbManager;
|
||||
import engine.mbEnums;
|
||||
import engine.objects.AbstractGameObject;
|
||||
import engine.objects.BaseClass;
|
||||
import engine.objects.ItemTemplate;
|
||||
import engine.parsers.objects.RuneTemplate;
|
||||
import org.pmw.tinylog.Logger;
|
||||
|
||||
@@ -36,6 +37,7 @@ public class ParityCheck {
|
||||
|
||||
static {
|
||||
register("static_rune_baseclass", ParityCheck::compareBaseClasses);
|
||||
register("static_item_templates", ParityCheck::compareItemTemplates);
|
||||
}
|
||||
|
||||
private ParityCheck(String table) {
|
||||
@@ -115,4 +117,18 @@ public class ParityCheck {
|
||||
check.compareField(baseClass.getObjectUUID(), "name", baseClass.getName(), rune.obj_name);
|
||||
}
|
||||
}
|
||||
|
||||
// A wrong item_type means the bridge picked the wrong folder for an id found in more than one.
|
||||
|
||||
private static void compareItemTemplates(ParityCheck check) {
|
||||
|
||||
for (ItemTemplate template : ItemTemplate.templates.values()) {
|
||||
|
||||
if (!check.compareRow(template.template_id, template.cacheTemplate))
|
||||
continue;
|
||||
|
||||
check.compareField(template.template_id, "obj_name", template.obj_name, template.cacheTemplate.getObjName());
|
||||
check.compareField(template.template_id, "item_type", template.item_type, template.cacheTemplate.getItemType());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -8,8 +8,92 @@
|
||||
|
||||
package engine.parsers.objects;
|
||||
|
||||
import engine.math.Vector3fImmutable;
|
||||
import engine.mbEnums;
|
||||
import engine.parsers.cache.CObjectIndex;
|
||||
import org.json.JSONArray;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.EnumMap;
|
||||
import java.util.EnumSet;
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedHashMap;
|
||||
|
||||
// Common type for ITEM, DEED and RUNE cache templates, which share one id space.
|
||||
// Shared obj_/combat_/item_ getters arrive with JSON-Refactor-Plan Task 1.1.
|
||||
// Getters cover only the obj_/combat_/item_ fields all three define (JSON-Refactor-Plan D1).
|
||||
// Returned collections are the template's own; never modify them.
|
||||
|
||||
public interface CObjectTemplate {
|
||||
|
||||
static CObjectTemplate lookup(int templateId) {
|
||||
return CObjectIndex.lookup(templateId);
|
||||
}
|
||||
|
||||
int getTemplateId();
|
||||
String getObjName();
|
||||
boolean getObjPickable();
|
||||
float getObjGravity();
|
||||
float getObjCullDistance();
|
||||
Vector3fImmutable getObjScale();
|
||||
int getObjRenderObject();
|
||||
boolean getObjDoubleFusion();
|
||||
Vector3fImmutable getObjForwardVector();
|
||||
String getObjTrackingName();
|
||||
float getObjMaxTrackingDistance();
|
||||
int getObjIcon();
|
||||
float getObjGravityF();
|
||||
LinkedHashMap<String, Integer> getObjSoundEvents();
|
||||
JSONArray getObjArcHardpointList();
|
||||
HashMap<String, String> getObjSparseData();
|
||||
int getObjRenderObjectLowDetail();
|
||||
Vector3fImmutable getObjDefaultAlignment();
|
||||
String getObjSoundTable();
|
||||
|
||||
float getCombatHealthCurrent();
|
||||
float getCombatHealthFull();
|
||||
EnumMap<mbEnums.DamageType, Float> getCombatAttackResist();
|
||||
JSONArray getCombatPowers();
|
||||
|
||||
mbEnums.ItemType getItemType();
|
||||
int getItemEqSlotsValue();
|
||||
boolean getItemEqSlotsType();
|
||||
EnumSet<mbEnums.EquipSlotType> getItemEqSlotsOr();
|
||||
EnumSet<mbEnums.EquipSlotType> getItemEqSlotsAnd();
|
||||
boolean getItemTakeable();
|
||||
int getItemValue();
|
||||
int getItemWt();
|
||||
float getItemPassiveDefenseMod();
|
||||
String getItemBaseName();
|
||||
String getItemDsc();
|
||||
int getItemRenderObjectFemale();
|
||||
float getItemHealthFull();
|
||||
String getItemSkillUsed();
|
||||
String getItemSkillMasteryUsed();
|
||||
int getItemParryAnimId();
|
||||
EnumMap<mbEnums.ShrineType, Integer> getItemOfferingInfo();
|
||||
EnumSet<mbEnums.ItemFlags> getItemFlags();
|
||||
EnumSet<mbEnums.ItemUseFlags> getItemUseFlags();
|
||||
int getItemPostItemId();
|
||||
int getItemInitialCharges();
|
||||
int getItemBookArcana();
|
||||
LinkedHashMap<String, Integer> getItemSkillReq();
|
||||
boolean getItemRaceReqRestrict();
|
||||
EnumSet<mbEnums.MonsterType> getItemRaceReq();
|
||||
boolean getItemClassReqRestrict();
|
||||
EnumSet<mbEnums.ClassType> getItemClassReq();
|
||||
boolean getItemDiscReqRestrict();
|
||||
EnumSet<mbEnums.DisciplineType> getItemDiscReq();
|
||||
EnumMap<mbEnums.AttributeType, Integer> getItemAttrReq();
|
||||
int getItemLevelReq();
|
||||
int getItemRankReq();
|
||||
mbEnums.SexType getItemSexReq();
|
||||
ArrayList<UserPowerAction> getItemUserPowerAction();
|
||||
ArrayList<PowerGrant> getItemPowerGrant();
|
||||
LinkedHashMap<String, ArrayList<int[]>> getItemPowerAction();
|
||||
boolean getItemSheathable();
|
||||
boolean getItemHasStub();
|
||||
EnumMap<mbEnums.ShrineType, Integer> getItemOfferingAdjustments();
|
||||
EnumMap<mbEnums.ResourceType, Integer> getItemResourceCosts();
|
||||
int getItemBaneRank();
|
||||
boolean getItemIgnoreSavedActions();
|
||||
}
|
||||
@@ -119,4 +119,329 @@ public class DeedTemplate implements CObjectTemplate {
|
||||
public float deed_namelookup_val;
|
||||
public boolean deed_custom_city;
|
||||
public int deed_structure_id;
|
||||
|
||||
@Override
|
||||
public int getTemplateId() {
|
||||
return template_id;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getObjName() {
|
||||
return obj_name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getObjPickable() {
|
||||
return obj_pickable;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getObjGravity() {
|
||||
return obj_gravity;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getObjCullDistance() {
|
||||
return obj_cull_distance;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Vector3fImmutable getObjScale() {
|
||||
return obj_scale;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getObjRenderObject() {
|
||||
return obj_render_object;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getObjDoubleFusion() {
|
||||
return obj_double_fusion;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Vector3fImmutable getObjForwardVector() {
|
||||
return obj_forward_vector;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getObjTrackingName() {
|
||||
return obj_tracking_name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getObjMaxTrackingDistance() {
|
||||
return obj_max_tracking_distance;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getObjIcon() {
|
||||
return obj_icon;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getObjGravityF() {
|
||||
return obj_gravity_f;
|
||||
}
|
||||
|
||||
@Override
|
||||
public LinkedHashMap<String, Integer> getObjSoundEvents() {
|
||||
return obj_sound_events;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONArray getObjArcHardpointList() {
|
||||
return obj_arc_hardpoint_list;
|
||||
}
|
||||
|
||||
@Override
|
||||
public HashMap<String, String> getObjSparseData() {
|
||||
return obj_sparse_data;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getObjRenderObjectLowDetail() {
|
||||
return obj_render_object_low_detail;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Vector3fImmutable getObjDefaultAlignment() {
|
||||
return obj_default_alignment;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getObjSoundTable() {
|
||||
return obj_sound_table;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getCombatHealthCurrent() {
|
||||
return combat_health_current;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getCombatHealthFull() {
|
||||
return combat_health_full;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumMap<mbEnums.DamageType, Float> getCombatAttackResist() {
|
||||
return combat_attack_resist;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONArray getCombatPowers() {
|
||||
return combat_powers;
|
||||
}
|
||||
|
||||
@Override
|
||||
public mbEnums.ItemType getItemType() {
|
||||
return item_type;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemEqSlotsValue() {
|
||||
return item_eq_slots_value;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getItemEqSlotsType() {
|
||||
return item_eq_slots_type;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumSet<mbEnums.EquipSlotType> getItemEqSlotsOr() {
|
||||
return item_eq_slots_or;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumSet<mbEnums.EquipSlotType> getItemEqSlotsAnd() {
|
||||
return item_eq_slots_and;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getItemTakeable() {
|
||||
return item_takeable;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemValue() {
|
||||
return item_value;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemWt() {
|
||||
return item_wt;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getItemPassiveDefenseMod() {
|
||||
return item_passive_defense_mod;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getItemBaseName() {
|
||||
return item_base_name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getItemDsc() {
|
||||
return item_dsc;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemRenderObjectFemale() {
|
||||
return item_render_object_female;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getItemHealthFull() {
|
||||
return item_health_full;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getItemSkillUsed() {
|
||||
return item_skill_used;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getItemSkillMasteryUsed() {
|
||||
return item_skill_mastery_used;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemParryAnimId() {
|
||||
return item_parry_anim_id;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumMap<mbEnums.ShrineType, Integer> getItemOfferingInfo() {
|
||||
return item_offering_info;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumSet<mbEnums.ItemFlags> getItemFlags() {
|
||||
return item_flags;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumSet<mbEnums.ItemUseFlags> getItemUseFlags() {
|
||||
return item_use_flags;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemPostItemId() {
|
||||
return item_post_item_id;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemInitialCharges() {
|
||||
return item_initial_charges;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemBookArcana() {
|
||||
return item_book_arcana;
|
||||
}
|
||||
|
||||
@Override
|
||||
public LinkedHashMap<String, Integer> getItemSkillReq() {
|
||||
return item_skill_req;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getItemRaceReqRestrict() {
|
||||
return item_race_req_restrict;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumSet<mbEnums.MonsterType> getItemRaceReq() {
|
||||
return item_race_req;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getItemClassReqRestrict() {
|
||||
return item_class_req_restrict;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumSet<mbEnums.ClassType> getItemClassReq() {
|
||||
return item_class_req;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getItemDiscReqRestrict() {
|
||||
return item_disc_req_restrict;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumSet<mbEnums.DisciplineType> getItemDiscReq() {
|
||||
return item_disc_req;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumMap<mbEnums.AttributeType, Integer> getItemAttrReq() {
|
||||
return item_attr_req;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemLevelReq() {
|
||||
return item_level_req;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemRankReq() {
|
||||
return item_rank_req;
|
||||
}
|
||||
|
||||
@Override
|
||||
public mbEnums.SexType getItemSexReq() {
|
||||
return item_sex_req;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ArrayList<UserPowerAction> getItemUserPowerAction() {
|
||||
return item_user_power_action;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ArrayList<PowerGrant> getItemPowerGrant() {
|
||||
return item_power_grant;
|
||||
}
|
||||
|
||||
@Override
|
||||
public LinkedHashMap<String, ArrayList<int[]>> getItemPowerAction() {
|
||||
return item_power_action;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getItemSheathable() {
|
||||
return item_sheathable;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getItemHasStub() {
|
||||
return item_has_stub;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumMap<mbEnums.ShrineType, Integer> getItemOfferingAdjustments() {
|
||||
return item_offering_adjustments;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumMap<mbEnums.ResourceType, Integer> getItemResourceCosts() {
|
||||
return item_resource_costs;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemBaneRank() {
|
||||
return item_bane_rank;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getItemIgnoreSavedActions() {
|
||||
return item_ignore_saved_actions;
|
||||
}
|
||||
}
|
||||
@@ -138,6 +138,331 @@ public class ItemTemplate implements CObjectTemplate {
|
||||
public int item_bane_rank;
|
||||
public boolean item_ignore_saved_actions;
|
||||
|
||||
@Override
|
||||
public int getTemplateId() {
|
||||
return template_id;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getObjName() {
|
||||
return obj_name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getObjPickable() {
|
||||
return obj_pickable;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getObjGravity() {
|
||||
return obj_gravity;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getObjCullDistance() {
|
||||
return obj_cull_distance;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Vector3fImmutable getObjScale() {
|
||||
return obj_scale;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getObjRenderObject() {
|
||||
return obj_render_object;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getObjDoubleFusion() {
|
||||
return obj_double_fusion;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Vector3fImmutable getObjForwardVector() {
|
||||
return obj_forward_vector;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getObjTrackingName() {
|
||||
return obj_tracking_name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getObjMaxTrackingDistance() {
|
||||
return obj_max_tracking_distance;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getObjIcon() {
|
||||
return obj_icon;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getObjGravityF() {
|
||||
return obj_gravity_f;
|
||||
}
|
||||
|
||||
@Override
|
||||
public LinkedHashMap<String, Integer> getObjSoundEvents() {
|
||||
return obj_sound_events;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONArray getObjArcHardpointList() {
|
||||
return obj_arc_hardpoint_list;
|
||||
}
|
||||
|
||||
@Override
|
||||
public HashMap<String, String> getObjSparseData() {
|
||||
return obj_sparse_data;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getObjRenderObjectLowDetail() {
|
||||
return obj_render_object_low_detail;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Vector3fImmutable getObjDefaultAlignment() {
|
||||
return obj_default_alignment;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getObjSoundTable() {
|
||||
return obj_sound_table;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getCombatHealthCurrent() {
|
||||
return combat_health_current;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getCombatHealthFull() {
|
||||
return combat_health_full;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumMap<mbEnums.DamageType, Float> getCombatAttackResist() {
|
||||
return combat_attack_resist;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONArray getCombatPowers() {
|
||||
return combat_powers;
|
||||
}
|
||||
|
||||
@Override
|
||||
public mbEnums.ItemType getItemType() {
|
||||
return item_type;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemEqSlotsValue() {
|
||||
return item_eq_slots_value;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getItemEqSlotsType() {
|
||||
return item_eq_slots_type;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumSet<mbEnums.EquipSlotType> getItemEqSlotsOr() {
|
||||
return item_eq_slots_or;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumSet<mbEnums.EquipSlotType> getItemEqSlotsAnd() {
|
||||
return item_eq_slots_and;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getItemTakeable() {
|
||||
return item_takeable;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemValue() {
|
||||
return item_value;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemWt() {
|
||||
return item_wt;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getItemPassiveDefenseMod() {
|
||||
return item_passive_defense_mod;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getItemBaseName() {
|
||||
return item_base_name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getItemDsc() {
|
||||
return item_dsc;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemRenderObjectFemale() {
|
||||
return item_render_object_female;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getItemHealthFull() {
|
||||
return item_health_full;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getItemSkillUsed() {
|
||||
return item_skill_used;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getItemSkillMasteryUsed() {
|
||||
return item_skill_mastery_used;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemParryAnimId() {
|
||||
return item_parry_anim_id;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumMap<mbEnums.ShrineType, Integer> getItemOfferingInfo() {
|
||||
return item_offering_info;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumSet<mbEnums.ItemFlags> getItemFlags() {
|
||||
return item_flags;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumSet<mbEnums.ItemUseFlags> getItemUseFlags() {
|
||||
return item_use_flags;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemPostItemId() {
|
||||
return item_post_item_id;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemInitialCharges() {
|
||||
return item_initial_charges;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemBookArcana() {
|
||||
return item_book_arcana;
|
||||
}
|
||||
|
||||
@Override
|
||||
public LinkedHashMap<String, Integer> getItemSkillReq() {
|
||||
return item_skill_req;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getItemRaceReqRestrict() {
|
||||
return item_race_req_restrict;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumSet<mbEnums.MonsterType> getItemRaceReq() {
|
||||
return item_race_req;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getItemClassReqRestrict() {
|
||||
return item_class_req_restrict;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumSet<mbEnums.ClassType> getItemClassReq() {
|
||||
return item_class_req;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getItemDiscReqRestrict() {
|
||||
return item_disc_req_restrict;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumSet<mbEnums.DisciplineType> getItemDiscReq() {
|
||||
return item_disc_req;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumMap<mbEnums.AttributeType, Integer> getItemAttrReq() {
|
||||
return item_attr_req;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemLevelReq() {
|
||||
return item_level_req;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemRankReq() {
|
||||
return item_rank_req;
|
||||
}
|
||||
|
||||
@Override
|
||||
public mbEnums.SexType getItemSexReq() {
|
||||
return item_sex_req;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ArrayList<UserPowerAction> getItemUserPowerAction() {
|
||||
return item_user_power_action;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ArrayList<PowerGrant> getItemPowerGrant() {
|
||||
return item_power_grant;
|
||||
}
|
||||
|
||||
@Override
|
||||
public LinkedHashMap<String, ArrayList<int[]>> getItemPowerAction() {
|
||||
return item_power_action;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getItemSheathable() {
|
||||
return item_sheathable;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getItemHasStub() {
|
||||
return item_has_stub;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumMap<mbEnums.ShrineType, Integer> getItemOfferingAdjustments() {
|
||||
return item_offering_adjustments;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumMap<mbEnums.ResourceType, Integer> getItemResourceCosts() {
|
||||
return item_resource_costs;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemBaneRank() {
|
||||
return item_bane_rank;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getItemIgnoreSavedActions() {
|
||||
return item_ignore_saved_actions;
|
||||
}
|
||||
|
||||
// item_weapon (ArcAttackInfo_LoadWeapon, sb.exe 0x61FA60).
|
||||
|
||||
public static class Weapon {
|
||||
|
||||
@@ -191,6 +191,331 @@ public class RuneTemplate implements CObjectTemplate {
|
||||
public int rune_natural_power_attack;
|
||||
public final HashMap<String, String> rune_sparse_data = new HashMap<>();
|
||||
|
||||
@Override
|
||||
public int getTemplateId() {
|
||||
return template_id;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getObjName() {
|
||||
return obj_name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getObjPickable() {
|
||||
return obj_pickable;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getObjGravity() {
|
||||
return obj_gravity;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getObjCullDistance() {
|
||||
return obj_cull_distance;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Vector3fImmutable getObjScale() {
|
||||
return obj_scale;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getObjRenderObject() {
|
||||
return obj_render_object;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getObjDoubleFusion() {
|
||||
return obj_double_fusion;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Vector3fImmutable getObjForwardVector() {
|
||||
return obj_forward_vector;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getObjTrackingName() {
|
||||
return obj_tracking_name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getObjMaxTrackingDistance() {
|
||||
return obj_max_tracking_distance;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getObjIcon() {
|
||||
return obj_icon;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getObjGravityF() {
|
||||
return obj_gravity_f;
|
||||
}
|
||||
|
||||
@Override
|
||||
public LinkedHashMap<String, Integer> getObjSoundEvents() {
|
||||
return obj_sound_events;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONArray getObjArcHardpointList() {
|
||||
return obj_arc_hardpoint_list;
|
||||
}
|
||||
|
||||
@Override
|
||||
public HashMap<String, String> getObjSparseData() {
|
||||
return obj_sparse_data;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getObjRenderObjectLowDetail() {
|
||||
return obj_render_object_low_detail;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Vector3fImmutable getObjDefaultAlignment() {
|
||||
return obj_default_alignment;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getObjSoundTable() {
|
||||
return obj_sound_table;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getCombatHealthCurrent() {
|
||||
return combat_health_current;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getCombatHealthFull() {
|
||||
return combat_health_full;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumMap<mbEnums.DamageType, Float> getCombatAttackResist() {
|
||||
return combat_attack_resist;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONArray getCombatPowers() {
|
||||
return combat_powers;
|
||||
}
|
||||
|
||||
@Override
|
||||
public mbEnums.ItemType getItemType() {
|
||||
return item_type;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemEqSlotsValue() {
|
||||
return item_eq_slots_value;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getItemEqSlotsType() {
|
||||
return item_eq_slots_type;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumSet<mbEnums.EquipSlotType> getItemEqSlotsOr() {
|
||||
return item_eq_slots_or;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumSet<mbEnums.EquipSlotType> getItemEqSlotsAnd() {
|
||||
return item_eq_slots_and;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getItemTakeable() {
|
||||
return item_takeable;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemValue() {
|
||||
return item_value;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemWt() {
|
||||
return item_wt;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getItemPassiveDefenseMod() {
|
||||
return item_passive_defense_mod;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getItemBaseName() {
|
||||
return item_base_name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getItemDsc() {
|
||||
return item_dsc;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemRenderObjectFemale() {
|
||||
return item_render_object_female;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getItemHealthFull() {
|
||||
return item_health_full;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getItemSkillUsed() {
|
||||
return item_skill_used;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getItemSkillMasteryUsed() {
|
||||
return item_skill_mastery_used;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemParryAnimId() {
|
||||
return item_parry_anim_id;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumMap<mbEnums.ShrineType, Integer> getItemOfferingInfo() {
|
||||
return item_offering_info;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumSet<mbEnums.ItemFlags> getItemFlags() {
|
||||
return item_flags;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumSet<mbEnums.ItemUseFlags> getItemUseFlags() {
|
||||
return item_use_flags;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemPostItemId() {
|
||||
return item_post_item_id;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemInitialCharges() {
|
||||
return item_initial_charges;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemBookArcana() {
|
||||
return item_book_arcana;
|
||||
}
|
||||
|
||||
@Override
|
||||
public LinkedHashMap<String, Integer> getItemSkillReq() {
|
||||
return item_skill_req;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getItemRaceReqRestrict() {
|
||||
return item_race_req_restrict;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumSet<mbEnums.MonsterType> getItemRaceReq() {
|
||||
return item_race_req;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getItemClassReqRestrict() {
|
||||
return item_class_req_restrict;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumSet<mbEnums.ClassType> getItemClassReq() {
|
||||
return item_class_req;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getItemDiscReqRestrict() {
|
||||
return item_disc_req_restrict;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumSet<mbEnums.DisciplineType> getItemDiscReq() {
|
||||
return item_disc_req;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumMap<mbEnums.AttributeType, Integer> getItemAttrReq() {
|
||||
return item_attr_req;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemLevelReq() {
|
||||
return item_level_req;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemRankReq() {
|
||||
return item_rank_req;
|
||||
}
|
||||
|
||||
@Override
|
||||
public mbEnums.SexType getItemSexReq() {
|
||||
return item_sex_req;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ArrayList<UserPowerAction> getItemUserPowerAction() {
|
||||
return item_user_power_action;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ArrayList<PowerGrant> getItemPowerGrant() {
|
||||
return item_power_grant;
|
||||
}
|
||||
|
||||
@Override
|
||||
public LinkedHashMap<String, ArrayList<int[]>> getItemPowerAction() {
|
||||
return item_power_action;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getItemSheathable() {
|
||||
return item_sheathable;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getItemHasStub() {
|
||||
return item_has_stub;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumMap<mbEnums.ShrineType, Integer> getItemOfferingAdjustments() {
|
||||
return item_offering_adjustments;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumMap<mbEnums.ResourceType, Integer> getItemResourceCosts() {
|
||||
return item_resource_costs;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemBaneRank() {
|
||||
return item_bane_rank;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getItemIgnoreSavedActions() {
|
||||
return item_ignore_saved_actions;
|
||||
}
|
||||
|
||||
// One entry of rune_skill_grant; same layout as PowerGrant.
|
||||
// skill_monster_types is empty in every RUNE file, so it is kept as raw JSON.
|
||||
|
||||
|
||||
@@ -318,6 +318,9 @@ public class LoginServer {
|
||||
Logger.info("Indexing Cache Templates");
|
||||
CObjectIndex.build();
|
||||
|
||||
Logger.info("Linking Item Templates to Cache Templates");
|
||||
ItemTemplate.linkCacheTemplates();
|
||||
|
||||
Logger.info("Initializing Network");
|
||||
Network.init();
|
||||
|
||||
|
||||
@@ -338,6 +338,9 @@ public class WorldServer {
|
||||
Logger.info("Indexing Cache Templates");
|
||||
CObjectIndex.build();
|
||||
|
||||
Logger.info("Linking Item Templates to Cache Templates");
|
||||
ItemTemplate.linkCacheTemplates();
|
||||
|
||||
Logger.info("Loading PromotionClasses");
|
||||
DbManager.PromotionQueries.GET_ALL_PROMOTIONS();
|
||||
|
||||
|
||||
Reference in new issue
Block a user