Scripts/resources/[standalone]/bob74_ipl/dlc_gunrunning/bunkers.lua
2024-12-29 21:02:20 +01:00

156 lines
6.7 KiB
Lua

exports('GetGunrunningBunkerObject', function()
return GunrunningBunker
end)
GunrunningBunker = {
interiorId = 258561,
Ipl = {
Interior = {
ipl = "gr_grdlc_interior_placement_interior_1_grdlc_int_02_milo_",
-- Load interiors IPLs.
Load = function()
EnableIpl(GunrunningBunker.Ipl.Interior.ipl, true)
end,
-- Remove interiors IPLs.
Remove = function()
EnableIpl(GunrunningBunker.Ipl.Interior.ipl, false)
end
},
Exterior = {
ipl = {
"gr_case0_bunkerclosed", -- Desert: 848.6175, 2996.567, 45.81612
"gr_case1_bunkerclosed",-- SmokeTree: 2126.785, 3335.04, 48.21422
"gr_case2_bunkerclosed", -- Scrapyard: 2493.654, 3140.399, 51.28789
"gr_case3_bunkerclosed", -- Oilfields: 481.0465, 2995.135, 43.96672
"gr_case4_bunkerclosed", -- RatonCanyon: -391.3216, 4363.728, 58.65862
"gr_case5_bunkerclosed", -- Grapeseed: 1823.961, 4708.14, 42.4991
"gr_case6_bunkerclosed", -- Farmhouse: 1570.372, 2254.549, 78.89397
"gr_case7_bunkerclosed", -- Paletto: -783.0755, 5934.686, 24.31475
"gr_case9_bunkerclosed", -- Route68: 24.43542, 2959.705, 58.35517
"gr_case10_bunkerclosed", -- Zancudo: -3058.714, 3329.19, 12.5844
"gr_case11_bunkerclosed" -- Great Ocean Highway: -3180.466, 1374.192, 19.9597
},
-- Load exteriors IPLs.
Load = function()
EnableIpl(GunrunningBunker.Ipl.Exterior.ipl, true)
end,
-- Remove exteriors IPLs.
Remove = function()
EnableIpl(GunrunningBunker.Ipl.Exterior.ipl, false)
end
}
},
Style = {
default = "Bunker_Style_A",
blue = "Bunker_Style_B",
yellow = "Bunker_Style_C",
-- Set the style (color) of the bunker.
-- style: Wall color (values: GunrunningBunker.Style.default / GunrunningBunker.Style.blue / GunrunningBunker.Style.yellow)
-- refresh: Reload the whole interior (values: true / false)
Set = function(style, refresh)
GunrunningBunker.Style.Clear(false)
SetIplPropState(GunrunningBunker.interiorId, style, true, refresh)
end,
-- Removes the style.
-- refresh: Reload the whole interior (values: true / false)
Clear = function(refresh)
SetIplPropState(GunrunningBunker.interiorId, {
GunrunningBunker.Style.default,
GunrunningBunker.Style.blue,
GunrunningBunker.Style.yellow
}, false, refresh)
end
},
Tier = {
default = "standard_bunker_set",
upgrade = "upgrade_bunker_set",
-- Set the tier (quality) of the bunker.
-- tier: Upgrade state (values: GunrunningBunker.Tier.default / GunrunningBunker.Tier.upgrade)
-- refresh: Reload the whole interior (values: true / false)
Set = function(tier, refresh)
GunrunningBunker.Tier.Clear(false)
SetIplPropState(GunrunningBunker.interiorId, tier, true, refresh)
end,
-- Removes the tier.
-- refresh: Reload the whole interior (values: true / false)
Clear = function(refresh)
SetIplPropState(GunrunningBunker.interiorId, {
GunrunningBunker.Tier.default,
GunrunningBunker.Tier.upgrade
}, false, refresh)
end
},
Security = {
noEntryGate = "",
default = "standard_security_set",
upgrade = "security_upgrade",
-- Set the security stage of the bunker.
-- security: Upgrade state (values: GunrunningBunker.Security.default / GunrunningBunker.Security.upgrade)
-- refresh: Reload the whole interior (values: true / false)
Set = function(security, refresh)
GunrunningBunker.Security.Clear(false)
if security ~= "" then
SetIplPropState(GunrunningBunker.interiorId, security, true, refresh)
else
if refresh then
RefreshInterior(GunrunningBunker.interiorId)
end
end
end,
-- Removes the security.
-- refresh: Reload the whole interior (values: true / false)
Clear = function(refresh)
SetIplPropState(GunrunningBunker.interiorId, {
GunrunningBunker.Security.default,
GunrunningBunker.Security.upgrade
}, false, refresh)
end
},
Details = {
office = "Office_Upgrade_set", -- Office interior
officeLocked = "Office_blocker_set", -- Metal door blocking access to the office
locker = "gun_locker_upgrade", -- Locker next to the office door
rangeLights = "gun_range_lights", -- Lights next to the shooting range
rangeWall = "gun_wall_blocker", -- Wall blocking access to the shooting range
rangeLocked = "gun_range_blocker_set", -- Metal door blocking access to the shooting range
schematics = "Gun_schematic_set", -- Gun schematic on the table and whiteboard
-- Enable or disable a detail.
-- details: Prop to enable or disable (values: GunrunningBunker.Details.office / GunrunningBunker.Details.officeLocked / GunrunningBunker.Details.locker...)
-- state: Enable or Disable (values: true / false)
-- refresh: Reload the whole interior (values: true / false)
Enable = function(details, state, refresh)
SetIplPropState(GunrunningBunker.interiorId, details, state, refresh)
end
},
LoadDefault = function()
GunrunningBunker.Ipl.Interior.Load()
GunrunningBunker.Ipl.Exterior.Load()
GunrunningBunker.Style.Set(GunrunningBunker.Style.default)
GunrunningBunker.Tier.Set(GunrunningBunker.Tier.default)
GunrunningBunker.Security.Set(GunrunningBunker.Security.default)
GunrunningBunker.Details.Enable(GunrunningBunker.Details.office, true)
GunrunningBunker.Details.Enable(GunrunningBunker.Details.officeLocked, false)
GunrunningBunker.Details.Enable(GunrunningBunker.Details.locker, true)
GunrunningBunker.Details.Enable(GunrunningBunker.Details.rangeLights, true)
GunrunningBunker.Details.Enable(GunrunningBunker.Details.rangeWall, false)
GunrunningBunker.Details.Enable(GunrunningBunker.Details.rangeLocked, false)
GunrunningBunker.Details.Enable(GunrunningBunker.Details.schematics, false)
-- Must be called in order to spawn or remove the props
RefreshInterior(GunrunningBunker.interiorId)
end
}