steamworks-ffi-node 0.6.10 → 0.7.1

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.
Files changed (50) hide show
  1. package/README.md +157 -107
  2. package/dist/internal/SteamCloudManager.d.ts +86 -1
  3. package/dist/internal/SteamCloudManager.d.ts.map +1 -1
  4. package/dist/internal/SteamCloudManager.js +142 -0
  5. package/dist/internal/SteamCloudManager.js.map +1 -1
  6. package/dist/internal/SteamInputManager.d.ts +496 -0
  7. package/dist/internal/SteamInputManager.d.ts.map +1 -0
  8. package/dist/internal/SteamInputManager.js +993 -0
  9. package/dist/internal/SteamInputManager.js.map +1 -0
  10. package/dist/internal/SteamLibraryLoader.d.ts +61 -0
  11. package/dist/internal/SteamLibraryLoader.d.ts.map +1 -1
  12. package/dist/internal/SteamLibraryLoader.js +83 -0
  13. package/dist/internal/SteamLibraryLoader.js.map +1 -1
  14. package/dist/internal/SteamScreenshotManager.d.ts +327 -0
  15. package/dist/internal/SteamScreenshotManager.d.ts.map +1 -0
  16. package/dist/internal/SteamScreenshotManager.js +459 -0
  17. package/dist/internal/SteamScreenshotManager.js.map +1 -0
  18. package/dist/internal/SteamWorkshopManager.d.ts +24 -0
  19. package/dist/internal/SteamWorkshopManager.d.ts.map +1 -1
  20. package/dist/internal/SteamWorkshopManager.js +74 -0
  21. package/dist/internal/SteamWorkshopManager.js.map +1 -1
  22. package/dist/internal/callbackTypes/SteamCallbackIds.d.ts +2 -0
  23. package/dist/internal/callbackTypes/SteamCallbackIds.d.ts.map +1 -1
  24. package/dist/internal/callbackTypes/SteamCallbackIds.js +3 -1
  25. package/dist/internal/callbackTypes/SteamCallbackIds.js.map +1 -1
  26. package/dist/internal/callbackTypes/SteamCallbackTypes.d.ts +9 -0
  27. package/dist/internal/callbackTypes/SteamCallbackTypes.d.ts.map +1 -1
  28. package/dist/steam.d.ts +99 -0
  29. package/dist/steam.d.ts.map +1 -1
  30. package/dist/steam.js +9 -0
  31. package/dist/steam.js.map +1 -1
  32. package/dist/types/cloud.d.ts +11 -11
  33. package/dist/types/cloud.d.ts.map +1 -1
  34. package/dist/types/index.d.ts +2 -0
  35. package/dist/types/index.d.ts.map +1 -1
  36. package/dist/types/index.js +4 -0
  37. package/dist/types/index.js.map +1 -1
  38. package/dist/types/input.d.ts +252 -0
  39. package/dist/types/input.d.ts.map +1 -0
  40. package/dist/types/input.js +142 -0
  41. package/dist/types/input.js.map +1 -0
  42. package/dist/types/screenshots.d.ts +63 -0
  43. package/dist/types/screenshots.d.ts.map +1 -0
  44. package/dist/types/screenshots.js +44 -0
  45. package/dist/types/screenshots.js.map +1 -0
  46. package/dist/types/workshop.d.ts +8 -0
  47. package/dist/types/workshop.d.ts.map +1 -1
  48. package/dist/types/workshop.js.map +1 -1
  49. package/docs/README.md +49 -5
  50. package/package.json +10 -2
