LUADOC - Farming Simulator 19

FruitTypeManager

Description
This class handles all fruitTypes and fruitTypeCategories
Parent
AbstractManager
Functions

getFruitTypeByIndex

Description
Gets a fruitType by index
Definition
getFruitTypeByIndex(integer index)
Arguments
integerindexthe fruit index
Return Values
tablefruitthe fruit object
Code
521function FruitTypeManager:getFruitTypeByIndex(index)
522 if index ~= nil then
523 return self.indexToFruitType[index]
524 end
525 return nil
526end

getFruitTypeByName

Description
Gets a fruitType by index name
Definition
getFruitTypeByName(string name)
Arguments
stringnamethe fruit index name
Return Values
tablefruitthe fruit object
Code
539function FruitTypeManager:getFruitTypeByName(name)
540 if name ~= nil then
541 name = name:upper()
542 return self.nameToFruitType[name]
543 end
544 return nil
545end

getFruitTypes

Description
Gets a list of fruitTypes
Definition
getFruitTypes()
Return Values
tablefruitTypesa list of fruitTypes
Code
550function FruitTypeManager:getFruitTypes()
551 return self.fruitTypes
552end

getFruitTypesByCategoryNames

Description
Gets a list of fruitTypes of the given category names
Definition
getFruitTypesByCategoryNames(string name, string warning)
Arguments
stringnamefruitType category index names
stringwarninga warning text shown if a category is not found
Return Values
tablefruitTypeslist of fruitTypes
Code
633function FruitTypeManager:getFruitTypesByCategoryNames(names, warning)
634 local fruitTypes = {}
635 local alreadyAdded = {}
636 local categories = StringUtil.splitString(" ", names)
637 for _, categoryName in pairs(categories) do
638 categoryName = categoryName:upper()
639 local categoryIndex = self.categories[categoryName]
640 local categoryFruitTypes = self.categoryToFruitTypes[categoryIndex]
641 if categoryFruitTypes ~= nil then
642 for _, fruitType in ipairs(categoryFruitTypes) do
643 if alreadyAdded[fruitType] == nil then
644 table.insert(fruitTypes, fruitType)
645 alreadyAdded[fruitType] = true
646 end
647 end
648 else
649 if warning ~= nil then
650 print(string.format(warning, categoryName))
651 end
652 end
653 end
654 return fruitTypes
655end

initDataStructures

Description
Initialize data structures
Definition
initDataStructures()
Code
35function FruitTypeManager:initDataStructures()
36 self.fruitTypes = {}
37 self.indexToFruitType = {}
38 self.nameToIndex = {}
39 self.nameToFruitType = {}
40 self.fruitTypeIndexToFillType = {}
41 self.fillTypeIndexToFruitTypeIndex = {}
42
43 self.fruitTypeConverters = {}
44 self.converterNameToIndex = {}
45 self.nameToConverter = {}
46
47 self.windrowFillTypes = {}
48 self.fruitTypeIndexToWindrowFillTypeIndex = {}
49
50 self.numCategories = 0
51 self.categories = {}
52 self.indexToCategory = {}
53 self.categoryToFruitTypes = {}
54
55 self.weedFruitType = nil
56
57 FruitType = self.nameToIndex
58 FruitType.UNKNOWN = 0
59 FruitTypeCategory = self.categories
60 FruitTypeConverter = self.converterNameToIndex
61end

loadMapData

Description
Load data on map load
Definition
loadMapData()
Return Values
booleantrueif loading was successful else false
Code
73function FruitTypeManager:loadMapData(xmlFile, missionInfo, baseDirectory)
74 FruitTypeManager:superClass().loadMapData(self)
75
76 self:loadDefaultTypes()
77 return XMLUtil.loadDataFromMapXML(xmlFile, "fruitTypes", baseDirectory, self, self.loadFruitTypes, missionInfo)
78end

new

Description
Creating manager
Definition
new()
Return Values
tableinstanceinstance of object
Code
28function FruitTypeManager:new(customMt)
29 local self = AbstractManager:new(customMt or FruitTypeManager_mt)
30 return self
31end