API/Autodoc/Files/RuStoreGodotRemoteConfig.gd.en.md
Source code
# Инкапсулирует запрос конфигурации с сервера, кэширование, фоновое обновление.
class_name RuStoreGodotRemoteConfigClient extends Object
const SINGLETON_NAME = "RuStoreGodotRemoteConfig"
# @brief Действие, выполняемое при успешном завершении get_remote_config.
signal on_get_remote_config_success
# @brief Действие, выполняемое в случае ошибки get_remote_config.
signal on_get_remote_config_failure
# @brief Возвращает ошибку фоновой работы.
signal on_rustore_background_job_errors
# @brief Вызывается при окончании первой загрузки.
signal on_rustore_first_load_complete
# @brief Вызывается при окончании инциализации.
signal on_rustore_init_complete
# @brief Вызывается при изменениях кэша в памяти.
signal on_rustore_memory_cache_updated
# @brief Вызывается при изменении постоянного хранилища.
signal on_rustore_persistent_storage_updated
# @brief Вызывается при ошибке сетевого запроса Remote Сonfig.
signal on_rustore_remote_config_network_request_failure
# @brief Возвращает true, если синглтон инициализирован, в противном случае — false.
var isInitialized: bool = false
var _clientWrapper: Object = null
static var _instance: RuStoreGodotRemoteConfigClient = null
# Если экземпляр еще не создан, создает его.
static func get_instance() -> RuStoreGodotRemoteConfigClient:
if _instance == null:
_instance = RuStoreGodotRemoteConfigClient.new()
return _instance
func _init():
if Engine.has_singleton(SINGLETON_NAME):
_clientWrapper = Engine.get_singleton(SINGLETON_NAME)
_clientWrapper.rustore_get_remote_config_success.connect(_on_get_remote_config_success)
_clientWrapper.rustore_get_remote_config_failure.connect(_on_get_remote_config_failure)
_clientWrapper.rustore_background_job_errors.connect(_on_background_job_errors)
_clientWrapper.rustore_first_load_complete.connect(_on_first_load_complete)
_clientWrapper.rustore_init_complete.connect(_on_init_complete)
_clientWrapper.rustore_memory_cache_updated.connect(_on_memory_cache_updated)
_clientWrapper.rustore_persistent_storage_updated.connect(_on_persistent_storage_updated)
_clientWrapper.rustore_remote_config_network_request_failure.connect(_on_remote_config_network_request_failure)
_clientWrapper.initEventListener()
isInitialized = true
# @param value Значение параметра Account.
func setAccount(value: String):
_clientWrapper.setAccount(value)
# @return Значение параметра Account.
func get_account() -> String:
return _clientWrapper.getAccount()
# @param value Значение параметра Language.
func setLanguage(value: String):
_clientWrapper.setLanguage(value)
# @return Значение параметра Language.
func get_language() -> String:
return _clientWrapper.getLanguage()
# @brief Получение конфигурации данных в зависимости от выбранной политики обновления при инициализации.
func get_remote_config():
_clientWrapper.getRemoteConfig()
func _on_get_remote_config_success(json: String):
var data: Dictionary = JSON.parse_string(json)["data"]
on_get_remote_config_success.emit(data)
func _on_get_remote_config_failure(json: String):
var data = RuStoreError.new(json)
on_get_remote_config_failure.emit(data)
func _on_background_job_errors(json: String):
var error = RuStoreError.new(json)
on_rustore_background_job_errors.emit(error)
func _on_first_load_complete():
on_rustore_first_load_complete.emit()
func _on_init_complete():
on_rustore_init_complete.emit()
func _on_memory_cache_updated():
on_rustore_memory_cache_updated.emit()
func _on_persistent_storage_updated():
on_rustore_persistent_storage_updated.emit()
func _on_remote_config_network_request_failure(json: String):
var error = RuStoreError.new(json)
on_rustore_remote_config_network_request_failure.emit(error)