@SuppressWarnings("unchecked") public <T> T getProperty(String property) { FieldPath fp = dtClass.getFieldPathForName(property); if (fp == null) { throw new IllegalArgumentException(String.format("property %s not found on entity of class %s", property, getDtClass().getDtName())); } return getPropertyForFieldPath(fp); }
@SuppressWarnings("unchecked") public <T> T getProperty(String property) { FieldPath fp = dtClass.getFieldPathForName(property); if (fp == null) { throw new IllegalArgumentException(String.format("property %s not found on entity of class %s", property, getDtClass().getDtName())); } return getPropertyForFieldPath(fp); }
@OnEntityCreated public void onCreated(Entity e) { if (!isHero(e)) { return; } ensureFieldPaths(e); System.out.format("%s (%s/%s)\n", e.getDtClass().getDtName(), e.getPropertyForFieldPath(mana), e.getPropertyForFieldPath(maxMana)); }
@Override public V resolveValue(int index, int team, int pos) { String fieldPathString = pattern .replaceAll("%i", Util.arrayIdxToString(index)) .replaceAll("%t", Util.arrayIdxToString(team)) .replaceAll("%p", Util.arrayIdxToString(pos)); String compiledName = entityName.replaceAll("%n", getTeamName(team)); Entity entity = getEntity(compiledName); FieldPath fieldPath = entity.getDtClass().getFieldPathForName(fieldPathString); return entity.getPropertyForFieldPath(fieldPath); } }
public <T> T getEntityProperty(Entity e, String property, Integer idx) { try { if (e == null) { return null; } if (idx != null) { property = property.replace("%i", Util.arrayIdxToString(idx)); } FieldPath fp = e.getDtClass().getFieldPathForName(property); return e.getPropertyForFieldPath(fp); } catch (Exception ex) { return null; } }
@OnEntityUpdated public void onUpdated(Entity e, FieldPath[] updatedPaths, int updateCount) { if (!isHero(e)) { return; } ensureFieldPaths(e); boolean update = false; for (int i = 0; i < updateCount; i++) { if (updatedPaths[i].equals(mana) || updatedPaths[i].equals(maxMana)) { update = true; break; } } if (update) { System.out.format("%s (%s/%s)\n", e.getDtClass().getDtName(), e.getPropertyForFieldPath(mana), e.getPropertyForFieldPath(maxMana)); } }
@OnEntityCreated public void onCreated(Entity e) { FieldPath fp = e.getDtClass().getFieldPathForName("CBodyComponent.m_hModel"); if (fp == null) { return; } Long resourceHandle = e.getPropertyForFieldPath(fp); if (resourceHandle == null || resourceHandle == 0L) { return; } Resources.Entry entry = resources.getEntryForResourceHandle(resourceHandle); System.out.format("model for entity at %d (%d): %s\n", e.getIndex(), resourceHandle, entry); }
@OnEntityPropertyChanged(classPattern = "CDOTA_Unit_Hero_.*", propertyPattern = "m_lifeState") public void onEntityPropertyChanged(Context ctx, Entity e, FieldPath fp) { System.out.format( "%6d %s: %s = %s\n", ctx.getTick(), e.getDtClass().getDtName(), e.getDtClass().getNameForFieldPath(fp), e.getPropertyForFieldPath(fp) ); }
private void processLifeStateChange(Entity e, FieldPath p) { int oldState = currentLifeState.containsKey(e.getIndex()) ? currentLifeState.get(e.getIndex()) : 2; int newState = e.getPropertyForFieldPath(p); if (oldState != newState) { currentLifeState.put(e.getIndex(), newState); switch(newState) { case 0: if (evSpawned != null) { evSpawned.raise(e); } break; case 1: if (evDying != null) { evDying.raise(e); } break; case 2: if (evDied != null) { evDied.raise(e); } break; } } }
public void processLifeStateChange(Entity e, FieldPath p) { int oldState = currentLifeState.containsKey(e.getIndex()) ? currentLifeState.get(e.getIndex()) : 2; int newState = e.getPropertyForFieldPath(p); if (oldState != newState) { switch(newState) { case 0: if (evPlaced != null) { evPlaced.raise(e); } break; case 1: String killer; if ((killer = wardKillersByWardClass.get(getWardTargetName(e.getDtClass().getDtName())).poll()) != null) { if (evKilled != null) { evKilled.raise(e, killer); } } else { if (evExpired != null) { evExpired.raise(e); } } break; } } currentLifeState.put(e.getIndex(), newState); }