Script v1.4.4.0
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
VehicleSellingPoint
DescriptionClass for vehicle selling pointFunctions
- onCreate
- new
- delete
- getIsActivatable
- onActivateObject
- update
- triggerCallback
- sellAreaTriggerCallback
- determineCurrentVehicle
onCreate
DescriptionCreating vehicle selling pointDefinition
onCreate(integer id)Arguments
integer | id | node id |
15 | function VehicleSellingPoint:onCreate(id) |
16 | local vehicleSellingPoint = VehicleSellingPoint:new(id) |
17 | g_currentMission:addUpdateable(vehicleSellingPoint) |
18 | end |
new
DescriptionCreating vehicle selling pointDefinition
new(integer id)Arguments
integer | id | node id |
table | instance | Instance of object |
24 | function VehicleSellingPoint:new(id) |
25 | local self = {} |
26 | setmetatable(self, VehicleSellingPoint_mt) |
27 | |
28 | self.id = id |
29 | |
30 | self.sellTriggerId = Utils.indexToObject(self.id, Utils.getNoNil(getUserAttribute(self.id, "triggerIndex"), "0")) |
31 | self.sellIconId = Utils.indexToObject(self.id, Utils.getNoNil(getUserAttribute(self.id, "sellIconIndex"), "0|0")) |
32 | |
33 | addTrigger(self.sellTriggerId, "triggerCallback", self) |
34 | |
35 | self.sellAreaTriggerId = Utils.indexToObject(self.id, Utils.getNoNil(getUserAttribute(self.id, "sellAreaTriggerId"), "1")) |
36 | addTrigger(self.sellAreaTriggerId, "sellAreaTriggerCallback", self) |
37 | |
38 | self.ownWorkshop = Utils.getNoNil(getUserAttribute(self.id, "ownWorkshop"), false) |
39 | |
40 | self.vehicleInRange = {} |
41 | self.currentVehicle = nil |
42 | self.currentVehicleId = 0 |
43 | |
44 | self.activateText = g_i18n:getText("action_configSellSpecificVehicle") |
45 | |
46 | self.isEnabled = true |
47 | self.objectActivated = false |
48 | |
49 | if self.sellIconId ~= nil and ((g_isPresentationVersion and not g_isPresentationVersionShopEnabled) or (not g_currentMission.missionInfo:isa(FSCareerMissionInfo))) then |
50 | setVisibility(self.sellIconId, false) |
51 | end |
52 | |
53 | return self |
54 | end |
delete
DescriptionDeleting vehicle selling pointDefinition
delete()Code
58 | function VehicleSellingPoint:delete() |
59 | if g_currentMission:getIsClient() then |
60 | removeTrigger(self.sellTriggerId) |
61 | removeTrigger(self.sellAreaTriggerId) |
62 | end |
63 | end |
getIsActivatable
DescriptionGet is activateableDefinition
getIsActivatable()Return Values
boolean | isActivateable | is activateable |
68 | function VehicleSellingPoint:getIsActivatable() |
69 | return self.isEnabled and g_currentMission.controlPlayer |
70 | end |
onActivateObject
DescriptionOn activate objectDefinition
onActivateObject()Code
78 | function VehicleSellingPoint:onActivateObject() |
79 | self:determineCurrentVehicle() |
80 | g_gui:showDirectSellDialog({vehicle=self.currentVehicle, owner=self, ownWorkshop=self.ownWorkshop}) |
81 | end |
update
DescriptionUpdateDefinition
update(float dt)Arguments
float | dt | time since last call in ms |
86 | function VehicleSellingPoint:update(dt) |
87 | if self.isEnabled and self.sellIconId ~= nil then |
88 | rotate(self.sellIconId, 0, 0.002 * dt, 0) |
89 | end |
90 | 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 |
99 | function VehicleSellingPoint:triggerCallback(triggerId, otherId, onEnter, onLeave, onStay) |
100 | if self.isEnabled and (not g_isPresentationVersion or g_isPresentationVersionShopEnabled) and g_currentMission.missionInfo:isa(FSCareerMissionInfo) then |
101 | if onEnter or onLeave then |
102 | if g_currentMission.player ~= nil and otherId == g_currentMission.player.rootNode then |
103 | if onEnter then |
104 | if not self.objectActivated then |
105 | g_currentMission:addActivatableObject(self) |
106 | self.objectActivated = true |
107 | end |
108 | else |
109 | if self.objectActivated then |
110 | g_currentMission:removeActivatableObject(self) |
111 | self.objectActivated = false |
112 | end |
113 | end |
114 | end |
115 | end |
116 | end |
117 | end |
sellAreaTriggerCallback
DescriptionSell area trigger callbackDefinition
sellAreaTriggerCallback(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 |
126 | function VehicleSellingPoint:sellAreaTriggerCallback(triggerId, otherId, onEnter, onLeave, onStay, otherShapeId) |
127 | if otherShapeId ~= nil and (onEnter or onLeave) then |
128 | if onEnter then |
129 | self.vehicleInRange[otherShapeId] = true |
130 | elseif onLeave then |
131 | self.vehicleInRange[otherShapeId] = nil |
132 | end |
133 | |
134 | self:determineCurrentVehicle() |
135 | end |
136 | end |
determineCurrentVehicle
DescriptionDetermine current vehicleDefinition
determineCurrentVehicle()Code
140 | function VehicleSellingPoint:determineCurrentVehicle() |
141 | self.currentVehicle = nil |
142 | for vehicleId, inRange in pairs(self.vehicleInRange) do |
143 | if inRange ~= nil then |
144 | self.currentVehicle = g_currentMission.nodeToVehicle[vehicleId] |
145 | if self.currentVehicle ~= nil then |
146 | break |
147 | end |
148 | end |
149 | -- invalid vehicle (not existing or left), remove from list |
150 | self.vehicleInRange[vehicleId] = nil |
151 | end |
152 | end |