Enhancements include a actually interface so you don't have to do tags and stuff by hand. Think I'm gonna enhance the hieracry a little bit instead of having a ton of states running around I'll group them, you can have multiple groups in a file but basically instead of reading 1 file and getting 20 states you get 1 manageable group of 20 states and can all be contained in the same FiniteSMGroup and I'll make a com.jme.scene.state so you can attach it to geometry and add listeners. Also instead of actually putting in (FiniteSMState).getOutputState(String "stimulan") there might be an event listener system. So this way it'll do all the getOutputState for you but what good is that if it doesn't do anything. I'm tryring to think of a good way to link outputStates,and Events so when both are active at the same time somethign happends, so lets look at this example
<state name="state_calm">
<pair input="gunFired" output="mad" />
<pair input="gunPointed" output="annoyed" />
</state>
<state name="state_annoyed" />
<pair input="gunFired" output="mad" />
<pair input="calmingDownLiquid" output="calm" />
</state>
Mouse button is clicked which sends input "gunFired" which would return output"mad" which would activate a set of stuff. Like Animations,Change the Pathfinding(which we don't have.....yet) to move away from character,change voice outputs,speed all that fun stuff. I might have to do something like the com.jme.renderer.pass system. States are suppose to define all this stuff but the way it's set up now it won't. I've seen structures where there was this...
<struct>
int alert; // Alert status of enemies //
struct Positionshot; // Position of last shot fired //
int shotTime; // Game cycle last shot was fired //
int hostage; // Hostage rescued //
int explosives; // Explosives set or not //
int tank; // Tank destroyed //
int dialogue; // Dialogue variable //
int complete; // Mission completed //
struct Positionpos; // Map position //
int screenX, screenY; // Screen position //
int animDir, animAction, animNum; // Animation information, action and animation frame number //
int rank; // Rank //
int health; // Health //
int num; // Number of unit //
int group; // Group number //
int style; // Style of unit (elf, human) //
struct AnimationObject animObj; // Animation object for complex animations //
</struct>
pretty impressive. You can see where this is useful output "getMad" activates animation info and stuff. I'll think more on this