LUADOC - Farming Simulator 22

Script v1_7_1_0

Engine v1_7_1_0

Foundation Reference

TurnOnVehicle

Description
Specialization for vehicles which can be switched on and off
Functions

actionControllerTurnOnEvent

Description
Definition
actionControllerTurnOnEvent()
Code
926function TurnOnVehicle.actionControllerTurnOnEvent(self, direction)
927 if direction > 0 then
928 if self:getIsAIActive() then
929 local rootVehicle = self.rootVehicle
930 if rootVehicle.getAIFieldWorkerIsTurning ~= nil and rootVehicle:getAIFieldWorkerIsTurning() then
931 return false
932 end
933 end
934
935 if self:getCanBeTurnedOn() then
936 self:setIsTurnedOn(true)
937 return true
938 else
939 return false
940 end
941 else
942 self:setIsTurnedOn(false)
943 return not self:getIsTurnedOn()
944 end
945end

actionEventTurnOn

Description
Definition
actionEventTurnOn()
Code
949function TurnOnVehicle.actionEventTurnOn(self, actionName, inputValue, callbackState, isAnalog)
950 if self:getCanToggleTurnedOn() and self:getCanBeTurnedOn() then
951 self:setIsTurnedOn(not self:getIsTurnedOn())
952 else
953 if not self:getIsTurnedOn() then
954 local warning = self:getTurnedOnNotAllowedWarning()
955 if warning ~= nil then
956 g_currentMission:showBlinkingWarning(warning, 2000)
957 end
958 end
959 end
960end

actionEventTurnOnAll

Description
Definition
actionEventTurnOnAll()
Code
964function TurnOnVehicle.actionEventTurnOnAll(self, actionName, inputValue, callbackState, isAnalog)
965 if self:getCanToggleTurnedOn() then
966 local canBeTurnedOn, warning = self:getCanBeTurnedOnAll()
967 if canBeTurnedOn then
968 local vehicles = self.rootVehicle:getChildVehicles()
969 for i=1, #vehicles do
970 local vehicle = vehicles[i]
971 if vehicle.setIsTurnedOn ~= nil then
972 vehicle:setIsTurnedOn(not vehicle:getIsTurnedOn())
973 end
974 end
975 else
976 if not self:getIsTurnedOn() then
977 if warning ~= nil then
978 g_currentMission:showBlinkingWarning(warning, 2000)
979 end
980 end
981 end
982 end
983end

dashboardRpmAttributes

Description
Definition
dashboardRpmAttributes()
Code
1019function TurnOnVehicle.dashboardRpmAttributes(self, xmlFile, key, dashboard, isActive)
1020 dashboard.minRpm = xmlFile:getValue(key .. "#minRpm", 0)
1021 dashboard.maxRpm = xmlFile:getValue(key .. "#maxRpm", 1000)
1022
1023 return true
1024end

dashboardRpmValue

Description
Definition
dashboardRpmValue()
Code
1028function TurnOnVehicle.dashboardRpmValue(self, dashboard)
1029 return dashboard.minRpm + (dashboard.maxRpm - dashboard.minRpm) * self.spec_turnOnVehicle.turnedOnSpeed.alpha
1030end

getAIRequiresTurnOffOnHeadland

Description
Definition
getAIRequiresTurnOffOnHeadland()
Code
554function TurnOnVehicle:getAIRequiresTurnOffOnHeadland()
555 return false
556end

getAIRequiresTurnOn

Description
Definition
getAIRequiresTurnOn()
Code
542function TurnOnVehicle:getAIRequiresTurnOn()
543 return self.spec_turnOnVehicle.aiRequiresTurnOn
544end

getAlarmTriggerIsActive

Description
Definition
getAlarmTriggerIsActive()
Code
674function TurnOnVehicle:getAlarmTriggerIsActive(superFunc, alarmTrigger)
675 local ret = superFunc(self, alarmTrigger)
676
677 if alarmTrigger.needsTurnOn then
678 if not self:getIsTurnedOn() then
679 ret = false
680 end
681 end
682
683 return ret
684end

getBunkerSiloCompacterScale

Description
Definition
getBunkerSiloCompacterScale()
Code
789function TurnOnVehicle:getBunkerSiloCompacterScale(superFunc)
790 local spec = self.spec_bunkerSiloCompacter
791 if spec.turnedOnCompactingScale ~= nil then
792 if self:getIsTurnedOn() then
793 return spec.turnedOnCompactingScale
794 end
795 end
796
797 return superFunc(self)
798end

getCanAIImplementContinueWork

Description
Returns true if vehicle is ready for ai work
Definition
getCanAIImplementContinueWork()
Return Values
booleanisReadyis ready for ai work
Code
636function TurnOnVehicle:getCanAIImplementContinueWork(superFunc)
637 local canContinue, stopAI, stopReason = superFunc(self)
638 if not canContinue then
639 return false, stopAI, stopReason
640 end
641
642 local ret = false
643 if self:getCanBeTurnedOn() then
644 if self:getIsTurnedOn() then
645 ret = true
646 end
647 end
648
649 if not self:getAIRequiresTurnOn() then
650 ret = true
651 end
652
653 -- on headland the tool can be turned off
654 if not self:getIsAIImplementInLine() then
655 ret = true
656 end
657
658 return ret
659end

getCanBeSelected

Description
Definition
getCanBeSelected()
Code
739function TurnOnVehicle:getCanBeSelected(superFunc)
740 return true
741end

getCanBeTurnedOn

Description
Returns if vehicle can be turned on
Definition
getCanBeTurnedOn()
Return Values
booleancanBeTurnedOnvehicle can be turned on
Code
477function TurnOnVehicle:getCanBeTurnedOn()
478 local spec = self.spec_turnOnVehicle
479
480 if spec.isAlwaysTurnedOn then
481 return false
482 end
483
484 if self.getInputAttacherJoint ~= nil then
485 local inputAttacherJoint = self:getInputAttacherJoint()
486
487 if inputAttacherJoint ~= nil and inputAttacherJoint.canBeTurnedOn ~= nil and not inputAttacherJoint.canBeTurnedOn then
488 return false
489 end
490 end
491
492 if not self:getIsPowered() then
493 return false
494 end
495
496 return true
497end

getCanBeTurnedOnAll

Description
Returns if all vehicles can be turned on
Definition
getCanBeTurnedOnAll()
Return Values
booleancanBeTurnedOnall vehicles can be turned on
Code
502function TurnOnVehicle:getCanBeTurnedOnAll()
503 local vehicles = self.rootVehicle:getChildVehicles()
504 for i=1, #vehicles do
505 local vehicle = vehicles[i]
506 if vehicle.getCanBeTurnedOn ~= nil then
507 if not vehicle:getCanBeTurnedOn() then
508 return false
509 end
510 end
511 end
512
513 return true
514end

getCanToggleTurnedOn

