steamworks-ffi-node 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,117 @@
1
+ import { SteamAchievement, AchievementProgressLimits, UserAchievement, AchievementGlobalStats, AchievementWithIcon } from '../types';
2
+ import { SteamLibraryLoader } from './SteamLibraryLoader';
3
+ import { SteamAPICore } from './SteamAPICore';
4
+ /**
5
+ * Manages all Steam achievement operations
6
+ */
7
+ export declare class SteamAchievementManager {
8
+ private libraryLoader;
9
+ private apiCore;
10
+ constructor(libraryLoader: SteamLibraryLoader, apiCore: SteamAPICore);
11
+ /**
12
+ * Get all achievements from Steam
13
+ */
14
+ getAllAchievements(): Promise<SteamAchievement[]>;
15
+ /**
16
+ * Unlock achievement in Steam
17
+ */
18
+ unlockAchievement(achievementName: string): Promise<boolean>;
19
+ /**
20
+ * Clear achievement in Steam (for testing)
21
+ */
22
+ clearAchievement(achievementName: string): Promise<boolean>;
23
+ /**
24
+ * Check if achievement is unlocked
25
+ */
26
+ isAchievementUnlocked(achievementName: string): Promise<boolean>;
27
+ /**
28
+ * Get achievement by API name
29
+ */
30
+ getAchievementByName(achievementName: string): Promise<SteamAchievement | null>;
31
+ /**
32
+ * Get total number of achievements
33
+ */
34
+ getTotalAchievementCount(): Promise<number>;
35
+ /**
36
+ * Get number of unlocked achievements
37
+ */
38
+ getUnlockedAchievementCount(): Promise<number>;
39
+ /**
40
+ * Get achievement icon handle
41
+ * Returns icon handle for use with ISteamUtils::GetImageRGBA()
42
+ * Returns 0 if no icon set or still loading
43
+ */
44
+ getAchievementIcon(achievementName: string): Promise<number>;
45
+ /**
46
+ * Indicate achievement progress to user
47
+ * Shows a progress notification in Steam overlay
48
+ */
49
+ indicateAchievementProgress(achievementName: string, currentProgress: number, maxProgress: number): Promise<boolean>;
50
+ /**
51
+ * Get achievement progress limits (for integer-based progress)
52
+ */
53
+ getAchievementProgressLimitsInt(achievementName: string): Promise<AchievementProgressLimits | null>;
54
+ /**
55
+ * Get achievement progress limits (for float-based progress)
56
+ */
57
+ getAchievementProgressLimitsFloat(achievementName: string): Promise<AchievementProgressLimits | null>;
58
+ /**
59
+ * Request stats for another user (friend)
60
+ * This is async - you need to wait for the callback before calling getUserAchievement
61
+ */
62
+ requestUserStats(steamId: string): Promise<boolean>;
63
+ /**
64
+ * Get achievement status for another user (friend)
65
+ * Must call requestUserStats() first and wait for callback
66
+ */
67
+ getUserAchievement(steamId: string, achievementName: string): Promise<UserAchievement | null>;
68
+ /**
69
+ * Request global achievement percentages
70
+ * This is async - wait for callback before calling getAchievementAchievedPercent
71
+ */
72
+ requestGlobalAchievementPercentages(): Promise<boolean>;
73
+ /**
74
+ * Get percentage of users who unlocked a specific achievement
75
+ * Must call requestGlobalAchievementPercentages() first
76
+ */
77
+ getAchievementAchievedPercent(achievementName: string): Promise<number | null>;
78
+ /**
79
+ * Get all achievements with global unlock percentages
80
+ * Must call requestGlobalAchievementPercentages() first and wait for callback
81
+ */
82
+ getAllAchievementsWithGlobalStats(): Promise<AchievementGlobalStats[]>;
83
+ /**
84
+ * Get most achieved achievement info
85
+ * Returns iterator for use with getNextMostAchievedAchievementInfo
86
+ */
87
+ getMostAchievedAchievementInfo(): Promise<{
88
+ apiName: string;
89
+ percent: number;
90
+ unlocked: boolean;
91
+ iterator: number;
92
+ } | null>;
93
+ /**
94
+ * Get next most achieved achievement info (iterate by popularity)
95
+ */
96
+ getNextMostAchievedAchievementInfo(previousIterator: number): Promise<{
97
+ apiName: string;
98
+ percent: number;
99
+ unlocked: boolean;
100
+ iterator: number;
101
+ } | null>;
102
+ /**
103
+ * Get all achievements sorted by global unlock percentage (most achieved first)
104
+ * Must call requestGlobalAchievementPercentages() first
105
+ */
106
+ getAllAchievementsSortedByPopularity(): Promise<AchievementGlobalStats[]>;
107
+ /**
108
+ * Reset all stats and optionally achievements
109
+ * WARNING: This clears ALL user stats and achievements!
110
+ */
111
+ resetAllStats(includeAchievements?: boolean): Promise<boolean>;
112
+ /**
113
+ * Get all achievements with icon handles
114
+ */
115
+ getAllAchievementsWithIcons(): Promise<AchievementWithIcon[]>;
116
+ }
117
+ //# sourceMappingURL=SteamAchievementManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SteamAchievementManager.d.ts","sourceRoot":"","sources":["../../src/internal/SteamAchievementManager.ts"],"names":[],"mappings":"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"}