Script v1.4.4.0
- Handtools
- Events
- Objects
- Placeables
- Triggers
- BaleDestroyerTrigger
- BasketTrigger
- ConveyorBeltTipTrigger
- FillTrigger
- GasStationTrigger
- LiquidManureFillTrigger
- LoanTrigger
- PickupObjectsSellTrigger
- ReceivingTipTrigger
- ShopTrigger
- SiloTrigger
- TipTrigger
- WaterTrailerFillTrigger
- WeighStation
- WoodSellTrigger
- Utils
- Vehicles
- Specializations
Engine v7.0.0.2
- General
- Entity
- Node
- Scenegraph
- Lighting
- Camera
- Shape
- Particle System
- Physics
- Spline
- Animation
- Overlays
- Sound
- Input
- XML
- Network
- Callbacks
- Text Rendering
- Terrain Detail
- Tire Track
- Editor
- Rendering
- String
- Math
- I3D
- Fillplanes
Foundation Reference
ShopTrigger
DescriptionClass for shop triggers to open shop guiFunctions
onCreate
DescriptionOn create shop triggerDefinition
onCreate(integer id)Arguments
integer | id | trigger node id |
15 | function ShopTrigger:onCreate(id) |
16 | g_currentMission:addNonUpdateable(ShopTrigger:new(id)); |
17 | end; |
new
DescriptionCreating shop trigger objectDefinition
new(integer name)Arguments
integer | name | trigger node id |
table | instance | instance of object |
23 | function ShopTrigger:new(name) |
24 | local self = {}; |
25 | setmetatable(self, ShopTrigger_mt); |
26 | |
27 | self.triggerId = name; |
28 | if g_currentMission:getIsClient() then |
29 | addTrigger(name, "triggerCallback", self); |
30 | end; |
31 | |
32 | self.shopSymbol = getChildAt(name, 0); |
33 | self.shopPlayerSpawn = getChildAt(name, 1); |
34 | |
35 | self.objectActivated = false; |
36 | self.isEnabled = true; |
37 | |
38 | if (g_isPresentationVersion and not g_isPresentationVersionShopEnabled) or (not g_currentMission.missionInfo:isa(FSCareerMissionInfo)) then |
39 | setVisibility(self.shopSymbol, false); |
40 | end; |
41 | |
42 | self.activateText = g_i18n:getText("action_activateShop"); |
43 | |
44 | return self; |
45 | end; |
delete
DescriptionDeleting shop triggerDefinition
delete()Code
49 | function ShopTrigger:delete() |
50 | if g_currentMission:getIsClient() then |
51 | removeTrigger(self.triggerId); |
52 | g_currentMission:removeActivatableObject(self); |
53 | end; |
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; |
61 | end; |
onActivateObject
DescriptionCalled on activate objectDefinition
onActivateObject()Code
69 | function ShopTrigger:onActivateObject() |
70 | g_currentMission:addActivatableObject(self); |
71 | self.objectActivated = true; |
72 | g_gui:showGui("ShopScreen"); |
73 | local x,y,z = getWorldTranslation(self.shopPlayerSpawn); |
74 | local dx, _, dz = localDirectionToWorld(self.shopPlayerSpawn, 0, 0, -1); |
75 | g_currentMission.player:moveToAbsolute(x,y,z); |
76 | g_currentMission.player.rotY = Utils.getYRotationFromDirection(dx, dz); |
77 | 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 |
86 | function ShopTrigger:triggerCallback(triggerId, otherId, onEnter, onLeave, onStay) |
87 | if self.isEnabled and (not g_isPresentationVersion or g_isPresentationVersionShopEnabled) and g_currentMission.missionInfo:isa(FSCareerMissionInfo) then |
88 | if onEnter or onLeave then |
89 | if g_currentMission.player ~= nil and otherId == g_currentMission.player.rootNode then |
90 | if onEnter then |
91 | if not self.objectActivated then |
92 | g_currentMission:addActivatableObject(self); |
93 | self.objectActivated = true; |
94 | end |
95 | else |
96 | if self.objectActivated then |
97 | g_currentMission:removeActivatableObject(self); |
98 | self.objectActivated = false; |
99 | end |
100 | end; |
101 | end; |
102 | end; |
103 | end; |
104 | end; |