<?xml version="1.0" encoding="UTF-8"?>
<otrunk id="13d3fb4f-123a-425f-9d60-d84e145c0678">
  <imports>
    <import class="org.concord.otrunk.OTSystem" />
    <import class="org.concord.otrunk.OTIncludeRootObject" />
    <import class="org.concord.otrunk.biologica.OTOrganismPlacement" />
    <import class="org.concord.otrunk.biologica.OTEnvironment" />
    <import class="org.concord.otrunk.biologica.environment.OTEnvironmentHolder" />
    <import class="org.concord.otrunk.biologica.OTOrganism" />
    <import class="org.concord.otrunk.biologica.OTWorld" />
    <import class="org.concord.otrunk.biologica.rules.OTRule"/>
    <import class="org.concord.otrunk.biologica.rules.OTRuleCondition"/>
    <import class="org.concord.otrunk.biologica.rules.OTRuleConsequence"/>
    <import class="org.concord.otrunk.view.OTViewEntry" />
    <import class="org.concord.otrunk.view.OTViewBundle" />
    <import class="org.concord.otrunk.view.document.OTCompoundDoc" />
    <import class="org.concord.otrunk.script.ui.OTScriptObject" />
    <import class="org.concord.otrunk.script.js.OTJavascript" />
    <import class="org.concord.otrunk.script.OTScriptEngineBundle" />
    <import class="org.concord.otrunk.script.OTScriptEngineEntry" />
    <import class="org.concord.otrunk.script.ui.OTScriptVariable" />
    <import class="org.concord.otrunk.script.ui.OTScriptVariableComponent" />
    <import class="org.concord.otrunk.script.ui.OTScriptVariableView" />
    <import class="org.concord.otrunk.script.ui.OTScriptVariableRealObject" />
    <import class="org.concord.otrunk.script.ui.OTScriptButton" />
    <import class="org.concord.framework.otrunk.view.OTFrame" />
  </imports>

  <objects>
    <OTSystem>

      <bundles>
        <OTViewBundle showLeftPanel="false">
          <viewEntries>
          	<OTViewEntry
              objectClass="org.concord.otrunk.OTIncludeRootObject"
              viewClass="org.concord.otrunk.OTIncludeRootObjectView" />
            <OTViewEntry
              objectClass="org.concord.otrunk.biologica.OTEnvironment"
              viewClass="org.concord.otrunk.biologica.ui.OTEnvironmentView" />
            <OTViewEntry
              objectClass="org.concord.otrunk.script.ui.OTScriptObject"
              viewClass="org.concord.otrunk.script.ui.OTScriptObjectView" />
            <OTViewEntry
              objectClass="org.concord.otrunk.view.document.OTDocument"
              viewClass="org.concord.otrunk.view.document.OTDocumentView" />
            <OTViewEntry 
          	objectClass="org.concord.otrunk.script.ui.OTScriptButton" 
          	viewClass="org.concord.otrunk.script.ui.OTScriptButtonView"/>
          	<OTViewEntry 
          	objectClass="org.concord.otrunk.biologica.environment.OTEnvironmentHolder" 
          	viewClass="org.concord.otrunk.biologica.environment.OTEnvironmentHolderView"/>
          </viewEntries>
          <frame>
            <OTFrame useScrollPane="false" width="640" height="590" />
          </frame>
        </OTViewBundle>
        <OTScriptEngineBundle>
          <engines>
            <OTScriptEngineEntry
              objectClass="org.concord.otrunk.script.js.OTJavascript"
              engineClass="org.concord.otrunk.script.js.OTJavascriptEngine" />
          </engines>
        </OTScriptEngineBundle>
      </bundles>

      <root>
        <OTCompoundDoc name="Population">
          <bodyText>
          
            <table >
              <tr height="400">
	              <td>
	              	<object refid="${env_holder}" />
	              </td>
              </tr>
            </table>
          
          		<object refid="${setup-script}"/>
            </bodyText>
          <documentRefs>
          	<OTEnvironmentHolder local_id="env_holder" 
          			width="550" height="400" toolbar="environment waterer (auto)">
                <environment>
		            <OTEnvironment local_id="environment" world="${peasimple_world}" 
		            	environmentWidth="1" environmentHeight="1" 
		            	width="1" height="1" 
		            	orgSizeMultiplier="30"
		            	showRunButton="false">
		            	<rules>
		            		<OTRule>
		          				<conditions>
		          					<OTRuleCondition always="true"/>
		          				</conditions>
		          				<consequences>
		          					<OTRuleConsequence property="Food Consumption Rate" newValueFloat="0"/>
		          				</consequences>
		          			</OTRule>
		            		<OTRule>
		          				<conditions>
		          					<OTRuleCondition always="true"/>
		          				</conditions>
		          				<consequences>
		          					<OTRuleConsequence property="is immortal" newValueString="true"/>
		          				</consequences>
		          			</OTRule>
		          			<OTRule>
		          				<conditions>
		          					<OTRuleCondition property="water" isForEnvironment="true" maxValue="0.59"/>
		          				</conditions>
		          				<consequences>
		          					<OTRuleConsequence property="hydration" newValueFloat="0"/>
		          				</consequences>
		          			</OTRule>
		          			<OTRule>
		          				<conditions>
		          					<OTRuleCondition property="water" isForEnvironment="true" minValue="0.591" maxValue="0.61"/>
		          				</conditions>
		          				<consequences>
		          					<OTRuleConsequence property="hydration" newValueFloat="1"/>
		          				</consequences>
		          			</OTRule>
		          			<OTRule>
		          				<conditions>
		          					<OTRuleCondition property="water" isForEnvironment="true" minValue="0.611"/>
		          				</conditions>
		          				<consequences>
		          					<OTRuleConsequence property="hydration" newValueFloat="2"/>
		          				</consequences>
		          			</OTRule>
		          			<OTRule isForEnvironment="true">
		          				<conditions>
		          					<OTRuleCondition always="true"/>
		          				</conditions>
		          				<consequences>
		          					<OTRuleConsequence property="water" ruleScript="return water - 0.02">
		          						<propertyVariables>
		          							<string>water</string>
		          						</propertyVariables>
		          					</OTRuleConsequence>
		          				</consequences>
		          			</OTRule>
		          		</rules>
		            </OTEnvironment>
            	</environment>
            </OTEnvironmentHolder>

            <!-- World definition -->
            <OTWorld
              speciesPath="org/concord/biologica/worlds/peasimple.xml"
              local_id="peasimple_world" />
              <OTScriptObject local_id="setup-script">
              		<script>
              			<OTJavascript src="scripts/single-plant-watering/setup.js"/>
              		</script>
              		<variables>
              			<OTScriptVariableRealObject name="env" reference="${environment}"/>
              		</variables>
              </OTScriptObject>
          </documentRefs>
        </OTCompoundDoc>

      </root>

    </OTSystem>
  </objects>
</otrunk>