Description
Returns if user is allowed to turn on the vehicle
Definition
getCanToggleTurnedOn()
Return Values
booleanallowallow turn on
Code
519function TurnOnVehicle:getCanToggleTurnedOn()
520 local spec = self.spec_turnOnVehicle
521
522 if spec.isAlwaysTurnedOn then
523 return false
524 end
525
526 if spec.turnedOnByAttacherVehicle then
527 return false
528 end
529
530 return true
531end

getIsDischargeNodeActive

Description
Definition
getIsDischargeNodeActive()
Code
768function TurnOnVehicle:getIsDischargeNodeActive(superFunc, dischargeNode)
769 if dischargeNode.needsSetIsTurnedOn then
770 if not self:getIsTurnedOn() then
771 return false
772 end
773 end
774
775 return superFunc(self, dischargeNode)
776end

getIsFillUnitActive

Description
Definition
getIsFillUnitActive()
Code
698function TurnOnVehicle:getIsFillUnitActive(superFunc, fillUnitIndex)
699 local spec = self.spec_turnOnVehicle
700 if spec.activatableFillUnits[fillUnitIndex] == true then
701 if not self:getIsTurnedOn() then
702 return false
703 end
704 end
705
706 return superFunc(self, fillUnitIndex)
707end

getIsOperating

Description
Returns if vehicle is operating
Definition
getIsOperating()
Return Values
booleanisOperatingis operating
Code
664function TurnOnVehicle:getIsOperating(superFunc)
665 if self:getIsTurnedOn() then
666 return true
667 end
668
669 return superFunc(self)
670end

getIsPowerTakeOffActive

Description
Definition
getIsPowerTakeOffActive()
Code
745function TurnOnVehicle:getIsPowerTakeOffActive(superFunc)
746 return self:getIsTurnedOn() or superFunc(self)
747end

getIsSeedChangeAllowed

Description
Definition
getIsSeedChangeAllowed()
Code
733function TurnOnVehicle:getIsSeedChangeAllowed(superFunc)
734 return superFunc(self) and not self:getIsTurnedOn()
735end

getIsTurnedOn

Description
Returns if vehicle is turned on
Definition
getIsTurnedOn()
Return Values
booleanisTurnedOnvehicle is turned on
Code
468function TurnOnVehicle:getIsTurnedOn()
469 local spec = self.spec_turnOnVehicle
470
471 return spec.isAlwaysTurnedOn or spec.isTurnedOn
472end

getIsTurnedOnAnimationActive

Description
Definition
getIsTurnedOnAnimationActive()
Code
581function TurnOnVehicle:getIsTurnedOnAnimationActive(turnedOnAnimation)
582 if not self:getIsTurnedOn() then
583 return false
584 end
585
586 return true
587end

getIsWorkAreaActive

Description
Returns true if work area is active
Definition
getIsWorkAreaActive(table workArea)
Arguments
tableworkAreaworkArea
Return Values
booleanisActivework area is active
Code
625function TurnOnVehicle:getIsWorkAreaActive(superFunc, workArea)
626 if not self:getIsTurnedOn() and workArea.needsSetIsTurnedOn then
627 return false
628 end
629
630 return superFunc(self, workArea)
631end

getIsWorkModeChangeAllowed

Description
Definition
getIsWorkModeChangeAllowed()
Code
802function TurnOnVehicle:getIsWorkModeChangeAllowed(superFunc)
803 local spec = self.spec_workMode
804 if spec.allowChangeWhileTurnedOn ~= nil then
805 if self:getIsTurnedOn() then
806 return false
807 end
808 end
809
810 return superFunc(self)
811end

getRequiresTurnOn

Description
Definition
getRequiresTurnOn()
Code
548function TurnOnVehicle:getRequiresTurnOn()
549 return self.spec_turnOnVehicle.requiresTurnOn
550end

getShovelNodeIsActive

Description
Definition
getShovelNodeIsActive()
Code
721function TurnOnVehicle:getShovelNodeIsActive(superFunc, shovelNode)
722 if shovelNode.needsActiveVehicle then
723 if not self:getIsTurnedOn() then
724 return false
725 end
726 end
727
728 return superFunc(self, shovelNode)
729end

getTurnedOnNotAllowedWarning

Description
Returns turn on not allowed warning text
Definition
getTurnedOnNotAllowedWarning()
Return Values
stringwarningTextturn on not allowed warning text
Code
536function TurnOnVehicle:getTurnedOnNotAllowedWarning()
537 return nil
538end

getTurnedOnSpeedFactor

Description
Definition
getTurnedOnSpeedFactor()
Code
1011function TurnOnVehicle:getTurnedOnSpeedFactor()
1012 return self.spec_turnOnVehicle.turnedOnSpeed.alpha
1013end

getUseTurnedOnSchema

Description
Definition
getUseTurnedOnSchema()
Code
591function TurnOnVehicle:getUseTurnedOnSchema(superFunc)
592 return superFunc(self) or self:getIsTurnedOn()
593end

initSpecialization

