<!---  Produced by FS2LSL (Flash Scratch to LSL),  John K. Bennett,  ATLAS Institute, University of Colorado at Boulder,  http://redwood.colorado.edu/jkb/fs2lsl/  -->
<program>
  <globvars>
    <stack x="10" y="5">
      <block spec="Declare Global Variables"/>
      <block spec="global comment: %s">
        <blockarg val="Listing 5.4: Dying Leaf"/>
      </block>
      <block spec="create global var: %g type: %m value: %t">
        <blockarg val="VACUUM_NAME"/>
        <blockarg val="string"/>
        <blockarg val="&quot;Roomba&quot;"/>
      </block>
    </stack>
  </globvars>
  <functions>
    <func>
      <stack x="14" y="106">
        <block funcSpec="void init()"/>
        <block spec="set status: %h to %u">
          <blockarg val="STATUS_PHYSICS"/>
          <blockarg val="TRUE"/>
        </block>
        <block spec="set status: %h to %u">
          <blockarg val="STATUS_DIE_AT_EDGE"/>
          <blockarg val="TRUE"/>
        </block>
        <block spec="comment: %s">
          <blockarg val="don't expect to be around a long time, so repeat sensor is OK"/>
        </block>
        <block spec="sense every %n secs object: %s key: %s type: %c range: %n arc: %s">
          <blockarg val="3"/>
          <block varName="VACUUM_NAME" varScope="global"/>
          <blockarg val="NULL_KEY"/>
          <blockarg val="ACTIVE"/>
          <blockarg val="1"/>
          <blockarg val="PI"/>
        </block>
        <block spec="set prim param: PRIM_TEMP_ON_REZ boolean: %u">
          <blockarg val="TRUE"/>
        </block>
      </stack>
    </func>
  </functions>
  <states>
    <state>
      <stacks>
        <stack x="19" y="290">
          <block spec="state %s">
            <blockarg val="default"/>
          </block>
          <block spec="when I enter this state"/>
          <block fCallSpec="init()" funcName="init" numArgs="0"/>
        </stack>
        <stack x="25" y="393">
          <block spec="when I am created"/>
          <block fCallSpec="init()" funcName="init" numArgs="0"/>
        </stack>
        <stack x="24" y="467">
          <block spec="when sensor triggers"/>
          <block spec="comment: %s">
            <blockarg val="as soon as Roomba is nearby, vanish"/>
          </block>
          <block spec="kill this object"/>
        </stack>
      </stacks>
    </state>
  </states>
</program>