LUADOC - Farming Simulator 22

Script v1_7_1_0

Engine v1_7_1_0

Foundation Reference

Honk

Description
Specialization adding honk/horn functionality to a vehicle
Functions

actionEventHonk

Description
Definition
actionEventHonk()
Code
147function Honk.actionEventHonk(self, actionName, inputValue, callbackState, isAnalog)
148 self:setHonkInput()
149end

getIsHonkAvailable

Description
Definition
getIsHonkAvailable()
Code
97function Honk:getIsHonkAvailable()
98 return true
99end

initSpecialization

Description
Called on specialization initializing
Definition
initSpecialization()
Code
23function Honk.initSpecialization()
24 local schema = Vehicle.xmlSchema
25 schema:setXMLSpecializationType("Honk")
26 SoundManager.registerSampleXMLPaths(schema, "vehicle.honk", "sound")
27 schema:setXMLSpecializationType()
28end

onDelete

Description
Called on deleting
Definition
onDelete()
Code
66function Honk:onDelete()
67 local spec = self.spec_honk
68 g_soundManager:deleteSample(spec.sample)
69end

onLeaveVehicle

Description
Called on leaving the vehicle
Definition
onLeaveVehicle()
Code
91function Honk:onLeaveVehicle()
92 self:playHonk(false, true)
93end

onLoad

Description
Definition
onLoad()
Code
50function Honk:onLoad(savegame)
51 local spec = self.spec_honk
52
53 spec.inputPressed = false
54 spec.isPlaying = false
55 if self.isClient then
56 spec.sample = g_soundManager:loadSampleFromXML(self.xmlFile, "vehicle.honk", "sound", self.baseDirectory, self.components, 0, AudioGroup.VEHICLE, self.i3dMappings, self)
57 end
58
59 if not self.isClient then
60 SpecializationUtil.removeEventListener(self, "onUpdate", Honk)
61 end
62end

onRegisterActionEvents

Description
Definition
onRegisterActionEvents()
Code
131function Honk:onRegisterActionEvents(isActiveForInput, isActiveForInputIgnoreSelection)
132 if self.isClient then
133 local spec = self.spec_honk
134 self:clearActionEventsTable(spec.actionEvents)
135
136 if isActiveForInputIgnoreSelection and spec.sample ~= nil then
137 local _, actionEventId = self:addActionEvent(spec.actionEvents, InputAction.HONK, self, Honk.actionEventHonk, false, true, true, true, nil)
138 g_inputBinding:setActionEventTextPriority(actionEventId, GS_PRIO_VERY_LOW)
139 g_inputBinding:setActionEventActive(actionEventId, true)
140 g_inputBinding:setActionEventText(actionEventId, g_i18n:getText("action_honk"))
141 end
142 end
143end

onUpdate

Description
Definition
onUpdate()
Code
73function Honk:onUpdate(dt, isActiveForInput, isActiveForInputIgnoreSelection, isSelected)
74 if self.isClient and isActiveForInputIgnoreSelection then
75 local spec = self.spec_honk
76 if spec.inputPressed then
77 if not g_soundManager:getIsSamplePlaying(spec.sample) then
78 self:playHonk(true)
79 end
80 else
81 if spec.isPlaying then
82 self:playHonk(false)
83 end
84 end
85 spec.inputPressed = false
86 end
87end

playHonk

Description
Definition
playHonk()
Code
110function Honk:playHonk(isPlaying, noEventSend)
111 HonkEvent.sendEvent(self, isPlaying, noEventSend)
112 local spec = self.spec_honk
113
114 spec.isPlaying = isPlaying
115 if spec.sample ~= nil then
116
117 if isPlaying then
118 if self:getIsActive() then
119 if self.isClient then
120 g_soundManager:playSample(spec.sample)
121 end
122 end
123 else
124 g_soundManager:stopSample(spec.sample)
125 end
126 end
127end

prerequisitesPresent

Description
Definition
prerequisitesPresent()
Code
17function Honk.prerequisitesPresent(specializations)
18 return SpecializationUtil.hasSpecialization(Drivable, specializations)
19end

registerEventListeners

Description
Definition
registerEventListeners()
Code
40function Honk.registerEventListeners(vehicleType)
41 SpecializationUtil.registerEventListener(vehicleType, "onLoad", Honk)
42 SpecializationUtil.registerEventListener(vehicleType, "onDelete", Honk)
43 SpecializationUtil.registerEventListener(vehicleType, "onUpdate", Honk)
44 SpecializationUtil.registerEventListener(vehicleType, "onLeaveVehicle", Honk)
45 SpecializationUtil.registerEventListener(vehicleType, "onRegisterActionEvents", Honk)
46end

registerFunctions

Description
Definition
registerFunctions()
Code
32function Honk.registerFunctions(vehicleType)
33 SpecializationUtil.registerFunction(vehicleType, "getIsHonkAvailable", Honk.getIsHonkAvailable)
34 SpecializationUtil.registerFunction(vehicleType, "setHonkInput", Honk.setHonkInput)
35 SpecializationUtil.registerFunction(vehicleType, "playHonk", Honk.playHonk)
36end

setHonkInput

Description
Definition
setHonkInput()
Code
103function Honk:setHonkInput()
104 local spec = self.spec_honk
105 spec.inputPressed = true
106end