Description
Definition
initSpecialization()
Code
25function TurnOnVehicle.initSpecialization()
26 Vehicle.registerStateChange("TURN_ON")
27 Vehicle.registerStateChange("TURN_OFF")
28
29 local schema = Vehicle.xmlSchema
30 schema:setXMLSpecializationType("TurnOnVehicle")
31
32 schema:register(XMLValueType.STRING, "vehicle.turnOnVehicle#toggleButton", "Input action name", "IMPLEMENT_EXTRA")
33 schema:register(XMLValueType.L10N_STRING, "vehicle.turnOnVehicle#turnOffText", "Turn off text", "action_turnOffOBJECT")
34 schema:register(XMLValueType.L10N_STRING, "vehicle.turnOnVehicle#turnOnText", "Turn on text", "action_turnOnOBJECT")
35 schema:register(XMLValueType.BOOL, "vehicle.turnOnVehicle#isAlwaysTurnedOn", "Always turned on", false)
36 schema:register(XMLValueType.BOOL, "vehicle.turnOnVehicle#turnedOnByAttacherVehicle", "Turned on by attacher vehicle", false)
37 schema:register(XMLValueType.BOOL, "vehicle.turnOnVehicle#turnOffIfNotAllowed", "Turn off if not allowed", false)
38 schema:register(XMLValueType.BOOL, "vehicle.turnOnVehicle#turnOffOnDeactivate", "Turn off if the vehicle is deactivated", true)
39
40 schema:register(XMLValueType.BOOL, "vehicle.turnOnVehicle#aiRequiresTurnOn", "AI requires turned on vehicle", true)
41 schema:register(XMLValueType.BOOL, "vehicle.turnOnVehicle#requiresTurnOn", "(Mobile only) Vehicle requires turn on", true)
42
43 AnimationManager.registerAnimationNodesXMLPaths(schema, "vehicle.turnOnVehicle.animationNodes")
44
45 SoundManager.registerSampleXMLPaths(schema, "vehicle.turnOnVehicle.sounds", "start(?)")
46 SoundManager.registerSampleXMLPaths(schema, "vehicle.turnOnVehicle.sounds", "stop(?)")
47 SoundManager.registerSampleXMLPaths(schema, "vehicle.turnOnVehicle.sounds", "work(?)")
48
49 schema:register(XMLValueType.STRING, "vehicle.turnOnVehicle.turnedAnimation#name", "Turned animation name (Animation played while activating and deactivating)")
50 schema:register(XMLValueType.FLOAT, "vehicle.turnOnVehicle.turnedAnimation#turnOnSpeedScale", "Turn on speed scale", 1)
51 schema:register(XMLValueType.FLOAT, "vehicle.turnOnVehicle.turnedAnimation#turnOffSpeedScale", "Turn off speed scale", "Inversed turnOnSpeedScale")
52
53 schema:register(XMLValueType.STRING, TurnOnVehicle.TURNED_ON_ANIMATION_XML_PATH .. "#name", "Turned on animation name (Animation played while turn on)")
54 schema:register(XMLValueType.FLOAT, TurnOnVehicle.TURNED_ON_ANIMATION_XML_PATH .. "#turnOnFadeTime", "Turn on fade time", 1)
55 schema:register(XMLValueType.FLOAT, TurnOnVehicle.TURNED_ON_ANIMATION_XML_PATH .. "#turnOffFadeTime", "Turn off fade time", 1)
56 schema:register(XMLValueType.FLOAT, TurnOnVehicle.TURNED_ON_ANIMATION_XML_PATH .. "#speedScale", "Speed scale", 1)
57
58 schema:register(XMLValueType.INT, "vehicle.turnOnVehicle.activatableFillUnits.activatableFillUnit(?)#index", "Activateable fill unit index")
59
60
61 schema:register(XMLValueType.BOOL, Attachable.INPUT_ATTACHERJOINT_XML_KEY .. "#canBeTurnedOn", "Attacher joint can turn on implement", true)
62 schema:register(XMLValueType.BOOL, Attachable.INPUT_ATTACHERJOINT_CONFIG_XML_KEY .. "#canBeTurnedOn", "Attacher joint can turn on implement", true)
63
64 schema:register(XMLValueType.BOOL, WorkArea.WORK_AREA_XML_KEY .. "#needsSetIsTurnedOn", "Work area needs turned on vehicle to work", true)
65 schema:register(XMLValueType.BOOL, WorkArea.WORK_AREA_XML_CONFIG_KEY .. "#needsSetIsTurnedOn", "Work area needs turned on vehicle to work", true)
66
67 schema:register(XMLValueType.BOOL, FillUnit.ALARM_TRIGGER_XML_KEY .. "#needsTurnOn", "Needs turned on vehicle", false)
68 schema:register(XMLValueType.BOOL, FillUnit.ALARM_TRIGGER_XML_KEY .. "#turnOffInTrigger", "Turn vehicle off when triggered", false)
69
70 schema:register(XMLValueType.BOOL, Shovel.SHOVEL_NODE_XML_KEY .. "#needsActivation", "Needs activation", false)
71
72 schema:register(XMLValueType.BOOL, Dischargeable.DISCHARGE_NODE_XML_PATH .. "#needsSetIsTurnedOn", "Vehicle needs to be turned on to activate discharge node", false)
73 schema:register(XMLValueType.BOOL, Dischargeable.DISCHARGE_NODE_XML_PATH .. "#turnOnActivateNode", "Discharge node is set active when vehicle is turned on", false)
74
75 schema:register(XMLValueType.BOOL, Dischargeable.DISCHARGE_NODE_CONFIG_XML_PATH .. "#needsSetIsTurnedOn", "Vehicle needs to be turned on to activate discharge node", false)
76 schema:register(XMLValueType.BOOL, Dischargeable.DISCHARGE_NODE_CONFIG_XML_PATH .. "#turnOnActivateNode", "Discharge node is set active when vehicle is turned on", false)
77
78 schema:register(XMLValueType.FLOAT, BunkerSiloCompacter.XML_PATH .. "#turnedOnCompactingScale", "Compacting scale which is used while vehicle is turned on", "normal scale")
79
80 schema:register(XMLValueType.TIME, "vehicle.turnOnVehicle.turnedOnSpeed#fadeInTime", "(Turned on speed simulation - used as sound modifer and for rpm dashboards) Time to reach max. turned on speed", 1)
81 schema:register(XMLValueType.TIME, "vehicle.turnOnVehicle.turnedOnSpeed#fadeOutTime", "(Turned on speed simulation - used as sound modifer and for rpm dashboards) Time to reach the turned off speed again", 1)
82 schema:register(XMLValueType.FLOAT, "vehicle.turnOnVehicle.turnedOnSpeed#variance", "Variation value at max. speed", 0.02)
83 schema:register(XMLValueType.FLOAT, "vehicle.turnOnVehicle.turnedOnSpeed#varianceSpeed", "Speed factor of variance change", 1)
84
85 Dashboard.registerDashboardXMLPaths(schema, "vehicle.turnOnVehicle.dashboards", "turnedOn | rpm")
86 schema:register(XMLValueType.FLOAT, "vehicle.turnOnVehicle.dashboards.dashboard(?)#minRpm", "Rpm value if vehicle is turned off", 0)
87 schema:register(XMLValueType.FLOAT, "vehicle.turnOnVehicle.dashboards.dashboard(?)#maxRpm", "Rpm value if vehicle is turned on", 1000)
88
89 schema:setXMLSpecializationType()
90end

loadAlarmTrigger

Description
Definition
loadAlarmTrigger()
Code
688function TurnOnVehicle:loadAlarmTrigger(superFunc, xmlFile, key, alarmTrigger, fillUnit)
689 local ret = superFunc(self, xmlFile, key, alarmTrigger, fillUnit)
690 alarmTrigger.needsTurnOn = xmlFile:getValue(key .. "#needsTurnOn", false)
691 alarmTrigger.turnOffInTrigger = xmlFile:getValue(key .. "#turnOffInTrigger", false)
692
693 return ret
694end

loadBunkerSiloCompactorFromXML

Description
Definition
loadBunkerSiloCompactorFromXML()
Code
780function TurnOnVehicle:loadBunkerSiloCompactorFromXML(superFunc, xmlFile, key)
781 superFunc(self, xmlFile, key)
782
783 local spec = self.spec_bunkerSiloCompacter
784 spec.turnedOnCompactingScale = xmlFile:getValue(key .. "#turnedOnCompactingScale")
785end

loadDischargeNode

Description
Definition
loadDischargeNode()
Code
751function TurnOnVehicle:loadDischargeNode(superFunc, xmlFile, key, entry)
752 if not superFunc(self, xmlFile, key, entry) then
753 return false
754 end
755
756 entry.needsSetIsTurnedOn = xmlFile:getValue(key.."#needsSetIsTurnedOn", false)
757 entry.turnOnActivateNode = xmlFile:getValue(key.."#turnOnActivateNode", false)
758 if entry.turnOnActivateNode then
759 local spec = self.spec_turnOnVehicle
760 spec.activateableDischargeNode = entry
761 end
762
763 return true
764end

