Browse Source

initial commit

master
Bertrand Janvoie 3 years ago
commit
1b759ef066
  1. 114
      ConfigurationManagerAttributes.cs
  2. 453
      Main.cs
  3. 36
      Properties/AssemblyInfo.cs
  4. 47
      README.md
  5. 85
      UltimateBag.csproj
  6. BIN
      bin/Debug/0Harmony.dll
  7. 4109
      bin/Debug/0Harmony.xml
  8. BIN
      bin/Debug/Assembly-CSharp-firstpass_publicized.dll
  9. BIN
      bin/Debug/Assembly-CSharp_publicized.dll
  10. BIN
      bin/Debug/BagSlot.dll
  11. BIN
      bin/Debug/BagSlot.pdb
  12. BIN
      bin/Debug/BepInEx.MessageCenter.dll
  13. BIN
      bin/Debug/BepInEx.dll
  14. 1657
      bin/Debug/BepInEx.xml
  15. BIN
      bin/Debug/ConfigurationManager.dll
  16. 298
      bin/Debug/ConfigurationManager.xml
  17. BIN
      bin/Debug/GalaxyCSharp.dll
  18. BIN
      bin/Debug/Ionic.Zip.Reduced.dll
  19. BIN
      bin/Debug/MathLib.dll
  20. BIN
      bin/Debug/Mono.Cecil.dll
  21. BIN
      bin/Debug/MonoMod.RuntimeDetour.dll
  22. 178
      bin/Debug/MonoMod.RuntimeDetour.xml
  23. BIN
      bin/Debug/MonoMod.Utils.dll
  24. 1465
      bin/Debug/MonoMod.Utils.xml
  25. BIN
      bin/Debug/Photon3Unity3D.dll
  26. BIN
      bin/Debug/Rewired_Core.dll
  27. BIN
      bin/Debug/Rewired_Windows.dll
  28. BIN
      bin/Debug/UltimateBackpack.dll
  29. BIN
      bin/Debug/UltimateBag.dll
  30. BIN
      bin/Debug/UltimateBag.pdb
  31. BIN
      bin/Debug/UnityEngine.AIModule.dll
  32. BIN
      bin/Debug/UnityEngine.ARModule.dll
  33. BIN
      bin/Debug/UnityEngine.AccessibilityModule.dll
  34. BIN
      bin/Debug/UnityEngine.AnimationModule.dll
  35. BIN
      bin/Debug/UnityEngine.AssetBundleModule.dll
  36. BIN
      bin/Debug/UnityEngine.AudioModule.dll
  37. BIN
      bin/Debug/UnityEngine.ClothModule.dll
  38. BIN
      bin/Debug/UnityEngine.ClusterInputModule.dll
  39. BIN
      bin/Debug/UnityEngine.ClusterRendererModule.dll
  40. BIN
      bin/Debug/UnityEngine.CoreModule.dll
  41. BIN
      bin/Debug/UnityEngine.CrashReportingModule.dll
  42. BIN
      bin/Debug/UnityEngine.DirectorModule.dll
  43. BIN
      bin/Debug/UnityEngine.GameCenterModule.dll
  44. BIN
      bin/Debug/UnityEngine.GridModule.dll
  45. BIN
      bin/Debug/UnityEngine.IMGUIModule.dll
  46. BIN
      bin/Debug/UnityEngine.ImageConversionModule.dll
  47. BIN
      bin/Debug/UnityEngine.InputModule.dll
  48. BIN
      bin/Debug/UnityEngine.JSONSerializeModule.dll
  49. BIN
      bin/Debug/UnityEngine.LocalizationModule.dll
  50. BIN
      bin/Debug/UnityEngine.ParticleSystemModule.dll
  51. BIN
      bin/Debug/UnityEngine.PerformanceReportingModule.dll
  52. BIN
      bin/Debug/UnityEngine.Physics2DModule.dll
  53. BIN
      bin/Debug/UnityEngine.PhysicsModule.dll
  54. BIN
      bin/Debug/UnityEngine.ScreenCaptureModule.dll
  55. BIN
      bin/Debug/UnityEngine.SharedInternalsModule.dll
  56. BIN
      bin/Debug/UnityEngine.SpriteMaskModule.dll
  57. BIN
      bin/Debug/UnityEngine.SpriteShapeModule.dll
  58. BIN
      bin/Debug/UnityEngine.StreamingModule.dll
  59. BIN
      bin/Debug/UnityEngine.StyleSheetsModule.dll
  60. BIN
      bin/Debug/UnityEngine.TerrainModule.dll
  61. BIN
      bin/Debug/UnityEngine.TerrainPhysicsModule.dll
  62. BIN
      bin/Debug/UnityEngine.TextCoreModule.dll
  63. BIN
      bin/Debug/UnityEngine.TextRenderingModule.dll
  64. BIN
      bin/Debug/UnityEngine.TilemapModule.dll
  65. BIN
      bin/Debug/UnityEngine.UI.dll
  66. BIN
      bin/Debug/UnityEngine.UIElementsModule.dll
  67. BIN
      bin/Debug/UnityEngine.UIModule.dll
  68. BIN
      bin/Debug/UnityEngine.UNETModule.dll
  69. BIN
      bin/Debug/UnityEngine.UnityAnalyticsModule.dll
  70. BIN
      bin/Debug/UnityEngine.UnityConnectModule.dll
  71. BIN
      bin/Debug/UnityEngine.UnityWebRequestAssetBundleModule.dll
  72. BIN
      bin/Debug/UnityEngine.UnityWebRequestAudioModule.dll
  73. BIN
      bin/Debug/UnityEngine.UnityWebRequestModule.dll
  74. BIN
      bin/Debug/UnityEngine.UnityWebRequestTextureModule.dll
  75. BIN
      bin/Debug/UnityEngine.UnityWebRequestWWWModule.dll
  76. BIN
      bin/Debug/UnityEngine.VFXModule.dll
  77. BIN
      bin/Debug/UnityEngine.VRModule.dll
  78. BIN
      bin/Debug/UnityEngine.VehiclesModule.dll
  79. BIN
      bin/Debug/UnityEngine.VideoModule.dll
  80. BIN
      bin/Debug/UnityEngine.WindModule.dll
  81. BIN
      bin/Debug/UnityEngine.XRModule.dll
  82. BIN
      bin/Debug/UnityEngine.dll
  83. BIN
      bin/Release/0Harmony.dll
  84. 4109
      bin/Release/0Harmony.xml
  85. BIN
      bin/Release/Assembly-CSharp-firstpass_publicized.dll
  86. BIN
      bin/Release/Assembly-CSharp_publicized.dll
  87. BIN
      bin/Release/BagSlot.dll
  88. BIN
      bin/Release/BagSlot.pdb
  89. BIN
      bin/Release/BepInEx.MessageCenter.dll
  90. BIN
      bin/Release/BepInEx.dll
  91. 1657
      bin/Release/BepInEx.xml
  92. BIN
      bin/Release/Mono.Cecil.dll
  93. BIN
      bin/Release/MonoMod.RuntimeDetour.dll
  94. 178
      bin/Release/MonoMod.RuntimeDetour.xml
  95. BIN
      bin/Release/MonoMod.Utils.dll
  96. 1465
      bin/Release/MonoMod.Utils.xml
  97. BIN
      bin/Release/UnityEngine.AIModule.dll
  98. BIN
      bin/Release/UnityEngine.ARModule.dll
  99. BIN
      bin/Release/UnityEngine.AccessibilityModule.dll
  100. BIN
      bin/Release/UnityEngine.AnimationModule.dll
  101. Some files were not shown because too many files have changed in this diff Show More

114
ConfigurationManagerAttributes.cs

