[Object]
States = 3d_cab\class323_dmso_cab_interior_Common.csv

;[Object]
;States = 3d_cab\timetable.csv
;textureoverride = timetable

[Object]
States = 3d_cab\class323_dmso_cab_interior_Lights_On.csv,3d_cab\class323_dmso_cab_interior_Lights_Off.csv
StateFunction = if[hasPlugin == 1, !pluginstate[30], 0]

[Object]
States = 3d_cab\power_handle.csv,3d_cab\power_handle_dark.csv
Position = -0.952, 2.0, 11.173
StateFunction = if[hasPlugin == 1, !pluginstate[30], 0]
RotateXFunction = if[powerNotch >= 1, -0.125 * powerNotch, 0.10 * brakeNotchLinear]
RotateXDamping = 20, 0.8
RotateZFunction = if[powerNotch >= 1, 0.05, 0]
RotateZDamping = 20, 1

[Object]
States = 3d_cab\reverser_handle.csv,3d_cab\reverser_handle_dark.csv
Position = -1.030, 2.05, 11.075
StateFunction = if[hasPlugin == 1, !pluginstate[30], 0]
RotateXFunction = 0.5 * reverserNotch
RotateXDamping = 20, 0.8

[Object]
States = 3d_cab\horn_lever.csv,3d_cab\horn_lever_dark.csv
Position = -0.07, 2.06, 11.234
StateFunction = if[hasPlugin == 1, !pluginstate[30], 0]
RotateXFunction = pluginstate[24] * 0.5
RotateXDamping = 30, 0.8
RotateYFunction = -0.3

[Object]
States = 3d_cab\proofhead_on.csv
Position = 0, 0, 0
TextureShiftYFunction = pluginstate[22] * 0.25

[Object]
States = 3d_cab\prooftail_on.csv
Position = 0, 0, 0
TextureShiftYFunction = pluginstate[23] * 0.5

[Object]
States = 3d_cab\switchhead.csv,3d_cab\switchhead_dark.csv
Position = 0, 0, 0
StateFunction = if[hasPlugin == 1, !pluginstate[30], 0]
TextureShiftYFunction = pluginstate[22] * 0.25

[Object]
States = 3d_cab\switchtail.csv,3d_cab\switchtail_dark.csv
Position = 0, 0, 0
StateFunction = if[hasPlugin == 1, !pluginstate[30], 0]
TextureShiftYFunction = pluginstate[23] * 0.5



[Object]
States = 3d_cab\linebatt_on.csv
Position = 0, 0, 0
TextureShiftYFunction = pluginstate[31] * 0.5

[Object]
States = 3d_cab\cb_on.csv
Position = 0, 0, 0
TextureShiftYFunction = pluginstate[33] * 0.5

;[Object]
;States = 3d_cab\haz_on.csv
;Position = 0, 0, 0
;TextureShiftYFunction = pluginstate[14] * 0.5



[Object]
States = 3d_cab\aws_sunflower.csv
Position = 0, 0, 0
StateFunction = if[pluginstate[30], !pluginstate[7], -1]

[Object]
States = 3d_cab\aws_sunflower_dark.csv
Position = 0, 0, 0
StateFunction = if[!pluginstate[30], !pluginstate[7], -1]



[Object]
States = 3d_cab\aws_button.csv
Position = 0, 0, 0
TranslateZFunction = pluginstate[8] * 0.012
TranslateYDirection = 0, -1, 0
TranslateYFunction = pluginstate[8] * 0.0063

[Object]
States = 3d_cab\dra.csv
Position = 0, 0, 0
TextureShiftYFunction = pluginstate[13] * 0.5

[Object]
States = 3d_cab\interlock.csv
Position = 0, 0, 0
TextureShiftYFunction = pluginstate[14] * 0.5

[Object]
States = 3d_cab\guard_buzzer_on.csv
Position = 0, 0, 0
StateFunction = !pluginstate[25]

[Object]
States = 3d_cab\tpws_brake.csv
Position = 0, 0, 0
StateFunction = !pluginstate[9]

[Object]
States = 3d_cab\tpws_isol.csv
Position = 0, 0, 0
StateFunction = !pluginstate[10]