loadInputAttacherJoint

Description
Called on loading
Definition
loadInputAttacherJoint(table savegame)
Arguments
tablesavegamesavegame
Code
598function TurnOnVehicle:loadInputAttacherJoint(superFunc, xmlFile, key, inputAttacherJoint, i)
599 if not superFunc(self, xmlFile, key, inputAttacherJoint, i) then
600 return false
601 end
602
603 inputAttacherJoint.canBeTurnedOn = xmlFile:getValue(key.. "#canBeTurnedOn", true)
604
605 return true
606end

loadShovelNode

Description
Definition
loadShovelNode()
Code
711function TurnOnVehicle:loadShovelNode(superFunc, xmlFile, key, shovelNode)
712 superFunc(self, xmlFile, key, shovelNode)
713
714 shovelNode.needsActiveVehicle = xmlFile:getValue(key .. "#needsActivation", false)
715
716 return true
717end

loadTurnedOnAnimationFromXML

Description
Definition
loadTurnedOnAnimationFromXML()
Code
560function TurnOnVehicle:loadTurnedOnAnimationFromXML(xmlFile, key, turnedOnAnimation)
561 local name = self.xmlFile:getValue(key.."#name")
562 if name == nil then
563 Logging.xmlWarning(xmlFile, "Missing animation name in '%s'", key)
564 return false
565 end
566
567 turnedOnAnimation.name = name
568 turnedOnAnimation.turnOnFadeTime = self.xmlFile:getValue(key.."#turnOnFadeTime", 1) * 1000
569 turnedOnAnimation.turnOffFadeTime = self.xmlFile:getValue(key.."#turnOffFadeTime", 1) * 1000
570 turnedOnAnimation.speedScale = self.xmlFile:getValue(key.."#speedScale", 1)
571 turnedOnAnimation.speedDirection = 0
572 turnedOnAnimation.currentSpeed = 0
573 turnedOnAnimation.isTurnedOn = false
574
575 return true
576end

loadWorkAreaFromXML

Description
Loads work areas from xml
Definition
loadWorkAreaFromXML(table workArea, integer xmlFile, string key)
Arguments
tableworkAreaworkArea
integerxmlFileid of xml object
stringkeykey
Code
613function TurnOnVehicle:loadWorkAreaFromXML(superFunc, workArea, xmlFile, key)
614 local retValue = superFunc(self, workArea, xmlFile, key)
615
616 workArea.needsSetIsTurnedOn = xmlFile:getValue(key.."#needsSetIsTurnedOn", true)
617
618 return retValue
619end

onAlarmTriggerChanged

Description
Definition
onAlarmTriggerChanged()
Code
833function TurnOnVehicle:onAlarmTriggerChanged(alarmTrigger, state)
834 if state then
835 if alarmTrigger.turnOffInTrigger then
836 self:setIsTurnedOn(false, true)
837 end
838 end
839end

onDeactivate

Description
Called on deactivate
Definition
onDeactivate()
Code
859function TurnOnVehicle:onDeactivate()
860 local spec = self.spec_turnOnVehicle
861 if spec.turnOffOnDeactivate then
862 self:setIsTurnedOn(false, true)
863 end
864end

onDelete

Description
Called on deleting
Definition
onDelete()
Code
269function TurnOnVehicle:onDelete()
270 local spec = self.spec_turnOnVehicle
271 if spec.samples ~= nil then
272 g_soundManager:deleteSamples(spec.samples.start)
273 g_soundManager:deleteSamples(spec.samples.stop)
274 g_soundManager:deleteSamples(spec.samples.work)
275 end
276 g_animationManager:deleteAnimations(spec.animationNodes)
277end

onLoad

