Files
2025-03-31 13:19:47 +02:00

76 lines
3.2 KiB
Lua

local configPath = RealSonar.Path .. "/config.json"
local defaultConfig = dofile(RealSonar.Path .. "/Lua/defaultconfig.lua")
if not File.Exists(configPath) then
-- Create config with default values.
RealSonar.Config = defaultConfig
File.Write(configPath, json.serialize(RealSonar.Config))
else
-- Load config.
RealSonar.Config = json.parse(File.Read(configPath))
-- Limit values in the case they are manually edited.
if RealSonar.Config.SonarRange > 1.91 then
RealSonar.Config.SonarRange = 1.91
elseif RealSonar.Config.SonarRange < 0.1 then
RealSonar.Config.SonarRange = 0.1
end
if RealSonar.Config.SonarDamage > 2 then
RealSonar.Config.SonarDamage = 2
elseif RealSonar.Config.SonarDamage < 0 then
RealSonar.Config.SonarDamage = 0
end
if RealSonar.Config.SonarSlow > 1.5 then
RealSonar.Config.SonarSlow = 1.5
elseif RealSonar.Config.SonarSlow < 0.5 then
RealSonar.Config.SonarSlow = 0.5
end
if RealSonar.Config.ImpactVisuals > 2 then
RealSonar.Config.ImpactVisuals = 2
elseif RealSonar.Config.ImpactVisuals < 0 then
RealSonar.Config.ImpactVisuals = 0
end
RealSonar.Config.VFXPreset = math.floor(RealSonar.Config.VFXPreset)
if RealSonar.Config.VFXPreset > 2 then
RealSonar.Config.VFXPreset = 2
elseif RealSonar.Config.VFXPreset < 0 then
RealSonar.Config.VFXPreset = 0
end
-- Add missing values.
for key, value in pairs(defaultConfig) do
if RealSonar.Config[key] == nil then
RealSonar.Config[key] = value
end
end
-- In case someone deletes the three default terminals.
-- The reason I am not adding them in the same manner as the package specific ignored characters below is
-- because I still want people to be able to edit the values of the terminals, just not delete them.
if not RealSonar.Config.SonarTerminals["navterminal"] then
RealSonar.Config.SonarTerminals["navterminal"] = defaultConfig.SonarTerminals["navterminal"]
end
if not RealSonar.Config.SonarTerminals["shuttlenavterminal"] then
RealSonar.Config.SonarTerminals["shuttlenavterminal"] = defaultConfig.SonarTerminals["shuttlenavterminal"]
end
if not RealSonar.Config.SonarTerminals["sonarmonitor"] then
RealSonar.Config.SonarTerminals["sonarmonitor"] = defaultConfig.SonarTerminals["sonarmonitor"]
end
end
-- Package specific changes.
for package in ContentPackageManager.EnabledPackages.All do
-- Real Sonar LITE.
if tostring(package.UgcId) == "2938034581" then
RealSonar.LITE = true
-- Undersea Horrors or Barotraumatic Creature Pack.
elseif tostring(package.UgcId) == "2667451351" or tostring(package.UgcId) == "2831987252" then
table.insert(RealSonar.Config.IgnoredCharacters, "Mine")
table.insert(RealSonar.Config.IgnoredCharacters, "Minedetached")
table.insert(RealSonar.Config.IgnoredCharacters, "Minesmall")
table.insert(RealSonar.Config.IgnoredCharacters, "Minemission")
table.insert(RealSonar.Config.IgnoredCharacters, "Minedetachedmission")
table.insert(RealSonar.Config.IgnoredCharacters, "Minesmallmission")
table.insert(RealSonar.Config.IgnoredCharacters, "DeadnoughtHomingshell")
end
end