[Object]
States = 3d_cab\tpws_over.csv
Position = 0, 0, 0
StateFunction = !pluginstate[11]

[Object]
States = 3d_cab\radio.csv
Position = 0, 0, 0
StateFunction = !pluginstate[30]

[Object]
States = 3d_cab\destination_display_1a.csv
Position = 0, 0, 0
StateFunction = !pluginstate[30]

[Object]
States = 3d_cab\destination_display_1a.csv
Position = 0, 0, 0
StateFunction = !pluginstate[30]



;brake gauge
[Object]
States = 3d_cab\brake_needle.csv, 3d_cab\brake_needle_dark.csv
StateFunction = if[hasPlugin == 1, !pluginstate[30], 0]
Position = -0.744, 2.263, 11.462
RotateXDirection = -1, 0, 0
RotateXFunction = 1.12 + mainReservoir * 0.0000051
RotateYFunction = -1.11
RotateZFunction = -1.57

[Object]
States = 3d_cab\brake_needle.csv, 3d_cab\brake_needle_dark.csv
StateFunction = if[hasPlugin == 1, !pluginstate[30], 0]
Position = -0.734, 2.263, 11.462
RotateXDirection = 1, 0, 0
RotateXFunction = -1.52 + brakeCylinder * 0.0000053
RotateYFunction = -1.11
RotateZFunction = -1.57

[Object]
States = 3d_cab\speedometer_needle.csv, 3d_cab\speedometer_needle_dark.csv
StateFunction = if[hasPlugin == 1, !pluginstate[30], 0]
Position = -0.5505, 2.232, 11.452
RotateXDirection = -1, 0, 0
RotateXFunction = -3.678 + abs[speedometer[0]] * 0.0945
RotateYFunction = -1.11
RotateZFunction = -1.57


[Object]
States = 3d_cab\ext_headlight_1.csv, 3d_cab\ext_headlight_1a.csv, 3d_cab\ext_headlight_1b.csv
Position = 0, 0, 0
StateFunction = if[pluginstate[30], if[pluginstate[20] > 0, pluginstate[20] - 1, -1], -1]

[Object]
States = 3d_cab\ext_taillight_1.csv
Position = 0, 0, 0
StateFunction = if[pluginstate[30], if[pluginstate[21] > 0, 0, -1], -1]


[Object]
States = ext_view\class323_dmso_wiper_l_2.csv
Position = -0.56, 2.27, 23.33
RotateZFunction = if[pluginstate[198] > 0, power[1 - abs[cos[time]], 0.5] * 1.3, value]

[Object]
States = ext_view\class323_dmso_wiper_l_2a.csv
Position = -0.55, 2.28, 23.33
TranslateXFunction = if[pluginstate[198] > 0, -power[1 - abs[cos[time]], 0.5] * 0.82, value]
TranslateYFunction = if[pluginstate[198] > 0, power[sin[time * 2], 2] * 0.13, value]

[Object]
States = ext_view\class323_dmso_wiper_r_2.csv
Position = 0.56, 2.27, 23.33
RotateZFunction = if[pluginstate[198] > 0, -power[1 - abs[cos[time]], 0.5] * 1.3, value]

[Object]
States = ext_view\class323_dmso_wiper_r_2a.csv
Position = 0.55, 2.28, 23.33
TranslateXFunction = if[pluginstate[198] > 0, power[1 - abs[cos[time]], 0.5] * 0.82, value]
TranslateYFunction = if[pluginstate[198] > 0, power[sin[time * 2], 2] * 0.13, value]


; AI arm - power handle

[Object]
States = 3d_cab\ai_arm_hand_grip_left.csv, 3d_cab\ai_arm_hand_grip_left_dark.csv, 3d_cab\null.csv
StateFunction = if[pluginstate[50], if[pluginstate[51], !pluginstate[30], 2], -1]
Position = -0.885, -47.84, 11.075
RotateXFunction = if[pluginstate[52] == 1, if[powerNotch >= 1, -(0.00037 * powerNotch), (0.00028 * brakeNotchLinear)], -0.03]
RotateXDamping = 20, 0.8
TranslateYFunction = if[powerNotch >= 1, -(0.004 * powerNotch), -(0.0028 * brakeNotchLinear)]
RotateZFunction = if[powerNotch >= 1, 0.0002, 0]
RotateZDamping = 20, 1