@ -0,0 +1,114 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace UltimateBag
{
/// <summary>
/// Class that specifies how a setting should be displayed inside the ConfigurationManager settings window.
///
/// Usage:
/// This class template has to be copied inside the plugin's project and referenced by its code directly.
/// make a new instance, assign any fields that you want to override, and pass it as a tag for your setting.
///
/// If a field is null (default), it will be ignored and won't change how the setting is displayed.
/// If a field is non-null (you assigned a value to it), it will override default behavior.
/// </summary>
///
/// <example>
/// Here's an example of overriding order of settings and marking one of the settings as advanced:
/// <code>
/// // Override IsAdvanced and Order
/// Config.AddSetting("X", "1", 1, new ConfigDescription("", null, new ConfigurationManagerAttributes { IsAdvanced = true, Order = 3 }));
/// // Override only Order, IsAdvanced stays as the default value assigned by ConfigManager
/// Config.AddSetting("X", "2", 2, new ConfigDescription("", null, new ConfigurationManagerAttributes { Order = 1 }));
/// Config.AddSetting("X", "3", 3, new ConfigDescription("", null, new ConfigurationManagerAttributes { Order = 2 }));
/// </code>
/// </example>
///
/// <remarks>
/// You can read more and see examples in the readme at https://github.com/BepInEx/BepInEx.ConfigurationManager
/// You can optionally remove fields that you won't use from this class, it's the same as leaving them null.
/// </remarks>
#pragma warning disable 0169, 0414, 0649
internal sealed class ConfigurationManagerAttributes
{
/// <summary>
/// Should the setting be shown as a percentage (only use with value range settings).
/// </summary>
public bool? ShowRangeAsPercent;
/// <summary>
/// Custom setting editor (OnGUI code that replaces the default editor provided by ConfigurationManager).
/// See below for a deeper explanation. Using a custom drawer will cause many of the other fields to do nothing.
/// </summary>
public System.Action<BepInEx.Configuration.ConfigEntryBase> CustomDrawer;
/// <summary>
/// Show this setting in the settings screen at all? If false, don't show.
/// </summary>
public bool? Browsable;
/// <summary>
/// Category the setting is under. Null to be directly under the plugin.
/// </summary>
public string Category;
/// <summary>
/// If set, a "Default" button will be shown next to the setting to allow resetting to default.
/// </summary>
public object DefaultValue;
/// <summary>
/// Force the "Reset" button to not be displayed, even if a valid DefaultValue is available.
/// </summary>
public bool? HideDefaultButton;
/// <summary>
/// Force the setting name to not be displayed. Should only be used with a <see cref="CustomDrawer"/> to get more space.
/// Can be used together with <see cref="HideDefaultButton"/> to gain even more space.
/// </summary>
public bool? HideSettingName;
/// <summary>
/// Optional description shown when hovering over the setting.
/// Not recommended, provide the description when creating the setting instead.
/// </summary>
public string Description;
/// <summary>
/// Name of the setting.
/// </summary>
public string DispName;
/// <summary>
/// Order of the setting on the settings list relative to other settings in a category.
/// 0 by default, higher number is higher on the list.
/// </summary>
public int? Order;
/// <summary>
/// Only show the value, don't allow editing it.
/// </summary>
public bool? ReadOnly;
/// <summary>
/// If true, don't show the setting by default. User has to turn on showing advanced settings or search for it.
/// </summary>
public bool? IsAdvanced;
/// <summary>
/// Custom converter from setting type to string for the built-in editor textboxes.
/// </summary>
public System.Func<object, string> ObjToStr;
/// <summary>
/// Custom converter from string to setting type for the built-in editor textboxes.
/// </summary>
public System.Func<string, object> StrToObj;
}
}

453
Main.cs

