<?xml version="1.0" encoding="utf-8" standalone="no"?>
<vehicle xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" type="handToolRoller" xsi:noNamespaceSchemaLocation="https://validation.gdn.giants-software.com/xml/fs25/vehicle.xsd">
    <annotation>Copyright (C) GIANTS Software GmbH, All Rights Reserved.</annotation>
    <storeData>
        <name>
            <en>Manual Roller</en>
			<de>Handwalze</de>
			<fr>Rouleau Manuel</fr>
			<it>Rullo Manuale</it>
		</name>
        <specs>
            <workingWidth>1.2</workingWidth>
            <maxSpeed>8</maxSpeed>
        </specs>
        <functions>
            <function>$l10n_function_roller</function>
        </functions>
        <image>store_handroller.dds</image>
        <price>150</price>
        <lifetime>600</lifetime>
        <rotation>0</rotation>
        <brand>LIZARD</brand>
        <category>grasslandCare</category>
        <vertexBufferMemoryUsage>86784</vertexBufferMemoryUsage>
        <indexBufferMemoryUsage>25344</indexBufferMemoryUsage>
        <textureMemoryUsage>1572864</textureMemoryUsage>
        <audioMemoryUsage>0</audioMemoryUsage>
        <instanceVertexBufferMemoryUsage>0</instanceVertexBufferMemoryUsage>
        <instanceIndexBufferMemoryUsage>0</instanceIndexBufferMemoryUsage>
    </storeData>

    <base>
        <typeDesc>$l10n_typeDesc_roller</typeDesc>
        <filename>handroller.i3d</filename>
        <size width="1.3" height="1" length="0.5"/>
		<speedLimit value="8" />
        <components>
            <component centerOfMass="0 0.33 -0.5" solverIterationCount="10" mass="70"/>
        </components>
        <schemaOverlay attacherJointPosition="0.5 0" name="HANDROLLER"/>
        <mapHotspot type="TRACTOR"/>
    </base>

    <wheels>
        <wheelConfigurations>
            <wheelConfiguration name="$l10n_configuration_valueDefault" price="0" brand="LIZARD" saveId="LIZARD_DEFAULT">
                <wheels autoRotateBackSpeed="4" isCareWheelConfiguration="true">
                    <wheel isLeft="false" hasTireTracks="false" hasParticles="false" >
                        <physics radius="0.3" width="0.2" rotSpeed="0" restLoad="0.1" repr="ruotaDx" useReprDirection="true" forcePointRatio="0.3" initialCompression="25" suspTravel="0.12" spring="36" damper="30" frictionScale="2" showSteeringAngle="false"/>
                    </wheel>
                    <wheel isLeft="true" hasTireTracks="false" hasParticles="false" >
                        <physics radius="0.3" width="0.2" rotSpeed="0" restLoad="0.1" repr="ruotaSx" useReprDirection="true" forcePointRatio="0.3" initialCompression="25" suspTravel="0.12" spring="36" damper="30" frictionScale="2" showSteeringAngle="false"/>
                    </wheel>
					<wheel isLeft="true" hasTireTracks="false" hasParticles="false" >
                        <physics radius="0.3" width="0.2" rotSpeed="1" restLoad="0.1" repr="ruotaPosSx" useReprDirection="true" forcePointRatio="0.3" initialCompression="25" suspTravel="0.12" spring="36" damper="30" frictionScale="2" showSteeringAngle="false"/>
                    </wheel>
					<wheel isLeft="false" hasTireTracks="false" hasParticles="false" >
                        <physics radius="0.3" width="0.2" rotSpeed="1" restLoad="0.1" repr="ruotaPosDx" useReprDirection="true" forcePointRatio="0.3" initialCompression="25" suspTravel="0.12" spring="36" damper="30" frictionScale="2" showSteeringAngle="false"/>
                    </wheel>
                </wheels>
            </wheelConfiguration>
        </wheelConfigurations>
        <ackermannSteeringConfigurations>
            <ackermannSteering rotSpeed="70" rotMax="40" rotCenter="0 0"/>
        </ackermannSteeringConfigurations>
    </wheels>
	
	<lights>
		<sharedLight linkNode="lights" filename="$data/shared/assets/lights/lizard/workingLight23.xml" lightTypes="1"/>
	    <states>
            <state lightTypes="1" />
        </states>
		
		<realLights>
            <low>
                <light node="light" lightTypes="1"/>
            </low>
            <high>
                <light node="light" lightTypes="1"/>
            </high>
        </realLights>
    </lights>
	
	<speedRotatingParts>
        <speedRotatingPart node="rullopietra" radius="0.3" />
    </speedRotatingParts>

	<groundReferenceNodes>
        <groundReferenceNode node="groundReference" threshold="0.25" depthNode="groundReference" chargeValue="1" onlyActiveWhenLowered="false"/>
    </groundReferenceNodes>

    <workAreas>
        <workArea type="roller" functionName="processRollerArea" disableBackwards="false" needsSetIsTurnedOn="false" >
            <area startNode="workAreaStart" widthNode="workAreaEnd" heightNode="workAreaBack"/>
			<groundReferenceNode index="1"/>
			<onlyActiveWhenLowered value="false"/>
        </workArea>
    </workAreas>

	<workParticles>
        <effect workAreaIndex="1"/>
		<particle>
            <node node="emitter1" refNodeIndex="1" particleType="SOIL_SMOKE" speedThreshold="1" emitCountScale="5"/>
        </particle>
    </workParticles>
	
	<roller onlyActiveWhenLowered="false" >
		<needsActivation value="false"/>
        <sounds>
            <work template="meadowRollerWork" volumeScale="0.2"/>
        </sounds>
    </roller>
	
	<mower fruitTypeConverter="MOWER"/>

    <animations>
		<animation name="enterAnimation" >
            <part node="Manico" startTime="0" endTime="0.5" startRot="-99 0 0" endRot="-50 0 0"/>
        </animation>
    </animations>

    <enterable isTabbable="true">
        <enterReferenceNode node="exitPoint"/>
        <exitPoint node="exitPoint"/>
        <cameras>
            <camera node="outdoorCamera" rotatable="true" limit="true" rotMinX="-1.4" rotMaxX="1.0" transMin="3.5" transMax="15" rotateNode="outdoorCameraTarget" useWorldXZRotation="true" translation="0 0 7" rotation="-17.5 180 0" >
                <raycastNode node="cameraRaycastNode1"/>
                <raycastNode node="cameraRaycastNode2"/>
            </camera>
            <camera node="indoorCamera" rotatable="true" limit="true" rotMinX="-1.1" rotMaxX="0.4" transMin="0.0" transMax="0" useMirror="true" isInside="true" useOutdoorSounds="true"  shadowFocusBox="shadowFocusBox" />
        </cameras>

        <characterNode node="skeleton" cameraMinDistance="0.75" useAnimation="true" />
		<enterAnimation name="enterAnimation"/>
    </enterable>

    <pushHandTool>
        <raycast node1="rayCast1" node2="rayCast2" playerNode="playerNode"/>
        <wheels front="1 2" back="3 4"/>
        <ikChains>
            <target ikChain="rightArm" targetNode="manoDx" poseId="wideFingers"/>
            <target ikChain="leftArm" targetNode="manoSx" poseId="wideFingers"/>
        </ikChains>
		
        <customChainLimits>
            <customChainLimit chainId="leftArm" nodeIndex="1" minRx="-50" maxRx="50" minRy="-80" maxRy="80" minRz="-75" maxRz="10" localLimits="true"/>
            <customChainLimit chainId="leftArm" nodeIndex="2" minRx="-25" maxRx="25" minRy="-144" maxRy="-25" minRz="-10" maxRz="10" localLimits="true"/>

            <customChainLimit chainId="rightArm" nodeIndex="1" minRx="-50" maxRx="50" minRy="-80" maxRy="80" minRz="-75" maxRz="10" localLimits="true"/>
            <customChainLimit chainId="rightArm" nodeIndex="2" minRx="-25" maxRx="25" minRy="-144" maxRy="-25" minRz="-10" maxRz="10" localLimits="true"/>
        </customChainLimits>
		
        <playerConditionalAnimation>
            <item id="idle" entryTransitionDuration="0.25" exitTransitionDuration="0.25">
                <clips>
                    <clip clipName="idle1Source"/>
                </clips>
                <conditions>
                    <conditionGroup>
                        <condition parameter="absSmoothedForwardVelocity" lower="0.2"/>
                    </conditionGroup>
                </conditions>
            </item>
            <item id="walk" entryTransitionDuration="0.25" exitTransitionDuration="0.25">
                <clips speedScaleType="distance" speedScaleParameter="2">
                    <clip clipName="walkFwd1Source"/>
                </clips>
                <conditions>
                    <conditionGroup>
                        <condition parameter="smoothedForwardVelocity" between="0.3, 4"/>
                    </conditionGroup>
                </conditions>
            </item>
            <item id="walkBack" entryTransitionDuration="0.5" exitTransitionDuration="0.25">
                <clips speedScaleType="distance" speedScaleParameter="2.5">
                    <clip clipName="walkBwdLoopSource"/>
                </clips>
                <conditions>
                    <conditionGroup>
                        <condition parameter="smoothedForwardVelocity" between="-3, -0.3"/>
                    </conditionGroup>
                </conditions>
            </item>
        </playerConditionalAnimation>
    </pushHandTool>

    <motorized>
        <differentialConfigurations>
            <differentialConfiguration>
                <differentials>
                    <differential torqueRatio="0.5" maxSpeedRatio="1.6" wheelIndex1="1" wheelIndex2="2"/>
                </differentials>
            </differentialConfiguration>
        </differentialConfigurations>
        <motorConfigurations>
            <motorConfiguration>
                <motor torqueScale="0.844" minRpm="850" maxRpm="2200" maxForwardSpeed="8" maxBackwardSpeed="8" brakeForce="0.1" lowBrakeForceScale="0.1">
                    <torque normRpm="0.45" torque="0.9"/>
                    <torque normRpm="0.5" torque="0.97"/>
                    <torque normRpm="0.59" torque="1"/>
                    <torque normRpm="0.72" torque="1"/>
                    <torque normRpm="0.86" torque="0.88"/>
                    <torque normRpm="1" torque="0.72"/>
                </motor>
                <transmission minForwardGearRatio="84.67" maxForwardGearRatio="300" minBackwardGearRatio="32" maxBackwardGearRatio="300" />
            </motorConfiguration>
        </motorConfigurations>
        <motorStartDuration>500</motorStartDuration>
    </motorized>

    <drivable>
        <idleTurning allowed="false" direction="1" maxSpeed="8" steeringFactor="100"/>
        <sounds>
            <waterSplash template="waterSplash01" linkNode="0>"/>
        </sounds>
    </drivable>

    <ai>
		<areaMarkers leftNode="aiMarkerLeft" rightNode="aiMarkerRight" backNode="aiMarkerBack"/>
		<agent useSize="true" />
		<agentAttachment useSize="true"/>
		<collisionTrigger useSize="true"/>
		<needsLowering value="false"/>
		<needsActivation value="false"/>
	</ai>

    <foliageBending>
        <bendingNode minX="-0.6" maxX="0.6" minZ="-.1" maxZ="0" yOffset="0"/>
    </foliageBending>
	
	<baseColorConfigurations price="20" useDefaultColors="true" defaultColorIndex="27">
        <material materialSlotName="maniglie" />
    </baseColorConfigurations>

    <wearable wearDuration="200" workMultiplier="3" fieldMultiplier="2"/>
    <washable dirtDuration="6" washDuration="1" workMultiplier="3" fieldMultiplier="2"/>

	<i3dMappings>
		<i3dMapping id="mainShape" node="0>"/>
		<i3dMapping id="rullopietra" node="0>0"/>
		<i3dMapping id="Object003" node="0>0|0"/>
		<i3dMapping id="Object004" node="0>0|0|0"/>
		<i3dMapping id="Manico" node="0>1"/>
		<i3dMapping id="ai" node="0>10"/>
		<i3dMapping id="aiMarkers" node="0>10|0"/>
		<i3dMapping id="aiMarkerLeft" node="0>10|0|0"/>
		<i3dMapping id="aiMarkerRight" node="0>10|0|1"/>
		<i3dMapping id="aiMarkerBack" node="0>10|0|2"/>
		<i3dMapping id="aiCollisionNode" node="0>10|1"/>
		<i3dMapping id="Maniglie" node="0>1|0"/>
		<i3dMapping id="mani" node="0>1|0|0"/>
		<i3dMapping id="manoSx" node="0>1|0|0|0"/>
		<i3dMapping id="manoDx" node="0>1|0|0|1"/>
		<i3dMapping id="lights" node="0>1|1"/>
		<i3dMapping id="light" node="0>1|1|0"/>
		<i3dMapping id="ruote" node="0>2"/>
		<i3dMapping id="ruotaSx" node="0>2|0"/>
		<i3dMapping id="ruotaDx" node="0>2|1"/>
		<i3dMapping id="ruotaPosSx" node="0>2|2"/>
		<i3dMapping id="ruotaPosDx" node="0>2|3"/>
		<i3dMapping id="Ai" node="0>3"/>
		<i3dMapping id="aiCollision" node="0>3|0"/>
		<i3dMapping id="cameras" node="0>4"/>
		<i3dMapping id="camera" node="0>4|0"/>
		<i3dMapping id="outdoorCameraTarget" node="0>4|1"/>
		<i3dMapping id="outdoorCamera" node="0>4|1|0"/>
		<i3dMapping id="cameraRaycastNode1" node="0>4|2"/>
		<i3dMapping id="cameraRaycastNode2" node="0>4|3"/>
		<i3dMapping id="shadowFocusBox" node="0>4|4"/>
		<i3dMapping id="indoorCamera" node="0>4|5"/>
		<i3dMapping id="player" node="0>5"/>
		<i3dMapping id="playerNode" node="0>5|0"/>
		<i3dMapping id="skeleton" node="0>5|0|0"/>
		<i3dMapping id="rayCast2" node="0>5|1"/>
		<i3dMapping id="rayCast1" node="0>5|2"/>
		<i3dMapping id="exitPoint" node="0>6"/>
		<i3dMapping id="workAreas" node="0>7"/>
		<i3dMapping id="workAreaStart" node="0>7|0"/>
		<i3dMapping id="workAreaEnd" node="0>7|1"/>
		<i3dMapping id="workAreaBack" node="0>7|2"/>
		<i3dMapping id="groundReference" node="0>8"/>
		<i3dMapping id="effetti" node="0>9"/>
		<i3dMapping id="emitter1" node="0>9|0"/>
	</i3dMappings>


</vehicle>
