LUADOC - Farming Simulator 22

Script v1_7_1_0

Engine v1_7_1_0

Foundation Reference

SplitTypeManager

Description
This class handles all tree split types
Parent
AbstractManager
Functions

addSplitType

Description
Adds a new splitType
Definition
addSplitType()
Code
62function SplitTypeManager:addSplitType(name, l10nKey, splitTypeIndex, pricePerLiter, woodChipsPerLiter, allowsWoodHarvester, customEnvironment)
63 if self.typesByIndex[splitTypeIndex] ~= nil then
64 Logging.error("SplitTypeManager:addSplitType(): SplitTypeIndex '%d' is already in use for '%s'", splitTypeIndex, name)
65 return
66 end
67
68 name = name:upper()
69 if self.typesByName[name] ~= nil then
70 Logging.error("SplitTypeManager:addSplitType(): SplitType name '%s' is already in use", name)
71 return
72 end
73
74 local desc = {}
75 desc.name = name
76 desc.title = g_i18n:getText(l10nKey, customEnvironment)
77 desc.splitTypeIndex = splitTypeIndex
78 desc.pricePerLiter = pricePerLiter
79 desc.woodChipsPerLiter = woodChipsPerLiter
80 desc.allowsWoodHarvester = allowsWoodHarvester
81
82 self.typesByIndex[splitTypeIndex] = desc
83 self.typesByName[name] = desc
84end

getSplitTypeByIndex

Description
Returns split type table by given split type index provided by getSplitType()
Definition
getSplitTypeByIndex()
Code
88function SplitTypeManager:getSplitTypeByIndex(index)
89 -- check each split type index has a registered split type
90--#debug if index ~= 0 and self.typesByIndex[index] == nil then
91--#debug Logging.warning("split type index '%d' has no split type registered", index)
92--#debug end
93
94 return self.typesByIndex[index]
95end

initDataStructures

Description
Initialize data structures
Definition
initDataStructures()
Code
26function SplitTypeManager:initDataStructures()
27 self.typesByIndex = {}
28 self.typesByName = {}
29end

loadMapData

Description
Loads initial manager
Definition
loadMapData()
Return Values
booleantrueif loading was successful else false
Code
34function SplitTypeManager:loadMapData()
35 SplitTypeManager:superClass().loadMapData(self)
36
37 self:addSplitType("SPRUCE", "treeType_spruce", 1, 0.7, 3.0, true, nil) -- density 0.47
38 self:addSplitType("PINE", "treeType_pine", 2, 0.7, 3.0, true, nil) -- density 0.52
39 self:addSplitType("LARCH", "treeType_larch", 3, 0.7, 3.0, true, nil) -- density 0.59
40 self:addSplitType("BIRCH", "treeType_birch", 4, 0.85, 3.2, false, nil) -- density 0.65
41 self:addSplitType("BEECH", "treeType_beech", 5, 0.9, 3.4, false, nil) -- density 0.69
42 self:addSplitType("MAPLE", "treeType_maple", 6, 0.9, 3.4, false, nil) -- density 0.65
43 self:addSplitType("OAK", "treeType_oak", 7, 0.9, 3.4, false, nil) -- density 0.67
44 self:addSplitType("ASH", "treeType_ash", 8, 0.9, 3.4, false, nil) -- density 0.69
45 self:addSplitType("LOCUST", "treeType_locust", 9, 1.0, 3.8, false, nil) -- density 0.73
46 self:addSplitType("MAHOGANY", "treeType_mahogany", 10, 1.1, 3.0, false, nil) -- density 0.80
47 self:addSplitType("POPLAR", "treeType_poplar", 11, 0.7, 7.5, false, nil) -- density 0.48
48 self:addSplitType("AMERICANELM", "treeType_americanElm", 12, 0.7, 3.5, false, nil) -- density 0.57 -- TODO: tweak price + woodchips
49 self:addSplitType("CYPRESS", "treeType_cypress", 13, 0.7, 3.5, false, nil) -- density 0.51 -- TODO: tweak price + woodchips
50 self:addSplitType("DOWNYSERVICEBERRY", "treeType_downyServiceberry", 14, 0.7, 3.5, false, nil) -- density 0.63 -- TODO: tweak price + woodchips
51 self:addSplitType("PAGODADOGWOOD", "treeType_pagodaDogwood", 15, 0.7, 3.5, false, nil) -- density 0.76 -- TODO: tweak price + woodchips
52 self:addSplitType("SHAGBARKHICKORY", "treeType_shagbarkHickory", 16, 0.7, 3.5, false, nil) -- density 0.75 -- TODO: tweak price + woodchips
53 self:addSplitType("STONEPINE", "treeType_stonePine", 17, 0.7, 3.5, false, nil) -- density 0.51 -- TODO: tweak price + woodchips
54 self:addSplitType("WILLOW", "treeType_willow", 18, 0.7, 3.5, false, nil) -- density 0.50 -- TODO: tweak price + woodchips
55 self:addSplitType("OLIVETREE", "treeType_oliveTree", 19, 0.6, 3.5, false, nil) -- density 0.45 -- TODO: tweak price + woodchips
56
57 return true
58end

new

Description
Creating manager
Definition
new()
Return Values
tableinstanceinstance of object
Code
18function SplitTypeManager.new(customMt)
19 local self = AbstractManager.new(customMt or SplitTypeManager_mt)
20
21 return self
22end