Script v1.7.1.0
- AI
- Animals
- Contracts
- Debug
- Economy
- Effects
- Events
- Farms
- GUI
- Handtools
- I3d
- Materials
- Misc
- Objects
- Placeables
- Player
- Shop
- Sounds
- Specializations
- Triggers
- AnimalLoadingTrigger
- BasketTrigger
- FillPlane
- FillTrigger
- InsideBuildingTrigger
- LoadTrigger
- LoadTriggerSetIsLoadingEv...
- LoanTrigger
- RainDropFactorTrigger
- ShopTrigger
- TransportMissionTrigger
- UnloadFeedingTrough
- UnloadTrigger
- WeighStation
- Utils
- Vehicles
- Weather
Engine v1.7.1.0
- AI
- Animation
- Camera
- Entity
- Fillplanes
- General
- I3D
- Input
- Lighting
- Math
- Network
- Node
- Overlays
- Particle System
- Physics
- Rendering
- Scenegraph
- Shape
- Sound
- Spline
- String
- Terrain Detail
- Text Rendering
- Tire Track
- XML
- general
Foundation Reference
ShopTrigger
DescriptionClass for shop triggers to open shop guiFunctions
delete
DescriptionDeleting shop triggerDefinition
delete()Code
47 | function ShopTrigger:delete() |
48 | g_messageCenter:unsubscribeAll(self) |
49 | if self.triggerId ~= nil then |
50 | removeTrigger(self.triggerId) |
51 | end |
52 | self.shopSymbol = nil |
53 | g_currentMission:removeActivatableObject(self) |
54 | end |
getIsActivatable
DescriptionReturns true if shop can be openedDefinition
getIsActivatable()Return Values
boolean | isActivateable | is activateable |
59 | function ShopTrigger:getIsActivatable() |
60 | return self.isEnabled and g_currentMission.controlPlayer and g_currentMission:getFarmId() ~= FarmManager.SPECTATOR_FARM_ID |
61 | end |
new
DescriptionCreating shop trigger objectDefinition
new(integer name)Arguments
integer | name | trigger node id |
table | instance | instance of object |
21 | function ShopTrigger:new(name) |
22 | local self = {} |
23 | setmetatable(self, ShopTrigger_mt) |
24 | |
25 | if g_currentMission:getIsClient() then |
26 | self.triggerId = name |
27 | addTrigger(name, "triggerCallback", self) |
28 | end |
29 | |
30 | self.shopSymbol = getChildAt(name, 0) |
31 | self.shopPlayerSpawn = getChildAt(name, 1) |
32 | |
33 | self.objectActivated = false |
34 | self.isEnabled = true |
35 | |
36 | g_messageCenter:subscribe(MessageType.PLAYER_FARM_CHANGED, self.playerFarmChanged, self) |
37 | |
38 | self:updateIconVisibility() |
39 | |
40 | self.activateText = g_i18n:getText("action_activateShop") |
41 | |
42 | return self |
43 | end |
onActivateObject
DescriptionCalled on activate objectDefinition
onActivateObject()Code
69 | function ShopTrigger:onActivateObject() |
70 | g_currentMission:addActivatableObject(self) |
71 | self.objectActivated = true |
72 | |
73 | g_gui:changeScreen(nil, ShopMenu) |
74 | |
75 | local x,y,z = getWorldTranslation(self.shopPlayerSpawn) |
76 | local dx, _, dz = localDirectionToWorld(self.shopPlayerSpawn, 0, 0, -1) |
77 | g_currentMission.player:moveToAbsolute(x,y,z) |
78 | g_currentMission.player.rotY = MathUtil.getYRotationFromDirection(dx, dz) |
79 | end |
onCreate
DescriptionOn create shop triggerDefinition
onCreate(integer id)Arguments
integer | id | trigger node id |
13 | function ShopTrigger:onCreate(id) |
14 | g_currentMission:addNonUpdateable(ShopTrigger:new(id)) |
15 | end |
triggerCallback
DescriptionTrigger callbackDefinition
triggerCallback(integer triggerId, integer otherId, boolean onEnter, boolean onLeave, boolean onStay)Arguments
integer | triggerId | id of trigger |
integer | otherId | id of actor |
boolean | onEnter | on enter |
boolean | onLeave | on leave |
boolean | onStay | on stay |
88 | function ShopTrigger:triggerCallback(triggerId, otherId, onEnter, onLeave, onStay) |
89 | if self.isEnabled and (not g_isPresentationVersion or g_isPresentationVersionShopEnabled) and g_currentMission.missionInfo:isa(FSCareerMissionInfo) then |
90 | if onEnter or onLeave then |
91 | if g_currentMission.player ~= nil and otherId == g_currentMission.player.rootNode then |
92 | if onEnter then |
93 | if not self.objectActivated then |
94 | g_currentMission:addActivatableObject(self) |
95 | self.objectActivated = true |
96 | end |
97 | else |
98 | if self.objectActivated then |
99 | g_currentMission:removeActivatableObject(self) |
100 | self.objectActivated = false |
101 | end |
102 | end |
103 | end |
104 | end |
105 | end |
106 | end |