Inventory fix

This commit is contained in:
Garry Newman 2016-07-19 13:32:14 +01:00
parent f72e3432ae
commit a9d6ea6cef
2 changed files with 15 additions and 7 deletions

View File

@ -1,4 +1,5 @@
using System;
using System.Diagnostics;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace Facepunch.Steamworks.Test
@ -137,10 +138,14 @@ public void InventoryItemList()
client.Inventory.Refresh();
// Wait for the items
var timeout = Stopwatch.StartNew();
while ( client.Inventory.Items == null )
{
client.Update();
System.Threading.Thread.Sleep( 10 );
System.Threading.Thread.Sleep( 1000 );
if ( timeout.Elapsed.TotalSeconds > 5 )
break;
}
// make sure callback was called

View File

@ -29,7 +29,7 @@ public class Inventory
public Action OnUpdate;
internal Client client;
private int updateRequest = 0;
private int updateRequest = -1;
internal Inventory( Client c )
{
@ -57,10 +57,13 @@ public void PlaytimeHeartbeat()
public void Refresh()
{
// Pending
if ( updateRequest != 0 )
if ( updateRequest != -1 )
return;
client.native.inventory.GetAllItems( ref updateRequest );
if ( !client.native.inventory.GetAllItems( ref updateRequest ) )
{
Console.WriteLine( "GetAllItems failed!?" );
}
}
internal void LoadItemDefinitions()
@ -97,10 +100,10 @@ internal T DefinitionProperty<T>( int i, string name )
internal void DestroyResult()
{
if ( updateRequest != 0 )
if ( updateRequest != -1 )
{
client.native.inventory.DestroyResult( updateRequest );
updateRequest = 0;
updateRequest = -1;
}
}
@ -112,7 +115,7 @@ internal void Update()
private void UpdateRequest()
{
if ( updateRequest == 0 )
if ( updateRequest == -1 )
return;
var status = (Valve.Steamworks.EResult) client.native.inventory.GetResultStatus( updateRequest );