Script v1_7_1_0
- AI
- Animals
- Collections
- Contracts
- Debug
- Economy
- Elements
- EnvironmentalScore
- Errors
- Events
- GUI
- Handtools
- Hud
- I3d
- Input
- Jobs
- Maps
- Materials
- Misc
- Objects
- Parameters
- Placeables
- Placement
- Player
- Shop
- Sounds
- Specialization
- Specializations
- StateMachine
- Statistics
- Tasks
- Triggers
- Utils
- Vehicles
Engine v1_7_1_0
- AI
- Animation
- Camera
- Entity
- Fillplanes
- general
- General
- I3D
- Input
- Lighting
- Math
- Network
- Node
- NoteNode
- Overlays
- Particle System
- Physics
- Rendering
- Scenegraph
- Shape
- Sound
- Spline
- String
- Terrain Detail
- Text Rendering
- Tire Track
- VoiceChat
- XML
Foundation Reference
VehicleActionControllerAction
DescriptionCopyright (C) GIANTS Software GmbH, Confidential, All Rights Reserved.Functions
- actionEvent
- addAIEventListener
- doAction
- getDebugText
- getDoResetOnDeactivation
- getIsFinished
- getIsSaved
- getLastDirection
- getSourceVehicle
- new
- onAIEvent
- registerActionEvents
- remove
- setCallback
- setDeactivateFunction
- setFinishedFunctions
- setIsSaved
- setResetOnDeactivation
- update
- updateForAI
- updateParent
actionEvent
DescriptionDefinitionactionEvent()Code
130 | function VehicleActionControllerAction:actionEvent(actionName, inputValue, actionIndex, isAnalog) |
131 | self:doAction() |
132 | end |
addAIEventListener
DescriptionDefinitionaddAIEventListener()Code
109 | function VehicleActionControllerAction:addAIEventListener(sourceVehicle, eventName, direction, forceUntilFinished) |
110 | self.sourceVehicle = sourceVehicle |
111 | |
112 | local listener = {} |
113 | listener.eventName = eventName |
114 | listener.direction = direction |
115 | listener.forceUntilFinished = forceUntilFinished |
116 | |
117 | table.insert(self.aiEventListener, listener) |
118 | end |
doAction
DescriptionDefinitiondoAction()Code
136 | function VehicleActionControllerAction:doAction(direction) |
137 | if direction == nil then |
138 | direction = -self.lastDirection |
139 | end |
140 | self.lastDirection = direction |
141 | |
142 | local success = self.inputCallback(self.callbackTarget, direction) |
143 | if success then |
144 | self.lastValidDirection = self.lastDirection |
145 | end |
146 | |
147 | return success |
148 | end |
getDebugText
DescriptionDefinitiongetDebugText()Code
217 | function VehicleActionControllerAction:getDebugText() |
218 | local finishedResult = self.finishedFunc(self.finishedFunctionTarget) |
219 | if type(finishedResult) == "number" then |
220 | finishedResult = string.format("%.1f", finishedResult) |
221 | end |
222 | return string.format("Prio '%d' - Vehicle '%s' - Action '%s' (%s/%s)", self.priority, Utils.getFilenameInfo((self.callbackTarget or {}).configFileName or "Unknown Vehicle", true), self.name, finishedResult, self.lastDirection == 1 and self.finishedResult or self.finishedResultRev) |
223 | end |
getDoResetOnDeactivation
DescriptionDefinitiongetDoResetOnDeactivation()Code
103 | function VehicleActionControllerAction:getDoResetOnDeactivation() |
104 | return self.resetOnDeactivation |
105 | end |
getIsFinished
DescriptionDefinitiongetIsFinished()Code
152 | function VehicleActionControllerAction:getIsFinished(direction) |
153 | if self.finishedFunc ~= nil then |
154 | if direction > 0 then |
155 | return self.finishedFunc(self.finishedFunctionTarget) == self.finishedResult |
156 | else |
157 | return self.finishedFunc(self.finishedFunctionTarget) == self.finishedResultRev |
158 | end |
159 | end |
160 | |
161 | return true |
162 | end |
getIsSaved
DescriptionDefinitiongetIsSaved()Code
91 | function VehicleActionControllerAction:getIsSaved() |
92 | return self.isSaved |
93 | end |
getLastDirection
DescriptionDefinitiongetLastDirection()Code
97 | function VehicleActionControllerAction:getLastDirection() |
98 | return self.lastDirection |
99 | end |
getSourceVehicle
DescriptionDefinitiongetSourceVehicle()Code
166 | function VehicleActionControllerAction:getSourceVehicle() |
167 | return self.sourceVehicle |
168 | end |
new
DescriptionDefinitionnew()Code
11 | function VehicleActionControllerAction.new(parent, name, inputAction, priority, customMt) |
12 | if customMt == nil then |
13 | customMt = VehicleActionControllerAction_mt |
14 | end |
15 | local self = setmetatable({}, customMt) |
16 | |
17 | self.parent = parent |
18 | self.name = name |
19 | self.inputAction = inputAction |
20 | self.priority = priority |
21 | self.lastDirection = -1 |
22 | self.lastValidDirection = 0 |
23 | self.isSaved = false |
24 | self.resetOnDeactivation = true |
25 | self.identifier = "" |
26 | |
27 | self.aiEventListener = {} |
28 | |
29 | return self |
30 | end |
onAIEvent
DescriptionDefinitiononAIEvent()Code
172 | function VehicleActionControllerAction:onAIEvent(eventName) |
173 | for _, listener in ipairs(self.aiEventListener) do |
174 | if listener.eventName == eventName then |
175 | if not self:doAction(listener.direction) and listener.forceUntilFinished then |
176 | self.forceDirectionUntilFinished = listener.direction |
177 | else |
178 | if self.forceDirectionUntilFinished ~= nil then |
179 | if listener.direction ~= self.forceDirectionUntilFinished then |
180 | self.forceDirectionUntilFinished = nil |
181 | end |
182 | end |
183 | |
184 | self.parent:stopActionSequence() |
185 | end |
186 | end |
187 | end |
188 | end |
registerActionEvents
DescriptionDefinitionregisterActionEvents()Code
123 | function VehicleActionControllerAction:registerActionEvents(target, vehicle, actionEvents, isActiveForInput, isActiveForInputIgnoreSelection) |
124 | --local _, actionEventId = vehicle:addActionEvent(actionEvents, self.inputAction, target, VehicleActionControllerAction.onActionEvent, false, true, false, true) |
125 | --g_inputBinding:setActionEventTextPriority(actionEventId, GS_PRIO_HIGH) |
126 | end |
remove
DescriptionDefinitionremove()Code
34 | function VehicleActionControllerAction:remove() |
35 | self.parent:removeAction(self) |
36 | end |
setCallback
DescriptionDefinitionsetCallback()Code
51 | function VehicleActionControllerAction:setCallback(callbackTarget, inputCallback, inputCallbackRev) |
52 | self.callbackTarget = callbackTarget |
53 | self.inputCallback = inputCallback |
54 | self.inputCallbackRev = inputCallbackRev |
55 | |
56 | self.identifier = callbackTarget.configFileName or "" |
57 | end |
setDeactivateFunction
DescriptionDefinitionsetDeactivateFunction()Code
71 | function VehicleActionControllerAction:setDeactivateFunction(deactivateFunctionTarget, deactivateFunc, inverseDeactivateFunc) |
72 | self.deactivateFunctionTarget = deactivateFunctionTarget |
73 | self.deactivateFunc = deactivateFunc |
74 | self.inverseDeactivateFunc = Utils.getNoNil(inverseDeactivateFunc, false) |
75 | end |
setFinishedFunctions
DescriptionDefinitionsetFinishedFunctions()Code
61 | function VehicleActionControllerAction:setFinishedFunctions(finishedFunctionTarget, finishedFunc, finishedResult, finishedResultRev, finishedFuncRev) |
62 | self.finishedFunctionTarget = finishedFunctionTarget |
63 | self.finishedFunc = finishedFunc |
64 | self.finishedFuncRev = finishedFuncRev |
65 | self.finishedResult = finishedResult |
66 | self.finishedResultRev = finishedResultRev |
67 | end |
setIsSaved
DescriptionDefinitionsetIsSaved()Code
85 | function VehicleActionControllerAction:setIsSaved(isSaved) |
86 | self.isSaved = isSaved |
87 | end |
setResetOnDeactivation
DescriptionDefinitionsetResetOnDeactivation()Code
79 | function VehicleActionControllerAction:setResetOnDeactivation(resetOnDeactivation) |
80 | self.resetOnDeactivation = resetOnDeactivation |
81 | end |
update
DescriptionDefinitionupdate()Code
192 | function VehicleActionControllerAction:update(dt) |
193 | if self.deactivateFunc ~= nil then |
194 | if self.lastDirection == 1 then |
195 | if self.deactivateFunc(self.deactivateFunctionTarget) == not self.inverseDeactivateFunc then |
196 | if self.parent.currentSequenceIndex == nil and self.forceDirectionUntilFinished == nil then |
197 | self.parent:startActionSequence() |
198 | end |
199 | end |
200 | end |
201 | end |
202 | end |
updateForAI
DescriptionDefinitionupdateForAI()Code
206 | function VehicleActionControllerAction:updateForAI(dt) |
207 | if self.forceDirectionUntilFinished ~= nil then |
208 | if self:doAction(self.forceDirectionUntilFinished) then |
209 | self.forceDirectionUntilFinished = nil |
210 | self.parent:stopActionSequence() |
211 | end |
212 | end |
213 | end |
updateParent
DescriptionDefinitionupdateParent()Code
40 | function VehicleActionControllerAction:updateParent(parent) |
41 | if parent ~= self.parent then |
42 | self.parent:removeAction(self) |
43 | parent:addAction(self) |
44 | end |
45 | |
46 | self.parent = parent |
47 | end |