Changing working width harvester from right to both sides

Your forum for all discussions around Modding.
snekko
Posts: 67
Joined: Sat Nov 21, 2020 9:48 pm

Changing working width harvester from right to both sides

Post by snekko »

I am trying to create a selfdrive vine hand harvester, which drives between the rows and harvest both rows in 1 pass. A bit like the Vine Hand Harvest Trailer, but now selfdrive and for both rows.


In the i3d i found the workAreas like this:

<TransformGroup name="workAreas" nodeId="304">
<TransformGroup name="areaHeight" translation="2 0 -6.5" nodeId="305"/>
<TransformGroup name="areaStart" translation="-2 0 -3.8" nodeId="306"/>
<TransformGroup name="areaWidth" translation="-2 0 -6.5" nodeId="307"/>
</TransformGroup>


I know I need to adjust one of these values ​​to create a wider work area, but I don't know which one. in this case I only have a working area to the right of the harvester. I have looked in the giants editor, but changing the numbers didn't make any logical change.

Any body any idea?
Eische
Posts: 3859
Joined: Thu Oct 18, 2018 5:17 pm

Re: Changing working width harvester from right to both sides

Post by Eische »

With the above numbers your work area should be on both sides already if the vehicle is setup to Giants standard.

I guess that the root node workAreas with id 304 is shifted to the right and not centered.
Without knowing how much it is shifted, its hard to tell you the correct numbers. But I would try something like this

Code: Select all

<TransformGroup name="workAreas" nodeId="304">
<TransformGroup name="areaHeight" translation="4 0 -6.5" nodeId="305"/>
<TransformGroup name="areaStart" translation="-2 0 -3.8" nodeId="306"/>
<TransformGroup name="areaWidth" translation="-2 0 -6.5" nodeId="307"/>
</TransformGroup>
The three lines are forming 3 corners/nodes of a rectangle. With the first number being the working width (x direction, red arrow in GE), second number is the height to ground (green arrow) and third number is the z direction (driving direction).
All coordinates are relative to the position of the root node. In this case node id 304.
Playing on PC - Win10
Ryzen 3600
RX 5500XT
16GB Ram
How to post log file
How to upload pictures
Please report bugs for FS22 using the bugtracker
snekko
Posts: 67
Joined: Sat Nov 21, 2020 9:48 pm

Re: Changing working width harvester from right to both sides

Post by snekko »

The node workAreas 304 is not shifted, but centerd, sadly your numbers dont work, but i wil try and error tomorrow.

The code comes from this mod:
https://farmingsimulator22mods.com/vine ... -1-1-fs22/

I am trying to get it working with this mod, before I can try to use it in my idea.
Eische
Posts: 3859
Joined: Thu Oct 18, 2018 5:17 pm

Re: Changing working width harvester from right to both sides

Post by Eische »

Oh, I see. Providing the link to the mod helped a lot.
As it is a vine harvester, the classical work areas are not being used.

You need to move the harvestRayCastNode and most likely increase the value for maxDistance in the vineDetector section of the xml.
I don't know if the maxDistance value works in both directions.
Playing on PC - Win10
Ryzen 3600
RX 5500XT
16GB Ram
How to post log file
How to upload pictures
Please report bugs for FS22 using the bugtracker
snekko
Posts: 67
Joined: Sat Nov 21, 2020 9:48 pm

Re: Changing working width harvester from right to both sides

Post by snekko »

Alright, Now I know where to look, I am pretty sure i get it fixed.

Thanks!
snekko
Posts: 67
Joined: Sat Nov 21, 2020 9:48 pm

Re: Changing working width harvester from right to both sides

Post by snekko »

Maybe not. After try and error, Lot of trying, but even more errors...

I have found the harvestRayCastNode in the i3d, and it was offcenter to the right. So I placed it in the center from the trailer. Still is the working side on te right side. I set the maxDistance up to 4 instead of 1.6 but nothing changes. Set it even up to 40 for testing but same result.
So I moved the harvestRayCastNode more to the left, (around 2.5) now i have my working side on the left side of the trailer. But its stil only one singel row, even with maxDistace up to 40. I even try to scale up the harvestRayCastNode in the editor, but still no result.

As last option i tryed to duplicate the harvestRayCastNode, so I got 2 harvest area's, but even that dos not work.

So after an evening try and error, I know how to move the working area from left to the right, but still not know how to widen the harvester.
Eische
Posts: 3859
Joined: Thu Oct 18, 2018 5:17 pm

Re: Changing working width harvester from right to both sides

Post by Eische »

Ok, great to see your findings.

My best explanation then is a code limitation. Looks like the raycast node just picks the closest row in for harvest.
Good to see you already tried to have more raycast nodes for multirow harvest. That would have been my next idea.

I have not seen any multirow vine harvester mod yet. So most likely it is not possible.
Playing on PC - Win10
Ryzen 3600
RX 5500XT
16GB Ram
How to post log file
How to upload pictures
Please report bugs for FS22 using the bugtracker
snekko
Posts: 67
Joined: Sat Nov 21, 2020 9:48 pm

Re: Changing working width harvester from right to both sides

Post by snekko »

I think, I have to make a harvester with an extra module for left and right harvesting. Or just harvesting left, with the trailer harvesting right. But first have to get it done first,
snekko
Posts: 67
Joined: Sat Nov 21, 2020 9:48 pm

