From ae260fef8f15f5f34182867467fd8fc2723cc4d6 Mon Sep 17 00:00:00 2001 From: Andreas Pardeike Date: Fri, 11 Mar 2022 02:57:46 +0100 Subject: [PATCH] fixes compatibility with next RimWorld version --- 1.3/Assemblies/CrossPromotion.dll | Bin 0 -> 53248 bytes 1.3/Assemblies/VisualExceptions.dll | Bin 70656 -> 54784 bytes About/Manifest.xml | 2 +- Source/CrossPromotion.cs | 548 ---------------------------- Source/Main.cs | 5 +- Source/VisualExceptions.csproj | 10 +- 6 files changed, 11 insertions(+), 554 deletions(-) create mode 100644 1.3/Assemblies/CrossPromotion.dll delete mode 100644 Source/CrossPromotion.cs diff --git a/1.3/Assemblies/CrossPromotion.dll b/1.3/Assemblies/CrossPromotion.dll new file mode 100644 index 0000000000000000000000000000000000000000..781d8fc08d325cb2d20113b51d8ef622ebcc666d GIT binary patch literal 53248 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 literal 70656 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 net.pardeike.rimworld.mod.visualexceptions - 1.1.0.0 + 1.1.1.0
  • 1.2.0
  • 1.3.0
  • diff --git a/Source/CrossPromotion.cs b/Source/CrossPromotion.cs deleted file mode 100644 index 82391d0..0000000 --- a/Source/CrossPromotion.cs +++ /dev/null @@ -1,548 +0,0 @@ -using HarmonyLib; -using RimWorld; -using Steamworks; -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Reflection; -using System.Reflection.Emit; -using System.Threading; -using UnityEngine; -using Verse; -using Verse.Steam; - -namespace CrossPromotionModule -{ - // works with RimWorld 1.2 and 1.3 - - [StaticConstructorOnStartup] - static class CrossPromotion - { - const string _crosspromotion = "brrainz-crosspromotion"; - internal const ulong userID = 76561197973010050; - - internal static List promotionMods = new List(); - internal static Dictionary allVoteStati = new Dictionary(); - internal static Dictionary previewTextures = new Dictionary(); - internal static List subscribingMods = new List(); - internal static ulong? lastPresentedMod = null; - - static CrossPromotion() - { - if (Harmony.HasAnyPatches(_crosspromotion)) - return; - - var instance = new Harmony(_crosspromotion); - - _ = instance.Patch( - SymbolExtensions.GetMethodInfo(() => ModLister.RebuildModList()), - postfix: new HarmonyMethod(SymbolExtensions.GetMethodInfo(() => ModLister_RebuildModList_Postfix())) - ); - - _ = instance.Patch( - SymbolExtensions.GetMethodInfo(() => new Page_ModsConfig().PostClose()), - postfix: new HarmonyMethod(SymbolExtensions.GetMethodInfo(() => Page_ModsConfig_PostClose_Postfix())) - ); - - _ = instance.Patch( - SymbolExtensions.GetMethodInfo(() => WorkshopItems.Notify_Subscribed(default)), - postfix: new HarmonyMethod(SymbolExtensions.GetMethodInfo(() => WorkshopItems_Notify_Subscribed_Postfix(new PublishedFileId_t(0)))) - ); - - _ = instance.Patch( - AccessTools.DeclaredMethod(typeof(Page_ModsConfig), nameof(Page_ModsConfig.DoWindowContents)), - transpiler: new HarmonyMethod(SymbolExtensions.GetMethodInfo(() => Page_ModsConfig_DoWindowContents_Transpiler(null, null))) - ); - } - - static void ModLister_RebuildModList_Postfix() - { - _ = ModPreviewPath(0); - new Thread(() => { FetchPromotionMods(); }).Start(); - } - - static void Page_ModsConfig_PostClose_Postfix() - { - subscribingMods.Clear(); - } - - static void WorkshopItems_Notify_Subscribed_Postfix(PublishedFileId_t pfid) - { - var longID = pfid.m_PublishedFileId; - - if (subscribingMods.Contains(longID) == false) - return; - _ = subscribingMods.Remove(longID); - - LongEventHandler.ExecuteWhenFinished(() => - { - var mod = ModLister.AllInstalledMods.FirstOrDefault(meta => meta.GetPublishedFileId().m_PublishedFileId == longID); - if (mod == null) - return; - - ModsConfig.SetActive(mod, true); - ModsConfig.Save(); - - Find.WindowStack.Add(new MiniDialog(mod.Name + " added")); - }); - } - - static readonly MethodInfo m_BeginGroup = SymbolExtensions.GetMethodInfo(() => GUI.BeginGroup(new Rect())); - static readonly MethodInfo m_EndGroup = SymbolExtensions.GetMethodInfo(() => GUI.EndGroup()); - static readonly MethodInfo m_Promotion = SymbolExtensions.GetMethodInfo(() => PromotionLayout.Promotion(new Rect(), null)); - - static IEnumerable Page_ModsConfig_DoWindowContents_Transpiler(IEnumerable instructions, ILGenerator generator) - { - var list = instructions.ToList(); - - var beginGroupIndicies = list - .Select((instr, idx) => new Pair(idx, instr)) - .Where(pair => pair.Second.operand is MethodInfo mi && mi == m_BeginGroup) - .Select(pair => pair.First).ToArray(); - - var endGroupIndicies = list - .Select((instr, idx) => new Pair(idx, instr)) - .Where(pair => pair.Second.operand is MethodInfo mi && mi == m_EndGroup) - .Select(pair => pair.First).ToArray(); - - if (beginGroupIndicies.Length != 2 || endGroupIndicies.Length != 2) - return instructions; - - var iBegin = beginGroupIndicies[1] - 1; - var iEnd = endGroupIndicies[0]; - - var jump = generator.DefineLabel(); - list[iEnd + 1].labels.Add(jump); - var localPositionVar = list[iBegin]; - list.InsertRange(iBegin, new[] - { - localPositionVar.Clone(), - new CodeInstruction(OpCodes.Ldarg_0), - new CodeInstruction(OpCodes.Call, m_Promotion), - new CodeInstruction(OpCodes.Brtrue, jump) - }); - - return list.AsEnumerable(); - } - - internal static string ModPreviewPath(ulong modID) - { - var dir = Path.GetTempPath() + "BrrainzMods" + Path.DirectorySeparatorChar; - if (Directory.Exists(dir) == false) _ = Directory.CreateDirectory(dir); - return dir + modID + "-preview.jpg"; - } - - internal static byte[] SafeRead(string path) - { - for (var i = 1; i <= 5; i++) - { - try - { - return File.ReadAllBytes(path); - } - catch (Exception) - { - Thread.Sleep(250); - } - } - return null; - } - - internal static Texture2D PreviewForMod(ulong modID) - { - if (previewTextures.TryGetValue(modID, out var texture)) - return texture; - - var path = ModPreviewPath(modID); - if (File.Exists(path) == false) - return null; - - texture = new Texture2D(1, 1, TextureFormat.ARGB32, false); - if (texture.LoadImage(SafeRead(path))) - previewTextures[modID] = texture; - - return texture; - } - - internal static void UpdateVotingStatus(ulong modID, Action callback) - { - var callDelegate = new CallResult.APIDispatchDelegate(callback); - var call = SteamUGC.GetUserItemVote(new PublishedFileId_t(modID)); - var resultHandle = CallResult.Create(callDelegate); - resultHandle.Set(call, null); - } - - static void AsyncUserModsQuery(UGCQueryHandle_t query, Action callback) - { - var callDelegate = new CallResult.APIDispatchDelegate((result, failure) => - { - callback(result, failure); - _ = SteamUGC.ReleaseQueryUGCRequest(query); - }); - var call = SteamUGC.SendQueryUGCRequest(query); - var resultHandle = CallResult.Create(callDelegate); - resultHandle.Set(call, null); - } - - static void AsyncDownloadQuery(UGCHandle_t content, string path, Action callback) - { - var callDelegate = new CallResult.APIDispatchDelegate(callback); - var call = SteamRemoteStorage.UGCDownloadToLocation(content, path, 0); - var resultHandle = CallResult.Create(callDelegate); - resultHandle.Set(call, null); - } - - public static void FetchPromotionMods() - { - if (SteamManager.Initialized == false) - return; - - var rimworldID = SteamUtils.GetAppID(); - var aID = new AccountID_t(unchecked((uint)userID)); - - var itemQuery = SteamUGC.CreateQueryUserUGCRequest(aID, - EUserUGCList.k_EUserUGCList_Published, EUGCMatchingUGCType.k_EUGCMatchingUGCType_UsableInGame, - EUserUGCListSortOrder.k_EUserUGCListSortOrder_VoteScoreDesc, rimworldID, rimworldID, 1); - - _ = SteamUGC.SetReturnLongDescription(itemQuery, true); - _ = SteamUGC.SetRankedByTrendDays(itemQuery, 7); - - AsyncUserModsQuery(itemQuery, (result, failure) => - { - for (var i = (uint)0; i < result.m_unNumResultsReturned; i++) - if (SteamUGC.GetQueryUGCResult(result.m_handle, i, out var mod)) - if (promotionMods.Any(m => m.m_nPublishedFileId.m_PublishedFileId == mod.m_nPublishedFileId.m_PublishedFileId) == false) - { - promotionMods.Add(mod); - var modID = mod.m_nPublishedFileId.m_PublishedFileId; - - var path = ModPreviewPath(modID); - if (File.Exists(path) == false || new FileInfo(path).Length != mod.m_nPreviewFileSize) - { - AsyncDownloadQuery(mod.m_hPreviewFile, path, (result2, failure2) => - { - if (File.Exists(path)) - { - if (previewTextures.ContainsKey(modID)) - _ = previewTextures.Remove(modID); - } - }); - } - - UpdateVotingStatus(modID, (result2, failure2) => - { - allVoteStati[modID] = (result2.m_eResult == EResult.k_EResultOK) ? result2.m_bVotedUp : (bool?)null; - }); - } - }); - } - } - - [StaticConstructorOnStartup] - internal class PromotionLayout - { - internal static bool Promotion(Rect mainRect, Page_ModsConfig page) - { - if (SteamManager.Initialized == false) - return false; - - var mod = page.selectedMod; - if (mod == null - || mod.GetWorkshopItemHook().steamAuthor.m_SteamID != CrossPromotion.userID - || CrossPromotion.promotionMods.Count == 0) - return false; - - var leftColumn = mainRect.width * 2 / 3; - var rightColumn = mainRect.width - leftColumn - 10f; - - GUI.BeginGroup(mainRect); - - try - { - ContentPart(mainRect, leftColumn, mod, page); - PromotionPart(mainRect, leftColumn, rightColumn, mod, page); - } - catch - { - GUI.EndGroup(); - return false; - } - - GUI.EndGroup(); - return true; - } - - static Vector2 leftScroll = Vector2.zero; - static Vector2 rightScroll = Vector2.zero; - - static void ContentPart(Rect mainRect, float leftColumn, ModMetaData mod, Page_ModsConfig page) - { - var workshopMods = WorkshopItems.AllSubscribedItems.Select(wi => wi.PublishedFileId.m_PublishedFileId).ToList(); - - var mainModID = mod.GetPublishedFileId().m_PublishedFileId; - var promoMods = CrossPromotion.promotionMods.ToArray(); - var thisMod = promoMods.FirstOrDefault(m => m.m_nPublishedFileId.m_PublishedFileId == mainModID); - var isLocalFile = ModLister.AllInstalledMods.Any(meta => meta.GetPublishedFileId().m_PublishedFileId == mainModID && meta.Source == ContentSource.ModsFolder); - var isSubbed = workshopMods.Contains(mainModID); - - if (CrossPromotion.lastPresentedMod != mainModID) - { - leftScroll = Vector2.zero; - rightScroll = Vector2.zero; - CrossPromotion.lastPresentedMod = mainModID; - - new Thread(() => - { - foreach (var promoMod in promoMods) - CrossPromotion.UpdateVotingStatus(promoMod.m_nPublishedFileId.m_PublishedFileId, (result2, failure2) => - { - CrossPromotion.allVoteStati[promoMod.m_nPublishedFileId.m_PublishedFileId] = (result2.m_eResult == EResult.k_EResultOK) ? result2.m_bVotedUp : (bool?)null; - }); - }) - .Start(); - } - - var description = thisMod.m_rgchDescription; - if (description == null || description.Length == 0) - description = mod.Description; - - var outRect = new Rect(0f, 0f, leftColumn, mainRect.height); - var width = outRect.width - 20f; - var imageRect = new Rect(0f, 0f, width, width * mod.PreviewImage.height / mod.PreviewImage.width); - var textRect = new Rect(0f, 24f + 10f + imageRect.height, width, Text.CalcHeight(description, width)); - var innerRect = new Rect(0f, 0f, width, imageRect.height + 20f + 8f + 10f + textRect.height); - - Widgets.BeginScrollView(outRect, ref leftScroll, innerRect, true); - GUI.DrawTexture(imageRect, mod.PreviewImage, ScaleMode.ScaleToFit); - var widgetRow = new WidgetRow(imageRect.xMax, imageRect.yMax + 8f, UIDirection.LeftThenDown, width, 8f); - if (isLocalFile == false) - { - if (widgetRow.CrossVersionButtonText("Unsubscribe".Translate(), null, true, true)) - { - Find.WindowStack.Add(Dialog_MessageBox.CreateConfirmation("ConfirmUnsubscribe".Translate(mod.Name), () => - { - mod.enabled = false; - new Thread(() => - { - Workshop.Unsubscribe(mod); - page.Notify_SteamItemUnsubscribed(new PublishedFileId_t(mainModID)); - }) - .Start(); - }, true, null)); - } - } - if (isSubbed) - { - if (widgetRow.CrossVersionButtonText("WorkshopPage".Translate(), null, true, true)) - SteamUtility.OpenWorkshopPage(new PublishedFileId_t(mainModID)); - } - if (Prefs.DevMode && mod.CanToUploadToWorkshop()) - { - widgetRow = new WidgetRow(imageRect.xMin, imageRect.yMax + 8f, UIDirection.RightThenDown, width, 8f); - if (widgetRow.CrossVersionButtonText("Upload", null, true, true)) - Find.WindowStack.Add(Dialog_MessageBox.CreateConfirmation("ConfirmSteamWorkshopUpload".Translate(), () => Workshop.Upload(mod), true, null)); - } - Widgets.Label(textRect, description); - Widgets.EndScrollView(); - } - - static void PromotionPart(Rect mainRect, float leftColumn, float rightColumn, ModMetaData mod, Page_ModsConfig page) - { - var mainModID = mod.GetPublishedFileId(); - - Text.Font = GameFont.Tiny; - var headerHeight = 30f; - var headerRect = new Rect(leftColumn + 10f, -4f, rightColumn - 20f, headerHeight); - Text.Anchor = TextAnchor.UpperCenter; - Widgets.Label(headerRect, "Mods of " + mod.CrossVersionAuthor().Replace("Andreas Pardeike", "Brrainz") + ":".Truncate(headerRect.width, null)); - Text.Anchor = TextAnchor.UpperLeft; - - var outRect = new Rect(leftColumn + 10f, headerHeight - 4f, rightColumn, mainRect.height - (headerHeight - 4f)); - var width = outRect.width - 20f; - var previewHeight = width * 319f / 588f; - var promoMods = CrossPromotion.promotionMods.ToArray().Where(m => m.m_nPublishedFileId != mainModID); - var workshopMods = WorkshopItems.AllSubscribedItems.Select(wi => wi.PublishedFileId.m_PublishedFileId).ToList(); - var activeMods = ModLister.AllInstalledMods.Where(meta => meta.Active).Select(meta => meta.GetPublishedFileId().m_PublishedFileId).ToList(); - - var height = 0f; - foreach (var promoMod in promoMods) - { - var myModID = promoMod.m_nPublishedFileId.m_PublishedFileId; - var isLocalFile = ModLister.AllInstalledMods.Any(meta => meta.GetPublishedFileId().m_PublishedFileId == myModID && meta.Source == ContentSource.ModsFolder); - var isSubbed = workshopMods.Contains(myModID); - _ = CrossPromotion.allVoteStati.TryGetValue(myModID, out var voteStatus); - - if (height > 0) - height += 10f; - - var preview = CrossPromotion.PreviewForMod(promoMod.m_nPublishedFileId.m_PublishedFileId); - if (preview != null) - { - height += width * preview.height / preview.width + 2f; - if (isLocalFile == false && (isSubbed == false || (voteStatus == false))) - height += 16f; - } - } - - Widgets.BeginScrollView(outRect, ref rightScroll, new Rect(0f, 0f, width, height), true); - var firstTime = true; - var modRect = new Rect(0f, 0f, width, 0f); - foreach (var promoMod in promoMods) - { - var myModID = promoMod.m_nPublishedFileId.m_PublishedFileId; - var isLocalFile = ModLister.AllInstalledMods.Any(meta => meta.GetPublishedFileId().m_PublishedFileId == myModID && meta.Source == ContentSource.ModsFolder); - var isSubbed = workshopMods.Contains(myModID); - var isActive = activeMods.Contains(myModID); - _ = CrossPromotion.allVoteStati.TryGetValue(myModID, out var voteStatus); - - if (firstTime == false) - modRect.y += 10f; - - var preview = CrossPromotion.PreviewForMod(promoMod.m_nPublishedFileId.m_PublishedFileId); - if (preview != null) - { - modRect.height = width * preview.height / preview.width; - GUI.DrawTexture(modRect, preview, ScaleMode.ScaleToFit); - - var checkRect = modRect; - checkRect.xMax -= 4f; - checkRect.yMax -= 4f; - checkRect.xMin = checkRect.xMax - 18f; - checkRect.yMin = checkRect.yMax - 18f; - var active = isActive; - GUI.DrawTexture(checkRect.ContractedBy(-2f), CheckboxBackground); - Widgets.Checkbox(checkRect.xMin, checkRect.yMin, ref active, checkRect.width); - if (active != isActive) - { - var clickedMod = ModLister.AllInstalledMods.FirstOrDefault(meta => meta.GetPublishedFileId().m_PublishedFileId == myModID); - if (clickedMod != null) - { - ModsConfig.SetActive(clickedMod, active); - ModsConfig.Save(); - } - } - - if (Mouse.IsOver(checkRect) == false) - { - Widgets.DrawHighlightIfMouseover(modRect); - if (Widgets.ButtonInvisible(modRect, true)) - { - var description = promoMod.m_rgchTitle + "\n\n" + promoMod.m_rgchDescription; - var actionButton = isSubbed || isLocalFile ? "Select" : "Subscribe"; - void actionButtonAction() - { - if (isSubbed || isLocalFile) - { - var orderedMods = page.ModsInListOrder(); - page.selectedMod = orderedMods.FirstOrDefault(meta => meta.GetPublishedFileId().m_PublishedFileId == myModID); - var modsBefore = orderedMods.ToList().FindIndex(m => m == page.selectedMod); - if (modsBefore >= 0) - _ = Traverse.Create(page).Field("modListScrollPosition").SetValue(new Vector2(0f, modsBefore * 26f + 4f)); - } - else - new Thread(() => - { - CrossPromotion.subscribingMods.Add(myModID); - _ = SteamUGC.SubscribeItem(new PublishedFileId_t(myModID)); - }) - .Start(); - } - var infoWindow = new Dialog_MessageBox(description, "Close".Translate(), null, actionButton, actionButtonAction, null, false, null, null); - Find.WindowStack.Add(infoWindow); - } - } - modRect.y += modRect.height + 2f; - - modRect.height = 0f; - if (isLocalFile == false) - { - if (isSubbed == false) - { - modRect.height = 16f; - if (CrossPromotion.subscribingMods.Contains(myModID)) - Widgets.Label(modRect, WaitingString); - else if (Widgets.ButtonText(modRect, "Subscribe", false, true, true)) - new Thread(() => - { - CrossPromotion.subscribingMods.Add(myModID); - _ = SteamUGC.SubscribeItem(new PublishedFileId_t(myModID)); - }).Start(); - } - else if (voteStatus != null && voteStatus == false) - { - modRect.height = 16f; - if (Widgets.ButtonText(modRect, "Like", false, true, true)) - { - new Thread(() => - { - CrossPromotion.allVoteStati[myModID] = true; - _ = SteamUGC.SetUserItemVote(new PublishedFileId_t(myModID), true); - }).Start(); - } - } - } - modRect.y += modRect.height; - } - - firstTime = false; - } - Widgets.EndScrollView(); - } - - static Texture2D _checkboxBackground; - static Texture2D CheckboxBackground - { - get - { - if (_checkboxBackground == null) - _checkboxBackground = SolidColorMaterials.NewSolidColorTexture(new Color(0f, 0f, 0f, 0.5f)); - return _checkboxBackground; - } - } - - static string WaitingString - { - get - { - var i = (DateTime.Now.Ticks / 20) % 4; - return new string[] { "....", "... .", ".. ..", ". ..." }[i]; - } - } - } - - internal class MiniDialog : Dialog_MessageBox - { - internal MiniDialog(string text, string buttonAText = null, Action buttonAAction = null, string buttonBText = null, Action buttonBAction = null, string title = null, bool buttonADestructive = false, Action acceptAction = null, Action cancelAction = null) - : base(text, buttonAText, buttonAAction, buttonBText, buttonBAction, title, buttonADestructive, acceptAction, cancelAction) { } - - public override Vector2 InitialSize => new Vector2(320, 240); - } - - internal static class CrossVersionMethods - { - internal static string CrossVersionAuthor(this ModMetaData mod) - { - var str1 = Traverse.Create(mod).Property("AuthorsString").GetValue(); - var str2 = Traverse.Create(mod).Property("Author").GetValue(); - return (str1 ?? str2).Replace("Andreas Pardeike", "Brrainz"); - } - - private static MethodInfo mButtonText = null; - private static object[] buttonTextDefaults = new object[0]; - internal static bool CrossVersionButtonText(this WidgetRow row, string label, string tooltip = null, bool drawBackground = true, bool doMouseoverSound = true) - { - if (mButtonText == null) - { - mButtonText = AccessTools.Method(typeof(WidgetRow), nameof(WidgetRow.ButtonText)); - buttonTextDefaults = mButtonText.GetParameters().Select(p => p.DefaultValue).ToArray(); - } - var parameters = buttonTextDefaults; - parameters[0] = label; - parameters[1] = tooltip; - parameters[2] = drawBackground; - parameters[3] = doMouseoverSound; - return (bool)mButtonText.Invoke(row, parameters); - } - } -} diff --git a/Source/Main.cs b/Source/Main.cs index 373c2f3..c22eff6 100644 --- a/Source/Main.cs +++ b/Source/Main.cs @@ -1,4 +1,5 @@ -using HarmonyLib; +using Brrainz; +using HarmonyLib; using System.Linq; using UnityEngine; using Verse; @@ -13,6 +14,8 @@ static HarmonyMain() // loads earliest ExceptionState.Load(); if (ExceptionState.configuration.Debugging) Patcher.Apply(); + + CrossPromotion.Install(76561197973010050); } public HarmonyMain(ModContentPack content) : base(content) { } diff --git a/Source/VisualExceptions.csproj b/Source/VisualExceptions.csproj index b54212b..1426052 100644 --- a/Source/VisualExceptions.csproj +++ b/Source/VisualExceptions.csproj @@ -10,7 +10,7 @@ ..\1.3\Assemblies\ true false - 1.1.0.0 + 1.1.1.0 Copyright Andreas Pardeike @@ -30,12 +30,14 @@ - - + + + runtime all + compile; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive