Artificial Intelligence framework for games based on libGDX or not. Features: Steering Behaviors, Formation Motion, Pathfinding, Behavior Trees and Finite State Machines
It's not possible to use inner classes in btree file (parser does not allow '$' character used for separating class names).
Reproduction steps/code
Create a public static inner class.
Use full name instead of import in btree file.
com.badlogic.gdx.utils.SerializationException: Error parsing behavior tree on line 3 near: $Inner
OuterClass.java:
package test;
import com.badlogic.gdx.ai.btree.leaf.Success;
public class OuterClass {
public static class Inner<E> extends Success<E> {}
}
mytree.btree:
root
selector
test.OuterClass$Inner
Version of gdx-ai and/or relevant dependencies
1.8.1
Stacktrace
com.badlogic.gdx.utils.SerializationException: Error parsing behavior tree on line 3 near: $Inner
at com.badlogic.gdx.ai.btree.utils.BehaviorTreeReader.parse(BehaviorTreeReader.java:541)
at com.badlogic.gdx.ai.btree.utils.BehaviorTreeParser$DefaultBehaviorTreeReader.parse(BehaviorTreeParser.java:326)
at com.badlogic.gdx.ai.btree.utils.BehaviorTreeReader.parse(BehaviorTreeReader.java:92)
at com.badlogic.gdx.ai.btree.utils.BehaviorTreeReader.parse(BehaviorTreeReader.java:118)
Issue details
It's not possible to use inner classes in btree file (parser does not allow '$' character used for separating class names).
Reproduction steps/code
com.badlogic.gdx.utils.SerializationException
: Error parsing behavior tree on line 3 near: $InnerOuterClass.java:
mytree.btree:
Version of gdx-ai and/or relevant dependencies
1.8.1
Stacktrace