Overhauled PyGameMakerAction
Overhauled PyGameMakerAction

Action initialization was becoming more complicated, so the structures
 holding action parameter information were also becoming more
 complicated. Instead of using a map of actions to default parameters,
 the action information is now initialized with inline YAML strings. The
 data encoded now also includes the expected type for each parameter
 (int, float, bool) for run-time checking. There is also a from_list
 type, that will limit the possible values to those placed in an
 accepted_list entry in the YAML data for the parameter. Common
 parameters have been distilled into a common YAML string section that
 other parameters can refer to, to save space.
There is now a method get_parameter_expression_result(), which, when
 given a parameter name, a symbol table, and a handle to the language
 engine, will check the parameter's value for a string starting with
 '='. If the '=' is found, the value will be interpreted as an
 expression to be passed through to the language engine, and the result
 from the expression will be returned. Without the '=', the parameter's
 value will be returned unchanged.

rlc2/pygame_maker,rlc2/pygame_maker