/** * 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; }