@@ -0,0 +1,459 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SteamScreenshotManager = void 0;
4
+ const types_1 = require("../types");
5
+ /**
6
+ * Manager for Steam Screenshots API operations
7
+ *
8
+ * The SteamScreenshotManager provides functionality to capture screenshots,
9
+ * add them to the user's Steam screenshot library, and tag them with metadata
10
+ * like location, users, and Workshop items.
11
+ *
12
+ * Screenshots can be captured in two ways:
13
+ * 1. **Overlay capture**: Using `triggerScreenshot()` to have Steam capture the screen
14
+ * 2. **Manual capture**: Your game captures the image and uses `writeScreenshot()` or
15
+ * `addScreenshotToLibrary()` to add it
16
+ *
17
+ * @remarks
18
+ * The manual capture methods work without the overlay, making them suitable for
19
+ * headless or non-graphical environments. The overlay-based `triggerScreenshot()`
20
+ * requires the Steam overlay to be available.
21
+ *
22
+ * @example Basic screenshot capture
23
+ * ```typescript
24
+ * const steam = SteamworksSDK.getInstance();
25
+ * steam.init({ appId: 480 });
26
+ *
27
+ * // Add a screenshot from a file
28
+ * const handle = steam.screenshots.addScreenshotToLibrary(
29
+ * '/path/to/screenshot.jpg',
30
+ * null, // No thumbnail - Steam will generate one
31
+ * 1920,
32
+ * 1080
33
+ * );
34
+ *
35
+ * if (handle !== INVALID_SCREENSHOT_HANDLE) {
36
+ * // Tag the screenshot with location
37
+ * steam.screenshots.setLocation(handle, 'Level 1 - Boss Fight');
38
+ * }
39
+ * ```
40
+ *
41
+ * @example Hook screenshots for custom handling
42
+ * ```typescript
43
+ * // Tell Steam your app handles screenshots
44
+ * steam.screenshots.hookScreenshots(true);
45
+ *
46
+ * // Now when user presses screenshot key, you get a callback
47
+ * // and should call writeScreenshot() or addScreenshotToLibrary()
48
+ * ```
49
+ *
50
+ * @see {@link https://partner.steamgames.com/doc/api/ISteamScreenshots ISteamScreenshots Documentation}
51
+ */
52
+ class SteamScreenshotManager {
53
+ /**
54
+ * Creates a new SteamScreenshotManager instance
55
+ *
56
+ * @param libraryLoader - The Steam library loader for FFI calls
57
+ * @param apiCore - The Steam API core for lifecycle management
58
+ */
59
+ constructor(libraryLoader, apiCore) {
60
+ /** Cached screenshots interface pointer */
61
+ this.screenshotsInterface = null;
62
+ this.libraryLoader = libraryLoader;
63
+ this.apiCore = apiCore;
64
+ }
65
+ /**
66
+ * Gets the ISteamScreenshots interface pointer
67
+ *
68
+ * @returns The interface pointer or null if not available
69
+ */
70
+ getScreenshotsInterface() {
71
+ if (!this.apiCore.isInitialized()) {
72
+ return null;
73
+ }
74
+ if (!this.screenshotsInterface) {
75
+ try {
76
+ this.screenshotsInterface = this.libraryLoader.SteamAPI_SteamScreenshots_v003();
77
+ }
78
+ catch (error) {
79
+ console.error('[Steamworks] Failed to get ISteamScreenshots interface:', error);
80
+ return null;
81
+ }
82
+ }
83
+ return this.screenshotsInterface;
84
+ }
85
+ /**
86
+ * Writes a screenshot to the user's Steam screenshot library from raw RGB data
87
+ *
88
+ * @param rgbData - Buffer containing raw RGB pixel data (no alpha channel)
89
+ * @param width - Width of the image in pixels
90
+ * @param height - Height of the image in pixels
91
+ * @returns Screenshot handle, or INVALID_SCREENSHOT_HANDLE on failure
92
+ *
93
+ * @remarks
94
+ * - The image data must be in RGB format (3 bytes per pixel)
95
+ * - The buffer size should be width * height * 3 bytes
96
+ * - This method works without the overlay
97
+ * - The returned handle can be used to tag the screenshot
98
+ *
99
+ * @example Write raw RGB data as screenshot
100
+ * ```typescript
101
+ * // Assume you have raw RGB pixel data from your renderer
102
+ * const width = 1920;
103
+ * const height = 1080;
104
+ * const rgbData = Buffer.alloc(width * height * 3);
105
+ *
106
+ * // Fill rgbData with your screenshot pixels...
107
+ *
108
+ * const handle = steam.screenshots.writeScreenshot(rgbData, width, height);
109
+ *
110
+ * if (handle !== INVALID_SCREENSHOT_HANDLE) {
111
+ * console.log('Screenshot saved with handle:', handle);
112
+ * steam.screenshots.setLocation(handle, 'My Game Location');
113
+ * }
114
+ * ```
115
+ */
116
+ writeScreenshot(rgbData, width, height) {
117
+ const screenshots = this.getScreenshotsInterface();
118
+ if (!screenshots) {
119
+ console.error('[Steamworks] Screenshots interface not available');
120
+ return types_1.INVALID_SCREENSHOT_HANDLE;
121
+ }
122
+ try {
123
+ const handle = this.libraryLoader.SteamAPI_ISteamScreenshots_WriteScreenshot(screenshots, rgbData, rgbData.length, width, height);
124
+ return handle;
125
+ }
126
+ catch (error) {
127
+ console.error('[Steamworks] Error writing screenshot:', error);
128
+ return types_1.INVALID_SCREENSHOT_HANDLE;
129
+ }
130
+ }
131
+ /**
132
+ * Adds a screenshot to the user's Steam library from a file on disk
133
+ *
134
+ * @param filename - Path to the screenshot file (JPEG, TGA, or PNG)
135
+ * @param thumbnailFilename - Path to thumbnail file (200px wide), or null for auto-generation
136
+ * @param width - Width of the image in pixels
137
+ * @param height - Height of the image in pixels
138
+ * @returns Screenshot handle, or INVALID_SCREENSHOT_HANDLE on failure
139
+ *
140
+ * @remarks
141
+ * - Supported formats: JPEG, TGA, PNG
142
+ * - If thumbnail is provided, it must be 200 pixels wide with same aspect ratio
143
+ * - If thumbnail is null, Steam will generate one when the screenshot is uploaded
144
+ * - This method works without the overlay
145
+ *
146
+ * @example Add screenshot from file
147
+ * ```typescript
148
+ * // Add a screenshot without custom thumbnail
149
+ * const handle = steam.screenshots.addScreenshotToLibrary(
150
+ * '/path/to/screenshot.png',
151
+ * null,
152
+ * 1920,
153
+ * 1080
154
+ * );
155
+ *
156
+ * // Add with custom thumbnail
157
+ * const handle2 = steam.screenshots.addScreenshotToLibrary(
158
+ * '/path/to/screenshot.jpg',
159
+ * '/path/to/thumb.jpg',
160
+ * 2560,
161
+ * 1440
162
+ * );
163
+ *
164
+ * if (handle !== INVALID_SCREENSHOT_HANDLE) {
165
+ * steam.screenshots.setLocation(handle, 'Epic Boss Battle');
166
+ * }
167
+ * ```
168
+ */
169
+ addScreenshotToLibrary(filename, thumbnailFilename, width, height) {
170
+ const screenshots = this.getScreenshotsInterface();
171
+ if (!screenshots) {
172
+ console.error('[Steamworks] Screenshots interface not available');
173
+ return types_1.INVALID_SCREENSHOT_HANDLE;
174
+ }
175
+ try {
176
+ const handle = this.libraryLoader.SteamAPI_ISteamScreenshots_AddScreenshotToLibrary(screenshots, filename, thumbnailFilename || '', width, height);
177
+ return handle;
178
+ }
179
+ catch (error) {
180
+ console.error('[Steamworks] Error adding screenshot to library:', error);
181
+ return types_1.INVALID_SCREENSHOT_HANDLE;
182
+ }
183
+ }
184
+ /**
185
+ * Triggers the Steam overlay to take a screenshot
186
+ *
187
+ * @remarks
188
+ * - If screenshots are hooked via `hookScreenshots(true)`, this sends a
189
+ * ScreenshotRequested_t callback instead and your game should capture
190
+ * the screenshot manually
191
+ * - Requires the Steam overlay to be available
192
+ * - This is equivalent to the user pressing the screenshot hotkey
193
+ *
194
+ * @example Trigger overlay screenshot
195
+ * ```typescript
196
+ * // Simple screenshot button in your game
197
+ * function onScreenshotButtonClick() {
198
+ * steam.screenshots.triggerScreenshot();
199
+ * }
200
+ * ```
201
+ */
202
+ triggerScreenshot() {
203
+ const screenshots = this.getScreenshotsInterface();
204
+ if (!screenshots) {
205
+ console.error('[Steamworks] Screenshots interface not available');
206
+ return;
207
+ }
208
+ try {
209
+ this.libraryLoader.SteamAPI_ISteamScreenshots_TriggerScreenshot(screenshots);
210
+ }
211
+ catch (error) {
212
+ console.error('[Steamworks] Error triggering screenshot:', error);
213
+ }
214
+ }
215
+ /**
216
+ * Toggles whether your game handles screenshots or Steam does
217
+ *
218
+ * @param hook - True to handle screenshots yourself, false to let Steam handle them
219
+ *
220
+ * @remarks
221
+ * When hooked:
222
+ * - Steam will NOT automatically capture screenshots when user presses hotkey
223
+ * - Instead, your game receives a ScreenshotRequested_t callback
224
+ * - Your game should then call `writeScreenshot()` or `addScreenshotToLibrary()`
225
+ *
226
+ * This is useful when:
227
+ * - You want to add custom overlays/HUD to screenshots
228
+ * - You want to capture from a specific render target
229
+ * - You need to post-process screenshots before saving
230
+ *
231
+ * @example Hook screenshots for custom capture
232
+ * ```typescript
233
+ * // Tell Steam we'll handle screenshots
234
+ * steam.screenshots.hookScreenshots(true);
235
+ *
236
+ * // Later, in your screenshot callback handler:
237
+ * function onScreenshotRequested() {
238
+ * // Capture from your render target
239
+ * const rgbData = myRenderer.captureScreen();
240
+ *
241
+ * // Add to Steam library
242
+ * const handle = steam.screenshots.writeScreenshot(rgbData, 1920, 1080);
243
+ * steam.screenshots.setLocation(handle, getCurrentMapName());
244
+ * }
245
+ * ```
246
+ */
247
+ hookScreenshots(hook) {
248
+ const screenshots = this.getScreenshotsInterface();
249
+ if (!screenshots) {
250
+ console.error('[Steamworks] Screenshots interface not available');
251
+ return;
252
+ }
253
+ try {
254
+ this.libraryLoader.SteamAPI_ISteamScreenshots_HookScreenshots(screenshots, hook);
255
+ }
256
+ catch (error) {
257
+ console.error('[Steamworks] Error hooking screenshots:', error);
258
+ }
259
+ }
260
+ /**
261
+ * Checks if screenshots are currently hooked by your game
262
+ *
263
+ * @returns True if your game is handling screenshots, false if Steam handles them
264
+ *
265
+ * @example Check hook status
266
+ * ```typescript
267
+ * if (steam.screenshots.isScreenshotsHooked()) {
268
+ * console.log('Game is handling screenshots');
269
+ * } else {
270
+ * console.log('Steam overlay handles screenshots');
271
+ * }
272
+ * ```
273
+ */
274
+ isScreenshotsHooked() {
275
+ const screenshots = this.getScreenshotsInterface();
276
+ if (!screenshots) {
277
+ return false;
278
+ }
279
+ try {
280
+ return this.libraryLoader.SteamAPI_ISteamScreenshots_IsScreenshotsHooked(screenshots);
281
+ }
282
+ catch (error) {
283
+ console.error('[Steamworks] Error checking screenshot hook status:', error);
284
+ return false;
285
+ }
286
+ }
287
+ /**
288
+ * Sets the location metadata for a screenshot
289
+ *
290
+ * @param handle - Screenshot handle from writeScreenshot or addScreenshotToLibrary
291
+ * @param location - Location string (e.g., map name, level name)
292
+ * @returns True if location was set successfully
293
+ *
294
+ * @remarks
295
+ * The location is displayed in the Steam screenshot viewer and helps users
296
+ * remember where screenshots were taken.
297
+ *
298
+ * @example Tag screenshot with location
299
+ * ```typescript
300
+ * const handle = steam.screenshots.addScreenshotToLibrary(
301
+ * '/path/to/screenshot.jpg',
302
+ * null,
303
+ * 1920,
304
+ * 1080
305
+ * );
306
+ *
307
+ * if (handle !== INVALID_SCREENSHOT_HANDLE) {
308
+ * steam.screenshots.setLocation(handle, 'World 3 - Lava Caves');
309
+ * steam.screenshots.setLocation(handle, 'Boss: Fire Dragon');
310
+ * }
311
+ * ```
312
+ */
313
+ setLocation(handle, location) {
314
+ const screenshots = this.getScreenshotsInterface();
315
+ if (!screenshots) {
316
+ console.error('[Steamworks] Screenshots interface not available');
317
+ return false;
318
+ }
319
+ try {
320
+ return this.libraryLoader.SteamAPI_ISteamScreenshots_SetLocation(screenshots, handle, location);
321
+ }
322
+ catch (error) {
323
+ console.error('[Steamworks] Error setting screenshot location:', error);
324
+ return false;
325
+ }
326
+ }
327
+ /**
328
+ * Tags a Steam user as being visible in the screenshot
329
+ *
330
+ * @param handle - Screenshot handle from writeScreenshot or addScreenshotToLibrary
331
+ * @param steamId - Steam ID of the user to tag (as BigInt)
332
+ * @returns True if user was tagged successfully
333
+ *
334
+ * @remarks
335
+ * - You can tag up to 32 users per screenshot
336
+ * - Tagged users will see the screenshot in their profile
337
+ * - Users can untag themselves from screenshots
338
+ *
339
+ * @example Tag friends in screenshot
340
+ * ```typescript
341
+ * const handle = steam.screenshots.addScreenshotToLibrary(
342
+ * '/path/to/group_photo.jpg',
343
+ * null,
344
+ * 1920,
345
+ * 1080
346
+ * );
347
+ *
348
+ * if (handle !== INVALID_SCREENSHOT_HANDLE) {
349
+ * // Tag all friends visible in the screenshot
350
+ * const friends = steam.friends.getAllFriends();
351
+ * for (const friend of friends.slice(0, 5)) {
352
+ * steam.screenshots.tagUser(handle, friend.steamId);
353
+ * }
354
+ * }
355
+ * ```
356
+ */
357
+ tagUser(handle, steamId) {
358
+ const screenshots = this.getScreenshotsInterface();
359
+ if (!screenshots) {
360
+ console.error('[Steamworks] Screenshots interface not available');
361
+ return false;
362
+ }
363
+ try {
364
+ return this.libraryLoader.SteamAPI_ISteamScreenshots_TagUser(screenshots, handle, steamId);
365
+ }
366
+ catch (error) {
367
+ console.error('[Steamworks] Error tagging user in screenshot:', error);
368
+ return false;
369
+ }
370
+ }
371
+ /**
372
+ * Tags a Workshop item as being visible in the screenshot
373
+ *
374
+ * @param handle - Screenshot handle from writeScreenshot or addScreenshotToLibrary
375
+ * @param publishedFileId - Workshop item ID to tag (as BigInt)
376
+ * @returns True if item was tagged successfully
377
+ *
378
+ * @remarks
379
+ * - You can tag up to 32 Workshop items per screenshot
380
+ * - Useful for showing mods/custom content in screenshots
381
+ * - Tagged items will show the screenshot on their Workshop page
382
+ *
383
+ * @example Tag Workshop items in screenshot
384
+ * ```typescript
385
+ * const handle = steam.screenshots.addScreenshotToLibrary(
386
+ * '/path/to/modded_screenshot.jpg',
387
+ * null,
388
+ * 1920,
389
+ * 1080
390
+ * );
391
+ *
392
+ * if (handle !== INVALID_SCREENSHOT_HANDLE) {
393
+ * // Tag the Workshop mods visible in this screenshot
394
+ * const modId = BigInt('123456789');
395
+ * steam.screenshots.tagPublishedFile(handle, modId);
396
+ *
397
+ * // Set location too
398
+ * steam.screenshots.setLocation(handle, 'Custom Map: Epic Arena');
399
+ * }
400
+ * ```
401
+ */
402
+ tagPublishedFile(handle, publishedFileId) {
403
+ const screenshots = this.getScreenshotsInterface();
404
+ if (!screenshots) {
405
+ console.error('[Steamworks] Screenshots interface not available');
406
+ return false;
407
+ }
408
+ try {
409
+ return this.libraryLoader.SteamAPI_ISteamScreenshots_TagPublishedFile(screenshots, handle, publishedFileId);
410
+ }
411
+ catch (error) {
412
+ console.error('[Steamworks] Error tagging published file in screenshot:', error);
413
+ return false;
414
+ }
415
+ }
416
+ /**
417
+ * Adds a VR screenshot to the user's Steam library from files on disk
418
+ *
419
+ * @param type - The type of VR screenshot
420
+ * @param filename - Path to the normal 2D image for library view (JPEG, TGA, or PNG)
421
+ * @param vrFilename - Path to the VR-specific image matching the type
422
+ * @returns Screenshot handle, or INVALID_SCREENSHOT_HANDLE on failure
423
+ *
424
+ * @remarks
425
+ * - Supported formats: JPEG, TGA, PNG
426
+ * - The filename is used for the library thumbnail view
427
+ * - The vrFilename should contain the appropriate VR format for the type
428
+ *
429
+ * @example Add VR screenshot
430
+ * ```typescript
431
+ * const handle = steam.screenshots.addVRScreenshotToLibrary(
432
+ * EVRScreenshotType.Stereo,
433
+ * '/path/to/preview.jpg',
434
+ * '/path/to/stereo_screenshot.jpg'
435
+ * );
436
+ *
437
+ * if (handle !== INVALID_SCREENSHOT_HANDLE) {
438
+ * steam.screenshots.setLocation(handle, 'VR Level - Space Station');
439
+ * }
440
+ * ```
441
+ */
442
+ addVRScreenshotToLibrary(type, filename, vrFilename) {
443
+ const screenshots = this.getScreenshotsInterface();
444
+ if (!screenshots) {
445
+ console.error('[Steamworks] Screenshots interface not available');
446
+ return types_1.INVALID_SCREENSHOT_HANDLE;
447
+ }
448
+ try {
449
+ const handle = this.libraryLoader.SteamAPI_ISteamScreenshots_AddVRScreenshotToLibrary(screenshots, type, filename, vrFilename);
450
+ return handle;
451
+ }
452
+ catch (error) {
453
+ console.error('[Steamworks] Error adding VR screenshot to library:', error);
454
+ return types_1.INVALID_SCREENSHOT_HANDLE;
455
+ }
456
+ }
457
+ }
458
+ exports.SteamScreenshotManager = SteamScreenshotManager;
459
+ //# sourceMappingURL=SteamScreenshotManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SteamScreenshotManager.js","sourceRoot":"","sources":["../../src/internal/SteamScreenshotManager.ts"],"names":[],"mappings":"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"}
@@ -701,5 +701,29 @@ export declare class SteamWorkshopManager {
701
701
  * ```
702
702
  */
703
703
  removeItemFromFavorites(appId: number, publishedFileId: PublishedFileId): Promise<boolean>;
704
+ /**
705
+ * Deletes a Workshop item that you created
706
+ *
707
+ * @param publishedFileId - Workshop item ID to delete
708
+ * @returns True if deleted successfully, false otherwise
709
+ *
710
+ * @remarks
711
+ * - You can only delete items that you created
712
+ * - This action is permanent and cannot be undone
713
+ * - Subscribers will lose access to the item
714
+ *
715
+ * @example
716
+ * ```typescript
717
+ * const itemId = BigInt('123456789');
718
+ * const success = await steam.workshop.deleteItem(itemId);
719
+ *
720
+ * if (success) {
721
+ * console.log('Workshop item deleted permanently');
722
+ * } else {
723
+ * console.log('Failed to delete item - you may not be the owner');
724
+ * }
725
+ * ```
726
+ */
727
+ deleteItem(publishedFileId: PublishedFileId): Promise<boolean>;
704
728
  }
705
729
  //# sourceMappingURL=SteamWorkshopManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SteamWorkshopManager.d.ts","sourceRoot":"","sources":["../../src/internal/SteamWorkshopManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SteamWorkshopManager.d.ts","sourceRoot":"","sources":["../../src/internal/SteamWorkshopManager.ts"],"names":[],"mappings":"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"}
@@ -90,6 +90,12 @@ const UserFavoriteItemsListChanged_t = koffi.struct('UserFavoriteItemsListChange
90
90
  m_eResult: 'int', // EResult (4 bytes)
91
91
  m_bWasAddRequest: 'bool' // bool (1 byte)
92
92
  });
93
+ // Manual buffer parsing for DeleteItemResult_t callback
94
+ // Steam uses #pragma pack causing tight packing - Koffi can't handle this properly
95
+ // Layout: [int32:0-3][uint64:4-11] = 12 bytes (NO padding!)
96
+ const DeleteItemResult_t = koffi.struct('DeleteItemResult_t', {
97
+ rawBytes: koffi.array('uint8', 12)
98
+ });
93
99
  // Manual buffer parsing for SteamUGCDetails_t
94
100
  // Steam uses different struct packing on Windows vs Mac/Linux:
95
101
  // - Windows (MSVC): #pragma pack(push, 8) - 8-byte alignment for uint64
@@ -1699,6 +1705,74 @@ class SteamWorkshopManager {
1699
1705
  return false;
1700
1706
  }
1701
1707
  }
1708
+ /**
1709
+ * Deletes a Workshop item that you created
1710
+ *
1711
+ * @param publishedFileId - Workshop item ID to delete
1712
+ * @returns True if deleted successfully, false otherwise
1713
+ *
1714
+ * @remarks
1715
+ * - You can only delete items that you created
1716
+ * - This action is permanent and cannot be undone
1717
+ * - Subscribers will lose access to the item
1718
+ *
1719
+ * @example
1720
+ * ```typescript
1721
+ * const itemId = BigInt('123456789');
1722
+ * const success = await steam.workshop.deleteItem(itemId);
1723
+ *
1724
+ * if (success) {
1725
+ * console.log('Workshop item deleted permanently');
1726
+ * } else {
1727
+ * console.log('Failed to delete item - you may not be the owner');
1728
+ * }
1729
+ * ```
1730
+ */
1731
+ async deleteItem(publishedFileId) {
1732
+ if (!this.apiCore.isInitialized()) {
1733
+ console.error('[Steamworks] Steam API not initialized');
1734
+ return false;
1735
+ }
1736
+ const ugc = this.apiCore.getUGCInterface();
1737
+ if (!ugc) {
1738
+ console.error('[Steamworks] ISteamUGC interface not available');
1739
+ return false;
1740
+ }
1741
+ try {
1742
+ const callHandle = this.libraryLoader.SteamAPI_ISteamUGC_DeleteItem(ugc, publishedFileId);
1743
+ if (callHandle === BigInt(0)) {
1744
+ console.error('[Steamworks] Failed to initiate item deletion');
1745
+ return false;
1746
+ }
1747
+ // Wait for the callback result
1748
+ const result = await this.callbackPoller.poll(BigInt(callHandle), DeleteItemResult_t, callbackTypes_1.K_I_DELETE_ITEM_RESULT, 100, // max retries (10 seconds total)
1749
+ 100 // delay ms
1750
+ );
1751
+ // Parse the raw bytes manually due to tight packing
1752
+ if (result) {
1753
+ const rawBytes = result.rawBytes;
1754
+ if (rawBytes) {
1755
+ // Layout: [int32:0-3][uint64:4-11]
1756
+ const eResult = rawBytes[0] | (rawBytes[1] << 8) | (rawBytes[2] << 16) | (rawBytes[3] << 24);
1757
+ if (eResult === 1) { // k_EResultOK = 1
1758
+ return true;
1759
+ }
1760
+ console.error(`[Steamworks] Delete item failed with result: ${eResult}`);
1761
+ return false;
1762
+ }
1763
+ // Fallback to direct property access
1764
+ if (result.m_eResult === 1) {
1765
+ return true;
1766
+ }
1767
+ console.error(`[Steamworks] Delete item failed with result: ${result.m_eResult || 'unknown'}`);
1768
+ }
1769
+ return false;
1770
+ }
1771
+ catch (error) {
1772
+ console.error('[Steamworks] Error deleting item:', error);
1773
+ return false;
1774
+ }
1775
+ }
1702
1776
  }
1703
1777
  exports.SteamWorkshopManager = SteamWorkshopManager;
1704
1778
  //# sourceMappingURL=SteamWorkshopManager.js.map