steamworks-ffi-node 0.5.2 → 0.5.3

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,584 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SteamCloudManager = void 0;
4
+ /**
5
+ * Manager for Steam Cloud / Remote Storage operations
6
+ *
7
+ * The SteamCloudManager provides comprehensive access to Steam's cloud storage system,
8
+ * allowing you to save and synchronize game data across multiple devices.
9
+ *
10
+ * Key Features:
11
+ * - File operations (read, write, delete, check existence)
12
+ * - Quota management (check available space)
13
+ * - File iteration and metadata retrieval
14
+ * - Automatic synchronization across devices
15
+ * - Platform-specific sync control
16
+ *
17
+ * File Constraints:
18
+ * - Max file size: 100MB per write, 200MB total
19
+ * - Filenames are case-insensitive (converted to lowercase)
20
+ * - Max filename length: 260 characters
21
+ *
22
+ * @remarks
23
+ * All methods require the Steam API to be initialized and cloud to be enabled.
24
+ * Files are automatically synced when Steam is running and connected.
25
+ *
26
+ * @example Basic file operations
27
+ * ```typescript
28
+ * const steam = SteamworksSDK.getInstance();
29
+ * steam.init({ appId: 480 });
30
+ *
31
+ * // Write a save file
32
+ * const saveData = Buffer.from(JSON.stringify({ level: 5, score: 1000 }));
33
+ * const written = steam.cloud.fileWrite('savegame.json', saveData);
34
+ *
35
+ * // Read it back
36
+ * const result = steam.cloud.fileRead('savegame.json');
37
+ * if (result.success) {
38
+ * const data = JSON.parse(result.data.toString());
39
+ * console.log(`Level: ${data.level}, Score: ${data.score}`);
40
+ * }
41
+ *
42
+ * // Check quota
43
+ * const quota = steam.cloud.getQuota();
44
+ * console.log(`Using ${quota.percentUsed}% of cloud storage`);
45
+ * ```
46
+ *
47
+ * @example List all cloud files
48
+ * ```typescript
49
+ * const files = steam.cloud.getAllFiles();
50
+ * files.forEach(file => {
51
+ * console.log(`${file.name}: ${file.size} bytes, modified ${new Date(file.timestamp * 1000)}`);
52
+ * });
53
+ * ```
54
+ *
55
+ * @see {@link https://partner.steamgames.com/doc/api/ISteamRemoteStorage ISteamRemoteStorage Documentation}
56
+ */
57
+ class SteamCloudManager {
58
+ /**
59
+ * Creates a new SteamCloudManager instance
60
+ *
61
+ * @param libraryLoader - The Steam library loader for FFI calls
62
+ * @param apiCore - The Steam API core for lifecycle management
63
+ */
64
+ constructor(libraryLoader, apiCore) {
65
+ this.libraryLoader = libraryLoader;
66
+ this.apiCore = apiCore;
67
+ }
68
+ /**
69
+ * Writes a file to Steam Cloud
70
+ *
71
+ * @param filename - The name of the file to write (will be converted to lowercase)
72
+ * @param data - The data to write as a Buffer
73
+ * @returns True if the write was successful, false otherwise
74
+ *
75
+ * @remarks
76
+ * - Files are limited to 100MB per write and 200MB total
77
+ * - Filenames are automatically converted to lowercase
78
+ * - File is queued for upload when Steam is connected
79
+ * - Overwrites existing file with same name
80
+ *
81
+ * @example
82
+ * ```typescript
83
+ * const saveData = Buffer.from(JSON.stringify({ level: 5 }));
84
+ * const success = steam.cloud.fileWrite('savegame.json', saveData);
85
+ * if (success) {
86
+ * console.log('Save file written to cloud');
87
+ * }
88
+ * ```
89
+ */
90
+ fileWrite(filename, data) {
91
+ if (!this.apiCore.isInitialized()) {
92
+ console.error('Steam API not initialized');
93
+ return false;
94
+ }
95
+ const remoteStorage = this.apiCore.getRemoteStorageInterface();
96
+ if (!remoteStorage) {
97
+ console.error('ISteamRemoteStorage interface not available');
98
+ return false;
99
+ }
100
+ try {
101
+ const result = this.libraryLoader.SteamAPI_ISteamRemoteStorage_FileWrite(remoteStorage, filename, data, data.length);
102
+ return result;
103
+ }
104
+ catch (error) {
105
+ console.error('Error writing file to Steam Cloud:', error);
106
+ return false;
107
+ }
108
+ }
109
+ /**
110
+ * Reads a file from Steam Cloud
111
+ *
112
+ * @param filename - The name of the file to read
113
+ * @returns CloudFileReadResult with success status and data
114
+ *
115
+ * @remarks
116
+ * - File must exist in cloud storage
117
+ * - Returns the complete file contents as a Buffer
118
+ * - Data can be converted to string or parsed as JSON
119
+ *
120
+ * @example
121
+ * ```typescript
122
+ * const result = steam.cloud.fileRead('savegame.json');
123
+ * if (result.success && result.data) {
124
+ * const saveData = JSON.parse(result.data.toString());
125
+ * console.log('Loaded save:', saveData);
126
+ * }
127
+ * ```
128
+ */
129
+ fileRead(filename) {
130
+ const result = {
131
+ success: false,
132
+ filename,
133
+ data: null,
134
+ bytesRead: 0
135
+ };
136
+ if (!this.apiCore.isInitialized()) {
137
+ console.error('Steam API not initialized');
138
+ return result;
139
+ }
140
+ const remoteStorage = this.apiCore.getRemoteStorageInterface();
141
+ if (!remoteStorage) {
142
+ console.error('ISteamRemoteStorage interface not available');
143
+ return result;
144
+ }
145
+ try {
146
+ // First, get the file size
147
+ const size = this.getFileSize(filename);
148
+ if (size <= 0) {
149
+ return result;
150
+ }
151
+ // Allocate buffer for file data
152
+ const buffer = Buffer.alloc(size);
153
+ const bytesRead = this.libraryLoader.SteamAPI_ISteamRemoteStorage_FileRead(remoteStorage, filename, buffer, size);
154
+ if (bytesRead > 0) {
155
+ result.success = true;
156
+ result.data = buffer.slice(0, bytesRead);
157
+ result.bytesRead = bytesRead;
158
+ }
159
+ return result;
160
+ }
161
+ catch (error) {
162
+ console.error('Error reading file from Steam Cloud:', error);
163
+ return result;
164
+ }
165
+ }
166
+ /**
167
+ * Checks if a file exists in Steam Cloud
168
+ *
169
+ * @param filename - The name of the file to check
170
+ * @returns True if the file exists, false otherwise
171
+ *
172
+ * @example
173
+ * ```typescript
174
+ * if (steam.cloud.fileExists('savegame.json')) {
175
+ * console.log('Save file found in cloud');
176
+ * }
177
+ * ```
178
+ */
179
+ fileExists(filename) {
180
+ if (!this.apiCore.isInitialized()) {
181
+ return false;
182
+ }
183
+ const remoteStorage = this.apiCore.getRemoteStorageInterface();
184
+ if (!remoteStorage) {
185
+ return false;
186
+ }
187
+ try {
188
+ return this.libraryLoader.SteamAPI_ISteamRemoteStorage_FileExists(remoteStorage, filename);
189
+ }
190
+ catch (error) {
191
+ console.error('Error checking file existence:', error);
192
+ return false;
193
+ }
194
+ }
195
+ /**
196
+ * Deletes a file from Steam Cloud
197
+ *
198
+ * @param filename - The name of the file to delete
199
+ * @returns True if the file was deleted, false otherwise
200
+ *
201
+ * @remarks
202
+ * - File is removed from cloud storage
203
+ * - Deletion is synchronized across all devices
204
+ * - Returns true even if file doesn't exist
205
+ *
206
+ * @example
207
+ * ```typescript
208
+ * const deleted = steam.cloud.fileDelete('old_save.json');
209
+ * if (deleted) {
210
+ * console.log('Save file deleted from cloud');
211
+ * }
212
+ * ```
213
+ */
214
+ fileDelete(filename) {
215
+ if (!this.apiCore.isInitialized()) {
216
+ return false;
217
+ }
218
+ const remoteStorage = this.apiCore.getRemoteStorageInterface();
219
+ if (!remoteStorage) {
220
+ return false;
221
+ }
222
+ try {
223
+ return this.libraryLoader.SteamAPI_ISteamRemoteStorage_FileDelete(remoteStorage, filename);
224
+ }
225
+ catch (error) {
226
+ console.error('Error deleting file:', error);
227
+ return false;
228
+ }
229
+ }
230
+ /**
231
+ * Gets the size of a file in Steam Cloud
232
+ *
233
+ * @param filename - The name of the file
234
+ * @returns File size in bytes, or 0 if file doesn't exist
235
+ *
236
+ * @example
237
+ * ```typescript
238
+ * const size = steam.cloud.getFileSize('savegame.json');
239
+ * console.log(`Save file is ${size} bytes`);
240
+ * ```
241
+ */
242
+ getFileSize(filename) {
243
+ if (!this.apiCore.isInitialized()) {
244
+ return 0;
245
+ }
246
+ const remoteStorage = this.apiCore.getRemoteStorageInterface();
247
+ if (!remoteStorage) {
248
+ return 0;
249
+ }
250
+ try {
251
+ return this.libraryLoader.SteamAPI_ISteamRemoteStorage_GetFileSize(remoteStorage, filename);
252
+ }
253
+ catch (error) {
254
+ console.error('Error getting file size:', error);
255
+ return 0;
256
+ }
257
+ }
258
+ /**
259
+ * Gets the last modified timestamp of a file
260
+ *
261
+ * @param filename - The name of the file
262
+ * @returns Unix timestamp of last modification, or 0 if file doesn't exist
263
+ *
264
+ * @example
265
+ * ```typescript
266
+ * const timestamp = steam.cloud.getFileTimestamp('savegame.json');
267
+ * const date = new Date(timestamp * 1000);
268
+ * console.log(`Last saved: ${date.toLocaleString()}`);
269
+ * ```
270
+ */
271
+ getFileTimestamp(filename) {
272
+ if (!this.apiCore.isInitialized()) {
273
+ return 0;
274
+ }
275
+ const remoteStorage = this.apiCore.getRemoteStorageInterface();
276
+ if (!remoteStorage) {
277
+ return 0;
278
+ }
279
+ try {
280
+ return Number(this.libraryLoader.SteamAPI_ISteamRemoteStorage_GetFileTimestamp(remoteStorage, filename));
281
+ }
282
+ catch (error) {
283
+ console.error('Error getting file timestamp:', error);
284
+ return 0;
285
+ }
286
+ }
287
+ /**
288
+ * Gets the total number of files in Steam Cloud for this app
289
+ *
290
+ * @returns Number of files in cloud storage
291
+ *
292
+ * @example
293
+ * ```typescript
294
+ * const count = steam.cloud.getFileCount();
295
+ * console.log(`${count} files in cloud storage`);
296
+ * ```
297
+ */
298
+ getFileCount() {
299
+ if (!this.apiCore.isInitialized()) {
300
+ return 0;
301
+ }
302
+ const remoteStorage = this.apiCore.getRemoteStorageInterface();
303
+ if (!remoteStorage) {
304
+ return 0;
305
+ }
306
+ try {
307
+ return this.libraryLoader.SteamAPI_ISteamRemoteStorage_GetFileCount(remoteStorage);
308
+ }
309
+ catch (error) {
310
+ console.error('Error getting file count:', error);
311
+ return 0;
312
+ }
313
+ }
314
+ /**
315
+ * Gets the name and size of a file by index
316
+ *
317
+ * @param index - The index of the file (0 to GetFileCount()-1)
318
+ * @returns Object with name and size, or null if index is invalid
319
+ *
320
+ * @remarks
321
+ * Use this with getFileCount() to iterate through all files
322
+ *
323
+ * @example
324
+ * ```typescript
325
+ * const count = steam.cloud.getFileCount();
326
+ * for (let i = 0; i < count; i++) {
327
+ * const file = steam.cloud.getFileNameAndSize(i);
328
+ * if (file) {
329
+ * console.log(`${file.name}: ${file.size} bytes`);
330
+ * }
331
+ * }
332
+ * ```
333
+ */
334
+ getFileNameAndSize(index) {
335
+ if (!this.apiCore.isInitialized()) {
336
+ return null;
337
+ }
338
+ const remoteStorage = this.apiCore.getRemoteStorageInterface();
339
+ if (!remoteStorage) {
340
+ return null;
341
+ }
342
+ try {
343
+ // Allocate buffer for the size output parameter
344
+ const sizePtr = Buffer.alloc(4); // int32 pointer
345
+ // Call the API - it will write the size into sizePtr
346
+ const name = this.libraryLoader.SteamAPI_ISteamRemoteStorage_GetFileNameAndSize(remoteStorage, index, sizePtr);
347
+ // If no name returned, index is out of bounds
348
+ if (!name || name === '') {
349
+ return null;
350
+ }
351
+ // Read the size value that was written by the API
352
+ const size = sizePtr.readInt32LE(0);
353
+ // Validate size is non-negative
354
+ if (size < 0) {
355
+ console.warn(`Invalid file size returned for ${name}: ${size}`);
356
+ return { name, size: 0 };
357
+ }
358
+ return { name, size };
359
+ }
360
+ catch (error) {
361
+ console.error('Error getting file name and size:', error);
362
+ return null;
363
+ }
364
+ }
365
+ /**
366
+ * Gets detailed information about all files in Steam Cloud
367
+ *
368
+ * @returns Array of CloudFileInfo objects with complete metadata
369
+ *
370
+ * @example
371
+ * ```typescript
372
+ * const files = steam.cloud.getAllFiles();
373
+ * files.forEach(file => {
374
+ * const date = new Date(file.timestamp * 1000);
375
+ * console.log(`${file.name}:`);
376
+ * console.log(` Size: ${file.size} bytes`);
377
+ * console.log(` Modified: ${date.toLocaleString()}`);
378
+ * console.log(` Persisted: ${file.persisted ? 'Yes' : 'No'}`);
379
+ * });
380
+ * ```
381
+ */
382
+ getAllFiles() {
383
+ const files = [];
384
+ const count = this.getFileCount();
385
+ for (let i = 0; i < count; i++) {
386
+ const fileInfo = this.getFileNameAndSize(i);
387
+ if (fileInfo) {
388
+ const timestamp = this.getFileTimestamp(fileInfo.name);
389
+ const persisted = this.filePersisted(fileInfo.name);
390
+ files.push({
391
+ name: fileInfo.name,
392
+ size: fileInfo.size,
393
+ timestamp,
394
+ exists: true,
395
+ persisted
396
+ });
397
+ }
398
+ }
399
+ return files;
400
+ }
401
+ /**
402
+ * Checks if a file is persisted (uploaded) to Steam Cloud
403
+ *
404
+ * @param filename - The name of the file to check
405
+ * @returns True if the file is persisted to cloud, false otherwise
406
+ *
407
+ * @remarks
408
+ * Files may exist locally but not yet be uploaded to the cloud.
409
+ * This checks if the file has been successfully synced.
410
+ *
411
+ * @example
412
+ * ```typescript
413
+ * if (steam.cloud.filePersisted('savegame.json')) {
414
+ * console.log('Save file is synced to cloud');
415
+ * } else {
416
+ * console.log('Save file is still uploading...');
417
+ * }
418
+ * ```
419
+ */
420
+ filePersisted(filename) {
421
+ if (!this.apiCore.isInitialized()) {
422
+ return false;
423
+ }
424
+ const remoteStorage = this.apiCore.getRemoteStorageInterface();
425
+ if (!remoteStorage) {
426
+ return false;
427
+ }
428
+ try {
429
+ return this.libraryLoader.SteamAPI_ISteamRemoteStorage_FilePersisted(remoteStorage, filename);
430
+ }
431
+ catch (error) {
432
+ console.error('Error checking file persisted status:', error);
433
+ return false;
434
+ }
435
+ }
436
+ /**
437
+ * Gets Steam Cloud quota information
438
+ *
439
+ * @returns CloudQuota object with total, available, and used bytes
440
+ *
441
+ * @remarks
442
+ * - Total quota varies by app (typically 100MB-1GB)
443
+ * - Available bytes = total - used
444
+ * - Quota is per-user, per-app
445
+ *
446
+ * @example
447
+ * ```typescript
448
+ * const quota = steam.cloud.getQuota();
449
+ * console.log(`Cloud Storage: ${quota.usedBytes}/${quota.totalBytes} bytes`);
450
+ * console.log(`${quota.percentUsed.toFixed(1)}% used`);
451
+ * console.log(`${quota.availableBytes} bytes remaining`);
452
+ * ```
453
+ */
454
+ getQuota() {
455
+ const quota = {
456
+ totalBytes: 0,
457
+ availableBytes: 0,
458
+ usedBytes: 0,
459
+ percentUsed: 0
460
+ };
461
+ if (!this.apiCore.isInitialized()) {
462
+ return quota;
463
+ }
464
+ const remoteStorage = this.apiCore.getRemoteStorageInterface();
465
+ if (!remoteStorage) {
466
+ return quota;
467
+ }
468
+ try {
469
+ const totalBytesPtr = Buffer.alloc(8); // uint64
470
+ const availableBytesPtr = Buffer.alloc(8); // uint64
471
+ const success = this.libraryLoader.SteamAPI_ISteamRemoteStorage_GetQuota(remoteStorage, totalBytesPtr, availableBytesPtr);
472
+ if (success) {
473
+ quota.totalBytes = Number(totalBytesPtr.readBigUInt64LE(0));
474
+ quota.availableBytes = Number(availableBytesPtr.readBigUInt64LE(0));
475
+ quota.usedBytes = quota.totalBytes - quota.availableBytes;
476
+ quota.percentUsed = quota.totalBytes > 0
477
+ ? (quota.usedBytes / quota.totalBytes) * 100
478
+ : 0;
479
+ }
480
+ return quota;
481
+ }
482
+ catch (error) {
483
+ console.error('Error getting cloud quota:', error);
484
+ return quota;
485
+ }
486
+ }
487
+ /**
488
+ * Checks if Steam Cloud is enabled for the user's account
489
+ *
490
+ * @returns True if cloud is enabled at account level
491
+ *
492
+ * @remarks
493
+ * Users can disable Steam Cloud globally in their Steam settings.
494
+ * If disabled, file operations will fail.
495
+ *
496
+ * @example
497
+ * ```typescript
498
+ * if (!steam.cloud.isCloudEnabledForAccount()) {
499
+ * console.warn('User has disabled Steam Cloud in their settings');
500
+ * }
501
+ * ```
502
+ */
503
+ isCloudEnabledForAccount() {
504
+ if (!this.apiCore.isInitialized()) {
505
+ return false;
506
+ }
507
+ const remoteStorage = this.apiCore.getRemoteStorageInterface();
508
+ if (!remoteStorage) {
509
+ return false;
510
+ }
511
+ try {
512
+ return this.libraryLoader.SteamAPI_ISteamRemoteStorage_IsCloudEnabledForAccount(remoteStorage);
513
+ }
514
+ catch (error) {
515
+ console.error('Error checking cloud enabled for account:', error);
516
+ return false;
517
+ }
518
+ }
519
+ /**
520
+ * Checks if Steam Cloud is enabled for this specific app
521
+ *
522
+ * @returns True if cloud is enabled for this app
523
+ *
524
+ * @remarks
525
+ * Apps can enable/disable cloud storage independently.
526
+ * Even if account cloud is enabled, app cloud might be disabled.
527
+ *
528
+ * @example
529
+ * ```typescript
530
+ * if (steam.cloud.isCloudEnabledForApp()) {
531
+ * console.log('Steam Cloud is active for this game');
532
+ * }
533
+ * ```
534
+ */
535
+ isCloudEnabledForApp() {
536
+ if (!this.apiCore.isInitialized()) {
537
+ return false;
538
+ }
539
+ const remoteStorage = this.apiCore.getRemoteStorageInterface();
540
+ if (!remoteStorage) {
541
+ return false;
542
+ }
543
+ try {
544
+ return this.libraryLoader.SteamAPI_ISteamRemoteStorage_IsCloudEnabledForApp(remoteStorage);
545
+ }
546
+ catch (error) {
547
+ console.error('Error checking cloud enabled for app:', error);
548
+ return false;
549
+ }
550
+ }
551
+ /**
552
+ * Enables or disables Steam Cloud for this app
553
+ *
554
+ * @param enabled - True to enable cloud, false to disable
555
+ *
556
+ * @remarks
557
+ * - This is a per-app setting
558
+ * - User must have cloud enabled at account level
559
+ * - Changes are saved to Steam config
560
+ *
561
+ * @example
562
+ * ```typescript
563
+ * // Let user toggle cloud saves
564
+ * steam.cloud.setCloudEnabledForApp(userWantsCloudSaves);
565
+ * ```
566
+ */
567
+ setCloudEnabledForApp(enabled) {
568
+ if (!this.apiCore.isInitialized()) {
569
+ return;
570
+ }
571
+ const remoteStorage = this.apiCore.getRemoteStorageInterface();
572
+ if (!remoteStorage) {
573
+ return;
574
+ }
575
+ try {
576
+ this.libraryLoader.SteamAPI_ISteamRemoteStorage_SetCloudEnabledForApp(remoteStorage, enabled);
577
+ }
578
+ catch (error) {
579
+ console.error('Error setting cloud enabled for app:', error);
580
+ }
581
+ }
582
+ }
583
+ exports.SteamCloudManager = SteamCloudManager;
584
+ //# sourceMappingURL=SteamCloudManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SteamCloudManager.js","sourceRoot":"","sources":["../../src/internal/SteamCloudManager.ts"],"names":[],"mappings":"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"}
@@ -95,6 +95,20 @@ export declare class SteamLibraryLoader {
95
95
  SteamAPI_ISteamFriends_GetCoplayFriend: koffi.KoffiFunction;
96
96
  SteamAPI_ISteamFriends_GetFriendCoplayTime: koffi.KoffiFunction;
97
97
  SteamAPI_ISteamFriends_GetFriendCoplayGame: koffi.KoffiFunction;
98
+ SteamAPI_SteamRemoteStorage_v016: koffi.KoffiFunction;
99
+ SteamAPI_ISteamRemoteStorage_FileWrite: koffi.KoffiFunction;
100
+ SteamAPI_ISteamRemoteStorage_FileRead: koffi.KoffiFunction;
101
+ SteamAPI_ISteamRemoteStorage_FileExists: koffi.KoffiFunction;
102
+ SteamAPI_ISteamRemoteStorage_FileDelete: koffi.KoffiFunction;
103
+ SteamAPI_ISteamRemoteStorage_GetFileSize: koffi.KoffiFunction;
104
+ SteamAPI_ISteamRemoteStorage_GetFileTimestamp: koffi.KoffiFunction;
105
+ SteamAPI_ISteamRemoteStorage_FilePersisted: koffi.KoffiFunction;
106
+ SteamAPI_ISteamRemoteStorage_GetFileCount: koffi.KoffiFunction;
107
+ SteamAPI_ISteamRemoteStorage_GetFileNameAndSize: koffi.KoffiFunction;
108
+ SteamAPI_ISteamRemoteStorage_GetQuota: koffi.KoffiFunction;
109
+ SteamAPI_ISteamRemoteStorage_IsCloudEnabledForAccount: koffi.KoffiFunction;
110
+ SteamAPI_ISteamRemoteStorage_IsCloudEnabledForApp: koffi.KoffiFunction;
111
+ SteamAPI_ISteamRemoteStorage_SetCloudEnabledForApp: koffi.KoffiFunction;
98
112
  /**
99
113
  * Get platform-specific Steam library path
100
114
  */
@@ -1 +1 @@
1
- {"version":3,"file":"SteamLibraryLoader.d.ts","sourceRoot":"","sources":["../../src/internal/SteamLibraryLoader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SteamLibraryLoader.d.ts","sourceRoot":"","sources":["../../src/internal/SteamLibraryLoader.ts"],"names":[],"mappings":"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"}
@@ -220,6 +220,27 @@ class SteamLibraryLoader {
220
220
  this.SteamAPI_ISteamFriends_GetCoplayFriend = this.steamLib.func('SteamAPI_ISteamFriends_GetCoplayFriend', 'uint64', ['void*', 'int']);
221
221
  this.SteamAPI_ISteamFriends_GetFriendCoplayTime = this.steamLib.func('SteamAPI_ISteamFriends_GetFriendCoplayTime', 'int', ['void*', 'uint64']);
222
222
  this.SteamAPI_ISteamFriends_GetFriendCoplayGame = this.steamLib.func('SteamAPI_ISteamFriends_GetFriendCoplayGame', 'uint32', ['void*', 'uint64']);
223
+ // ========================================
224
+ // ISteamRemoteStorage Functions
225
+ // ========================================
226
+ // Interface accessor
227
+ this.SteamAPI_SteamRemoteStorage_v016 = this.steamLib.func('SteamAPI_SteamRemoteStorage_v016', 'void*', []);
228
+ // File operations
229
+ this.SteamAPI_ISteamRemoteStorage_FileWrite = this.steamLib.func('SteamAPI_ISteamRemoteStorage_FileWrite', 'bool', ['void*', 'str', 'void*', 'int32']);
230
+ this.SteamAPI_ISteamRemoteStorage_FileRead = this.steamLib.func('SteamAPI_ISteamRemoteStorage_FileRead', 'int32', ['void*', 'str', 'void*', 'int32']);
231
+ this.SteamAPI_ISteamRemoteStorage_FileExists = this.steamLib.func('SteamAPI_ISteamRemoteStorage_FileExists', 'bool', ['void*', 'str']);
232
+ this.SteamAPI_ISteamRemoteStorage_FileDelete = this.steamLib.func('SteamAPI_ISteamRemoteStorage_FileDelete', 'bool', ['void*', 'str']);
233
+ this.SteamAPI_ISteamRemoteStorage_GetFileSize = this.steamLib.func('SteamAPI_ISteamRemoteStorage_GetFileSize', 'int32', ['void*', 'str']);
234
+ this.SteamAPI_ISteamRemoteStorage_GetFileTimestamp = this.steamLib.func('SteamAPI_ISteamRemoteStorage_GetFileTimestamp', 'int64', ['void*', 'str']);
235
+ this.SteamAPI_ISteamRemoteStorage_FilePersisted = this.steamLib.func('SteamAPI_ISteamRemoteStorage_FilePersisted', 'bool', ['void*', 'str']);
236
+ // File iteration
237
+ this.SteamAPI_ISteamRemoteStorage_GetFileCount = this.steamLib.func('SteamAPI_ISteamRemoteStorage_GetFileCount', 'int32', ['void*']);
238
+ this.SteamAPI_ISteamRemoteStorage_GetFileNameAndSize = this.steamLib.func('SteamAPI_ISteamRemoteStorage_GetFileNameAndSize', 'str', ['void*', 'int32', 'int32*']);
239
+ // Quota and settings
240
+ this.SteamAPI_ISteamRemoteStorage_GetQuota = this.steamLib.func('SteamAPI_ISteamRemoteStorage_GetQuota', 'bool', ['void*', 'uint64*', 'uint64*']);
241
+ this.SteamAPI_ISteamRemoteStorage_IsCloudEnabledForAccount = this.steamLib.func('SteamAPI_ISteamRemoteStorage_IsCloudEnabledForAccount', 'bool', ['void*']);
242
+ this.SteamAPI_ISteamRemoteStorage_IsCloudEnabledForApp = this.steamLib.func('SteamAPI_ISteamRemoteStorage_IsCloudEnabledForApp', 'bool', ['void*']);
243
+ this.SteamAPI_ISteamRemoteStorage_SetCloudEnabledForApp = this.steamLib.func('SteamAPI_ISteamRemoteStorage_SetCloudEnabledForApp', 'void', ['void*', 'bool']);
223
244
  }
224
245
  /**
225
246
  * Check if library is loaded