diff --git a/Facepunch.Steamworks/Interfaces/Inventory.Definition.cs b/Facepunch.Steamworks/Interfaces/Inventory.Definition.cs
index 9cbf966..8bd0c7f 100644
--- a/Facepunch.Steamworks/Interfaces/Inventory.Definition.cs
+++ b/Facepunch.Steamworks/Interfaces/Inventory.Definition.cs
@@ -4,6 +4,7 @@
using System.Net;
using System.Runtime.InteropServices;
using System.Text;
+using SteamNative;
namespace Facepunch.Steamworks
{
@@ -190,9 +191,16 @@ internal void SetupCommonProperties()
///
public void TriggerItemDrop()
{
- SteamNative.SteamInventoryResult_t result = 0;
- inventory.inventory.TriggerItemDrop( ref result, Id );
- inventory.inventory.DestroyResult( result );
+ inventory.TriggerItemDrop( Id );
+ }
+
+ ///
+ /// Trigger a promo item drop. You can call this at startup, it won't
+ /// give users multiple promo drops.
+ ///
+ public void TriggerPromoDrop()
+ {
+ inventory.TriggerPromoDrop( Id );
}
internal void Link( Definition[] definitions )
@@ -221,6 +229,38 @@ internal void InRecipe( Recipe r )
}
}
+ ///
+ /// Trigger a promo item drop. You can call this at startup, it won't
+ /// give users multiple promo drops.
+ ///
+ public void TriggerPromoDrop( int definitionId )
+ {
+ SteamNative.SteamInventoryResult_t result = 0;
+ inventory.AddPromoItem( ref result, definitionId );
+ inventory.DestroyResult( result );
+ }
+
+ ///
+ /// Trigger an item drop for this user. This is for timed drops. For promo
+ /// drops use TriggerPromoDrop.
+ ///
+ public void TriggerItemDrop( int definitionId )
+ {
+ SteamNative.SteamInventoryResult_t result = 0;
+ inventory.TriggerItemDrop( ref result, definitionId );
+ inventory.DestroyResult( result );
+ }
+
+ ///
+ /// Grant all promotional items the user is eligible for.
+ ///
+ public void GrantAllPromoItems()
+ {
+ SteamNative.SteamInventoryResult_t result = 0;
+ inventory.GrantPromoItems( ref result );
+ inventory.DestroyResult( result );
+ }
+
///
/// Represents a crafting recepie which was defined using the exchange
/// section in the item schema.