@ -0,0 +1,453 @@
using BepInEx;
using BepInEx.Configuration;
using HarmonyLib;
using System;
using UnityEngine;
namespace UltimateBag
{
[HarmonyPatch]
[BepInPlugin(ID, NAME, VERSION)]
public class UltimateBag : BaseUnityPlugin
{
static public UltimateBag Instance { get; private set; }
const string ID = "com.ness.UltimateBag";
const string NAME = "UltimateBag";
const string VERSION = "1.0";
internal void Awake()
{
Instance = this;
new Harmony("com.ness.UltimateBag").PatchAll();
Logger.LogMessage("UltimateBag is awake");
Update();
// CURRENT PREFAB
UltimateBag.BagPrefabName = Config.Bind<string>("1.GENERAL", "Bag Visual", "5300120_PrimitiveSatchelBackpack_v", new ConfigDescription("Apply visual on the selected bag", new AcceptableValueList<string>(
"5300000_AdventurerBackpack_v",
"5300140_TraderFrameBackpack_v",
"5300130_StrongBoxBackpack_v",
"5300030_MasterTraderBackpack_v",
"5300180_HornBackpack_v",
"5300170_MageBackpack_v",
"5380003_WeaverBackpack_v",
"5300160_PreservationBackpack_v",
"5300110_NomadBackpack_v",
"5300041_ProspectorBackpackElite_v",
"5300190_BoozuBackpack_v",
"5300070_Wolfcase_v",
"5300040_ProspectorBackpack_v",
"5380002_ChalecedonyBackpack_v",
"5380005_BrigandBackpack_v",
"5300050_GlowstoneBackpack_v",
"5380001_ChargedStoneBackpack_v",
"5300120_PrimitiveSatchelBackpack_v")));
// SLOT 1
UltimateBag.EnableSlot1 = Config.Bind<bool>("2. WEAPON SLOT 1", "Enable Weapon Slot 1", true, "Add a weapon on your bag");
UltimateBag.VisualSlot1 = Config.Bind<int>("2. WEAPON SLOT 1", "Weapon ID", 2200000, "ItemID of the weapon you want to attach");
UltimateBag.PositionSlot1 = Config.Bind<string>("2. WEAPON SLOT 1", "Weapon Type", "Sword", new ConfigDescription("Choose the type of weapon select in Slot1. Required for positionning.", new AcceptableValueList<string>("Bow","Spear","Staff", "Axe(One Handed)", "Axe(Two Handed)", "Halberd", "Sword(One Handed)", "Sword(Two Handed)","Mace(One Handed)","Mace(Two Handed)")));
//SLOT 2
UltimateBag.EnableSlot2 = Config.Bind<bool>("3. WEAPON SLOT 2", "Enable Weapon Slot 2", true, "Add a weapon on your bag");
UltimateBag.VisualSlot2 = Config.Bind<int>("3. WEAPON SLOT 2", "Weapon ID", 2100999, "ItemID of the weapon you want to attach");
UltimateBag.PositionSlot2 = Config.Bind<string>("3. WEAPON SLOT 2", "Weapon Type", "Sword", new ConfigDescription("Choose the type of weapon select in Slot1. Required for positionning.", new AcceptableValueList<string>("Bow", "Spear", "Staff", "Axe(One Handed)", "Axe(Two Handed)", "Halberd", "Sword(One Handed)", "Sword(Two Handed)", "Mace(One Handed)", "Mace(Two Handed)")));
//SHIELD
UltimateBag.EnableShield = Config.Bind<bool>("4. SHIELD", "Enable Shield", false, "Replace the backpack by a shield");
UltimateBag.ShieldVisual = Config.Bind<int>("4. SHIELD", "Shield ID", 2300050, "ItemID of the shield you want to attach");
//BOLT
UltimateBag.AddBoltBool = Config.Bind<bool>("5.EFFECT", "Add Bolt Effect", true, "Add a bolt effect on your bag");
UltimateBag.BoltColor = Config.Bind<string>("5.EFFECT", "Color Bolt Effect", "yellow", new ConfigDescription("Choose color of bolt effect on your bag", new AcceptableValueList<string>("blue", "cyan", "gray", "green", "magenta", "red", "white", "yellow")));
//SPIRAL
UltimateBag.AddSpiralBool = Config.Bind<bool>("6.EFFECT", "Add Spiral Effect", true, "Add a spiral effect on your bag");
UltimateBag.SpiralColor = Config.Bind<string>("6.EFFECT", "Color Spiral Effect", "yellow", new ConfigDescription("Choose color of spiral effect on your bag", new AcceptableValueList<string>("blue", "cyan", "gray", "green", "magenta", "red", "white", "yellow")));
//LANTERN
UltimateBag.AddLanternBool = Config.Bind<bool>("7.LANTERN", "Add Lantern", true, "Add a bolt effect on your bag"); //BEPINEX CONFIGURATION MENU
}
void Update() {
} //if (Input.GetKeyDown(KeyCode.N)) { //FOR TESTING BagSlot.Instance.Logger.LogMessage("KeyPress");}} // TESTING BLOCK
static void ProcessVisualsExtend(Bag bag)
{
if (bag.m_visualPrefabName == UltimateBag.BagPrefabName.Value)
{
/*
if (UltimateBag.BagPrefabName.Value == "5380005_BrigandBackpack_v") // DONE
{
if (UltimateBag.AddLanternBool.Value)
AddLanternSlot(bag, 0.0686f, 0.1271f, -0.2781f); //LanternSlot
if (UltimateBag.AddBoltBool.Value)
AddBolt(bag, 0f, 0.2f, 0f, UltimateBag.BoltColor.Value); // Bolt Effect
if (UltimateBag.AddSpiralBool.Value)
AddSpiral(bag, 0f, 0.2f, 0f, UltimateBag.SpiralColor.Value); // Spiral Effect
if (UltimateBag.EnableSlot1.Value)
AddWeaponSlot1(bag, VerifItemID(UltimateBag.VisualSlot1.Value, bow: true), -0.14f, 0.14f, 0f, 61.4246f, 141.3963f, 11.9091f); // Bow Attach
//AddBow(bag, VerifItemID(UltimateBag.VisualSlot1.Value, bow: true), -0.14f, 0.14f, 0f, 61.4246f, 141.3963f, 11.9091f);
if (UltimateBag.EnableSlot2.Value)
AddWeaponSlot1(bag, VerifItemID(UltimateBag.VisualSlot2.Value, twoh: true), -0.28f, -0.035f, 0.48f, 2.734f, 64.5905f, 180.2475f); //2 Handed Sword Attach -0.28, -0.035, 0.48
}
*/
// INITIALIZATION VARIABLE
Vector3 positionSlot1 = new Vector3(-0.2101f, -0.0955f, -0.68f);
Vector3 rotationSlot1 = new Vector3(1.0208f, 290.0177f, 179.9582f);
Vector3 positionSlot2 = new Vector3(0.3f, -0.005f, -0.6f);
Vector3 rotationSlot2 = new Vector3(357.5089f, 61.8f, 2.906f);
string defineposandrot = UltimateBag.PositionSlot1.Value;
string defineposandrot2 = UltimateBag.PositionSlot2.Value;
// SWITCH FOR POSITION AND ROTATION
switch (defineposandrot) //DONE
{
case "Staff":
positionSlot1 = new Vector3(-0.2101f, -0.0355f, -0.68f);
rotationSlot1 = new Vector3(1.0208f, 290.0177f, 179.9582f);
break;
case "Bow":
if (UltimateBag.BagPrefabName.Value == "5380005_BrigandBackpack_v") // SPECIAL PLACEMENT FOR BRIGANDBACKPACK
{
positionSlot1 = new Vector3(-0.14f, 0.14f, 0f);
rotationSlot1 = new Vector3(61.4246f, 141.3963f, 11.9091f);
} else {
positionSlot1 = new Vector3(0.04f, -0.04f, -0.14f);
rotationSlot1 = new Vector3(356.3531f, 290.784f, 353.7287f);
}
break;
case "Spear":
positionSlot1 = new Vector3(-0.2901f, -0.0555f, -1f);
rotationSlot1 = new Vector3(1.0208f, 290.0177f, 179.9582f);
break;
case "Axe(One Handed)":
positionSlot1 = new Vector3(-0.02f, 0f, -0.4f); //-0.02, 0, -0.4 0.02f, -0.02f, -0.22f
rotationSlot1 = new Vector3(5.2877f, 293.8563f, 175.003f);
break;
case "Axe(Two Handed)":
positionSlot1 = new Vector3(0.22f, -0.095f, 0.24f);
rotationSlot1 = new Vector3(2.8408f, 122.3997f, 188.2476f);
break;
case "Halberd":
positionSlot1 = new Vector3(0.24f, -0.09f, 0.48f);
rotationSlot1 = new Vector3(351.9301f, 292.5178f, 356.499f);
break;
case "Sword(One Handed)":
positionSlot1 = new Vector3(-0.2413f, -0.031f, 0.2394f); //-0.02, 0, -0.4 0.02f, -0.02f, -0.22f
rotationSlot1 = new Vector3(2.8648f, 59.127f, 179.9836f);
break;
case "Sword(Two Handed)":
positionSlot1 = new Vector3(0.24f, -0.09f, 0.48f);
rotationSlot1 = new Vector3(351.9301f, 292.5178f, 356.499f);
break;
case "Mace(One Handed)":
positionSlot1 = new Vector3(-0.02f, 0f, -0.4f); //-0.02, 0, -0.4 0.02f, -0.02f, -0.22f
rotationSlot1 = new Vector3(5.2877f, 293.8563f, 175.003f);
break;
case "Mace(Two Handed)":
positionSlot1 = new Vector3(-0.2101f, -0.0355f, -0.68f);
rotationSlot1 = new Vector3(1.0208f, 290.0177f, 179.9582f);
break;
default:
break;
} // POSITION AND ROTATION SLOT 1
switch (defineposandrot2)
{
case "Staff": // DONE
positionSlot2 = new Vector3(0.3f, -0.005f, -0.6f);
rotationSlot2 = new Vector3(357.5089f, 61.8f, 2.906f);
break;
case "Bow": //DONE
positionSlot2 = new Vector3(-0.04f, -0.04f, -0.12f);
rotationSlot2 = new Vector3(2.734f, 64.5905f, 180.2475f);
break;
case "Spear": //DONE
positionSlot2 = new Vector3(0.34f, -0.035f, -1.02f);
rotationSlot2 = new Vector3(2.5851f, 250.0005f, 179.022f);
break;
case "Axe(One Handed)":
positionSlot2 = new Vector3(0.1f, 0f, -0.4f);
rotationSlot2 = new Vector3(358.5891f, 69.23f, 2.7964f);
break;
case "Axe(Two Handed)":
positionSlot2 = new Vector3(-0.2f, 0.02f, 0.23f);
rotationSlot2 = new Vector3(347.9792f, 231.782f, 6.1241f);
break;
case "Halberd":
positionSlot2 = new Vector3(-0.26f, -0.07f, 0.51f);
rotationSlot2 = new Vector3(8.9016f, 63.8621f, 181.4015f);
break;
case "Sword(One Handed)":
positionSlot2 = new Vector3(0.28f, -0.08f, 0.24f);
rotationSlot2 = new Vector3(359.7222f, 120.5592f, 184.8041f);
break;
case "Sword(Two Handed)":
positionSlot2 = new Vector3(-0.28f, -0.035f, 0.48f);
rotationSlot2 = new Vector3(2.734f, 64.5905f, 180.2475f);
break;
case "Mace(One Handed)":
positionSlot2 = new Vector3(0.1f, 0f, -0.4f);
rotationSlot2 = new Vector3(358.5891f, 69.23f, 2.7964f);
break;
case "Mace(Two Handed)":
positionSlot2 = new Vector3(0.3f, -0.005f, -0.6f);
rotationSlot2 = new Vector3(357.5089f, 61.8f, 2.906f);
break;
default:
break;
} // POSITION AND ROTATION SLOT 2
// POSITION AND ROTATION SHIELD
Vector3 positionShield = new Vector3(0.0499f, 0.025f, -0.28f);
Vector3 rotationShield = new Vector3(333.5798f, 282.9698f, 353.0449f);
//PROCESS
if (UltimateBag.AddBoltBool.Value)
AddBolt(bag, 0f, 0.2f, 0f, UltimateBag.BoltColor.Value); // Bolt Effect
if (UltimateBag.AddSpiralBool.Value)
AddSpiral(bag, 0f, 0.2f, 0f, UltimateBag.SpiralColor.Value); // Spiral Effect
if (UltimateBag.EnableSlot1.Value)
AddWeaponSlot1(bag, VerifItemID(UltimateBag.VisualSlot1.Value, bow: true), positionSlot1, rotationSlot1); // Slot1
if (UltimateBag.EnableSlot2.Value)
AddWeaponSlot2(bag, VerifItemID(UltimateBag.VisualSlot2.Value, twoh: true), positionSlot2, rotationSlot2);
if (UltimateBag.AddLanternBool.Value || UltimateBag.BagPrefabName.Value == "5380005_BrigandBackpack_v")
AddLanternSlot(bag, 0.0686f, 0.1271f, -0.2781f); //LanternSlot // PENSER A FAIRE UNE VALEUR POUR CHAQUE SAC SANS LANTERN
if (UltimateBag.EnableShield.Value)
AddShield(bag, VerifItemID(UltimateBag.ShieldVisual.Value), positionShield, rotationShield);// Slot2
//2300050 SHIELD WOLF
}
}
static void AddLanternSlot(Bag bag, float xPos, float yPos, float zPos)
{
Bag adventurerBackpack = (Bag)ResourcesPrefabManager.ITEM_PREFABS["5300000"];
Transform lanternHolder = adventurerBackpack.LoadedVisual.transform.Find("LanternSlotAnchor"); // FIND LANTERN ANCHOR
Transform cachedLanternAnchor = Instantiate(lanternHolder); // CLONE ANCHOR
cachedLanternAnchor.parent = bag.LoadedVisual.transform;
bag.m_lanternSlot = bag.GetComponentInChildren<BagSlotVisual>();
cachedLanternAnchor.localPosition = new Vector3(xPos, yPos, zPos); //0.0686f, 0.1271f, -0.2781f
}
/*
static void AddWeaponSlot2(Bag bag, int itemID, float xPos, float yPos, float zPos, float xRot, float yRot, float zRot)
{
Vector3 roteuler = new Vector3(xRot, yRot, zRot);
GameObject clone2HW = Instantiate(GetVisuals(itemID)); // Clone
clone2HW.transform.parent = bag.LoadedVisual.transform;
clone2HW.transform.localPosition = new Vector3(xPos, yPos, zPos);// Position
clone2HW.transform.localRotation = Quaternion.Euler(roteuler); //Rotation /!\ REQUIRE EULER/NORMALIZER VALUES
clone2HW.transform.parent = bag.LoadedVisual.transform; // Attach
}
*/
static void AddWeaponSlot2(Bag bag, int itemID, Vector3 Pos, Vector3 Rot)
{
Vector3 rot = Rot; // Assignation
GameObject cloneSlot2 = Instantiate(GetVisuals(itemID)); // Clone
cloneSlot2.transform.parent = bag.LoadedVisual.transform; // Attach
cloneSlot2.transform.localPosition = Pos; // Position
cloneSlot2.transform.localRotation = Quaternion.Euler(rot); // Rotation
}
static void AddWeaponSlot1(Bag bag, int itemID, Vector3 Pos, Vector3 Rot)
{
Vector3 rot = Rot; // Assignation
GameObject cloneSlot1 = Instantiate(GetVisuals(itemID)); // Clone
cloneSlot1.transform.parent = bag.LoadedVisual.transform; // Attach
cloneSlot1.transform.localPosition = Pos; // Position
cloneSlot1.transform.localRotation = Quaternion.Euler(rot); //Rotation /!\ REQUIRE EULER/NORMALIZER VALUES
}
static void AddShield(Bag bag, int itemID, Vector3 Pos, Vector3 Rot)
{
Vector3 rot = Rot; // Assignation
GameObject shield = Instantiate(GetVisuals(itemID)); // Clone
shield.transform.parent = bag.LoadedVisual.transform; // Attach
shield.transform.localPosition = Pos; // Position
shield.transform.localRotation = Quaternion.Euler(rot); // Rotation
Transform model = bag.LoadedVisual.transform.Find("model");
model.gameObject.SetActive(false);
}
static void AddBolt(Bag bag, float x, float y, float z, string color = "yellow", bool hidelight = false)
{
Bag mageBackpack = (Bag)ResourcesPrefabManager.ITEM_PREFABS["5300170"];
Transform bolt = mageBackpack.LoadedVisual.transform.Find("backpack").transform.Find("_boltCrackling_Example_FX");
Transform cachedBolt = Instantiate(bolt.transform);
cachedBolt.parent = bag.LoadedVisual.transform;
cachedBolt.localPosition = new Vector3(x, y, z);
if (hidelight == true)
{
cachedBolt.transform.GetComponentInChildren<Light>().intensity = 0;
}
Color colorchoice = ToColor(color);
cachedBolt.transform.GetComponentInChildren<ParticleSystem>().startColor = colorchoice;
cachedBolt.transform.GetComponentInChildren<Light>().color = colorchoice;
cachedBolt.parent = bag.LoadedVisual.transform;
}
static void AddSpiral(Bag bag, float x, float y, float z, string color = "yellow")
{
Bag glowBackpack = (Bag)ResourcesPrefabManager.ITEM_PREFABS["5300050"];
Transform spiral = glowBackpack.LoadedVisual.transform.Find("Particle System");
Transform cachedSpiral = Instantiate(spiral.transform);
cachedSpiral.parent = bag.LoadedVisual.transform;
cachedSpiral.localPosition = new Vector3(x, y, z);
Color colorchoice = ToColor(color);
cachedSpiral.transform.GetComponentInChildren<ParticleSystem>().startColor = colorchoice;
cachedSpiral.parent = bag.LoadedVisual.transform;
}
//////////// UTILITY ///////////////
public static int VerifItemID(int itemid, bool bag = false, bool bow = false, bool twoh = false)
{
if (ResourcesPrefabManager.ITEM_PREFABS[itemid.ToString()].name != null)
{
return itemid;
}
else
{
if (bag == true)
{
return 5300000;
}
else if (bow == true)
{
return 2200000;
}
else if (twoh == true)
{
return 2100999;
}
else return 5300000;
}
}
public static Color ToColor(string color)
{
return (Color)typeof(Color).GetProperty(color.ToLowerInvariant()).GetValue(null, null);
}
public static GameObject GetVisuals(int itemID)
{
string visualsPath = ResourcesPrefabManager.ITEM_PREFABS[itemID.ToString()].m_visualPrefabPath;
return ResourcesPrefabManager.Instance.m_itemVisualsBundle.LoadAsset<GameObject>(visualsPath + ".prefab");
}
//////////// PATCH ///////////////
[HarmonyPatch(typeof(Bag), "BaseInit"), HarmonyPrefix]
static void Bag_BaseInit_Pre(Bag __instance)
{
ProcessVisualsExtend(__instance);
}
//////////// CONFIG /////////////
public static ConfigEntry<string> PositionSlot1;
public static ConfigEntry<string> PositionSlot2;
public static ConfigEntry<bool> EnableSlot1;
public static ConfigEntry<bool> EnableSlot2;
public static ConfigEntry<bool> AddBoltBool;
public static ConfigEntry<string> BoltColor;
public static ConfigEntry<bool> AddSpiralBool;
public static ConfigEntry<string> SpiralColor;
public static ConfigEntry<bool> AddLanternBool;
public static ConfigEntry<string> BagPrefabName;
public static ConfigEntry<int> VisualSlot1;
public static ConfigEntry<int> VisualSlot2;
public static ConfigEntry<bool> EnableShield;
public static ConfigEntry<int> ShieldVisual;
public static AcceptableValueList<string> CurrentBag;
public static ConfigEntry<bool> isStaffS1;
public static ConfigEntry<bool> isStaffS2;
public static ConfigEntry<bool> isSpearS1;
public static ConfigEntry<bool> isSpearS2;
public static ConfigEntry<bool> isBowS1;
public static ConfigEntry<bool> isBowS2;
public static ConfigEntry<bool> isSwordS1;
public static ConfigEntry<bool> isSwordS2;
public static ConfigEntry<bool> isHalberdS1; //CONFIG ENTRY FOR BEPINEX CONFIGURATION MANAGER
}
}

