Program: 68919
Project: 68919
Buggy source:
/** 
 * If the entities have a move action in queue, and can move where they're wanting to, move 'em.
 * @param entity    The entity to process
 * @param deltaTime Time since last frame
 */
public void processEntity(Entity entity,float deltaTime){
  PositionComponent position=ComponentMappers.position.get(entity);
  VisualComponent visual=ComponentMappers.visual.get(entity);
  MovementComponent movement=ComponentMappers.movement.get(entity);
  AttributesComponent attributes=ComponentMappers.attributes.get(entity);
  if (movement.pos.x < position.pos.x) {
    visual.sprite.setFlip(true,false);
  }
 else {
    visual.sprite.setFlip(false,false);
  }
  if (!WorldManager.mapHelpers.isBlocked(WorldManager.world.currentMapIndex,movement.pos)) {
    position.pos=movement.pos;
  }
 else {
    if (ComponentMappers.player.has(entity)) {
      Entity thing=WorldManager.entityHelpers.getEntityAt(movement.pos);
      if (WorldManager.entityHelpers.isItem(thing)) {
        WorldManager.inventoryHelpers.addItem(WorldManager.player,thing);
        position.pos=movement.pos;
      }
 else       if (WorldManager.entityHelpers.isEnemy(thing)) {
        WorldManager.combatHelpers.preparePlayerForMelee(thing,"String_Node_Str");
      }
 else       if (WorldManager.entityHelpers.isExit(thing)) {
        WorldManager.world.currentMapIndex+=1;
        entity.remove(MouseMovementComponent.class);
        position.map=WorldManager.world.currentMapIndex;
        WorldManager.state=WorldManager.State.PLAYING;
      }
 else       if (WorldManager.entityHelpers.isEntrance(thing)) {
        WorldManager.world.currentMapIndex-=1;
        entity.remove(MouseMovementComponent.class);
        position.map=WorldManager.world.currentMapIndex;
        WorldManager.state=WorldManager.State.PLAYING;
      }
    }
  }
  attributes.energy-=MovementComponent.COST;
  entity.remove(MovementComponent.class);
}

Fixed version (ground truth):
/** 
 * If the entities have a move action in queue, and can move where they're wanting to, move 'em.
 * @param entity    The entity to process
 * @param deltaTime Time since last frame
 */
public void processEntity(Entity entity,float deltaTime){
  PositionComponent position=ComponentMappers.position.get(entity);
  VisualComponent visual=ComponentMappers.visual.get(entity);
  MovementComponent movement=ComponentMappers.movement.get(entity);
  AttributesComponent attributes=ComponentMappers.attributes.get(entity);
  if (movement.pos.x < position.pos.x) {
    visual.sprite.setFlip(true,false);
  }
 else {
    visual.sprite.setFlip(false,false);
  }
  if (!WorldManager.mapHelpers.isBlocked(WorldManager.world.currentMapIndex,movement.pos)) {
    position.pos=movement.pos;
  }
 else {
    if (ComponentMappers.player.has(entity)) {
      Entity thing=WorldManager.entityHelpers.getEntityAt(movement.pos);
      if (WorldManager.entityHelpers.isItem(thing)) {
        WorldManager.inventoryHelpers.addItem(WorldManager.player,thing);
        position.pos=movement.pos;
      }
 else       if (WorldManager.entityHelpers.isEnemy(thing)) {
        WorldManager.combatHelpers.preparePlayerForMelee(thing,"String_Node_Str");
      }
 else       if (WorldManager.entityHelpers.isExit(thing)) {
        WorldManager.world.currentMapIndex+=1;
        WorldManager.state=WorldManager.State.PLAYING;
        entity.remove(MouseMovementComponent.class);
        position.pos=WorldManager.mapHelpers.getEntrancePosition();
        position.map=WorldManager.world.currentMapIndex;
      }
 else       if (WorldManager.entityHelpers.isEntrance(thing)) {
        WorldManager.world.currentMapIndex-=1;
        WorldManager.state=WorldManager.State.PLAYING;
        entity.remove(MouseMovementComponent.class);
        position.pos=WorldManager.mapHelpers.getExitPosition();
        position.map=WorldManager.world.currentMapIndex;
      }
    }
  }
  attributes.energy-=MovementComponent.COST;
  entity.remove(MovementComponent.class);
}