Re: Changing working width harvester from right to both sides

Post by snekko »

Next question, I have setup my harvester in i3d and xml, (it was original a tracked tipper) and it show up in game as harvester. But I can not get harvestermode turned on. (press B) I maybe miss a row of code in the xml, but can't find which I miss.

Any Ideas?
snekko
Posts: 67
Joined: Sat Nov 21, 2020 9:48 pm

Re: Changing working width harvester from right to both sides

Post by snekko »

Somehow I miss the code for starting the harvester. But I have no clue where to look. Anybody any idea?

Code: Select all

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<vehicle type="YanmarC30R2B">
    <annotation>Copyright (C) GIANTS Software GmbH, All Rights Reserved. AFModding</annotation>

    <storeData>
        <name>Yanmar C30R-2B</name>
        <specs>
            <power>26.1</power>
            <maxSpeed>15</maxSpeed>
        </specs>
        <functions>
			<function>$l10n_function_combine</function>
		</functions>
        <storePacks>
            <storePack>STARTER_GRAPE</storePack>			
        </storePacks>
        <image>store_Yanmar_C30R_2B.png</image>
        <price>28000</price>
        <lifetime>600</lifetime>
        <rotation>0</rotation>
        <brand>YANMAR</brand>
        <category>Misc</category>
        <shopTranslationOffset>0 -0.05 0</shopTranslationOffset>
        <shopRotationOffset>0 0 0</shopRotationOffset>
																														  
    </storeData>

    <base>
        <typeDesc>$l10n_typeDesc_harvester</typeDesc>
        <filename>Yanmar_C30R_2B.i3d</filename>
        <sounds filename="sounds/sounds_R926.xml"/>
        <size width="1.550" length="3.640" lengthOffset="-0.2"/>
        <speedLimit value="6" />
        <components>
            <component centerOfMass="0 0.561 0" solverIterationCount="10" mass="2365"/>
        </components>
        <schemaOverlay attacherJointPosition="0.5 0"  name="HARVESTER"  />
        <mapHotspot type="HARVESTER" />
    </base>
	
    <powerConsumer ptoRpm="400" neededMaxPtoPower="10"/>
	
	<!-- wheels -->
    <wheels>
        <wheelConfigurations>
            <wheelConfiguration name="crawler" price="0">
                <wheels autoRotateBackSpeed="10.0" speedDependentRotateBack="false">
                    <wheel>
                        <physics rotSpeed="1" restLoad="0.9" radius="0.146" width="0.45" repr="wheelFrontLeft"  forcePointRatio="0.5" initialCompression="14" suspTravel="0.10" spring="55" damper="50" frictionScale="2" />
                        <tire isCareWheel="false" />
                    </wheel>
                    <wheel>
                        <physics rotSpeed="1" restLoad="0.9" radius="0.146" width="0.45" repr="wheelFrontRight" forcePointRatio="0.5" initialCompression="14" suspTravel="0.10" spring="55" damper="50" frictionScale="2" />
                        <tire isCareWheel="false" />
                    </wheel>
                    <wheel hasTireTracks="true" hasParticles="true" >
                        <physics rotSpeed="1" restLoad="1.8" radius="0.146" width="0.45" repr="wheelBackLeft"   forcePointRatio="0.5" initialCompression="40" suspTravel="0.10" spring="43" damper="50" frictionScale="2" />
                        <tire isCareWheel="false" tireTrackAtlasIndex="13" isInverted="true"/>
                    </wheel>
                    <wheel hasTireTracks="true" hasParticles="true" >
                        <physics rotSpeed="1" restLoad="1.8" radius="0.146" width="0.45" repr="wheelBackRight"  forcePointRatio="0.5" initialCompression="40" suspTravel="0.10" spring="43" damper="50" frictionScale="2" />
                        <tire isCareWheel="false" tireTrackAtlasIndex="13" isInverted="false"/>
                    </wheel>
                </wheels>
                <crawlers>
                    <crawler filename="tracks/YanmarC30R2B_Tracks.xml" linkNode="crawlerDriveNodeLeft"  wheelIndex="3" isLeft="true"/>
                    <crawler filename="tracks/YanmarC30R2B_Tracks.xml" linkNode="crawlerDriveNodeRight" wheelIndex="4" isLeft="false"/>
                </crawlers>
            </wheelConfiguration>
        </wheelConfigurations>
        <foliageBendingModifier index="1.05" minX="-1.05" maxX="1" />
        <ackermannSteeringConfigurations>
            <ackermannSteering rotSpeed="70" rotMax="60" rotCenter="0 0" />
        </ackermannSteeringConfigurations>
	</wheels>

	<!-- lights -->
    <lights>
        <states>
            <state lightTypes="0" />
            <state lightTypes="0 1" />
			<state lightTypes="0 1 2" />
        </states>
		
        <beaconLights>
            <beaconLight node="beaconLight" filename="$data/shared/assets/beaconLights/lizard/beaconLight06.xml" />
        </beaconLights>
	
        <realLights>
            <low>
                <light node="frontLightLow"    lightTypes="0"/>
                <light node="workLightBackLow" lightTypes="1"/>
				<light node="highBeamLow"      lightTypes="2" />
            </low>
            <high>
                <light node="frontLightHigh"    lightTypes="0"/>
				<light node="workLightBackHigh" lightTypes="1"/>
				<light node="highBeamHigh"      lightTypes="2"/>
                <turnLightLeft node="turnLightLeft" />
                <turnLightRight node="turnLightRight" />
            </high>
        </realLights>

        <defaultLights>
            <defaultLight shaderNode="frontLightStatic"   lightTypes="0 2"/>
            <defaultLight shaderNode="workLightStatic"    lightTypes="1"/>
        </defaultLights>

        <turnLights>
            <turnLightLeft  shaderNode="turnLeftStatic" />
            <turnLightRight shaderNode="turnRightStatic" />
        </turnLights>

        <brakeLights>
        </brakeLights>

        <sounds>
            <switchLight template="SWITCH_01" linkNode="0" />
            <turnLight template="SWITCH_TURNLIGHT" linkNode="0" />
        </sounds>
    </lights>
	
	<!-- motorized -->
	<motorized>
        <consumerConfigurations>
            <consumerConfiguration>
				<consumer fillUnitIndex="1" usage="25"  fillType="diesel" /> <!-- usage is per hour at max load and max rpm -->
            </consumerConfiguration>
        </consumerConfigurations>		
        <motorConfigurations>
            <motorConfiguration name="C30R-2B" price="0">
                <motor torqueScale="20.385" minRpm="850" maxRpm="2200" maxForwardSpeed="15" maxBackwardSpeed="15" brakeForce="21" lowBrakeForceScale="0.05" lowBrakeForceSpeedLimit="1" rotInertia="0.00003">
                    <torque normRpm="0.1" torque="0.35"/>
                    <torque normRpm="0.2" torque="0.65"/>
                    <torque normRpm="0.3" torque="0.85"/>
                    <torque normRpm="0.4" torque="1"/>
                    <torque normRpm="0.75" torque="0.75"/>
                    <torque normRpm="1" torque="0.65"/>
                </motor>
                <transmission minForwardGearRatio="56" maxForwardGearRatio="300" minBackwardGearRatio="56" maxBackwardGearRatio="300"/>
            </motorConfiguration>
        </motorConfigurations>		
        <differentialConfigurations>
            <differentialConfiguration>
                <differentials>
                    <differential torqueRatio="0.5" maxSpeedRatio="2.9" wheelIndex1="1" wheelIndex2="2"/>
                    <differential torqueRatio="0.5" maxSpeedRatio="2.8" wheelIndex1="3" wheelIndex2="4"/>
                    <differential torqueRatio="0.5" maxSpeedRatio="1.2" differentialIndex1="1" differentialIndex2="2"/>
                </differentials>
            </differentialConfiguration>
        </differentialConfigurations>		
        <exhaustEffects>
            <exhaustEffect node="exhaustParticles" filename="$data/effects/exhaust/exhaust.i3d" minRpmColor="0.9 0.9 0.9 0.1" maxRpmColor="0.9 0.9 0.9 0.4" minRpmScale="0.05" maxRpmScale="0.5" xzRotationsOffset="50 0" xzRotationsForward="-50 0" xzRotationsBackward="50 0" xzRotationsLeft="20 -50" xzRotationsRight="20 50"/>
        </exhaustEffects>		
        <motorStartDuration>2000</motorStartDuration>		
    </motorized>
	
	<!-- enterable -->
	<enterable>        
        <enterReferenceNode node="YanmarC30R2B"/>		
		<exitPoint node="exitPoint"/>		
        <characterNode node="playerSkin" cameraMinDistance="1.5" spineRotation="-90 0 90">
            <target ikChain="rightFoot" targetNode="playerRightFootTarget"/>
            <target ikChain="leftFoot" targetNode="playerLeftFootTarget"/>
            <target ikChain="rightArm" targetNode="playerHandTargetSteering"/>
            <target ikChain="leftArm" targetNode="playerLeftHandTargetArmRest"/>
        </characterNode>
		
		<characterTargetNodeModifier node="playerRightFootTarget" transitionTime="0.1" >
            <state node="playerRightFootTargetGas"   referenceNode="gasPedalFrontJoint" directionReferenceNode="playerRightFootTargetGasRef" />
            <state node="playerRightFootTargetBrake" referenceNode="brakePedalFrontJoint" />
        </characterTargetNodeModifier>

        <characterTargetNodeModifier node="playerRightFootTargetBack" transitionTime="0.1" >
            <state node="playerRightFootTargetBackGas"   referenceNode="gasPedalBackJoint" directionReferenceNode="playerRightFootTargetBackGasRef" />
            <state node="playerRightFootTargetBackBrake" referenceNode="brakePedalBackJoint" />
        </characterTargetNodeModifier>
		
		<cameras>
            <camera node="outdoorCamera" rotatable="true" rotateNode="outdoorCameraTarget" limit="true" useWorldXZRotation="true" rotMinX="-1.4" rotMaxX="1" transMin="3" transMax="25" translation="0 0 3.5" rotation="-25 180 0">
                <raycastNode node="cameraRaycastNode1"/>
                <raycastNode node="cameraRaycastNode2"/>
            </camera>
            <camera node="indoorCamera" rotatable="true" limit="true" rotMinX="-1.1" rotMaxX="0.4" transMin="0" transMax="0" useMirror="true" isInside="true" shadowFocusBox="shadowFocusBox"/>
        </cameras>
    </enterable>
	
	
	<!-- suspensions -->
	<suspensions>
        <suspension node="seatSuspension" weight="150" minTranslation="0 -0.15 0.0" maxTranslation="0 0.15 0.0" suspensionParametersX="20 4" suspensionParametersY="5 1" suspensionParametersZ="20 4" />
        <suspension useCharacterTorso="true" weight="90" minRotation="0 -5 -5" maxRotation="0 5 5" suspensionParametersY="7 1" suspensionParametersZ="7 1" />
    </suspensions>
	
	<!-- drivable -->
    <drivable>
        <steeringWheel node="joystickRot" indoorRotation="20" outdoorRotation="20"/>
        <sounds>
            <waterSplash template="WATER_SPLASH_01" linkNode="YanmarC30R2B" />
        </sounds>		
		<dashboards>
            <dashboard displayType="ROT" valueType="accelerationAxis" node="gasPedalFrontJoint"   minRot="0 0 0"   maxRot="20 0 0"   doInterpolation="true" groups="MOTOR_ACTIVE NOT_REVERSE_DRIVING"/>
            <dashboard displayType="ROT" valueType="decelerationAxis" node="brakePedalFrontJoint" minRot="0 0 0"   maxRot="20 0 0"   doInterpolation="true" groups="MOTOR_ACTIVE NOT_REVERSE_DRIVING"/>
			<dashboard displayType="ROT" valueType="accelerationAxis" node="gasPedalBackJoint"    minRot="0 0 0"   maxRot="-20 0 0"  doInterpolation="true" groups="MOTOR_ACTIVE REVERSE_DRIVING"/>
            <dashboard displayType="ROT" valueType="decelerationAxis" node="brakePedalBackJoint"  minRot="0 0 0"   maxRot="-20 0 0"  doInterpolation="true" groups="MOTOR_ACTIVE REVERSE_DRIVING"/>
            <dashboard displayType="ROT" valueType="movingDirection"  node="joystickDirection"    minRot="-20 0 0" maxRot="20 0 0"   doInterpolation="true" interpolationSpeed="0.01" groups="MOTOR_ACTIVE"/>
        </dashboards>
    </drivable>

	<!-- animations -->
    <animations>
		<!-- reverseDriving -->
		<animation name="reverseDriving">
            <part node="seatRotRot" startTime="0" endTime="2" startRot="0 0 0" endRot="0 -180 0" />
        </animation>
		<!-- tipAnimationBack -->
		<animation name="tipAnimationBack">
			<part node="lockBackRot" 		startTime="0.0" endTime="0.5" 	startRot="0 0 0" endRot="-65 0 0" />
            <part node="bodyRot"            startTime="0.5" endTime="12" 	startRot="0 0 0" endRot="-58 0 0" />
            <part node="doorBackRot"        startTime="0.5" endTime="12"  	startRot="0 0 0" endRot="40 0 0" />
            <part node="effectNodesBack" 	startTime="0.5" endTime="12" 	startRot="0 0 0" endRot="58 0 0" />
        </animation>
		<!-- door animation-->
		<animation name="doorAnimationLeft">
			<part node="doorLeftRot" startTime="0.5" endTime="2" startRot="0 0 0" endRot="0 0 -180" />
			<part node="lockLeft1Rot" startTime="0" endTime="0.5" startRot="0 0 0" endRot="195 0 0" />
			<part node="lockLeft2Rot" startTime="0" endTime="0.5" startRot="0 0 0" endRot="-195 0 0" />
		</animation>
		<animation name="doorAnimationRight">
			<part node="doorRightRot" startTime="0.5" endTime="2" startRot="0 0 0" endRot="0 0 180" />
			<part node="lockRight1Rot" startTime="0" endTime="0.5" startRot="0 0 0" endRot="195 0 0" />
			<part node="lockRight2Rot" startTime="0" endTime="0.5" startRot="0 0 0" endRot="-195 0 0" />
		</animation>
    </animations>
	
	<!-- foldable -->
    <foldable>
        <foldingConfigurations>
            <foldingConfiguration>
                <foldingParts>
                    <foldingPart animationName="doorAnimationLeft" speedScale="1"/>
					<foldingPart animationName="doorAnimationRight" speedScale="1"/>
                </foldingParts>
            </foldingConfiguration>              
        </foldingConfigurations>
    </foldable>
	
	
	<!-- cylindered -->
    <cylindered>
		<!-- movingTools -->
        <movingTools>
            <movingTool node="bodyRot" playSound="true" isConsumingPower="true">
			<dependentPart node="bodyHydraulic"/>
            </movingTool>
			<movingTool node="doorLeftRot" playSound="false">
			</movingTool>
			<movingTool node="doorRightRot" playSound="false">
			</movingTool>
        </movingTools>
        <!-- movingParts -->
		<movingParts>
            <movingPart node="bodyHydraulic" referencePoint="hydraulicBodyRef" referenceFrame="hydraulicBodyRef" >
                <translatingPart node="hydraulicBodyEnd" />
            </movingPart>
        </movingParts>
        <!-- sounds -->
		<sounds>
            <sounds filename="DEFAULT_HYDRAULIC_SOUND" linkNode="0>"/>
        </sounds>
    </cylindered>
	



	<!-- fillUnit -->
    <fillUnit>
        <fillUnitConfigurations>
            <fillUnitConfiguration>
                <fillUnits>				
                    <fillUnit unitTextOverride="$l10n_unit_literShort" showOnHud="false" showInShop="false" fillTypes="diesel" capacity="50" >
                    </fillUnit>
					<fillUnit unitTextOverride="$l10n_unit_literShort" fillTypes="GRAPE GRAPEB OLIVE NOIX NOISETIER MARRON CHATAIGNE" capacity="5000" >
                        <alarmTriggers>
                            <alarmTrigger minFillLevel="1" maxFillLevel="1" turnOffInTrigger="true"/>
                        </alarmTriggers>
						<exactFillRootNode node="exactFillRootNode" />
						<autoAimTargetNode node="fillAutoAimTarget" startZ="1.4" endZ="-2.7" invert="false" fillUnitIndex="2" startPercentage="25"/>
                    </fillUnit>
                    <fillUnit unitTextOverride="$l10n_unit_literShort" showOnHud="false" showInShop="false" showOnInfoHud="false" fillTypes="def" capacity="41" >
                    </fillUnit>
                </fillUnits>
            </fillUnitConfiguration>
        </fillUnitConfigurations>
    </fillUnit>
	
	<!-- fillVolume -->
	<fillVolume>
        <fillVolumeConfigurations>
            <fillVolumeConfiguration>
                <volumes>
                    <volume node="fillVolume" maxDelta="0.2" fillUnitIndex="2" />
                </volumes>
            </fillVolumeConfiguration>
        </fillVolumeConfigurations>
        <unloadInfos>
            <unloadInfo>
                <node node="unloadInfoBack" width="1.0" length="1.7" />
            </unloadInfo>
        </unloadInfos>
       
	   <heightNodes>
            <heightNode>
                <refNode node="fillVolumeHeightNodesBack1" />
                <refNode node="fillVolumeHeightNodesBack2" />
                <refNode node="effectNodesBack" baseScale="1 1 1" transAxis="0 1 0" transMax="0 0.5 0" />
            </heightNode>
		</heightNodes>
		
        <loadInfos>
            <loadInfo>
                <node node="loadInfo" width="0.4" length="0.4" />
            </loadInfo>
        </loadInfos>		
		
    </fillVolume>
	
	<!-- trailer -->
	<trailer>
        <trailerConfigurations>
            <trailerConfiguration>
                <trailer>
                    <tipSide name="$l10n_info_tipSideBack" dischargeNodeIndex="1" >
                        <animation name="tipAnimationBack" speedScale="1.0" startTipTime="0.15"/>
                    </tipSide>
                </trailer>
            </trailerConfiguration>
        </trailerConfigurations>
    </trailer>
	
	<!-- dischargeable -->
	<dischargeable>
        <dischargeNode node="dischargeNodeBack" emptySpeed="2500" fillUnitIndex="2" unloadInfoIndex="1">
            <info width="2.5" length="0.5" zOffset="0.5"/>
            <effects>
                <effectNode effectClass="TipEffect">
                    <effectNode effectNode="effectParticleBack" effectClass="ParticleEffect" />
                    <effectNode effectNode="effectGrainBack" materialType="unloading" materialTypeId="1" fadeTime="0.5" extraDistanceNode="dischargeNodeBack" extraDistance="0.2"/>
                </effectNode>
                <effectNode effectNode="effectSmokeBack" materialType="smoke" materialTypeId="1" fadeTime="0.5" />
            </effects>
        </dischargeNode>
    </dischargeable>
	
	
	
	
    <combine fillUnitIndex="2" allowThreshingDuringRain="true" fillTimeThreshold="2">
        <swath available="false"/>
        <chopper available="false"/>
        <processing toggleTime="0" />

        <folding fillLevelThresholdPct="1"/>
    </combine>
	
    <vineDetector>
        <raycast node="harvestRaycastNode" maxDistance="1.6" />
    </vineDetector>

    <vineCutter fruitType="GRAPE GRAPEB OLIVE NOIX NOISETIER MARRON CHATAIGNE" />
	
	
	<turnOnVehicle turnOffIfNotAllowed="true" />
	
	<!-- honk -->
    <honk>
        <sound template="HONK_MANITOU" linkNode="YanmarC30R2B" />
    </honk>

	<!-- dashboard -->
    <dashboard>
        <groups>
            <group name="MOTOR_STARTING" isMotorStarting="true"/>
            <group name="MOTOR_ACTIVE"   isMotorStarting="true" isMotorRunning="true"/>
			<group name="NOT_REVERSE_DRIVING" isReverseDriving="false"/>
            <group name="REVERSE_DRIVING"     isReverseDriving="true"/>
        </groups>
    </dashboard>
	
	<ai>
    </ai>

	<!-- foliageBending -->
    <foliageBending>
        <bendingNode minX="-0.9" maxX="0.9" minZ="-1.75" maxZ="1.35" yOffset="0.3" />
    </foliageBending>
	
	<!-- materialConfigurations -->
	<baseMaterial>
        <material name="mat_roof" baseNode="roof">
            <shaderParameter name="colorMat0" value="0.2 0.2 0.2 0"/>
        </material>
    </baseMaterial>

    <baseMaterialConfigurations price="250" useDefaultColors="true" defaultColorIndex="0">
        <baseMaterialConfiguration color="0.0 0.4 0.4 1"/>
		<baseMaterialConfiguration color="0.0 0.25 0.5 1"/>
		<material name="mat_roof" shaderParameter="colorMat0" />
    </baseMaterialConfigurations>
	
	<!-- wearable/washable -->
    <wearable wearDuration="480" workMultiplier="5" fieldMultiplier="2"/>
    <washable dirtDuration="90"  washDuration="1"   workMultiplier="3" fieldMultiplier="2"/>

