Неофициальная реализация Yandex games SDK для Godot. Делаю для себя и своих игр, по этому тут реализованны не все методы и не всегда до конца (буду потихоньку доделывать). Если не хватает каких либо функций или я что-то криво сделал, можете создать ошибку (может быть я до неё дойду) или исправить и залить сюда, буду очень признателен.
Протестировано на Godot 4.3dev6
Аддон можно установить из assetlib или как сабмодуль если вы используете гит для хранения версий проекта
git add submodule https://github.com/BasilYes/godot-yandex-games-sdk.git addons/godot-yandex-games-sdk
Просто установите плагин и добавьте "yandex" в feature (не знаю как в переводе) к вашему экспорту (см. скрин ниже)
Все методы находятся в синглтоне YandexSDK
YandexSDK.init_game() -> void
Самый первый метод, который необходимо вызвать. Он инициализирует YandexSDK, без его вызова не будет работать ни один другой метод sdk. Это просто реализация метода начала игры из документации.
YandexSDK.show_ad() -> void
Просто показывает пользователю полноэкранную рекламу. Закрытие рекламы или ошибка показа вызовет сигнал ad(result), переменная result содержит значение 'closed', 'error', 'opened'.
YandexSDK.show_rewarded_ad() -> void
Показывает пользователю рекламу с наградой. Вызывает сигнал rewarded_ad(result), переменная result содержит одно из строковых значений 'rewarded', 'closed', 'opened' или 'error'.
YandexSDK.init_player() -> void
Инициализация данных игрока, необходимых для сохранения и других действий, связанных с игроком. Приведенные ниже методы не будут работать без вызова этого метода.
YandexSDK.save_data(data: Dictionary, flush: bool = false) -> void
Сохраняет данные игрока. Максимальный размер данных не должен превышать 200 KБ. Внимание словарь перезаписывает ВСЕ данные уже находящиеся на серверах яндекса. (т.е. то, что там было заменятеся на то, что вы отправили)
YandexSDK.save_stats(stats: Dictionary) -> void
Сохраняет численные данные игрока. Максимальный размер данных не должен превышать 10 КБ. Внимание словарь перезаписывает ВСЕ данные уже находящиеся на серверах яндекса. (т.е. то, что там было заменятеся на то, что вы отправили)
YandexSDK.load_data(keys: Array) -> void
Отправляет запрос на получение внутриигровых данных игрока, после получения вызывает сигнал data_loaded(data), data - Dictionary с полученными данными
YandexSDK.load_stats(keys: Array) -> void
Отправляет запрос на получение численных данных пользователя, после получения вызывает сигнал stats_loaded(data), data - Dictionary с полученными данными
YandexSDK.init_leaderboard() -> void
Инициализирует лидерборды игры. Этот метод должен быть вызван перед использованием других функций, связанных с лидербордами. После успешной инициализации вызывается сигнал leaderboard_initialized, который указывает, что лидерборды готовы к использованию.
YandexSDK.save_leaderboard_score(leaderboard_name: String, score: int, extra_data: String = "") -> void
Сохраняет значение в указанный лидерборд.
YandexSDK.load_leaderboard_player_entry(leaderboard_name: String) -> void
Загружает запись игрока из указанного лидерборда. После загрузки вызывается сигнал leaderboard_player_entry_loaded(data), где data - Dictionary с информацией о записи игрока в лидерборде.
YandexSDK.load_leaderboard_entries(leaderboard_name: String, include_user: bool, quantity_around: int, quantity_top: int) -> void
Загружает записи игроков из указанного лидерборда с возможностью настройки количества загружаемых записей и включения информации об авторизованном пользователе. После загрузки вызывается сигнал leaderboard_entries_loaded(data), где data - Dictionary с информацией о записях игроков в лидерборде.
`YandexSDK.check_is_authorized() -> void`
Проверяет, авторизован ли текущий игрок. После проверки вызывает сигнал check_auth(answer), где answer - булево значение, указывающее, авторизован ли игрок.
YandexSDK.open_auth_dialog() -> void`
Открывает окно авторизации игрока. Перед открытием окна выполняет проверку авторизации.
Больше информации можно найти на официальном сайте.