Description
Called on loading
Definition
onLoad(table savegame)
Arguments
tablesavegamesavegame
Code
164function TurnOnVehicle:onLoad(savegame)
165
166 XMLUtil.checkDeprecatedXMLElements(self.xmlFile, "vehicle.turnOnSettings#turnOffText", "vehicle.turnOnVehicle#turnOffText") --FS15 to FS17
167 XMLUtil.checkDeprecatedXMLElements(self.xmlFile, "vehicle.turnOnSettings#turnOnText", "vehicle.turnOnVehicle#turnOnText") --FS15 to FS17
168 XMLUtil.checkDeprecatedXMLElements(self.xmlFile, "vehicle.turnOnSettings#needsSelection") --FS15 to FS17
169 XMLUtil.checkDeprecatedXMLElements(self.xmlFile, "vehicle.turnOnSettings#isAlwaysTurnedOn", "vehicle.turnOnVehicle#isAlwaysTurnedOn") --FS15 to FS17
170 XMLUtil.checkDeprecatedXMLElements(self.xmlFile, "vehicle.turnOnSettings#toggleButton", "vehicle.turnOnVehicle#toggleButton") --FS15 to FS17
171 XMLUtil.checkDeprecatedXMLElements(self.xmlFile, "vehicle.turnOnSettings#animationName", "vehicle.turnOnVehicle.turnedAnimation#name") --FS15 to FS17
172 XMLUtil.checkDeprecatedXMLElements(self.xmlFile, "vehicle.turnOnSettings#turnOnSpeedScale", "vehicle.turnOnVehicle.turnedAnimation#turnOnSpeedScale") --FS15 to FS17
173 XMLUtil.checkDeprecatedXMLElements(self.xmlFile, "vehicle.turnOnSettings#turnOffSpeedScale", "vehicle.turnOnVehicle.turnedAnimation#turnOffSpeedScale") --FS15 to FS17
174 XMLUtil.checkDeprecatedXMLElements(self.xmlFile, "vehicle.turnedOnRotationNodes.turnedOnRotationNode#type", "vehicle.turnOnVehicle.animationNodes.animationNode", "turnOn") --FS17 to FS19
175 XMLUtil.checkDeprecatedXMLElements(self.xmlFile, "vehicle.foldable.foldingParts#turnOffOnFold", "vehicle.turnOnVehicle#turnOffIfNotAllowed") --FS17 to FS19
176
177 local spec = self.spec_turnOnVehicle
178
179 local turnOnButtonStr = self.xmlFile:getValue("vehicle.turnOnVehicle#toggleButton")
180 if turnOnButtonStr ~= nil then
181 spec.toggleTurnOnInputBinding = InputAction[turnOnButtonStr]
182 end
183 spec.toggleTurnOnInputBinding = Utils.getNoNil(spec.toggleTurnOnInputBinding, InputAction.IMPLEMENT_EXTRA)
184
185 spec.turnOffText = string.format(self.xmlFile:getValue("vehicle.turnOnVehicle#turnOffText", "action_turnOffOBJECT", self.customEnvironment), self.typeDesc)
186 spec.turnOnText = string.format(self.xmlFile:getValue("vehicle.turnOnVehicle#turnOnText", "action_turnOnOBJECT", self.customEnvironment), self.typeDesc)
187 spec.isTurnedOn = false
188 spec.isAlwaysTurnedOn = self.xmlFile:getValue("vehicle.turnOnVehicle#isAlwaysTurnedOn", false)
189 spec.turnedOnByAttacherVehicle = self.xmlFile:getValue("vehicle.turnOnVehicle#turnedOnByAttacherVehicle", false)
190 spec.turnOffIfNotAllowed = self.xmlFile:getValue("vehicle.turnOnVehicle#turnOffIfNotAllowed", true)
191 spec.turnOffOnDeactivate = self.xmlFile:getValue("vehicle.turnOnVehicle#turnOffOnDeactivate", not GS_IS_MOBILE_VERSION)
192
193 spec.aiRequiresTurnOn = self.xmlFile:getValue("vehicle.turnOnVehicle#aiRequiresTurnOn", true)
194 spec.requiresTurnOn = self.xmlFile:getValue("vehicle.turnOnVehicle#requiresTurnOn", true)
195
196 if self.isClient then
197 spec.animationNodes = g_animationManager:loadAnimations(self.xmlFile, "vehicle.turnOnVehicle.animationNodes", self.components, self, self.i3dMappings)
198
199 local allowsAnimations = SpecializationUtil.hasSpecialization(AnimatedVehicle, self.specializations)
200 if allowsAnimations then
201 local turnOnAnimation = self.xmlFile:getValue("vehicle.turnOnVehicle.turnedAnimation#name")
202 if turnOnAnimation ~= nil then
203 spec.turnOnAnimation = {}
204 spec.turnOnAnimation.name = turnOnAnimation
205 spec.turnOnAnimation.turnOnSpeedScale = self.xmlFile:getValue("vehicle.turnOnVehicle.turnedAnimation#turnOnSpeedScale", 1)
206 spec.turnOnAnimation.turnOffSpeedScale = self.xmlFile:getValue("vehicle.turnOnVehicle.turnedAnimation#turnOffSpeedScale", -spec.turnOnAnimation.turnOnSpeedScale)
207 end
208 end
209
210 spec.turnedOnAnimations = {}
211 if allowsAnimations then
212 self.xmlFile:iterate("vehicle.turnOnVehicle.turnedOnAnimation", function(index, key)
213 local entry = {}
214 if self:loadTurnedOnAnimationFromXML(self.xmlFile, key, entry) then
215 table.insert(spec.turnedOnAnimations, entry)
216 end
217 end)
218 end
219
220 spec.activatableFillUnits = {}
221 local i = 0
222 while true do
223 local key = string.format("vehicle.turnOnVehicle.activatableFillUnits.activatableFillUnit(%d)", i)
224 if not self.xmlFile:hasProperty(key) then
225 break
226 end
227
228 local fillUnitIndex = self.xmlFile:getValue(key.."#index")
229 if fillUnitIndex ~= nil then
230 spec.activatableFillUnits[fillUnitIndex] = true
231 end
232
233 i = i + 1
234 end
235
236 spec.samples = {}
237 spec.samples.start = g_soundManager:loadSamplesFromXML(self.xmlFile, "vehicle.turnOnVehicle.sounds", "start", self.baseDirectory, self.components, 1, AudioGroup.VEHICLE, self.i3dMappings, self)
238 spec.samples.stop = g_soundManager:loadSamplesFromXML(self.xmlFile, "vehicle.turnOnVehicle.sounds", "stop", self.baseDirectory, self.components, 1, AudioGroup.VEHICLE, self.i3dMappings, self)
239 spec.samples.work = g_soundManager:loadSamplesFromXML(self.xmlFile, "vehicle.turnOnVehicle.sounds", "work", self.baseDirectory, self.components, 0, AudioGroup.VEHICLE, self.i3dMappings, self)
240
241 -- simple turned on speed simulation - can be used as sound modifier or turned on rpm dashboard
242 spec.turnedOnSpeed = {}
243 spec.turnedOnSpeed.isActive = self.xmlFile:hasProperty("vehicle.turnOnVehicle.turnedOnSpeed")
244 spec.turnedOnSpeed.alpha = 0
245 spec.turnedOnSpeed.fadeInTime = self.xmlFile:getValue("vehicle.turnOnVehicle.turnedOnSpeed#fadeInTime", 1)
246 spec.turnedOnSpeed.fadeOutTime = self.xmlFile:getValue("vehicle.turnOnVehicle.turnedOnSpeed#fadeOutTime", 1)
247 spec.turnedOnSpeed.variance = self.xmlFile:getValue("vehicle.turnOnVehicle.turnedOnSpeed#variance", 0.02)
248 spec.turnedOnSpeed.varianceSpeed = self.xmlFile:getValue("vehicle.turnOnVehicle.turnedOnSpeed#varianceSpeed", 0.01)
249
250 if self.loadDashboardsFromXML ~= nil then
251 self:loadDashboardsFromXML(self.xmlFile, "vehicle.turnOnVehicle.dashboards", {valueTypeToLoad = "turnedon",
252 valueObject = spec,
253 valueFunc = "isTurnedOn"})
254 self:loadDashboardsFromXML(self.xmlFile, "vehicle.turnOnVehicle.dashboards", {valueTypeToLoad = "rpm",
255 valueObject = self,
256 valueFunc = TurnOnVehicle.dashboardRpmValue,
257 additionalAttributesFunc = TurnOnVehicle.dashboardRpmAttributes})
258 end
259 end
260
261 if not self.isClient then
262 SpecializationUtil.removeEventListener(self, "onDelete", TurnOnVehicle)
263 SpecializationUtil.removeEventListener(self, "onUpdate", TurnOnVehicle)
264 end
265end

onPostAttach

Description
Definition
onPostAttach()
Code
868function TurnOnVehicle:onPostAttach(attacherVehicle, inputJointDescIndex, jointDescIndex)
869 local spec = self.spec_turnOnVehicle
870 if spec.turnedOnByAttacherVehicle then
871 if attacherVehicle.getIsTurnedOn ~= nil then
872 self:setIsTurnedOn(attacherVehicle:getIsTurnedOn(), true)
873 end
874 end
875end

onPreDetach

Description
Called if vehicle gets detached
Definition
onPreDetach(table attacherVehicle, table implement)
Arguments
tableattacherVehicleattacher vehicle
tableimplementimplement
Code
881function TurnOnVehicle:onPreDetach(attacherVehicle, implement)
882 self:setIsTurnedOn(false, true)
883end

onReadStream

