/**
   * Generates a String for serialization that allows locate the ActionCallback
   *
   * @param cb The ActionCallback to serialize
   * @return The generated location string
   */
  public static String find(ActionCallback cb) {
    String id = null;

    if (cb == null) return null;

    // search in scene verbs
    Scene s = World.getInstance().getCurrentScene();

    id = find(cb, s);

    if (id != null) return id;

    id = find(cb, s.getPlayer());
    if (id != null) return id;

    // search in actors
    for (BaseActor a : s.getActors().values()) {
      if (!(a instanceof InteractiveActor)) continue;

      id = find(cb, (InteractiveActor) a);
      if (id != null) return id;
    }

    // search in worldVerbs
    for (Verb v : World.getInstance().getVerbManager().getVerbs().values()) {
      id = find(cb, v);
      if (id != null) {
        StringBuilder stringBuilder = new StringBuilder("DEFAULT_VERB");
        stringBuilder.append(SEPARATION_SYMBOL).append(id);

        return stringBuilder.toString();
      }
    }

    return null;
  }