Skip to main content
Skip to main content

LoanTrigger

LoanTrigger

Description

Class for loan triggers

Functions

delete

Description

Delete loan trigger

Definition

delete()

Code

function LoanTrigger:delete()
g_messageCenter:unsubscribeAll( self )

if self.triggerId ~ = nil then
removeTrigger( self.triggerId)
end
self.loanSymbol = nil
g_currentMission.activatableObjectsSystem:removeActivatable( self.activatable)
end

new

Description

Create loan trigger object

Definition

new(integer name)

Arguments

integernameid of trigger node

Return Values

integerinstanceinstance

Code

function LoanTrigger.new(name)
local self = setmetatable( { } , LoanTrigger _mt)

if g_currentMission:getIsClient() then
self.triggerId = name
addTrigger(name, "triggerCallback" , self )
end

self.loanSymbol = getChildAt(name, 0 )

self.activatable = LoanTriggerActivatable.new( self )

self.isEnabled = true

g_messageCenter:subscribe(MessageType.PLAYER_FARM_CHANGED, self.playerFarmChanged, self )

self:updateIconVisibility()

return self
end

onCreate

Description

On create loan trigger

Definition

onCreate(integer id)

Arguments

integeridid of trigger node

Code

function LoanTrigger:onCreate(id)
g_currentMission:addNonUpdateable( LoanTrigger.new(id))
end

openFinanceMenu

Description

Called on activate object

Definition

openFinanceMenu()

Code

function LoanTrigger:openFinanceMenu()
g_gui:showGui( "InGameMenu" )
g_messageCenter:publish(MessageType.GUI_INGAME_OPEN_FINANCES_SCREEN)
end

playerFarmChanged

Description

Definition

playerFarmChanged()

Arguments

anyplayer

Code

function LoanTrigger:playerFarmChanged(player)
if player = = g_localPlayer then
self:updateIconVisibility()
end
end

triggerCallback

Description

Trigger callback

Definition

triggerCallback(integer triggerId, integer otherId, boolean onEnter, boolean onLeave, boolean onStay)

Arguments

integertriggerIdid of trigger
integerotherIdid of actor
booleanonEnteron enter
booleanonLeaveon leave
booleanonStayon stay

Code

function LoanTrigger:triggerCallback(triggerId, otherId, onEnter, onLeave, onStay)
if self.isEnabled and g_currentMission.missionInfo:isa(FSCareerMissionInfo) then
if onEnter or onLeave then
if g_localPlayer ~ = nil and otherId = = g_localPlayer.rootNode then
if onEnter then
g_currentMission.activatableObjectsSystem:addActivatable( self.activatable)
else
g_currentMission.activatableObjectsSystem:removeActivatable( self.activatable)
end
end
end
end
end

updateIconVisibility

Description

Turn the icon on or off depending on the current game and the players farm

Definition

updateIconVisibility()

Code

function LoanTrigger:updateIconVisibility()
if self.loanSymbol ~ = nil then
local isAvailable = self.isEnabled and g_currentMission.missionInfo:isa(FSCareerMissionInfo)
local farmId = g_currentMission:getFarmId()
local visibleForFarm = farmId ~ = FarmManager.SPECTATOR_FARM_ID

setVisibility( self.loanSymbol, isAvailable and visibleForFarm)
end
end