Unstable 0.16.0.0

This commit is contained in:
Markus Isberg
2022-01-14 01:28:24 +09:00
parent d9baeaa2e1
commit 7d6421a548
237 changed files with 6430 additions and 2205 deletions
@@ -143,8 +143,7 @@ namespace Barotrauma.Steam
return;
}
currentLobby = ((Task<Steamworks.Data.Lobby?>)lobby).Result;
lobby.TryGetResult(out currentLobby);
if (currentLobby == null)
{
DebugConsole.ThrowError("Failed to create Steam lobby: returned lobby was null");
@@ -250,7 +249,7 @@ namespace Barotrauma.Steam
TaskPool.Add("JoinLobbyAsync", Steamworks.SteamMatchmaking.JoinLobbyAsync(lobbyID),
(lobby) =>
{
currentLobby = ((Task<Steamworks.Data.Lobby?>)lobby).Result;
lobby.TryGetResult(out currentLobby);
lobbyState = LobbyState.Joined;
lobbyID = (currentLobby?.Id).Value;
if (joinServer)
@@ -293,10 +292,11 @@ namespace Barotrauma.Steam
taskDone();
return;
}
var lobbies = ((Task<List<Steamworks.Data.Lobby>>)t).Result;
if (lobbies != null)
t.TryGetResult(out List<Steamworks.Data.Lobby> lobbies);
IEnumerable<CoroutineStatus> lobbyAddCoroutine()
{
foreach (var lobby in lobbies)
int i = 0;
foreach (var lobby in lobbies ?? Enumerable.Empty<Steamworks.Data.Lobby>())
{
if (string.IsNullOrEmpty(lobby.GetData("name"))) { continue; }
@@ -312,9 +312,13 @@ namespace Barotrauma.Steam
AssignLobbyDataToServerInfo(lobby, serverInfo);
addToServerList(serverInfo);
i++;
if (i >= 16) { yield return CoroutineStatus.Running; i = 0; }
}
taskDone();
yield return CoroutineStatus.Success;
}
taskDone();
CoroutineManager.StartCoroutine(lobbyAddCoroutine());
});
Steamworks.ServerList.Internet serverQuery = new Steamworks.ServerList.Internet();
@@ -344,13 +348,10 @@ namespace Barotrauma.Steam
return;
}
var rules = ((Task<Dictionary<string, string>>)t).Result;
t.TryGetResult(out Dictionary<string, string> rules);
AssignServerRulesToServerInfo(rules, serverInfo);
CrossThread.RequestExecutionOnMainThread(() =>
{
addToServerList(serverInfo);
});
addToServerList(serverInfo);
});
}
else
@@ -618,7 +619,10 @@ namespace Barotrauma.Steam
.WithLongDescription();
if (requireTags != null) { query = query.WithTags(requireTags); }
TaskPool.Add("GetSubscribedWorkshopItems", GetWorkshopItemsAsync(query), (task) => { onItemsFound?.Invoke(((Task<List<Steamworks.Ugc.Item>>)task).Result); });
TaskPool.Add("GetSubscribedWorkshopItems", GetWorkshopItemsAsync(query), (task) =>
{
task.TryGetResult(out List<Steamworks.Ugc.Item> result); onItemsFound?.Invoke(result);
});
}
public static void GetPopularWorkshopItems(Action<IList<Steamworks.Ugc.Item>> onItemsFound, int amount, List<string> requireTags = null)
@@ -632,7 +636,7 @@ namespace Barotrauma.Steam
TaskPool.Add("GetPopularWorkshopItems", GetWorkshopItemsAsync(query, amount, (item) => !item.IsSubscribed), (task) =>
{
var entries = ((Task<List<Steamworks.Ugc.Item>>)task).Result;
task.TryGetResult(out List<Steamworks.Ugc.Item> entries);
//count the number of each unique tag
foreach (var item in entries)
@@ -677,7 +681,10 @@ namespace Barotrauma.Steam
.WithLongDescription();
if (requireTags != null) query.WithTags(requireTags);
TaskPool.Add("GetPublishedWorkshopItems", GetWorkshopItemsAsync(query), (task) => { onItemsFound?.Invoke(((Task<List<Steamworks.Ugc.Item>>)task).Result); });
TaskPool.Add("GetPublishedWorkshopItems", GetWorkshopItemsAsync(query), (task) =>
{
task.TryGetResult(out List<Steamworks.Ugc.Item> result); onItemsFound?.Invoke(result);
});
}
private static readonly HashSet<ulong> pendingWorkshopSubscriptions = new HashSet<ulong>();
@@ -724,7 +731,7 @@ namespace Barotrauma.Steam
}
else
{
var item = ((Task<Steamworks.Ugc.Item?>)t).Result;
t.TryGetResult(out Steamworks.Ugc.Item? item);
if (item != null)
{
if (item?.IsInstalled ?? false)
@@ -1077,7 +1084,7 @@ namespace Barotrauma.Steam
GameMain.SteamWorkshopScreen?.SetReinstallButtonStatus(item, true, GUI.Style.Red);
return;
}
string errorMsg = ((Task<string>)task).Result;
task.TryGetResult(out string errorMsg);
if (!string.IsNullOrWhiteSpace(errorMsg))
{
DebugConsole.ThrowError($"Failed to copy \"{item.Title}\": {errorMsg}");