Script v1.4.4.0
- Handtools
- Events
- Objects
- Placeables
- Triggers
- BaleDestroyerTrigger
- BasketTrigger
- ConveyorBeltTipTrigger
- FillTrigger
- GasStationTrigger
- LiquidManureFillTrigger
- LoanTrigger
- PickupObjectsSellTrigger
- ReceivingTipTrigger
- ShopTrigger
- SiloTrigger
- TipTrigger
- WaterTrailerFillTrigger
- WeighStation
- WoodSellTrigger
- Utils
- Vehicles
- Specializations
Engine v7.0.0.2
- General
- Entity
- Node
- Scenegraph
- Lighting
- Camera
- Shape
- Particle System
- Physics
- Spline
- Animation
- Overlays
- Sound
- Input
- XML
- Network
- Callbacks
- Text Rendering
- Terrain Detail
- Tire Track
- Editor
- Rendering
- String
- Math
- I3D
- Fillplanes
Foundation Reference
BasketTrigger
DescriptionClass for basket triggersFunctions
onCreate
DescriptionOn create basket triggerDefinition
onCreate(integer id)Arguments
integer | id | id of trigger node |
17 | function BasketTrigger:onCreate(id) |
18 | local trigger = BasketTrigger:new(); |
19 | if trigger:load(id) then |
20 | g_currentMission:addNonUpdateable(trigger); |
21 | else |
22 | trigger:delete(); |
23 | end |
24 | end; |
new
DescriptionCreating basket trigger objectDefinition
new(table mt)Arguments
table | mt | custom metatable (optional) |
table | instance | instance of basket trigger object |
30 | function BasketTrigger:new(mt) |
31 | local self = {}; |
32 | if mt == nil then |
33 | mt = BasketTrigger_mt; |
34 | end |
35 | setmetatable(self, mt); |
36 | |
37 | self.triggerId = 0; |
38 | self.nodeId = 0; |
39 | |
40 | return self; |
41 | end; |
load
DescriptionLoad basket triggerDefinition
load(integer nodeId)Arguments
integer | nodeId | id of node |
boolean | success | success |
47 | function BasketTrigger:load(nodeId) |
48 | self.nodeId = nodeId; |
49 | |
50 | self.triggerId = Utils.indexToObject(nodeId, getUserAttribute(nodeId, "triggerIndex")); |
51 | if self.triggerId == nil then |
52 | self.triggerId = nodeId; |
53 | end |
54 | addTrigger(self.triggerId, "triggerCallback", self); |
55 | |
56 | self.triggerObjects = {}; |
57 | |
58 | self.isEnabled = true; |
59 | |
60 | return true; |
61 | end; |
delete
DescriptionDelete basket triggerDefinition
delete()Code
65 | function BasketTrigger:delete() |
66 | removeTrigger(self.triggerId); |
67 | end; |
triggerCallback
DescriptionTrigger callbackDefinition
triggerCallback(integer triggerId, integer otherId, boolean onEnter, boolean onLeave, boolean onStay)Arguments
integer | triggerId | id of trigger |
integer | otherId | id of actor |
boolean | onEnter | on enter |
boolean | onLeave | on leave |
boolean | onStay | on stay |
76 | function BasketTrigger:triggerCallback(triggerId, otherActorId, onEnter, onLeave, onStay, otherShapeId) |
77 | if self.isEnabled then |
78 | |
79 | if onEnter then |
80 | local object = g_currentMission:getNodeObject(otherActorId); |
81 | if object.thrownFromPosition ~= nil then |
82 | self.triggerObjects[otherActorId] = true; |
83 | end |
84 | |
85 | elseif onLeave then |
86 | if self.triggerObjects[otherActorId] then |
87 | self.triggerObjects[otherActorId] = false; |
88 | |
89 | local object = g_currentMission:getNodeObject(otherActorId); |
90 | local x,y,z = worldToLocal(self.triggerId, object.thrownFromPosition[1],object.thrownFromPosition[2],object.thrownFromPosition[3]); |
91 | local dist = Utils.vector3Length(x,y,z); |
92 | |
93 | if dist > BasketTrigger.threePointDistanceThreshold then |
94 | g_currentMission.missionStats:updateStats("threePointThrowCount", 1); |
95 | end |
96 | end |
97 | end; |
98 | end; |
99 | end; |