<world>
  <textures>
    <texture name="stone" >
      <file>/lib/std/stone4.gif</file>
    </texture>
    <texture name="spark" >
      <file>/lib/std/spark.png</file>
    </texture>
    <texture name="wood" >
      <file>/lib/stdtex/andrew_wood.jpg</file>
    </texture>
    <texture name="marble" >
      <file>/lib/stdtex/marble_08_ao___128.jpg</file>
    </texture>
  </textures>
  <materials>
    <material name="stone" >
      <texture>stone</texture>
    </material>
    <material name="spark" >
      <texture>spark</texture>
    </material>
    <material name="wood" >
      <texture>wood</texture>
    </material>
    <material name="marble" >
      <texture>marble</texture>
    </material>
  </materials>
<!--
    <sounds>
        <sound name="loopbzzt" mode3d="absolute"
      file="/this/sounds/outdoor/ambient/wind_flute_building_l_c.ogg" />
    </sounds>
    -->  <addon plugin="cel.addons.ruledef" >
    <priorities>
      <priority name="ring" />
      <priority name="potion" />
    </priorities>
    <rule expr="#strength*2" priority="potion" name="potion_strength" var="strength" />
    <rule expr="#strength+1" priority="ring" name="ring_strength" var="strength" />
  </addon>
  <sector name="room" >
    <addon plugin="cel.addons.questdef" >
      <quest name="proximityquest" >
        <state name="start" >
          <trigger type="trigger" >
            <fireon entity="box_small" />
            <reward type="debugprint" message="We are close!" />
            <reward type="sequence" entity="$this" sequence="movebox" />
            <reward type="newstate" state="second" />
          </trigger>
        </state>
        <state name="second" >
          <trigger type="trigger" >
            <fireon leave="true" entity="box_small" />
            <reward type="debugprint" message="We are far!" />
            <reward type="newstate" state="start" />
          </trigger>
        </state>
        <sequence name="movebox" >
          <op entity="box_small" type="transform" duration="2000" >
            <v x="0" y="0" z="2" />
            <roty angle="3.1415926" />
          </op>
        </sequence>
      </quest>
