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
AITaskDischarge
ParentAITaskFunctions
finishedDischarge
DescriptionDefinitionfinishedDischarge()Code
105 | function AITaskDischarge:finishedDischarge() |
106 | self.isFinished = true |
107 | --#debug log("finished discharge") |
108 | end |
new
DescriptionDefinitionnew()Code
19 | function AITaskDischarge.new(isServer, job, customMt) |
20 | local self = AITask.new(isServer, job, customMt or AITaskDischarge_mt) |
21 | |
22 | self.vehicle = nil |
23 | self.unloadTrigger = nil |
24 | self.dischargeVehicle = nil |
25 | self.dischargeNode = nil |
26 | self.offsetZ = 0 |
27 | self.maxSpeed = 5 |
28 | self.state = AITaskDischarge.STATE_DRIVING |
29 | |
30 | return self |
31 | end |
onError
DescriptionDefinitiononError()Code
100 | function AITaskDischarge:onError(errorMessage) |
101 | end |
onTargetReached
DescriptionDefinitiononTargetReached()Code
87 | function AITaskDischarge:onTargetReached() |
88 | self.vehicle:unsetAITarget() |
89 | |
90 | if self.dischargeVehicle:getAICanStartDischarge(self.dischargeNode) then |
91 | self.state = AITaskDischarge.STATE_DISCHARGE |
92 | self.dischargeVehicle:startAIDischarge(self.dischargeNode, self) |
93 | else |
94 | g_currentMission.aiSystem:stopJob(self.job, AIMessageErrorUnloadingStationFull.new()) |
95 | end |
96 | end |
reset
DescriptionDefinitionreset()Code
35 | function AITaskDischarge:reset() |
36 | self.vehicle = nil |
37 | self.unloadTrigger = nil |
38 | self.dischargeVehicle = nil |
39 | self.dischargeNode = nil |
40 | self.offsetZ = 0 |
41 | self.state = AITaskDischarge.STATE_DRIVING |
42 | AITaskDischarge:superClass().reset(self) |
43 | end |
setDischargeNode
DescriptionDefinitionsetDischargeNode()Code
59 | function AITaskDischarge:setDischargeNode(vehicle, dischargeNode, offsetZ) |
60 | if vehicle ~= nil then |
61 | self.offsetZ = offsetZ |
62 | vehicle:setCurrentDischargeNodeIndex(dischargeNode.index) |
63 | end |
64 | |
65 | self.dischargeNode = dischargeNode |
66 | self.dischargeVehicle = vehicle |
67 | end |
setUnloadTrigger
DescriptionDefinitionsetUnloadTrigger()Code
53 | function AITaskDischarge:setUnloadTrigger(unloadTrigger) |
54 | self.unloadTrigger = unloadTrigger |
55 | end |
setVehicle
DescriptionDefinitionsetVehicle()Code
47 | function AITaskDischarge:setVehicle(vehicle) |
48 | self.vehicle = vehicle |
49 | end |
start
DescriptionDefinitionstart()Code
71 | function AITaskDischarge:start() |
72 | if self.isServer then |
73 | local x, z, xDir, zDir = self.unloadTrigger:getAITargetPositionAndDirection() |
74 | x = x + xDir * -self.offsetZ |
75 | z = z + zDir * -self.offsetZ |
76 | local y = getTerrainHeightAtWorldPos(g_currentMission.terrainRootNode, x, 0, z) |
77 | |
78 | self.vehicle:setAITarget(self, x, y, z, xDir, 0, zDir, self.maxSpeed, true) |
79 | self.state = AITaskDischarge.STATE_DRIVING |
80 | end |
81 | |
82 | AITaskDischarge:superClass().start(self) |
83 | end |