LUADOC - Farming Simulator 22

Script v1_7_1_0

Engine v1_7_1_0

Foundation Reference

PlaceableWardrobe

Description
Specialization for placeables
Functions

onDelete

Description
Definition
onDelete()
Code
65function PlaceableWardrobe:onDelete()
66 local spec = self.spec_wardrobe
67
68 g_currentMission.activatableObjectsSystem:removeActivatable(spec.activatable)
69
70 if spec.wardrobeTrigger ~= nil then
71 removeTrigger(spec.wardrobeTrigger)
72 end
73end

onLoad

Description
Called on loading
Definition
onLoad(table savegame)
Arguments
tablesavegamesavegame
Code
46function PlaceableWardrobe:onLoad(savegame)
47 local spec = self.spec_wardrobe
48
49 spec.activatable = PlaceableWardrobeActivatable.new(self)
50
51 local wardrobeTriggerKey = "placeable.wardrobe#triggerNode"
52 spec.wardrobeTrigger = self.xmlFile:getValue(wardrobeTriggerKey, nil, self.components, self.i3dMappings)
53 if spec.wardrobeTrigger ~= nil then
54 if not CollisionFlag.getHasFlagSet(spec.wardrobeTrigger, CollisionFlag.TRIGGER_PLAYER) then
55 Logging.warning("%s wardrobe trigger '%s' does not have 'TRIGGER_PLAYER' bit (%s) set", self.configFileName, wardrobeTriggerKey, CollisionFlag.getBit(CollisionFlag.TRIGGER_PLAYER))
56 end
57 addTrigger(spec.wardrobeTrigger, "wardrobeTriggerCallback", self)
58 end
59
60 spec.allowAllFarms = self.xmlFile:getValue("placeable.wardrobe#allowAllFarms", false)
61end

prerequisitesPresent

Description
Checks if all prerequisite specializations are loaded
Definition
prerequisitesPresent(table specializations)
Arguments
tablespecializationsspecializations
Return Values
booleanhasPrerequisitetrue if all prerequisite specializations are loaded
Code
17function PlaceableWardrobe.prerequisitesPresent(specializations)
18 return true
19end

registerEventListeners

Description
Definition
registerEventListeners()
Code
29function PlaceableWardrobe.registerEventListeners(placeableType)
30 SpecializationUtil.registerEventListener(placeableType, "onLoad", PlaceableWardrobe)
31 SpecializationUtil.registerEventListener(placeableType, "onDelete", PlaceableWardrobe)
32end

registerFunctions

Description
Definition
registerFunctions()
Code
23function PlaceableWardrobe.registerFunctions(placeableType)
24 SpecializationUtil.registerFunction(placeableType, "wardrobeTriggerCallback", PlaceableWardrobe.wardrobeTriggerCallback)
25end

registerXMLPaths

Description
Definition
registerXMLPaths()
Code
36function PlaceableWardrobe.registerXMLPaths(schema, basePath)
37 schema:setXMLSpecializationType("Wardrobe")
38 schema:register(XMLValueType.NODE_INDEX, basePath .. ".wardrobe#triggerNode", "Wardrobe trigger node for player")
39 schema:register(XMLValueType.BOOL, basePath .. ".wardrobe#allowAllFarms", "Allow any farm not just the owner to access the wardrobe", "false if owned by a specific farm, true otherwise")
40 schema:setXMLSpecializationType()
41end

wardrobeTriggerCallback

Description
Definition
wardrobeTriggerCallback()
Code
77function PlaceableWardrobe:wardrobeTriggerCallback(triggerId, otherActorId, onEnter, onLeave, onStay, otherShapeId)
78 if onEnter or onLeave then
79 if g_currentMission.player ~= nil and otherActorId == g_currentMission.player.rootNode then
80 local spec = self.spec_wardrobe
81 if spec.allowAllFarms or self:getOwnerFarmId() == g_currentMission.player.farmId then
82 if onEnter then
83 g_currentMission.activatableObjectsSystem:addActivatable(spec.activatable)
84 else
85 g_currentMission.activatableObjectsSystem:removeActivatable(spec.activatable)
86 end
87 end
88 end
89 end
90end