Description
Called on client side on join
Definition
onReadStream(integer streamId, integer connection)
Arguments
integerstreamIdstreamId
integerconnectionconnection
Code
283function TurnOnVehicle:onReadStream(streamId, connection)
284 local turnedOn = streamReadBool(streamId)
285 self:setIsTurnedOn(turnedOn, true)
286end

onRegisterActionEvents

Description
Definition
onRegisterActionEvents()
Code
815function TurnOnVehicle:onRegisterActionEvents(isActiveForInput, isActiveForInputIgnoreSelection)
816 if self.isClient then
817 local spec = self.spec_turnOnVehicle
818 self:clearActionEventsTable(spec.actionEvents)
819 if isActiveForInputIgnoreSelection and self:getCanToggleTurnedOn() then
820 local _, actionEventId = self:addPoweredActionEvent(spec.actionEvents, spec.toggleTurnOnInputBinding, self, TurnOnVehicle.actionEventTurnOn, false, true, false, true, nil)
821 g_inputBinding:setActionEventTextPriority(actionEventId, GS_PRIO_HIGH)
822
823 TurnOnVehicle.updateActionEvents(self)
824
825 _, actionEventId = self:addPoweredActionEvent(spec.actionEvents, InputAction.TURN_ON_ALL_IMPLEMENTS, self, TurnOnVehicle.actionEventTurnOnAll, false, true, false, true, nil)
826 g_inputBinding:setActionEventTextVisibility(actionEventId, false)
827 end
828 end
829end

onRootVehicleChanged

Description
Called if root vehicle changes
Definition
onRootVehicleChanged(table rootVehicle)
Arguments
tablerootVehicleroot vehicle
Code
888function TurnOnVehicle:onRootVehicleChanged(rootVehicle)
889 local spec = self.spec_turnOnVehicle
890 local actionController = rootVehicle.actionController
891 if actionController ~= nil then
892 if spec.controlledAction ~= nil then
893 spec.controlledAction:updateParent(actionController)
894 return
895 end
896
897 spec.controlledAction = actionController:registerAction("turnOn", spec.toggleTurnOnInputBinding, 1)
898 spec.controlledAction:setCallback(self, TurnOnVehicle.actionControllerTurnOnEvent)
899 spec.controlledAction:setFinishedFunctions(self, self.getIsTurnedOn, true, false)
900 if self:getRequiresTurnOn() then
901 spec.controlledAction:setDeactivateFunction(self, self.getCanBeTurnedOn, true)
902 end
903 spec.controlledAction:setIsSaved(true)
904 if self:getAIRequiresTurnOn() then
905 spec.controlledAction:addAIEventListener(self, "onAIFieldWorkerStart", 1, true)
906 spec.controlledAction:addAIEventListener(self, "onAIImplementStart", 1, true)
907 spec.controlledAction:addAIEventListener(self, "onAIImplementStartLine", 1, true)
908 spec.controlledAction:addAIEventListener(self, "onAIImplementContinue", 1)
909 spec.controlledAction:addAIEventListener(self, "onAIImplementEnd", -1)
910 spec.controlledAction:addAIEventListener(self, "onAIFieldWorkerEnd", -1)
911 if self:getAIRequiresTurnOffOnHeadland() then
912 spec.controlledAction:addAIEventListener(self, "onAIImplementEndLine", -1)
913 end
914 spec.controlledAction:addAIEventListener(self, "onAIImplementBlock", -1)
915 spec.controlledAction:addAIEventListener(self, "onAIImplementPrepare", -1)
916 end
917 else
918 if spec.controlledAction ~= nil then
919 spec.controlledAction:remove()
920 end
921 end
922end

onSetBroken

Description
Definition
onSetBroken()
Code
843function TurnOnVehicle:onSetBroken()
844 self:setIsTurnedOn(false, true)
845end

onStateChange

Description
Definition
onStateChange()
Code
849function TurnOnVehicle:onStateChange(state, data)
850 if state == Vehicle.STATE_CHANGE_MOTOR_TURN_OFF then
851 if not self:getCanBeTurnedOn() then
852 self:setIsTurnedOn(false, true)
853 end
854 end
855end

onTurnedOff

Description
Definition
onTurnedOff()
Code
442function TurnOnVehicle:onTurnedOff()
443 local spec = self.spec_turnOnVehicle
444 if self.isClient then
445 if spec.turnOnAnimation ~= nil then
446 self:playAnimation(spec.turnOnAnimation.name, spec.turnOnAnimation.turnOffSpeedScale, self:getAnimationTime(spec.turnOnAnimation.name), true)
447 end
448
449 g_soundManager:stopSamples(spec.samples.start)
450 g_soundManager:stopSamples(spec.samples.work)
451 g_soundManager:stopSamples(spec.samples.stop)
452
453 g_soundManager:playSamples(spec.samples.stop)
454 g_animationManager:stopAnimations(spec.animationNodes)
455 end
456
457 if spec.activateableDischargeNodePrev ~= nil then
458 if spec.activateableDischargeNodePrev.index ~= nil then
459 self:setCurrentDischargeNodeIndex(spec.activateableDischargeNodePrev.index)
460 spec.activateableDischargeNodePrev = nil
461 end
462 end
463end

onTurnedOn

Description
Definition
onTurnedOn()
Code
413function TurnOnVehicle:onTurnedOn()
414 local spec = self.spec_turnOnVehicle
415 if self.isClient then
416 if spec.turnOnAnimation ~= nil then
417 self:playAnimation(spec.turnOnAnimation.name, spec.turnOnAnimation.turnOnSpeedScale, self:getAnimationTime(spec.turnOnAnimation.name), true)
418 end
419
420 g_soundManager:stopSamples(spec.samples.start)
421 g_soundManager:stopSamples(spec.samples.work)
422 g_soundManager:stopSamples(spec.samples.stop)
423
424 g_soundManager:playSamples(spec.samples.start)
425 for i=1, #spec.samples.work do
426 g_soundManager:playSample(spec.samples.work[i], 0, spec.samples.start[i])
427 end
428
429 g_animationManager:startAnimations(spec.animationNodes)
430 end
431
432 if spec.activateableDischargeNode ~= nil then
433 if spec.activateableDischargeNode.index ~= nil then
434 spec.activateableDischargeNodePrev = self:getCurrentDischargeNode()
435 self:setCurrentDischargeNodeIndex(spec.activateableDischargeNode.index)
436 end
437 end
438end

onUpdate