36
Properties/AssemblyInfo.cs

@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// Les informations générales relatives à un assembly dépendent de
// l'ensemble d'attributs suivant. Changez les valeurs de ces attributs pour modifier les informations
// associées à un assembly.
[assembly: AssemblyTitle("BagSlot")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("BagSlot")]
[assembly: AssemblyCopyright("Copyright © 2021")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// L'affectation de la valeur false à ComVisible rend les types invisibles dans cet assembly
// aux composants COM. Si vous devez accéder à un type dans cet assembly à partir de
// COM, affectez la valeur true à l'attribut ComVisible sur ce type.
[assembly: ComVisible(false)]
// Le GUID suivant est pour l'ID de la typelib si ce projet est exposé à COM
[assembly: Guid("70034b0d-05ea-41e6-a276-46bca3101217")]
// Les informations de version pour un assembly se composent des quatre valeurs suivantes :
//
// Version principale
// Version secondaire
// Numéro de build
// Révision
//
// Vous pouvez spécifier toutes les valeurs ou indiquer les numéros de build et de révision par défaut
// en utilisant '*', comme indiqué ci-dessous :
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

47
README.md

@ -0,0 +1,47 @@
# Ultimate backpack
by Ness
> [NEXUS MOD MANAGER LINK](https://www.nexusmods.com/outward/mods/229)
Ultimate backpack ****is simple mod for adding weapons, shield, lantern(for unplanned bags) and effects on your backpack. (PURELY COSMECTIC)
*Disclaimer: it's my first mod, and i never used C# before, so... You can encounter some bugs. Try to play with the parameters, and be award that any mods don't touch visual of backpack.*
If you want to help, you can send me your log [location: C:\Users\[USERNAME]\AppData\LocalLow\Nine Dots Studio\Outward])
## Require:
[BepinEx Configuration Manager](https://github.com/BepInEx/BepInEx.ConfigurationManager)
## How To Install:
1. If you haven't already, download and install **BepInEx**: [instructions here](https://outward.gamepedia.com/Installing_Mods#BepInEx_Loader)
2. Download the **Ultimatebackpack.zip** file from the Files page
3. Put this zip file in your Outward directory, so it looks like "**Outward\**Ultimatebackpack**.zip**"
4. Right-click the file and **Extract Here**, so it merges with the folders. It should look like "Outward\BepInEx\plugins\UltimateBackpack\"
5. Done! (you can delete the .zip file if you want)
## How to configure:
1. Press F1 (or F5) in game to open the Configuration Manager
2. Select your current backpack equipped
3. Enable weapon slot 1 or/and weapon slot 2
4. Put the item id of the weapon you want to attach on your backpack
[WEAPON ID HERE](https://outward.fandom.com/wiki/Equipment#Weapons)
7. Select the type of each weapon you want to attach
9. Enjoy!
10. (Optionnal) You can replace the backpack visual by a shield, for that, just select the shield id you want to attach and enable replace on configuration manager
12. (Optionnal) Add effects and color on your bag + lantern slot if your bag don't have one
**Thanks To**
- [Sinai](https://www.nexusmods.com/outward/users/68319717?tab=user+files) and [Vheos](https://www.nexusmods.com/outward/users/58085611?tab=user+files) for their help and advice in the outward-modding channel
### GALLERY:
![GAL1](https://staticdelivery.nexusmods.com/mods/2775/images/229/229-1630768142-2121882931.png)
![GAL2](https://staticdelivery.nexusmods.com/mods/2775/images/229/229-1630768176-510839893.png)
![GAL3](https://staticdelivery.nexusmods.com/mods/2775/images/229/229-1630768164-150967995.png)
![GAL4](https://staticdelivery.nexusmods.com/mods/2775/images/229/229-1630858149-1266327315.png)
![GAL5](https://staticdelivery.nexusmods.com/mods/2775/images/229/229-1653395372-287882427.jpeg)

85
UltimateBag.csproj

@ -0,0 +1,85 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{70034B0D-05EA-41E6-A276-46BCA3101217}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>UltimateBag</RootNamespace>
<AssemblyName>UltimateBag</AssemblyName>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<Deterministic>true</Deterministic>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<ItemGroup>
<Reference Include="0Harmony">
<HintPath>J:\Games\SteamLibrary\steamapps\common\Outward\BepInEx\core\0Harmony.dll</HintPath>
</Reference>
<Reference Include="Assembly-CSharp-firstpass_publicized">
<HintPath>J:\Games\SteamLibrary\steamapps\common\Outward\Outward_Data\Managed\publicized_assemblies\Assembly-CSharp-firstpass_publicized.dll</HintPath>
</Reference>
<Reference Include="Assembly-CSharp_publicized">
<HintPath>J:\Games\SteamLibrary\steamapps\common\Outward\Outward_Data\Managed\publicized_assemblies\Assembly-CSharp_publicized.dll</HintPath>
</Reference>
<Reference Include="BepInEx">
<HintPath>J:\Games\SteamLibrary\steamapps\common\Outward\BepInEx\core\BepInEx.dll</HintPath>
</Reference>
<Reference Include="BepInEx.MessageCenter">
<HintPath>J:\Games\SteamLibrary\steamapps\common\Outward\BepInEx\plugins\BepInEx.MessageCenter.dll</HintPath>
</Reference>
<Reference Include="ConfigurationManager">
<HintPath>J:\Games\SteamLibrary\steamapps\common\Outward\BepInEx\plugins\ConfigurationManager.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
<Reference Include="UnityEngine">
<HintPath>J:\Games\SteamLibrary\steamapps\common\Outward\Outward_Data\Managed\UnityEngine.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.AssetBundleModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Reference Include="UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>J:\Games\SteamLibrary\steamapps\common\Outward\Outward_Data\Managed\UnityEngine.CoreModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.IMGUIModule, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>J:\Games\SteamLibrary\steamapps\common\Outward\Outward_Data\Managed\UnityEngine.IMGUIModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.ParticleSystemModule, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>J:\Games\SteamLibrary\steamapps\common\Outward\Outward_Data\Managed\UnityEngine.ParticleSystemModule.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="ConfigurationManagerAttributes.cs" />
<Compile Include="Main.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

BIN
bin/Debug/0Harmony.dll

Binary file not shown.

4109
bin/Debug/0Harmony.xml

File diff suppressed because it is too large Load Diff

BIN
bin/Debug/Assembly-CSharp-firstpass_publicized.dll

Binary file not shown.

BIN
bin/Debug/Assembly-CSharp_publicized.dll

Binary file not shown.

BIN
bin/Debug/BagSlot.dll

Binary file not shown.

BIN
bin/Debug/BagSlot.pdb

Binary file not shown.

BIN
bin/Debug/BepInEx.MessageCenter.dll

Binary file not shown.

BIN
bin/Debug/BepInEx.dll

Binary file not shown.

1657
bin/Debug/BepInEx.xml

File diff suppressed because it is too large Load Diff

BIN
bin/Debug/ConfigurationManager.dll

Binary file not shown.

298
bin/Debug/ConfigurationManager.xml

@ -0,0 +1,298 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>ConfigurationManager</name>
</assembly>
<members>
<member name="M:ConfigurationManager.LegacySettingSearcher.GetLegacyPluginConfig(BepInEx.BaseUnityPlugin)">
<summary>
Used by bepinex 4 plugins
</summary>
</member>
<member name="M:ConfigurationManager.SettingSearcher.GetBepInExCoreConfig">
<summary>
Bepinex 5 config
</summary>
</member>
<member name="M:ConfigurationManager.SettingSearcher.GetPluginConfig(BepInEx.BaseUnityPlugin)">
<summary>
Used by bepinex 5 plugins
</summary>
</member>
<member name="M:ConfigurationManager.Utilities.Utils.FilterBrowsable``1(System.Collections.Generic.IEnumerable{``0},System.Boolean,System.Boolean)">
<summary>
Return items with browsable attribute same as expectedBrowsable, and optionally items with no browsable attribute
</summary>
</member>
<member name="T:ConfigurationManager.ConfigurationManager">
<summary>
An easy way to let user configure how a plugin behaves without the need to make your own GUI. The user can change any of the settings you expose, even keyboard shortcuts.
https://github.com/ManlyMarco/BepInEx.ConfigurationManager
</summary>
</member>
<member name="F:ConfigurationManager.ConfigurationManager.GUID">
<summary>
GUID of this plugin
</summary>
</member>
<member name="F:ConfigurationManager.ConfigurationManager.Version">
<summary>
Version constant
</summary>
</member>
<member name="E:ConfigurationManager.ConfigurationManager.DisplayingWindowChanged">
<summary>
Event fired every time the manager window is shown or hidden.
</summary>
</member>
<member name="F:ConfigurationManager.ConfigurationManager.OverrideHotkey">
<summary>
Disable the hotkey check used by config manager. If enabled you have to set <see cref="P:ConfigurationManager.ConfigurationManager.DisplayingWindow"/> to show the manager.
</summary>
</member>
<member name="M:ConfigurationManager.ConfigurationManager.#ctor">
<inheritdoc />
</member>
<member name="P:ConfigurationManager.ConfigurationManager.DisplayingWindow">
<summary>
Is the config manager main window displayed on screen
</summary>
</member>
<member name="M:ConfigurationManager.ConfigurationManager.RegisterCustomSettingDrawer(System.Type,System.Action{ConfigurationManager.SettingEntryBase})">
<summary>
Register a custom setting drawer for a given type. The action is ran in OnGui in a single setting slot.
Do not use any Begin / End layout methods, and avoid raising height from standard.
</summary>
</member>
<member name="P:ConfigurationManager.ConfigurationManager.SearchString">
<summary>
String currently entered into the search box
</summary>
</member>
<member name="P:ConfigurationManager.LegacySettingEntry.Wrapper">
<summary>
Instance of the object that holds this setting.
Null if setting is not in a ConfigWrapper.
</summary>
</member>
<member name="T:ConfigurationManager.SettingEntryBase">
<summary>
Class representing all data about a setting collected by ConfigurationManager.
</summary>
</member>
<member name="P:ConfigurationManager.SettingEntryBase.AcceptableValues">
<summary>
List of values this setting can take
</summary>
</member>
<member name="P:ConfigurationManager.SettingEntryBase.AcceptableValueRange">
<summary>
Range of the values this setting can take
</summary>
</member>
<member name="P:ConfigurationManager.SettingEntryBase.ShowRangeAsPercent">
<summary>
Should the setting be shown as a percentage (only applies to value range settings)
</summary>
</member>
<member name="P:ConfigurationManager.SettingEntryBase.CustomDrawer">
<summary>
Custom setting draw action
</summary>
</member>
<member name="P:ConfigurationManager.SettingEntryBase.Browsable">
<summary>
Show this setting in the settings screen at all? If false, don't show.
</summary>
</member>
<member name="P:ConfigurationManager.SettingEntryBase.Category">
<summary>
Category the setting is under. Null to be directly under the plugin.
</summary>
</member>
<member name="P:ConfigurationManager.SettingEntryBase.DefaultValue">
<summary>
If set, a "Default" button will be shown next to the setting to allow resetting to default.
</summary>
</member>
<member name="P:ConfigurationManager.SettingEntryBase.HideDefaultButton">
<summary>
Force the "Reset" button to not be displayed, even if a valid DefaultValue is available.
</summary>
</member>
<member name="P:ConfigurationManager.SettingEntryBase.HideSettingName">
<summary>
Force the setting name to not be displayed. Should only be used with a <see cref="P:ConfigurationManager.SettingEntryBase.CustomDrawer"/> to get more space.
Can be used together with <see cref="P:ConfigurationManager.SettingEntryBase.HideDefaultButton"/> to gain even more space.
</summary>
</member>
<member name="P:ConfigurationManager.SettingEntryBase.Description">
<summary>
Optional description shown when hovering over the setting
</summary>
</member>
<member name="P:ConfigurationManager.SettingEntryBase.DispName">
<summary>
Name of the setting
</summary>
</member>
<member name="P:ConfigurationManager.SettingEntryBase.PluginInfo">
<summary>
Plugin this setting belongs to
</summary>
</member>
<member name="P:ConfigurationManager.SettingEntryBase.ReadOnly">
<summary>
Only allow showing of the value. False whenever possible by default.
</summary>
</member>
<member name="P:ConfigurationManager.SettingEntryBase.SettingType">
<summary>
Type of the variable
</summary>
</member>
<member name="P:ConfigurationManager.SettingEntryBase.PluginInstance">
<summary>
Instance of the plugin that owns this setting
</summary>
</member>
<member name="P:ConfigurationManager.SettingEntryBase.IsAdvanced">
<summary>
Is this setting advanced
</summary>
</member>
<member name="P:ConfigurationManager.SettingEntryBase.Order">
<summary>
Order of the setting on the settings list relative to other settings in a category. 0 by default, lower is higher on the list.
</summary>
</member>
<member name="M:ConfigurationManager.SettingEntryBase.Get">
<summary>
Get the value of this setting
</summary>
</member>
<member name="M:ConfigurationManager.SettingEntryBase.Set(System.Object)">
<summary>
Set the value of this setting
</summary>
</member>
<member name="M:ConfigurationManager.SettingEntryBase.SetValue(System.Object)">
<summary>
Implementation of <see cref="M:ConfigurationManager.SettingEntryBase.Set(System.Object)"/>
</summary>
</member>
<member name="P:ConfigurationManager.SettingEntryBase.ObjToStr">
<summary>
Custom converter from setting type to string for the textbox
</summary>
</member>
<member name="P:ConfigurationManager.SettingEntryBase.StrToObj">
<summary>
Custom converter from string to setting type for the textbox
</summary>
</member>
<member name="T:ConfigurationManager.ValueChangedEventArgs`1">
<summary>
Arguments representing a change in value
</summary>
</member>
<member name="M:ConfigurationManager.ValueChangedEventArgs`1.#ctor(`0)">
<inheritdoc />
</member>
<member name="P:ConfigurationManager.ValueChangedEventArgs`1.NewValue">
<summary>
Newly assigned value
</summary>
</member>
<member name="T:BepInEx.AcceptableValueListAttribute">
<summary>
Specify the list of acceptable values for this variable. It will allow the configuration window to show a list of available values.
</summary>
</member>
<member name="M:BepInEx.AcceptableValueListAttribute.#ctor(System.Object[])">
<summary>
Specify the list of acceptable values for this variable. It will allow the configuration window to show a list of available values.
</summary>
<param name="acceptableValues">List of acceptable values for this setting</param>
</member>
<member name="M:BepInEx.AcceptableValueListAttribute.#ctor(System.String)">
<summary>
Specify a method that returns the list of acceptable values for this variable. It will allow the configuration window to show a list of available values.
</summary>
<param name="acceptableValueGetterName">Name of an instance method that takes no arguments and returns array object[] that contains the acceptable values</param>
</member>
<member name="T:BepInEx.AcceptableValueRangeAttribute">
<summary>
Specify the range of acceptable values for this variable. It will allow the configuration window to show a slider
and filter inputs.
</summary>
</member>
<member name="M:BepInEx.AcceptableValueRangeAttribute.#ctor(System.Object,System.Object,System.Boolean)">
<param name="minValue">Lowest acceptable value</param>
<param name="maxValue">Highest acceptable value</param>
<param name="showAsPercentage">
Show the current value as % between min and max values if possible. Otherwise show the
value itself.
</param>
</member>
<member name="M:BepInEx.CustomSettingDrawAttribute.#ctor(System.String)">
<summary>
Register a custom field editor drawer that will replace config manager's default field editors
(The part between setting name and the default button).
</summary>
<param name="customFieldDrawMethod">Name of the method that will draw the edit field.
The method needs to be an instance method with signature <code>void Name ()</code>. Runs in OnGUI.</param>
</member>
<member name="T:BepInEx.KeyboardShortcut">
<summary>
A keyboard shortcut that can be used in Update method to check if user presses a key combo.
Use SavedKeyboardShortcut to allow user to change this shortcut and have the changes saved.
How to use: Use IsDown instead of the Imput.GetKeyDown in the Update loop.
</summary>
</member>
<member name="M:BepInEx.KeyboardShortcut.#ctor(UnityEngine.KeyCode,UnityEngine.KeyCode[])">
<summary>
Create a new keyboard shortcut.
</summary>
<param name="mainKey">Main key to press</param>
<param name="modifiers">Keys that should be held down before main key is registered</param>
</member>
<member name="M:BepInEx.KeyboardShortcut.IsDown">
<summary>
Check if the main key was just pressed (Input.GetKeyDown), and specified modifier keys are all pressed
</summary>
</member>
<member name="M:BepInEx.KeyboardShortcut.IsPressed">
<summary>
Check if the main key is currently held down (Input.GetKey), and specified modifier keys are all pressed
</summary>
</member>
<member name="M:BepInEx.KeyboardShortcut.IsUp">
<summary>
Check if the main key was just lifted (Input.GetKeyUp), and specified modifier keys are all pressed.
</summary>
</member>
<member name="T:BepInEx.SavedKeyboardShortcut">
<summary>
A keyboard shortcut that is saved in the config file and can be changed by the user if ConfigurationManager plugin
is present.
How to use: Run IsPressed in Update to check if user presses the button combo.
</summary>
</member>
<member name="M:BepInEx.SavedKeyboardShortcut.IsPressed">
<summary>
Check if the main key is currently held down (Input.GetKey), and specified modifier keys are all pressed
</summary>
</member>
<member name="M:BepInEx.SavedKeyboardShortcut.IsDown">
<summary>
Check if the main key was just pressed (Input.GetKeyDown), and specified modifier keys are all pressed
</summary>
</member>
<member name="M:BepInEx.SavedKeyboardShortcut.IsUp">
<summary>
Check if the main key was just lifted (Input.GetKeyUp), and specified modifier keys are all pressed.
</summary>
</member>
</members>
</doc>

BIN
bin/Debug/GalaxyCSharp.dll

Binary file not shown.

BIN
bin/Debug/Ionic.Zip.Reduced.dll

Binary file not shown.

BIN
bin/Debug/MathLib.dll

Binary file not shown.

BIN
bin/Debug/Mono.Cecil.dll

Binary file not shown.

BIN
bin/Debug/MonoMod.RuntimeDetour.dll

Binary file not shown.

178
bin/Debug/MonoMod.RuntimeDetour.xml

@ -0,0 +1,178 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>MonoMod.RuntimeDetour</name>
</assembly>
<members>
<member name="T:MonoMod.RuntimeDetour.Detour">
<summary>
A fully managed detour.
Multiple Detours for a method to detour from can exist at any given time. Detours can be layered.
If you're writing your own detour manager or need to detour native functions, it's better to create instances of NativeDetour instead.
</summary>
</member>
<member name="M:MonoMod.RuntimeDetour.Detour.Apply">
<summary>
Mark the detour as applied in the detour chain. This can be done automatically when creating an instance.
</summary>
</member>
<member name="M:MonoMod.RuntimeDetour.Detour.Undo">
<summary>
Undo the detour without freeing it, allowing you to reapply it later.
</summary>
</member>
<member name="M:MonoMod.RuntimeDetour.Detour.Free">
<summary>
Free the detour, while also permanently undoing it. This makes any further operations on this detour invalid.
</summary>
</member>
<member name="M:MonoMod.RuntimeDetour.Detour.Dispose">
<summary>
Undo and free this temporary detour.
</summary>
</member>
<member name="M:MonoMod.RuntimeDetour.Detour.GenerateTrampoline(System.Reflection.MethodBase)">
<summary>
Generate a new DynamicMethod with which you can invoke the previous state.
</summary>
</member>
<member name="M:MonoMod.RuntimeDetour.Detour.GenerateTrampoline``1">
<summary>
Generate a new DynamicMethod with which you can invoke the previous state.
</summary>
</member>
<member name="M:MonoMod.RuntimeDetour.Hook.GenerateTrampoline``1">
<summary>
Generate a new DynamicMethod with which you can invoke the previous state.
</summary>
</member>
<member name="T:MonoMod.RuntimeDetour.NativeDetour">
<summary>
A "raw" native detour, acting as a wrapper around NativeDetourData with a few helpers.
Only one NativeDetour for a method to detour from can exist at any given time. NativeDetours cannot be layered.
If you don't need the trampoline generator or any of the management helpers, use DetourManager.Native directly.
Unless you're writing your own detour manager or need to detour native functions, it's better to create instances of Detour instead.
</summary>
</member>
<member name="M:MonoMod.RuntimeDetour.NativeDetour.Apply">
<summary>
Apply the native detour. This can be done automatically when creating an instance.
</summary>
</member>
<member name="M:MonoMod.RuntimeDetour.NativeDetour.Undo">
<summary>
Undo the native detour without freeing the detour native data, allowing you to reapply it later.
</summary>
</member>
<member name="M:MonoMod.RuntimeDetour.NativeDetour.ChangeSource(System.IntPtr)">
<summary>
Changes the source of this native detour to a new source address. This does not repair the old source location.
This also assumes that <paramref name="newSource"/> is simply a new address for the same method as this was constructed with.
</summary>
<param name="newSource">The new source location.</param>
</member>
<member name="M:MonoMod.RuntimeDetour.NativeDetour.ChangeTarget(System.IntPtr)">
<summary>
Changed the target of this native detour to a new target.
</summary>
<param name="newTarget">The new target address.</param>
</member>
<member name="M:MonoMod.RuntimeDetour.NativeDetour.Free">
<summary>
Free the detour's data without undoing it. This makes any further operations on this detour invalid.
</summary>
</member>
<member name="M:MonoMod.RuntimeDetour.NativeDetour.Dispose">
<summary>
Undo and free this temporary detour.
</summary>
</member>
<member name="M:MonoMod.RuntimeDetour.NativeDetour.GenerateTrampoline(System.Reflection.MethodBase)">
<summary>
Generate a new DynamicMethod with which you can invoke the previous state.
If the NativeDetour holds a reference to a managed method, a copy of the original method is returned.
If the NativeDetour holds a reference to a native function, an "undo-call-redo" trampoline with a matching signature is returned.
</summary>
</member>
<member name="M:MonoMod.RuntimeDetour.NativeDetour.GenerateTrampoline``1">
<summary>
Generate a new delegate with which you can invoke the previous state.
If the NativeDetour holds a reference to a managed method, a copy of the original method is returned.
If the NativeDetour holds a reference to a native function, an "undo-call-redo" trampoline with a matching signature is returned.
</summary>
</member>
<member name="M:MonoMod.RuntimeDetour.DetourHelper.Write(System.IntPtr,System.Int32@,System.Byte)">
<summary>
Write the given value at the address to + offs, afterwards advancing offs by sizeof(byte).
</summary>
</member>
<member name="M:MonoMod.RuntimeDetour.DetourHelper.Write(System.IntPtr,System.Int32@,System.UInt16)">
<summary>
Write the given value at the address to + offs, afterwards advancing offs by sizeof(ushort).
</summary>
</member>
<member name="M:MonoMod.RuntimeDetour.DetourHelper.Write(System.IntPtr,System.Int32@,System.UInt32)">
<summary>
Write the given value at the address to + offs, afterwards advancing offs by sizeof(ushort).
</summary>
</member>
<member name="M:MonoMod.RuntimeDetour.DetourHelper.Write(System.IntPtr,System.Int32@,System.UInt64)">
<summary>
Write the given value at the address to + offs, afterwards advancing offs by sizeof(ulong).
</summary>
</member>
<member name="M:MonoMod.RuntimeDetour.DetourHelper.GenerateNativeProxy(System.IntPtr,System.Reflection.MethodBase)">
<summary>
Generate a DynamicMethod to easily call the given native function from another DynamicMethod.
</summary>
<param name="target">The pointer to the native function to call.</param>
<param name="signature">A MethodBase with the target function's signature.</param>
<returns>The detoured DynamicMethod.</returns>
</member>
<member name="M:MonoMod.RuntimeDetour.DetourHelper.StubCriticalDetour(MonoMod.Utils.DynamicMethodDefinition)">
<summary>
Fill the DynamicMethodDefinition with a throw.
</summary>
</member>
<member name="M:MonoMod.RuntimeDetour.DetourHelper.EmitDetourCopy(Mono.Cecil.Cil.ILProcessor,System.IntPtr,System.IntPtr,System.Byte)">
<summary>
Emit a call to DetourManager.Native.Copy using the given parameters.
</summary>
</member>
<member name="M:MonoMod.RuntimeDetour.DetourHelper.EmitDetourApply(Mono.Cecil.Cil.ILProcessor,MonoMod.RuntimeDetour.NativeDetourData)">
<summary>
Emit a call to DetourManager.Native.Apply using a copy of the given data.
</summary>
</member>
<member name="T:MonoMod.RuntimeDetour.NativeDetourData">
<summary>
The data forming a "raw" native detour, created and consumed by DetourManager.Native.
</summary>
</member>
<member name="F:MonoMod.RuntimeDetour.NativeDetourData.Method">
<summary>
The method to detour from. Set when the structure is created by the IDetourNativePlatform.
</summary>
</member>
<member name="F:MonoMod.RuntimeDetour.NativeDetourData.Target">
<summary>
The target method to be called instead. Set when the structure is created by the IDetourNativePlatform.
</summary>
</member>
<member name="F:MonoMod.RuntimeDetour.NativeDetourData.Type">
<summary>
The type of the detour. Determined when the structure is created by the IDetourNativePlatform.
</summary>
</member>
<member name="F:MonoMod.RuntimeDetour.NativeDetourData.Size">
<summary>
The size of the detour. Calculated when the structure is created by the IDetourNativePlatform.
</summary>
</member>
<member name="F:MonoMod.RuntimeDetour.NativeDetourData.Extra">
<summary>
DetourManager.Native-specific data.
</summary>
</member>
</members>
</doc>

BIN
bin/Debug/MonoMod.Utils.dll

Binary file not shown.

1465
bin/Debug/MonoMod.Utils.xml

File diff suppressed because it is too large Load Diff

BIN
bin/Debug/Photon3Unity3D.dll

Binary file not shown.

BIN
bin/Debug/Rewired_Core.dll

Binary file not shown.

BIN
bin/Debug/Rewired_Windows.dll

Binary file not shown.

BIN
bin/Debug/UltimateBackpack.dll

Binary file not shown.

BIN
bin/Debug/UltimateBag.dll

Binary file not shown.

BIN
bin/Debug/UltimateBag.pdb

Binary file not shown.

BIN
bin/Debug/UnityEngine.AIModule.dll

Binary file not shown.

BIN
bin/Debug/UnityEngine.ARModule.dll

Binary file not shown.

BIN
bin/Debug/UnityEngine.AccessibilityModule.dll

Binary file not shown.

BIN
bin/Debug/UnityEngine.AnimationModule.dll

Binary file not shown.

BIN
bin/Debug/UnityEngine.AssetBundleModule.dll

Binary file not shown.

BIN
bin/Debug/UnityEngine.AudioModule.dll

Binary file not shown.

BIN
bin/Debug/UnityEngine.ClothModule.dll

Binary file not shown.

BIN
bin/Debug/UnityEngine.ClusterInputModule.dll

Binary file not shown.

BIN
bin/Debug/UnityEngine.ClusterRendererModule.dll

Binary file not shown.

BIN
bin/Debug/UnityEngine.CoreModule.dll

Binary file not shown.

BIN
bin/Debug/UnityEngine.CrashReportingModule.dll

Binary file not shown.

BIN
bin/Debug/UnityEngine.DirectorModule.dll

Binary file not shown.

BIN
bin/Debug/UnityEngine.GameCenterModule.dll

Binary file not shown.

BIN
bin/Debug/UnityEngine.GridModule.dll

Binary file not shown.

BIN
bin/Debug/UnityEngine.IMGUIModule.dll

Binary file not shown.

BIN
bin/Debug/UnityEngine.ImageConversionModule.dll

Binary file not shown.

BIN
bin/Debug/UnityEngine.InputModule.dll

Binary file not shown.

BIN
bin/Debug/UnityEngine.JSONSerializeModule.dll

Binary file not shown.

BIN
bin/Debug/UnityEngine.LocalizationModule.dll

Binary file not shown.

BIN
bin/Debug/UnityEngine.ParticleSystemModule.dll

Binary file not shown.

BIN
bin/Debug/UnityEngine.PerformanceReportingModule.dll

Binary file not shown.

BIN
bin/Debug/UnityEngine.Physics2DModule.dll

Binary file not shown.

BIN
bin/Debug/UnityEngine.PhysicsModule.dll

Binary file not shown.

BIN
bin/Debug/UnityEngine.ScreenCaptureModule.dll

Binary file not shown.

BIN
bin/Debug/UnityEngine.SharedInternalsModule.dll

Binary file not shown.

BIN
bin/Debug/UnityEngine.SpriteMaskModule.dll

Binary file not shown.

BIN
bin/Debug/UnityEngine.SpriteShapeModule.dll

Binary file not shown.

BIN
bin/Debug/UnityEngine.StreamingModule.dll

Binary file not shown.

BIN
bin/Debug/UnityEngine.StyleSheetsModule.dll

Binary file not shown.

BIN
bin/Debug/UnityEngine.TerrainModule.dll

Binary file not shown.

BIN
bin/Debug/UnityEngine.TerrainPhysicsModule.dll

Binary file not shown.

BIN
bin/Debug/UnityEngine.TextCoreModule.dll

Binary file not shown.

BIN
bin/Debug/UnityEngine.TextRenderingModule.dll

Binary file not shown.

BIN
bin/Debug/UnityEngine.TilemapModule.dll

Binary file not shown.

BIN
bin/Debug/UnityEngine.UI.dll

Binary file not shown.

BIN
bin/Debug/UnityEngine.UIElementsModule.dll

Binary file not shown.

BIN
bin/Debug/UnityEngine.UIModule.dll

Binary file not shown.

BIN
bin/Debug/UnityEngine.UNETModule.dll

Binary file not shown.

BIN
bin/Debug/UnityEngine.UnityAnalyticsModule.dll

Binary file not shown.

BIN
bin/Debug/UnityEngine.UnityConnectModule.dll

Binary file not shown.

BIN
bin/Debug/UnityEngine.UnityWebRequestAssetBundleModule.dll

Binary file not shown.

BIN
bin/Debug/UnityEngine.UnityWebRequestAudioModule.dll

Binary file not shown.

BIN
bin/Debug/UnityEngine.UnityWebRequestModule.dll

Binary file not shown.

BIN
bin/Debug/UnityEngine.UnityWebRequestTextureModule.dll

Binary file not shown.

BIN
bin/Debug/UnityEngine.UnityWebRequestWWWModule.dll

Binary file not shown.

BIN
bin/Debug/UnityEngine.VFXModule.dll

Binary file not shown.

BIN
bin/Debug/UnityEngine.VRModule.dll

Binary file not shown.

BIN
bin/Debug/UnityEngine.VehiclesModule.dll

Binary file not shown.

BIN
bin/Debug/UnityEngine.VideoModule.dll

Binary file not shown.

BIN
bin/Debug/UnityEngine.WindModule.dll

Binary file not shown.

BIN
bin/Debug/UnityEngine.XRModule.dll

Binary file not shown.

BIN
bin/Debug/UnityEngine.dll

Binary file not shown.

BIN
bin/Release/0Harmony.dll

Binary file not shown.

4109
bin/Release/0Harmony.xml

File diff suppressed because it is too large Load Diff

BIN
bin/Release/Assembly-CSharp-firstpass_publicized.dll

Binary file not shown.

BIN
bin/Release/Assembly-CSharp_publicized.dll

Binary file not shown.

BIN
bin/Release/BagSlot.dll

Binary file not shown.

BIN
bin/Release/BagSlot.pdb

Binary file not shown.

BIN
bin/Release/BepInEx.MessageCenter.dll

Binary file not shown.

BIN
bin/Release/BepInEx.dll

Binary file not shown.

1657
bin/Release/BepInEx.xml

File diff suppressed because it is too large Load Diff

BIN
bin/Release/Mono.Cecil.dll

Binary file not shown.

BIN
bin/Release/MonoMod.RuntimeDetour.dll

Binary file not shown.

178
bin/Release/MonoMod.RuntimeDetour.xml

@ -0,0 +1,178 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>MonoMod.RuntimeDetour</name>
</assembly>
<members>
<member name="T:MonoMod.RuntimeDetour.Detour">
<summary>
A fully managed detour.
Multiple Detours for a method to detour from can exist at any given time. Detours can be layered.
If you're writing your own detour manager or need to detour native functions, it's better to create instances of NativeDetour instead.
</summary>
</member>
<member name="M:MonoMod.RuntimeDetour.Detour.Apply">
<summary>
Mark the detour as applied in the detour chain. This can be done automatically when creating an instance.
</summary>
</member>
<member name="M:MonoMod.RuntimeDetour.Detour.Undo">
<summary>
Undo the detour without freeing it, allowing you to reapply it later.
</summary>
</member>
<member name="M:MonoMod.RuntimeDetour.Detour.Free">
<summary>
Free the detour, while also permanently undoing it. This makes any further operations on this detour invalid.
</summary>
</member>
<member name="M:MonoMod.RuntimeDetour.Detour.Dispose">
<summary>
Undo and free this temporary detour.
</summary>
</member>
<member name="M:MonoMod.RuntimeDetour.Detour.GenerateTrampoline(System.Reflection.MethodBase)">
<summary>
Generate a new DynamicMethod with which you can invoke the previous state.
</summary>
</member>
<member name="M:MonoMod.RuntimeDetour.Detour.GenerateTrampoline``1">
<summary>
Generate a new DynamicMethod with which you can invoke the previous state.
</summary>
</member>
<member name="M:MonoMod.RuntimeDetour.Hook.GenerateTrampoline``1">
<summary>
Generate a new DynamicMethod with which you can invoke the previous state.
</summary>
</member>
<member name="T:MonoMod.RuntimeDetour.NativeDetour">
<summary>
A "raw" native detour, acting as a wrapper around NativeDetourData with a few helpers.
Only one NativeDetour for a method to detour from can exist at any given time. NativeDetours cannot be layered.
If you don't need the trampoline generator or any of the management helpers, use DetourManager.Native directly.
Unless you're writing your own detour manager or need to detour native functions, it's better to create instances of Detour instead.
</summary>
</member>
<member name="M:MonoMod.RuntimeDetour.NativeDetour.Apply">
<summary>
Apply the native detour. This can be done automatically when creating an instance.
</summary>
</member>
<member name="M:MonoMod.RuntimeDetour.NativeDetour.Undo">
<summary>
Undo the native detour without freeing the detour native data, allowing you to reapply it later.
</summary>
</member>
<member name="M:MonoMod.RuntimeDetour.NativeDetour.ChangeSource(System.IntPtr)">
<summary>
Changes the source of this native detour to a new source address. This does not repair the old source location.
This also assumes that <paramref name="newSource"/> is simply a new address for the same method as this was constructed with.
</summary>
<param name="newSource">The new source location.</param>
</member>
<member name="M:MonoMod.RuntimeDetour.NativeDetour.ChangeTarget(System.IntPtr)">
<summary>
Changed the target of this native detour to a new target.
</summary>
<param name="newTarget">The new target address.</param>
</member>
<member name="M:MonoMod.RuntimeDetour.NativeDetour.Free">
<summary>
Free the detour's data without undoing it. This makes any further operations on this detour invalid.
</summary>
</member>
<member name="M:MonoMod.RuntimeDetour.NativeDetour.Dispose">
<summary>
Undo and free this temporary detour.
</summary>
</member>
<member name="M:MonoMod.RuntimeDetour.NativeDetour.GenerateTrampoline(System.Reflection.MethodBase)">
<summary>
Generate a new DynamicMethod with which you can invoke the previous state.
If the NativeDetour holds a reference to a managed method, a copy of the original method is returned.
If the NativeDetour holds a reference to a native function, an "undo-call-redo" trampoline with a matching signature is returned.
</summary>
</member>
<member name="M:MonoMod.RuntimeDetour.NativeDetour.GenerateTrampoline``1">
<summary>
Generate a new delegate with which you can invoke the previous state.
If the NativeDetour holds a reference to a managed method, a copy of the original method is returned.
If the NativeDetour holds a reference to a native function, an "undo-call-redo" trampoline with a matching signature is returned.
</summary>
</member>
<member name="M:MonoMod.RuntimeDetour.DetourHelper.Write(System.IntPtr,System.Int32@,System.Byte)">
<summary>
Write the given value at the address to + offs, afterwards advancing offs by sizeof(byte).
</summary>
</member>
<member name="M:MonoMod.RuntimeDetour.DetourHelper.Write(System.IntPtr,System.Int32@,System.UInt16)">
<summary>
Write the given value at the address to + offs, afterwards advancing offs by sizeof(ushort).
</summary>
</member>
<member name="M:MonoMod.RuntimeDetour.DetourHelper.Write(System.IntPtr,System.Int32@,System.UInt32)">
<summary>
Write the given value at the address to + offs, afterwards advancing offs by sizeof(ushort).
</summary>
</member>
<member name="M:MonoMod.RuntimeDetour.DetourHelper.Write(System.IntPtr,System.Int32@,System.UInt64)">
<summary>
Write the given value at the address to + offs, afterwards advancing offs by sizeof(ulong).
</summary>
</member>
<member name="M:MonoMod.RuntimeDetour.DetourHelper.GenerateNativeProxy(System.IntPtr,System.Reflection.MethodBase)">
<summary>
Generate a DynamicMethod to easily call the given native function from another DynamicMethod.
</summary>
<param name="target">The pointer to the native function to call.</param>
<param name="signature">A MethodBase with the target function's signature.</param>
<returns>The detoured DynamicMethod.</returns>
</member>
<member name="M:MonoMod.RuntimeDetour.DetourHelper.StubCriticalDetour(MonoMod.Utils.DynamicMethodDefinition)">
<summary>
Fill the DynamicMethodDefinition with a throw.
</summary>
</member>
<member name="M:MonoMod.RuntimeDetour.DetourHelper.EmitDetourCopy(Mono.Cecil.Cil.ILProcessor,System.IntPtr,System.IntPtr,System.Byte)">
<summary>
Emit a call to DetourManager.Native.Copy using the given parameters.
</summary>
</member>
<member name="M:MonoMod.RuntimeDetour.DetourHelper.EmitDetourApply(Mono.Cecil.Cil.ILProcessor,MonoMod.RuntimeDetour.NativeDetourData)">
<summary>
Emit a call to DetourManager.Native.Apply using a copy of the given data.
</summary>
</member>
<member name="T:MonoMod.RuntimeDetour.NativeDetourData">
<summary>
The data forming a "raw" native detour, created and consumed by DetourManager.Native.
</summary>
</member>
<member name="F:MonoMod.RuntimeDetour.NativeDetourData.Method">
<summary>
The method to detour from. Set when the structure is created by the IDetourNativePlatform.
</summary>
</member>
<member name="F:MonoMod.RuntimeDetour.NativeDetourData.Target">
<summary>
The target method to be called instead. Set when the structure is created by the IDetourNativePlatform.
</summary>
</member>
<member name="F:MonoMod.RuntimeDetour.NativeDetourData.Type">
<summary>
The type of the detour. Determined when the structure is created by the IDetourNativePlatform.
</summary>
</member>
<member name="F:MonoMod.RuntimeDetour.NativeDetourData.Size">
<summary>
The size of the detour. Calculated when the structure is created by the IDetourNativePlatform.
</summary>
</member>
<member name="F:MonoMod.RuntimeDetour.NativeDetourData.Extra">
<summary>
DetourManager.Native-specific data.
</summary>
</member>
</members>
</doc>

BIN
bin/Release/MonoMod.Utils.dll

Binary file not shown.

1465
bin/Release/MonoMod.Utils.xml

File diff suppressed because it is too large Load Diff

BIN
bin/Release/UnityEngine.AIModule.dll

Binary file not shown.

BIN
bin/Release/UnityEngine.ARModule.dll

Binary file not shown.

BIN
bin/Release/UnityEngine.AccessibilityModule.dll

Binary file not shown.

BIN
bin/Release/UnityEngine.AnimationModule.dll

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save