1
0
Fork 0
mirror of https://github.com/Orama-Interactive/Pixelorama.git synced 2025-02-13 09:13:07 +00:00
Pixelorama/src/Classes/SteamManager.gd

46 lines
1.3 KiB
GDScript3
Raw Normal View History

class_name SteamManager
extends Node
## A class that manages Steam-specific functionalities. Currently only unlocks achievements.
## On non-Steam builds, this node gets automatically freed.
## The Steam app id of Pixelorama.
const APP_ID := 2779170
## We are using a variable instead of the `Steam` singleton directly,
## because it is not available in non-Steam builds.
static var steam_class
func _init() -> void:
if not ClassDB.class_exists(&"Steam"):
queue_free()
return
steam_class = ClassDB.instantiate(&"Steam")
OS.set_environment("SteamAppID", str(APP_ID))
OS.set_environment("SteamGameID", str(APP_ID))
func _ready() -> void:
if not is_instance_valid(steam_class):
return
var response: Dictionary = steam_class.steamInitEx(true, APP_ID)
print(response)
if not steam_class.isSteamRunning():
print("Steam is not running!")
return
#var id: int = steam_class.getSteamID()
#var username: String = steam_class.getFriendPersonaName(id)
## Unlocks an achievement on Steam based on its [param achievement_name].
static func set_achievement(achievement_name: String) -> void:
if not is_instance_valid(steam_class):
return
if not steam_class.isSteamRunning():
return
var status: Dictionary = steam_class.getAchievement(achievement_name)
if status["achieved"]:
return
steam_class.setAchievement(achievement_name)
steam_class.storeStats()