LUADOC - Farming Simulator 19

EffectManager

Description
Manages running effects
Parent
AbstractManager
Functions

deleteEffects

Description
Delete list of effects
Definition
deleteEffects()
Code
115function EffectManager:deleteEffects(effects)
116 if effects ~= nil then
117 for _, effect in pairs(effects) do
118 self.runningEffects[effect] = nil
119 effect:delete()
120 end
121 end
122end

getEffectClass

Description
Definition
getEffectClass()

initDataStructures

Description
Initialize data structures
Definition
initDataStructures()
Code
24function EffectManager:initDataStructures()
25 self.runningEffects = {}
26 self.registeredEffectClasses = {}
27end

loadEffect

Description
Load effect from xml
Definition
loadEffect()
Code
31function EffectManager:loadEffect(xmlFile, baseName, rootNode, parent, i3dMapping)
32 local effects = {}
33
34 local i = 0
35 while true do
36 local key = string.format(baseName .. ".effectNode(%d)", i)
37 if not hasXMLProperty(xmlFile, key) then
38 break
39 end
40
41 local effectClassName = Utils.getNoNil(getXMLString(xmlFile, key.."#effectClass"), "ShaderPlaneEffect")
42 local effectClass = self:getEffectClass(effectClassName)
43 if effectClass == nil then
44 if parent.customEnvironment ~= nil and parent.customEnvironment ~= "" then
45 effectClass = self:getEffectClass(parent.customEnvironment.."."..effectClassName)
46 end
47 if effectClass == nil then
48 -- Fallback to the old method if no registered class is found
49 effectClass = ClassUtil.getClassObject(effectClassName)
50 end
51 end
52 if effectClass ~= nil then
53 local effect = effectClass:new()
54 if effect ~= nil then
55 table.insert(effects, effect:load(xmlFile, key, rootNode, parent, i3dMapping))
56 end
57 else
58 print("Warning: Unkown effect '"..effectClassName.."' in '"..Utils.getNoNil(parent.configFileName, parent.xmlFilename).."'")
59 end
60 i = i + 1
61 end
62
63 return effects
64end

loadFromNode

Description
Load effect from node
Definition
loadFromNode()
Code
68function EffectManager:loadFromNode(node, parent)
69 local effects = {}
70
71 for i=0, getNumOfChildren(node)-1 do
72 local child = getChildAt(node, i)
73 local effectClassName = Utils.getNoNil(getUserAttribute(child, "effectClass"), "ShaderPlaneEffect")
74 local effectClass = self:getEffectClass(effectClassName)
75 if effectClass == nil then
76 if parent.customEnvironment ~= nil and parent.customEnvironment ~= "" then
77 effectClass = self:getEffectClass(parent.customEnvironment.."."..effectClassName)
78 end
79 if effectClass == nil then
80 -- Fallback to the old method if no registered class is found
81 effectClass = ClassUtil.getClassObject(effectClassName)
82 end
83 end
84 if effectClass ~= nil then
85 local effect = effectClass:new()
86 if effect ~= nil then
87 table.insert(effects, effect:loadFromNode(child, parent))
88 end
89 else
90 print("Warning: Unkown effect '"..effectClassName.."' in '"..getName(node).."'")
91 end
92 end
93
94 return effects
95end

new

Description
Creating manager
Definition
new()
Return Values
tableinstanceinstance of object
Code
16function EffectManager:new(customMt)
17 local self = AbstractManager:new(customMt or EffectManager_mt)
18
19 return self
20end

registerEffectClass

Description
Globally register effect class
Definition
registerEffectClass()
Code
99function EffectManager:registerEffectClass(className, effectClass)
100 if not ClassUtil.getIsValidClassName(className) then
101 print("Error: Invalid effect class name: "..className)
102 return
103 end
104 self.registeredEffectClasses[className] = effectClass
105end

resetEffect

Description
Reset a single effect
Definition
resetEffect()
Code
184function EffectManager:resetEffect(effect)
185 if effect ~= nil then
186 self.runningEffects[effect] = nil
187 effect:reset()
188 end
189end

resetEffects

Description
Reset a list of effects
Definition
resetEffects()
Code
174function EffectManager:resetEffects(effects)
175 if effects ~= nil then
176 for _, effect in pairs(effects) do
177 self:resetEffect(effect)
178 end
179 end
180end

setFillType

Description
Set fillype for a list of effects
Definition
setFillType()
Code
193function EffectManager:setFillType(effects, fillType)
194 if effects ~= nil then
195 for _, effect in pairs(effects) do
196 if effect.setFillType ~= nil then
197 effect:setFillType(fillType)
198 end
199 end
200 end
201end

setMinMaxWidth

Description
Set minimum and maximum width for a single effect
Definition
setMinMaxWidth()
Code
205function EffectManager:setMinMaxWidth(effects, minWidth, maxWidth, reset)
206 if effects ~= nil then
207 for _, effect in pairs(effects) do
208 if effect.setMinMaxWidth ~= nil then
209 effect:setMinMaxWidth(minWidth, maxWidth, reset)
210 end
211 end
212 end
213end

startEffect

Description
Start a single effect
Definition
startEffect()
Code
148function EffectManager:startEffect(effect)
149 if effect ~= nil and effect:start() then
150 self.runningEffects[effect] = effect
151 end
152end

startEffects

Description
Start a list of effects
Definition
startEffects()
Code
138function EffectManager:startEffects(effects)
139 if effects ~= nil then
140 for _, effect in pairs(effects) do
141 self:startEffect(effect)
142 end
143 end
144end

stopEffect

Description
Stop a single effect
Definition
stopEffect()
Code
166function EffectManager:stopEffect(effect)
167 if effect ~= nil and effect:stop() then
168 self.runningEffects[effect] = effect
169 end
170end

stopEffects

Description
Stop a list of effects
Definition
stopEffects()
Code
156function EffectManager:stopEffects(effects)
157 if effects ~= nil then
158 for _, effect in pairs(effects) do
159 self:stopEffect(effect)
160 end
161 end
162end

update

Description
Definition
update()