Error parsing file
Ali-RS opened this issue · 2 comments
Ali-RS commented
Hi
Can i load array of values in text format ?
For attribute
@TaskAttribute(required = true)
public String[] animNames;
I am getting parsing error for this line
createSequence sequenceName:"walk_run" animNames:"walk","run"
com.badlogic.gdx.utils.SerializationException: Error parsing file: doha_animstate.btree
at com.badlogic.gdx.ai.btree.utils.BehaviorTreeReader.parse(BehaviorTreeReader.java:120) ~[gdx-ai-1.8.0.jar:?]
at com.badlogic.gdx.ai.btree.utils.BehaviorTreeParser.parse(BehaviorTreeParser.java:121) ~[gdx-ai-1.8.0.jar:?]
at com.badlogic.gdx.ai.btree.utils.BehaviorTreeLibrary.retrieveArchetypeTree(BehaviorTreeLibrary.java:130) ~[gdx-ai-1.8.0.jar:?]
at com.badlogic.gdx.ai.btree.utils.BehaviorTreeLibrary.createBehaviorTree(BehaviorTreeLibrary.java:111) ~[gdx-ai-1.8.0.jar:?]
at com.badlogic.gdx.ai.btree.utils.BehaviorTreeLibraryManager.createBehaviorTree(BehaviorTreeLibraryManager.java:81) ~[gdx-ai-1.8.0.jar:?]
at com.overthemoon.app.state.view.MonkanimState$AnimStateMachineContainer.addObject(MonkanimState.java:140) ~[main/:?]
at com.overthemoon.app.state.view.MonkanimState$AnimStateMachineContainer.addObject(MonkanimState.java:117) ~[main/:?]
at com.simsilica.es.EntityContainer.addObjects(EntityContainer.java:156) ~[sio2-1.0.3-SNAPSHOT.jar:?]
at com.simsilica.es.EntityContainer.update(EntityContainer.java:200) ~[sio2-1.0.3-SNAPSHOT.jar:?]
at com.overthemoon.app.state.view.MonkanimState.update(MonkanimState.java:70) ~[main/:?]
at com.jme3.app.state.AppStateManager.update(AppStateManager.java:287) ~[jme3-core-3.2.0-SNAPSHOT.jar:3.2-1]
at com.jme3.app.SimpleApplication.update(SimpleApplication.java:236) ~[jme3-core-3.2.0-SNAPSHOT.jar:3.2-1]
at com.jme3.system.lwjgl.LwjglWindow.runLoop(LwjglWindow.java:403) ~[jme3-lwjgl3-3.2.0-SNAPSHOT.jar:3.2.0-UNKNOWN]
at com.jme3.system.lwjgl.LwjglWindow.run(LwjglWindow.java:486) ~[jme3-lwjgl3-3.2.0-SNAPSHOT.jar:3.2.0-UNKNOWN]
at com.jme3.system.lwjgl.LwjglWindow.create(LwjglWindow.java:324) ~[jme3-lwjgl3-3.2.0-SNAPSHOT.jar:3.2.0-UNKNOWN]
at com.jme3.app.LegacyApplication.start(LegacyApplication.java:463) ~[jme3-core-3.2.0-SNAPSHOT.jar:3.2-1]
at com.jme3.app.LegacyApplication.start(LegacyApplication.java:424) ~[jme3-core-3.2.0-SNAPSHOT.jar:3.2-1]
at com.jme3.app.SimpleApplication.start(SimpleApplication.java:125) ~[jme3-core-3.2.0-SNAPSHOT.jar:3.2-1]
at example.Main.main(Main.java:111) ~[main/:?]
Caused by: com.badlogic.gdx.utils.SerializationException: Error parsing behavior tree on line 13 near: sequenceName:"walk_run" animNames:"walk","run"
transition from:"walk_run" to:"idle"
when state:"idle"
interrupt from:"idle" to:"walk_run"
when state:"walk_run"
startWith state:"idle"
dynamicGuardSelector
(startManager?) $startManager
(isCurrentStateEqualsTo? states:"walk_run") $blendWithSpeed
at com.badlogic.gdx.ai.btree.utils.BehaviorTreeReader.parse(BehaviorTreeReader.java:541) ~[gdx-ai-1.8.0.jar:?]
at com.badlogic.gdx.ai.btree.utils.BehaviorTreeParser$DefaultBehaviorTreeReader.parse(BehaviorTreeParser.java:323) ~[gdx-ai-1.8.0.jar:?]
at com.badlogic.gdx.ai.btree.utils.BehaviorTreeReader.parse(BehaviorTreeReader.java:92) ~[gdx-ai-1.8.0.jar:?]
at com.badlogic.gdx.ai.btree.utils.BehaviorTreeReader.parse(BehaviorTreeReader.java:118) ~[gdx-ai-1.8.0.jar:?]
... 18 more
What is the proper way to load it ?
Thanks in advance
davebaol commented
Arrays are not supported, sorry.
But you can use a string with comma-separated value, for instance.
Then the first time the start
method is executed you parse the string and set the corresponding instance array.
Your example would become something like that
createSequence sequenceName:"walk_run" animNames:"walk,run"
Ali-RS commented
No problem.
I will use comma-separated string as you said.
Thanks