Description
Called on update
Definition
onUpdate(float dt, boolean isActiveForInput, boolean isSelected)
Arguments
floatdttime since last call in ms
booleanisActiveForInputtrue if vehicle is active for input
booleanisSelectedtrue if vehicle is selected
Code
302function TurnOnVehicle:onUpdate(dt, isActiveForInput, isActiveForInputIgnoreSelection, isSelected)
303 local spec = self.spec_turnOnVehicle
304
305 for i=1, #spec.turnedOnAnimations do
306 local turnedOnAnimation = spec.turnedOnAnimations[i]
307 local isTurnedOn = self:getIsTurnedOnAnimationActive(turnedOnAnimation)
308 if turnedOnAnimation.isTurnedOn ~= isTurnedOn then
309 if isTurnedOn then
310 turnedOnAnimation.speedDirection = 1
311 self:playAnimation(turnedOnAnimation.name, math.max(turnedOnAnimation.currentSpeed*turnedOnAnimation.speedScale, 0.001), self:getAnimationTime(turnedOnAnimation.name), true)
312 else
313 turnedOnAnimation.speedDirection = -1
314 end
315
316
317 turnedOnAnimation.isTurnedOn = isTurnedOn
318 end
319
320 if turnedOnAnimation.speedDirection ~= 0 then
321 local duration = turnedOnAnimation.turnOnFadeTime
322 if turnedOnAnimation.speedDirection == -1 then
323 duration = turnedOnAnimation.turnOffFadeTime
324 end
325 turnedOnAnimation.currentSpeed = MathUtil.clamp(turnedOnAnimation.currentSpeed + turnedOnAnimation.speedDirection * dt/duration, 0, 1)
326 self:setAnimationSpeed(turnedOnAnimation.name, turnedOnAnimation.currentSpeed*turnedOnAnimation.speedScale)
327 if turnedOnAnimation.speedDirection == -1 and turnedOnAnimation.currentSpeed == 0 then
328 self:stopAnimation(turnedOnAnimation.name, true)
329 end
330
331 if turnedOnAnimation.currentSpeed == 1 or turnedOnAnimation.currentSpeed == 0 then
332 turnedOnAnimation.speedDirection = 0
333 end
334 end
335 end
336
337 if self.isClient then
338 if spec.turnedOnSpeed.isActive then
339 local targetAlpha = 0
340 if self:getIsTurnedOn() then
341 local time = g_time * spec.turnedOnSpeed.varianceSpeed * 0.05
342 local modValue = math.sin(time) * math.sin((time + 2) * 0.3) * 0.8 + math.cos(time * 5) * 0.2
343 targetAlpha = 1 + modValue * spec.turnedOnSpeed.variance
344 end
345
346 if targetAlpha ~= spec.turnedOnSpeed.alpha then
347 local dir = MathUtil.sign(targetAlpha - spec.turnedOnSpeed.alpha)
348 local limitFunc = dir < 0 and math.max or math.min
349 local fadeTime = dir < 0 and spec.turnedOnSpeed.fadeOutTime or spec.turnedOnSpeed.fadeInTime
350 spec.turnedOnSpeed.alpha = limitFunc(spec.turnedOnSpeed.alpha + (1 / fadeTime) * dir * dt, targetAlpha)
351 end
352 end
353 end
354end

onUpdateTick

Description
Called on update tick
Definition
onUpdateTick(float dt, boolean isActiveForInput, boolean isSelected)
Arguments
floatdttime since last call in ms
booleanisActiveForInputtrue if vehicle is active for input
booleanisSelectedtrue if vehicle is selected
Code
361function TurnOnVehicle:onUpdateTick(dt, isActiveForInput, isActiveForInputIgnoreSelection, isSelected)
362 local spec = self.spec_turnOnVehicle
363
364 if self.isClient then
365 if not spec.isAlwaysTurnedOn and not spec.turnedOnByAttacherVehicle then
366 TurnOnVehicle.updateActionEvents(self)
367 end
368 end
369
370 if self.isServer then
371 if spec.turnOffIfNotAllowed then
372 if not self:getCanBeTurnedOn() then
373 if self:getIsTurnedOn() then
374 self:setIsTurnedOn(false)
375 else
376 if self.getAttacherVehicle ~= nil then
377 local attacherVehicle = self:getAttacherVehicle()
378 if attacherVehicle ~= nil then
379 if attacherVehicle.setIsTurnedOn ~= nil and attacherVehicle:getIsTurnedOn() then
380 attacherVehicle:setIsTurnedOn(false)
381 end
382 end
383 end
384 end
385 end
386 end
387 end
388end

onWriteStream

Description
Called on server side on join
Definition
onWriteStream(integer streamId, integer connection)
Arguments
integerstreamIdstreamId
integerconnectionconnection
Code
292function TurnOnVehicle:onWriteStream(streamId, connection)
293 local spec = self.spec_turnOnVehicle
294 streamWriteBool(streamId, spec.isTurnedOn)
295end

prerequisitesPresent

Description
Definition
prerequisitesPresent()
Code
19function TurnOnVehicle.prerequisitesPresent(specializations)
20 return true
21end

registerEventListeners

Description
Definition
registerEventListeners()
Code
142function TurnOnVehicle.registerEventListeners(vehicleType)
143 SpecializationUtil.registerEventListener(vehicleType, "onLoad", TurnOnVehicle)
144 SpecializationUtil.registerEventListener(vehicleType, "onDelete", TurnOnVehicle)
145 SpecializationUtil.registerEventListener(vehicleType, "onReadStream", TurnOnVehicle)
146 SpecializationUtil.registerEventListener(vehicleType, "onWriteStream", TurnOnVehicle)
147 SpecializationUtil.registerEventListener(vehicleType, "onUpdate", TurnOnVehicle)
148 SpecializationUtil.registerEventListener(vehicleType, "onUpdateTick", TurnOnVehicle)
149 SpecializationUtil.registerEventListener(vehicleType, "onRegisterActionEvents", TurnOnVehicle)
150 SpecializationUtil.registerEventListener(vehicleType, "onDeactivate", TurnOnVehicle)
151 SpecializationUtil.registerEventListener(vehicleType, "onPostAttach", TurnOnVehicle)
152 SpecializationUtil.registerEventListener(vehicleType, "onPreDetach", TurnOnVehicle)
153 SpecializationUtil.registerEventListener(vehicleType, "onRootVehicleChanged", TurnOnVehicle)
154 SpecializationUtil.registerEventListener(vehicleType, "onTurnedOn", TurnOnVehicle)
155 SpecializationUtil.registerEventListener(vehicleType, "onTurnedOff", TurnOnVehicle)
156 SpecializationUtil.registerEventListener(vehicleType, "onAlarmTriggerChanged", TurnOnVehicle)
157 SpecializationUtil.registerEventListener(vehicleType, "onSetBroken", TurnOnVehicle)
158 SpecializationUtil.registerEventListener(vehicleType, "onStateChange", TurnOnVehicle)
159end

registerEvents

Description
Definition
registerEvents()
Code
94function TurnOnVehicle.registerEvents(vehicleType)
95 SpecializationUtil.registerEvent(vehicleType, "onTurnedOn")
96 SpecializationUtil.registerEvent(vehicleType, "onTurnedOff")
97end

registerFunctions

