From 1b8a3936ad9977a769fb01adb4e6513f0dda8177 Mon Sep 17 00:00:00 2001 From: Maximilian Reinhart Date: Thu, 23 May 2024 20:43:07 +0200 Subject: [PATCH 01/21] corrected targets for current system -- auto feed -- removed terminal patch updated function calls to current valheim build added check if animal can find path to container for selection of such --- AutoFeed/BepInExPlugin.cs | 94 ++++++++++++++------------------ ValheimMods.sln | 111 -------------------------------------- valheim.targets | 18 ++----- 3 files changed, 44 insertions(+), 179 deletions(-) diff --git a/AutoFeed/BepInExPlugin.cs b/AutoFeed/BepInExPlugin.cs index 1890f53..2e2eb22 100644 --- a/AutoFeed/BepInExPlugin.cs +++ b/AutoFeed/BepInExPlugin.cs @@ -82,36 +82,46 @@ private static string GetPrefabName(string name) return result; } - public static List GetNearbyContainers(Vector3 center, float range, MonsterAI monsterAI) + private static Container FindClosestContainer(Vector3 center, float range, MonsterAI monsterAI) { - try { - List containers = new List(); - - foreach (Collider collider in Physics.OverlapSphere(center, Mathf.Max(range, 0), LayerMask.GetMask(new string[] { "piece" }))) + Traverse traverseAI = Traverse.Create(monsterAI); + Container closestContainer = null; + float closestDistance = 999999f; ; + foreach (Collider collider in Physics.OverlapSphere(center, Mathf.Max(range, 0), LayerMask.GetMask(new string[] { "piece" }))) + { + Container container = collider.transform.parent?.parent?.gameObject?.GetComponent(); + if (container?.GetComponent()?.IsValid() == true) { - Container container = collider.transform.parent?.parent?.gameObject?.GetComponent(); - if (container?.GetComponent()?.IsValid() != true) - continue; - if ((container.name.StartsWith("piece_chest") || container.name.StartsWith("Container")) && container.GetInventory() != null) + //Dbgl($"valid {Vector3.Distance(center, container.transform.position)}"); + if (container.name.StartsWith("piece_chest_trough") && container.GetInventory() != null) { - if (requireOnlyFood.Value) + //Dbgl($"trough {Vector3.Distance(center, container.transform.position)}"); + + float distance = Vector3.Distance(container.transform.position, center); + if (distance < moveProximity.Value + || traverseAI.Method("HavePath", new object[] { container.transform.position }).GetValue()) { - foreach(ItemDrop.ItemData item in container.GetInventory().GetAllItems()) + //Dbgl($"path {Vector3.Distance(center, container.transform.position)}"); + foreach (ItemDrop.ItemData item in container.GetInventory().GetAllItems()) { - if(!monsterAI.m_consumeItems.Exists(i => i.m_itemData.m_shared.m_name == item.m_shared.m_name)) - continue; + if (monsterAI.m_consumeItems.Exists(i => i.m_itemData.m_shared.m_name == item.m_shared.m_name)) + { + //Dbgl($"{monsterAI.gameObject.name} found suitable container at ({container.transform.position}, {Vector3.Distance(center, container.transform.position)})"); + if (closestDistance > distance) + { + closestContainer = container; + closestDistance = distance; + } + break; + } + //Dbgl($"no item"); } } - containers.Add(container); } } - containers.OrderBy(c => Vector3.Distance(c.transform.position, center)); - return containers; - } - catch - { - return new List(); } + + return closestContainer; } [HarmonyPatch(typeof(MonsterAI), "UpdateConsumeItem")] @@ -119,7 +129,7 @@ static class UpdateConsumeItem_Patch { static void Postfix(MonsterAI __instance, ZNetView ___m_nview, Character ___m_character, Tameable ___m_tamable, List ___m_consumeItems, float dt, bool __result) { - if (!modEnabled.Value || !isOn.Value || __result || !___m_character || !___m_nview || !___m_nview.IsOwner() || ___m_tamable == null || !___m_tamable.IsHungry() || ___m_consumeItems == null || ___m_consumeItems.Count == 0) + if (!modEnabled.Value || !isOn.Value || __result || !___m_character || !___m_nview || !___m_nview.IsOwner() || ___m_tamable == null || !___m_character.IsTamed() || !___m_tamable.IsHungry() || ___m_consumeItems == null || ___m_consumeItems.Count == 0) return; string name = GetPrefabName(__instance.gameObject.name); @@ -129,18 +139,18 @@ static void Postfix(MonsterAI __instance, ZNetView ___m_nview, Character ___m_ch return; } - var nearbyContainers = GetNearbyContainers(___m_character.gameObject.transform.position, containerRange.Value, __instance); + var nearbyContainer = FindClosestContainer(___m_character.gameObject.transform.position, containerRange.Value, __instance); using (List.Enumerator enumerator = __instance.m_consumeItems.GetEnumerator()) { while (enumerator.MoveNext()) { - foreach (Container c in nearbyContainers) + if (nearbyContainer != null) { - if (Utils.DistanceXZ(c.transform.position, __instance.transform.position) < moveProximity.Value && Mathf.Abs(c.transform.position.y - __instance.transform.position.y) > moveProximity.Value) + if (Utils.DistanceXZ(nearbyContainer.transform.position, __instance.transform.position) < moveProximity.Value && Mathf.Abs(nearbyContainer.transform.position.y - __instance.transform.position.y) > moveProximity.Value) continue; - ItemDrop.ItemData item = c.GetInventory().GetItem(enumerator.Current.m_itemData.m_shared.m_name); + ItemDrop.ItemData item = nearbyContainer.GetInventory().GetItem(enumerator.Current.m_itemData.m_shared.m_name); if (item != null) { if (feedDisallowTypes.Value.Split(',').Contains(item.m_dropPrefab.name)) @@ -151,13 +161,13 @@ static void Postfix(MonsterAI __instance, ZNetView ___m_nview, Character ___m_ch if (Time.time - lastFeed < 0.1) { feedCount++; - FeedAnimal(__instance, ___m_tamable, ___m_character, c, item, feedCount * 33); + FeedAnimal(__instance, ___m_tamable, ___m_character, nearbyContainer, item, feedCount * 33); } else { feedCount = 0; lastFeed = Time.time; - FeedAnimal(__instance, ___m_tamable, ___m_character, c, item, 0); + FeedAnimal(__instance, ___m_tamable, ___m_character, nearbyContainer, item, 0); } return; } @@ -182,8 +192,8 @@ public static async void FeedAnimal(MonsterAI monsterAI, Tameable tamable, Chara } } - - if (requireMove.Value) + string name = GetPrefabName(monsterAI.gameObject.name); + if (requireMove.Value && name != "Deer") { try { @@ -204,11 +214,8 @@ public static async void FeedAnimal(MonsterAI monsterAI, Tameable tamable, Chara traverseAI.Method("LookAt", new object[] { c.transform.position }).GetValue(); - if (!traverseAI.Method("IsLookingAt", new object[] { c.transform.position, 90f }).GetValue()) + if (!traverseAI.Method("IsLookingAt", new object[] { c.transform.position, 90f, false}).GetValue()) return; - - - traverseAI.Field("m_aiStatus").SetValue("Consume item"); } catch { @@ -233,26 +240,5 @@ private static void ConsumeItem(ItemDrop.ItemData item, MonsterAI monsterAI, Cha (character as Humanoid).m_consumeItemEffects.Create(character.transform.position, Quaternion.identity, null, 1f, -1); Traverse.Create(monsterAI).Field("m_animator").GetValue().SetTrigger("consume"); } - - [HarmonyPatch(typeof(Terminal), "InputText")] - static class InputText_Patch - { - static bool Prefix(Terminal __instance) - { - if (!modEnabled.Value) - return true; - string text = __instance.m_input.text; - if (text.ToLower().Equals($"{typeof(BepInExPlugin).Namespace.ToLower()} reset")) - { - context.Config.Reload(); - context.Config.Save(); - - __instance.AddString(text); - __instance.AddString($"{context.Info.Metadata.Name} config reloaded"); - return false; - } - return true; - } - } } } diff --git a/ValheimMods.sln b/ValheimMods.sln index f4aae77..0494086 100644 --- a/ValheimMods.sln +++ b/ValheimMods.sln @@ -243,275 +243,207 @@ Global EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {4679AA01-DD8C-473E-A88F-2B1D7A7306DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4679AA01-DD8C-473E-A88F-2B1D7A7306DC}.Debug|Any CPU.Build.0 = Debug|Any CPU {4679AA01-DD8C-473E-A88F-2B1D7A7306DC}.Release|Any CPU.ActiveCfg = Release|Any CPU {4679AA01-DD8C-473E-A88F-2B1D7A7306DC}.Release|Any CPU.Build.0 = Release|Any CPU {9A75D46F-077B-4719-ABEE-EA0934C070BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9A75D46F-077B-4719-ABEE-EA0934C070BC}.Debug|Any CPU.Build.0 = Debug|Any CPU {9A75D46F-077B-4719-ABEE-EA0934C070BC}.Release|Any CPU.ActiveCfg = Release|Any CPU {9A75D46F-077B-4719-ABEE-EA0934C070BC}.Release|Any CPU.Build.0 = Release|Any CPU {9C18D21E-6292-498C-95C8-F441224135B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9C18D21E-6292-498C-95C8-F441224135B5}.Debug|Any CPU.Build.0 = Debug|Any CPU {9C18D21E-6292-498C-95C8-F441224135B5}.Release|Any CPU.ActiveCfg = Release|Any CPU {9C18D21E-6292-498C-95C8-F441224135B5}.Release|Any CPU.Build.0 = Release|Any CPU {72A87FDD-73E4-4E8F-A866-0D7842D684C1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {72A87FDD-73E4-4E8F-A866-0D7842D684C1}.Debug|Any CPU.Build.0 = Debug|Any CPU {72A87FDD-73E4-4E8F-A866-0D7842D684C1}.Release|Any CPU.ActiveCfg = Release|Any CPU {72A87FDD-73E4-4E8F-A866-0D7842D684C1}.Release|Any CPU.Build.0 = Release|Any CPU {D19F8AE0-7192-42B5-94E9-30C8496F7394}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D19F8AE0-7192-42B5-94E9-30C8496F7394}.Debug|Any CPU.Build.0 = Debug|Any CPU {D19F8AE0-7192-42B5-94E9-30C8496F7394}.Release|Any CPU.ActiveCfg = Release|Any CPU {D19F8AE0-7192-42B5-94E9-30C8496F7394}.Release|Any CPU.Build.0 = Release|Any CPU {571E7C29-571A-41F0-9D93-2161DD20C36A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {571E7C29-571A-41F0-9D93-2161DD20C36A}.Debug|Any CPU.Build.0 = Debug|Any CPU {571E7C29-571A-41F0-9D93-2161DD20C36A}.Release|Any CPU.ActiveCfg = Release|Any CPU {571E7C29-571A-41F0-9D93-2161DD20C36A}.Release|Any CPU.Build.0 = Release|Any CPU {341D9492-226D-4381-9FDA-95DE6057033F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {341D9492-226D-4381-9FDA-95DE6057033F}.Debug|Any CPU.Build.0 = Debug|Any CPU {341D9492-226D-4381-9FDA-95DE6057033F}.Release|Any CPU.ActiveCfg = Release|Any CPU {341D9492-226D-4381-9FDA-95DE6057033F}.Release|Any CPU.Build.0 = Release|Any CPU {B827CA6A-3604-4617-A2B5-86D49F049F60}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B827CA6A-3604-4617-A2B5-86D49F049F60}.Debug|Any CPU.Build.0 = Debug|Any CPU {B827CA6A-3604-4617-A2B5-86D49F049F60}.Release|Any CPU.ActiveCfg = Release|Any CPU {B827CA6A-3604-4617-A2B5-86D49F049F60}.Release|Any CPU.Build.0 = Release|Any CPU {453B3B2F-54ED-42E3-995E-D306ECB518BA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {453B3B2F-54ED-42E3-995E-D306ECB518BA}.Debug|Any CPU.Build.0 = Debug|Any CPU {453B3B2F-54ED-42E3-995E-D306ECB518BA}.Release|Any CPU.ActiveCfg = Release|Any CPU {453B3B2F-54ED-42E3-995E-D306ECB518BA}.Release|Any CPU.Build.0 = Release|Any CPU {721B4F8C-9FC4-46A2-A359-2816E60F9488}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {721B4F8C-9FC4-46A2-A359-2816E60F9488}.Debug|Any CPU.Build.0 = Debug|Any CPU {721B4F8C-9FC4-46A2-A359-2816E60F9488}.Release|Any CPU.ActiveCfg = Release|Any CPU {721B4F8C-9FC4-46A2-A359-2816E60F9488}.Release|Any CPU.Build.0 = Release|Any CPU {F664E67E-D2B1-4AAE-B9E2-9E036BA3D2F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F664E67E-D2B1-4AAE-B9E2-9E036BA3D2F0}.Debug|Any CPU.Build.0 = Debug|Any CPU {F664E67E-D2B1-4AAE-B9E2-9E036BA3D2F0}.Release|Any CPU.ActiveCfg = Release|Any CPU {F664E67E-D2B1-4AAE-B9E2-9E036BA3D2F0}.Release|Any CPU.Build.0 = Release|Any CPU {332F7475-7977-44C3-A511-CB13C56A8BD8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {332F7475-7977-44C3-A511-CB13C56A8BD8}.Debug|Any CPU.Build.0 = Debug|Any CPU {332F7475-7977-44C3-A511-CB13C56A8BD8}.Release|Any CPU.ActiveCfg = Release|Any CPU {332F7475-7977-44C3-A511-CB13C56A8BD8}.Release|Any CPU.Build.0 = Release|Any CPU {FD08909F-E5D9-45E6-AAE9-15D3791105DB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FD08909F-E5D9-45E6-AAE9-15D3791105DB}.Debug|Any CPU.Build.0 = Debug|Any CPU {FD08909F-E5D9-45E6-AAE9-15D3791105DB}.Release|Any CPU.ActiveCfg = Release|Any CPU {FD08909F-E5D9-45E6-AAE9-15D3791105DB}.Release|Any CPU.Build.0 = Release|Any CPU {3E0DB48D-E00B-4B24-B252-F4BC859BC2B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3E0DB48D-E00B-4B24-B252-F4BC859BC2B5}.Debug|Any CPU.Build.0 = Debug|Any CPU {3E0DB48D-E00B-4B24-B252-F4BC859BC2B5}.Release|Any CPU.ActiveCfg = Release|Any CPU {3E0DB48D-E00B-4B24-B252-F4BC859BC2B5}.Release|Any CPU.Build.0 = Release|Any CPU {3CA2F556-BB70-402C-ADC3-AC6F0145B6E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3CA2F556-BB70-402C-ADC3-AC6F0145B6E8}.Debug|Any CPU.Build.0 = Debug|Any CPU {3CA2F556-BB70-402C-ADC3-AC6F0145B6E8}.Release|Any CPU.ActiveCfg = Release|Any CPU {3CA2F556-BB70-402C-ADC3-AC6F0145B6E8}.Release|Any CPU.Build.0 = Release|Any CPU {F5F0D897-CEFF-416C-A9F8-B7A4F434B830}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F5F0D897-CEFF-416C-A9F8-B7A4F434B830}.Debug|Any CPU.Build.0 = Debug|Any CPU {F5F0D897-CEFF-416C-A9F8-B7A4F434B830}.Release|Any CPU.ActiveCfg = Release|Any CPU {F5F0D897-CEFF-416C-A9F8-B7A4F434B830}.Release|Any CPU.Build.0 = Release|Any CPU {310FBC9C-4084-4D42-AF12-02DB7AAECD28}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {310FBC9C-4084-4D42-AF12-02DB7AAECD28}.Debug|Any CPU.Build.0 = Debug|Any CPU {310FBC9C-4084-4D42-AF12-02DB7AAECD28}.Release|Any CPU.ActiveCfg = Release|Any CPU {310FBC9C-4084-4D42-AF12-02DB7AAECD28}.Release|Any CPU.Build.0 = Release|Any CPU {B60664F7-A85E-4302-B5C5-C475C1ABF8D3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B60664F7-A85E-4302-B5C5-C475C1ABF8D3}.Debug|Any CPU.Build.0 = Debug|Any CPU {B60664F7-A85E-4302-B5C5-C475C1ABF8D3}.Release|Any CPU.ActiveCfg = Release|Any CPU {B60664F7-A85E-4302-B5C5-C475C1ABF8D3}.Release|Any CPU.Build.0 = Release|Any CPU {0473B5A9-FABE-441F-A1CE-E3E77F61F098}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0473B5A9-FABE-441F-A1CE-E3E77F61F098}.Debug|Any CPU.Build.0 = Debug|Any CPU {0473B5A9-FABE-441F-A1CE-E3E77F61F098}.Release|Any CPU.ActiveCfg = Release|Any CPU {0473B5A9-FABE-441F-A1CE-E3E77F61F098}.Release|Any CPU.Build.0 = Release|Any CPU {46E92BC8-73B2-4C97-A55E-9B0385F496A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {46E92BC8-73B2-4C97-A55E-9B0385F496A9}.Debug|Any CPU.Build.0 = Debug|Any CPU {46E92BC8-73B2-4C97-A55E-9B0385F496A9}.Release|Any CPU.ActiveCfg = Release|Any CPU {46E92BC8-73B2-4C97-A55E-9B0385F496A9}.Release|Any CPU.Build.0 = Release|Any CPU {87660053-76CB-449E-9AB1-E750F55A0B4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {87660053-76CB-449E-9AB1-E750F55A0B4D}.Debug|Any CPU.Build.0 = Debug|Any CPU {87660053-76CB-449E-9AB1-E750F55A0B4D}.Release|Any CPU.ActiveCfg = Release|Any CPU {87660053-76CB-449E-9AB1-E750F55A0B4D}.Release|Any CPU.Build.0 = Release|Any CPU {F98B7653-0348-40D0-90F0-1D46880CF9AD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F98B7653-0348-40D0-90F0-1D46880CF9AD}.Debug|Any CPU.Build.0 = Debug|Any CPU {F98B7653-0348-40D0-90F0-1D46880CF9AD}.Release|Any CPU.ActiveCfg = Release|Any CPU {F98B7653-0348-40D0-90F0-1D46880CF9AD}.Release|Any CPU.Build.0 = Release|Any CPU {05E33387-F302-4EB9-B002-7DF95DD37CE7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {05E33387-F302-4EB9-B002-7DF95DD37CE7}.Debug|Any CPU.Build.0 = Debug|Any CPU {05E33387-F302-4EB9-B002-7DF95DD37CE7}.Release|Any CPU.ActiveCfg = Release|Any CPU {05E33387-F302-4EB9-B002-7DF95DD37CE7}.Release|Any CPU.Build.0 = Release|Any CPU {FC9E944F-8834-491C-A165-0DABFE80FDD6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FC9E944F-8834-491C-A165-0DABFE80FDD6}.Debug|Any CPU.Build.0 = Debug|Any CPU {FC9E944F-8834-491C-A165-0DABFE80FDD6}.Release|Any CPU.ActiveCfg = Release|Any CPU {FC9E944F-8834-491C-A165-0DABFE80FDD6}.Release|Any CPU.Build.0 = Release|Any CPU {766FBAFB-85B1-49D1-B262-98DDCFDB668D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {766FBAFB-85B1-49D1-B262-98DDCFDB668D}.Debug|Any CPU.Build.0 = Debug|Any CPU {766FBAFB-85B1-49D1-B262-98DDCFDB668D}.Release|Any CPU.ActiveCfg = Release|Any CPU {766FBAFB-85B1-49D1-B262-98DDCFDB668D}.Release|Any CPU.Build.0 = Release|Any CPU {6BCB72BB-3244-42B5-B283-0C080AD73EA7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6BCB72BB-3244-42B5-B283-0C080AD73EA7}.Debug|Any CPU.Build.0 = Debug|Any CPU {6BCB72BB-3244-42B5-B283-0C080AD73EA7}.Release|Any CPU.ActiveCfg = Release|Any CPU {6BCB72BB-3244-42B5-B283-0C080AD73EA7}.Release|Any CPU.Build.0 = Release|Any CPU {E6159595-5A40-4248-932C-98624B950FBF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E6159595-5A40-4248-932C-98624B950FBF}.Debug|Any CPU.Build.0 = Debug|Any CPU {E6159595-5A40-4248-932C-98624B950FBF}.Release|Any CPU.ActiveCfg = Release|Any CPU {E6159595-5A40-4248-932C-98624B950FBF}.Release|Any CPU.Build.0 = Release|Any CPU {BD7C5A4A-A394-4961-9DAC-3F6CF4203D57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BD7C5A4A-A394-4961-9DAC-3F6CF4203D57}.Debug|Any CPU.Build.0 = Debug|Any CPU {BD7C5A4A-A394-4961-9DAC-3F6CF4203D57}.Release|Any CPU.ActiveCfg = Release|Any CPU {BD7C5A4A-A394-4961-9DAC-3F6CF4203D57}.Release|Any CPU.Build.0 = Release|Any CPU {85610E11-6796-40FB-9E7B-32C5CA7C14A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {85610E11-6796-40FB-9E7B-32C5CA7C14A2}.Debug|Any CPU.Build.0 = Debug|Any CPU {85610E11-6796-40FB-9E7B-32C5CA7C14A2}.Release|Any CPU.ActiveCfg = Release|Any CPU {85610E11-6796-40FB-9E7B-32C5CA7C14A2}.Release|Any CPU.Build.0 = Release|Any CPU {EBBED5D5-6E40-4F03-A355-4D0F57E05FDA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EBBED5D5-6E40-4F03-A355-4D0F57E05FDA}.Debug|Any CPU.Build.0 = Debug|Any CPU {EBBED5D5-6E40-4F03-A355-4D0F57E05FDA}.Release|Any CPU.ActiveCfg = Release|Any CPU {EBBED5D5-6E40-4F03-A355-4D0F57E05FDA}.Release|Any CPU.Build.0 = Release|Any CPU {110352B6-6B4A-4172-898F-84018761AF2E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {110352B6-6B4A-4172-898F-84018761AF2E}.Debug|Any CPU.Build.0 = Debug|Any CPU {110352B6-6B4A-4172-898F-84018761AF2E}.Release|Any CPU.ActiveCfg = Release|Any CPU {110352B6-6B4A-4172-898F-84018761AF2E}.Release|Any CPU.Build.0 = Release|Any CPU {84C8AB36-5D72-41C3-B9C4-F00BB2850C17}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {84C8AB36-5D72-41C3-B9C4-F00BB2850C17}.Debug|Any CPU.Build.0 = Debug|Any CPU {84C8AB36-5D72-41C3-B9C4-F00BB2850C17}.Release|Any CPU.ActiveCfg = Release|Any CPU {84C8AB36-5D72-41C3-B9C4-F00BB2850C17}.Release|Any CPU.Build.0 = Release|Any CPU {96DE9EC4-ACC8-4D91-9E2D-D6D52A9B5425}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {96DE9EC4-ACC8-4D91-9E2D-D6D52A9B5425}.Debug|Any CPU.Build.0 = Debug|Any CPU {96DE9EC4-ACC8-4D91-9E2D-D6D52A9B5425}.Release|Any CPU.ActiveCfg = Release|Any CPU {96DE9EC4-ACC8-4D91-9E2D-D6D52A9B5425}.Release|Any CPU.Build.0 = Release|Any CPU {E9EDC6FF-AB75-4487-9D45-D60A9EDC7789}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E9EDC6FF-AB75-4487-9D45-D60A9EDC7789}.Debug|Any CPU.Build.0 = Debug|Any CPU {E9EDC6FF-AB75-4487-9D45-D60A9EDC7789}.Release|Any CPU.ActiveCfg = Release|Any CPU {E9EDC6FF-AB75-4487-9D45-D60A9EDC7789}.Release|Any CPU.Build.0 = Release|Any CPU {F98C028D-737B-41B1-AC78-AA89839F5655}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F98C028D-737B-41B1-AC78-AA89839F5655}.Debug|Any CPU.Build.0 = Debug|Any CPU {F98C028D-737B-41B1-AC78-AA89839F5655}.Release|Any CPU.ActiveCfg = Release|Any CPU {F98C028D-737B-41B1-AC78-AA89839F5655}.Release|Any CPU.Build.0 = Release|Any CPU {197882E5-903E-40FD-9963-3AFAFFC85978}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {197882E5-903E-40FD-9963-3AFAFFC85978}.Debug|Any CPU.Build.0 = Debug|Any CPU {197882E5-903E-40FD-9963-3AFAFFC85978}.Release|Any CPU.ActiveCfg = Release|Any CPU {197882E5-903E-40FD-9963-3AFAFFC85978}.Release|Any CPU.Build.0 = Release|Any CPU {DFA917A1-CFF4-454A-AE3F-38412D10B297}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DFA917A1-CFF4-454A-AE3F-38412D10B297}.Debug|Any CPU.Build.0 = Debug|Any CPU {DFA917A1-CFF4-454A-AE3F-38412D10B297}.Release|Any CPU.ActiveCfg = Release|Any CPU {DFA917A1-CFF4-454A-AE3F-38412D10B297}.Release|Any CPU.Build.0 = Release|Any CPU {D958DE95-7E2B-49B2-B2D9-866CC4F6D3F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D958DE95-7E2B-49B2-B2D9-866CC4F6D3F0}.Debug|Any CPU.Build.0 = Debug|Any CPU {D958DE95-7E2B-49B2-B2D9-866CC4F6D3F0}.Release|Any CPU.ActiveCfg = Release|Any CPU {D958DE95-7E2B-49B2-B2D9-866CC4F6D3F0}.Release|Any CPU.Build.0 = Release|Any CPU {EFF3C72E-CA27-4290-9869-44308747E719}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EFF3C72E-CA27-4290-9869-44308747E719}.Debug|Any CPU.Build.0 = Debug|Any CPU {EFF3C72E-CA27-4290-9869-44308747E719}.Release|Any CPU.ActiveCfg = Release|Any CPU {EFF3C72E-CA27-4290-9869-44308747E719}.Release|Any CPU.Build.0 = Release|Any CPU {E1E0580B-4932-44CA-A94D-B29FCF947D19}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E1E0580B-4932-44CA-A94D-B29FCF947D19}.Debug|Any CPU.Build.0 = Debug|Any CPU {E1E0580B-4932-44CA-A94D-B29FCF947D19}.Release|Any CPU.ActiveCfg = Release|Any CPU {E1E0580B-4932-44CA-A94D-B29FCF947D19}.Release|Any CPU.Build.0 = Release|Any CPU {F67BE8BE-C23C-4F9B-A91D-7B77AD1E8D55}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F67BE8BE-C23C-4F9B-A91D-7B77AD1E8D55}.Debug|Any CPU.Build.0 = Debug|Any CPU {F67BE8BE-C23C-4F9B-A91D-7B77AD1E8D55}.Release|Any CPU.ActiveCfg = Release|Any CPU {F67BE8BE-C23C-4F9B-A91D-7B77AD1E8D55}.Release|Any CPU.Build.0 = Release|Any CPU {7CA0E23D-7255-481D-966C-DD24AD9A85D0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7CA0E23D-7255-481D-966C-DD24AD9A85D0}.Debug|Any CPU.Build.0 = Debug|Any CPU {7CA0E23D-7255-481D-966C-DD24AD9A85D0}.Release|Any CPU.ActiveCfg = Release|Any CPU {7CA0E23D-7255-481D-966C-DD24AD9A85D0}.Release|Any CPU.Build.0 = Release|Any CPU {DA998B9B-ABEA-4389-82A8-1FCA3368ECE3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DA998B9B-ABEA-4389-82A8-1FCA3368ECE3}.Debug|Any CPU.Build.0 = Debug|Any CPU {DA998B9B-ABEA-4389-82A8-1FCA3368ECE3}.Release|Any CPU.ActiveCfg = Release|Any CPU {DA998B9B-ABEA-4389-82A8-1FCA3368ECE3}.Release|Any CPU.Build.0 = Release|Any CPU {56A9443B-6C54-4C7A-84E8-C5CBDBA0E6FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {56A9443B-6C54-4C7A-84E8-C5CBDBA0E6FD}.Debug|Any CPU.Build.0 = Debug|Any CPU {56A9443B-6C54-4C7A-84E8-C5CBDBA0E6FD}.Release|Any CPU.ActiveCfg = Release|Any CPU {56A9443B-6C54-4C7A-84E8-C5CBDBA0E6FD}.Release|Any CPU.Build.0 = Release|Any CPU {C3ADDFBA-2DAE-4AD4-B99F-EBC0990D5E7F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C3ADDFBA-2DAE-4AD4-B99F-EBC0990D5E7F}.Debug|Any CPU.Build.0 = Debug|Any CPU {C3ADDFBA-2DAE-4AD4-B99F-EBC0990D5E7F}.Release|Any CPU.ActiveCfg = Release|Any CPU {C3ADDFBA-2DAE-4AD4-B99F-EBC0990D5E7F}.Release|Any CPU.Build.0 = Release|Any CPU {FD682840-FDBD-4548-84FB-0A1B153A82DA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FD682840-FDBD-4548-84FB-0A1B153A82DA}.Debug|Any CPU.Build.0 = Debug|Any CPU {FD682840-FDBD-4548-84FB-0A1B153A82DA}.Release|Any CPU.ActiveCfg = Release|Any CPU {FD682840-FDBD-4548-84FB-0A1B153A82DA}.Release|Any CPU.Build.0 = Release|Any CPU {DFC06E5E-D824-4A04-A72D-1984C77AA300}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DFC06E5E-D824-4A04-A72D-1984C77AA300}.Debug|Any CPU.Build.0 = Debug|Any CPU {DFC06E5E-D824-4A04-A72D-1984C77AA300}.Release|Any CPU.ActiveCfg = Release|Any CPU {DFC06E5E-D824-4A04-A72D-1984C77AA300}.Release|Any CPU.Build.0 = Release|Any CPU {5A03AFEC-CBFE-460E-B7DE-CEF3275C2D98}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5A03AFEC-CBFE-460E-B7DE-CEF3275C2D98}.Debug|Any CPU.Build.0 = Debug|Any CPU {5A03AFEC-CBFE-460E-B7DE-CEF3275C2D98}.Release|Any CPU.ActiveCfg = Release|Any CPU {5A03AFEC-CBFE-460E-B7DE-CEF3275C2D98}.Release|Any CPU.Build.0 = Release|Any CPU {DEC85537-0690-45D5-BD02-8BC28F67443D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DEC85537-0690-45D5-BD02-8BC28F67443D}.Debug|Any CPU.Build.0 = Debug|Any CPU {DEC85537-0690-45D5-BD02-8BC28F67443D}.Release|Any CPU.ActiveCfg = Release|Any CPU {DEC85537-0690-45D5-BD02-8BC28F67443D}.Release|Any CPU.Build.0 = Release|Any CPU {080E3A8C-7284-45FE-865D-CBC07C4725CF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {080E3A8C-7284-45FE-865D-CBC07C4725CF}.Debug|Any CPU.Build.0 = Debug|Any CPU {080E3A8C-7284-45FE-865D-CBC07C4725CF}.Release|Any CPU.ActiveCfg = Release|Any CPU {080E3A8C-7284-45FE-865D-CBC07C4725CF}.Release|Any CPU.Build.0 = Release|Any CPU {EF6F8026-740F-4E17-A09F-3EEAC37319A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EF6F8026-740F-4E17-A09F-3EEAC37319A5}.Debug|Any CPU.Build.0 = Debug|Any CPU {EF6F8026-740F-4E17-A09F-3EEAC37319A5}.Release|Any CPU.ActiveCfg = Release|Any CPU {EF6F8026-740F-4E17-A09F-3EEAC37319A5}.Release|Any CPU.Build.0 = Release|Any CPU {612657EF-E3FD-4D61-98C2-66D191CCC1D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {612657EF-E3FD-4D61-98C2-66D191CCC1D9}.Debug|Any CPU.Build.0 = Debug|Any CPU {612657EF-E3FD-4D61-98C2-66D191CCC1D9}.Release|Any CPU.ActiveCfg = Release|Any CPU {612657EF-E3FD-4D61-98C2-66D191CCC1D9}.Release|Any CPU.Build.0 = Release|Any CPU {6ABC7498-9885-4913-865C-017090A58FEE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6ABC7498-9885-4913-865C-017090A58FEE}.Debug|Any CPU.Build.0 = Debug|Any CPU {6ABC7498-9885-4913-865C-017090A58FEE}.Release|Any CPU.ActiveCfg = Release|Any CPU {6ABC7498-9885-4913-865C-017090A58FEE}.Release|Any CPU.Build.0 = Release|Any CPU {E4A787A2-D08D-4F41-A287-800093FFCFCB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E4A787A2-D08D-4F41-A287-800093FFCFCB}.Debug|Any CPU.Build.0 = Debug|Any CPU {E4A787A2-D08D-4F41-A287-800093FFCFCB}.Release|Any CPU.ActiveCfg = Release|Any CPU {E4A787A2-D08D-4F41-A287-800093FFCFCB}.Release|Any CPU.Build.0 = Release|Any CPU {430D8DC6-D188-4D3C-8EC4-D67065267320}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {430D8DC6-D188-4D3C-8EC4-D67065267320}.Debug|Any CPU.Build.0 = Debug|Any CPU {430D8DC6-D188-4D3C-8EC4-D67065267320}.Release|Any CPU.ActiveCfg = Release|Any CPU {430D8DC6-D188-4D3C-8EC4-D67065267320}.Release|Any CPU.Build.0 = Release|Any CPU {348B29C1-CBCE-41BA-A524-60B9FBC49757}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {348B29C1-CBCE-41BA-A524-60B9FBC49757}.Debug|Any CPU.Build.0 = Debug|Any CPU {348B29C1-CBCE-41BA-A524-60B9FBC49757}.Release|Any CPU.ActiveCfg = Release|Any CPU {348B29C1-CBCE-41BA-A524-60B9FBC49757}.Release|Any CPU.Build.0 = Release|Any CPU {104215E5-C277-4D43-A52C-B31467312299}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {104215E5-C277-4D43-A52C-B31467312299}.Debug|Any CPU.Build.0 = Debug|Any CPU {104215E5-C277-4D43-A52C-B31467312299}.Release|Any CPU.ActiveCfg = Release|Any CPU {104215E5-C277-4D43-A52C-B31467312299}.Release|Any CPU.Build.0 = Release|Any CPU {844E25D7-5D76-43C4-AC56-5136E801084D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {844E25D7-5D76-43C4-AC56-5136E801084D}.Debug|Any CPU.Build.0 = Debug|Any CPU {844E25D7-5D76-43C4-AC56-5136E801084D}.Release|Any CPU.ActiveCfg = Release|Any CPU {844E25D7-5D76-43C4-AC56-5136E801084D}.Release|Any CPU.Build.0 = Release|Any CPU {EA29414E-93F8-472B-90AF-B46D5F2C0C2C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EA29414E-93F8-472B-90AF-B46D5F2C0C2C}.Debug|Any CPU.Build.0 = Debug|Any CPU {EA29414E-93F8-472B-90AF-B46D5F2C0C2C}.Release|Any CPU.ActiveCfg = Release|Any CPU {EA29414E-93F8-472B-90AF-B46D5F2C0C2C}.Release|Any CPU.Build.0 = Release|Any CPU {6BB20CFB-D3F8-4C89-98C0-5FC2C6B31372}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6BB20CFB-D3F8-4C89-98C0-5FC2C6B31372}.Debug|Any CPU.Build.0 = Debug|Any CPU {6BB20CFB-D3F8-4C89-98C0-5FC2C6B31372}.Release|Any CPU.ActiveCfg = Release|Any CPU {6BB20CFB-D3F8-4C89-98C0-5FC2C6B31372}.Release|Any CPU.Build.0 = Release|Any CPU {155A25D0-60B0-4D1C-B53A-6A262612B02B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {155A25D0-60B0-4D1C-B53A-6A262612B02B}.Debug|Any CPU.Build.0 = Debug|Any CPU {155A25D0-60B0-4D1C-B53A-6A262612B02B}.Release|Any CPU.ActiveCfg = Release|Any CPU {155A25D0-60B0-4D1C-B53A-6A262612B02B}.Release|Any CPU.Build.0 = Release|Any CPU {F3FE9EEB-505D-4BBB-A164-DCA766BF42B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F3FE9EEB-505D-4BBB-A164-DCA766BF42B5}.Debug|Any CPU.Build.0 = Debug|Any CPU {F3FE9EEB-505D-4BBB-A164-DCA766BF42B5}.Release|Any CPU.ActiveCfg = Release|Any CPU {F3FE9EEB-505D-4BBB-A164-DCA766BF42B5}.Release|Any CPU.Build.0 = Release|Any CPU {0B6AFC30-0900-490A-88B4-96B779519B9D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0B6AFC30-0900-490A-88B4-96B779519B9D}.Debug|Any CPU.Build.0 = Debug|Any CPU {0B6AFC30-0900-490A-88B4-96B779519B9D}.Release|Any CPU.ActiveCfg = Release|Any CPU {0B6AFC30-0900-490A-88B4-96B779519B9D}.Release|Any CPU.Build.0 = Release|Any CPU {65432E8F-25EC-459C-911E-F1344A9BC012}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {65432E8F-25EC-459C-911E-F1344A9BC012}.Debug|Any CPU.Build.0 = Debug|Any CPU {65432E8F-25EC-459C-911E-F1344A9BC012}.Release|Any CPU.ActiveCfg = Release|Any CPU {65432E8F-25EC-459C-911E-F1344A9BC012}.Release|Any CPU.Build.0 = Release|Any CPU {4AA627B6-66EE-4A52-8983-28ADA518C735}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4AA627B6-66EE-4A52-8983-28ADA518C735}.Debug|Any CPU.Build.0 = Debug|Any CPU {4AA627B6-66EE-4A52-8983-28ADA518C735}.Release|Any CPU.ActiveCfg = Release|Any CPU {4AA627B6-66EE-4A52-8983-28ADA518C735}.Release|Any CPU.Build.0 = Release|Any CPU {779BE120-644F-4AB1-A6B6-D684738E7473}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {779BE120-644F-4AB1-A6B6-D684738E7473}.Debug|Any CPU.Build.0 = Debug|Any CPU {779BE120-644F-4AB1-A6B6-D684738E7473}.Release|Any CPU.ActiveCfg = Release|Any CPU {779BE120-644F-4AB1-A6B6-D684738E7473}.Release|Any CPU.Build.0 = Release|Any CPU {2A3A0C62-40E5-4D77-AE6E-6466D8AD7648}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2A3A0C62-40E5-4D77-AE6E-6466D8AD7648}.Debug|Any CPU.Build.0 = Debug|Any CPU {2A3A0C62-40E5-4D77-AE6E-6466D8AD7648}.Release|Any CPU.ActiveCfg = Release|Any CPU {2A3A0C62-40E5-4D77-AE6E-6466D8AD7648}.Release|Any CPU.Build.0 = Release|Any CPU {D9807E29-FF87-497E-A460-70742308C97E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D9807E29-FF87-497E-A460-70742308C97E}.Debug|Any CPU.Build.0 = Debug|Any CPU {D9807E29-FF87-497E-A460-70742308C97E}.Release|Any CPU.ActiveCfg = Release|Any CPU {D9807E29-FF87-497E-A460-70742308C97E}.Release|Any CPU.Build.0 = Release|Any CPU {4A4941B7-3227-4D66-AE89-D9FFD36996C4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU @@ -519,127 +451,96 @@ Global {4A4941B7-3227-4D66-AE89-D9FFD36996C4}.Release|Any CPU.ActiveCfg = Release|Any CPU {4A4941B7-3227-4D66-AE89-D9FFD36996C4}.Release|Any CPU.Build.0 = Release|Any CPU {8A279F25-FDA7-4D4B-8D6F-BC6D1AD3B7AE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8A279F25-FDA7-4D4B-8D6F-BC6D1AD3B7AE}.Debug|Any CPU.Build.0 = Debug|Any CPU {8A279F25-FDA7-4D4B-8D6F-BC6D1AD3B7AE}.Release|Any CPU.ActiveCfg = Release|Any CPU {8A279F25-FDA7-4D4B-8D6F-BC6D1AD3B7AE}.Release|Any CPU.Build.0 = Release|Any CPU {3860C0FF-3BB7-4B41-A635-00C7CB53226D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3860C0FF-3BB7-4B41-A635-00C7CB53226D}.Debug|Any CPU.Build.0 = Debug|Any CPU {3860C0FF-3BB7-4B41-A635-00C7CB53226D}.Release|Any CPU.ActiveCfg = Release|Any CPU {3860C0FF-3BB7-4B41-A635-00C7CB53226D}.Release|Any CPU.Build.0 = Release|Any CPU {4C30DAEE-FAFD-4CA0-93B2-316F772D06BA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4C30DAEE-FAFD-4CA0-93B2-316F772D06BA}.Debug|Any CPU.Build.0 = Debug|Any CPU {4C30DAEE-FAFD-4CA0-93B2-316F772D06BA}.Release|Any CPU.ActiveCfg = Release|Any CPU {4C30DAEE-FAFD-4CA0-93B2-316F772D06BA}.Release|Any CPU.Build.0 = Release|Any CPU {5434D738-3B1F-4C7E-8805-AF3A7310A9F7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5434D738-3B1F-4C7E-8805-AF3A7310A9F7}.Debug|Any CPU.Build.0 = Debug|Any CPU {5434D738-3B1F-4C7E-8805-AF3A7310A9F7}.Release|Any CPU.ActiveCfg = Release|Any CPU {5434D738-3B1F-4C7E-8805-AF3A7310A9F7}.Release|Any CPU.Build.0 = Release|Any CPU {3C71E421-2A98-4B06-B708-888E5E77D7F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3C71E421-2A98-4B06-B708-888E5E77D7F3}.Debug|Any CPU.Build.0 = Debug|Any CPU {3C71E421-2A98-4B06-B708-888E5E77D7F3}.Release|Any CPU.ActiveCfg = Release|Any CPU {3C71E421-2A98-4B06-B708-888E5E77D7F3}.Release|Any CPU.Build.0 = Release|Any CPU {C0BD6D8D-50BD-4C80-BD59-1AFB17E146C3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C0BD6D8D-50BD-4C80-BD59-1AFB17E146C3}.Debug|Any CPU.Build.0 = Debug|Any CPU {C0BD6D8D-50BD-4C80-BD59-1AFB17E146C3}.Release|Any CPU.ActiveCfg = Release|Any CPU {C0BD6D8D-50BD-4C80-BD59-1AFB17E146C3}.Release|Any CPU.Build.0 = Release|Any CPU {2A3431AE-002D-4B07-B681-21942166995C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2A3431AE-002D-4B07-B681-21942166995C}.Debug|Any CPU.Build.0 = Debug|Any CPU {2A3431AE-002D-4B07-B681-21942166995C}.Release|Any CPU.ActiveCfg = Release|Any CPU {2A3431AE-002D-4B07-B681-21942166995C}.Release|Any CPU.Build.0 = Release|Any CPU {A775ED6F-5FD3-4315-BD97-537BF9999300}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A775ED6F-5FD3-4315-BD97-537BF9999300}.Debug|Any CPU.Build.0 = Debug|Any CPU {A775ED6F-5FD3-4315-BD97-537BF9999300}.Release|Any CPU.ActiveCfg = Release|Any CPU {A775ED6F-5FD3-4315-BD97-537BF9999300}.Release|Any CPU.Build.0 = Release|Any CPU {9A3F6016-5760-4975-8217-5731AC5E8AB4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9A3F6016-5760-4975-8217-5731AC5E8AB4}.Debug|Any CPU.Build.0 = Debug|Any CPU {9A3F6016-5760-4975-8217-5731AC5E8AB4}.Release|Any CPU.ActiveCfg = Release|Any CPU {9A3F6016-5760-4975-8217-5731AC5E8AB4}.Release|Any CPU.Build.0 = Release|Any CPU {0EFD1FBE-B627-4680-9A66-B95AA347EB48}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0EFD1FBE-B627-4680-9A66-B95AA347EB48}.Debug|Any CPU.Build.0 = Debug|Any CPU {0EFD1FBE-B627-4680-9A66-B95AA347EB48}.Release|Any CPU.ActiveCfg = Release|Any CPU {0EFD1FBE-B627-4680-9A66-B95AA347EB48}.Release|Any CPU.Build.0 = Release|Any CPU {765DCF89-5FB5-4508-AB77-112EE42C7038}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {765DCF89-5FB5-4508-AB77-112EE42C7038}.Debug|Any CPU.Build.0 = Debug|Any CPU {765DCF89-5FB5-4508-AB77-112EE42C7038}.Release|Any CPU.ActiveCfg = Release|Any CPU {765DCF89-5FB5-4508-AB77-112EE42C7038}.Release|Any CPU.Build.0 = Release|Any CPU {F548BD14-E8AA-4223-B6E1-4307267A8D8F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F548BD14-E8AA-4223-B6E1-4307267A8D8F}.Debug|Any CPU.Build.0 = Debug|Any CPU {F548BD14-E8AA-4223-B6E1-4307267A8D8F}.Release|Any CPU.ActiveCfg = Release|Any CPU {F548BD14-E8AA-4223-B6E1-4307267A8D8F}.Release|Any CPU.Build.0 = Release|Any CPU {C895D63B-7C0B-4C7E-BF79-E95B4DEED088}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C895D63B-7C0B-4C7E-BF79-E95B4DEED088}.Debug|Any CPU.Build.0 = Debug|Any CPU {C895D63B-7C0B-4C7E-BF79-E95B4DEED088}.Release|Any CPU.ActiveCfg = Release|Any CPU {C895D63B-7C0B-4C7E-BF79-E95B4DEED088}.Release|Any CPU.Build.0 = Release|Any CPU {94812B4A-CEFA-453C-BFF1-31C702D17C8B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {94812B4A-CEFA-453C-BFF1-31C702D17C8B}.Debug|Any CPU.Build.0 = Debug|Any CPU {94812B4A-CEFA-453C-BFF1-31C702D17C8B}.Release|Any CPU.ActiveCfg = Release|Any CPU {94812B4A-CEFA-453C-BFF1-31C702D17C8B}.Release|Any CPU.Build.0 = Release|Any CPU {D08034EB-046A-4811-A84B-55A4DB3386D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D08034EB-046A-4811-A84B-55A4DB3386D4}.Debug|Any CPU.Build.0 = Debug|Any CPU {D08034EB-046A-4811-A84B-55A4DB3386D4}.Release|Any CPU.ActiveCfg = Release|Any CPU {D08034EB-046A-4811-A84B-55A4DB3386D4}.Release|Any CPU.Build.0 = Release|Any CPU {DA3D9481-22D5-427A-9ECB-F60644FCAB78}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DA3D9481-22D5-427A-9ECB-F60644FCAB78}.Debug|Any CPU.Build.0 = Debug|Any CPU {DA3D9481-22D5-427A-9ECB-F60644FCAB78}.Release|Any CPU.ActiveCfg = Release|Any CPU {DA3D9481-22D5-427A-9ECB-F60644FCAB78}.Release|Any CPU.Build.0 = Release|Any CPU {FD5B3515-66D6-4724-99D2-805B8D35966C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FD5B3515-66D6-4724-99D2-805B8D35966C}.Debug|Any CPU.Build.0 = Debug|Any CPU {FD5B3515-66D6-4724-99D2-805B8D35966C}.Release|Any CPU.ActiveCfg = Release|Any CPU {FD5B3515-66D6-4724-99D2-805B8D35966C}.Release|Any CPU.Build.0 = Release|Any CPU {27964F69-935D-4366-9B2B-0632189C2B20}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {27964F69-935D-4366-9B2B-0632189C2B20}.Debug|Any CPU.Build.0 = Debug|Any CPU {27964F69-935D-4366-9B2B-0632189C2B20}.Release|Any CPU.ActiveCfg = Release|Any CPU {27964F69-935D-4366-9B2B-0632189C2B20}.Release|Any CPU.Build.0 = Release|Any CPU {DCFD5456-8398-4A2B-8FF8-9A710D3DC29C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DCFD5456-8398-4A2B-8FF8-9A710D3DC29C}.Debug|Any CPU.Build.0 = Debug|Any CPU {DCFD5456-8398-4A2B-8FF8-9A710D3DC29C}.Release|Any CPU.ActiveCfg = Release|Any CPU {DCFD5456-8398-4A2B-8FF8-9A710D3DC29C}.Release|Any CPU.Build.0 = Release|Any CPU {683CB9AD-97C5-4EEA-8E12-80086B3C5380}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {683CB9AD-97C5-4EEA-8E12-80086B3C5380}.Debug|Any CPU.Build.0 = Debug|Any CPU {683CB9AD-97C5-4EEA-8E12-80086B3C5380}.Release|Any CPU.ActiveCfg = Release|Any CPU {683CB9AD-97C5-4EEA-8E12-80086B3C5380}.Release|Any CPU.Build.0 = Release|Any CPU {01EF2E61-7968-4D38-9AAC-F719601F34C4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {01EF2E61-7968-4D38-9AAC-F719601F34C4}.Debug|Any CPU.Build.0 = Debug|Any CPU {01EF2E61-7968-4D38-9AAC-F719601F34C4}.Release|Any CPU.ActiveCfg = Release|Any CPU {01EF2E61-7968-4D38-9AAC-F719601F34C4}.Release|Any CPU.Build.0 = Release|Any CPU {B3F320B3-ECF4-4CCB-95E7-203794224C4F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B3F320B3-ECF4-4CCB-95E7-203794224C4F}.Debug|Any CPU.Build.0 = Debug|Any CPU {B3F320B3-ECF4-4CCB-95E7-203794224C4F}.Release|Any CPU.ActiveCfg = Release|Any CPU {B3F320B3-ECF4-4CCB-95E7-203794224C4F}.Release|Any CPU.Build.0 = Release|Any CPU {CFBE6C20-076E-4427-BA49-557753ECDB09}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CFBE6C20-076E-4427-BA49-557753ECDB09}.Debug|Any CPU.Build.0 = Debug|Any CPU {CFBE6C20-076E-4427-BA49-557753ECDB09}.Release|Any CPU.ActiveCfg = Release|Any CPU {CFBE6C20-076E-4427-BA49-557753ECDB09}.Release|Any CPU.Build.0 = Release|Any CPU {A8848F4C-E3C6-49DC-98F9-3E2065B24B46}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A8848F4C-E3C6-49DC-98F9-3E2065B24B46}.Debug|Any CPU.Build.0 = Debug|Any CPU {A8848F4C-E3C6-49DC-98F9-3E2065B24B46}.Release|Any CPU.ActiveCfg = Release|Any CPU {A8848F4C-E3C6-49DC-98F9-3E2065B24B46}.Release|Any CPU.Build.0 = Release|Any CPU {0ED8CD74-BB01-4F5B-AB14-7D88515A0882}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0ED8CD74-BB01-4F5B-AB14-7D88515A0882}.Debug|Any CPU.Build.0 = Debug|Any CPU {0ED8CD74-BB01-4F5B-AB14-7D88515A0882}.Release|Any CPU.ActiveCfg = Release|Any CPU {0ED8CD74-BB01-4F5B-AB14-7D88515A0882}.Release|Any CPU.Build.0 = Release|Any CPU {83CA0D39-50F6-450B-A596-5D3535675FD7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {83CA0D39-50F6-450B-A596-5D3535675FD7}.Debug|Any CPU.Build.0 = Debug|Any CPU {83CA0D39-50F6-450B-A596-5D3535675FD7}.Release|Any CPU.ActiveCfg = Release|Any CPU {83CA0D39-50F6-450B-A596-5D3535675FD7}.Release|Any CPU.Build.0 = Release|Any CPU {AB1E5CA2-0722-4A12-99B5-9EA15C00B532}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {AB1E5CA2-0722-4A12-99B5-9EA15C00B532}.Debug|Any CPU.Build.0 = Debug|Any CPU {AB1E5CA2-0722-4A12-99B5-9EA15C00B532}.Release|Any CPU.ActiveCfg = Release|Any CPU {AB1E5CA2-0722-4A12-99B5-9EA15C00B532}.Release|Any CPU.Build.0 = Release|Any CPU {DB0A4C79-B840-4431-954B-43C26A1CBFB4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DB0A4C79-B840-4431-954B-43C26A1CBFB4}.Debug|Any CPU.Build.0 = Debug|Any CPU {DB0A4C79-B840-4431-954B-43C26A1CBFB4}.Release|Any CPU.ActiveCfg = Release|Any CPU {DB0A4C79-B840-4431-954B-43C26A1CBFB4}.Release|Any CPU.Build.0 = Release|Any CPU {5A93EC88-9788-43E0-92EA-9496B86C26E6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5A93EC88-9788-43E0-92EA-9496B86C26E6}.Debug|Any CPU.Build.0 = Debug|Any CPU {5A93EC88-9788-43E0-92EA-9496B86C26E6}.Release|Any CPU.ActiveCfg = Release|Any CPU {5A93EC88-9788-43E0-92EA-9496B86C26E6}.Release|Any CPU.Build.0 = Release|Any CPU {42C550DD-AB81-427E-94FC-7F057941D6AA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {42C550DD-AB81-427E-94FC-7F057941D6AA}.Debug|Any CPU.Build.0 = Debug|Any CPU {42C550DD-AB81-427E-94FC-7F057941D6AA}.Release|Any CPU.ActiveCfg = Release|Any CPU {42C550DD-AB81-427E-94FC-7F057941D6AA}.Release|Any CPU.Build.0 = Release|Any CPU {D464E26E-C684-4F58-AB02-1BC4CA32454B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D464E26E-C684-4F58-AB02-1BC4CA32454B}.Debug|Any CPU.Build.0 = Debug|Any CPU {D464E26E-C684-4F58-AB02-1BC4CA32454B}.Release|Any CPU.ActiveCfg = Release|Any CPU {D464E26E-C684-4F58-AB02-1BC4CA32454B}.Release|Any CPU.Build.0 = Release|Any CPU {EAED7B73-E459-489F-AC7D-4DACC3197D9A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU @@ -647,51 +548,39 @@ Global {EAED7B73-E459-489F-AC7D-4DACC3197D9A}.Release|Any CPU.ActiveCfg = Release|Any CPU {EAED7B73-E459-489F-AC7D-4DACC3197D9A}.Release|Any CPU.Build.0 = Release|Any CPU {6C33BCCD-3BC1-4C47-9BAF-59BA4CC1A8A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6C33BCCD-3BC1-4C47-9BAF-59BA4CC1A8A9}.Debug|Any CPU.Build.0 = Debug|Any CPU {6C33BCCD-3BC1-4C47-9BAF-59BA4CC1A8A9}.Release|Any CPU.ActiveCfg = Release|Any CPU {6C33BCCD-3BC1-4C47-9BAF-59BA4CC1A8A9}.Release|Any CPU.Build.0 = Release|Any CPU {0841DB40-1807-4CBF-9F54-9548D36C581D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0841DB40-1807-4CBF-9F54-9548D36C581D}.Debug|Any CPU.Build.0 = Debug|Any CPU {0841DB40-1807-4CBF-9F54-9548D36C581D}.Release|Any CPU.ActiveCfg = Release|Any CPU {0841DB40-1807-4CBF-9F54-9548D36C581D}.Release|Any CPU.Build.0 = Release|Any CPU {836DB46B-86D6-47DD-8CF9-39BE99A17B13}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {836DB46B-86D6-47DD-8CF9-39BE99A17B13}.Debug|Any CPU.Build.0 = Debug|Any CPU {836DB46B-86D6-47DD-8CF9-39BE99A17B13}.Release|Any CPU.ActiveCfg = Release|Any CPU {836DB46B-86D6-47DD-8CF9-39BE99A17B13}.Release|Any CPU.Build.0 = Release|Any CPU {26B8B5A6-6135-407B-B498-DA38FCED0C9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {26B8B5A6-6135-407B-B498-DA38FCED0C9E}.Debug|Any CPU.Build.0 = Debug|Any CPU {26B8B5A6-6135-407B-B498-DA38FCED0C9E}.Release|Any CPU.ActiveCfg = Release|Any CPU {26B8B5A6-6135-407B-B498-DA38FCED0C9E}.Release|Any CPU.Build.0 = Release|Any CPU {323AB4E9-12C2-4680-9D2F-1A1C66C45FF4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {323AB4E9-12C2-4680-9D2F-1A1C66C45FF4}.Debug|Any CPU.Build.0 = Debug|Any CPU {323AB4E9-12C2-4680-9D2F-1A1C66C45FF4}.Release|Any CPU.ActiveCfg = Release|Any CPU {323AB4E9-12C2-4680-9D2F-1A1C66C45FF4}.Release|Any CPU.Build.0 = Release|Any CPU {E024A64C-242E-4E07-A9CE-3B19028C3240}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E024A64C-242E-4E07-A9CE-3B19028C3240}.Debug|Any CPU.Build.0 = Debug|Any CPU {E024A64C-242E-4E07-A9CE-3B19028C3240}.Release|Any CPU.ActiveCfg = Release|Any CPU {E024A64C-242E-4E07-A9CE-3B19028C3240}.Release|Any CPU.Build.0 = Release|Any CPU {EA37AB73-1EA7-4994-86B0-031854D737A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EA37AB73-1EA7-4994-86B0-031854D737A8}.Debug|Any CPU.Build.0 = Debug|Any CPU {EA37AB73-1EA7-4994-86B0-031854D737A8}.Release|Any CPU.ActiveCfg = Release|Any CPU {EA37AB73-1EA7-4994-86B0-031854D737A8}.Release|Any CPU.Build.0 = Release|Any CPU {1FE586BD-20F6-442B-BB89-119E30AC4E72}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1FE586BD-20F6-442B-BB89-119E30AC4E72}.Debug|Any CPU.Build.0 = Debug|Any CPU {1FE586BD-20F6-442B-BB89-119E30AC4E72}.Release|Any CPU.ActiveCfg = Release|Any CPU {1FE586BD-20F6-442B-BB89-119E30AC4E72}.Release|Any CPU.Build.0 = Release|Any CPU {62B64432-DA6B-483E-BEFC-AB8D0F75F806}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {62B64432-DA6B-483E-BEFC-AB8D0F75F806}.Debug|Any CPU.Build.0 = Debug|Any CPU {62B64432-DA6B-483E-BEFC-AB8D0F75F806}.Release|Any CPU.ActiveCfg = Release|Any CPU {62B64432-DA6B-483E-BEFC-AB8D0F75F806}.Release|Any CPU.Build.0 = Release|Any CPU {A5BEAA87-6609-4656-A318-F2D43F1BA775}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A5BEAA87-6609-4656-A318-F2D43F1BA775}.Debug|Any CPU.Build.0 = Debug|Any CPU {A5BEAA87-6609-4656-A318-F2D43F1BA775}.Release|Any CPU.ActiveCfg = Release|Any CPU {A5BEAA87-6609-4656-A318-F2D43F1BA775}.Release|Any CPU.Build.0 = Release|Any CPU {44168560-C410-4CD2-9C96-1809BCF5F8FF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {44168560-C410-4CD2-9C96-1809BCF5F8FF}.Debug|Any CPU.Build.0 = Debug|Any CPU {44168560-C410-4CD2-9C96-1809BCF5F8FF}.Release|Any CPU.ActiveCfg = Release|Any CPU {44168560-C410-4CD2-9C96-1809BCF5F8FF}.Release|Any CPU.Build.0 = Release|Any CPU {935DEB5B-8D26-4925-80B1-12F1A9AF2883}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {935DEB5B-8D26-4925-80B1-12F1A9AF2883}.Debug|Any CPU.Build.0 = Debug|Any CPU {935DEB5B-8D26-4925-80B1-12F1A9AF2883}.Release|Any CPU.ActiveCfg = Release|Any CPU {935DEB5B-8D26-4925-80B1-12F1A9AF2883}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection diff --git a/valheim.targets b/valheim.targets index be591b3..6e58434 100644 --- a/valheim.targets +++ b/valheim.targets @@ -47,12 +47,12 @@ - + $(GamePath)\BepInEx $(GamePath)\valheim_Data\Managed - $(GamePath)\unstripped_corlib + $(GamePath)\valheim_Data\Managed @@ -94,21 +94,11 @@ $(ManagedDataPath)\assembly_guiutils.dll False - - False - $(ManagedDataPath)\ui_lib.dll - False - False $(ManagedDataPath)\assembly_postprocessing.dll False - - False - $(ManagedDataPath)\assembly_steamworks.dll - False - False $(ManagedDataPath)\assembly_sunshafts.dll @@ -225,7 +215,7 @@ False - $(UnityPath)\UnityEngine.TextCoreModule.dll + $(UnityPath)\UnityEngine.TextCoreTextEngineModule.dll False @@ -262,7 +252,7 @@ - + From 2e0c5bd769f71544dca011b71a66516c37bb2687 Mon Sep 17 00:00:00 2001 From: Maximilian Reinhart Date: Fri, 24 May 2024 09:40:03 +0200 Subject: [PATCH 02/21] remove asynchronus function call, maybe this is bad I don't know... functions were small enough in my eyes, reworked it into a single one to save overhead (ConsumeItem needs to stay on its own!) added configuration for chosing what containers to feed from by providing list of "startwith" strings, default to original values that were hard-coded. --- AutoFeed/BepInExPlugin.cs | 204 +++++++++++++++----------------------- 1 file changed, 82 insertions(+), 122 deletions(-) diff --git a/AutoFeed/BepInExPlugin.cs b/AutoFeed/BepInExPlugin.cs index 2e2eb22..34229d9 100644 --- a/AutoFeed/BepInExPlugin.cs +++ b/AutoFeed/BepInExPlugin.cs @@ -2,14 +2,17 @@ using BepInEx.Configuration; using HarmonyLib; using System.Collections.Generic; +using System.ComponentModel; using System.Linq; using System.Reflection; using System.Threading.Tasks; using UnityEngine; +using UnityEngine.TextCore.Text; +using UnityEngine.UIElements; namespace AutoFeed { - [BepInPlugin("aedenthorn.AutoFeed", "Auto Feed", "0.8.0")] + [BepInPlugin("aedenthorn.AutoFeed", "Auto Feed", "0.8.1")] public class BepInExPlugin: BaseUnityPlugin { public static ConfigEntry isDebug; @@ -18,6 +21,7 @@ public class BepInExPlugin: BaseUnityPlugin public static ConfigEntry moveProximity; public static ConfigEntry feedDisallowTypes; public static ConfigEntry animalDisallowTypes; + public static ConfigEntry containerNameStartsWith; public static ConfigEntry toggleKey; public static ConfigEntry toggleString; public static ConfigEntry isOn; @@ -27,9 +31,6 @@ public class BepInExPlugin: BaseUnityPlugin public static ConfigEntry nexusID; private static BepInExPlugin context; - private static float lastFeed; - private static int feedCount; - public static void Dbgl(string str = "", bool pref = true) { @@ -45,7 +46,8 @@ private void Awake() requireMove = Config.Bind("Config", "RequireMove", true, "Require animals to move to container to feed."); requireOnlyFood = Config.Bind("Config", "RequireOnlyFood", false, "Don't allow feeding from containers that have items that the animal will not eat as well."); moveProximity = Config.Bind("Config", "MoveProximity", 2f, "How close to move towards the container if RequireMove is true."); - + containerNameStartsWith = Config.Bind("Config", "ContainerNameFilter", "piece_chest, Container", "Only feed from containers which's name start like this, comma-separated."); + toggleKey = Config.Bind("General", "ToggleKey", "", "Key to toggle behaviour. Leave blank to disable the toggle key. Use https://docs.unity3d.com/Manual/ConventionalGameInput.html"); toggleString = Config.Bind("General", "ToggleString", "Auto Feed: {0}", "Text to show on toggle. {0} is replaced with true/false"); modEnabled = Config.Bind("General", "Enabled", true, "Enable this mod"); @@ -82,155 +84,113 @@ private static string GetPrefabName(string name) return result; } - private static Container FindClosestContainer(Vector3 center, float range, MonsterAI monsterAI) - { - Traverse traverseAI = Traverse.Create(monsterAI); - Container closestContainer = null; - float closestDistance = 999999f; ; - foreach (Collider collider in Physics.OverlapSphere(center, Mathf.Max(range, 0), LayerMask.GetMask(new string[] { "piece" }))) - { - Container container = collider.transform.parent?.parent?.gameObject?.GetComponent(); - if (container?.GetComponent()?.IsValid() == true) - { - //Dbgl($"valid {Vector3.Distance(center, container.transform.position)}"); - if (container.name.StartsWith("piece_chest_trough") && container.GetInventory() != null) - { - //Dbgl($"trough {Vector3.Distance(center, container.transform.position)}"); - - float distance = Vector3.Distance(container.transform.position, center); - if (distance < moveProximity.Value - || traverseAI.Method("HavePath", new object[] { container.transform.position }).GetValue()) - { - //Dbgl($"path {Vector3.Distance(center, container.transform.position)}"); - foreach (ItemDrop.ItemData item in container.GetInventory().GetAllItems()) - { - if (monsterAI.m_consumeItems.Exists(i => i.m_itemData.m_shared.m_name == item.m_shared.m_name)) - { - //Dbgl($"{monsterAI.gameObject.name} found suitable container at ({container.transform.position}, {Vector3.Distance(center, container.transform.position)})"); - if (closestDistance > distance) - { - closestContainer = container; - closestDistance = distance; - } - break; - } - //Dbgl($"no item"); - } - } - } - } - } - - return closestContainer; - } - [HarmonyPatch(typeof(MonsterAI), "UpdateConsumeItem")] static class UpdateConsumeItem_Patch { static void Postfix(MonsterAI __instance, ZNetView ___m_nview, Character ___m_character, Tameable ___m_tamable, List ___m_consumeItems, float dt, bool __result) { - if (!modEnabled.Value || !isOn.Value || __result || !___m_character || !___m_nview || !___m_nview.IsOwner() || ___m_tamable == null || !___m_character.IsTamed() || !___m_tamable.IsHungry() || ___m_consumeItems == null || ___m_consumeItems.Count == 0) + if (!modEnabled.Value || !isOn.Value + || __result || !___m_character || !___m_nview || !___m_nview.IsOwner() + || ___m_tamable == null || !___m_character.IsTamed() || !___m_tamable.IsHungry() + || ___m_consumeItems == null || ___m_consumeItems.Count == 0) return; string name = GetPrefabName(__instance.gameObject.name); - if (animalDisallowTypes.Value.Split(',').Contains(name)) { return; } - var nearbyContainer = FindClosestContainer(___m_character.gameObject.transform.position, containerRange.Value, __instance); - - using (List.Enumerator enumerator = __instance.m_consumeItems.GetEnumerator()) + Vector3 instancePosition = __instance.gameObject.transform.position; + Traverse traverseAI = Traverse.Create(__instance); + Container closestContainer = null; + Vector3 closestContainerPosition = new Vector3(0f, 0f, 0f); + float closestContainerDistance = containerRange.Value + 1; + foreach (Collider collider in Physics.OverlapSphere(instancePosition, Mathf.Max(containerRange.Value, 0), LayerMask.GetMask(new string[] { "piece" }))) { - while (enumerator.MoveNext()) + Container container = collider.transform.parent?.parent?.gameObject?.GetComponent(); + if (container?.GetComponent()?.IsValid() == true) { - if (nearbyContainer != null) + foreach (string containerNameStart in containerNameStartsWith.Value.Split(',')) { - if (Utils.DistanceXZ(nearbyContainer.transform.position, __instance.transform.position) < moveProximity.Value && Mathf.Abs(nearbyContainer.transform.position.y - __instance.transform.position.y) > moveProximity.Value) - continue; - - ItemDrop.ItemData item = nearbyContainer.GetInventory().GetItem(enumerator.Current.m_itemData.m_shared.m_name); - if (item != null) + if (container.name.StartsWith(containerNameStart) && container.GetInventory() != null) { - if (feedDisallowTypes.Value.Split(',').Contains(item.m_dropPrefab.name)) + //Dbgl($"{monsterAI.gameObject.name} trough"); + Vector3 containerPosition = container.transform.position; + float distance = Vector3.Distance(containerPosition, instancePosition); + if (distance < moveProximity.Value + || traverseAI.Method("HavePath", new object[] { containerPosition }).GetValue()) { - continue; - } + //Dbgl($"{monsterAI.gameObject.name} path"); + bool foundInedibleItem = true; + bool foundEdibleItem = false; + foreach (ItemDrop.ItemData item in container.GetInventory().GetAllItems()) + { + if (__instance.m_consumeItems.Exists(i => i.m_itemData.m_shared.m_name == item.m_shared.m_name) + && !feedDisallowTypes.Value.Split(',').Contains(item.m_dropPrefab.name)) + { + foundEdibleItem = true; + if (!requireOnlyFood.Value) + { + //Dbgl($"{monsterAI.gameObject.name} food found"); + break; + } + } + else if (requireOnlyFood.Value) + { + Dbgl($"{__instance.gameObject.name} inedible found"); + foundInedibleItem = false; + break; + } + } - if (Time.time - lastFeed < 0.1) - { - feedCount++; - FeedAnimal(__instance, ___m_tamable, ___m_character, nearbyContainer, item, feedCount * 33); - } - else - { - feedCount = 0; - lastFeed = Time.time; - FeedAnimal(__instance, ___m_tamable, ___m_character, nearbyContainer, item, 0); + if (foundInedibleItem && foundEdibleItem && closestContainerDistance > distance) + { + closestContainer = container; + closestContainerDistance = distance; + closestContainerPosition = containerPosition; + } } - return; } } } } - } - } - public static async void FeedAnimal(MonsterAI monsterAI, Tameable tamable, Character character, Container c, ItemDrop.ItemData item, int delay) - { - await Task.Delay(delay); - - if (tamable is null || monsterAI is null || !tamable.IsHungry()) - return; - - if (requireOnlyFood.Value) - { - foreach (ItemDrop.ItemData temp in c.GetInventory().GetAllItems()) - { - if (!monsterAI.m_consumeItems.Exists(i => i.m_itemData.m_shared.m_name == temp.m_shared.m_name)) - return; - } - } - string name = GetPrefabName(monsterAI.gameObject.name); - if (requireMove.Value && name != "Deer") - { - try + if (closestContainer != null) { - //Dbgl($"{monsterAI.gameObject.name} {monsterAI.transform.position} trying to move to {c.transform.position} {Utils.DistanceXZ(monsterAI.transform.position, c.transform.position)}"); - - ZoneSystem.instance.GetGroundHeight(c.transform.position, out float ground); - - Vector3 groundTarget = new Vector3(c.transform.position.x, ground, c.transform.position.z); - - Traverse traverseAI = Traverse.Create(monsterAI); - traverseAI.Field("m_lastFindPathTime").SetValue(0); - - if (!traverseAI.Method("MoveTo", new object[] { 0.05f, groundTarget, moveProximity.Value, false }).GetValue()) - return; + Dbgl($"{__instance.gameObject.name} found container: {closestContainerPosition}"); + if (requireMove.Value && name != "Deer") + { + Dbgl($"{__instance.gameObject.name} {instancePosition} trying to move to {closestContainerPosition} {Utils.DistanceXZ(instancePosition, closestContainerPosition)}"); - if (Mathf.Abs(c.transform.position.y - monsterAI.transform.position.y) > moveProximity.Value) - return; + traverseAI.Field("m_lastFindPathTime").SetValue(0); + if (!traverseAI.Method("MoveTo", new object[] { 0.05f, closestContainerPosition, moveProximity.Value, false }).GetValue()) + return; - traverseAI.Method("LookAt", new object[] { c.transform.position }).GetValue(); + traverseAI.Method("LookAt", new object[] { closestContainerPosition }).GetValue(); + if (!traverseAI.Method("IsLookingAt", new object[] { closestContainerPosition, 20f, false }).GetValue()) + return; + } - if (!traverseAI.Method("IsLookingAt", new object[] { c.transform.position, 90f, false}).GetValue()) - return; - } - catch - { + using (List.Enumerator enumerator = __instance.m_consumeItems.GetEnumerator()) + { + while (enumerator.MoveNext()) + { + ItemDrop.ItemData item = closestContainer.GetInventory().GetItem(enumerator.Current.m_itemData.m_shared.m_name); + if (item != null && !feedDisallowTypes.Value.Split(',').Contains(item.m_dropPrefab.name)) + { + Dbgl($"{__instance.gameObject.name} {instancePosition} consuming {item.m_dropPrefab.name} at {closestContainerPosition}, distance {Utils.DistanceXZ(instancePosition, closestContainerPosition)}"); + ConsumeItem(item, __instance, ___m_character); + closestContainer.GetInventory().RemoveItem(item.m_shared.m_name, 1); + typeof(Inventory).GetMethod("Changed", BindingFlags.NonPublic | BindingFlags.Instance).Invoke(closestContainer.GetInventory(), new object[] { }); + typeof(Container).GetMethod("Save", BindingFlags.NonPublic | BindingFlags.Instance).Invoke(closestContainer, new object[] { }); + return; + } + } + } } - - //Dbgl($"{monsterAI.gameObject.name} looking at"); } - - Dbgl($"{monsterAI.gameObject.name} {monsterAI.transform.position} consuming {item.m_dropPrefab.name} at {c.transform.position}, distance {Utils.DistanceXZ(monsterAI.transform.position, c.transform.position)}"); - ConsumeItem(item, monsterAI, character); - - c.GetInventory().RemoveItem(item.m_shared.m_name, 1); - typeof(Inventory).GetMethod("Changed", BindingFlags.NonPublic | BindingFlags.Instance).Invoke(c.GetInventory(), new object[] { }); - typeof(Container).GetMethod("Save", BindingFlags.NonPublic | BindingFlags.Instance).Invoke(c, new object[] { }); } private static void ConsumeItem(ItemDrop.ItemData item, MonsterAI monsterAI, Character character) From 00d64e88e2897cbb6d0bf532f652d0a02dc8fa02 Mon Sep 17 00:00:00 2001 From: Maximilian Reinhart Date: Sun, 26 May 2024 17:06:02 +0200 Subject: [PATCH 03/21] debug config setting now defaults to false corrected nexus id for mod fork upload set pathfinding agentype to humanoid regardless of what monsterAI is used (otherwiese tamed deer won't find a path, maybe bug in AgenType.HorseLike?) added back terminal patch with correctly referrenced assembly --- AutoFeed/BepInExPlugin.cs | 55 +++++++++++++++++++++-------- AutoFeed/Properties/AssemblyInfo.cs | 2 +- ValheimMods.sln | 7 +++- valheim.targets | 7 +++- 4 files changed, 54 insertions(+), 17 deletions(-) diff --git a/AutoFeed/BepInExPlugin.cs b/AutoFeed/BepInExPlugin.cs index 34229d9..26e03ce 100644 --- a/AutoFeed/BepInExPlugin.cs +++ b/AutoFeed/BepInExPlugin.cs @@ -12,7 +12,7 @@ namespace AutoFeed { - [BepInPlugin("aedenthorn.AutoFeed", "Auto Feed", "0.8.1")] + [BepInPlugin("AutoFeed", "Auto Feed", "0.8.2")] public class BepInExPlugin: BaseUnityPlugin { public static ConfigEntry isDebug; @@ -51,8 +51,8 @@ private void Awake() toggleKey = Config.Bind("General", "ToggleKey", "", "Key to toggle behaviour. Leave blank to disable the toggle key. Use https://docs.unity3d.com/Manual/ConventionalGameInput.html"); toggleString = Config.Bind("General", "ToggleString", "Auto Feed: {0}", "Text to show on toggle. {0} is replaced with true/false"); modEnabled = Config.Bind("General", "Enabled", true, "Enable this mod"); - isDebug = Config.Bind("General", "IsDebug", true, "Show debug logs"); - nexusID = Config.Bind("General", "NexusID", 985, "Nexus mod ID for updates"); + isDebug = Config.Bind("General", "IsDebug", false, "Show debug logs"); + nexusID = Config.Bind("General", "NexusID", 2787, "Nexus mod ID for updates"); isOn = Config.Bind("ZAuto", "IsOn", true, "Behaviour is currently on or not"); @@ -89,20 +89,20 @@ static class UpdateConsumeItem_Patch { static void Postfix(MonsterAI __instance, ZNetView ___m_nview, Character ___m_character, Tameable ___m_tamable, List ___m_consumeItems, float dt, bool __result) { - if (!modEnabled.Value || !isOn.Value - || __result || !___m_character || !___m_nview || !___m_nview.IsOwner() - || ___m_tamable == null || !___m_character.IsTamed() || !___m_tamable.IsHungry() - || ___m_consumeItems == null || ___m_consumeItems.Count == 0) - return; - string name = GetPrefabName(__instance.gameObject.name); - if (animalDisallowTypes.Value.Split(',').Contains(name)) + if (!modEnabled.Value || !isOn.Value + || __result || !___m_character || !___m_nview || !___m_nview.IsOwner() + || ___m_tamable == null || !___m_character.IsTamed() || !___m_tamable.IsHungry() + || ___m_consumeItems == null || ___m_consumeItems.Count == 0 + || animalDisallowTypes.Value.Split(',').Contains(name)) { return; } Vector3 instancePosition = __instance.gameObject.transform.position; Traverse traverseAI = Traverse.Create(__instance); + // Types like "HorseSize" seem to not work when Deer is tamed + traverseAI.Field("m_pathAgentType").SetValue(Pathfinding.AgentType.Humanoid); Container closestContainer = null; Vector3 closestContainerPosition = new Vector3(0f, 0f, 0f); float closestContainerDistance = containerRange.Value + 1; @@ -111,17 +111,19 @@ static void Postfix(MonsterAI __instance, ZNetView ___m_nview, Character ___m_ch Container container = collider.transform.parent?.parent?.gameObject?.GetComponent(); if (container?.GetComponent()?.IsValid() == true) { + //Dbgl($"{__instance.gameObject.name} valid found"); foreach (string containerNameStart in containerNameStartsWith.Value.Split(',')) { if (container.name.StartsWith(containerNameStart) && container.GetInventory() != null) { - //Dbgl($"{monsterAI.gameObject.name} trough"); + //Dbgl($"{__instance.gameObject.name} trough"); Vector3 containerPosition = container.transform.position; float distance = Vector3.Distance(containerPosition, instancePosition); + //Dbgl($"{__instance.gameObject.name} agentType: {traverseAI.Field("m_pathAgentType")}"); if (distance < moveProximity.Value || traverseAI.Method("HavePath", new object[] { containerPosition }).GetValue()) { - //Dbgl($"{monsterAI.gameObject.name} path"); + //Dbgl($"{__instance.gameObject.name} path"); bool foundInedibleItem = true; bool foundEdibleItem = false; foreach (ItemDrop.ItemData item in container.GetInventory().GetAllItems()) @@ -132,13 +134,13 @@ static void Postfix(MonsterAI __instance, ZNetView ___m_nview, Character ___m_ch foundEdibleItem = true; if (!requireOnlyFood.Value) { - //Dbgl($"{monsterAI.gameObject.name} food found"); + //Dbgl($"{__instance.gameObject.name} food found"); break; } } else if (requireOnlyFood.Value) { - Dbgl($"{__instance.gameObject.name} inedible found"); + //Dbgl($"{__instance.gameObject.name} inedible found"); foundInedibleItem = false; break; } @@ -190,6 +192,10 @@ static void Postfix(MonsterAI __instance, ZNetView ___m_nview, Character ___m_ch } } } + else + { + Dbgl($"{__instance.gameObject.name} could not find container"); + } } } @@ -200,5 +206,26 @@ private static void ConsumeItem(ItemDrop.ItemData item, MonsterAI monsterAI, Cha (character as Humanoid).m_consumeItemEffects.Create(character.transform.position, Quaternion.identity, null, 1f, -1); Traverse.Create(monsterAI).Field("m_animator").GetValue().SetTrigger("consume"); } + + [HarmonyPatch(typeof(Terminal), "InputText")] + static class InputText_Patch + { + static bool Prefix(Terminal __instance) + { + if (!modEnabled.Value) + return true; + string text = __instance.m_input.text; + if (text.ToLower().Equals($"{typeof(BepInExPlugin).Namespace.ToLower()} reset")) + { + context.Config.Reload(); + context.Config.Save(); + + Traverse.Create(__instance).Method("AddString", new object[] { text }).GetValue(); + Traverse.Create(__instance).Method("AddString", new object[] { $"{context.Info.Metadata.Name} config reloaded" }).GetValue(); + return false; + } + return true; + } + } } } diff --git a/AutoFeed/Properties/AssemblyInfo.cs b/AutoFeed/Properties/AssemblyInfo.cs index 0b1698c..5279bc8 100644 --- a/AutoFeed/Properties/AssemblyInfo.cs +++ b/AutoFeed/Properties/AssemblyInfo.cs @@ -5,7 +5,7 @@ // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. -[assembly: AssemblyTitle("AutoFeed")] +[assembly: AssemblyTitle("AutoFeedFork")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] diff --git a/ValheimMods.sln b/ValheimMods.sln index 0494086..bcea873 100644 --- a/ValheimMods.sln +++ b/ValheimMods.sln @@ -273,6 +273,7 @@ Global {721B4F8C-9FC4-46A2-A359-2816E60F9488}.Release|Any CPU.ActiveCfg = Release|Any CPU {721B4F8C-9FC4-46A2-A359-2816E60F9488}.Release|Any CPU.Build.0 = Release|Any CPU {F664E67E-D2B1-4AAE-B9E2-9E036BA3D2F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F664E67E-D2B1-4AAE-B9E2-9E036BA3D2F0}.Debug|Any CPU.Build.0 = Debug|Any CPU {F664E67E-D2B1-4AAE-B9E2-9E036BA3D2F0}.Release|Any CPU.ActiveCfg = Release|Any CPU {F664E67E-D2B1-4AAE-B9E2-9E036BA3D2F0}.Release|Any CPU.Build.0 = Release|Any CPU {332F7475-7977-44C3-A511-CB13C56A8BD8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU @@ -312,6 +313,7 @@ Global {05E33387-F302-4EB9-B002-7DF95DD37CE7}.Release|Any CPU.ActiveCfg = Release|Any CPU {05E33387-F302-4EB9-B002-7DF95DD37CE7}.Release|Any CPU.Build.0 = Release|Any CPU {FC9E944F-8834-491C-A165-0DABFE80FDD6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FC9E944F-8834-491C-A165-0DABFE80FDD6}.Debug|Any CPU.Build.0 = Debug|Any CPU {FC9E944F-8834-491C-A165-0DABFE80FDD6}.Release|Any CPU.ActiveCfg = Release|Any CPU {FC9E944F-8834-491C-A165-0DABFE80FDD6}.Release|Any CPU.Build.0 = Release|Any CPU {766FBAFB-85B1-49D1-B262-98DDCFDB668D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU @@ -405,6 +407,7 @@ Global {E4A787A2-D08D-4F41-A287-800093FFCFCB}.Release|Any CPU.ActiveCfg = Release|Any CPU {E4A787A2-D08D-4F41-A287-800093FFCFCB}.Release|Any CPU.Build.0 = Release|Any CPU {430D8DC6-D188-4D3C-8EC4-D67065267320}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {430D8DC6-D188-4D3C-8EC4-D67065267320}.Debug|Any CPU.Build.0 = Debug|Any CPU {430D8DC6-D188-4D3C-8EC4-D67065267320}.Release|Any CPU.ActiveCfg = Release|Any CPU {430D8DC6-D188-4D3C-8EC4-D67065267320}.Release|Any CPU.Build.0 = Release|Any CPU {348B29C1-CBCE-41BA-A524-60B9FBC49757}.Debug|Any CPU.ActiveCfg = Debug|Any CPU @@ -420,12 +423,14 @@ Global {EA29414E-93F8-472B-90AF-B46D5F2C0C2C}.Release|Any CPU.ActiveCfg = Release|Any CPU {EA29414E-93F8-472B-90AF-B46D5F2C0C2C}.Release|Any CPU.Build.0 = Release|Any CPU {6BB20CFB-D3F8-4C89-98C0-5FC2C6B31372}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6BB20CFB-D3F8-4C89-98C0-5FC2C6B31372}.Debug|Any CPU.Build.0 = Debug|Any CPU {6BB20CFB-D3F8-4C89-98C0-5FC2C6B31372}.Release|Any CPU.ActiveCfg = Release|Any CPU {6BB20CFB-D3F8-4C89-98C0-5FC2C6B31372}.Release|Any CPU.Build.0 = Release|Any CPU {155A25D0-60B0-4D1C-B53A-6A262612B02B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {155A25D0-60B0-4D1C-B53A-6A262612B02B}.Release|Any CPU.ActiveCfg = Release|Any CPU {155A25D0-60B0-4D1C-B53A-6A262612B02B}.Release|Any CPU.Build.0 = Release|Any CPU {F3FE9EEB-505D-4BBB-A164-DCA766BF42B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F3FE9EEB-505D-4BBB-A164-DCA766BF42B5}.Debug|Any CPU.Build.0 = Debug|Any CPU {F3FE9EEB-505D-4BBB-A164-DCA766BF42B5}.Release|Any CPU.ActiveCfg = Release|Any CPU {F3FE9EEB-505D-4BBB-A164-DCA766BF42B5}.Release|Any CPU.Build.0 = Release|Any CPU {0B6AFC30-0900-490A-88B4-96B779519B9D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU @@ -508,6 +513,7 @@ Global {DCFD5456-8398-4A2B-8FF8-9A710D3DC29C}.Release|Any CPU.ActiveCfg = Release|Any CPU {DCFD5456-8398-4A2B-8FF8-9A710D3DC29C}.Release|Any CPU.Build.0 = Release|Any CPU {683CB9AD-97C5-4EEA-8E12-80086B3C5380}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {683CB9AD-97C5-4EEA-8E12-80086B3C5380}.Debug|Any CPU.Build.0 = Debug|Any CPU {683CB9AD-97C5-4EEA-8E12-80086B3C5380}.Release|Any CPU.ActiveCfg = Release|Any CPU {683CB9AD-97C5-4EEA-8E12-80086B3C5380}.Release|Any CPU.Build.0 = Release|Any CPU {01EF2E61-7968-4D38-9AAC-F719601F34C4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU @@ -544,7 +550,6 @@ Global {D464E26E-C684-4F58-AB02-1BC4CA32454B}.Release|Any CPU.ActiveCfg = Release|Any CPU {D464E26E-C684-4F58-AB02-1BC4CA32454B}.Release|Any CPU.Build.0 = Release|Any CPU {EAED7B73-E459-489F-AC7D-4DACC3197D9A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EAED7B73-E459-489F-AC7D-4DACC3197D9A}.Debug|Any CPU.Build.0 = Debug|Any CPU {EAED7B73-E459-489F-AC7D-4DACC3197D9A}.Release|Any CPU.ActiveCfg = Release|Any CPU {EAED7B73-E459-489F-AC7D-4DACC3197D9A}.Release|Any CPU.Build.0 = Release|Any CPU {6C33BCCD-3BC1-4C47-9BAF-59BA4CC1A8A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU diff --git a/valheim.targets b/valheim.targets index 6e58434..c527c18 100644 --- a/valheim.targets +++ b/valheim.targets @@ -109,8 +109,13 @@ $(ManagedDataPath)\assembly_utils.dll False + + False + $(ManagedDataPath)\gui_framework.dll + False + - + From b77e5b4feddc86753af61a4059dd0a542e477a85 Mon Sep 17 00:00:00 2001 From: Maximilian Reinhart Date: Sun, 26 May 2024 17:16:09 +0200 Subject: [PATCH 04/21] corrected config file path --- AutoFeed/BepInExPlugin.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AutoFeed/BepInExPlugin.cs b/AutoFeed/BepInExPlugin.cs index 26e03ce..35e5f23 100644 --- a/AutoFeed/BepInExPlugin.cs +++ b/AutoFeed/BepInExPlugin.cs @@ -12,7 +12,7 @@ namespace AutoFeed { - [BepInPlugin("AutoFeed", "Auto Feed", "0.8.2")] + [BepInPlugin("aedenthorn.AutoFeed", "Auto Feed", "0.8.2")] public class BepInExPlugin: BaseUnityPlugin { public static ConfigEntry isDebug; From 9587ee19d0a496b02ed7e97f730bbaa4e9c9ad6d Mon Sep 17 00:00:00 2001 From: Maximilian Reinhart Date: Sun, 26 May 2024 17:44:59 +0200 Subject: [PATCH 05/21] removed assemblyInfo as it always generated doublicat entries --- AutoFeed/Properties/AssemblyInfo.cs | 36 ----------------------------- 1 file changed, 36 deletions(-) delete mode 100644 AutoFeed/Properties/AssemblyInfo.cs diff --git a/AutoFeed/Properties/AssemblyInfo.cs b/AutoFeed/Properties/AssemblyInfo.cs deleted file mode 100644 index 5279bc8..0000000 --- a/AutoFeed/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("AutoFeedFork")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("AutoFeed")] -[assembly: AssemblyCopyright("Copyright © 2021")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("4a4941b7-3227-4d66-ae89-d9ffd36996c4")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] From a248c124f4cf1643f66188311b31a8a87126e26d Mon Sep 17 00:00:00 2001 From: Maximilian Reinhart Date: Thu, 30 May 2024 11:45:48 +0200 Subject: [PATCH 06/21] removed non-movement requirement for deer as AllTamedOverhaul 1.4.1 fixed deer movement --- AutoFeed/BepInExPlugin.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/AutoFeed/BepInExPlugin.cs b/AutoFeed/BepInExPlugin.cs index 35e5f23..9fa52eb 100644 --- a/AutoFeed/BepInExPlugin.cs +++ b/AutoFeed/BepInExPlugin.cs @@ -12,7 +12,7 @@ namespace AutoFeed { - [BepInPlugin("aedenthorn.AutoFeed", "Auto Feed", "0.8.2")] + [BepInPlugin("aedenthorn.AutoFeed", "Auto Feed", "0.8.3")] public class BepInExPlugin: BaseUnityPlugin { public static ConfigEntry isDebug; @@ -161,7 +161,7 @@ static void Postfix(MonsterAI __instance, ZNetView ___m_nview, Character ___m_ch if (closestContainer != null) { Dbgl($"{__instance.gameObject.name} found container: {closestContainerPosition}"); - if (requireMove.Value && name != "Deer") + if (requireMove.Value) { Dbgl($"{__instance.gameObject.name} {instancePosition} trying to move to {closestContainerPosition} {Utils.DistanceXZ(instancePosition, closestContainerPosition)}"); From 84ecdf67601019596bca6ee59e7c1b3bb50936f4 Mon Sep 17 00:00:00 2001 From: Maximilian Reinhart Date: Thu, 30 May 2024 11:48:45 +0200 Subject: [PATCH 07/21] changed nexusID to fork mod nexusID swapped resize to reinitiaize function as it was deprecated added null check for gameobject/prefab in ReplaceZNetSceneTextures --- CustomTextures/BepInExPlugin.cs | 4 ++-- CustomTextures/TextureReplacement.cs | 6 ++++-- CustomTextures/TextureScale.cs | 2 +- ValheimMods.sln | 1 + 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/CustomTextures/BepInExPlugin.cs b/CustomTextures/BepInExPlugin.cs index 760b76c..4248ec2 100644 --- a/CustomTextures/BepInExPlugin.cs +++ b/CustomTextures/BepInExPlugin.cs @@ -11,7 +11,7 @@ namespace CustomTextures { - [BepInPlugin("aedenthorn.CustomTextures", "Custom Textures", "3.3.1")] + [BepInPlugin("aedenthorn.CustomTextures", "Custom Textures", "3.3.2")] public partial class BepInExPlugin: BaseUnityPlugin { public static ConfigEntry modEnabled; @@ -47,7 +47,7 @@ private void Awake() replaceLocationTextures = Config.Bind("General", "ReplaceLocationTextures", true, "Replace textures for special locations (can take a long time)"); reloadLocationTextures = Config.Bind("General", "ReloadLocationTextures", false, "Reload textures for special locations on manual reload (can take a long time)"); dumpSceneTextures = Config.Bind("General", "DumpSceneTextures", false, "Dump scene textures to BepInEx/plugins/CustomTextures/scene_dump.txt"); - nexusID = Config.Bind("General", "NexusID", 48, "Nexus mod ID for updates"); + nexusID = Config.Bind("General", "NexusID", 2796, "Nexus mod ID for updates"); if (!modEnabled.Value) return; diff --git a/CustomTextures/TextureReplacement.cs b/CustomTextures/TextureReplacement.cs index d7b8379..5680e61 100644 --- a/CustomTextures/TextureReplacement.cs +++ b/CustomTextures/TextureReplacement.cs @@ -72,7 +72,7 @@ private static void ReplaceZNetSceneTextures() var namedPrefabs = ((Dictionary)AccessTools.Field(typeof(ZNetScene), "m_namedPrefabs").GetValue(ZNetScene.instance)).Values; foreach (GameObject go in namedPrefabs) { - if (!gos.Contains(go)) + if (go != null && !gos.Contains(go)) gos.Add(go); } @@ -80,8 +80,10 @@ private static void ReplaceZNetSceneTextures() foreach (GameObject gameObject in gos) { - if (gameObject.name == "_NetSceneRoot") + if (gameObject == null || gameObject.name == "_NetSceneRoot") + { continue; + } ReplaceOneGameObjectTextures(gameObject, gameObject.name, "object"); } diff --git a/CustomTextures/TextureScale.cs b/CustomTextures/TextureScale.cs index 0793146..a8d9f97 100644 --- a/CustomTextures/TextureScale.cs +++ b/CustomTextures/TextureScale.cs @@ -98,7 +98,7 @@ private static void ThreadedScale(Texture2D tex, int newWidth, int newHeight, bo } } - tex.Resize(newWidth, newHeight); + tex.Reinitialize(newWidth, newHeight); tex.SetPixels(newColors); tex.Apply(); diff --git a/ValheimMods.sln b/ValheimMods.sln index bcea873..0666c11 100644 --- a/ValheimMods.sln +++ b/ValheimMods.sln @@ -261,6 +261,7 @@ Global {571E7C29-571A-41F0-9D93-2161DD20C36A}.Release|Any CPU.ActiveCfg = Release|Any CPU {571E7C29-571A-41F0-9D93-2161DD20C36A}.Release|Any CPU.Build.0 = Release|Any CPU {341D9492-226D-4381-9FDA-95DE6057033F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {341D9492-226D-4381-9FDA-95DE6057033F}.Debug|Any CPU.Build.0 = Debug|Any CPU {341D9492-226D-4381-9FDA-95DE6057033F}.Release|Any CPU.ActiveCfg = Release|Any CPU {341D9492-226D-4381-9FDA-95DE6057033F}.Release|Any CPU.Build.0 = Release|Any CPU {B827CA6A-3604-4617-A2B5-86D49F049F60}.Debug|Any CPU.ActiveCfg = Debug|Any CPU From 525c8714e257ba3bdc5b2c433291b5d45e35fe0b Mon Sep 17 00:00:00 2001 From: Maximilian Reinhart Date: Sat, 1 Jun 2024 11:31:38 +0200 Subject: [PATCH 08/21] removed precompiled assemblyinfos --- .gitignore | 3 +- AICustomization/Properties/AssemblyInfo.cs | 36 ------ AedenthornUtils/Properties/AssemblyInfo.cs | 36 ------ BackpackRedux/.gitignore | 3 - BuildPieceReplace/Properties/AssemblyInfo.cs | 36 ------ .../Properties/AssemblyInfo.cs | 36 ------ CartSupport/Properties/AssemblyInfo.cs | 36 ------ CombatMusic/Properties/AssemblyInfo.cs | 36 ------ .../Properties/AssemblyInfo.cs | 36 ------ CustomDreamTexts/Properties/AssemblyInfo.cs | 36 ------ CustomWeapons/Properties/AssemblyInfo.cs | 36 ------ DamageMod/Properties/AssemblyInfo.cs | 36 ------ .../Properties/AssemblyInfo.cs | 36 ------ .../Properties/AssemblyInfo.cs | 36 ------ HaldorFetchQuests/Properties/AssemblyInfo.cs | 36 ------ .../Properties/AssemblyInfo.cs | 36 ------ InventoryHUD/Properties/AssemblyInfo.cs | 36 ------ .../Properties/AssemblyInfo.cs | 36 ------ .../Properties/AssemblyInfo.cs | 36 ------ PostProcessing/Properties/AssemblyInfo.cs | 36 ------ QuestFramework/Properties/AssemblyInfo.cs | 36 ------ QuickStore/Properties/AssemblyInfo.cs | 36 ------ RepeatActions/Properties/AssemblyInfo.cs | 36 ------ RequirementCheck/Properties/AssemblyInfo.cs | 36 ------ TerraformTweaks/Properties/AssemblyInfo.cs | 36 ------ ValheimMods.sln | 105 ++++++++++++++++++ valheim.targets | 9 ++ 27 files changed, 116 insertions(+), 832 deletions(-) delete mode 100644 AICustomization/Properties/AssemblyInfo.cs delete mode 100644 AedenthornUtils/Properties/AssemblyInfo.cs delete mode 100644 BackpackRedux/.gitignore delete mode 100644 BuildPieceReplace/Properties/AssemblyInfo.cs delete mode 100644 BuildingRepairRequiresMats/Properties/AssemblyInfo.cs delete mode 100644 CartSupport/Properties/AssemblyInfo.cs delete mode 100644 CombatMusic/Properties/AssemblyInfo.cs delete mode 100644 ControllerButtonSwitch/Properties/AssemblyInfo.cs delete mode 100644 CustomDreamTexts/Properties/AssemblyInfo.cs delete mode 100644 CustomWeapons/Properties/AssemblyInfo.cs delete mode 100644 DamageMod/Properties/AssemblyInfo.cs delete mode 100644 EquipMultipleUtilityItems/Properties/AssemblyInfo.cs delete mode 100644 ExtendedPlayerInventory/Properties/AssemblyInfo.cs delete mode 100644 HaldorFetchQuests/Properties/AssemblyInfo.cs delete mode 100644 HuginQuestFramework/Properties/AssemblyInfo.cs delete mode 100644 InventoryHUD/Properties/AssemblyInfo.cs delete mode 100644 ItemStorageComponent/Properties/AssemblyInfo.cs delete mode 100644 MerchantSpawnTweaks/Properties/AssemblyInfo.cs delete mode 100644 PostProcessing/Properties/AssemblyInfo.cs delete mode 100644 QuestFramework/Properties/AssemblyInfo.cs delete mode 100644 QuickStore/Properties/AssemblyInfo.cs delete mode 100644 RepeatActions/Properties/AssemblyInfo.cs delete mode 100644 RequirementCheck/Properties/AssemblyInfo.cs delete mode 100644 TerraformTweaks/Properties/AssemblyInfo.cs diff --git a/.gitignore b/.gitignore index b9a7b16..d784522 100644 --- a/.gitignore +++ b/.gitignore @@ -339,4 +339,5 @@ ASALocalRun/ .localhistory/ # BeatPulse healthcheck temp database -healthchecksdb \ No newline at end of file +healthchecksdb +/_CompiledBinaries diff --git a/AICustomization/Properties/AssemblyInfo.cs b/AICustomization/Properties/AssemblyInfo.cs deleted file mode 100644 index 17922a7..0000000 --- a/AICustomization/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("AICustomization")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("AICustomization")] -[assembly: AssemblyCopyright("Copyright © 2021")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("db0a4c79-b840-4431-954b-43c26a1cbfb4")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/AedenthornUtils/Properties/AssemblyInfo.cs b/AedenthornUtils/Properties/AssemblyInfo.cs deleted file mode 100644 index 112b858..0000000 --- a/AedenthornUtils/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("AedenthornUtils")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("AedenthornUtils")] -[assembly: AssemblyCopyright("Copyright © 2021")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("eaed7b73-e459-489f-ac7d-4dacc3197d9a")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/BackpackRedux/.gitignore b/BackpackRedux/.gitignore deleted file mode 100644 index 931849a..0000000 --- a/BackpackRedux/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -*.dll -*.suo -*.cache diff --git a/BuildPieceReplace/Properties/AssemblyInfo.cs b/BuildPieceReplace/Properties/AssemblyInfo.cs deleted file mode 100644 index fa00ed2..0000000 --- a/BuildPieceReplace/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("BuildPieceReplace")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("BuildPieceReplace")] -[assembly: AssemblyCopyright("Copyright © 2021")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("da3d9481-22d5-427a-9ecb-f60644fcab78")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/BuildingRepairRequiresMats/Properties/AssemblyInfo.cs b/BuildingRepairRequiresMats/Properties/AssemblyInfo.cs deleted file mode 100644 index 93d752f..0000000 --- a/BuildingRepairRequiresMats/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("BuildingRepairRequiresMats")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("BuildingRepairRequiresMats")] -[assembly: AssemblyCopyright("Copyright © 2021")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("4c30daee-fafd-4ca0-93b2-316f772d06ba")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/CartSupport/Properties/AssemblyInfo.cs b/CartSupport/Properties/AssemblyInfo.cs deleted file mode 100644 index 4e1eeec..0000000 --- a/CartSupport/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("CartSupport")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("CartSupport")] -[assembly: AssemblyCopyright("Copyright © 2021")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("2a3a0c62-40e5-4d77-ae6e-6466d8ad7648")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/CombatMusic/Properties/AssemblyInfo.cs b/CombatMusic/Properties/AssemblyInfo.cs deleted file mode 100644 index 5aae65e..0000000 --- a/CombatMusic/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("CombatMusic")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("CombatMusic")] -[assembly: AssemblyCopyright("Copyright © 2021")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("42c550dd-ab81-427e-94fc-7f057941d6aa")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/ControllerButtonSwitch/Properties/AssemblyInfo.cs b/ControllerButtonSwitch/Properties/AssemblyInfo.cs deleted file mode 100644 index c4e5c27..0000000 --- a/ControllerButtonSwitch/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("ControllerButtonSwitch")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("ControllerButtonSwitch")] -[assembly: AssemblyCopyright("Copyright © 2021")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("a775ed6f-5fd3-4315-bd97-537bf9999300")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/CustomDreamTexts/Properties/AssemblyInfo.cs b/CustomDreamTexts/Properties/AssemblyInfo.cs deleted file mode 100644 index b8392fa..0000000 --- a/CustomDreamTexts/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("CustomDreamTexts")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("CustomDreamTexts")] -[assembly: AssemblyCopyright("Copyright © 2021")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("8a279f25-fda7-4d4b-8d6f-bc6d1ad3b7ae")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/CustomWeapons/Properties/AssemblyInfo.cs b/CustomWeapons/Properties/AssemblyInfo.cs deleted file mode 100644 index 626e5b7..0000000 --- a/CustomWeapons/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("CustomWeapons")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("CustomWeapons")] -[assembly: AssemblyCopyright("Copyright © 2021")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("0efd1fbe-b627-4680-9a66-b95aa347eb48")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/DamageMod/Properties/AssemblyInfo.cs b/DamageMod/Properties/AssemblyInfo.cs deleted file mode 100644 index 039013b..0000000 --- a/DamageMod/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("DamageMod")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("DamageMod")] -[assembly: AssemblyCopyright("Copyright © 2021")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("d08034eb-046a-4811-a84b-55a4db3386d4")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/EquipMultipleUtilityItems/Properties/AssemblyInfo.cs b/EquipMultipleUtilityItems/Properties/AssemblyInfo.cs deleted file mode 100644 index c536226..0000000 --- a/EquipMultipleUtilityItems/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("EquipMultipleUtilityItems")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("EquipMultipleUtilityItems")] -[assembly: AssemblyCopyright("Copyright © 2021")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("83ca0d39-50f6-450b-a596-5d3535675fd7")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/ExtendedPlayerInventory/Properties/AssemblyInfo.cs b/ExtendedPlayerInventory/Properties/AssemblyInfo.cs deleted file mode 100644 index 1f2abf5..0000000 --- a/ExtendedPlayerInventory/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("ExtendedPlayerInventory")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("ExtendedPlayerInventory")] -[assembly: AssemblyCopyright("Copyright © 2021")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("ab1e5ca2-0722-4a12-99b5-9ea15c00b532")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/HaldorFetchQuests/Properties/AssemblyInfo.cs b/HaldorFetchQuests/Properties/AssemblyInfo.cs deleted file mode 100644 index e8aa0fe..0000000 --- a/HaldorFetchQuests/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("HaldorFetchQuests")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("HaldorFetchQuests")] -[assembly: AssemblyCopyright("Copyright © 2021")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("6c33bccd-3bc1-4c47-9baf-59ba4cc1a8a9")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/HuginQuestFramework/Properties/AssemblyInfo.cs b/HuginQuestFramework/Properties/AssemblyInfo.cs deleted file mode 100644 index d99b67c..0000000 --- a/HuginQuestFramework/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("HuginQuestFramework")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("HuginQuestFramework")] -[assembly: AssemblyCopyright("Copyright © 2021")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("0841db40-1807-4cbf-9f54-9548d36c581d")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/InventoryHUD/Properties/AssemblyInfo.cs b/InventoryHUD/Properties/AssemblyInfo.cs deleted file mode 100644 index 1fc4704..0000000 --- a/InventoryHUD/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("InventoryHUD")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("InventoryHUD")] -[assembly: AssemblyCopyright("Copyright © 2021")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("2a3431ae-002d-4b07-b681-21942166995c")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/ItemStorageComponent/Properties/AssemblyInfo.cs b/ItemStorageComponent/Properties/AssemblyInfo.cs deleted file mode 100644 index b9551b6..0000000 --- a/ItemStorageComponent/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("ItemStorageComponent")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("ItemStorageComponent")] -[assembly: AssemblyCopyright("Copyright © 2021")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("0ed8cd74-bb01-4f5b-ab14-7d88515a0882")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/MerchantSpawnTweaks/Properties/AssemblyInfo.cs b/MerchantSpawnTweaks/Properties/AssemblyInfo.cs deleted file mode 100644 index 4e20d4d..0000000 --- a/MerchantSpawnTweaks/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("MerchantSpawnTweaks")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("MerchantSpawnTweaks")] -[assembly: AssemblyCopyright("Copyright © 2021")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("4aa627b6-66ee-4a52-8983-28ada518c735")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PostProcessing/Properties/AssemblyInfo.cs b/PostProcessing/Properties/AssemblyInfo.cs deleted file mode 100644 index 4d49acb..0000000 --- a/PostProcessing/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("PostProcessing")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("PostProcessing")] -[assembly: AssemblyCopyright("Copyright © 2021")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("836db46b-86d6-47dd-8cf9-39be99a17b13")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/QuestFramework/Properties/AssemblyInfo.cs b/QuestFramework/Properties/AssemblyInfo.cs deleted file mode 100644 index 4493966..0000000 --- a/QuestFramework/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("QuestFramework")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("QuestFramework")] -[assembly: AssemblyCopyright("Copyright © 2021")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("d464e26e-c684-4f58-ab02-1bc4ca32454b")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/QuickStore/Properties/AssemblyInfo.cs b/QuickStore/Properties/AssemblyInfo.cs deleted file mode 100644 index a1605d4..0000000 --- a/QuickStore/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("QuickStore")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("QuickStore")] -[assembly: AssemblyCopyright("Copyright © 2021")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("26b8b5a6-6135-407b-b498-da38fced0c9e")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/RepeatActions/Properties/AssemblyInfo.cs b/RepeatActions/Properties/AssemblyInfo.cs deleted file mode 100644 index 899a0f2..0000000 --- a/RepeatActions/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("RepeatActions")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("RepeatActions")] -[assembly: AssemblyCopyright("Copyright © 2021")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("27964f69-935d-4366-9b2b-0632189c2b20")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/RequirementCheck/Properties/AssemblyInfo.cs b/RequirementCheck/Properties/AssemblyInfo.cs deleted file mode 100644 index f730356..0000000 --- a/RequirementCheck/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("KeyCheckAntiCheat")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("KeyCheckAntiCheat")] -[assembly: AssemblyCopyright("Copyright © 2021")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("cfbe6c20-076e-4427-ba49-557753ecdb09")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/TerraformTweaks/Properties/AssemblyInfo.cs b/TerraformTweaks/Properties/AssemblyInfo.cs deleted file mode 100644 index 1f4fedc..0000000 --- a/TerraformTweaks/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("TerraformTweaks")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("TerraformTweaks")] -[assembly: AssemblyCopyright("Copyright © 2021")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("3c71e421-2a98-4b06-b708-888e5e77d7f3")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/ValheimMods.sln b/ValheimMods.sln index 0666c11..f4aae77 100644 --- a/ValheimMods.sln +++ b/ValheimMods.sln @@ -243,21 +243,27 @@ Global EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {4679AA01-DD8C-473E-A88F-2B1D7A7306DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4679AA01-DD8C-473E-A88F-2B1D7A7306DC}.Debug|Any CPU.Build.0 = Debug|Any CPU {4679AA01-DD8C-473E-A88F-2B1D7A7306DC}.Release|Any CPU.ActiveCfg = Release|Any CPU {4679AA01-DD8C-473E-A88F-2B1D7A7306DC}.Release|Any CPU.Build.0 = Release|Any CPU {9A75D46F-077B-4719-ABEE-EA0934C070BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9A75D46F-077B-4719-ABEE-EA0934C070BC}.Debug|Any CPU.Build.0 = Debug|Any CPU {9A75D46F-077B-4719-ABEE-EA0934C070BC}.Release|Any CPU.ActiveCfg = Release|Any CPU {9A75D46F-077B-4719-ABEE-EA0934C070BC}.Release|Any CPU.Build.0 = Release|Any CPU {9C18D21E-6292-498C-95C8-F441224135B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9C18D21E-6292-498C-95C8-F441224135B5}.Debug|Any CPU.Build.0 = Debug|Any CPU {9C18D21E-6292-498C-95C8-F441224135B5}.Release|Any CPU.ActiveCfg = Release|Any CPU {9C18D21E-6292-498C-95C8-F441224135B5}.Release|Any CPU.Build.0 = Release|Any CPU {72A87FDD-73E4-4E8F-A866-0D7842D684C1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {72A87FDD-73E4-4E8F-A866-0D7842D684C1}.Debug|Any CPU.Build.0 = Debug|Any CPU {72A87FDD-73E4-4E8F-A866-0D7842D684C1}.Release|Any CPU.ActiveCfg = Release|Any CPU {72A87FDD-73E4-4E8F-A866-0D7842D684C1}.Release|Any CPU.Build.0 = Release|Any CPU {D19F8AE0-7192-42B5-94E9-30C8496F7394}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D19F8AE0-7192-42B5-94E9-30C8496F7394}.Debug|Any CPU.Build.0 = Debug|Any CPU {D19F8AE0-7192-42B5-94E9-30C8496F7394}.Release|Any CPU.ActiveCfg = Release|Any CPU {D19F8AE0-7192-42B5-94E9-30C8496F7394}.Release|Any CPU.Build.0 = Release|Any CPU {571E7C29-571A-41F0-9D93-2161DD20C36A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {571E7C29-571A-41F0-9D93-2161DD20C36A}.Debug|Any CPU.Build.0 = Debug|Any CPU {571E7C29-571A-41F0-9D93-2161DD20C36A}.Release|Any CPU.ActiveCfg = Release|Any CPU {571E7C29-571A-41F0-9D93-2161DD20C36A}.Release|Any CPU.Build.0 = Release|Any CPU {341D9492-226D-4381-9FDA-95DE6057033F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU @@ -265,12 +271,15 @@ Global {341D9492-226D-4381-9FDA-95DE6057033F}.Release|Any CPU.ActiveCfg = Release|Any CPU {341D9492-226D-4381-9FDA-95DE6057033F}.Release|Any CPU.Build.0 = Release|Any CPU {B827CA6A-3604-4617-A2B5-86D49F049F60}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B827CA6A-3604-4617-A2B5-86D49F049F60}.Debug|Any CPU.Build.0 = Debug|Any CPU {B827CA6A-3604-4617-A2B5-86D49F049F60}.Release|Any CPU.ActiveCfg = Release|Any CPU {B827CA6A-3604-4617-A2B5-86D49F049F60}.Release|Any CPU.Build.0 = Release|Any CPU {453B3B2F-54ED-42E3-995E-D306ECB518BA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {453B3B2F-54ED-42E3-995E-D306ECB518BA}.Debug|Any CPU.Build.0 = Debug|Any CPU {453B3B2F-54ED-42E3-995E-D306ECB518BA}.Release|Any CPU.ActiveCfg = Release|Any CPU {453B3B2F-54ED-42E3-995E-D306ECB518BA}.Release|Any CPU.Build.0 = Release|Any CPU {721B4F8C-9FC4-46A2-A359-2816E60F9488}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {721B4F8C-9FC4-46A2-A359-2816E60F9488}.Debug|Any CPU.Build.0 = Debug|Any CPU {721B4F8C-9FC4-46A2-A359-2816E60F9488}.Release|Any CPU.ActiveCfg = Release|Any CPU {721B4F8C-9FC4-46A2-A359-2816E60F9488}.Release|Any CPU.Build.0 = Release|Any CPU {F664E67E-D2B1-4AAE-B9E2-9E036BA3D2F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU @@ -278,39 +287,51 @@ Global {F664E67E-D2B1-4AAE-B9E2-9E036BA3D2F0}.Release|Any CPU.ActiveCfg = Release|Any CPU {F664E67E-D2B1-4AAE-B9E2-9E036BA3D2F0}.Release|Any CPU.Build.0 = Release|Any CPU {332F7475-7977-44C3-A511-CB13C56A8BD8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {332F7475-7977-44C3-A511-CB13C56A8BD8}.Debug|Any CPU.Build.0 = Debug|Any CPU {332F7475-7977-44C3-A511-CB13C56A8BD8}.Release|Any CPU.ActiveCfg = Release|Any CPU {332F7475-7977-44C3-A511-CB13C56A8BD8}.Release|Any CPU.Build.0 = Release|Any CPU {FD08909F-E5D9-45E6-AAE9-15D3791105DB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FD08909F-E5D9-45E6-AAE9-15D3791105DB}.Debug|Any CPU.Build.0 = Debug|Any CPU {FD08909F-E5D9-45E6-AAE9-15D3791105DB}.Release|Any CPU.ActiveCfg = Release|Any CPU {FD08909F-E5D9-45E6-AAE9-15D3791105DB}.Release|Any CPU.Build.0 = Release|Any CPU {3E0DB48D-E00B-4B24-B252-F4BC859BC2B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3E0DB48D-E00B-4B24-B252-F4BC859BC2B5}.Debug|Any CPU.Build.0 = Debug|Any CPU {3E0DB48D-E00B-4B24-B252-F4BC859BC2B5}.Release|Any CPU.ActiveCfg = Release|Any CPU {3E0DB48D-E00B-4B24-B252-F4BC859BC2B5}.Release|Any CPU.Build.0 = Release|Any CPU {3CA2F556-BB70-402C-ADC3-AC6F0145B6E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3CA2F556-BB70-402C-ADC3-AC6F0145B6E8}.Debug|Any CPU.Build.0 = Debug|Any CPU {3CA2F556-BB70-402C-ADC3-AC6F0145B6E8}.Release|Any CPU.ActiveCfg = Release|Any CPU {3CA2F556-BB70-402C-ADC3-AC6F0145B6E8}.Release|Any CPU.Build.0 = Release|Any CPU {F5F0D897-CEFF-416C-A9F8-B7A4F434B830}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F5F0D897-CEFF-416C-A9F8-B7A4F434B830}.Debug|Any CPU.Build.0 = Debug|Any CPU {F5F0D897-CEFF-416C-A9F8-B7A4F434B830}.Release|Any CPU.ActiveCfg = Release|Any CPU {F5F0D897-CEFF-416C-A9F8-B7A4F434B830}.Release|Any CPU.Build.0 = Release|Any CPU {310FBC9C-4084-4D42-AF12-02DB7AAECD28}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {310FBC9C-4084-4D42-AF12-02DB7AAECD28}.Debug|Any CPU.Build.0 = Debug|Any CPU {310FBC9C-4084-4D42-AF12-02DB7AAECD28}.Release|Any CPU.ActiveCfg = Release|Any CPU {310FBC9C-4084-4D42-AF12-02DB7AAECD28}.Release|Any CPU.Build.0 = Release|Any CPU {B60664F7-A85E-4302-B5C5-C475C1ABF8D3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B60664F7-A85E-4302-B5C5-C475C1ABF8D3}.Debug|Any CPU.Build.0 = Debug|Any CPU {B60664F7-A85E-4302-B5C5-C475C1ABF8D3}.Release|Any CPU.ActiveCfg = Release|Any CPU {B60664F7-A85E-4302-B5C5-C475C1ABF8D3}.Release|Any CPU.Build.0 = Release|Any CPU {0473B5A9-FABE-441F-A1CE-E3E77F61F098}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0473B5A9-FABE-441F-A1CE-E3E77F61F098}.Debug|Any CPU.Build.0 = Debug|Any CPU {0473B5A9-FABE-441F-A1CE-E3E77F61F098}.Release|Any CPU.ActiveCfg = Release|Any CPU {0473B5A9-FABE-441F-A1CE-E3E77F61F098}.Release|Any CPU.Build.0 = Release|Any CPU {46E92BC8-73B2-4C97-A55E-9B0385F496A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {46E92BC8-73B2-4C97-A55E-9B0385F496A9}.Debug|Any CPU.Build.0 = Debug|Any CPU {46E92BC8-73B2-4C97-A55E-9B0385F496A9}.Release|Any CPU.ActiveCfg = Release|Any CPU {46E92BC8-73B2-4C97-A55E-9B0385F496A9}.Release|Any CPU.Build.0 = Release|Any CPU {87660053-76CB-449E-9AB1-E750F55A0B4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {87660053-76CB-449E-9AB1-E750F55A0B4D}.Debug|Any CPU.Build.0 = Debug|Any CPU {87660053-76CB-449E-9AB1-E750F55A0B4D}.Release|Any CPU.ActiveCfg = Release|Any CPU {87660053-76CB-449E-9AB1-E750F55A0B4D}.Release|Any CPU.Build.0 = Release|Any CPU {F98B7653-0348-40D0-90F0-1D46880CF9AD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F98B7653-0348-40D0-90F0-1D46880CF9AD}.Debug|Any CPU.Build.0 = Debug|Any CPU {F98B7653-0348-40D0-90F0-1D46880CF9AD}.Release|Any CPU.ActiveCfg = Release|Any CPU {F98B7653-0348-40D0-90F0-1D46880CF9AD}.Release|Any CPU.Build.0 = Release|Any CPU {05E33387-F302-4EB9-B002-7DF95DD37CE7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {05E33387-F302-4EB9-B002-7DF95DD37CE7}.Debug|Any CPU.Build.0 = Debug|Any CPU {05E33387-F302-4EB9-B002-7DF95DD37CE7}.Release|Any CPU.ActiveCfg = Release|Any CPU {05E33387-F302-4EB9-B002-7DF95DD37CE7}.Release|Any CPU.Build.0 = Release|Any CPU {FC9E944F-8834-491C-A165-0DABFE80FDD6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU @@ -318,93 +339,123 @@ Global {FC9E944F-8834-491C-A165-0DABFE80FDD6}.Release|Any CPU.ActiveCfg = Release|Any CPU {FC9E944F-8834-491C-A165-0DABFE80FDD6}.Release|Any CPU.Build.0 = Release|Any CPU {766FBAFB-85B1-49D1-B262-98DDCFDB668D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {766FBAFB-85B1-49D1-B262-98DDCFDB668D}.Debug|Any CPU.Build.0 = Debug|Any CPU {766FBAFB-85B1-49D1-B262-98DDCFDB668D}.Release|Any CPU.ActiveCfg = Release|Any CPU {766FBAFB-85B1-49D1-B262-98DDCFDB668D}.Release|Any CPU.Build.0 = Release|Any CPU {6BCB72BB-3244-42B5-B283-0C080AD73EA7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6BCB72BB-3244-42B5-B283-0C080AD73EA7}.Debug|Any CPU.Build.0 = Debug|Any CPU {6BCB72BB-3244-42B5-B283-0C080AD73EA7}.Release|Any CPU.ActiveCfg = Release|Any CPU {6BCB72BB-3244-42B5-B283-0C080AD73EA7}.Release|Any CPU.Build.0 = Release|Any CPU {E6159595-5A40-4248-932C-98624B950FBF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E6159595-5A40-4248-932C-98624B950FBF}.Debug|Any CPU.Build.0 = Debug|Any CPU {E6159595-5A40-4248-932C-98624B950FBF}.Release|Any CPU.ActiveCfg = Release|Any CPU {E6159595-5A40-4248-932C-98624B950FBF}.Release|Any CPU.Build.0 = Release|Any CPU {BD7C5A4A-A394-4961-9DAC-3F6CF4203D57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BD7C5A4A-A394-4961-9DAC-3F6CF4203D57}.Debug|Any CPU.Build.0 = Debug|Any CPU {BD7C5A4A-A394-4961-9DAC-3F6CF4203D57}.Release|Any CPU.ActiveCfg = Release|Any CPU {BD7C5A4A-A394-4961-9DAC-3F6CF4203D57}.Release|Any CPU.Build.0 = Release|Any CPU {85610E11-6796-40FB-9E7B-32C5CA7C14A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {85610E11-6796-40FB-9E7B-32C5CA7C14A2}.Debug|Any CPU.Build.0 = Debug|Any CPU {85610E11-6796-40FB-9E7B-32C5CA7C14A2}.Release|Any CPU.ActiveCfg = Release|Any CPU {85610E11-6796-40FB-9E7B-32C5CA7C14A2}.Release|Any CPU.Build.0 = Release|Any CPU {EBBED5D5-6E40-4F03-A355-4D0F57E05FDA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EBBED5D5-6E40-4F03-A355-4D0F57E05FDA}.Debug|Any CPU.Build.0 = Debug|Any CPU {EBBED5D5-6E40-4F03-A355-4D0F57E05FDA}.Release|Any CPU.ActiveCfg = Release|Any CPU {EBBED5D5-6E40-4F03-A355-4D0F57E05FDA}.Release|Any CPU.Build.0 = Release|Any CPU {110352B6-6B4A-4172-898F-84018761AF2E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {110352B6-6B4A-4172-898F-84018761AF2E}.Debug|Any CPU.Build.0 = Debug|Any CPU {110352B6-6B4A-4172-898F-84018761AF2E}.Release|Any CPU.ActiveCfg = Release|Any CPU {110352B6-6B4A-4172-898F-84018761AF2E}.Release|Any CPU.Build.0 = Release|Any CPU {84C8AB36-5D72-41C3-B9C4-F00BB2850C17}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {84C8AB36-5D72-41C3-B9C4-F00BB2850C17}.Debug|Any CPU.Build.0 = Debug|Any CPU {84C8AB36-5D72-41C3-B9C4-F00BB2850C17}.Release|Any CPU.ActiveCfg = Release|Any CPU {84C8AB36-5D72-41C3-B9C4-F00BB2850C17}.Release|Any CPU.Build.0 = Release|Any CPU {96DE9EC4-ACC8-4D91-9E2D-D6D52A9B5425}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {96DE9EC4-ACC8-4D91-9E2D-D6D52A9B5425}.Debug|Any CPU.Build.0 = Debug|Any CPU {96DE9EC4-ACC8-4D91-9E2D-D6D52A9B5425}.Release|Any CPU.ActiveCfg = Release|Any CPU {96DE9EC4-ACC8-4D91-9E2D-D6D52A9B5425}.Release|Any CPU.Build.0 = Release|Any CPU {E9EDC6FF-AB75-4487-9D45-D60A9EDC7789}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E9EDC6FF-AB75-4487-9D45-D60A9EDC7789}.Debug|Any CPU.Build.0 = Debug|Any CPU {E9EDC6FF-AB75-4487-9D45-D60A9EDC7789}.Release|Any CPU.ActiveCfg = Release|Any CPU {E9EDC6FF-AB75-4487-9D45-D60A9EDC7789}.Release|Any CPU.Build.0 = Release|Any CPU {F98C028D-737B-41B1-AC78-AA89839F5655}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F98C028D-737B-41B1-AC78-AA89839F5655}.Debug|Any CPU.Build.0 = Debug|Any CPU {F98C028D-737B-41B1-AC78-AA89839F5655}.Release|Any CPU.ActiveCfg = Release|Any CPU {F98C028D-737B-41B1-AC78-AA89839F5655}.Release|Any CPU.Build.0 = Release|Any CPU {197882E5-903E-40FD-9963-3AFAFFC85978}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {197882E5-903E-40FD-9963-3AFAFFC85978}.Debug|Any CPU.Build.0 = Debug|Any CPU {197882E5-903E-40FD-9963-3AFAFFC85978}.Release|Any CPU.ActiveCfg = Release|Any CPU {197882E5-903E-40FD-9963-3AFAFFC85978}.Release|Any CPU.Build.0 = Release|Any CPU {DFA917A1-CFF4-454A-AE3F-38412D10B297}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DFA917A1-CFF4-454A-AE3F-38412D10B297}.Debug|Any CPU.Build.0 = Debug|Any CPU {DFA917A1-CFF4-454A-AE3F-38412D10B297}.Release|Any CPU.ActiveCfg = Release|Any CPU {DFA917A1-CFF4-454A-AE3F-38412D10B297}.Release|Any CPU.Build.0 = Release|Any CPU {D958DE95-7E2B-49B2-B2D9-866CC4F6D3F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D958DE95-7E2B-49B2-B2D9-866CC4F6D3F0}.Debug|Any CPU.Build.0 = Debug|Any CPU {D958DE95-7E2B-49B2-B2D9-866CC4F6D3F0}.Release|Any CPU.ActiveCfg = Release|Any CPU {D958DE95-7E2B-49B2-B2D9-866CC4F6D3F0}.Release|Any CPU.Build.0 = Release|Any CPU {EFF3C72E-CA27-4290-9869-44308747E719}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EFF3C72E-CA27-4290-9869-44308747E719}.Debug|Any CPU.Build.0 = Debug|Any CPU {EFF3C72E-CA27-4290-9869-44308747E719}.Release|Any CPU.ActiveCfg = Release|Any CPU {EFF3C72E-CA27-4290-9869-44308747E719}.Release|Any CPU.Build.0 = Release|Any CPU {E1E0580B-4932-44CA-A94D-B29FCF947D19}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E1E0580B-4932-44CA-A94D-B29FCF947D19}.Debug|Any CPU.Build.0 = Debug|Any CPU {E1E0580B-4932-44CA-A94D-B29FCF947D19}.Release|Any CPU.ActiveCfg = Release|Any CPU {E1E0580B-4932-44CA-A94D-B29FCF947D19}.Release|Any CPU.Build.0 = Release|Any CPU {F67BE8BE-C23C-4F9B-A91D-7B77AD1E8D55}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F67BE8BE-C23C-4F9B-A91D-7B77AD1E8D55}.Debug|Any CPU.Build.0 = Debug|Any CPU {F67BE8BE-C23C-4F9B-A91D-7B77AD1E8D55}.Release|Any CPU.ActiveCfg = Release|Any CPU {F67BE8BE-C23C-4F9B-A91D-7B77AD1E8D55}.Release|Any CPU.Build.0 = Release|Any CPU {7CA0E23D-7255-481D-966C-DD24AD9A85D0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7CA0E23D-7255-481D-966C-DD24AD9A85D0}.Debug|Any CPU.Build.0 = Debug|Any CPU {7CA0E23D-7255-481D-966C-DD24AD9A85D0}.Release|Any CPU.ActiveCfg = Release|Any CPU {7CA0E23D-7255-481D-966C-DD24AD9A85D0}.Release|Any CPU.Build.0 = Release|Any CPU {DA998B9B-ABEA-4389-82A8-1FCA3368ECE3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DA998B9B-ABEA-4389-82A8-1FCA3368ECE3}.Debug|Any CPU.Build.0 = Debug|Any CPU {DA998B9B-ABEA-4389-82A8-1FCA3368ECE3}.Release|Any CPU.ActiveCfg = Release|Any CPU {DA998B9B-ABEA-4389-82A8-1FCA3368ECE3}.Release|Any CPU.Build.0 = Release|Any CPU {56A9443B-6C54-4C7A-84E8-C5CBDBA0E6FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {56A9443B-6C54-4C7A-84E8-C5CBDBA0E6FD}.Debug|Any CPU.Build.0 = Debug|Any CPU {56A9443B-6C54-4C7A-84E8-C5CBDBA0E6FD}.Release|Any CPU.ActiveCfg = Release|Any CPU {56A9443B-6C54-4C7A-84E8-C5CBDBA0E6FD}.Release|Any CPU.Build.0 = Release|Any CPU {C3ADDFBA-2DAE-4AD4-B99F-EBC0990D5E7F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C3ADDFBA-2DAE-4AD4-B99F-EBC0990D5E7F}.Debug|Any CPU.Build.0 = Debug|Any CPU {C3ADDFBA-2DAE-4AD4-B99F-EBC0990D5E7F}.Release|Any CPU.ActiveCfg = Release|Any CPU {C3ADDFBA-2DAE-4AD4-B99F-EBC0990D5E7F}.Release|Any CPU.Build.0 = Release|Any CPU {FD682840-FDBD-4548-84FB-0A1B153A82DA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FD682840-FDBD-4548-84FB-0A1B153A82DA}.Debug|Any CPU.Build.0 = Debug|Any CPU {FD682840-FDBD-4548-84FB-0A1B153A82DA}.Release|Any CPU.ActiveCfg = Release|Any CPU {FD682840-FDBD-4548-84FB-0A1B153A82DA}.Release|Any CPU.Build.0 = Release|Any CPU {DFC06E5E-D824-4A04-A72D-1984C77AA300}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DFC06E5E-D824-4A04-A72D-1984C77AA300}.Debug|Any CPU.Build.0 = Debug|Any CPU {DFC06E5E-D824-4A04-A72D-1984C77AA300}.Release|Any CPU.ActiveCfg = Release|Any CPU {DFC06E5E-D824-4A04-A72D-1984C77AA300}.Release|Any CPU.Build.0 = Release|Any CPU {5A03AFEC-CBFE-460E-B7DE-CEF3275C2D98}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5A03AFEC-CBFE-460E-B7DE-CEF3275C2D98}.Debug|Any CPU.Build.0 = Debug|Any CPU {5A03AFEC-CBFE-460E-B7DE-CEF3275C2D98}.Release|Any CPU.ActiveCfg = Release|Any CPU {5A03AFEC-CBFE-460E-B7DE-CEF3275C2D98}.Release|Any CPU.Build.0 = Release|Any CPU {DEC85537-0690-45D5-BD02-8BC28F67443D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DEC85537-0690-45D5-BD02-8BC28F67443D}.Debug|Any CPU.Build.0 = Debug|Any CPU {DEC85537-0690-45D5-BD02-8BC28F67443D}.Release|Any CPU.ActiveCfg = Release|Any CPU {DEC85537-0690-45D5-BD02-8BC28F67443D}.Release|Any CPU.Build.0 = Release|Any CPU {080E3A8C-7284-45FE-865D-CBC07C4725CF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {080E3A8C-7284-45FE-865D-CBC07C4725CF}.Debug|Any CPU.Build.0 = Debug|Any CPU {080E3A8C-7284-45FE-865D-CBC07C4725CF}.Release|Any CPU.ActiveCfg = Release|Any CPU {080E3A8C-7284-45FE-865D-CBC07C4725CF}.Release|Any CPU.Build.0 = Release|Any CPU {EF6F8026-740F-4E17-A09F-3EEAC37319A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EF6F8026-740F-4E17-A09F-3EEAC37319A5}.Debug|Any CPU.Build.0 = Debug|Any CPU {EF6F8026-740F-4E17-A09F-3EEAC37319A5}.Release|Any CPU.ActiveCfg = Release|Any CPU {EF6F8026-740F-4E17-A09F-3EEAC37319A5}.Release|Any CPU.Build.0 = Release|Any CPU {612657EF-E3FD-4D61-98C2-66D191CCC1D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {612657EF-E3FD-4D61-98C2-66D191CCC1D9}.Debug|Any CPU.Build.0 = Debug|Any CPU {612657EF-E3FD-4D61-98C2-66D191CCC1D9}.Release|Any CPU.ActiveCfg = Release|Any CPU {612657EF-E3FD-4D61-98C2-66D191CCC1D9}.Release|Any CPU.Build.0 = Release|Any CPU {6ABC7498-9885-4913-865C-017090A58FEE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6ABC7498-9885-4913-865C-017090A58FEE}.Debug|Any CPU.Build.0 = Debug|Any CPU {6ABC7498-9885-4913-865C-017090A58FEE}.Release|Any CPU.ActiveCfg = Release|Any CPU {6ABC7498-9885-4913-865C-017090A58FEE}.Release|Any CPU.Build.0 = Release|Any CPU {E4A787A2-D08D-4F41-A287-800093FFCFCB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E4A787A2-D08D-4F41-A287-800093FFCFCB}.Debug|Any CPU.Build.0 = Debug|Any CPU {E4A787A2-D08D-4F41-A287-800093FFCFCB}.Release|Any CPU.ActiveCfg = Release|Any CPU {E4A787A2-D08D-4F41-A287-800093FFCFCB}.Release|Any CPU.Build.0 = Release|Any CPU {430D8DC6-D188-4D3C-8EC4-D67065267320}.Debug|Any CPU.ActiveCfg = Debug|Any CPU @@ -412,15 +463,19 @@ Global {430D8DC6-D188-4D3C-8EC4-D67065267320}.Release|Any CPU.ActiveCfg = Release|Any CPU {430D8DC6-D188-4D3C-8EC4-D67065267320}.Release|Any CPU.Build.0 = Release|Any CPU {348B29C1-CBCE-41BA-A524-60B9FBC49757}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {348B29C1-CBCE-41BA-A524-60B9FBC49757}.Debug|Any CPU.Build.0 = Debug|Any CPU {348B29C1-CBCE-41BA-A524-60B9FBC49757}.Release|Any CPU.ActiveCfg = Release|Any CPU {348B29C1-CBCE-41BA-A524-60B9FBC49757}.Release|Any CPU.Build.0 = Release|Any CPU {104215E5-C277-4D43-A52C-B31467312299}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {104215E5-C277-4D43-A52C-B31467312299}.Debug|Any CPU.Build.0 = Debug|Any CPU {104215E5-C277-4D43-A52C-B31467312299}.Release|Any CPU.ActiveCfg = Release|Any CPU {104215E5-C277-4D43-A52C-B31467312299}.Release|Any CPU.Build.0 = Release|Any CPU {844E25D7-5D76-43C4-AC56-5136E801084D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {844E25D7-5D76-43C4-AC56-5136E801084D}.Debug|Any CPU.Build.0 = Debug|Any CPU {844E25D7-5D76-43C4-AC56-5136E801084D}.Release|Any CPU.ActiveCfg = Release|Any CPU {844E25D7-5D76-43C4-AC56-5136E801084D}.Release|Any CPU.Build.0 = Release|Any CPU {EA29414E-93F8-472B-90AF-B46D5F2C0C2C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EA29414E-93F8-472B-90AF-B46D5F2C0C2C}.Debug|Any CPU.Build.0 = Debug|Any CPU {EA29414E-93F8-472B-90AF-B46D5F2C0C2C}.Release|Any CPU.ActiveCfg = Release|Any CPU {EA29414E-93F8-472B-90AF-B46D5F2C0C2C}.Release|Any CPU.Build.0 = Release|Any CPU {6BB20CFB-D3F8-4C89-98C0-5FC2C6B31372}.Debug|Any CPU.ActiveCfg = Debug|Any CPU @@ -428,6 +483,7 @@ Global {6BB20CFB-D3F8-4C89-98C0-5FC2C6B31372}.Release|Any CPU.ActiveCfg = Release|Any CPU {6BB20CFB-D3F8-4C89-98C0-5FC2C6B31372}.Release|Any CPU.Build.0 = Release|Any CPU {155A25D0-60B0-4D1C-B53A-6A262612B02B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {155A25D0-60B0-4D1C-B53A-6A262612B02B}.Debug|Any CPU.Build.0 = Debug|Any CPU {155A25D0-60B0-4D1C-B53A-6A262612B02B}.Release|Any CPU.ActiveCfg = Release|Any CPU {155A25D0-60B0-4D1C-B53A-6A262612B02B}.Release|Any CPU.Build.0 = Release|Any CPU {F3FE9EEB-505D-4BBB-A164-DCA766BF42B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU @@ -435,21 +491,27 @@ Global {F3FE9EEB-505D-4BBB-A164-DCA766BF42B5}.Release|Any CPU.ActiveCfg = Release|Any CPU {F3FE9EEB-505D-4BBB-A164-DCA766BF42B5}.Release|Any CPU.Build.0 = Release|Any CPU {0B6AFC30-0900-490A-88B4-96B779519B9D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0B6AFC30-0900-490A-88B4-96B779519B9D}.Debug|Any CPU.Build.0 = Debug|Any CPU {0B6AFC30-0900-490A-88B4-96B779519B9D}.Release|Any CPU.ActiveCfg = Release|Any CPU {0B6AFC30-0900-490A-88B4-96B779519B9D}.Release|Any CPU.Build.0 = Release|Any CPU {65432E8F-25EC-459C-911E-F1344A9BC012}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {65432E8F-25EC-459C-911E-F1344A9BC012}.Debug|Any CPU.Build.0 = Debug|Any CPU {65432E8F-25EC-459C-911E-F1344A9BC012}.Release|Any CPU.ActiveCfg = Release|Any CPU {65432E8F-25EC-459C-911E-F1344A9BC012}.Release|Any CPU.Build.0 = Release|Any CPU {4AA627B6-66EE-4A52-8983-28ADA518C735}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4AA627B6-66EE-4A52-8983-28ADA518C735}.Debug|Any CPU.Build.0 = Debug|Any CPU {4AA627B6-66EE-4A52-8983-28ADA518C735}.Release|Any CPU.ActiveCfg = Release|Any CPU {4AA627B6-66EE-4A52-8983-28ADA518C735}.Release|Any CPU.Build.0 = Release|Any CPU {779BE120-644F-4AB1-A6B6-D684738E7473}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {779BE120-644F-4AB1-A6B6-D684738E7473}.Debug|Any CPU.Build.0 = Debug|Any CPU {779BE120-644F-4AB1-A6B6-D684738E7473}.Release|Any CPU.ActiveCfg = Release|Any CPU {779BE120-644F-4AB1-A6B6-D684738E7473}.Release|Any CPU.Build.0 = Release|Any CPU {2A3A0C62-40E5-4D77-AE6E-6466D8AD7648}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2A3A0C62-40E5-4D77-AE6E-6466D8AD7648}.Debug|Any CPU.Build.0 = Debug|Any CPU {2A3A0C62-40E5-4D77-AE6E-6466D8AD7648}.Release|Any CPU.ActiveCfg = Release|Any CPU {2A3A0C62-40E5-4D77-AE6E-6466D8AD7648}.Release|Any CPU.Build.0 = Release|Any CPU {D9807E29-FF87-497E-A460-70742308C97E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D9807E29-FF87-497E-A460-70742308C97E}.Debug|Any CPU.Build.0 = Debug|Any CPU {D9807E29-FF87-497E-A460-70742308C97E}.Release|Any CPU.ActiveCfg = Release|Any CPU {D9807E29-FF87-497E-A460-70742308C97E}.Release|Any CPU.Build.0 = Release|Any CPU {4A4941B7-3227-4D66-AE89-D9FFD36996C4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU @@ -457,60 +519,79 @@ Global {4A4941B7-3227-4D66-AE89-D9FFD36996C4}.Release|Any CPU.ActiveCfg = Release|Any CPU {4A4941B7-3227-4D66-AE89-D9FFD36996C4}.Release|Any CPU.Build.0 = Release|Any CPU {8A279F25-FDA7-4D4B-8D6F-BC6D1AD3B7AE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8A279F25-FDA7-4D4B-8D6F-BC6D1AD3B7AE}.Debug|Any CPU.Build.0 = Debug|Any CPU {8A279F25-FDA7-4D4B-8D6F-BC6D1AD3B7AE}.Release|Any CPU.ActiveCfg = Release|Any CPU {8A279F25-FDA7-4D4B-8D6F-BC6D1AD3B7AE}.Release|Any CPU.Build.0 = Release|Any CPU {3860C0FF-3BB7-4B41-A635-00C7CB53226D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3860C0FF-3BB7-4B41-A635-00C7CB53226D}.Debug|Any CPU.Build.0 = Debug|Any CPU {3860C0FF-3BB7-4B41-A635-00C7CB53226D}.Release|Any CPU.ActiveCfg = Release|Any CPU {3860C0FF-3BB7-4B41-A635-00C7CB53226D}.Release|Any CPU.Build.0 = Release|Any CPU {4C30DAEE-FAFD-4CA0-93B2-316F772D06BA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4C30DAEE-FAFD-4CA0-93B2-316F772D06BA}.Debug|Any CPU.Build.0 = Debug|Any CPU {4C30DAEE-FAFD-4CA0-93B2-316F772D06BA}.Release|Any CPU.ActiveCfg = Release|Any CPU {4C30DAEE-FAFD-4CA0-93B2-316F772D06BA}.Release|Any CPU.Build.0 = Release|Any CPU {5434D738-3B1F-4C7E-8805-AF3A7310A9F7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5434D738-3B1F-4C7E-8805-AF3A7310A9F7}.Debug|Any CPU.Build.0 = Debug|Any CPU {5434D738-3B1F-4C7E-8805-AF3A7310A9F7}.Release|Any CPU.ActiveCfg = Release|Any CPU {5434D738-3B1F-4C7E-8805-AF3A7310A9F7}.Release|Any CPU.Build.0 = Release|Any CPU {3C71E421-2A98-4B06-B708-888E5E77D7F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3C71E421-2A98-4B06-B708-888E5E77D7F3}.Debug|Any CPU.Build.0 = Debug|Any CPU {3C71E421-2A98-4B06-B708-888E5E77D7F3}.Release|Any CPU.ActiveCfg = Release|Any CPU {3C71E421-2A98-4B06-B708-888E5E77D7F3}.Release|Any CPU.Build.0 = Release|Any CPU {C0BD6D8D-50BD-4C80-BD59-1AFB17E146C3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C0BD6D8D-50BD-4C80-BD59-1AFB17E146C3}.Debug|Any CPU.Build.0 = Debug|Any CPU {C0BD6D8D-50BD-4C80-BD59-1AFB17E146C3}.Release|Any CPU.ActiveCfg = Release|Any CPU {C0BD6D8D-50BD-4C80-BD59-1AFB17E146C3}.Release|Any CPU.Build.0 = Release|Any CPU {2A3431AE-002D-4B07-B681-21942166995C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2A3431AE-002D-4B07-B681-21942166995C}.Debug|Any CPU.Build.0 = Debug|Any CPU {2A3431AE-002D-4B07-B681-21942166995C}.Release|Any CPU.ActiveCfg = Release|Any CPU {2A3431AE-002D-4B07-B681-21942166995C}.Release|Any CPU.Build.0 = Release|Any CPU {A775ED6F-5FD3-4315-BD97-537BF9999300}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A775ED6F-5FD3-4315-BD97-537BF9999300}.Debug|Any CPU.Build.0 = Debug|Any CPU {A775ED6F-5FD3-4315-BD97-537BF9999300}.Release|Any CPU.ActiveCfg = Release|Any CPU {A775ED6F-5FD3-4315-BD97-537BF9999300}.Release|Any CPU.Build.0 = Release|Any CPU {9A3F6016-5760-4975-8217-5731AC5E8AB4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9A3F6016-5760-4975-8217-5731AC5E8AB4}.Debug|Any CPU.Build.0 = Debug|Any CPU {9A3F6016-5760-4975-8217-5731AC5E8AB4}.Release|Any CPU.ActiveCfg = Release|Any CPU {9A3F6016-5760-4975-8217-5731AC5E8AB4}.Release|Any CPU.Build.0 = Release|Any CPU {0EFD1FBE-B627-4680-9A66-B95AA347EB48}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0EFD1FBE-B627-4680-9A66-B95AA347EB48}.Debug|Any CPU.Build.0 = Debug|Any CPU {0EFD1FBE-B627-4680-9A66-B95AA347EB48}.Release|Any CPU.ActiveCfg = Release|Any CPU {0EFD1FBE-B627-4680-9A66-B95AA347EB48}.Release|Any CPU.Build.0 = Release|Any CPU {765DCF89-5FB5-4508-AB77-112EE42C7038}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {765DCF89-5FB5-4508-AB77-112EE42C7038}.Debug|Any CPU.Build.0 = Debug|Any CPU {765DCF89-5FB5-4508-AB77-112EE42C7038}.Release|Any CPU.ActiveCfg = Release|Any CPU {765DCF89-5FB5-4508-AB77-112EE42C7038}.Release|Any CPU.Build.0 = Release|Any CPU {F548BD14-E8AA-4223-B6E1-4307267A8D8F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F548BD14-E8AA-4223-B6E1-4307267A8D8F}.Debug|Any CPU.Build.0 = Debug|Any CPU {F548BD14-E8AA-4223-B6E1-4307267A8D8F}.Release|Any CPU.ActiveCfg = Release|Any CPU {F548BD14-E8AA-4223-B6E1-4307267A8D8F}.Release|Any CPU.Build.0 = Release|Any CPU {C895D63B-7C0B-4C7E-BF79-E95B4DEED088}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C895D63B-7C0B-4C7E-BF79-E95B4DEED088}.Debug|Any CPU.Build.0 = Debug|Any CPU {C895D63B-7C0B-4C7E-BF79-E95B4DEED088}.Release|Any CPU.ActiveCfg = Release|Any CPU {C895D63B-7C0B-4C7E-BF79-E95B4DEED088}.Release|Any CPU.Build.0 = Release|Any CPU {94812B4A-CEFA-453C-BFF1-31C702D17C8B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {94812B4A-CEFA-453C-BFF1-31C702D17C8B}.Debug|Any CPU.Build.0 = Debug|Any CPU {94812B4A-CEFA-453C-BFF1-31C702D17C8B}.Release|Any CPU.ActiveCfg = Release|Any CPU {94812B4A-CEFA-453C-BFF1-31C702D17C8B}.Release|Any CPU.Build.0 = Release|Any CPU {D08034EB-046A-4811-A84B-55A4DB3386D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D08034EB-046A-4811-A84B-55A4DB3386D4}.Debug|Any CPU.Build.0 = Debug|Any CPU {D08034EB-046A-4811-A84B-55A4DB3386D4}.Release|Any CPU.ActiveCfg = Release|Any CPU {D08034EB-046A-4811-A84B-55A4DB3386D4}.Release|Any CPU.Build.0 = Release|Any CPU {DA3D9481-22D5-427A-9ECB-F60644FCAB78}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DA3D9481-22D5-427A-9ECB-F60644FCAB78}.Debug|Any CPU.Build.0 = Debug|Any CPU {DA3D9481-22D5-427A-9ECB-F60644FCAB78}.Release|Any CPU.ActiveCfg = Release|Any CPU {DA3D9481-22D5-427A-9ECB-F60644FCAB78}.Release|Any CPU.Build.0 = Release|Any CPU {FD5B3515-66D6-4724-99D2-805B8D35966C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FD5B3515-66D6-4724-99D2-805B8D35966C}.Debug|Any CPU.Build.0 = Debug|Any CPU {FD5B3515-66D6-4724-99D2-805B8D35966C}.Release|Any CPU.ActiveCfg = Release|Any CPU {FD5B3515-66D6-4724-99D2-805B8D35966C}.Release|Any CPU.Build.0 = Release|Any CPU {27964F69-935D-4366-9B2B-0632189C2B20}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {27964F69-935D-4366-9B2B-0632189C2B20}.Debug|Any CPU.Build.0 = Debug|Any CPU {27964F69-935D-4366-9B2B-0632189C2B20}.Release|Any CPU.ActiveCfg = Release|Any CPU {27964F69-935D-4366-9B2B-0632189C2B20}.Release|Any CPU.Build.0 = Release|Any CPU {DCFD5456-8398-4A2B-8FF8-9A710D3DC29C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DCFD5456-8398-4A2B-8FF8-9A710D3DC29C}.Debug|Any CPU.Build.0 = Debug|Any CPU {DCFD5456-8398-4A2B-8FF8-9A710D3DC29C}.Release|Any CPU.ActiveCfg = Release|Any CPU {DCFD5456-8398-4A2B-8FF8-9A710D3DC29C}.Release|Any CPU.Build.0 = Release|Any CPU {683CB9AD-97C5-4EEA-8E12-80086B3C5380}.Debug|Any CPU.ActiveCfg = Debug|Any CPU @@ -518,75 +599,99 @@ Global {683CB9AD-97C5-4EEA-8E12-80086B3C5380}.Release|Any CPU.ActiveCfg = Release|Any CPU {683CB9AD-97C5-4EEA-8E12-80086B3C5380}.Release|Any CPU.Build.0 = Release|Any CPU {01EF2E61-7968-4D38-9AAC-F719601F34C4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {01EF2E61-7968-4D38-9AAC-F719601F34C4}.Debug|Any CPU.Build.0 = Debug|Any CPU {01EF2E61-7968-4D38-9AAC-F719601F34C4}.Release|Any CPU.ActiveCfg = Release|Any CPU {01EF2E61-7968-4D38-9AAC-F719601F34C4}.Release|Any CPU.Build.0 = Release|Any CPU {B3F320B3-ECF4-4CCB-95E7-203794224C4F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B3F320B3-ECF4-4CCB-95E7-203794224C4F}.Debug|Any CPU.Build.0 = Debug|Any CPU {B3F320B3-ECF4-4CCB-95E7-203794224C4F}.Release|Any CPU.ActiveCfg = Release|Any CPU {B3F320B3-ECF4-4CCB-95E7-203794224C4F}.Release|Any CPU.Build.0 = Release|Any CPU {CFBE6C20-076E-4427-BA49-557753ECDB09}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CFBE6C20-076E-4427-BA49-557753ECDB09}.Debug|Any CPU.Build.0 = Debug|Any CPU {CFBE6C20-076E-4427-BA49-557753ECDB09}.Release|Any CPU.ActiveCfg = Release|Any CPU {CFBE6C20-076E-4427-BA49-557753ECDB09}.Release|Any CPU.Build.0 = Release|Any CPU {A8848F4C-E3C6-49DC-98F9-3E2065B24B46}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A8848F4C-E3C6-49DC-98F9-3E2065B24B46}.Debug|Any CPU.Build.0 = Debug|Any CPU {A8848F4C-E3C6-49DC-98F9-3E2065B24B46}.Release|Any CPU.ActiveCfg = Release|Any CPU {A8848F4C-E3C6-49DC-98F9-3E2065B24B46}.Release|Any CPU.Build.0 = Release|Any CPU {0ED8CD74-BB01-4F5B-AB14-7D88515A0882}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0ED8CD74-BB01-4F5B-AB14-7D88515A0882}.Debug|Any CPU.Build.0 = Debug|Any CPU {0ED8CD74-BB01-4F5B-AB14-7D88515A0882}.Release|Any CPU.ActiveCfg = Release|Any CPU {0ED8CD74-BB01-4F5B-AB14-7D88515A0882}.Release|Any CPU.Build.0 = Release|Any CPU {83CA0D39-50F6-450B-A596-5D3535675FD7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {83CA0D39-50F6-450B-A596-5D3535675FD7}.Debug|Any CPU.Build.0 = Debug|Any CPU {83CA0D39-50F6-450B-A596-5D3535675FD7}.Release|Any CPU.ActiveCfg = Release|Any CPU {83CA0D39-50F6-450B-A596-5D3535675FD7}.Release|Any CPU.Build.0 = Release|Any CPU {AB1E5CA2-0722-4A12-99B5-9EA15C00B532}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AB1E5CA2-0722-4A12-99B5-9EA15C00B532}.Debug|Any CPU.Build.0 = Debug|Any CPU {AB1E5CA2-0722-4A12-99B5-9EA15C00B532}.Release|Any CPU.ActiveCfg = Release|Any CPU {AB1E5CA2-0722-4A12-99B5-9EA15C00B532}.Release|Any CPU.Build.0 = Release|Any CPU {DB0A4C79-B840-4431-954B-43C26A1CBFB4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DB0A4C79-B840-4431-954B-43C26A1CBFB4}.Debug|Any CPU.Build.0 = Debug|Any CPU {DB0A4C79-B840-4431-954B-43C26A1CBFB4}.Release|Any CPU.ActiveCfg = Release|Any CPU {DB0A4C79-B840-4431-954B-43C26A1CBFB4}.Release|Any CPU.Build.0 = Release|Any CPU {5A93EC88-9788-43E0-92EA-9496B86C26E6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5A93EC88-9788-43E0-92EA-9496B86C26E6}.Debug|Any CPU.Build.0 = Debug|Any CPU {5A93EC88-9788-43E0-92EA-9496B86C26E6}.Release|Any CPU.ActiveCfg = Release|Any CPU {5A93EC88-9788-43E0-92EA-9496B86C26E6}.Release|Any CPU.Build.0 = Release|Any CPU {42C550DD-AB81-427E-94FC-7F057941D6AA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {42C550DD-AB81-427E-94FC-7F057941D6AA}.Debug|Any CPU.Build.0 = Debug|Any CPU {42C550DD-AB81-427E-94FC-7F057941D6AA}.Release|Any CPU.ActiveCfg = Release|Any CPU {42C550DD-AB81-427E-94FC-7F057941D6AA}.Release|Any CPU.Build.0 = Release|Any CPU {D464E26E-C684-4F58-AB02-1BC4CA32454B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D464E26E-C684-4F58-AB02-1BC4CA32454B}.Debug|Any CPU.Build.0 = Debug|Any CPU {D464E26E-C684-4F58-AB02-1BC4CA32454B}.Release|Any CPU.ActiveCfg = Release|Any CPU {D464E26E-C684-4F58-AB02-1BC4CA32454B}.Release|Any CPU.Build.0 = Release|Any CPU {EAED7B73-E459-489F-AC7D-4DACC3197D9A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EAED7B73-E459-489F-AC7D-4DACC3197D9A}.Debug|Any CPU.Build.0 = Debug|Any CPU {EAED7B73-E459-489F-AC7D-4DACC3197D9A}.Release|Any CPU.ActiveCfg = Release|Any CPU {EAED7B73-E459-489F-AC7D-4DACC3197D9A}.Release|Any CPU.Build.0 = Release|Any CPU {6C33BCCD-3BC1-4C47-9BAF-59BA4CC1A8A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6C33BCCD-3BC1-4C47-9BAF-59BA4CC1A8A9}.Debug|Any CPU.Build.0 = Debug|Any CPU {6C33BCCD-3BC1-4C47-9BAF-59BA4CC1A8A9}.Release|Any CPU.ActiveCfg = Release|Any CPU {6C33BCCD-3BC1-4C47-9BAF-59BA4CC1A8A9}.Release|Any CPU.Build.0 = Release|Any CPU {0841DB40-1807-4CBF-9F54-9548D36C581D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0841DB40-1807-4CBF-9F54-9548D36C581D}.Debug|Any CPU.Build.0 = Debug|Any CPU {0841DB40-1807-4CBF-9F54-9548D36C581D}.Release|Any CPU.ActiveCfg = Release|Any CPU {0841DB40-1807-4CBF-9F54-9548D36C581D}.Release|Any CPU.Build.0 = Release|Any CPU {836DB46B-86D6-47DD-8CF9-39BE99A17B13}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {836DB46B-86D6-47DD-8CF9-39BE99A17B13}.Debug|Any CPU.Build.0 = Debug|Any CPU {836DB46B-86D6-47DD-8CF9-39BE99A17B13}.Release|Any CPU.ActiveCfg = Release|Any CPU {836DB46B-86D6-47DD-8CF9-39BE99A17B13}.Release|Any CPU.Build.0 = Release|Any CPU {26B8B5A6-6135-407B-B498-DA38FCED0C9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {26B8B5A6-6135-407B-B498-DA38FCED0C9E}.Debug|Any CPU.Build.0 = Debug|Any CPU {26B8B5A6-6135-407B-B498-DA38FCED0C9E}.Release|Any CPU.ActiveCfg = Release|Any CPU {26B8B5A6-6135-407B-B498-DA38FCED0C9E}.Release|Any CPU.Build.0 = Release|Any CPU {323AB4E9-12C2-4680-9D2F-1A1C66C45FF4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {323AB4E9-12C2-4680-9D2F-1A1C66C45FF4}.Debug|Any CPU.Build.0 = Debug|Any CPU {323AB4E9-12C2-4680-9D2F-1A1C66C45FF4}.Release|Any CPU.ActiveCfg = Release|Any CPU {323AB4E9-12C2-4680-9D2F-1A1C66C45FF4}.Release|Any CPU.Build.0 = Release|Any CPU {E024A64C-242E-4E07-A9CE-3B19028C3240}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E024A64C-242E-4E07-A9CE-3B19028C3240}.Debug|Any CPU.Build.0 = Debug|Any CPU {E024A64C-242E-4E07-A9CE-3B19028C3240}.Release|Any CPU.ActiveCfg = Release|Any CPU {E024A64C-242E-4E07-A9CE-3B19028C3240}.Release|Any CPU.Build.0 = Release|Any CPU {EA37AB73-1EA7-4994-86B0-031854D737A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EA37AB73-1EA7-4994-86B0-031854D737A8}.Debug|Any CPU.Build.0 = Debug|Any CPU {EA37AB73-1EA7-4994-86B0-031854D737A8}.Release|Any CPU.ActiveCfg = Release|Any CPU {EA37AB73-1EA7-4994-86B0-031854D737A8}.Release|Any CPU.Build.0 = Release|Any CPU {1FE586BD-20F6-442B-BB89-119E30AC4E72}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1FE586BD-20F6-442B-BB89-119E30AC4E72}.Debug|Any CPU.Build.0 = Debug|Any CPU {1FE586BD-20F6-442B-BB89-119E30AC4E72}.Release|Any CPU.ActiveCfg = Release|Any CPU {1FE586BD-20F6-442B-BB89-119E30AC4E72}.Release|Any CPU.Build.0 = Release|Any CPU {62B64432-DA6B-483E-BEFC-AB8D0F75F806}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {62B64432-DA6B-483E-BEFC-AB8D0F75F806}.Debug|Any CPU.Build.0 = Debug|Any CPU {62B64432-DA6B-483E-BEFC-AB8D0F75F806}.Release|Any CPU.ActiveCfg = Release|Any CPU {62B64432-DA6B-483E-BEFC-AB8D0F75F806}.Release|Any CPU.Build.0 = Release|Any CPU {A5BEAA87-6609-4656-A318-F2D43F1BA775}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A5BEAA87-6609-4656-A318-F2D43F1BA775}.Debug|Any CPU.Build.0 = Debug|Any CPU {A5BEAA87-6609-4656-A318-F2D43F1BA775}.Release|Any CPU.ActiveCfg = Release|Any CPU {A5BEAA87-6609-4656-A318-F2D43F1BA775}.Release|Any CPU.Build.0 = Release|Any CPU {44168560-C410-4CD2-9C96-1809BCF5F8FF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {44168560-C410-4CD2-9C96-1809BCF5F8FF}.Debug|Any CPU.Build.0 = Debug|Any CPU {44168560-C410-4CD2-9C96-1809BCF5F8FF}.Release|Any CPU.ActiveCfg = Release|Any CPU {44168560-C410-4CD2-9C96-1809BCF5F8FF}.Release|Any CPU.Build.0 = Release|Any CPU {935DEB5B-8D26-4925-80B1-12F1A9AF2883}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {935DEB5B-8D26-4925-80B1-12F1A9AF2883}.Debug|Any CPU.Build.0 = Debug|Any CPU {935DEB5B-8D26-4925-80B1-12F1A9AF2883}.Release|Any CPU.ActiveCfg = Release|Any CPU {935DEB5B-8D26-4925-80B1-12F1A9AF2883}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection diff --git a/valheim.targets b/valheim.targets index c527c18..94bfeb3 100644 --- a/valheim.targets +++ b/valheim.targets @@ -260,7 +260,16 @@ + + + + + + + + From 0744606e9f932531b5ccf3febf4feccdad075827 Mon Sep 17 00:00:00 2001 From: Maximilian Reinhart Date: Sat, 1 Jun 2024 11:50:27 +0200 Subject: [PATCH 09/21] added null check on audio clip --- CustomAudio/BepInExPlugin.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CustomAudio/BepInExPlugin.cs b/CustomAudio/BepInExPlugin.cs index a7421ad..194321f 100644 --- a/CustomAudio/BepInExPlugin.cs +++ b/CustomAudio/BepInExPlugin.cs @@ -342,6 +342,9 @@ static void Postfix(AudioMan __instance, List ___m_rando dump.Add($"\tAmbient day tracks: (use {___m_randomAmbients[i].m_name}_day)"); for (int j = 0; j < ___m_randomAmbients[i].m_randomAmbientClipsDay.Count; j++) { + if (__instance.m_randomAmbients[i].m_randomAmbientClipsDay[j] == null) + continue; + dump.Add($"\t\ttrack name: {___m_randomAmbients[i].m_randomAmbientClipsDay[j].name}"); //Dbgl($"checking ambient day: { ___m_randomAmbients[i].m_name}, clip: {___m_randomAmbients[i].m_randomAmbientClipsDay[j].name}"); @@ -354,6 +357,9 @@ static void Postfix(AudioMan __instance, List ___m_rando dump.Add($"\tAmbient night tracks: (use {___m_randomAmbients[i].m_name}_night)"); for (int j = 0; j < ___m_randomAmbients[i].m_randomAmbientClipsNight.Count; j++) { + if (__instance.m_randomAmbients[i].m_randomAmbientClipsNight[j] == null) + continue; + dump.Add($"\t\ttrack name: {___m_randomAmbients[i].m_randomAmbientClipsNight[j].name}"); //Dbgl($"checking ambient night: { ___m_randomAmbients[i].m_name}, clip: {___m_randomAmbients[i].m_randomAmbientClipsNight[j].name}"); From 940b7783a2909d09aee3ad8d46e0ecf24bf68775 Mon Sep 17 00:00:00 2001 From: Maximilian Reinhart Date: Sat, 1 Jun 2024 13:24:35 +0200 Subject: [PATCH 10/21] changed method for finding closest fish --- HereFishy/BepInExPlugin.cs | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/HereFishy/BepInExPlugin.cs b/HereFishy/BepInExPlugin.cs index a9b702d..f48686c 100644 --- a/HereFishy/BepInExPlugin.cs +++ b/HereFishy/BepInExPlugin.cs @@ -88,23 +88,10 @@ private void Update() } float closest = maxFishyDistance.Value; Fish closestFish = null; - foreach (Collider collider in Physics.OverlapSphere(Player.m_localPlayer.transform.position, maxFishyDistance.Value)) + foreach (Fish fish in Fish.Instances) { - int which = 0; - Fish fish = collider.transform.parent?.gameObject?.GetComponent(); - if(fish is null) + if (Vector3.Distance(Player.m_localPlayer.transform.position, fish.transform.position) < closest) { - which = 1; - fish = collider.GetComponent(); - } - if(fish is null) - { - which = 2; - fish = collider.transform.parent?.parent?.gameObject?.GetComponent(); - } - if (fish?.GetComponent()?.IsValid() == true) - { - float distance = Vector3.Distance(Player.m_localPlayer.transform.position, fish.gameObject.transform.position); if (distance < closest && !hereFishyFishies.Contains(fish.gameObject)) { From fb177d1d459c6abc66802d8a4e2314402e529720 Mon Sep 17 00:00:00 2001 From: Maximilian Reinhart Date: Mon, 3 Jun 2024 11:28:26 +0200 Subject: [PATCH 11/21] added more targets --- valheim.targets | 552 +++++++++++++++++++++++++++++++++--------------- 1 file changed, 378 insertions(+), 174 deletions(-) diff --git a/valheim.targets b/valheim.targets index 94bfeb3..c5e17c2 100644 --- a/valheim.targets +++ b/valheim.targets @@ -65,196 +65,400 @@ + + False + $(BepInExPath)\core\BepInEx.dll + False + False $(BepInExPath)\core\0Harmony20.dll False - - False - $(BepInExPath)\core\BepInEx.dll - False - + + False + $(BepInExPath)\core\BepInEx.Preloader.dll + False + + + False + $(BepInExPath)\core\HarmonyXInterop.dll + False + + + False + $(BepInExPath)\core\Mono.Cecil.dll + False + + + False + $(BepInExPath)\core\MonoMod.Utils.dll + False + - - False - $(ManagedDataPath)\assembly_valheim.dll - False - - - False - $(ManagedDataPath)\assembly_googleanalytics.dll - False - - - False - $(ManagedDataPath)\assembly_guiutils.dll - False - - - False - $(ManagedDataPath)\assembly_postprocessing.dll - False - - - False - $(ManagedDataPath)\assembly_sunshafts.dll - False - - - False - $(ManagedDataPath)\assembly_utils.dll - False - - - False - $(ManagedDataPath)\gui_framework.dll - False + + False + $(ManagedDataPath)\assembly_googleanalytics.dll + False + + + False + $(ManagedDataPath)\assembly_guiutils.dll + False + + + False + $(ManagedDataPath)\assembly_lux.dll + False + + + False + $(ManagedDataPath)\assembly_postprocessing.dll + False + + + False + $(ManagedDataPath)\assembly_simplemeshcombine.dll + False + + + False + $(ManagedDataPath)\assembly_sunshafts.dll + False + + + False + $(ManagedDataPath)\assembly_utils.dll + False + + + False + $(ManagedDataPath)\assembly_valheim.dll + False - - False - $(UnityPath)\UnityEngine.dll - False - - - False - $(UnityPath)\UnityEngine.AccessibilityModule.dll - False - - - False - $(UnityPath)\UnityEngine.AIModule.dll - False - - - False - $(UnityPath)\UnityEngine.AnimationModule.dll - False - - - False - $(UnityPath)\UnityEngine.AudioModule.dll - False - - - False - $(UnityPath)\UnityEngine.ClothModule.dll - False - - - False - $(UnityPath)\UnityEngine.CoreModule.dll - False - - - False - $(UnityPath)\UnityEngine.InputLegacyModule.dll - False - - - False - $(UnityPath)\UnityEngine.ParticleSystemModule.dll - False - - - False - $(UnityPath)\UnityEngine.PhysicsModule.dll - False - - - False - $(UnityPath)\UnityEngine.ScreenCaptureModule.dll - False - - - False - $(ManagedDataPath)\Unity.TextMeshPro.dll - False - - - False - $(UnityPath)\UnityEngine.UI.dll - False - - - False - $(UnityPath)\UnityEngine.UIModule.dll - False - - - False - $(UnityPath)\UnityEngine.UIElementsModule.dll - False - - - False - $(UnityPath)\UnityEngine.InputModule.dll - False - - - False - $(UnityPath)\UnityEngine.JSONSerializeModule.dll - False - - - False - $(UnityPath)\UnityEngine.IMGUIModule.dll - False - - - False - $(UnityPath)\UnityEngine.ImageConversionModule.dll - False - - - False - $(UnityPath)\UnityEngine.TerrainModule.dll - False - - - False - $(UnityPath)\UnityEngine.TextCoreTextEngineModule.dll - False - - - False - $(UnityPath)\UnityEngine.TextRenderingModule.dll - False - - - False - $(UnityPath)\UnityEngine.UnityWebRequestAudioModule.dll - False - - - False - $(UnityPath)\UnityEngine.UnityWebRequestModule.dll - False - - - False - $(UnityPath)\UnityEngine.UnityWebRequestWWWModule.dll - False - - - False - $(UnityPath)\UnityEngine.UnityWebRequestTextureModule.dll - False - - - False - $(UnityPath)\UnityEngine.AssetBundleModule.dll - False - + + $(ManagedDataPath)\Unity.TextMeshPro.dll + False + False + + + $(ManagedDataPath)\UnityEngine.dll + False + False + + + $(ManagedDataPath)\UnityEngine.AccessibilityModule.dll + False + False + + + $(ManagedDataPath)\UnityEngine.AIModule.dll + False + False + + + $(ManagedDataPath)\UnityEngine.AndroidJNIModule.dll + False + False + + + $(ManagedDataPath)\UnityEngine.AnimationModule.dll + False + False + + + $(ManagedDataPath)\UnityEngine.AssetBundleModule.dll + False + False + + + $(ManagedDataPath)\UnityEngine.AudioModule.dll + False + False + + + $(ManagedDataPath)\UnityEngine.ClothModule.dll + False + False + + + $(ManagedDataPath)\UnityEngine.ClusterInputModule.dll + False + False + + + $(ManagedDataPath)\UnityEngine.ClusterRendererModule.dll + False + False + + + $(ManagedDataPath)\UnityEngine.CoreModule.dll + False + False + + + $(ManagedDataPath)\UnityEngine.CrashReportingModule.dll + False + False + + + $(ManagedDataPath)\UnityEngine.DirectorModule.dll + False + False + + + $(ManagedDataPath)\UnityEngine.DSPGraphModule.dll + False + False + + + $(ManagedDataPath)\UnityEngine.GameCenterModule.dll + False + False + + + $(ManagedDataPath)\UnityEngine.GridModule.dll + False + False + + + $(ManagedDataPath)\UnityEngine.HotReloadModule.dll + False + False + + + $(ManagedDataPath)\UnityEngine.ImageConversionModule.dll + False + False + + + $(ManagedDataPath)\UnityEngine.IMGUIModule.dll + False + False + + + $(ManagedDataPath)\UnityEngine.InputLegacyModule.dll + False + False + + + $(ManagedDataPath)\UnityEngine.InputModule.dll + False + False + + + $(ManagedDataPath)\Unity.InputSystem.dll + False + False + + + $(ManagedDataPath)\UnityEngine.JSONSerializeModule.dll + False + False + + + $(ManagedDataPath)\UnityEngine.LocalizationModule.dll + False + False + + + $(ManagedDataPath)\UnityEngine.ParticleSystemModule.dll + False + False + + + $(ManagedDataPath)\UnityEngine.PerformanceReportingModule.dll + False + False + + + $(ManagedDataPath)\UnityEngine.Physics2DModule.dll + False + False + + + $(ManagedDataPath)\UnityEngine.PhysicsModule.dll + False + False + + + $(ManagedDataPath)\UnityEngine.ProfilerModule.dll + False + False + + + $(ManagedDataPath)\UnityEngine.ScreenCaptureModule.dll + False + False + + + $(ManagedDataPath)\UnityEngine.SharedInternalsModule.dll + False + False + + + $(ManagedDataPath)\UnityEngine.SpriteMaskModule.dll + False + False + + + $(ManagedDataPath)\UnityEngine.SpriteShapeModule.dll + False + False + + + $(ManagedDataPath)\UnityEngine.StreamingModule.dll + False + False + + + $(ManagedDataPath)\UnityEngine.SubstanceModule.dll + False + False + + + $(ManagedDataPath)\UnityEngine.SubsystemsModule.dll + False + False + + + $(ManagedDataPath)\UnityEngine.TerrainModule.dll + False + False + + + $(ManagedDataPath)\UnityEngine.TerrainPhysicsModule.dll + False + False + + + $(ManagedDataPath)\UnityEngine.TextRenderingModule.dll + False + False + + + $(ManagedDataPath)\UnityEngine.TilemapModule.dll + False + False + + + $(ManagedDataPath)\UnityEngine.TLSModule.dll + False + False + + + $(ManagedDataPath)\UnityEngine.UI.dll + False + False + + + $(ManagedDataPath)\UnityEngine.UIElementsModule.dll + False + False + + + $(ManagedDataPath)\UnityEngine.UIModule.dll + False + False + + + $(ManagedDataPath)\UnityEngine.UmbraModule.dll + False + False + + + $(ManagedDataPath)\UnityEngine.UnityAnalyticsModule.dll + False + False + + + $(ManagedDataPath)\UnityEngine.UnityConnectModule.dll + False + False + + + $(ManagedDataPath)\UnityEngine.UnityTestProtocolModule.dll + False + False + + + $(ManagedDataPath)\UnityEngine.UnityWebRequestAssetBundleModule.dll + False + False + + + $(ManagedDataPath)\UnityEngine.UnityWebRequestAudioModule.dll + False + False + + + $(ManagedDataPath)\UnityEngine.UnityWebRequestModule.dll + False + False + + + $(ManagedDataPath)\UnityEngine.UnityWebRequestTextureModule.dll + False + False + + + $(ManagedDataPath)\UnityEngine.UnityWebRequestWWWModule.dll + False + False + + + $(ManagedDataPath)\UnityEngine.VehiclesModule.dll + False + False + + + $(ManagedDataPath)\UnityEngine.VFXModule.dll + False + False + + + $(ManagedDataPath)\UnityEngine.VideoModule.dll + False + False + + + $(ManagedDataPath)\UnityEngine.VRModule.dll + False + False + + + $(ManagedDataPath)\UnityEngine.WindModule.dll + False + False + + + $(ManagedDataPath)\UnityEngine.XRModule.dll + False + False + + + + + $(ManagedDataPath)\Mono.Security.dll + False + False + + + $(ManagedDataPath)\gui_framework.dll + False + False + + + From 350a908f480123bdc076d66db5614f74dc18ab90 Mon Sep 17 00:00:00 2001 From: Maximilian Reinhart Date: Mon, 3 Jun 2024 11:28:55 +0200 Subject: [PATCH 12/21] removed patch for function that was removed from the game --- MiningMod/BepInExPlugin.cs | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/MiningMod/BepInExPlugin.cs b/MiningMod/BepInExPlugin.cs index 89e1b9b..c0803b8 100644 --- a/MiningMod/BepInExPlugin.cs +++ b/MiningMod/BepInExPlugin.cs @@ -11,7 +11,7 @@ namespace MiningMod [BepInPlugin("aedenthorn.MiningMod", "Mining Mod", "0.7.0")] public class BepInExPlugin: BaseUnityPlugin { - private static readonly bool isDebug = true; + private static readonly bool isDebug = false; private static BepInExPlugin context; public static ConfigEntry modEnabled; @@ -92,16 +92,7 @@ static void Postfix(ref MineRock __instance) } } - [HarmonyPatch(typeof(MineRock5), "Start", new Type[] { })] - static class MineRock5_Start_Patch - { - static void Postfix(ref MineRock5 __instance) - { - __instance.m_dropItems.m_dropMin = Mathf.RoundToInt(dropMinMult.Value * __instance.m_dropItems.m_dropMin); - __instance.m_dropItems.m_dropMax = Mathf.RoundToInt(dropMaxMult.Value * __instance.m_dropItems.m_dropMax); - __instance.m_dropItems.m_dropChance *= dropChanceMult.Value; - } - } + [HarmonyPatch(typeof(DropTable), "GetDropList", new Type[] { })] static class DropTable_GetDropList_Patch { @@ -131,7 +122,7 @@ static void Postfix(ref List __result) { count = Mathf.RoundToInt(count * oreDropMult.Value); } - //Dbgl($"loot drop had {kvp.Value.Count} {(kvp.Value.Count > 0? kvp.Value[0].name :"")} - changed amount to {count}"); + Dbgl($"loot drop had {kvp.Value.Count} {(kvp.Value.Count > 0? kvp.Value[0].name :"")} - changed amount to {count}"); if(kvp.Value.Count < count) { for (int i = kvp.Value.Count; i < count; i++) @@ -190,7 +181,7 @@ static class MineRock_Damage_Patch { static void Prefix(MineRock __instance, ref HitData hit) { - //Dbgl($"Damaging {__instance.gameObject.name}"); + Dbgl($"Damaging {__instance.gameObject.name}"); hit.m_damage.m_pickaxe *= damageMult.Value; hit.m_damage.m_blunt *= damageMult.Value; hit.m_damage.m_chop *= damageMult.Value; @@ -202,7 +193,7 @@ static class MineRock5_Damage_Patch { static void Prefix(MineRock5 __instance, ref HitData hit) { - //Dbgl($"Damaging {__instance.gameObject.name}"); + Dbgl($"Damaging {__instance.gameObject.name}"); hit.m_damage.m_pickaxe *= damageMult.Value; hit.m_damage.m_blunt *= damageMult.Value; @@ -217,7 +208,7 @@ static void Prefix(Destructible __instance, ref HitData hit) { if (__instance.GetComponent() && __instance.gameObject.name.Contains("Rock")) { - //Dbgl($"Damaging {__instance.gameObject.name}"); + Dbgl($"Damaging {__instance.gameObject.name}"); hit.m_damage.m_pickaxe *= damageMult.Value; hit.m_damage.m_blunt *= damageMult.Value; hit.m_damage.m_chop *= damageMult.Value; From 068ce253cf18906a1258cb8107b3f34e293a484f Mon Sep 17 00:00:00 2001 From: Maximilian Reinhart Date: Mon, 3 Jun 2024 11:29:15 +0200 Subject: [PATCH 13/21] corrected function input --- CustomArmorStats/BepInExPlugin.cs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/CustomArmorStats/BepInExPlugin.cs b/CustomArmorStats/BepInExPlugin.cs index 0c212bd..e4d9ab3 100644 --- a/CustomArmorStats/BepInExPlugin.cs +++ b/CustomArmorStats/BepInExPlugin.cs @@ -238,10 +238,9 @@ static void Postfix(float dt, Player __instance, ItemDrop.ItemData ___m_chestIte { if (!modEnabled.Value) return; - - if (___m_seman.HaveStatusEffect("Wet")) + var hash = "Wet".GetStableHashCode(); + if (___m_seman.HaveStatusEffect(hash)) { - var hash = "Wet".GetStableHashCode(); HitData.DamageModifier water = GetNewDamageTypeMod(NewDamageTypes.Water, ___m_chestItem, ___m_legItem, ___m_helmetItem, ___m_shoulderItem); var wet = ___m_seman.GetStatusEffect(hash); var t = Traverse.Create(wet); From e70e6943c8d50025020cc12e5a1680bf7f695f89 Mon Sep 17 00:00:00 2001 From: Maximilian Reinhart Date: Wed, 5 Jun 2024 16:31:24 +0200 Subject: [PATCH 14/21] removed patches for protected functions that should not have any impact as all they did was to incorporate changes made via the "GetEquipmentMovementModifier" patch. As both function the patches were removed for use GetEquipmentMovementModifier the changes should indirectly be applied still --- CustomArmorStats/BepInExPlugin.cs | 25 ------------------------- 1 file changed, 25 deletions(-) diff --git a/CustomArmorStats/BepInExPlugin.cs b/CustomArmorStats/BepInExPlugin.cs index e4d9ab3..369124d 100644 --- a/CustomArmorStats/BepInExPlugin.cs +++ b/CustomArmorStats/BepInExPlugin.cs @@ -114,31 +114,6 @@ static void Postfix(ref float __result) } } - [HarmonyPatch(typeof(Player), "GetJogSpeedFactor")] - static class GetJogSpeedFactor_Patch - { - static bool Prefix(ref float __result, float ___m_equipmentMovementModifier) - { - if (!modEnabled.Value) - return true; - __result = 1 + ___m_equipmentMovementModifier * globalArmorMovementModMult.Value; - return false; - } - } - - [HarmonyPatch(typeof(Player), "GetRunSpeedFactor")] - static class GetRunSpeedFactor_Patch - { - static bool Prefix(Skills ___m_skills, float ___m_equipmentMovementModifier, ref float __result) - { - if (!modEnabled.Value) - return true; - float skillFactor = ___m_skills.GetSkillFactor(Skills.SkillType.Run); - __result = (1f + skillFactor * 0.25f) * (1f + ___m_equipmentMovementModifier * 1.5f * globalArmorMovementModMult.Value); - return false; - } - } - [HarmonyPatch(typeof(SEMan), "AddStatusEffect", new Type[] { typeof(StatusEffect), typeof(bool), typeof(int), typeof(float) })] static class SEMan_AddStatusEffect_Patch { From 6f923effee222369237f7cd55bb195d414527c06 Mon Sep 17 00:00:00 2001 From: Maximilian Reinhart Date: Tue, 11 Jun 2024 15:26:02 +0200 Subject: [PATCH 15/21] prioritiesed display: number < hidden < hotkeys added hotkey display to inventory restructured for less execution overhead enabled check to disable hotkeys when inventory is open --- CustomToolbarHotkeys/BepInExPlugin.cs | 76 ++++++++++++++++++++++----- 1 file changed, 63 insertions(+), 13 deletions(-) diff --git a/CustomToolbarHotkeys/BepInExPlugin.cs b/CustomToolbarHotkeys/BepInExPlugin.cs index e5abdf0..03c2d14 100644 --- a/CustomToolbarHotkeys/BepInExPlugin.cs +++ b/CustomToolbarHotkeys/BepInExPlugin.cs @@ -11,7 +11,7 @@ namespace CustomToolbarHotkeys [BepInPlugin("aedenthorn.CustomToolbarHotkeys", "Custom Toolbar Hotkeys", "0.4.0")] public class BepInExPlugin : BaseUnityPlugin { - private static readonly bool isDebug = true; + private static readonly bool isDebug = false; private static BepInExPlugin context; private static bool usingHotkey = false; @@ -44,7 +44,7 @@ private void Awake() nexusID = Config.Bind("General", "NexusID", 683, "Nexus mod ID for updates"); hideNumbers = Config.Bind("General", "HideNumbers", false, "Hide hotkey numbers on toolbar"); - showHotkeys = Config.Bind("General", "ShowHotkeys", false, "Show new hotkey strings on toolbar. Must set HideNumbers to true."); + showHotkeys = Config.Bind("General", "ShowHotkeys", false, "Show new hotkey strings on toolbar (takes priority over numbers or hidden)"); hotKey1 = Config.Bind("Hotkeys", "HotKey1", "1", "Hotkey 1 - Use https://docs.unity3d.com/Manual/ConventionalGameInput.html"); hotKey2 = Config.Bind("Hotkeys", "HotKey2", "2", "Hotkey 2 - Use https://docs.unity3d.com/Manual/ConventionalGameInput.html"); hotKey3 = Config.Bind("Hotkeys", "HotKey3", "3", "Hotkey 3 - Use https://docs.unity3d.com/Manual/ConventionalGameInput.html"); @@ -77,13 +77,42 @@ static class HotkeyBar_UpdateIcons_Patch { static void Postfix(HotkeyBar __instance) { - if (!modEnabled.Value || !hideNumbers.Value || __instance.name != "HotKeyBar") + if (!modEnabled.Value || __instance.name != "HotKeyBar") return; + int count = __instance.transform.childCount; - for(int i = 0; i < count; i++) + if (showHotkeys.Value) + { + Dbgl("Switching to Hotkeys"); + for (int i = 0; i < count; i++) + { + if (__instance.transform.GetChild(i).Find("binding")) + { + __instance.transform.GetChild(i).Find("binding").GetComponent().text = hotkeys[i].Value; + } + } + } + else if (hideNumbers.Value) { - if (__instance.transform.GetChild(i).Find("binding")) { } - __instance.transform.GetChild(i).Find("binding").GetComponent().text = showHotkeys.Value ? hotkeys[i].Value : ""; + Dbgl("Switching to Nothing"); + for (int i = 0; i < count; i++) + { + if (__instance.transform.GetChild(i).Find("binding")) + { + __instance.transform.GetChild(i).Find("binding").GetComponent().text = ""; + } + } + } + else + { + Dbgl("Switching to Numbers"); + for (int i = 0; i < count; i++) + { + if (__instance.transform.GetChild(i).Find("binding")) + { + __instance.transform.GetChild(i).Find("binding").GetComponent().text = (i+1).ToString(); + } + } } } } @@ -93,7 +122,7 @@ static class Player_Update_Patch { static bool Prefix(Player __instance) { - if (!modEnabled.Value || AedenthornUtils.IgnoreKeyPresses()) + if (!modEnabled.Value || AedenthornUtils.IgnoreKeyPresses(true)) return true; int which; @@ -141,19 +170,40 @@ static class InventoryGui_Update_Patch { static void Postfix(InventoryGrid ___m_playerGrid, Animator ___m_animator) { - if (!modEnabled.Value || !hideNumbers.Value || !___m_animator.GetBool("visible")) + if (!modEnabled.Value || ___m_playerGrid.m_gridRoot.transform.childCount < 8 || !___m_animator.GetBool("visible")) return; - for(int i = 0; i < 8; i++) + if (showHotkeys.Value) { - try + Dbgl("Switching to Hotkeys"); + for (int i = 0; i < 8; i++) { if (___m_playerGrid.m_gridRoot.transform.GetChild(i)?.Find("binding")) - ___m_playerGrid.m_gridRoot.transform.GetChild(i).Find("binding").GetComponent().text = showHotkeys.Value ? hotkeys[i].Value : ""; + { + ___m_playerGrid.m_gridRoot.transform.GetChild(i).Find("binding").GetComponent().text = hotkeys[i].Value; + } } - catch + } + else if (hideNumbers.Value) + { + Dbgl("Switching to Nothing"); + for (int i = 0; i < 8; i++) { - return; + if (___m_playerGrid.m_gridRoot.transform.GetChild(i)?.Find("binding")) + { + ___m_playerGrid.m_gridRoot.transform.GetChild(i).Find("binding").GetComponent().text = ""; + } + } + } + else + { + Dbgl("Switching to Numbers"); + for (int i = 0; i < 8; i++) + { + if (___m_playerGrid.m_gridRoot.transform.GetChild(i)?.Find("binding")) + { + ___m_playerGrid.m_gridRoot.transform.GetChild(i).Find("binding").GetComponent().text = (i + 1).ToString(); + } } } } From dbf6b255fa95639255e752ae11063f3acb851646 Mon Sep 17 00:00:00 2001 From: Maximilian Reinhart Date: Thu, 13 Jun 2024 14:19:56 +0200 Subject: [PATCH 16/21] removed unused config entries fixed patch of now ambigious function added option to supress message when reading maptable --- CartographyTableMapRestrict/BepInExPlugin.cs | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/CartographyTableMapRestrict/BepInExPlugin.cs b/CartographyTableMapRestrict/BepInExPlugin.cs index 22d1b75..d86f8a4 100644 --- a/CartographyTableMapRestrict/BepInExPlugin.cs +++ b/CartographyTableMapRestrict/BepInExPlugin.cs @@ -1,6 +1,7 @@ using BepInEx; using BepInEx.Configuration; using HarmonyLib; +using System; using System.Reflection; using UnityEngine; @@ -11,10 +12,8 @@ public class BepInExPlugin : BaseUnityPlugin { private static readonly bool isDebug = true; - public static ConfigEntry hotKey; public static ConfigEntry modEnabled; - public static ConfigEntry attachDistance; - public static ConfigEntry allowOutOfPlaceAttach; + public static ConfigEntry suppressMessage; public static ConfigEntry nexusID; private static BepInExPlugin context; @@ -29,6 +28,7 @@ private void Awake() context = this; modEnabled = Config.Bind("General", "Enabled", true, "Enable this mod"); + suppressMessage = Config.Bind("General", "SupressMessage", true, "Supresses message on read"); nexusID = Config.Bind("General", "NexusID", 1739, "Nexus mod ID for updates"); Harmony.CreateAndPatchAll(Assembly.GetExecutingAssembly(), null); @@ -45,9 +45,14 @@ static void Postfix(Minimap __instance, Minimap.MapMode ___m_mode) __instance.SetMapMode(Minimap.MapMode.None); } } - [HarmonyPatch(typeof(MapTable), "OnRead")] + [HarmonyPatch(typeof(MapTable), "OnRead", new Type[] { typeof(Switch), typeof(Humanoid), typeof(ItemDrop.ItemData), typeof(bool) })] static class MapTable_OnRead_Patch { + static void Prefix(MapTable __instance, ref bool showMessage) + { + showMessage = showMessage && !suppressMessage.Value; + } + static void Postfix(MapTable __instance, ItemDrop.ItemData item) { if (!modEnabled.Value || Player.m_localPlayer == null || item != null) From a7a5de3c81ffe84fbde6f3e3316c7702408628c3 Mon Sep 17 00:00:00 2001 From: Maximilian Reinhart Date: Sun, 25 Aug 2024 18:22:37 +0200 Subject: [PATCH 17/21] corrected function calls for AutoFule --- AutoFuel/BepInExPlugin.cs | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/AutoFuel/BepInExPlugin.cs b/AutoFuel/BepInExPlugin.cs index f385797..a8a6189 100644 --- a/AutoFuel/BepInExPlugin.cs +++ b/AutoFuel/BepInExPlugin.cs @@ -200,7 +200,7 @@ public static async void RefuelTorch(Fireplace fireplace, ZNetView znview, int d Destroy(item.gameObject); else ZNetScene.instance.Destroy(item.gameObject); - znview.InvokeRPC("AddFuel", new object[] { }); + znview.InvokeRPC("RPC_AddFuel", new object[] { }); if (distributedFilling.Value) return; break; @@ -208,7 +208,7 @@ public static async void RefuelTorch(Fireplace fireplace, ZNetView znview, int d } item.m_itemData.m_stack--; - znview.InvokeRPC("AddFuel", new object[] { }); + znview.InvokeRPC("RPC_AddFuel", new object[] { }); Traverse.Create(item).Method("Save").GetValue(); if (distributedFilling.Value) return; @@ -236,7 +236,7 @@ public static async void RefuelTorch(Fireplace fireplace, ZNetView znview, int d Dbgl($"container at {c.transform.position} has {fuelItem.m_stack} {fuelItem.m_dropPrefab.name}, taking one"); - znview.InvokeRPC("AddFuel", new object[] { }); + znview.InvokeRPC("RPC_AddFuel", new object[] { }); c.GetInventory().RemoveItem(fireplace.m_fuelItem.m_itemData.m_shared.m_name, 1); typeof(Container).GetMethod("Save", BindingFlags.NonPublic | BindingFlags.Instance).Invoke(c, new object[] { }); @@ -351,14 +351,14 @@ public static async void RefuelSmelter(Smelter __instance, ZNetView ___m_nview, Destroy(item.gameObject); else ZNetScene.instance.Destroy(item.gameObject); - ___m_nview.InvokeRPC("AddOre", new object[] { name }); + ___m_nview.InvokeRPC("RPC_AddOre", new object[] { name }); if (distributedFilling.Value) ored = true; break; } item.m_itemData.m_stack--; - ___m_nview.InvokeRPC("AddOre", new object[] { name }); + ___m_nview.InvokeRPC("RPC_AddOre", new object[] { name }); Traverse.Create(item).Method("Save").GetValue(); if (distributedFilling.Value) ored = true; @@ -388,7 +388,7 @@ public static async void RefuelSmelter(Smelter __instance, ZNetView ___m_nview, Destroy(item.gameObject); else ZNetScene.instance.Destroy(item.gameObject); - ___m_nview.InvokeRPC("AddFuel", new object[] { }); + ___m_nview.InvokeRPC("RPC_AddFuel", new object[] { }); if (distributedFilling.Value) fueled = true; break; @@ -396,7 +396,7 @@ public static async void RefuelSmelter(Smelter __instance, ZNetView ___m_nview, } item.m_itemData.m_stack--; - ___m_nview.InvokeRPC("AddFuel", new object[] { }); + ___m_nview.InvokeRPC("RPC_AddFuel", new object[] { }); Traverse.Create(item).Method("Save").GetValue(); if (distributedFilling.Value) { @@ -427,7 +427,7 @@ public static async void RefuelSmelter(Smelter __instance, ZNetView ___m_nview, Dbgl($"container at {c.transform.position} has {oreItem.m_stack} {oreItem.m_dropPrefab.name}, taking one"); - ___m_nview.InvokeRPC("AddOre", new object[] { oreItem.m_dropPrefab?.name }); + ___m_nview.InvokeRPC("RPC_AddOre", new object[] { oreItem.m_dropPrefab?.name }); c.GetInventory().RemoveItem(itemConversion.m_from.m_itemData.m_shared.m_name, 1); typeof(Container).GetMethod("Save", BindingFlags.NonPublic | BindingFlags.Instance).Invoke(c, new object[] { }); typeof(Inventory).GetMethod("Changed", BindingFlags.NonPublic | BindingFlags.Instance).Invoke(c.GetInventory(), new object[] { }); @@ -461,7 +461,7 @@ public static async void RefuelSmelter(Smelter __instance, ZNetView ___m_nview, Dbgl($"container at {c.transform.position} has {fuelItem.m_stack} {fuelItem.m_dropPrefab.name}, taking one"); - ___m_nview.InvokeRPC("AddFuel", new object[] { }); + ___m_nview.InvokeRPC("RPC_AddFuel", new object[] { }); c.GetInventory().RemoveItem(__instance.m_fuelItem.m_itemData.m_shared.m_name, 1); typeof(Container).GetMethod("Save", BindingFlags.NonPublic | BindingFlags.Instance).Invoke(c, new object[] { }); From 6224976ed59099695f772e9b93df5d63c3feca6e Mon Sep 17 00:00:00 2001 From: Maximilian Reinhart Date: Sun, 25 Aug 2024 18:23:08 +0200 Subject: [PATCH 18/21] correctd use of private function --- CartSupport/BepInExPlugin.cs | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/CartSupport/BepInExPlugin.cs b/CartSupport/BepInExPlugin.cs index 826de2a..4ba0ad6 100644 --- a/CartSupport/BepInExPlugin.cs +++ b/CartSupport/BepInExPlugin.cs @@ -3,6 +3,7 @@ using HarmonyLib; using System.Collections.Generic; using UnityEngine; +using UnityEngine.SocialPlatforms; namespace CartSupport { @@ -61,12 +62,19 @@ static void Prefix(Vagon __instance, ZNetView ___m_nview, ref float mass) float before = mass; - List players = new List(); - Player.GetPlayersInRange(__instance.gameObject.transform.position, playerRange.Value, players); - if(players.Count > (includePuller.Value ? 0 : 1)) - mass = Mathf.Max(0, mass - mass * playerMassReduction.Value * Mathf.Min(maxPlayers.Value, players.Count - (includePuller.Value ? 0 : 1))); + List s_players = Player.GetAllPlayers(); + int playerCount = 0; + foreach (Player s_player in s_players) + { + if (Vector3.Distance(s_player.transform.position, __instance.gameObject.transform.position) < playerRange.Value) + { + playerCount++; + } + } + if(playerCount > (includePuller.Value ? 0 : 1)) + mass = Mathf.Max(0, mass - mass * playerMassReduction.Value * Mathf.Min(maxPlayers.Value, playerCount - (includePuller.Value ? 0 : 1))); - //Dbgl($"mass players {players.Count} distance {Vector3.Distance(__instance.gameObject.transform.position, Player.m_localPlayer.transform.position)} before {before} after {mass} is owner {___m_nview.IsOwner()}"); + Dbgl($"mass players {playerCount} distance {Vector3.Distance(__instance.gameObject.transform.position, Player.m_localPlayer.transform.position)} before {before} after {mass} is owner {___m_nview.IsOwner()}"); } } From 1175351b83ea6e223861d6f4f225afb72a001255 Mon Sep 17 00:00:00 2001 From: Maximilian Reinhart Date: Sun, 25 Aug 2024 18:23:56 +0200 Subject: [PATCH 19/21] added switch for volume overwrite --- CustomAudio/BepInExPlugin.cs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/CustomAudio/BepInExPlugin.cs b/CustomAudio/BepInExPlugin.cs index 194321f..7df7a61 100644 --- a/CustomAudio/BepInExPlugin.cs +++ b/CustomAudio/BepInExPlugin.cs @@ -17,8 +17,10 @@ public class BepInExPlugin: BaseUnityPlugin { public static ConfigEntry isDebug; + public static ConfigEntry modEnabled; public static ConfigEntry dumpInfo; + public static ConfigEntry overwriteVol; public static ConfigEntry sfxVol; public static ConfigEntry musicVol; public static ConfigEntry ambientVol; @@ -45,9 +47,10 @@ private void Awake() modEnabled = Config.Bind("General", "Enabled", true, "Enable this mod"); isDebug = Config.Bind("General", "IsDebug", true, "Show debug log messages in the console"); dumpInfo = Config.Bind("General", "DumpInfo", true, "Dump audio info to the console"); + overwriteVol = Config.Bind("General", "OverwriteVol", true, "Overwrite game volume settings"); musicVol = Config.Bind("General", "MusicVol", 0.6f, "Music volume, 0.0 - 1.0"); //sfxVol = Config.Bind("General", "SfxVol", 1f, "SFX volume"); - ambientVol = Config.Bind("General", "AmbientVol", 0.3f, "Ambient volume"); + ambientVol = Config.Bind("General", "AmbientVol", 0.3f, "Ambient volume, 0.0 - 1.0"); nexusID = Config.Bind("General", "NexusID", 90, "Nexus mod ID for updates"); if (!modEnabled.Value) @@ -408,9 +411,10 @@ static void Prefix(ref MusicMan.NamedMusic ___m_currentMusic, ref MusicMan.Named if (!modEnabled.Value) return; - if (___m_queuedMusic != null) + if (___m_queuedMusic != null && overwriteVol.Value) { ___m_queuedMusic.m_volume = musicVol.Value; + Dbgl($"Set MusVol {musicVol.Value}"); } @@ -451,11 +455,12 @@ static class QueueAmbientLoop_Patch { static void Prefix(ref float ___m_queuedAmbientVol, ref float ___m_ambientVol, ref float vol) { - if (!modEnabled.Value) + if (!modEnabled.Value || !overwriteVol.Value) return; vol = ambientVol.Value; ___m_ambientVol = ambientVol.Value; ___m_queuedAmbientVol = ambientVol.Value; + Dbgl($"Set AmbVol {ambientVol.Value}"); } } From ecc08754afb578231168e5cfb8e737913c745b16 Mon Sep 17 00:00:00 2001 From: Maximilian Reinhart Date: Sun, 25 Aug 2024 18:24:05 +0200 Subject: [PATCH 20/21] added dakkar --- CustomContainerSizes/BepInExPlugin.cs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/CustomContainerSizes/BepInExPlugin.cs b/CustomContainerSizes/BepInExPlugin.cs index c289726..126c33c 100644 --- a/CustomContainerSizes/BepInExPlugin.cs +++ b/CustomContainerSizes/BepInExPlugin.cs @@ -18,6 +18,8 @@ public class BepInExPlugin : BaseUnityPlugin private static ConfigEntry chestHeight; private static ConfigEntry vikingShipChestWidth; private static ConfigEntry vikingShipChestHeight; + private static ConfigEntry drakkarShipChestWidth; + private static ConfigEntry drakkarShipChestHeight; private static ConfigEntry privateChestWidth; private static ConfigEntry privateChestHeight; private static ConfigEntry reinforcedChestWidth; @@ -46,6 +48,8 @@ private void Awake() karveChestHeight = Config.Bind("Sizes", "KarveChestHeight", 2, "Number of items tall for karve chest containers"); vikingShipChestWidth = Config.Bind("Sizes", "VikingShipChestWidth", 6, "Number of items wide for longship chest containers (max. 8)"); vikingShipChestHeight = Config.Bind("Sizes", "VikingShipChestHeight", 3, "Number of items tall for longship chest containers"); + drakkarShipChestWidth = Config.Bind("Sizes", "DrakkarShipChestWidth", 8, "Number of items wide for Drakkar chest containers (max. 8)"); + drakkarShipChestHeight = Config.Bind("Sizes", "DrakkarShipChestHeight", 4, "Number of items tall for Drakkar chest containers"); privateChestWidth = Config.Bind("Sizes", "PrivateChestWidth", 3, "Number of items wide for private chest containers (max. 8)"); privateChestHeight = Config.Bind("Sizes", "PrivateChestHeight", 2, "Number of items tall for private chest containers"); reinforcedChestWidth = Config.Bind("Sizes", "ReinforcedChestWidth", 6, "Number of items wide for reinforced chest containers (max. 8)"); @@ -60,6 +64,7 @@ private void Awake() chestWidth.Value = Math.Min(chestWidth.Value, 8); karveChestWidth.Value = Math.Min(karveChestWidth.Value, 8); vikingShipChestWidth.Value = Math.Min(vikingShipChestWidth.Value, 8); + drakkarShipChestWidth.Value = Math.Min(drakkarShipChestWidth.Value, 8); privateChestWidth.Value = Math.Min(privateChestWidth.Value, 8); reinforcedChestWidth.Value = Math.Min(reinforcedChestWidth.Value, 8); wagonWidth.Value = Math.Min(wagonWidth.Value, 8); @@ -91,6 +96,13 @@ static void Postfix(Container __instance, Inventory ___m_inventory) typeof(Inventory).GetField("m_width", BindingFlags.NonPublic | BindingFlags.Instance).SetValue(___m_inventory, karveChestWidth.Value); typeof(Inventory).GetField("m_height", BindingFlags.NonPublic | BindingFlags.Instance).SetValue(___m_inventory, karveChestHeight.Value); } + else if (ship.name.ToLower().Contains("ashland")) + { + Dbgl($"setting Drakkar chest size to {drakkarShipChestWidth.Value},{drakkarShipChestHeight.Value}"); + + typeof(Inventory).GetField("m_width", BindingFlags.NonPublic | BindingFlags.Instance).SetValue(___m_inventory, drakkarShipChestWidth.Value); + typeof(Inventory).GetField("m_height", BindingFlags.NonPublic | BindingFlags.Instance).SetValue(___m_inventory, drakkarShipChestHeight.Value); + } else if (ship.name.ToLower().Contains("vikingship")) { Dbgl($"setting VikingShip chest size to {vikingShipChestWidth.Value},{vikingShipChestHeight.Value}"); @@ -98,6 +110,7 @@ static void Postfix(Container __instance, Inventory ___m_inventory) typeof(Inventory).GetField("m_width", BindingFlags.NonPublic | BindingFlags.Instance).SetValue(___m_inventory, vikingShipChestWidth.Value); typeof(Inventory).GetField("m_height", BindingFlags.NonPublic | BindingFlags.Instance).SetValue(___m_inventory, vikingShipChestHeight.Value); } + } else if (__instance.m_wagon) { From f085442b3ef30ba3585aa0227293e510cff4bcfe Mon Sep 17 00:00:00 2001 From: Maximilian Reinhart Date: Sun, 25 Aug 2024 18:25:49 +0200 Subject: [PATCH 21/21] added isPinChecked to export and import corrected removal of pins on clear --- MapPinExport/BepInExPlugin.cs | 18 +++++++++++++----- MapPinExport/MyPinData.cs | 2 ++ 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/MapPinExport/BepInExPlugin.cs b/MapPinExport/BepInExPlugin.cs index 748cfe3..a126b6e 100644 --- a/MapPinExport/BepInExPlugin.cs +++ b/MapPinExport/BepInExPlugin.cs @@ -7,6 +7,7 @@ using System.Linq; using System.Reflection; using UnityEngine; +using UnityEngine.UI; namespace MapPinExport { @@ -29,7 +30,7 @@ private void Awake() context = this; modEnabled = Config.Bind("General", "Enabled", true, "Enable this mod"); - isDebug = Config.Bind("General", "IsDebug", true, "Enable debug logs"); + isDebug = Config.Bind("General", "IsDebug", false, "Enable debug logs"); nexusID = Config.Bind("General", "NexusID", 1596, "Nexus mod ID for updates"); if (!modEnabled.Value) @@ -65,13 +66,16 @@ static bool Prefix(Terminal __instance) List output = new List(); foreach(var pin in pinList) { - if(IsCustomPin(pin)) + if (IsCustomPin(pin)) + { + Dbgl($"Found pin to export: {pin.m_name}; {pin.m_type}; x{pin.m_pos.x}; y{pin.m_pos.y}; z{pin.m_pos.z}"); output.Add(JsonUtility.ToJson(new MyPinData(pin))); + } } File.WriteAllText(Path.Combine(AedenthornUtils.GetAssetPath(context, true), file), $"{string.Join("\n", output)}"); __instance.AddString(text); __instance.AddString($"{context.Info.Metadata.Name} {output.Count} pins exported"); - return false; + return false; } if (Minimap.instance && text.ToLower().Equals($"{typeof(BepInExPlugin).Namespace.ToLower()} clear")) { @@ -81,7 +85,10 @@ static bool Prefix(Terminal __instance) { var pin = pinList[i]; if (IsCustomPin(pin)) + { + Minimap.instance.GetType().GetTypeInfo().GetDeclaredMethod("DestroyPinMarker").Invoke(Minimap.instance, new object[] { pin }); pinList.RemoveAt(i); + } } __instance.AddString($"{context.Info.Metadata.Name} all pins cleared from map"); return false; @@ -104,7 +111,7 @@ static bool Prefix(Terminal __instance) try { var pin = JsonUtility.FromJson(str); - Minimap.instance.AddPin(pin.position, (Minimap.PinType)pin.type, pin.name, true, false, 0L); + Minimap.instance.AddPin(pin.position, (Minimap.PinType)pin.type, pin.name, true, pin.isChecked, 0L); count++; } catch(Exception ex) @@ -120,7 +127,8 @@ static bool Prefix(Terminal __instance) private static bool IsCustomPin(Minimap.PinData pin) { - return pin.m_save && pin.m_type != Minimap.PinType.Death && pin.m_type != Minimap.PinType.Bed && pin.m_type != Minimap.PinType.Icon4 && pin.m_type != Minimap.PinType.Shout && pin.m_type != Minimap.PinType.None && pin.m_type != Minimap.PinType.Boss && pin.m_type != Minimap.PinType.Player && pin.m_type != Minimap.PinType.RandomEvent && pin.m_type != Minimap.PinType.Ping && pin.m_type != Minimap.PinType.EventArea && pin.m_type != Minimap.PinType.Hildir1 && pin.m_type != Minimap.PinType.Hildir2 && pin.m_type != Minimap.PinType.Hildir3; + return pin.m_save && (pin.m_type == Minimap.PinType.Icon0 || pin.m_type == Minimap.PinType.Icon1 || pin.m_type == Minimap.PinType.Icon2 || pin.m_type == Minimap.PinType.Icon3 || pin.m_type == Minimap.PinType.Icon4); + //return pin.m_save && pin.m_type != Minimap.PinType.Death && pin.m_type != Minimap.PinType.Bed && pin.m_type != Minimap.PinType.Icon4 && pin.m_type != Minimap.PinType.Shout && pin.m_type != Minimap.PinType.None && pin.m_type != Minimap.PinType.Boss && pin.m_type != Minimap.PinType.Player && pin.m_type != Minimap.PinType.RandomEvent && pin.m_type != Minimap.PinType.Ping && pin.m_type != Minimap.PinType.EventArea && pin.m_type != Minimap.PinType.Hildir1 && pin.m_type != Minimap.PinType.Hildir2 && pin.m_type != Minimap.PinType.Hildir3; } } } diff --git a/MapPinExport/MyPinData.cs b/MapPinExport/MyPinData.cs index e7e1be1..cfbcf60 100644 --- a/MapPinExport/MyPinData.cs +++ b/MapPinExport/MyPinData.cs @@ -7,12 +7,14 @@ public class MyPinData public string name; public Minimap.PinType type; public Vector3 position; + public bool isChecked; public MyPinData(Minimap.PinData pin) { name = pin.m_name; position = pin.m_pos; type = pin.m_type; + isChecked = pin.m_checked; } } } \ No newline at end of file