<?xml version="1.0" encoding="utf-8" standalone="no" ?>
<vehicle type="perzlPalletForkGrab" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../shared/xml/schema/vehicle.xsd">
    <annotation>Copyright (C) GIANTS Software GmbH, All Rights Reserved.</annotation>

    <storeData>
        <name>
			<en>Pallet Fork With Hydraulic Grab</en>
			<de>Palettengabel mit hydr. Niederhalter</de>
		</name>
        <specs>
            <combination filterCategory="frontLoaders" />
            <combination filterCategory="frontLoaderVehicles" />
        </specs>
        <functions>
			<function>$l10n_function_frontloaderLogFork</function>
        </functions>
        <image>PalletFork_grab/store_palletForkGrab.png</image>
        <price>1750</price>
        <lifetime>600</lifetime>
        <rotation>0</rotation>
		<shopTranslationOffset>0 0.05 0</shopTranslationOffset>
        <brand>PERZL</brand>
        <category>frontLoaderTools</category>
        <vertexBufferMemoryUsage>136960</vertexBufferMemoryUsage>
        <indexBufferMemoryUsage>24576</indexBufferMemoryUsage>
        <textureMemoryUsage>983040</textureMemoryUsage>
        <audioMemoryUsage>0</audioMemoryUsage>
        <instanceVertexBufferMemoryUsage>0</instanceVertexBufferMemoryUsage>
        <instanceIndexBufferMemoryUsage>0</instanceIndexBufferMemoryUsage>
    </storeData>

    <base>
        <typeDesc>$l10n_typeDesc_frontloaderTool</typeDesc>
        <filename>PalletFork_grab/PalletFork_grab.i3d</filename>
        <size width="1.4" length="1.4"/>
        <components>
            <component centerOfMass="0 0 -0.2" solverIterationCount="10" mass="155" />
			<component centerOfMass="0 0 0.15" solverIterationCount="10" mass="70" />
			<joint component1="1" component2="2" node="grabJoint" rotLimit="0 0 0" transLimit="0 0 0" rotLimitSpring="300 0 0" rotLimitDamping="30 0 0" rotLimitForceLimit="30 -1 -1" />
        </components>
        <schemaOverlay attacherJointPosition="0 0" name="IMPLEMENT" />
        <mapHotspot type="TOOL" />
    </base>
	
	<designConfigurations>
        <designConfiguration name="$l10n_configurationValue_oldDesign" >
		    <objectChange node="decalOld" visibilityActive="true" visibilityInactive="false" />
			<objectChange node="decalsOld" visibilityActive="true" visibilityInactive="false" />
		</designConfiguration>
        <designConfiguration name="$l10n_configurationValue_newDesign">
			<objectChange node="decalNew" visibilityActive="true" visibilityInactive="false" />
			<objectChange node="decalsNew" visibilityActive="true" visibilityInactive="false" />
		</designConfiguration>
    </designConfigurations>

    <attachable>
        <inputAttacherJoints>
            <inputAttacherJoint node="attacherJoint" jointType="frontloader" />
        </inputAttacherJoints>
    </attachable>
	
	<connectionHoses>
        <hose inputAttacherJointIndices="1" type="hydraulicIn"  node="hydraulicIn" adapterNode="hydraulicIn_detached"  length="0.8" diameter="0.015" straighteningFactor="5">
           <objectChange node="hydraulicIn_detached" visibilityActive="false" visibilityInactive="true"/>
        </hose>
        <hose inputAttacherJointIndices="1" type="hydraulicOut" node="hydraulicOut" adapterNode="hydraulicOut_detached"  length="0.6" diameter="0.015" straighteningFactor="1">
            <objectChange node="hydraulicOut_detached" visibilityActive="false" visibilityInactive="true"/>
        </hose>
    </connectionHoses>
	
	<logGrab jointNode="jointNode" jointRoot="0>">
        <trigger node="dynamicMountTrigger" />
        <grab componentJoint="1" axis="3" rotationOffsetThreshold="10" rotationOffsetTime="1000"/>
    </logGrab>
	
	<animations>
		<animation name="forkAdjustment" >
			<part node="forkLeft"       startTime="0.3" endTime="0.5" startTrans="0.654 0.568 -0.382" endTrans="0.553 0.568 -0.382" />
			<part node="forkLeft"       startTime="1.3" endTime="1.5" startTrans="0.553 0.568 -0.382" endTrans="0.453 0.568 -0.382" />
			<part node="forkLeft"       startTime="2.3" endTime="2.5" startTrans="0.453 0.568 -0.382" endTrans="0.352 0.568 -0.382" />
			<part node="forkLeft"       startTime="3.3" endTime="3.5" startTrans="0.352 0.568 -0.382" endTrans="0.251 0.568 -0.382" />
		
			<part node="forkRight"      startTime="0.3" endTime="0.5" startTrans="-0.654 0.568 -0.382" endTrans="-0.553 0.568 -0.382" />
			<part node="forkRight"      startTime="1.3" endTime="1.5" startTrans="-0.553 0.568 -0.382" endTrans="-0.453 0.568 -0.382" />
			<part node="forkRight"      startTime="2.3" endTime="2.5" startTrans="-0.453 0.568 -0.382" endTrans="-0.352 0.568 -0.382" />
			<part node="forkRight"      startTime="3.3" endTime="3.5" startTrans="-0.352 0.568 -0.382" endTrans="-0.251 0.568 -0.382" />
		
			<sound template="clackVar6" startTime="0.5" volumeScale="0.35" pitchScale="1.2"/>
			<sound template="clackVar6" startTime="1.5" volumeScale="0.35" pitchScale="1.2"/>
			<sound template="clackVar6" startTime="2.5" volumeScale="0.35" pitchScale="1.2"/>
			<sound template="clackVar6" startTime="3.5" volumeScale="0.35" pitchScale="1.2"/>
		</animation>
	</animations>
	
	<cylindered>
		<movingTools>
			<movingTool node="forkLeft">
				<controls axis="AXIS_FRONTLOADER_TOOL2" invertAxis="true" mouseSpeedFactor="0.2" iconName="WORKING_WIDTH_TRANSLATE_X" />
				<animation animSpeed="0.7" animAcceleration="5" animName="forkAdjustment" animStartTime="0" />
			</movingTool>
			<movingTool node="grabJoint" playSound="true" >
                <controls axis="AXIS_FRONTLOADER_TOOL3" invertAxis="true" mouseSpeedFactor="0.3" iconName="TOOL_OPEN_CLOSE" />
                <rotation rotationAxis="1" rotSpeed="50" rotAcceleration="250" rotMax="0" rotMin="-60" detachingRotMinLimit="-20" />
                <componentJoint index="1" anchorActor="0" />
                <dependentPart node="grab" />
            </movingTool>
		</movingTools>
		
		<movingParts>
            <movingPart node="grab" referencePoint="grabRef" referenceFrame="grabJoint" limitedAxis="1" isActiveDirty="true" maxUpdateDistance="100">
                <dependentPart node="grabHydraulic" />
            </movingPart>
            <movingPart node="grabHydraulic" referencePoint="grabHydraulicRef" referenceFrame="grabHydraulicRefFrame" >
                <translatingPart node="grabHydraulic_punch" />
            </movingPart>
        </movingParts>
		
		<sounds>
			<actionSound template="defaultHydraulicSound" pitchScale="0.6" volumeScale="1.5"   linkNode="grabJoint"      actionNames="TOOL_MOVE_POS TOOL_MOVE_NEG"     nodes="grabJoint"/>
            <actionSound template="clackVar6"             pitchScale="0.9" volumeScale="1.1" linkNode="grabJoint"      actionNames="TOOL_MOVE_END_POS_LIMIT"         nodes="grabJoint"/>
            <actionSound template="clackVar6"             pitchScale="0.6" volumeScale="1.1" linkNode="grabJoint"      actionNames="TOOL_MOVE_END_NEG_LIMIT"         nodes="grabJoint"/>
		</sounds>
	</cylindered>

    <dynamicMountAttacher node="jointNode">
        <mountCollisionMask node="forkLeft01_colBack" collisionMask="134225920" />
        <mountCollisionMask node="forkRight01_colBack" collisionMask="134225920" />
    </dynamicMountAttacher>

    <ai>
        <agentAttachment width="1.4" height="0.6" length="1.4" lengthOffset="0"/>
    </ai>

    <baseMaterial>
        <material name="perzlFrontloadertools_mat" baseNode="palletFork_vis">
            <shaderParameter name="colorMat0" value="PERZL_YELLOW"/>
			<shaderParameter name="colorMat1" value="PERZL_RED"/>
        </material>
    </baseMaterial>

    <foliageBending>
        <bendingNode minX="-0.7" maxX="0.7" minZ="-0.6" maxZ="0.6" yOffset="0" />
    </foliageBending>

    <wearable wearDuration="480" workMultiplier="5" fieldMultiplier="2"/>
    <washable dirtDuration="90" washDuration="1" workMultiplier="2" fieldMultiplier="2"/>

	<i3dMappings>
    <i3dMapping id="palletFork_main_component1" node="0>"/>
    <i3dMapping id="palletFork_vis" node="0>0"/>
    <i3dMapping id="attacherJoint" node="0>0|0|0"/>
    <i3dMapping id="hydraulicIn_detached" node="0>0|0|1"/>
    <i3dMapping id="hydraulicOut_detached" node="0>0|0|2"/>
    <i3dMapping id="decalNew" node="0>0|1|1"/>
    <i3dMapping id="decalOld" node="0>0|1|2"/>
    <i3dMapping id="dynamicMountTrigger" node="0>0|2"/>
    <i3dMapping id="grabJoint" node="0>0|3"/>
    <i3dMapping id="jointNode" node="0>0|4"/>
    <i3dMapping id="forkLeft" node="0>0|5|0"/>
    <i3dMapping id="forkLeft01_colBack" node="0>0|5|0|0"/>
    <i3dMapping id="forkLeft01_colFront" node="0>0|5|0|1"/>
    <i3dMapping id="forkRight" node="0>0|5|1"/>
    <i3dMapping id="forkRight01_colBack" node="0>0|5|1|0"/>
    <i3dMapping id="forkRight01_colFront" node="0>0|5|1|1"/>
    <i3dMapping id="grabBase" node="0>0|5|2"/>
    <i3dMapping id="grab" node="0>0|5|2|0"/>
    <i3dMapping id="decalsNew" node="0>0|5|2|0|0"/>
    <i3dMapping id="decalsOld" node="0>0|5|2|0|1"/>
    <i3dMapping id="grabHydraulicRefFrame" node="0>0|5|2|0|2"/>
    <i3dMapping id="grabHydraulic" node="0>0|5|2|0|2|0"/>
    <i3dMapping id="hydraulicIn" node="0>0|5|2|0|2|0|0|0"/>
    <i3dMapping id="hydraulicOut" node="0>0|5|2|0|2|0|0|1"/>
    <i3dMapping id="grabHydraulic_punch" node="0>0|5|2|0|2|0|2"/>
    <i3dMapping id="grabHydraulicRef" node="0>0|5|2|1"/>
    <i3dMapping id="palletFork_grab_component2" node="1>"/>
    <i3dMapping id="colPart01" node="1>0"/>
    <i3dMapping id="colPart02" node="1>1"/>
    <i3dMapping id="grabRef" node="1>2"/>
	</i3dMappings>
</vehicle>
