LUADOC - Farming Simulator 22

Script v1_7_1_0

Engine v1_7_1_0

Foundation Reference

TensionBeltManager

Description
This class handles all tension belts
Functions

getBeltData

Description
Definition
getBeltData()
Code
108function TensionBeltManager:getBeltData(beltName)
109 if beltName == nil then
110 return self.defaultBeltData
111 end
112
113 local beltType = self:getType(beltName)
114
115 local beltData = self.belts[beltType]
116 if beltData == nil then
117 return self.defaultBeltData
118 end
119
120 return beltData
121end

getType

Description
Definition
getType()
Code
102function TensionBeltManager:getType(beltName)
103 return "BELT_TYPE_"..string.upper(beltName)
104end

initDataStructures

Description
Initialize data structures
Definition
initDataStructures()
Code
31function TensionBeltManager:initDataStructures()
32 self.belts = {}
33 self.defaultBeltData = nil
34end

new

Description
Creating manager
Definition
new()
Return Values
tableinstanceinstance of object
Code
16function TensionBeltManager.new(customMt)
17 if customMt == nil then
18 customMt = TensionBeltManager_mt
19 end
20
21 local self = {}
22 setmetatable(self, customMt)
23
24 self:initDataStructures()
25
26 return self
27end

onCreateTensionBelt

Description
Definition
onCreateTensionBelt()
Code
44function TensionBeltManager.onCreateTensionBelt(_, id)
45 local self = g_tensionBeltManager
46
47 local name = Utils.getNoNil(getUserAttribute(id, "name"), "default")
48 local width = Utils.getNoNil(getUserAttribute(id, "width"), 0.15)
49 local beltType = self:getType(name)
50
51 if self.belts[beltType] ~= nil then
52 print("Warning: Tension belt type '"..name.."' already exists!")
53 return
54 end
55
56 local belt = {}
57 belt.width = width
58
59 for i=0, getNumOfChildren(id)-1 do
60 local node = getChildAt(id, i)
61
62 if getUserAttribute(node, 'isMaterial') then
63 belt.material = {materialId=getMaterial(node, 0), uvScale=Utils.getNoNil(getUserAttribute(node, 'uvScale'), 0.1)}
64
65 elseif getUserAttribute(node, 'isDummyMaterial') then
66 belt.dummyMaterial = {materialId=getMaterial(node, 0), uvScale=Utils.getNoNil(getUserAttribute(node, 'uvScale'), 0.1)}
67
68 elseif getUserAttribute(node, 'isHook') then
69 if belt.hook ~= nil then
70 local _,_,z = getTranslation(getChildAt(node, 0))
71 belt.hook2 = {node=node, sizeRatio=z}
72 else
73 local _,_,z = getTranslation(getChildAt(node, 0))
74 belt.hook = {node=node, sizeRatio=z}
75 end
76
77 elseif getUserAttribute(node, 'isRatchet') then
78 local _,_,z = getTranslation(getChildAt(node, 0))
79 belt.ratchet = {node=node, sizeRatio=z}
80 end
81 end
82
83 if belt.material == nil then
84 print("Warning: No material defined for tension belt type '"..name.."'!")
85 return
86 end
87
88 if belt.dummyMaterial == nil then
89 print("Warning: No material defined for tension belt type '"..name.."'!")
90 return
91 end
92
93 self.belts[beltType] = belt
94
95 if self.defaultBeltData == nil then
96 self.defaultBeltData = belt
97 end
98end

unloadMapData

Description
Definition
unloadMapData()
Code
38function TensionBeltManager:unloadMapData()
39 self:initDataStructures()
40end