static L ai_activeRules() { time "ai_activeRules" { LS unparsedRules = ai_unparsedTalkRules(); for (S listName : mL("Rule & Fact Lists")) for (S x : splitAtEmptyLines(mL_raw(listName))) if (anyJavaTokens(x)) if (nlLogic_parseRule(x) != null) unparsedRules.add(x); unparsedRules = sortedByCalculatedField(unparsedRules, func(S s) { jcontains(s, "entity(") }); L rules = map_pcall nlLogic_parseRule(unparsedRules); for (S listName : mL("Default active scripts")) addAll(rules, nlLogic_loadMechScript(listName)); nlLogic_expandMacros(rules); } ret rules; }