<!-- Parameters for this quest:
             $message: message to print
         $actor: entity containing the actor -->      <quest name="testquest" >
        <state name="init" >
          <trigger type="timeout" >
            <fireon timeout="1000" />
            <reward type="debugprint" message="$message" />
            <reward type="changeproperty" long="0" entity="$this" property="counter" />
            <reward type="changeproperty" long="5" entity="$this" property="countdown" />
            <reward type="sequence" entity="$this" sequence="test" />
            <reward type="newstate" state="sequencetest" />
          </trigger>
        </state>
        <state name="sequencetest" >
          <trigger type="sequencefinish" >
            <fireon entity="$this" sequence="test" />
            <reward type="debugprint" message="Sequence Finished!" />
            <reward type="newstate" state="countdown" />
          </trigger>
        </state>
        <state name="countdown" >
          <trigger type="timeout" >
            <fireon timeout="1000" />
            <reward type="debugprint" message="countdown" />
            <reward type="changeproperty" entity="$this" diff="-1" property="countdown" />
            <reward type="newstate" state="countdown" />
          </trigger>
          <trigger type="propertychange" >
            <fireon entity="$this" property="countdown" value="0" />
            <reward type="debugprint" message="Done!" />
            <reward type="newstate" state="start" />
          </trigger>
        </state>
        <state name="start" >
          <trigger type="meshentersector" >
            <fireon entity="$actor" sector="room0,1" />
            <reward type="debugprint" message="Go!" />
            <reward type="newstate" state="middle" />
          </trigger>
          <trigger type="propertychange" >
            <fireon entity="$this" property="counter" value="5" />
            <reward type="debugprint" message="We reached 5!" />
            <reward type="newstate" state="end" />
          </trigger>
        </state>
        <state name="middle" >
          <trigger type="meshentersector" >
            <fireon entity="$actor" sector="room" />
            <reward type="debugprint" message="And Back!" />
            <reward type="changeproperty" entity="$this" diff="1" property="counter" />
	    <reward type="newstate" state="start" />
          </trigger>
        </state>
        <state name="end" />
        <sequence name="test" >
          <op message="sequence" type="debugprint" duration="2000" />
        </sequence>
      </quest>
    </addon>
    <addon plugin="cel.addons.celentity" entityname="bla" >
      <propclass name="pcobject.mesh" >
        <action name="LoadMeshPath" >
          <par name="path" string="/cellib/objects" />
          <par name="filename" string="large" />
          <par name="factoryname" string="large" />
        </action>
        <action name="MoveMesh" >
          <par name="sector" string="room" />
          <par name="position" vector="5,2,5" />
        </action>
      </propclass>
      <propclass name="pcmove.linear" >
        <action name="InitCD" >
          <par name="body" vector="0.5,0.8,0.5" />
          <par name="legs" vector="0.5,0.4,0.5" />
          <par name="offset" vector="0,-0.4,0" />
        </action>
      </propclass>
    </addon>
    <addon plugin="cel.addons.celentitytpl" entityname="dummyTemplate" >
      <propclass name="pcmove.solid" />
      <propclass name="pcobject.mesh" >
        <action name="LoadMeshPath" >
          <par name="path" string="/cellib/objects" />
          <par name="filename" string="small" />
          <par name="factoryname" string="small" />
        </action>
      </propclass>
      <propclass name="pcmove.linear" >
        <action name="InitCDMesh" >
          <par name="percentage" float="10" />
        </action>
      </propclass>
      <behaviour layer="bltest" name="printer" />
    </addon>
    <addon plugin="cel.addons.celentity" entityname="dummy2a" template="dummyTemplate" >
      <propclass name="pcobject.mesh" >
        <action name="MoveMesh" >
          <par name="sector" string="room" />
          <par name="position" vector="-2,0,-1" />
        </action>
      </propclass>
    </addon>
    <addon plugin="cel.addons.celentity" entityname="dummy2b" template="dummyTemplate" >
      <propclass name="pcobject.mesh" >
        <action name="MoveMesh" >
          <par name="sector" string="room" />
          <par name="position" vector="-2.5,0,-1" />
        </action>
      </propclass>
    </addon>
    <addon plugin="cel.addons.celentity" entityname="dummy2c" template="dummyTemplate" >
      <propclass name="pcobject.mesh" >
        <action name="MoveMesh" >
          <par name="sector" string="room" />
          <par name="position" vector="-2,0,-1.5" />
        </action>
      </propclass>
    </addon>
    <addon plugin="cel.addons.celentity" entityname="dummy2d" template="dummyTemplate" >
      <propclass name="pcobject.mesh" >
        <action name="MoveMesh" >
          <par name="sector" string="room" />
          <par name="position" vector="-2.5,0,-1.5" />
        </action>
      </propclass>
    </addon>
    <addon plugin="cel.addons.celentity" entityname="dummy1" >
      <propclass name="pctools.timer" >
        <action name="WakeUp" >
          <par name="time" long="1000" />
          <par name="repeat" bool="true" />
        </action>
      </propclass>
      <propclass name="pcmove.solid" />
      <propclass name="pcobject.mesh" >
        <action name="LoadMeshPath" >
          <par name="path" string="/cellib/objects" />
          <par name="filename" string="large" />
          <par name="factoryname" string="large" />
        </action>
        <action name="MoveMesh" >
          <par name="sector" string="room" />
          <par name="position" vector="-2,0,1" />
        </action>
      </propclass>
      <propclass name="pcmove.linear" >
        <action name="InitCDMesh" >
          <par name="percentage" float="10" />
        </action>
      </propclass>
      <behaviour layer="bltest" name="printer" />
    </addon>
    <addon plugin="cel.addons.celentity" entityname="dummy3" >
      <propclass name="pcmove.solid" />
      <propclass name="pcobject.mesh" >
        <action name="LoadMeshPath" >
          <par name="path" string="/cellib/objects" />
          <par name="filename" string="large" />
          <par name="factoryname" string="large" />
        </action>
        <action name="MoveMesh" >
          <par name="sector" string="room" />
          <par name="position" vector="1,0,3" />
        </action>
      </propclass>
      <propclass name="pcmove.linear" >
        <action name="InitCDMesh" >
          <par name="percentage" float="10" />
        </action>
      </propclass>
      <behaviour layer="bltest" name="printer" />
    </addon>
    <addon plugin="cel.addons.celentity" entityname="dummy4" >
      <propclass name="pcmove.solid" />
      <propclass name="pcobject.mesh" >
        <action name="LoadMeshPath" >
          <par name="path" string="/cellib/objects" />
          <par name="filename" string="medium" />
          <par name="factoryname" string="medium" />
        </action>
        <action name="MoveMesh" >
          <par name="sector" string="room" />
          <par name="position" vector="0,0,-1.5" />
        </action>
      </propclass>
      <propclass name="pcmove.linear" >
        <action name="InitCDMesh" >
          <par name="percentage" float="10" />
        </action>
      </propclass>
      <behaviour layer="bltest" name="printer" />
    </addon>
    <addon plugin="cel.addons.celentity" entityname="dummy5" >
      <propclass name="pcmove.solid" />
      <propclass name="pcobject.mesh" >
        <action name="LoadMeshPath" >
          <par name="path" string="/cellib/objects" />
          <par name="filename" string="small" />
          <par name="factoryname" string="small" />
        </action>
        <action name="MoveMesh" >
          <par name="sector" string="room" />
          <par name="position" vector="-1,0,-2" />
        </action>
      </propclass>
      <propclass name="pcmove.linear" >
        <action name="InitCDMesh" >
          <par name="percentage" float="10" />
        </action>
      </propclass>
      <behaviour layer="bltest" name="printer" />
    </addon>
    <addon plugin="cel.addons.celentity" entityname="dummy6" >
      <propclass name="pcmove.solid" />
      <propclass name="pcobject.mesh" >
        <action name="LoadMeshPath" >
          <par name="path" string="/cellib/objects" />
          <par name="filename" string="medium" />
          <par name="factoryname" string="medium" />
        </action>
        <action name="MoveMesh" >
          <par name="sector" string="room" />
          <par name="position" vector="2.5,0,1.5" />
        </action>
      </propclass>
      <propclass name="pcmove.linear" >
        <action name="InitCDMesh" >
          <par name="percentage" float="10" />
        </action>
      </propclass>
      <behaviour layer="bltest" name="printer" />
    </addon>
    <addon plugin="cel.addons.celentity" entityname="box" >
      <propclass name="pcmove.solid" />
      <propclass name="pcobject.mesh.select" >
        <action name="SetCamera" >
          <par name="entity" string="camera" />
        </action>
        <action name="SetMouseButtons" >
          <par name="buttons" string="r" />
        </action>
      </propclass>
      <propclass name="pcmisc.test" >
        <action name="Print" >
          <par name="message" string="Hello world!" />
        </action>
      </propclass>
      <propclass name="pctools.timer" />
      <propclass name="pctools.inventory" />
      <propclass name="pcobject.mesh" >
        <action name="LoadMeshPath" >
          <par name="path" string="/cellib/objects" />
          <par name="filename" string="box" />
          <par name="factoryname" string="box" />
        </action>
        <action name="MoveMesh" >
          <par name="sector" string="room" />
          <par name="position" vector="0,0,2" />
        </action>
      </propclass>
      <propclass name="pcmove.linear" >
        <action name="InitCDMesh" >
          <par name="percentage" float="10" />
        </action>
      </propclass>
      <behaviour layer="bltest" name="box" />
    </addon>
    <addon plugin="cel.addons.celentity" entityname="box_small" >
      <propclass name="pcmove.solid" />
      <propclass name="pcobject.mesh.select" >
        <action name="SetCamera" >
          <par name="entity" string="camera" />
        </action>
        <action name="SetMouseButtons" >
          <par name="buttons" string="r" />
        </action>
      </propclass>
      <propclass name="pcmisc.test" >
        <action name="Print" >
          <par name="message" string="Hello world (small)!" />
        </action>
      </propclass>
      <propclass name="pctools.timer" />
      <propclass name="pctools.inventory" />
      <propclass name="pcobject.mesh" >
        <action name="LoadMeshPath" >
          <par name="path" string="/cellib/objects" />
          <par name="filename" string="smallbox" />
          <par name="factoryname" string="smallbox" />
        </action>
        <action name="MoveMesh" >
          <par name="sector" string="room" />
          <par name="position" vector="-4,0,0" />
        </action>
      </propclass>
      <propclass name="pcmove.linear" >
        <action name="InitCDMesh" >
          <par name="percentage" float="10" />
        </action>
      </propclass>
      <propclass name="pclogic.trigger" >
        <property string="camera" name="monitor" />
        <action name="SetupTriggerSphere" >
          <par name="sector" string="room" />
          <par name="position" vector="-4,0,0" />
          <par name="radius" float="2" />
        </action>
      </propclass>
      <behaviour layer="bltest" name="box" />
    </addon>
    <addon plugin="cel.addons.celentity" entityname="q1" >
      <propclass name="pclogic.quest" >
        <action name="NewQuest" >
          <par name="name" string="testquest" />
          <par name="message" string="Hallo Hallo!" />
          <par name="ent" string="q1" />
          <par name="actor" string="camera" />
        </action>
        <property string="init" name="state" />
      </propclass>
      <propclass name="pctools.properties" />
      <behaviour layer="bltest" name="quest" />
    </addon>
    <addon plugin="cel.addons.celentity" entityname="q2" >
      <propclass name="pclogic.quest" >
        <action name="NewQuest" >
          <par name="name" string="proximityquest" />
          <par name="ent" string="q2" />
        </action>
        <property string="start" name="state" />
      </propclass>
      <behaviour layer="bltest" name="quest" />
    </addon>
    <addon plugin="cel.addons.celentity" entityname="globalselectionentity" >
      <propclass name="pcobject.mesh.select" >
        <action name="SetCamera" >
          <par name="entity" string="camera" />
        </action>
        <action name="SetMouseButtons" >
          <par name="buttons" string="l" />
        </action>
        <action name="SetDragPlaneNormal" >
          <par name="normal" vector="0,1,0" />
          <par name="camera" bool="false" />
        </action>
        <property bool="true" name="global" />
        <property bool="false" name="follow" />
        <property bool="true" name="followalways" />
        <property bool="true" name="drag" />
        <property bool="true" name="sendmove" />
      </propclass>
    </addon>
    <addon plugin="cel.addons.celentity" entityname="rt" >
      <propclass name="pctools.properties" >
        <property float="3.4" name="strength" />
      </propclass>
      <propclass name="pclogic.rules" >
        <action name="AddRule" >
          <par name="name" string="potion_strength" />
          <par name="time" long="10000" />
        </action>
        <action name="AddRule" >
          <par name="name" string="ring_strength" />
        </action>
      </propclass>
    </addon>
    <addon plugin="cel.addons.xmlscripts" >
      <script name="bagtester_script" >
        <event name="init" >
          <default propclass="pc(pctools.bag)" />
          <print value="'red 1='+HasString{value='red'}" />
          <print value="'green 0='+HasString{value='green'}" />
          <print value="'blue 1='+HasString{value='blue'}" />
          <print value="'yellow 1='+HasString{value='yellow'}" />
          <print value="'brown 0='+HasString{value='brown'}" />
          <for bag="pc(pctools.bag)" var="contents" >
            <print value="?contents+' is in the bag!'" />
          </for>
        </event>
      </script>
    </addon>
    <addon plugin="cel.addons.celentity" entityname="bagtester" >
      <propclass name="pctools.bag" >
        <action name="AddString" >
          <par name="value" string="red" />
        </action>
        <action name="AddString" >
          <par name="value" string="green" />
        </action>
        <action name="AddString" >
          <par name="value" string="blue" />
        </action>
        <action name="AddString" >
          <par name="value" string="yellow" />
        </action>
        <action name="RemoveString" >
          <par name="value" string="green" />
        </action>
      </propclass>
      <behaviour layer="blxml" name="bagtester_script" />
    </addon>

    <addon plugin="cel.addons.questdef" >
      <quest name="message_source_quest" >
        <state name="start" >
          <trigger type="timeout" >
            <fireon timeout="5000" />
            <reward type="debugprint" message="### Send message" />
            <reward type="message" entity="$ent" id="cel.messagetest" >
	      <par name="testpar" long="=mousex()" />
	    </reward>
            <reward type="newstate" state="idle" />
          </trigger>
        </state>
        <state name="idle" />
      </quest>
    </addon>
    <addon plugin="cel.addons.celentity" entityname="message_source" >
      <propclass name="pclogic.quest" >
        <action name="NewQuest" >
          <par name="name" string="message_source_quest" />
          <par name="ent" string="message_dest" />
        </action>
        <property name="state" string="start" />
      </propclass>
    </addon>
    <addon plugin="cel.addons.questdef" >
      <quest name="message_dest_quest" >
        <state name="start" >
	  <oninit>
            <reward type="debugprint" message="We entered 'start' state" />
	  </oninit>
          <trigger type="message" >
            <fireon entity="$this" mask="cel.messagetest" />
            <reward type="debugprint" message="### Got message" />
            <reward type="debugprint" message="@testpar" />
            <reward type="debugprint" message="=entname()" />
            <reward type="debugprint" message="=if(@testpar<10,'left','right')" />
            <reward type="newstate" state="idle" />
          </trigger>
	  <onexit>
            <reward type="debugprint" message="We left 'start' state" />
	  </onexit>
        </state>
        <state name="idle" />
      </quest>
    </addon>
    <addon plugin="cel.addons.celentity" entityname="message_dest" >
      <propclass name="pclogic.quest" >
        <action name="NewQuest" >
          <par name="name" string="message_dest_quest" />
        </action>
        <property name="state" string="start" />
      </propclass>
    </addon>