Description
Definition
registerFunctions()
Code
101function TurnOnVehicle.registerFunctions(vehicleType)
102 SpecializationUtil.registerFunction(vehicleType, "setIsTurnedOn", TurnOnVehicle.setIsTurnedOn)
103 SpecializationUtil.registerFunction(vehicleType, "getIsTurnedOn", TurnOnVehicle.getIsTurnedOn)
104 SpecializationUtil.registerFunction(vehicleType, "getCanBeTurnedOn", TurnOnVehicle.getCanBeTurnedOn)
105 SpecializationUtil.registerFunction(vehicleType, "getCanBeTurnedOnAll", TurnOnVehicle.getCanBeTurnedOnAll)
106 SpecializationUtil.registerFunction(vehicleType, "getCanToggleTurnedOn", TurnOnVehicle.getCanToggleTurnedOn)
107 SpecializationUtil.registerFunction(vehicleType, "getTurnedOnNotAllowedWarning", TurnOnVehicle.getTurnedOnNotAllowedWarning)
108 SpecializationUtil.registerFunction(vehicleType, "getAIRequiresTurnOn", TurnOnVehicle.getAIRequiresTurnOn)
109 SpecializationUtil.registerFunction(vehicleType, "getRequiresTurnOn", TurnOnVehicle.getRequiresTurnOn)
110 SpecializationUtil.registerFunction(vehicleType, "getAIRequiresTurnOffOnHeadland", TurnOnVehicle.getAIRequiresTurnOffOnHeadland)
111 SpecializationUtil.registerFunction(vehicleType, "loadTurnedOnAnimationFromXML", TurnOnVehicle.loadTurnedOnAnimationFromXML)
112 SpecializationUtil.registerFunction(vehicleType, "getIsTurnedOnAnimationActive", TurnOnVehicle.getIsTurnedOnAnimationActive)
113 SpecializationUtil.registerFunction(vehicleType, "getTurnedOnSpeedFactor", TurnOnVehicle.getTurnedOnSpeedFactor)
114end

registerOverwrittenFunctions

Description
Definition
registerOverwrittenFunctions()
Code
118function TurnOnVehicle.registerOverwrittenFunctions(vehicleType)
119 SpecializationUtil.registerOverwrittenFunction(vehicleType, "getUseTurnedOnSchema", TurnOnVehicle.getUseTurnedOnSchema)
120 SpecializationUtil.registerOverwrittenFunction(vehicleType, "loadInputAttacherJoint", TurnOnVehicle.loadInputAttacherJoint)
121 SpecializationUtil.registerOverwrittenFunction(vehicleType, "loadWorkAreaFromXML", TurnOnVehicle.loadWorkAreaFromXML)
122 SpecializationUtil.registerOverwrittenFunction(vehicleType, "getIsWorkAreaActive", TurnOnVehicle.getIsWorkAreaActive)
123 SpecializationUtil.registerOverwrittenFunction(vehicleType, "getCanAIImplementContinueWork", TurnOnVehicle.getCanAIImplementContinueWork)
124 SpecializationUtil.registerOverwrittenFunction(vehicleType, "getIsOperating", TurnOnVehicle.getIsOperating)
125 SpecializationUtil.registerOverwrittenFunction(vehicleType, "getAlarmTriggerIsActive", TurnOnVehicle.getAlarmTriggerIsActive)
126 SpecializationUtil.registerOverwrittenFunction(vehicleType, "loadAlarmTrigger", TurnOnVehicle.loadAlarmTrigger)
127 SpecializationUtil.registerOverwrittenFunction(vehicleType, "getIsFillUnitActive", TurnOnVehicle.getIsFillUnitActive)
128 SpecializationUtil.registerOverwrittenFunction(vehicleType, "loadShovelNode", TurnOnVehicle.loadShovelNode)
129 SpecializationUtil.registerOverwrittenFunction(vehicleType, "getShovelNodeIsActive", TurnOnVehicle.getShovelNodeIsActive)
130 SpecializationUtil.registerOverwrittenFunction(vehicleType, "getIsSeedChangeAllowed", TurnOnVehicle.getIsSeedChangeAllowed)
131 SpecializationUtil.registerOverwrittenFunction(vehicleType, "getCanBeSelected", TurnOnVehicle.getCanBeSelected)
132 SpecializationUtil.registerOverwrittenFunction(vehicleType, "getIsPowerTakeOffActive", TurnOnVehicle.getIsPowerTakeOffActive)
133 SpecializationUtil.registerOverwrittenFunction(vehicleType, "loadDischargeNode", TurnOnVehicle.loadDischargeNode)
134 SpecializationUtil.registerOverwrittenFunction(vehicleType, "getIsDischargeNodeActive", TurnOnVehicle.getIsDischargeNodeActive)
135 SpecializationUtil.registerOverwrittenFunction(vehicleType, "loadBunkerSiloCompactorFromXML", TurnOnVehicle.loadBunkerSiloCompactorFromXML)
136 SpecializationUtil.registerOverwrittenFunction(vehicleType, "getBunkerSiloCompacterScale", TurnOnVehicle.getBunkerSiloCompacterScale)
137 SpecializationUtil.registerOverwrittenFunction(vehicleType, "getIsWorkModeChangeAllowed", TurnOnVehicle.getIsWorkModeChangeAllowed)
138end

setIsTurnedOn

Description
Set is turned on state
Definition
setIsTurnedOn(boolean isTurnedOn, boolean noEventSend)
Arguments
booleanisTurnedOnnew is is turned on state
booleannoEventSendno event send
Code
394function TurnOnVehicle:setIsTurnedOn(isTurnedOn, noEventSend)
395 local spec = self.spec_turnOnVehicle
396
397 if isTurnedOn ~= spec.isTurnedOn then
398 SetTurnedOnEvent.sendEvent(self, isTurnedOn, noEventSend)
399 spec.isTurnedOn = isTurnedOn
400
401 if spec.isTurnedOn then
402 SpecializationUtil.raiseEvent(self, "onTurnedOn")
403 self.rootVehicle:raiseStateChange(Vehicle.STATE_CHANGE_TURN_ON, self)
404 else
405 SpecializationUtil.raiseEvent(self, "onTurnedOff")
406 self.rootVehicle:raiseStateChange(Vehicle.STATE_CHANGE_TURN_OFF, self)
407 end
408 end
409end

updateActionEvents

Description
Definition
updateActionEvents()
Code
987function TurnOnVehicle.updateActionEvents(self)
988 local spec = self.spec_turnOnVehicle
989
990 -- update activity of actionEvent
991 local actionEvent = spec.actionEvents[spec.toggleTurnOnInputBinding]
992 if actionEvent ~= nil then
993 local state = self:getCanToggleTurnedOn()
994
995 if state then
996 local text
997 if self:getIsTurnedOn() then
998 text = spec.turnOffText
999 else
1000 text = spec.turnOnText
1001 end
1002 g_inputBinding:setActionEventText(actionEvent.actionEventId, text)
1003 end
1004
1005 g_inputBinding:setActionEventActive(actionEvent.actionEventId, state)
1006 end
1007end