<library>
  <textures>
    <texture name="rain">
      <file>/lib/std/raindrop.png</file>
    </texture>
    <texture name="sparky">
      <file>/lib/std/spark.png</file>
    </texture>
    <texture name="woody">
      <file>/lib/std/andrew_wood.gif</file>
    </texture>
  </textures>
  <materials>
    <material name="rain">
      <texture>rain</texture>
    </material>
    <material name="sparky">
      <texture>sparky</texture>
    </material>
    <material name="woody">
      <texture>woody</texture>
    </material>
  </materials>


<!-- the meshfact name is the CS name used to instantiate
     instances of this object -->
<meshfact name="test">

<!-- the plugin line specifies the plugin to use to parse
     the succeeding 'params' tag -->
<plugin>crystalspace.mesh.loader.factory.sprite.cal3d</plugin>

<params>
  <options rotate_x_axis="yes" flip_textures="no" />

  <!-- path specifies the OS-dependent directory path to
       where all the other files are located.  optional. -->
  <path dir="cally/" />

  <!-- the cally model is much to large. -->
  <scale value="0.01" />

  <!-- specify cal3d skeleton file used by model -->
  <skeleton file="cally.csf" />

  <!-- animations specify the filename to load, and the
       CS-accessible name of this anim.  The type attribute
       is used to distinguish various types of animations.
       Type 1 is a regular animation cycle with movement and
       type 4 is a one-time action.  It is a TODO to use
       words instead of numbers here base_vel specifies the
       speed of translation which should be used when the
       animation is playing alone.  min_vel and max_vel are
       used by the blender to achieve a specified desired
       velocity.  min_random and max are interval to be used
       in idle override actions, in seconds.  idle_pct is a
       number between 0 and 100, which is the % probability
       of that action being the override action.-->
  <animation
    file="cally_idle.caf"
    name="stand"
    type="idle"
    base_vel="0"
    min_vel="0"
    max_vel="0"
    min_random="10"
    max_random="30" />
  <animation
    file="cally_walk.caf"
    name="walk"
    type="travel"
    base_vel="2"
    min_vel="0"
    max_vel="3" />
  <animation
    file="cally_strut.caf"
    name="strut"
    type="travel"
    base_vel="2"
    min_vel="0"
    max_vel="3" />
  <animation
    file="cally_jog.caf"
    name="run"
    type="travel"
    base_vel="5"
    min_vel="2"
    max_vel="5" />
  <animation
    file="cally_wave.caf"
    name="greet"
    type="action"
    idle_pct="33" />
  <animation
    file="cally_tornado_kick.caf"
    name="hurt"
    type="action"
    idle_pct="33" />
  <animation
    file="cally_shoot_arrow.caf"
    name="shoot"
    type="action"
    idle_pct="34" />

  <!-- meshes specify each attachable part of the model.
       the name is the CS-accessible name which will be used
       to select/deselect it for the model.  the material
       specified is the default CS material used by this
       mesh.  -->
  <mesh file="cally_calf_left.cmf"
        name="cally_calf_left"
        material="rain" />
  <mesh file="cally_calf_right.cmf"
        name="cally_calf_right"
        material="rain" />
  <mesh file="cally_chest.cmf"
        name="cally_chest"
        material="sparky" />
  <mesh file="cally_foot_left.cmf"
        name="cally_foot_left"
        material="rain" />
  <mesh file="cally_foot_right.cmf"
        name="cally_foot_right"
        material="rain" />
  <mesh file="cally_hand_left.cmf"
        name="cally_hand_left"
        material="rain" />
  <mesh file="cally_hand_right.cmf"
        name="cally_hand_right"
        material="rain" />
  <mesh file="cally_head.cmf"
        name="cally_head"
        material="woody" />
  <mesh file="cally_lowerarm_left.cmf"
        name="cally_lowerarm_left"
        material="rain" />
  <mesh file="cally_lowerarm_right.cmf"
        name="cally_lowerarm_right"
        material="rain" />
  <mesh file="cally_neck.cmf"
        name="cally_neck"
        material="woody" />
  <mesh file="cally_pelvis.cmf"
        name="cally_pelvis"
        material="sparky" />
  <mesh file="cally_ponytail.cmf"
        name="cally_ponytail"
        material="woody" />
  <mesh file="cally_thigh_left.cmf"
        name="cally_thigh_left"
        material="sparky" />
  <mesh file="cally_thigh_right.cmf"
        name="cally_thigh_right"
        material="sparky" />
  <mesh file="cally_upperarm_left.cmf"
        name="cally_upperarm_left"
        material="sparky" />
  <mesh file="cally_upperarm_right.cmf"
        name="cally_upperarm_right"
        material="sparky" />

  <!-- the following rotates the model and all anims around
       the Y axis by 180 degrees.  any axis and angle maybe
       specified, and translation may also be specified. -->
  <hardtransform
    rot_axis_x="0"
    rot_axis_y="1"
    rot_axis_z="0"
    rot_angle="180" />
</params>
</meshfact>

</library>

