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
LiquidManureFillTrigger
DescriptionClass for liquid manure fill triggersParent
FillTriggerFunctions
new
DescriptionCreating liquid manure fill trigger objectDefinition
new(table mt)Arguments
table | mt | custom metatable |
table | instance | Instance of object |
17 | function LiquidManureFillTrigger:new(mt) |
18 | if mt == nil then |
19 | mt = LiquidManureFillTrigger_mt; |
20 | end |
21 | local self = FillTrigger:new(mt); |
22 | |
23 | self.fillLevel = 0; |
24 | self.capacity = 800000; |
25 | |
26 | self.vehiclesInRange = {}; |
27 | self.playerInRange = false; |
28 | |
29 | self.fillType = FillUtil.FILLTYPE_LIQUIDMANURE |
30 | |
31 | return self; |
32 | end |
load
DescriptionLoad liquid manure fill triggerDefinition
load(integer nodeId, table fillLevelObject, integer fillType)Arguments
integer | nodeId | id of node |
table | fillLevelObject | fill level object |
integer | fillType | fill type index |
boolean | success | success |
40 | function LiquidManureFillTrigger:load(nodeId, fillLevelObject, fillType) |
41 | |
42 | self.fillType = Utils.getNoNil(fillType, self.fillType) |
43 | |
44 | if not LiquidManureFillTrigger:superClass().load(self, nodeId, self.fillType) then |
45 | return false; |
46 | end |
47 | self.fillLevelObject = fillLevelObject; |
48 | |
49 | local capacityStr = getUserAttribute(nodeId, "capacity"); |
50 | if capacityStr ~= nil then |
51 | self.capacity = Utils.getNoNil(tonumber(capacityStr), self.capacity); |
52 | end; |
53 | |
54 | local minY, maxY = Utils.getVectorFromString(getUserAttribute(nodeId, "moveMinMaxY")); |
55 | if minY ~= nil and maxY ~= nil then |
56 | self.moveMinY = minY; |
57 | self.moveMaxY = maxY; |
58 | self.movingId = Utils.indexToObject(nodeId, getUserAttribute(nodeId, "movingIndex")); |
59 | end; |
60 | |
61 | self.fillLevel = -1; |
62 | self:setFillLevel(0, true); |
63 | |
64 | return true; |
65 | end; |
delete
DescriptionDeleting liquid manure fill triggerDefinition
delete()Code
69 | function LiquidManureFillTrigger:delete() |
70 | LiquidManureFillTrigger:superClass().delete(self); |
71 | end; |
update
DescriptionUpdateDefinition
update(float dt)Arguments
float | dt | time since last call in ms |
78 | function LiquidManureFillTrigger:update(dt) |
79 | if self:getShowInfo() then |
80 | local fillTypeName = FillUtil.fillTypeIndexToDesc[self.fillType].nameI18N |
81 | g_currentMission:addExtraPrintText(fillTypeName .. " " ..g_i18n:getText("info_fillLevel").." "..math.floor(self.fillLevel).." ("..math.floor(100*self.fillLevel/self.capacity).."%)"); |
82 | end; |
83 | end; |
fill
DescriptionFill tool from fill triggerDefinition
fill(table tool, float delta)Arguments
table | tool | tool to fill |
float | delta | delta |
float | delta | real delta |
90 | function LiquidManureFillTrigger:fill(tool, delta) |
91 | if not tool:allowFillType(self.fillType, false) then |
92 | return 0.0; |
93 | end |
94 | |
95 | delta = math.max(math.min(delta, self.fillLevel), 0); |
96 | |
97 | if delta > 0 then |
98 | local oldFillLevel = tool:getFillLevel(self.fillType); |
99 | tool:setFillLevel(oldFillLevel + delta, self.fillType, true); |
100 | delta = tool:getFillLevel(self.fillType) - oldFillLevel; |
101 | if delta > 0 then |
102 | self:setFillLevel(self.fillLevel - delta); |
103 | end; |
104 | end; |
105 | return delta; |
106 | end; |
setFillLevel
DescriptionSet fill level of liquid manure fill triggerDefinition
setFillLevel(float fillLevel, boolean noEventSend)Arguments
float | fillLevel | new fill level |
boolean | noEventSend | no event send |
112 | function LiquidManureFillTrigger:setFillLevel(fillLevel, noEventSend) |
113 | |
114 | fillLevel = Utils.clamp(fillLevel, 0, self.capacity); |
115 | if self.fillLevel ~= fillLevel then |
116 | self.fillLevel = fillLevel; |
117 | |
118 | if noEventSend == nil or not noEventSend then |
119 | self.fillLevelObject:liquidManureFillLevelChanged(fillLevel, self.fillType, self); |
120 | end |
121 | |
122 | if self.fillLevelObject.isClient then |
123 | if self.movingId ~= nil then |
124 | local x,_,z = getTranslation(self.movingId); |
125 | local y = self.moveMinY + (self.moveMaxY - self.moveMinY)*self.fillLevel/self.capacity; |
126 | setTranslation(self.movingId, x,y,z); |
127 | end; |
128 | end; |
129 | end |
130 | end; |
getShowInfo
DescriptionReturns true if information should be shownDefinition
getShowInfo()Return Values
boolean | showInfo | show information |
135 | function LiquidManureFillTrigger:getShowInfo() |
136 | if (g_currentMission.controlPlayer and self.playerInRange) then |
137 | return true; |
138 | end; |
139 | if not g_currentMission.controlPlayer then |
140 | for vehicle in pairs(self.vehiclesInRange) do |
141 | if vehicle:getIsActiveForInput(false) then |
142 | return true; |
143 | end; |
144 | end; |
145 | end; |
146 | return false; |
147 | end; |
triggerCallback
DescriptionTrigger callbackDefinition
triggerCallback(integer triggerId, integer otherActorId, boolean onEnter, boolean onLeave, boolean onStay, integer otherShapeId)Arguments
integer | triggerId | id of trigger |
integer | otherActorId | id of other actor |
boolean | onEnter | on enter |
boolean | onLeave | on leave |
boolean | onStay | on stay |
integer | otherShapeId | id of other shape |
157 | function LiquidManureFillTrigger:triggerCallback(triggerId, otherActorId, onEnter, onLeave, onStay, otherShapeId) |
158 | if self.isEnabled and (onEnter or onLeave) then |
159 | |
160 | if g_currentMission.player ~= nil and otherActorId == g_currentMission.player.rootNode then |
161 | if onEnter then |
162 | self.playerInRange = true; |
163 | else |
164 | self.playerInRange = false; |
165 | end; |
166 | else |
167 | local vehicle = g_currentMission.nodeToVehicle[otherActorId]; |
168 | if vehicle ~= nil then |
169 | if onEnter then |
170 | self.vehiclesInRange[vehicle] = true; |
171 | else |
172 | self.vehiclesInRange[vehicle] = nil; |
173 | end; |
174 | end; |
175 | end; |
176 | end |
177 | |
178 | LiquidManureFillTrigger:superClass().triggerCallback(self, triggerId, otherActorId, onEnter, onLeave, onStay, otherShapeId); |
179 | end; |
getIsActivatable
DescriptionReturns true if is activateableDefinition
getIsActivatable(table fillable)Arguments
table | fillable | fillable |
boolean | isActivatebale | is activateable |
185 | function LiquidManureFillTrigger:getIsActivatable(fillable) |
186 | if self.fillLevel <= 0 then |
187 | return false; |
188 | end; |
189 | return LiquidManureFillTrigger:superClass().getIsActivatable(self, fillable); |
190 | end; |