<?xml version="1.0" encoding="utf-8" standalone="no" ?>
<vehicle type="stumpCutter" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://validation.gdn.giants-software.com/xml/fs25/vehicle.xsd">
    <annotation>RossN Mods, All Rights Reserved.</annotation>

    <storeData>
        <name>$l10n_shopItem_skidSteerStumpCutter</name>
        <specs>
            <combination filterCategory="skidSteerVehicles"/>
        </specs>
        <functions>
            <function>$l10n_function_stumpCutter</function>
        </functions>
        <image>skidSteerAttachments/store_skidStumpCutter.png</image>
        <price>4500</price>
        <lifetime>600</lifetime>
        <rotation>0</rotation>
        <brand>JCB</brand>
        <category>skidSteerTools</category>
        <shopHeight>1.7</shopHeight>
        <shopTranslationOffset>0 0.005 0</shopTranslationOffset>
        <shopRotationOffset>0.002 0 0</shopRotationOffset>
        <vertexBufferMemoryUsage>70656</vertexBufferMemoryUsage>
        <indexBufferMemoryUsage>16640</indexBufferMemoryUsage>
        <textureMemoryUsage>851968</textureMemoryUsage>
        <audioMemoryUsage>0</audioMemoryUsage>
        <instanceVertexBufferMemoryUsage>0</instanceVertexBufferMemoryUsage>
        <instanceIndexBufferMemoryUsage>0</instanceIndexBufferMemoryUsage>
    </storeData>

    <base>
        <typeDesc>$l10n_typeDesc_stumpCutter</typeDesc>
        <filename>skidSteerAttachments/jcbStumpCutter.i3d</filename>
        <size width="1.6" length="1.7" height="1.25" lengthOffset="0.65" widthOffset="-0.15"/>
        <components>
            <component centerOfMass="0 0 0" solverIterationCount="10" mass="930" />
        </components>
        <schemaOverlay attacherJointPosition="0 0" name="IMPLEMENT" />
        <mapHotspot type="TOOL" />
    </base>

    <powerConsumer ptoRpm="540" neededMinPtoPower="15" neededMaxPtoPower="25"/>

    <attachable>
        <inputAttacherJoints>
            <inputAttacherJoint node="attacherJoint" jointType="skidSteer" />
        </inputAttacherJoints>
    </attachable>

    <cylindered>
        <movingTools>
            <movingTool node="armYRot">
                <controls axis="AXIS_FRONTLOADER_TOOL2" invertAxis="true" mouseSpeedFactor="0.25" iconName="FRONTLOADER_ARM_ROTATE" />
                <rotation rotSpeed="20" rotAcceleration="200" rotMax="35" rotMin="-15" rotationAxis="2" />
                <dependentPart node="hydraulic02" />
            </movingTool>
            <movingTool node="armRotX" >
                <controls axis="AXIS_FRONTLOADER_ARM2" invertAxis="false" mouseSpeedFactor="0.25" iconName="TOOL_OPEN_CLOSE" />
                <rotation rotSpeed="20" rotAcceleration="200" rotMax="5" rotMin="-35" rotationAxis="2" />
                <dependentPart node="hydraulic" />
            </movingTool>
        </movingTools>

        <movingParts>
            <movingPart node="hydraulic02" referencePoint="hydraulic02Ref" referenceFrame="hydraulic02Ref" playSound="true" >
                <translatingPart node="hydraulic02Punch" />
            </movingPart>
            <movingPart node="hydraulic" referencePoint="hydraulicRef" referenceFrame="hydraulicRef" playSound="true" >
                <translatingPart node="hydraulicPunch" />
            </movingPart>

            <movingPart node="cutNodeRot" referenceFrame="cutNodeRefFrame" isActiveDirty="true" alignToWorldY="true" maxUpdateDistance="-"/>
        </movingParts>

        <sounds>
            <actionSound template="hydraulicClose01"      pitchScale="1.1" volumeScale="3.0" linkNode="armYRot" actionNames="TOOL_MOVE_POS TOOL_MOVE_NEG" nodes="armYRot" fadeIn="0.1" fadeOut="0.1"/>
            <actionSound template="hydraulicOpen05"       pitchScale="2.2" volumeScale="3.0" linkNode="armRotX" actionNames="TOOL_MOVE_POS TOOL_MOVE_NEG"  nodes="armRotX" fadeIn="0.1" fadeOut="0.1"/>
            <actionSound template="sheetImp02"            pitchScale="0.8" volumeScale="1.5" linkNode="armYRot" actionNames="TOOL_MOVE_END_POS_LIMIT"     nodes="armYRot"/>
            <actionSound template="clackVar6"             pitchScale="0.8" volumeScale="1.5" linkNode="armYRot" actionNames="TOOL_MOVE_END_POS_LIMIT"     nodes="armYRot"/>
            <actionSound template="clackVar6"             pitchScale="0.6" volumeScale="1.3" linkNode="armYRot" actionNames="TOOL_MOVE_END_NEG_LIMIT"     nodes="armYRot"/>
            <actionSound template="sheetImp02"            pitchScale="0.8" volumeScale="1.8" linkNode="armYRot" actionNames="TOOL_MOVE_END_NEG_LIMIT"     nodes="armYRot"/>
            <actionSound template="clackVar6"             pitchScale="0.8" volumeScale="1.4" linkNode="armRotX" actionNames="TOOL_MOVE_END_NEG_LIMIT"     nodes="armRotX"/>
            <actionSound template="sheetImp02"            pitchScale="1.1" volumeScale="1.4" linkNode="armRotX" actionNames="TOOL_MOVE_END_NEG_LIMIT"     nodes="armRotX"/>
            <actionSound template="cylinderPunch"         pitchScale="1.1" volumeScale="0.4" linkNode="armRotX" actionNames="TOOL_MOVE_END_NEG_LIMIT"     nodes="armRotX"/>
            <actionSound template="clackVar6"             pitchScale="0.8" volumeScale="1.4" linkNode="armRotX" actionNames="TOOL_MOVE_END_POS_LIMIT"     nodes="armRotX"/>
            <actionSound template="sheetImp02"            pitchScale="1.1" volumeScale="1.4" linkNode="armRotX" actionNames="TOOL_MOVE_END_POS_LIMIT"     nodes="armRotX"/>
            <actionSound template="cylinderPunch"         pitchScale="1.3" volumeScale="0.4" linkNode="armRotX" actionNames="TOOL_MOVE_END_POS_LIMIT"     nodes="armRotX"/>
        </sounds>
    </cylindered>

    <stumpCutter>
        <cutNode node="cutNode" cutSizeY="1.75" cutSizeZ="1.75" cutPartThreshold="0.05"/>
        <effects>
            <effectNode effectClass="ParticleEffect" effectNode="emitterShapeWood" particleType="CRUSHER_WOOD" emitCountScale="10"/>
            <effectNode effectClass="ParticleEffect" effectNode="emitterShapeDust" particleType="CRUSHER_DUST" emitCountScale="2"/>
        </effects>
        <animationNodes>
            <animationNode node="cutterWheel" rotSpeed="-1800" rotAxis="2" turnOnFadeTime="2" turnOffFadeTime="5"/>
        </animationNodes>
        <sounds>
            <start template="stumpCutterStart"   linkNode="jcbStumpCutter" volumeScale="1.4"/>
            <idle  template="stumpCutterIdle"    linkNode="jcbStumpCutter" volumeScale="1.4"/>
            <work  template="stumpCutterWork01"  linkNode="jcbStumpCutter" volumeScale="1.4"/>
            <stop  template="stumpCutterStop"    linkNode="jcbStumpCutter" volumeScale="1.4"/>
        </sounds>
    </stumpCutter>

    <ai>
        <agentAttachment useSize="true"/>
    </ai>

    <tensionBeltObject>
        <meshNodes>
            <meshNode node="tensionBeltMesh01"/>
        </meshNodes>
    </tensionBeltObject>

    <foliageBending>
        <bendingNode minX="-0.65" maxX="0.65" minZ="0.12" maxZ="-0.12" yOffset="0.02" />
    </foliageBending>

    <baseColorConfigurations useDefaultColors="true">
        <baseColorConfiguration materialTemplateName="SHARED_BLACK0" isDefault="true"/>
        <material materialSlotName="jcbSkidsteerTools_calibratedGlossPaint_SHARED_BLACK0_mat1"/>
    </baseColorConfigurations>

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

    <i3dMappings>
        <i3dMapping id="jcbStumpCutter" node="0>" />
        <i3dMapping id="attacherJoint" node="0>0" />
        <i3dMapping id="armYRot" node="0>2" />
        <i3dMapping id="armRotX" node="0>2|0|0" />
        <i3dMapping id="emitterShapeWood" node="0>2|0|0|0|0" />
        <i3dMapping id="emitterShapeDust" node="0>2|0|0|0|1" />
        <i3dMapping id="cutNodeRot" node="0>2|0|0|1" />
        <i3dMapping id="cutNode" node="0>2|0|0|1|0" />
        <i3dMapping id="cutNodeRefFrame" node="0>2|0|0|2" />
        <i3dMapping id="cutterWheel" node="0>2|0|0|3" />
        <i3dMapping id="hydraulicRef" node="0>2|0|0|6" />
        <i3dMapping id="hydraulic" node="0>2|1" />
        <i3dMapping id="hydraulicPunch" node="0>2|1|0" />
        <i3dMapping id="hydraulic02Ref" node="0>2|2" />
        <i3dMapping id="hydraulic02" node="0>3" />
        <i3dMapping id="hydraulic02Punch" node="0>3|0" />
        <i3dMapping id="tensionBeltMesh01" node="0>6" />
        <i3dMapping id="hydraulicOut01" node="0>8" />
        <i3dMapping id="hydraulicIn01" node="0>9" />
    </i3dMappings>
</vehicle>