; AI arm - reverser handle

[Object]
States = 3d_cab\ai_arm_hand_grip_left.csv, 3d_cab\ai_arm_hand_grip_left_dark.csv, 3d_cab\null.csv
StateFunction = if[pluginstate[50], if[pluginstate[51], !pluginstate[30], 2], -1]
Position = -1.01, -47.85, 10.98
RotateXFunction = if[pluginstate[52] == 2, reverserNotch * 0.00099, -0.03]
RotateXDamping = 20, 0.8
RotateYFunction = -0.25

; AI arm - head and tail light switches

[Object]
States = 3d_cab\ai_arm_hand_headlight_switch_left.csv, 3d_cab\ai_arm_hand_headlight_switch_left_dark.csv, 3d_cab\null.csv
StateFunction = if[pluginstate[50], if[pluginstate[51], !pluginstate[30], 2], -1]
Position = -0.875, -47.76, 11.32
RotateXFunction = if[pluginstate[52] == 3 | pluginstate[52] == 4, 0, -0.03]
RotateXDamping = 10, 0.8
RotateZFunction = if[pluginstate[52] == 4, 0.0013, 0]
RotateZDamping = 10, 0.8

; AI arm - pantograph up and down buttons

[Object]
States = 3d_cab\ai_arm_hand_point_left.csv, 3d_cab\ai_arm_hand_point_left_dark.csv, 3d_cab\null.csv
StateFunction = if[pluginstate[50], if[pluginstate[51], !pluginstate[30], 2], -1]
Position = -0.80, -47.88, 11.21
RotateXFunction = if[pluginstate[52] == 5 | pluginstate[52] == 6, 0, -0.03]
RotateXDamping = 10, 0.8
RotateZFunction = if[pluginstate[52] == 6, -0.0015, 0]
RotateZDamping = 10, 0.8

; AI arm - guard's buzzer button

[Object]
States = 3d_cab\ai_arm_hand_point_left.csv, 3d_cab\ai_arm_hand_point_left_dark.csv, 3d_cab\null.csv
StateFunction = if[pluginstate[50], if[pluginstate[51], !pluginstate[30], 2], -1]
Position = -5.775, -46.66, 19.61
RotateXFunction = if[pluginstate[52] == 7, -0.2, -0.23]
RotateXDamping = 10, 0.8
RotateYFunction = -0.5
TranslateZFunction = pluginstate[25] * 0.003

; AI arm - AWS reset button

[Object]
States = 3d_cab\ai_arm_hand_point_right.csv, 3d_cab\ai_arm_hand_point_right_dark.csv, 3d_cab\null.csv
StateFunction = if[pluginstate[50], if[pluginstate[51], !pluginstate[30], 2], -1]
Position = -0.32, -47.815, 11.205
RotateXFunction = if[pluginstate[53] == 1, 0, -0.03]
RotateXDamping = 10, 0.8
TranslateZFunction = pluginstate[8] * 0.012

; AI arm - DRA

[Object]
States = 3d_cab\ai_arm_hand_point_right.csv, 3d_cab\ai_arm_hand_point_right_dark.csv, 3d_cab\null.csv
StateFunction = if[pluginstate[50], if[pluginstate[51], !pluginstate[30], 2], -1]
Position = -0.465, -47.93, 11.19
RotateXFunction = if[pluginstate[53] == 2, 0, -0.03]
RotateXDamping = 10, 0.8
RotateYFunction = -0.4

; AI arm - horn lever

[Object]
States = 3d_cab\ai_arm_hand_grip_right.csv, 3d_cab\ai_arm_hand_grip_right_dark.csv, 3d_cab\null.csv
StateFunction = if[pluginstate[50], if[pluginstate[51], !pluginstate[30], 2], -1]
Position = -0.19, -47.87, 11.09
RotateXFunction = if[pluginstate[53] == 3, pluginstate[24] * 0.0006, -0.03]
RotateXDamping = 10, 0.8
RotateYFunction = if[pluginstate[24] == 2, 0.05, 0.2]
RotateYDamping = 10, 0.8