<i3dMappings>
  <i3dMapping id="YanmarC30R2B" node="0>" />
  <i3dMapping id="wheels" node="0>0" />
  <i3dMapping id="wheelConfig" node="0>0|0" />
  <i3dMapping id="wheelFrontLeft" node="0>0|0|0" />
  <i3dMapping id="wheelFrontRight" node="0>0|0|1" />
  <i3dMapping id="wheelBackLeft" node="0>0|0|2" />
  <i3dMapping id="wheelBackRight" node="0>0|0|3" />
  <i3dMapping id="crawlerDriveNodeLeft" node="0>0|1" />
  <i3dMapping id="crawlerDriveNodeRight" node="0>0|2" />
  <i3dMapping id="cameras" node="0>1" />
  <i3dMapping id="outdoorCameraTarget" node="0>1|0" />
  <i3dMapping id="outdoorCamera" node="0>1|0|0" />
  <i3dMapping id="cameraRaycastNode1" node="0>1|1" />
  <i3dMapping id="cameraRaycastNode2" node="0>1|2" />
  <i3dMapping id="shadowFocusBox" node="0>1|3" />
  
  <i3dMapping id="areaHeight" node="0>2|0"/>
  <i3dMapping id="areaStart" node="0>2|1"/>
  <i3dMapping id="areaWidth" node="0>2|2"/>
  
  <i3dMapping id="lights" node="0>3" />
  <i3dMapping id="beaconLight" node="0>3|0" />
  <i3dMapping id="staticLights" node="0>3|1" />
  <i3dMapping id="frontLightStatic" node="0>3|1|0" />
  <i3dMapping id="turnLeftStatic" node="0>3|1|1" />
  <i3dMapping id="turnRightStatic" node="0>3|1|2" />
  <i3dMapping id="workLightStatic" node="0>3|1|3" />
  <i3dMapping id="defaultLights" node="0>3|2" />
  <i3dMapping id="frontLightLow" node="0>3|2|0" />
  <i3dMapping id="highBeamLow" node="0>3|2|1" />
  <i3dMapping id="frontLightHigh" node="0>3|2|2" />
  <i3dMapping id="frontLightHigh1" node="0>3|2|2|0" />
  <i3dMapping id="highBeamHigh" node="0>3|2|3" />
  <i3dMapping id="highBeamHigh1" node="0>3|2|3|0" />
  <i3dMapping id="workLights" node="0>3|3" />
  <i3dMapping id="workLightBackLow" node="0>3|3|0" />
  <i3dMapping id="workLightBackHigh" node="0>3|3|1" />
  <i3dMapping id="turnLights" node="0>3|4" />
  <i3dMapping id="turnLightLeft" node="0>3|4|0" />
  <i3dMapping id="turnLightRight" node="0>3|4|1" />
  <i3dMapping id="visuals" node="0>3|5" />
  <i3dMapping id="lightsVis" node="0>3|5|0" />
  <i3dMapping id="plasticFront" node="0>3|5|1" />
  <i3dMapping id="plasticWorking" node="0>3|5|2" />
  <i3dMapping id="_vis" node="0>4" />
  <i3dMapping id="roof" node="0>4|0" />
  <i3dMapping id="cabin" node="0>4|1" />
  <i3dMapping id="decalCabin" node="0>4|1|0" />
  <i3dMapping id="decalCabin_1" node="0>4|1|0|0" />
  <i3dMapping id="decalCabin_2" node="0>4|1|0|1" />
  <i3dMapping id="decalCabin_3" node="0>4|1|0|2" />
  <i3dMapping id="chassies" node="0>4|2" />
  <i3dMapping id="exhaust" node="0>4|3" />
  <i3dMapping id="exhaustParticles" node="0>4|3|0" />
  <i3dMapping id="engine" node="0>4|4" />
  <i3dMapping id="fireExtingusher" node="0>4|5" />
  <i3dMapping id="logo" node="0>4|6" />
  <i3dMapping id="interior" node="0>4|7" />
  <i3dMapping id="seat_Leg" node="0>4|7|0" />
  <i3dMapping id="rubber_Mat" node="0>4|7|1" />
  <i3dMapping id="dashboard" node="0>4|7|2" />
  <i3dMapping id="dumping_Lever_0" node="0>4|7|3" />
  <i3dMapping id="dumping_Lever_1" node="0>4|7|3|0" />
  <i3dMapping id="joystickDirection" node="0>4|7|4" />
  <i3dMapping id="rear_Lever" node="0>4|7|4|0" />
  <i3dMapping id="pedals" node="0>4|7|5" />
  <i3dMapping id="gasPedalFrontJoint" node="0>4|7|5|0" />
  <i3dMapping id="gasPedalFront" node="0>4|7|5|0|0" />
  <i3dMapping id="playerRightFootTargetGasRef" node="0>4|7|5|0|1" />
  <i3dMapping id="playerRightFootTargetGas" node="0>4|7|5|0|1|0" />
  <i3dMapping id="brakePedalFrontJoint" node="0>4|7|5|1" />
  <i3dMapping id="brakePedalFront" node="0>4|7|5|1|0" />
  <i3dMapping id="playerRightFootTargetBrakeRef" node="0>4|7|5|1|1" />
  <i3dMapping id="playerRightFootTargetBrake" node="0>4|7|5|1|1|0" />
  <i3dMapping id="gasPedalBackJoint" node="0>4|7|5|2" />
  <i3dMapping id="gasPedalBack" node="0>4|7|5|2|0" />
  <i3dMapping id="playerRightFootTargetBackGasRef" node="0>4|7|5|2|1" />
  <i3dMapping id="playerRightFootTargetBackGas" node="0>4|7|5|2|1|0" />
  <i3dMapping id="brakePedalBackJoint" node="0>4|7|5|3" />
  <i3dMapping id="brakePedalBack" node="0>4|7|5|3|0" />
  <i3dMapping id="playerRightFootTargetBackBrakeRef" node="0>4|7|5|3|1" />
  <i3dMapping id="playerRightFootTargetBackBrake" node="0>4|7|5|3|1|0" />
  <i3dMapping id="pedalStatic" node="0>4|7|5|4" />
  <i3dMapping id="playeRoot" node="0>4|7|6" />
  <i3dMapping id="playerRightFootTarget" node="0>4|7|6|0" />
  <i3dMapping id="playerLeftFootTarget" node="0>4|7|6|1" />
  <i3dMapping id="playerRightFootTargetBack" node="0>4|7|6|2" />
  <i3dMapping id="playerLeftFootTargetBack" node="0>4|7|6|3" />
  <i3dMapping id="seatPosition" node="0>4|7|7" />
  <i3dMapping id="seatRotRot" node="0>4|7|7|0" />
  <i3dMapping id="seatRot" node="0>4|7|7|0|0" />
  <i3dMapping id="Bone001" node="0>4|7|7|0|0|0" />
  <i3dMapping id="seatSuspension" node="0>4|7|7|0|0|1" />
  <i3dMapping id="playerSkin" node="0>4|7|7|0|0|1|0" />
  <i3dMapping id="playerRightHandTargetArmRest" node="0>4|7|7|0|0|1|0|0" />
  <i3dMapping id="playerRightHandTargetArmRestBack" node="0>4|7|7|0|0|1|0|1" />
  <i3dMapping id="playerLeftHandTargetArmRest" node="0>4|7|7|0|0|1|0|2" />
  <i3dMapping id="playerLeftHandTargetArmRestBack" node="0>4|7|7|0|0|1|0|3" />
  <i3dMapping id="seat" node="0>4|7|7|0|0|1|1" />
  <i3dMapping id="indoorCamera" node="0>4|7|7|0|0|2" />
  <i3dMapping id="joystick" node="0>4|7|8" />
  <i3dMapping id="joystickRotRotRot" node="0>4|7|8|0" />
  <i3dMapping id="joystickRotRot" node="0>4|7|8|0|0" />
  <i3dMapping id="joystickRot" node="0>4|7|8|0|0|0" />
  <i3dMapping id="travel_leveler" node="0>4|7|8|0|0|0|0" />
  <i3dMapping id="playerHandTargetSteering" node="0>4|7|8|0|0|0|0|0" />
  <i3dMapping id="playerHandTargetSteeringReverse" node="0>4|7|8|0|0|0|0|1" />
  <i3dMapping id="joysticStatic" node="0>4|7|8|0|0|1" />
  <i3dMapping id="travel_Lever_rubber" node="0>4|7|8|0|0|2" />
  <i3dMapping id="bodyTipper" node="0>5" />
  <i3dMapping id="bodyRot" node="0>5|0" />
  <i3dMapping id="body_Tipper" node="0>5|0|0" />
  <i3dMapping id="col_bodyBottom" node="0>5|0|1" />
  <i3dMapping id="col_bodyColumLeft1" node="0>5|0|2" />
  <i3dMapping id="col_bodyColumLeft2" node="0>5|0|3" />
  <i3dMapping id="col_bodyColumRight1" node="0>5|0|4" />
  <i3dMapping id="col_bodyColumRight2" node="0>5|0|5" />
  <i3dMapping id="col_bodyFront" node="0>5|0|6" />
  <i3dMapping id="doorBackRot" node="0>5|0|7" />
  <i3dMapping id="col_doorBack" node="0>5|0|7|0" />
  <i3dMapping id="door_Back" node="0>5|0|7|1" />
  <i3dMapping id="decalDoorBack" node="0>5|0|7|2" />
  <i3dMapping id="decalDoorBack_1" node="0>5|0|7|2|0" />
  <i3dMapping id="decalDoorBack_2" node="0>5|0|7|2|1" />
  <i3dMapping id="doorLeftRot" node="0>5|0|8" />
  <i3dMapping id="col_doorLeft" node="0>5|0|8|0" />
  <i3dMapping id="door_Left" node="0>5|0|8|1" />
  <i3dMapping id="beltIntersectionLeft" node="0>5|0|8|2" />
  <i3dMapping id="intersectionLeft1" node="0>5|0|8|2|0" />
  <i3dMapping id="intersectionLeft1End" node="0>5|0|8|2|0|0" />
  <i3dMapping id="intersectionLeft2" node="0>5|0|8|2|1" />
  <i3dMapping id="intersectionLeft2End" node="0>5|0|8|2|1|0" />
  <i3dMapping id="decalDoorLeft" node="0>5|0|8|3" />
  <i3dMapping id="decalDoorLeft_1" node="0>5|0|8|3|0" />
  <i3dMapping id="decalDoorLeft_2" node="0>5|0|8|3|1" />
  <i3dMapping id="decalDoorLeft_3" node="0>5|0|8|3|2" />
  <i3dMapping id="doorRightRot" node="0>5|0|9" />
  <i3dMapping id="col_doorRight" node="0>5|0|9|0" />
  <i3dMapping id="door_Right" node="0>5|0|9|1" />
  <i3dMapping id="beltIntersectionRight" node="0>5|0|9|2" />
  <i3dMapping id="intersectionRight1" node="0>5|0|9|2|0" />
  <i3dMapping id="intersectionRight1End" node="0>5|0|9|2|0|0" />
  <i3dMapping id="intersectionRight2" node="0>5|0|9|2|1" />
  <i3dMapping id="intersectionRight2End" node="0>5|0|9|2|1|0" />
  <i3dMapping id="decalDoorRight" node="0>5|0|9|3" />
  <i3dMapping id="decalDoorRight_1" node="0>5|0|9|3|0" />
  <i3dMapping id="decalDoorRight_2" node="0>5|0|9|3|1" />
  <i3dMapping id="decalDoorRight_3" node="0>5|0|9|3|2" />
  <i3dMapping id="fillVolumes" node="0>5|0|10" />
  <i3dMapping id="fillVolume" node="0>5|0|10|0" />
  <i3dMapping id="exactFillRootNode" node="0>5|0|10|1" />
  <i3dMapping id="fillAutoAimTarget" node="0>5|0|10|2" />
  <i3dMapping id="fillVolumeHeightNodesBack1" node="0>5|0|10|3" />
  <i3dMapping id="fillVolumeHeightNodesBack2" node="0>5|0|10|4" />
  <i3dMapping id="unloadInfoBack" node="0>5|0|10|5" />
  <i3dMapping id="harvestRaycastNode" node="0>5|0|10|6" />  
  <i3dMapping id="hydraulicBodyRef" node="0>5|0|11" />
  <i3dMapping id="effrects" node="0>5|0|12" />
  <i3dMapping id="particlesBack" node="0>5|0|12|0" />
  <i3dMapping id="effectNodesBack" node="0>5|0|12|0|0" />
  <i3dMapping id="effectGrainBack" node="0>5|0|12|0|0|0" />
  <i3dMapping id="effectSmokeBack" node="0>5|0|12|0|0|1" />
  <i3dMapping id="particleNodesBack" node="0>5|0|12|1" />
  <i3dMapping id="effectParticleBack" node="0>5|0|12|1|0" />
  <i3dMapping id="lockBackRot" node="0>5|0|13" />
  <i3dMapping id="lock_Back" node="0>5|0|13|0" />
  <i3dMapping id="lockLeft1Rot" node="0>5|0|14" />
  <i3dMapping id="lock_Left1" node="0>5|0|14|0" />
  <i3dMapping id="lockLeft2Rot" node="0>5|0|15" />
  <i3dMapping id="lock_Left2" node="0>5|0|15|0" />
  <i3dMapping id="lockRight1Rot" node="0>5|0|16" />
  <i3dMapping id="lock_Right1" node="0>5|0|16|0" />
  <i3dMapping id="lockRight2Rot" node="0>5|0|17" />
  <i3dMapping id="lock_Right2" node="0>5|0|17|0" />
  <i3dMapping id="beltSystem" node="0>5|0|18" />
  <i3dMapping id="beltStart1" node="0>5|0|18|0" />
  <i3dMapping id="beltStart1End" node="0>5|0|18|0|0" />
  <i3dMapping id="beltStart2" node="0>5|0|18|1" />
  <i3dMapping id="beltStart2End" node="0>5|0|18|1|0" />
  <i3dMapping id="beltActivationTrigger" node="0>5|0|18|2" />
  <i3dMapping id="decalBody" node="0>5|0|19" />
  <i3dMapping id="decalBody_1" node="0>5|0|19|0" />
  <i3dMapping id="dischargeNodes" node="0>5|1" />
  <i3dMapping id="dischargeNodeBack" node="0>5|1|0" />
  <i3dMapping id="bodyHydraulic" node="0>5|2" />
  <i3dMapping id="hydraulicBody" node="0>5|2|0" />
  <i3dMapping id="hydraulicBodyEnd" node="0>5|2|0|0" />
  <i3dMapping id="dischargePunch1" node="0>5|2|0|0|0" />
  <i3dMapping id="hydraulicBodyRefFrame" node="0>5|3" />
  <i3dMapping id="exitPoint" node="0>6" />
  <i3dMapping id="skinnedMesh" node="0>7" />
  <i3dMapping id="seat_Skinned" node="0>7|0" />

</i3dMappings>
</vehicle>
Post Reply