Package skadistats.clarity.model

Source Code of skadistats.clarity.model.ModifierTableEntry

package skadistats.clarity.model;

import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

import javax.vecmath.Vector2f;
import javax.vecmath.Vector3f;

import com.dota2.proto.DotaModifiers.CDOTAModifierBuffTableEntry;

public class ModifierTableEntry {
  private Map<Integer, Object> data;
 
    public static final Map<String, Integer> fields;
      static {
          Map<String, Integer> new_fields = new HashMap<String, Integer>();
          new_fields.put("entry_type", 1);
          new_fields.put("parent", 2);
          new_fields.put("index", 3);
          new_fields.put("serial_num", 4);
          new_fields.put("modifier_class", 5);
          new_fields.put("ability_level", 6);
          new_fields.put("stack_count", 7);
          new_fields.put("creation_time", 8);
          new_fields.put("duration", 9);
          new_fields.put("caster", 10);
          new_fields.put("ability", 11);
          new_fields.put("armor", 12);
          new_fields.put("fade_time", 13);
          new_fields.put("channel_time", 14);
          new_fields.put("v_start", 15);
          new_fields.put("v_end", 16);
          new_fields.put("portal_loop_appear", 17);
          new_fields.put("portal_loop_disappear", 18);
          new_fields.put("hero_loop_appear", 19);
          new_fields.put("hero_loop_disappear", 20);
          new_fields.put("movement_speed", 21);
          new_fields.put("aura", 22);
          new_fields.put("activity", 23);
          new_fields.put("damage", 24);
          new_fields.put("range", 25);
          new_fields.put("dd_modifier_index", 26);
          new_fields.put("dd_ability_index", 27);
          fields = Collections.unmodifiableMap(new_fields);
      }
     
      public static final Map<Integer, String> fieldNames;
      static {
          Map<Integer, String> new_fieldNames = new HashMap<Integer, String>();
          for(Map.Entry<String, Integer> field : fields.entrySet())
            new_fieldNames.put(field.getValue(), field.getKey());
          fieldNames = Collections.unmodifiableMap(new_fieldNames);
      }
 
  public ModifierTableEntry(CDOTAModifierBuffTableEntry buffTableEntry){
   
    data = new HashMap<Integer, Object>();
    data.put(fields.get("entry_type"), buffTableEntry.getEntryType().getValueDescriptor().getName());
    data.put(fields.get("parent"), buffTableEntry.getParent());
    data.put(fields.get("index"), buffTableEntry.getIndex());
    data.put(fields.get("serial_num"), buffTableEntry.getSerialNum());
   
    if(buffTableEntry.hasModifierClass())
      data.put(fields.get("modifier_class"), buffTableEntry.getModifierClass());

    if(buffTableEntry.hasAbilityLevel())
      data.put(fields.get("ability_level"), buffTableEntry.getAbilityLevel());
   
    if(buffTableEntry.hasStackCount())
      data.put(fields.get("stack_count"), buffTableEntry.getStackCount());
   
    if(buffTableEntry.hasCreationTime())
      data.put(fields.get("creation_time"), buffTableEntry.getCreationTime());
   
    if(buffTableEntry.hasDuration())
      data.put(fields.get("duration"), buffTableEntry.getDuration());
   
    if(buffTableEntry.hasCaster())
      data.put(fields.get("caster"), buffTableEntry.getCaster());
   
    if(buffTableEntry.hasAbility())
      data.put(fields.get("ability"), buffTableEntry.getAbility());
   
    if(buffTableEntry.hasArmor())
      data.put(fields.get("armor"), buffTableEntry.getArmor());
   
    if(buffTableEntry.hasFadeTime())
      data.put(fields.get("fade_time"), buffTableEntry.getFadeTime());
   
    if(buffTableEntry.hasChannelTime())
      data.put(fields.get("channel_time"), buffTableEntry.getChannelTime());
   
    if(buffTableEntry.hasVStart()){
      if(buffTableEntry.getVStart().hasZ()){
        Vector3f vec = new Vector3f();
        vec.x = buffTableEntry.getVStart().getX();
        vec.y = buffTableEntry.getVStart().getY();
        vec.z = buffTableEntry.getVStart().getZ();
        data.put(fields.get("v_start"), vec);
      }
      else{
        if(!buffTableEntry.getVStart().hasX() || !buffTableEntry.getVStart().hasY())
          System.out.println("Buff field vector is missing components?");
       
        Vector2f vec = new Vector2f();
        vec.x = buffTableEntry.getVStart().getX();
        vec.y = buffTableEntry.getVStart().getY();
        data.put(fields.get("v_start"), vec);     
      }
    }
   
    if(buffTableEntry.hasVEnd()){
      if(buffTableEntry.getVStart().hasZ()){
        Vector3f vec = new Vector3f();
        vec.x = buffTableEntry.getVStart().getX();
        vec.y = buffTableEntry.getVStart().getY();
        vec.z = buffTableEntry.getVStart().getZ();
        data.put(fields.get("v_end"), vec);
      }
      else{
        if(!buffTableEntry.getVStart().hasX() || !buffTableEntry.getVStart().hasY())
          System.out.println("Buff field vector is missing components?");
       
        Vector2f vec = new Vector2f();
        vec.x = buffTableEntry.getVStart().getX();
        vec.y = buffTableEntry.getVStart().getY();
        data.put(fields.get("v_end"), vec);     
      }

    }

    if(buffTableEntry.hasPortalLoopAppear())
      data.put(fields.get("portal_loop_appear"), buffTableEntry.getPortalLoopAppear());
   
    if(buffTableEntry.hasPortalLoopDisappear())
      data.put(fields.get("portal_loop_disappear"), buffTableEntry.getPortalLoopDisappear());
   
    if(buffTableEntry.hasHeroLoopAppear())
      data.put(fields.get("hero_loop_appear"), buffTableEntry.getHeroLoopAppear());
   
    if(buffTableEntry.hasHeroLoopDisappear())
      data.put(fields.get("hero_loop_disappear"), buffTableEntry.getHeroLoopDisappear());
   
    if(buffTableEntry.hasMovementSpeed())
      data.put(fields.get("movement_speed"), buffTableEntry.getMovementSpeed());
   
    if(buffTableEntry.hasAura())
      data.put(fields.get("aura"), buffTableEntry.getAura());
   
    if(buffTableEntry.hasActivity())
      data.put(fields.get("activity"), buffTableEntry.getActivity());
   
    if(buffTableEntry.hasDamage())
      data.put(fields.get("damage"), buffTableEntry.getDamage());
   
    if(buffTableEntry.hasRange())
      data.put(fields.get("range"), buffTableEntry.getRange());
   
    if(buffTableEntry.hasDdModifierIndex())
      data.put(fields.get("dd_modifier_index"), buffTableEntry.getDdModifierIndex());
   
    if(buffTableEntry.hasDdAbilityIndex())
      data.put(fields.get("dd_ability_index"), buffTableEntry.getDdAbilityIndex());
  }
 
  public Object getField(String field){
    return data.get(fields.get(field));
  }
 
  public boolean hasField(String field){
    return data.containsKey(fields.get(field));
  }
 
  public String toString(){
    String result ="Modifier: [";
    Iterator<Map.Entry<Integer, Object>> it = data.entrySet().iterator();
    while(it.hasNext()){
      Map.Entry<Integer, Object> field = it.next();
      result += fieldNames.get(field.getKey())+": "+field.getValue().toString();
      if(it.hasNext())
        result += ", ";
    }
    result += "]";
    return result;
  }
}
TOP

Related Classes of skadistats.clarity.model.ModifierTableEntry

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.