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); }
@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); }
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); }
@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); } }