fix snow and exposure

This commit is contained in:
2026-06-30 17:04:40 +02:00
parent 952058b0e0
commit 8198f7df1f
13 changed files with 677 additions and 27 deletions

View File

@@ -35,6 +35,8 @@ func _on_global_percentages_ready(_game: int, _result: int) -> void:
pass
func unlock(api_name: String) -> void:
if not SteamManager.is_on_steam:
return
if not KNOWN.has(api_name):
push_warning("Achievement unknown: %s" % api_name)
return
@@ -47,17 +49,25 @@ func unlock(api_name: String) -> void:
unlocked.emit(api_name)
func is_unlocked(api_name: String) -> bool:
if not SteamManager.is_on_steam:
return false
var data: Dictionary = Steam.getAchievement(api_name)
return data.get("achieved", false)
func get_display_name(api_name: String) -> String:
if not SteamManager.is_on_steam:
return ""
return Steam.getAchievementDisplayAttribute(api_name, "name")
func get_description(api_name: String) -> String:
if not SteamManager.is_on_steam:
return ""
return Steam.getAchievementDisplayAttribute(api_name, "desc")
#Global percentage of player who have unlocked the achievement
func get_global_percent(api_name: String) -> float:
if not SteamManager.is_on_steam:
return 0.0
var data: Dictionary = Steam.getAchievementAchievedPercent(api_name)
if not data.get("ret", false):
return -1.0 #global percentage not yet available
@@ -65,9 +75,10 @@ func get_global_percent(api_name: String) -> float:
#for development only: reset an achievement
func clear(api_name: String) -> void:
if not SteamManager.is_on_steam:
return
Steam.clearAchievement(api_name)
Steam.storeStats()
func _on_achievement_stored(_game: int, _group: bool, api_name: String,
current: int, maximum: int) -> void:
func _on_achievement_stored(_game: int, _group: bool, api_name: String, current: int, maximum: int) -> void:
print("Achievement confirmed by server: %s (%d/%d)" % [api_name, current, maximum])

View File

@@ -30,15 +30,21 @@ func _ready() -> void:
Steam.user_stats_stored.connect(_on_stats_stored)
func get_int(stat: String) -> int:
if not SteamManager.is_on_steam:
return 0
return Steam.getStatInt(stat)
func get_float(stat: String) -> float:
if not SteamManager.is_on_steam:
return 0.0
return Steam.getStatFloat(stat)
func set_int(stat: String, value: int) -> void:
if not KNOWN.has(stat):
push_warning("Stat not found: %s" % stat)
return
if not SteamManager.is_on_steam:
return
if not Steam.setStatInt(stat, value):
push_error("setStatInt failed (incremental with value less than current value? is published on steam?): %s" % stat)
@@ -52,18 +58,26 @@ func set_float(stat: String, value: float) -> void:
push_error("setStatFloat failed: %s" % stat)
func add_int(stat: String, amount: int = 1) -> void:
if not SteamManager.is_on_steam:
return
set_int(stat, get_int(stat) + amount)
func update_avg_rate(stat: String, count_this_session: float, session_length: float) -> void:
if not SteamManager.is_on_steam:
return
Steam.updateAvgRateStat(stat, count_this_session, session_length)
#Send all data to server; call it at the end of the game of when exit
func store() -> void:
if not SteamManager.is_on_steam:
return
if not Steam.storeStats():
push_error("storeStats failed; data saved locally")
#Development only: reset stats
func reset_all(include_achievements: bool = false) -> void:
if not SteamManager.is_on_steam:
return
if !Steam.resetAllStats(include_achievements):
push_error("resetAllStats failed")