public static void moveEnemyTo(Entity entity, Vector2 destination) {
    if (!EntityUtil.isEnemy(entity)) {
      return;
    }

    Body body = EntityUtil.getComponent(entity, Physics.class).getBody();
    destination.y = body.getPosition().y;

    moveTo(entity, destination);
  }
Exemple #2
0
  @Test
  public void testInSameEntityGroup() {
    Entity ancestor = new Entity("foo");
    ds.put(ancestor);

    Entity e1 = new Entity("bar", ancestor.getKey());
    ds.put(e1);

    Entity e2 = new Entity("baz", "Bob", e1.getKey());
    Entity e3 = new Entity("foo");
    ds.put(Lists.newArrayList(e2, e3));

    assertTrue(EntityUtil.inSameEntityGroup(ancestor, e1, e2));
    assertFalse(EntityUtil.inSameEntityGroup(ancestor, e1, e2, e3));
  }
 public static boolean hasArrived(Entity entity) {
   EnemyMovement enemyMovement = EntityUtil.getComponent(entity, EnemyMovement.class);
   Vector2 intent = enemyMovement.getIntent().cpy();
   Vector2 position = PhysicsUtil.getPosition(entity);
   intent.y = position.y;
   return position.epsilonEquals(intent, Constants.GAME.EPSILON);
 }
Exemple #4
0
 private void addEntity(final String name, InputStream in, String entityType, boolean reload)
     throws JAXBException {
   if (entityMapping.containsKey(entityType)) {
     Class<?> type = entityMapping.get(entityType);
     Object obj = EntityUtil.unmarshaller(type, in);
     addEntity(name, obj, reload);
   }
 }
  public static void chase(Entity chaser, Entity target, boolean isHorizontal) {
    Body targetBody = EntityUtil.getComponent(target, Physics.class).getBody();

    if (isHorizontal) {
      moveEnemyTo(chaser, targetBody.getPosition());
    } else {
      moveTo(chaser, targetBody.getPosition());
    }
  }
 public static void drag(Entity enemy, Vector2 target, float force, int duration) {
   EnemyMovement movement = EntityUtil.getComponent(enemy, EnemyMovement.class);
   if (movement != null) {
     movement.setDraggedTo(target);
     movement.setDragForce(force);
     movement.setDragDuration(duration);
     movement.setStartDrag(TimeUtil.getGameTime());
     movement.setDraggedFrom(PhysicsUtil.getPosition(enemy));
   }
 }
 public static void use(Entity entity, String name) {
   Ability abilityComponent = EntityUtil.getComponent(entity, Ability.class);
   if (abilityComponent == null) {
     return;
   }
   AbilityInfo ability = abilityComponent.getAbility(name);
   if (ability == null) {
     return;
   }
   ability.getAbility().cast(entity);
   ability.setLastCast(TimeUtil.getGameTime());
 }
 public static boolean isAvailable(Entity entity, String name) {
   Ability abilityComponent = EntityUtil.getComponent(entity, Ability.class);
   if (abilityComponent == null) {
     return false;
   }
   AbilityInfo ability = abilityComponent.getAbility(name);
   if (ability == null) {
     return false;
   }
   long lastCast = ability.getLastCast();
   return lastCast == -1 || (TimeUtil.getGameTime() - lastCast > ability.getCooldown());
 }
  public static void moveTo(Entity entity, Vector2 destination) {
    Physics physicsComponent = EntityUtil.getComponent(entity, Physics.class);
    Body body = physicsComponent.getBody();
    float mass = body.getMass();
    Vector2 currentVelocity = body.getLinearVelocity();
    Vector2 position = body.getPosition();

    Vector2 desiredVelocity =
        destination.cpy().sub(position).nor().scl(physicsComponent.getMaxSpeed());

    Vector2 impulse = desiredVelocity.sub(currentVelocity).scl(mass);

    PhysicsUtil.applyImpulse(entity, impulse);
  }
Exemple #10
0
  @SuppressWarnings(value = {"unchecked"})
  private static Object getRuleFeature(
      HasRuleValues hasRuleValues,
      AssociationRule associationRule,
      PMMLObject element,
      OutputField.RuleFeature ruleFeature) {

    switch (ruleFeature) {
      case ANTECEDENT:
        return getItemValues(hasRuleValues, associationRule.getAntecedent());
      case CONSEQUENT:
        return getItemValues(hasRuleValues, associationRule.getConsequent());
      case RULE:
        {
          Joiner joiner = Joiner.on(',');

          StringBuilder sb = new StringBuilder();

          String left = joiner.join(getItemValues(hasRuleValues, associationRule.getAntecedent()));
          sb.append('{').append(left).append('}');

          sb.append("->");

          String right = joiner.join(getItemValues(hasRuleValues, associationRule.getConsequent()));
          sb.append('{').append(right).append('}');

          return sb.toString();
        }
      case RULE_ID:
        {
          HasEntityRegistry<AssociationRule> hasEntityRegistry =
              (HasEntityRegistry<AssociationRule>) hasRuleValues;

          return EntityUtil.getId(associationRule, hasEntityRegistry);
        }
      case CONFIDENCE:
        return associationRule.getConfidence();
      case SUPPORT:
        return associationRule.getSupport();
      case LIFT:
        return associationRule.getLift();
      case LEVERAGE:
        return associationRule.getLeverage();
      case AFFINITY:
        return associationRule.getAffinity();
      default:
        throw new UnsupportedFeatureException(element, ruleFeature);
    }
  }
 public static void setTarget(Entity enemy, Vector2 target) {
   EnemyMovement movement = EntityUtil.getComponent(enemy, EnemyMovement.class);
   if (movement != null) {
     movement.setIntent(target);
   }
 }