c1_lua/lua/app/common/local_data.lua
2023-04-26 18:12:49 +08:00

283 lines
6.6 KiB
Lua

local LocalData ={}
local PlayerPrefs = CS.UnityEngine.PlayerPrefs
local LOCAL_DATA_KEY = {
SDK_UID = "SDK_UID",
AUDIO_MUSIC_VOLUME = "AUDIO_MUSIC_VOLUME",
AUDIO_EFFECT_VOLUME = "AUDIO_EFFECT_VOLUME",
SELECTED_LANGUAGE = "SELECTED_LANGUAGE",
GM_SHOW_FLOATING_ICON = "GM_SHOW_FLOATING_ICON",
MESSAGE_BOX_SHOW_TODAY = "MESSAGE_BOX_SHOW_TODAY",
GAME_QUALITY_LEVEL = "GAME_QUALITY_LEVEL", -- 游戏设置品质等级
LAST_LOGIN_URL = "LAST_LOGIN_URL",
LAST_LOGIN_NAME = "LAST_LOGIN_NAME",
LAST_LOGIN_IP = "LAST_LOGIN_IP",
ACCOUNT_INFO = "ACCOUNT_INFO",
SDK_LOGIN_TYPE = "SDK_LOGIN_TYPE",
NEED_UPDATE = "NEED_UPDATE", -- 需要更新
IOS_ORDER_ID = "IOS_ORDER_ID",
IOS_PAY_INFO = "IOS_PAY_INFO",
SHAKE_MODE = "SHAKE_MODE", -- 震动模式
SAVE_POWER_MODE = "SAVE_POWER_MODE", -- 省电模式
LAST_MAIL_ID = "LAST_MAIL_ID",
IS_NEW_PLAYER = "IS_NEW_PLAYER",
DISTINCT_ID = "DISTINCT_ID",
LAST_LOGIN_TIME = "LAST_LOGIN_TIME",
}
LocalData.KEYS = LOCAL_DATA_KEY
function LocalData:save()
if EDITOR_MODE then
Logger.logHighlight("save data")
end
if self.dirty then
self.dirty = false
PlayerPrefs.Save()
end
end
function LocalData:setString(key, value)
self.dirty = true
PlayerPrefs.SetString(key, value)
end
function LocalData:getString(key, defaultValue)
if defaultValue then
return PlayerPrefs.GetString(key, defaultValue)
else
return PlayerPrefs.GetString(key)
end
end
function LocalData:setInt(key, value)
self.dirty = true
PlayerPrefs.SetInt(key, value)
end
function LocalData:getInt(key, defaultValue)
if defaultValue then
return PlayerPrefs.GetInt(key, defaultValue)
else
return PlayerPrefs.GetInt(key)
end
end
function LocalData:setFloat(key, value)
self.dirty = true
PlayerPrefs.SetFloat(key, value)
end
function LocalData:getFloat(key, defaultValue)
if defaultValue then
return PlayerPrefs.GetFloat(key, defaultValue)
else
return PlayerPrefs.GetFloat(key)
end
end
function LocalData:hasKey(key)
return PlayerPrefs.HasKey(key)
end
function LocalData:delKey(key)
self.dirty = true
PlayerPrefs.DeleteKey(key)
end
-- 跟角色挂钩的唯一id
function LocalData:getRoleKey(key)
local uid = DataManager.PlayerData:getUid()
if uid == "" then
Logger.logError("check roleid error!")
end
return key .. uid
end
--------------Implement-----------------
function LocalData:getAudioMusicVolume()
return self:getFloat(LOCAL_DATA_KEY.AUDIO_MUSIC_VOLUME, 1)
end
function LocalData:setAudioMusicVolume(value)
self:setFloat(LOCAL_DATA_KEY.AUDIO_MUSIC_VOLUME, value)
end
function LocalData:getAudioEffectVolume()
return self:getFloat(LOCAL_DATA_KEY.AUDIO_EFFECT_VOLUME, 1)
end
function LocalData:setAudioEffectVolume(value)
self:setFloat(LOCAL_DATA_KEY.AUDIO_EFFECT_VOLUME, value)
end
function LocalData:getSelectedLanguage()
return self:getString(LOCAL_DATA_KEY.SELECTED_LANGUAGE, "")
end
function LocalData:setSelectedLanguage(value)
self:setString(LOCAL_DATA_KEY.SELECTED_LANGUAGE, value)
end
function LocalData:getGMShowFloatingIcon()
return self:getInt(LOCAL_DATA_KEY.GM_SHOW_FLOATING_ICON, 0) == 1
end
function LocalData:setGMShowFloatingIcon(value)
self:setInt(LOCAL_DATA_KEY.GM_SHOW_FLOATING_ICON, value)
end
function LocalData:getMessageBoxShowTodayTime(key)
return self:getInt(LOCAL_DATA_KEY.MESSAGE_BOX_SHOW_TODAY .. key, 0)
end
function LocalData:setMessageBoxShowTodayTime(key, value)
self:setInt(LOCAL_DATA_KEY.MESSAGE_BOX_SHOW_TODAY .. key, value)
end
function LocalData:getGameQualityLevel()
return self:getInt(LOCAL_DATA_KEY.GAME_QUALITY_LEVEL, 0)
end
function LocalData:setGameQualityLevel(level)
self:setInt(LOCAL_DATA_KEY.GAME_QUALITY_LEVEL, level)
end
function LocalData:setTodayFirst(new)
self.isTodayFirst = new
end
function LocalData:getTodayFirst()
return self.isTodayFirst or false
end
function LocalData:setNeedUpdate(value)
value = value or "0.0.0"
self:setString(LOCAL_DATA_KEY.NEED_UPDATE, value)
end
function LocalData:getNeedUpdate()
self:getString(LOCAL_DATA_KEY.NEED_UPDATE, "0.0.0")
end
function LocalData:setIosPayInfo(iosPayInfo)
iosPayInfo = iosPayInfo or {}
local str = json.encode(iosPayInfo)
self:setString(LOCAL_DATA_KEY.IOS_PAY_INFO, str)
end
function LocalData:getIosPayInfo()
local str = self:getString(LOCAL_DATA_KEY.IOS_PAY_INFO, "")
if str == nil or str == "" then
return {}
else
local iosPayInfo = json.decode(str)
if iosPayInfo then
return iosPayInfo
else
return {}
end
end
end
function LocalData:setIosOrders(iosOrders)
iosOrders = iosOrders or {}
local str = json.encode(iosOrders)
self:setString(LOCAL_DATA_KEY.IOS_ORDER_ID, str)
end
function LocalData:getIosOrders()
local str = self:getString(LOCAL_DATA_KEY.IOS_ORDER_ID, "")
if str == nil or str == "" then
return {}
else
local iosOrders = json.decode(str)
if iosOrders then
return iosOrders
else
return {}
end
end
end
function LocalData:setLastLoginName(name)
name = name or ""
self:setString(LOCAL_DATA_KEY.LAST_LOGIN_NAME, name)
end
function LocalData:getLastLoginName()
return self:getString(LOCAL_DATA_KEY.LAST_LOGIN_NAME, "")
end
function LocalData:setShakeMode(value) -- 0-close 1-open
self:setInt(self:getString(LOCAL_DATA_KEY.SHAKE_MODE), value)
end
function LocalData:getShakeMode()
self:getInt(self:getString(LOCAL_DATA_KEY.SHAKE_MODE), 1)
end
function LocalData:setSavePowerMode(value) -- 0-close 1-open
self:setInt(self:getString(LOCAL_DATA_KEY.SAVE_POWER_MODE), value)
end
function LocalData:getSavePowerMode()
self:getInt(self:getString(LOCAL_DATA_KEY.SAVE_POWER_MODE), 1)
end
function LocalData:getLastMailId()
return self:getInt(LOCAL_DATA_KEY.LAST_MAIL_ID, 0)
end
function LocalData:setLastMailId(id)
if not id then
return
end
self:setInt(LOCAL_DATA_KEY.LAST_MAIL_ID, id)
end
function LocalData:getAccountInfo()
local info = json.decode(self:getString(LOCAL_DATA_KEY.ACCOUNT_INFO, "{}"))
return info
end
function LocalData:setAccountInfo(info)
if not info then
return
end
local str = json.encode(info)
self:setString(LOCAL_DATA_KEY.ACCOUNT_INFO, str)
end
function LocalData:setLastLoginIp(ip)
ip = ip or ""
self:setString(LOCAL_DATA_KEY.LAST_LOGIN_IP, ip)
end
function LocalData:getLastLoginIp()
return self:getString(LOCAL_DATA_KEY.LAST_LOGIN_IP, "")
end
function LocalData:getIsNewPlayer()
return self:getInt(LOCAL_DATA_KEY.IS_NEW_PLAYER, 0) == 0
end
function LocalData:setNotNewPlayer()
return self:setInt(LOCAL_DATA_KEY.IS_NEW_PLAYER, 1)
end
function LocalData:setDistinctId(id)
self:setString(LOCAL_DATA_KEY.DISTINCT_ID, id or "")
end
function LocalData:getDistinctId()
return self:getString(LOCAL_DATA_KEY.DISTINCT_ID, "")
end
function LocalData:setLastLoginTime()
end
return LocalData