<!--
        <addon plugin="cel.addons.celentity" entityname="aws" >
        <propclass name="pcawswindow">
            <action name="CreateSink">
            <par name="name" string="testButtonSink" />
        </action>
            <action name="RegisterTrigger">
            <par name="trigger" string="RedClicked" />
        </action>
            <action name="RegisterTrigger">
            <par name="trigger" string="BlueClicked" />
        </action>
            <action name="RegisterTrigger">
            <par name="trigger" string="GreenClicked" />
        </action>
            <action name="RegisterTrigger">
            <par name="trigger" string="SetUserName" />
        </action>
            <action name="RegisterTrigger">
            <par name="trigger" string="SetPassword" />
        </action>
            <action name="RegisterTrigger">
            <par name="trigger" string="Login" />
        </action>
            <action name="RegisterTrigger">
            <par name="trigger" string="FillListBox" />
        </action>
            <action name="RegisterTrigger">
            <par name="trigger" string="FillBarChart" />
        </action>
            <action name="LoadDefinitionFile">
            <par name="filename" string="/aws/awstest.def" />
        </action>
            <action name="SelectDefaultSkin">
            <par name="name" string="Normal Windows" />
        </action>
            <action name="CreateWindow">
            <par name="name" string="Layout Test" />
        </action>
            <action name="Show"/>
        </propclass>
    </addon>
--><!--
    <addon plugin="cel.addons.celentity" entityname="loopbzzt">
        <propclass name="pcsoundsource">
            <property name="soundname" string="loopbzzt" />
            <property name="volume" float="1" />
            <property name="position" vector="3,3,3" />
            <property name="maximumdistance" float="5" />
            <property name="loop" bool="true" />
            <action name="Unpause" />
        </propclass>
    </addon>
-->  </sector>
</world>
