From 25b8bd70b308256ec9a2d72af98d4a7bc1611416 Mon Sep 17 00:00:00 2001
From: nike4613 This function will be called whenever attempting to resolve an image URI, to ensure that the image exists in the embedded assembly.MarkdownView()
@@ -413,7 +413,7 @@ public class MarkdownView : MonoBehaviour
Improve this Doc
- View Source
+ View Source
HasEmbeddedImage
Markdown
@@ -481,7 +481,7 @@ public class MarkdownView : MonoBehaviour
Improve this Doc
- View Source
+ View Source
rectTransform
@@ -541,7 +541,7 @@ public class MarkdownView : MonoBehaviour
Improve this Doc
NameAttribute(String)
@@ -288,7 +288,7 @@ public sealed class NameAttribute : Attribute, _Attribute
Improve this Doc
- View Source
+ View Source
Name
@@ -346,7 +346,7 @@ public sealed class NameAttribute : Attribute, _Attribute
Improve this Doc
PreferAttribute(String[])
@@ -289,7 +289,7 @@ public sealed class PreferAttribute : Attribute, _Attribute
Improve this Doc
- View Source
+ View Source
PreferenceOrder
@@ -347,7 +347,7 @@ public sealed class PreferAttribute : Attribute, _Attribute
Improve this Doc
parent
.<
Improve this Doc
- View Source
+ View Source
parent
Improve this Doc
- View Source
+ View Source
ToValue(TCollection, Object)
@@ -522,7 +522,7 @@ with the parent parent
Improve this Doc
- View Source
+ View Source
diff --git a/api/IPA.Config.Stores.Converters.CollectionConverter-3.html b/api/IPA.Config.Stores.Converters.CollectionConverter-3.html
index 4bfad674..5638cb31 100644
--- a/api/IPA.Config.Stores.Converters.CollectionConverter-3.html
+++ b/api/IPA.Config.Stores.Converters.CollectionConverter-3.html
@@ -191,7 +191,7 @@
Improve this Doc
- View Source
+ View Source
CollectionConverter()
@@ -243,7 +243,7 @@ with a default-constructed Improve this Doc
- View Source
+ View Source
diff --git a/api/IPA.Config.Stores.Converters.Converter-1.html b/api/IPA.Config.Stores.Converters.Converter-1.html
index 2cc5f780..6d7569e2 100644
--- a/api/IPA.Config.Stores.Converters.Converter-1.html
+++ b/api/IPA.Config.Stores.Converters.Converter-1.html
@@ -145,7 +145,7 @@
Improve this Doc
- View Source
+ View Source
Default
@@ -182,7 +182,7 @@
Improve this Doc
- View Source
+ View Source
diff --git a/api/IPA.Config.Stores.Converters.Converter.html b/api/IPA.Config.Stores.Converters.Converter.html
index 8ee9c6ce..31428fda 100644
--- a/api/IPA.Config.Stores.Converters.Converter.html
+++ b/api/IPA.Config.Stores.Converters.Converter.html
@@ -129,7 +129,7 @@
Improve this Doc
- View Source
+ View Source
FloatValue(Value)
@@ -180,7 +180,7 @@ or null if Improve this Doc
- View Source
+ View Source
IntValue(Value)
@@ -237,7 +237,7 @@ or null if Improve this Doc
- View Source
+ View Source
diff --git a/api/IPA.Config.Stores.Converters.CustomObjectConverter-1.html b/api/IPA.Config.Stores.Converters.CustomObjectConverter-1.html
index 2c5440f8..0e08343e 100644
--- a/api/IPA.Config.Stores.Converters.CustomObjectConverter-1.html
+++ b/api/IPA.Config.Stores.Converters.CustomObjectConverter-1.html
@@ -159,7 +159,7 @@
Improve this Doc
- View Source
+ View Source
Deserialize(Value, Object)
@@ -219,7 +219,7 @@
Improve this Doc
- View Source
+ View Source
FromValue(Value, Object)
@@ -281,7 +281,7 @@
Improve this Doc
- View Source
+ View Source
Serialize(T, Object)
@@ -341,7 +341,7 @@
Improve this Doc
- View Source
+ View Source
ToValue(T, Object)
@@ -433,7 +433,7 @@
Improve this Doc
- View Source
+ View Source
diff --git a/api/IPA.Config.Stores.Converters.CustomValueTypeConverter-1.html b/api/IPA.Config.Stores.Converters.CustomValueTypeConverter-1.html
index c709581b..6f414fd9 100644
--- a/api/IPA.Config.Stores.Converters.CustomValueTypeConverter-1.html
+++ b/api/IPA.Config.Stores.Converters.CustomValueTypeConverter-1.html
@@ -160,7 +160,7 @@
Improve this Doc
- View Source
+ View Source
Deserialize(Value, Object)
@@ -220,7 +220,7 @@
Improve this Doc
- View Source
+ View Source
FromValue(Value, Object)
@@ -282,7 +282,7 @@
Improve this Doc
- View Source
+ View Source
Serialize(T)
@@ -336,7 +336,7 @@
Improve this Doc
- View Source
+ View Source
ToValue(T, Object)
@@ -424,7 +424,7 @@
Improve this Doc
- View Source
+ View Source
diff --git a/api/IPA.Config.Stores.Converters.EnumConverter-1.html b/api/IPA.Config.Stores.Converters.EnumConverter-1.html
index 4c062738..7c4ad53b 100644
--- a/api/IPA.Config.Stores.Converters.EnumConverter-1.html
+++ b/api/IPA.Config.Stores.Converters.EnumConverter-1.html
@@ -159,7 +159,7 @@
Improve this Doc
- View Source
+ View Source
FromValue(Value, Object)
@@ -233,7 +233,7 @@
Improve this Doc
- View Source
+ View Source
ToValue(T, Object)
@@ -317,7 +317,7 @@
Improve this Doc
- View Source
+ View Source
diff --git a/api/IPA.Config.Stores.Converters.IListConverter-1.html b/api/IPA.Config.Stores.Converters.IListConverter-1.html
index 1649c371..cff3b4c3 100644
--- a/api/IPA.Config.Stores.Converters.IListConverter-1.html
+++ b/api/IPA.Config.Stores.Converters.IListConverter-1.html
@@ -182,7 +182,7 @@
Improve this Doc
- View Source
+ View Source
IListConverter()
@@ -202,7 +202,7 @@
Improve this Doc
- View Source
+ View Source
IListConverter(ValueConverter<T>)
@@ -238,7 +238,7 @@
Improve this Doc
- View Source
+ View Source
Create(Int32, Object)
@@ -326,7 +326,7 @@
Improve this Doc
- View Source
+ View Source
diff --git a/api/IPA.Config.Stores.Converters.IListConverter-2.html b/api/IPA.Config.Stores.Converters.IListConverter-2.html
index 3b969e2e..9510e8b8 100644
--- a/api/IPA.Config.Stores.Converters.IListConverter-2.html
+++ b/api/IPA.Config.Stores.Converters.IListConverter-2.html
@@ -190,7 +190,7 @@
Improve this Doc
- View Source
+ View Source
IListConverter()
@@ -242,7 +242,7 @@ with a default-constructed Improve this Doc
- View Source
+ View Source
diff --git a/api/IPA.Config.Stores.Converters.ISetConverter-1.html b/api/IPA.Config.Stores.Converters.ISetConverter-1.html
index 7e450035..abde4866 100644
--- a/api/IPA.Config.Stores.Converters.ISetConverter-1.html
+++ b/api/IPA.Config.Stores.Converters.ISetConverter-1.html
@@ -182,7 +182,7 @@
Improve this Doc
- View Source
+ View Source
ISetConverter()
@@ -202,7 +202,7 @@
Improve this Doc
- View Source
+ View Source
ISetConverter(ValueConverter<T>)
@@ -238,7 +238,7 @@
Improve this Doc
- View Source
+ View Source
Create(Int32, Object)
@@ -326,7 +326,7 @@
Improve this Doc
- View Source
+ View Source
diff --git a/api/IPA.Config.Stores.Converters.ISetConverter-2.html b/api/IPA.Config.Stores.Converters.ISetConverter-2.html
index 031156b8..a7dff5c0 100644
--- a/api/IPA.Config.Stores.Converters.ISetConverter-2.html
+++ b/api/IPA.Config.Stores.Converters.ISetConverter-2.html
@@ -190,7 +190,7 @@
Improve this Doc
- View Source
+ View Source
ISetConverter()
@@ -242,7 +242,7 @@ with a default-constructed Improve this Doc
- View Source
+ View Source
diff --git a/api/IPA.Config.Stores.Converters.ListConverter-1.html b/api/IPA.Config.Stores.Converters.ListConverter-1.html
index 63737717..b99e60f2 100644
--- a/api/IPA.Config.Stores.Converters.ListConverter-1.html
+++ b/api/IPA.Config.Stores.Converters.ListConverter-1.html
@@ -182,7 +182,7 @@
Improve this Doc
- View Source
+ View Source
ListConverter()
@@ -202,7 +202,7 @@
Improve this Doc
- View Source
+ View Source
ListConverter(ValueConverter<T>)
@@ -238,7 +238,7 @@
Improve this Doc
- View Source
+ View Source
Create(Int32, Object)
@@ -326,7 +326,7 @@
Improve this Doc
- View Source
+ View Source
diff --git a/api/IPA.Config.Stores.Converters.ListConverter-2.html b/api/IPA.Config.Stores.Converters.ListConverter-2.html
index bd0cb2d8..89c22a5d 100644
--- a/api/IPA.Config.Stores.Converters.ListConverter-2.html
+++ b/api/IPA.Config.Stores.Converters.ListConverter-2.html
@@ -190,7 +190,7 @@
Improve this Doc
- View Source
+ View Source
ListConverter()
@@ -242,7 +242,7 @@ with a default-constructed Improve this Doc
- View Source
+ View Source
diff --git a/api/IPA.Config.Stores.Converters.NullableConverter-1.html b/api/IPA.Config.Stores.Converters.NullableConverter-1.html
index 5e75ca70..ddc22633 100644
--- a/api/IPA.Config.Stores.Converters.NullableConverter-1.html
+++ b/api/IPA.Config.Stores.Converters.NullableConverter-1.html
@@ -160,7 +160,7 @@
Improve this Doc
- View Source
+ View Source
NullableConverter()
@@ -183,7 +183,7 @@ Equivalent to
Improve this Doc
- View Source
+ View Source
NullableConverter(ValueConverter<T>)
@@ -219,7 +219,7 @@ Equivalent to
Improve this Doc
- View Source
+ View Source
FromValue(Value, Object)
@@ -277,7 +277,7 @@ Equivalent to
Improve this Doc
- View Source
+ View Source
ToValue(Nullable<T>, Object)
@@ -361,7 +361,7 @@ Equivalent to
Improve this Doc
- View Source
+ View Source
diff --git a/api/IPA.Config.Stores.Converters.NullableConverter-2.html b/api/IPA.Config.Stores.Converters.NullableConverter-2.html
index ab6dd7a8..9bec9a6b 100644
--- a/api/IPA.Config.Stores.Converters.NullableConverter-2.html
+++ b/api/IPA.Config.Stores.Converters.NullableConverter-2.html
@@ -172,7 +172,7 @@ to use as the underlying converter. Use this in the Improve this Doc
- View Source
+ View Source
NullableConverter()
@@ -222,7 +222,7 @@ to use as the underlying converter. Use this in the Improve this Doc
- View Source
+ View Source
diff --git a/api/IPA.Config.Stores.Converters.NumericEnumConverter-1.html b/api/IPA.Config.Stores.Converters.NumericEnumConverter-1.html
index d4897d36..53d033fb 100644
--- a/api/IPA.Config.Stores.Converters.NumericEnumConverter-1.html
+++ b/api/IPA.Config.Stores.Converters.NumericEnumConverter-1.html
@@ -159,7 +159,7 @@
Improve this Doc
- View Source
+ View Source
FromValue(Value, Object)
@@ -233,7 +233,7 @@
Improve this Doc
- View Source
+ View Source
ToValue(T, Object)
@@ -317,7 +317,7 @@
Improve this Doc
- View Source
+ View Source
diff --git a/api/IPA.Config.Stores.GeneratedStore.html b/api/IPA.Config.Stores.GeneratedStore.html
index f38bd6fe..72413217 100644
--- a/api/IPA.Config.Stores.GeneratedStore.html
+++ b/api/IPA.Config.Stores.GeneratedStore.html
@@ -130,7 +130,7 @@ config stores.
Improve this Doc
- View Source
+ View Source
AssemblyVisibilityTarget
The name of the assembly that internals must be visible to to allow internal protection.
@@ -162,7 +162,7 @@ config stores.
Improve this Doc
- View Source
+ View Source
Create<T>()
@@ -218,7 +218,7 @@ config stores.
Improve this Doc
- View Source
+ View Source
Generated<T>(Config, Boolean)
@@ -347,7 +347,7 @@ the resulting object will implement it and notify it too.
Improve this Doc
- View Source
+ View Source
diff --git a/api/IPA.Config.Stores.IValueConverter.html b/api/IPA.Config.Stores.IValueConverter.html
index 7440cc5a..ea316ecd 100644
--- a/api/IPA.Config.Stores.IValueConverter.html
+++ b/api/IPA.Config.Stores.IValueConverter.html
@@ -117,7 +117,7 @@ Converters do not need to perform null checks, as the serializer and de
Improve this Doc
- View Source
+ View Source
Type
@@ -150,7 +150,7 @@ Converters do not need to perform null checks, as the serializer and de
Improve this Doc
- View Source
+ View Source
FromValue(Value, Object)
@@ -206,7 +206,7 @@ Converters do not need to perform null checks, as the serializer and de
Improve this Doc
- View Source
+ View Source
ToValue(Object, Object)
@@ -284,7 +284,7 @@ Converters do not need to perform null checks, as the serializer and de
Improve this Doc
- View Source
+ View Source
diff --git a/api/IPA.Config.Stores.ValueConverter-1.html b/api/IPA.Config.Stores.ValueConverter-1.html
index 498f9569..c701806a 100644
--- a/api/IPA.Config.Stores.ValueConverter-1.html
+++ b/api/IPA.Config.Stores.ValueConverter-1.html
@@ -157,7 +157,7 @@
Improve this Doc
- View Source
+ View Source
FromValue(Value, Object)
@@ -217,7 +217,7 @@
Improve this Doc
- View Source
+ View Source
ToValue(T, Object)
@@ -279,7 +279,7 @@
Improve this Doc
- View Source
+ View Source
IValueConverter.FromValue(Value, Object)
@@ -331,7 +331,7 @@
Improve this Doc
- View Source
+ View Source
IValueConverter.ToValue(Object, Object)
@@ -383,7 +383,7 @@
Improve this Doc
- View Source
+ View Source
IValueConverter.Type
@@ -443,7 +443,7 @@
Improve this Doc
- View Source
+ View Source
diff --git a/api/IPA.InitAttribute.html b/api/IPA.InitAttribute.html
index ca0ef3c0..e7ae4f92 100644
--- a/api/IPA.InitAttribute.html
+++ b/api/IPA.InitAttribute.html
@@ -289,7 +289,7 @@ Parameter injection is done with Improve this Doc
- View Source
+ View Source
diff --git a/api/IPA.Loader.CannotRuntimeDisableException.html b/api/IPA.Loader.CannotRuntimeDisableException.html
index e92a20ac..bd9c83c8 100644
--- a/api/IPA.Loader.CannotRuntimeDisableException.html
+++ b/api/IPA.Loader.CannotRuntimeDisableException.html
@@ -169,7 +169,7 @@ public class CannotRuntimeDisableException : Exception, ISerializable, _Exceptio
Improve this Doc
- View Source
+ View Source
CannotRuntimeDisableException(PluginMetadata)
@@ -203,7 +203,7 @@ public class CannotRuntimeDisableException : Exception, ISerializable, _Exceptio
Improve this Doc
- View Source
+ View Source
CannotRuntimeDisableException(SerializationInfo, StreamingContext)
@@ -258,7 +258,7 @@ public class CannotRuntimeDisableException : Exception, ISerializable, _Exceptio
Improve this Doc
- View Source
+ View Source
Plugin
@@ -318,7 +318,7 @@ public class CannotRuntimeDisableException : Exception, ISerializable, _Exceptio
Improve this Doc
- View Source
+ View Source
diff --git a/api/IPA.Loader.Features.Feature.html b/api/IPA.Loader.Features.Feature.html
index 7202d529..7ca6c082 100644
--- a/api/IPA.Loader.Features.Feature.html
+++ b/api/IPA.Loader.Features.Feature.html
@@ -132,7 +132,7 @@
Improve this Doc
- View Source
+ View Source
InvalidMessage
@@ -165,7 +165,7 @@ This should also be set whenever either Improve this Doc
- View Source
+ View Source
StoreOnPlugin
@@ -199,7 +199,7 @@ This should also be set whenever either Improve this Doc
- View Source
+ View Source
AfterInit(PluginMetadata)
@@ -233,7 +233,7 @@ This should also be set whenever either Improve this Doc
- View Source
+ View Source
AfterInit(PluginMetadata, Object)
@@ -273,7 +273,7 @@ This should also be set whenever either Improve this Doc
- View Source
+ View Source
BeforeInit(PluginMetadata)
@@ -323,7 +323,7 @@ This should also be set whenever either Improve this Doc
- View Source
+ View Source
BeforeLoad(PluginMetadata)
@@ -377,7 +377,7 @@ Any features it defines, for example, will still be loaded.
Improve this Doc
- View Source
+ View Source
Evaluate()
@@ -410,7 +410,7 @@ Any features it defines, for example, will still be loaded.
Improve this Doc
- View Source
+ View Source
Initialize(PluginMetadata, String[])
@@ -471,7 +471,7 @@ Any features it defines, for example, will still be loaded.
Improve this Doc
- View Source
+ View Source
RequireLoaded(PluginMetadata)
@@ -527,7 +527,7 @@ Any features it defines, for example, will still be loaded.
Improve this Doc
- View Source
+ View Source
diff --git a/api/IPA.Loader.PluginInitInjector.InjectParameter.html b/api/IPA.Loader.PluginInitInjector.InjectParameter.html
index 2be9b501..617103f0 100644
--- a/api/IPA.Loader.PluginInitInjector.InjectParameter.html
+++ b/api/IPA.Loader.PluginInitInjector.InjectParameter.html
@@ -166,7 +166,7 @@
Improve this Doc
- View Source
+ View Source
diff --git a/api/IPA.Loader.PluginInitInjector.html b/api/IPA.Loader.PluginInitInjector.html
index 28689155..a96aa9d6 100644
--- a/api/IPA.Loader.PluginInitInjector.html
+++ b/api/IPA.Loader.PluginInitInjector.html
@@ -140,7 +140,7 @@ For all of the default injectors, only one of each will be generated, and any la
Improve this Doc
- View Source
+ View Source
AddInjector(Type, PluginInitInjector.InjectParameter)
@@ -186,7 +186,7 @@ For all of the default injectors, only one of each will be generated, and any la
Improve this Doc
- View Source
+ View Source
diff --git a/api/IPA.Loader.PluginManager.PluginDisableDelegate.html b/api/IPA.Loader.PluginManager.PluginDisableDelegate.html
index fb75064e..97d7a1f8 100644
--- a/api/IPA.Loader.PluginManager.PluginDisableDelegate.html
+++ b/api/IPA.Loader.PluginManager.PluginDisableDelegate.html
@@ -144,7 +144,7 @@
Improve this Doc
- View Source
+ View Source
diff --git a/api/IPA.Loader.PluginManager.PluginEnableDelegate.html b/api/IPA.Loader.PluginManager.PluginEnableDelegate.html
index 9aef198e..bc4f0c0d 100644
--- a/api/IPA.Loader.PluginManager.PluginEnableDelegate.html
+++ b/api/IPA.Loader.PluginManager.PluginEnableDelegate.html
@@ -144,7 +144,7 @@
Improve this Doc
- View Source
+ View Source
diff --git a/api/IPA.Loader.PluginManager.html b/api/IPA.Loader.PluginManager.html
index 167f1920..6bc0c22c 100644
--- a/api/IPA.Loader.PluginManager.html
+++ b/api/IPA.Loader.PluginManager.html
@@ -129,7 +129,7 @@
Improve this Doc
- View Source
+ View Source
AllPlugins
@@ -161,7 +161,7 @@
Improve this Doc
- View Source
+ View Source
DisabledPlugins
@@ -193,7 +193,7 @@
Improve this Doc
- View Source
+ View Source
Plugins
@@ -228,7 +228,7 @@ public static IEnumerable<IPlugin> Plugins { get; }
Improve this Doc
- View Source
+ View Source
GetDisabledPlugin(String)
@@ -278,7 +278,7 @@ public static IEnumerable<IPlugin> Plugins { get; }
Improve this Doc
- View Source
+ View Source
GetDisabledPluginFromId(String)
@@ -328,7 +328,7 @@ public static IEnumerable<IPlugin> Plugins { get; }
Improve this Doc
- View Source
+ View Source
GetPlugin(String)
@@ -378,7 +378,7 @@ public static IEnumerable<IPlugin> Plugins { get; }
Improve this Doc
- View Source
+ View Source
GetPluginFromId(String)
@@ -428,7 +428,7 @@ public static IEnumerable<IPlugin> Plugins { get; }
Improve this Doc
- View Source
+ View Source
IsDisabled(PluginMetadata)
@@ -478,7 +478,7 @@ public static IEnumerable<IPlugin> Plugins { get; }
Improve this Doc
- View Source
+ View Source
IsEnabled(PluginMetadata)
@@ -528,7 +528,7 @@ public static IEnumerable<IPlugin> Plugins { get; }
Improve this Doc
- View Source
+ View Source
PluginStateTransaction()
@@ -562,7 +562,7 @@ public static IEnumerable<IPlugin> Plugins { get; }
Improve this Doc
- View Source
+ View Source
Called whenever a plugin is disabled.
@@ -592,7 +592,7 @@ public static IEnumerable<IPlugin> Plugins { get; } Improve this Doc - View Source + View SourceCalled whenever a plugin is enabled.
@@ -628,7 +628,7 @@ public static IEnumerable<IPlugin> Plugins { get; } Improve this DocLog(Level.Critical, e);
Improve this Doc
- View Source
+ View Source
Log(Level.Critical, message);
Improve this Doc
- View Source
+ View Source
Log(Level.Debug, e);
Improve this Doc
- View Source
+ View Source
Log(Level.Debug, message);
Improve this Doc
- View Source
+ View Source
Log(Level.Error, e);
Improve this Doc
- View Source
+ View Source
Log(Level.Error, message);
Improve this Doc
- View Source
+ View Source
Log(Level.Info, e);
Improve this Doc
- View Source
+ View Source
Log(Level.Info, message);
Improve this Doc
- View Source
+ View Source
Log(Level.Info, message);
Improve this Doc
- View Source
+ View Source
Log(Level.Info, message);
Improve this Doc
- View Source
+ View Source
Log(Level.Notice, e);
Improve this Doc
- View Source
+ View Source
Log(Level.Notice, message);
Improve this Doc
- View Source
+ View Source
Log(Level.Trace, e);
Improve this Doc
- View Source
+ View Source
Log(Level.Trace, message);
Improve this Doc
- View Source
+ View Source
Log(Level.Warning, e);
Improve this Doc
- View Source
+ View Source
Log(Level.Warning, message);
Improve this Doc
The StreamWriter that writes to the GZip file.
@@ -176,7 +176,7 @@ Improve this Doc - View Source + View SourceImprove this Doc
- View Source
+ View Source
SemverValue
@@ -310,7 +310,7 @@ the storage mode specified in Improve this Doc
- View Source
+ View Source
StorageMode
@@ -342,7 +342,7 @@ the storage mode specified in Improve this Doc
- View Source
+ View Source
StringValue
@@ -376,7 +376,7 @@ the storage mode specified in Improve this Doc
- View Source
+ View Source
CompareTo(AlmostVersion)
@@ -434,7 +434,7 @@ or Improve this Doc
- View Source
+ View Source
CompareTo(SemVer.Version)
@@ -492,7 +492,7 @@ be thrown.
Improve this Doc
- View Source
+ View Source
Equals(Object)
@@ -551,7 +551,7 @@ be thrown.
Improve this Doc
- View Source
+ View Source
GetHashCode()
@@ -589,7 +589,7 @@ be thrown.
Improve this Doc
- View Source
+ View Source
ToString()
@@ -630,7 +630,7 @@ stored as a , it is equivalent to calling Improve this Doc
- View Source
+ View Source
Equality(AlmostVersion, AlmostVersion)
@@ -695,7 +695,7 @@ does not.
Improve this Doc
- View Source
+ View Source
Implicit(AlmostVersion to SemVer.Version)
@@ -749,7 +749,7 @@ If not applicable, returns null
Improve this Doc
- View Source
+ View Source
Implicit(SemVer.Version to AlmostVersion)
@@ -802,7 +802,7 @@ If not applicable, returns null
Improve this Doc
- View Source
+ View Source
Inequality(AlmostVersion, AlmostVersion)
@@ -891,7 +891,7 @@ If not applicable, returns null
Improve this Doc
- View Source
+ View Source
diff --git a/api/IPA.Utilities.AlmostVersionConverter.html b/api/IPA.Utilities.AlmostVersionConverter.html
index 73fdb366..63329edb 100644
--- a/api/IPA.Utilities.AlmostVersionConverter.html
+++ b/api/IPA.Utilities.AlmostVersionConverter.html
@@ -143,7 +143,7 @@
Improve this Doc
- View Source
+ View Source
FromValue(Value, Object)
@@ -200,7 +200,7 @@
Improve this Doc
- View Source
+ View Source
ToValue(AlmostVersion, Object)
@@ -284,7 +284,7 @@
Improve this Doc
- View Source
+ View Source
diff --git a/api/IPA.Utilities.Async.Coroutines.html b/api/IPA.Utilities.Async.Coroutines.html
index 70cf8a00..7d5be006 100644
--- a/api/IPA.Utilities.Async.Coroutines.html
+++ b/api/IPA.Utilities.Async.Coroutines.html
@@ -129,7 +129,7 @@
Improve this Doc
- View Source
+ View Source
WaitForTask(Task)
@@ -185,7 +185,7 @@
Improve this Doc
- View Source
+ View Source
diff --git a/api/IPA.Utilities.Async.SingleThreadTaskScheduler.html b/api/IPA.Utilities.Async.SingleThreadTaskScheduler.html
index ffe52508..d0e7dbc1 100644
--- a/api/IPA.Utilities.Async.SingleThreadTaskScheduler.html
+++ b/api/IPA.Utilities.Async.SingleThreadTaskScheduler.html
@@ -158,7 +158,7 @@
Improve this Doc
- View Source
+ View Source
IsRunning
@@ -207,7 +207,7 @@
Improve this Doc
- View Source
+ View Source
Dispose()
@@ -223,7 +223,7 @@
Improve this Doc
- View Source
+ View Source
Dispose(Boolean)
@@ -257,7 +257,7 @@
Improve this Doc
- View Source
+ View Source
Exit()
@@ -308,7 +308,7 @@
Improve this Doc
- View Source
+ View Source
GetScheduledTasks()
@@ -358,7 +358,7 @@
Improve this Doc
- View Source
+ View Source
Join()
@@ -393,7 +393,7 @@
Improve this Doc
- View Source
+ View Source
QueueTask(Task)
@@ -446,7 +446,7 @@ scheduled for this Improve this Doc
- View Source
+ View Source
Start()
@@ -478,7 +478,7 @@ scheduled for this Improve this Doc
- View Source
+ View Source
TryExecuteTaskInline(Task, Boolean)
@@ -581,7 +581,7 @@ make sense to run it inline.
Improve this Doc
- View Source
+ View Source
diff --git a/api/IPA.Utilities.Async.Synchronization.MutexLocker.html b/api/IPA.Utilities.Async.Synchronization.MutexLocker.html
index 077908e5..f57e50a9 100644
--- a/api/IPA.Utilities.Async.Synchronization.MutexLocker.html
+++ b/api/IPA.Utilities.Async.Synchronization.MutexLocker.html
@@ -126,7 +126,7 @@ Create this with Improve this Doc
- View Source
+ View Source
IDisposable.Dispose()
@@ -172,7 +172,7 @@ Create this with Improve this Doc
- View Source
+ View Source
diff --git a/api/IPA.Utilities.Async.Synchronization.ReaderWriterLockSlimReadLocker.html b/api/IPA.Utilities.Async.Synchronization.ReaderWriterLockSlimReadLocker.html
index fd607370..1e0c3306 100644
--- a/api/IPA.Utilities.Async.Synchronization.ReaderWriterLockSlimReadLocker.html
+++ b/api/IPA.Utilities.Async.Synchronization.ReaderWriterLockSlimReadLocker.html
@@ -126,7 +126,7 @@ it is disposed. Create this with Improve this Doc
- View Source
+ View Source
IDisposable.Dispose()
@@ -172,7 +172,7 @@ it is disposed. Create this with Improve this Doc
- View Source
+ View Source
diff --git a/api/IPA.Utilities.Async.Synchronization.ReaderWriterLockSlimUpgradableReadLocker.html b/api/IPA.Utilities.Async.Synchronization.ReaderWriterLockSlimUpgradableReadLocker.html
index 1249a58a..a1d97ed9 100644
--- a/api/IPA.Utilities.Async.Synchronization.ReaderWriterLockSlimUpgradableReadLocker.html
+++ b/api/IPA.Utilities.Async.Synchronization.ReaderWriterLockSlimUpgradableReadLocker.html
@@ -126,7 +126,7 @@ when it is disposed. Create this with Improve this Doc
- View Source
+ View Source
Upgrade()
@@ -165,7 +165,7 @@ upgrading the current thread's lock.
Improve this Doc
- View Source
+ View Source
IDisposable.Dispose()
@@ -211,7 +211,7 @@ upgrading the current thread's lock.
Improve this Doc
- View Source
+ View Source
diff --git a/api/IPA.Utilities.Async.Synchronization.ReaderWriterLockSlimWriteLocker.html b/api/IPA.Utilities.Async.Synchronization.ReaderWriterLockSlimWriteLocker.html
index 600681d0..19b64dfb 100644
--- a/api/IPA.Utilities.Async.Synchronization.ReaderWriterLockSlimWriteLocker.html
+++ b/api/IPA.Utilities.Async.Synchronization.ReaderWriterLockSlimWriteLocker.html
@@ -126,7 +126,7 @@ it is disposed. Create this with Improve this Doc
- View Source
+ View Source
IDisposable.Dispose()
@@ -172,7 +172,7 @@ it is disposed. Create this with Improve this Doc
- View Source
+ View Source
diff --git a/api/IPA.Utilities.Async.Synchronization.SemaphoreLocker.html b/api/IPA.Utilities.Async.Synchronization.SemaphoreLocker.html
index dd0a273b..9875dff4 100644
--- a/api/IPA.Utilities.Async.Synchronization.SemaphoreLocker.html
+++ b/api/IPA.Utilities.Async.Synchronization.SemaphoreLocker.html
@@ -126,7 +126,7 @@ Create this with Improve this Doc
- View Source
+ View Source
IDisposable.Dispose()
@@ -172,7 +172,7 @@ Create this with Improve this Doc
- View Source
+ View Source
diff --git a/api/IPA.Utilities.Async.Synchronization.SemaphoreSlimAsyncLocker.html b/api/IPA.Utilities.Async.Synchronization.SemaphoreSlimAsyncLocker.html
index 62ce0606..120442b1 100644
--- a/api/IPA.Utilities.Async.Synchronization.SemaphoreSlimAsyncLocker.html
+++ b/api/IPA.Utilities.Async.Synchronization.SemaphoreSlimAsyncLocker.html
@@ -126,7 +126,7 @@ when it is disposed. Create this with Improve this Doc
- View Source
+ View Source
IDisposable.Dispose()
@@ -172,7 +172,7 @@ when it is disposed. Create this with Improve this Doc
- View Source
+ View Source
diff --git a/api/IPA.Utilities.Async.Synchronization.SemaphoreSlimLocker.html b/api/IPA.Utilities.Async.Synchronization.SemaphoreSlimLocker.html
index abdc1b42..2a963452 100644
--- a/api/IPA.Utilities.Async.Synchronization.SemaphoreSlimLocker.html
+++ b/api/IPA.Utilities.Async.Synchronization.SemaphoreSlimLocker.html
@@ -126,7 +126,7 @@ Create this with Improve this Doc
- View Source
+ View Source
IDisposable.Dispose()
@@ -172,7 +172,7 @@ Create this with Improve this Doc
- View Source
+ View Source
diff --git a/api/IPA.Utilities.Async.Synchronization.html b/api/IPA.Utilities.Async.Synchronization.html
index 27e4f180..f450f389 100644
--- a/api/IPA.Utilities.Async.Synchronization.html
+++ b/api/IPA.Utilities.Async.Synchronization.html
@@ -137,7 +137,7 @@ with whichever member you want to use, according to your lock type.
Improve this Doc
- View Source
+ View Source
Lock(Mutex)
@@ -187,7 +187,7 @@ with whichever member you want to use, according to your lock type.
Improve this Doc
- View Source
+ View Source
Lock(Semaphore)
@@ -237,7 +237,7 @@ with whichever member you want to use, according to your lock type.
Improve this Doc
- View Source
+ View Source
Lock(SemaphoreSlim)
@@ -287,7 +287,7 @@ with whichever member you want to use, according to your lock type.
Improve this Doc
- View Source
+ View Source
LockAsync(SemaphoreSlim)
@@ -337,7 +337,7 @@ with whichever member you want to use, according to your lock type.
Improve this Doc
- View Source
+ View Source
LockRead(ReaderWriterLockSlim)
@@ -387,7 +387,7 @@ with whichever member you want to use, according to your lock type.
Improve this Doc
- View Source
+ View Source
LockReadUpgradable(ReaderWriterLockSlim)
@@ -437,7 +437,7 @@ with whichever member you want to use, according to your lock type.
Improve this Doc
- View Source
+ View Source
LockWrite(ReaderWriterLockSlim)
@@ -493,7 +493,7 @@ with whichever member you want to use, according to your lock type.
Improve this Doc
- View Source
+ View Source
diff --git a/api/IPA.Utilities.Async.UnityMainThreadTaskScheduler.html b/api/IPA.Utilities.Async.UnityMainThreadTaskScheduler.html
index a328e176..1f2cf650 100644
--- a/api/IPA.Utilities.Async.UnityMainThreadTaskScheduler.html
+++ b/api/IPA.Utilities.Async.UnityMainThreadTaskScheduler.html
@@ -155,7 +155,7 @@
Improve this Doc
- View Source
+ View Source
Cancelling
@@ -187,7 +187,7 @@
Improve this Doc
- View Source
+ View Source
Default
@@ -219,7 +219,7 @@
Improve this Doc
- View Source
+ View Source
Factory
@@ -251,7 +251,7 @@
Improve this Doc
- View Source
+ View Source
IsRunning
@@ -283,7 +283,7 @@
Improve this Doc
- View Source
+ View Source
YieldAfterTasks
@@ -315,7 +315,7 @@
Improve this Doc
- View Source
+ View Source
YieldAfterTime
@@ -349,7 +349,7 @@
Improve this Doc
- View Source
+ View Source
Cancel()
@@ -387,7 +387,7 @@ All remaining tasks will be left in the queue.
Improve this Doc
- View Source
+ View Source
Coroutine()
@@ -451,7 +451,7 @@ exit on its own.
Improve this Doc
- View Source
+ View Source
Dispose()
@@ -467,7 +467,7 @@ exit on its own.
Improve this Doc
- View Source
+ View Source
Dispose(Boolean)
@@ -501,7 +501,7 @@ exit on its own.
Improve this Doc
- View Source
+ View Source
GetScheduledTasks()
@@ -551,7 +551,7 @@ exit on its own.
Improve this Doc
- View Source
+ View Source
QueueTask(Task)
@@ -604,7 +604,7 @@ scheduled for this Improve this Doc
- View Source
+ View Source
TryExecuteTaskInline(Task, Boolean)
@@ -707,7 +707,7 @@ make sense to run it inline.
Improve this Doc
- View Source
+ View Source
diff --git a/api/IPA.Utilities.CriticalSection.AutoExecuteSection.html b/api/IPA.Utilities.CriticalSection.AutoExecuteSection.html
index 739045cb..e439b7c0 100644
--- a/api/IPA.Utilities.CriticalSection.AutoExecuteSection.html
+++ b/api/IPA.Utilities.CriticalSection.AutoExecuteSection.html
@@ -125,7 +125,7 @@
Improve this Doc
- View Source
+ View Source
IDisposable.Dispose()
@@ -166,7 +166,7 @@
Improve this Doc
- View Source
+ View Source
diff --git a/api/IPA.Utilities.CriticalSection.html b/api/IPA.Utilities.CriticalSection.html
index d26b5702..a4c3c9ba 100644
--- a/api/IPA.Utilities.CriticalSection.html
+++ b/api/IPA.Utilities.CriticalSection.html
@@ -129,7 +129,7 @@
Improve this Doc
- View Source
+ View Source
EnterExecuteSection()
@@ -145,7 +145,7 @@
Improve this Doc
- View Source
+ View Source
ExecuteSection()
@@ -177,7 +177,7 @@
Improve this Doc
- View Source
+ View Source
ExitExecuteSection()
@@ -199,7 +199,7 @@
Improve this Doc
- View Source
+ View Source
diff --git a/api/IPA.Utilities.EnumerableExtensions.html b/api/IPA.Utilities.EnumerableExtensions.html
index d4d21748..ce890c47 100644
--- a/api/IPA.Utilities.EnumerableExtensions.html
+++ b/api/IPA.Utilities.EnumerableExtensions.html
@@ -129,7 +129,7 @@
Improve this Doc
- View Source
+ View Source
Append<T>(IEnumerable<T>, T)
@@ -201,7 +201,7 @@
Improve this Doc
- View Source
+ View Source
NonNull<T>(IEnumerable<T>)
@@ -268,7 +268,7 @@
Improve this Doc
- View Source
+ View Source
NonNull<T>(IEnumerable<Nullable<T>>)
@@ -335,7 +335,7 @@
Improve this Doc
- View Source
+ View Source
NonNull<T, U>(IEnumerable<T>, Func<T, U>)
@@ -413,7 +413,7 @@
Improve this Doc
- View Source
+ View Source
NonNull<T, U>(IEnumerable<T>, Func<T, Nullable<U>>)
@@ -491,7 +491,7 @@
Improve this Doc
- View Source
+ View Source
Prepend<T>(IEnumerable<T>, T)
@@ -569,7 +569,7 @@
Improve this Doc
- View Source
+ View Source
diff --git a/api/IPA.Utilities.Extensions.html b/api/IPA.Utilities.Extensions.html
index 44712956..e0544f11 100644
--- a/api/IPA.Utilities.Extensions.html
+++ b/api/IPA.Utilities.Extensions.html
@@ -129,7 +129,7 @@
Improve this Doc
- View Source
+ View Source
GetDefault(Type)
@@ -179,7 +179,7 @@
Improve this Doc
- View Source
+ View Source
IsSubPathOf(String, String)
@@ -234,7 +234,7 @@ only matches if the base dir folder name is matched exactly ("c:\foobar\fil
Improve this Doc
- View Source
+ View Source
Right(String, Int32)
@@ -290,7 +290,7 @@ only matches if the base dir folder name is matched exactly ("c:\foobar\fil
Improve this Doc
- View Source
+ View Source
Unwrap(Nullable<Boolean>)
@@ -340,7 +340,7 @@ only matches if the base dir folder name is matched exactly ("c:\foobar\fil
Improve this Doc
- View Source
+ View Source
WithEnding(String, String)
@@ -403,7 +403,7 @@ results in satisfying .EndsWith(ending).
Improve this Doc
- View Source
+ View Source
diff --git a/api/IPA.Utilities.FieldAccessor-2.Accessor.html b/api/IPA.Utilities.FieldAccessor-2.Accessor.html
index 26f01e78..85df27a8 100644
--- a/api/IPA.Utilities.FieldAccessor-2.Accessor.html
+++ b/api/IPA.Utilities.FieldAccessor-2.Accessor.html
@@ -154,7 +154,7 @@
Improve this Doc
- View Source
+ View Source
diff --git a/api/IPA.Utilities.FieldAccessor-2.html b/api/IPA.Utilities.FieldAccessor-2.html
index 46bab292..e2145c6f 100644
--- a/api/IPA.Utilities.FieldAccessor-2.html
+++ b/api/IPA.Utilities.FieldAccessor-2.html
@@ -150,7 +150,7 @@
Improve this Doc
- View Source
+ View Source
Access(ref T, String)
@@ -226,7 +226,7 @@
Improve this Doc
- View Source
+ View Source
Get(T, String)
@@ -304,7 +304,7 @@
Improve this Doc
- View Source
+ View Source
Get(ref T, String)
@@ -386,7 +386,7 @@ as it prevents a copy.
Improve this Doc
- View Source
+ View Source
GetAccessor(String)
@@ -452,7 +452,7 @@ as it prevents a copy.
Improve this Doc
- View Source
+ View Source
Set(T, String, U)
@@ -523,7 +523,7 @@ as it prevents a copy.
Improve this Doc
- View Source
+ View Source
Set(ref T, String, U)
@@ -604,7 +604,7 @@ as it prevents a copy.
Improve this Doc
- View Source
+ View Source
diff --git a/api/IPA.Utilities.MethodAccessor-2.html b/api/IPA.Utilities.MethodAccessor-2.html
index b9f0b5f9..591c750f 100644
--- a/api/IPA.Utilities.MethodAccessor-2.html
+++ b/api/IPA.Utilities.MethodAccessor-2.html
@@ -151,7 +151,7 @@
Improve this Doc
- View Source
+ View Source
GetDelegate(String)
@@ -228,7 +228,7 @@
Improve this Doc
- View Source
+ View Source
diff --git a/api/IPA.Utilities.PropertyAccessor-2.Getter.html b/api/IPA.Utilities.PropertyAccessor-2.Getter.html
index b4467f57..d1ad6578 100644
--- a/api/IPA.Utilities.PropertyAccessor-2.Getter.html
+++ b/api/IPA.Utilities.PropertyAccessor-2.Getter.html
@@ -154,7 +154,7 @@
Improve this Doc
- View Source
+ View Source
diff --git a/api/IPA.Utilities.PropertyAccessor-2.Setter.html b/api/IPA.Utilities.PropertyAccessor-2.Setter.html
index 5a08562d..0ea72133 100644
--- a/api/IPA.Utilities.PropertyAccessor-2.Setter.html
+++ b/api/IPA.Utilities.PropertyAccessor-2.Setter.html
@@ -144,7 +144,7 @@
Improve this Doc
- View Source
+ View Source
diff --git a/api/IPA.Utilities.PropertyAccessor-2.html b/api/IPA.Utilities.PropertyAccessor-2.html
index 43e6c20e..eba8a9c2 100644
--- a/api/IPA.Utilities.PropertyAccessor-2.html
+++ b/api/IPA.Utilities.PropertyAccessor-2.html
@@ -150,7 +150,7 @@
Improve this Doc
- View Source
+ View Source
Get(T, String)
@@ -227,7 +227,7 @@
Improve this Doc
- View Source
+ View Source
Get(ref T, String)
@@ -308,7 +308,7 @@ it avoids a copy.
Improve this Doc
- View Source
+ View Source
GetGetter(String)
@@ -374,7 +374,7 @@ it avoids a copy.
Improve this Doc
- View Source
+ View Source
GetSetter(String)
@@ -440,7 +440,7 @@ it avoids a copy.
Improve this Doc
- View Source
+ View Source
Set(T, String, U)
@@ -510,7 +510,7 @@ it avoids a copy.
Improve this Doc
- View Source
+ View Source
Set(ref T, String, U)
@@ -586,7 +586,7 @@ it avoids a copy.
Improve this Doc
- View Source
+ View Source
diff --git a/api/IPA.Utilities.Ref-1.html b/api/IPA.Utilities.Ref-1.html
index 834e1240..fb245c2e 100644
--- a/api/IPA.Utilities.Ref-1.html
+++ b/api/IPA.Utilities.Ref-1.html
@@ -150,7 +150,7 @@
Improve this Doc
- View Source
+ View Source
Ref(T)
@@ -186,7 +186,7 @@
Improve this Doc
- View Source
+ View Source
Error
@@ -218,7 +218,7 @@
Improve this Doc
- View Source
+ View Source
Value
@@ -252,7 +252,7 @@
Improve this Doc
- View Source
+ View Source
CompareTo(T)
@@ -302,7 +302,7 @@
Improve this Doc
- View Source
+ View Source
CompareTo(Ref<T>)
@@ -352,7 +352,7 @@
Improve this Doc
- View Source
+ View Source
Verify()
@@ -370,7 +370,7 @@
Improve this Doc
- View Source
+ View Source
Implicit(T to Ref<T>)
@@ -420,7 +420,7 @@
Improve this Doc
- View Source
+ View Source
Implicit(Ref<T> to T)
@@ -499,7 +499,7 @@
Improve this Doc
- View Source
+ View Source
diff --git a/api/IPA.Utilities.Ref.html b/api/IPA.Utilities.Ref.html
index a24ba04c..a722de5e 100644
--- a/api/IPA.Utilities.Ref.html
+++ b/api/IPA.Utilities.Ref.html
@@ -129,7 +129,7 @@
Improve this Doc
- View Source
+ View Source
Create<T>(T)
@@ -201,7 +201,7 @@
Improve this Doc
- View Source
+ View Source
diff --git a/api/IPA.Utilities.ReflectionUtil.html b/api/IPA.Utilities.ReflectionUtil.html
index 6786d345..6631dcc9 100644
--- a/api/IPA.Utilities.ReflectionUtil.html
+++ b/api/IPA.Utilities.ReflectionUtil.html
@@ -129,7 +129,7 @@
Improve this Doc
- View Source
+ View Source
CopyComponent(Component, Type, GameObject, Type)
@@ -197,7 +197,7 @@
Improve this Doc
- View Source
+ View Source
CopyComponent<T>(Component, GameObject, Type)
@@ -280,7 +280,7 @@
Improve this Doc
- View Source
+ View Source
GetField<U, T>(T, String)
@@ -377,7 +377,7 @@
Improve this Doc
- View Source
+ View Source
GetProperty<U, T>(T, String)
@@ -474,7 +474,7 @@
Improve this Doc
- View Source
+ View Source
InvokeMethod<U, T>(T, String, Object[])
@@ -573,7 +573,7 @@
Improve this Doc
- View Source
+ View Source
SetField<T, U>(T, String, U)
@@ -660,7 +660,7 @@
Improve this Doc
- View Source
+ View Source
SetProperty<T, U>(T, String, U)
@@ -753,7 +753,7 @@
Improve this Doc
- View Source
+ View Source
diff --git a/api/IPA.Utilities.UnityGame.Release.html b/api/IPA.Utilities.UnityGame.Release.html
index d5684a76..76442c02 100644
--- a/api/IPA.Utilities.UnityGame.Release.html
+++ b/api/IPA.Utilities.UnityGame.Release.html
@@ -142,7 +142,7 @@
Improve this Doc
- View Source
+ View Source
diff --git a/api/IPA.Utilities.UnityGame.html b/api/IPA.Utilities.UnityGame.html
index d7f4715b..6bd2da86 100644
--- a/api/IPA.Utilities.UnityGame.html
+++ b/api/IPA.Utilities.UnityGame.html
@@ -129,7 +129,7 @@
Improve this Doc
- View Source
+ View Source
GameVersion
@@ -161,7 +161,7 @@
Improve this Doc
- View Source
+ View Source
InstallPath
@@ -193,7 +193,7 @@
Improve this Doc
- View Source
+ View Source
LibraryPath
@@ -225,7 +225,7 @@
Improve this Doc
- View Source
+ View Source
NativeLibraryPath
@@ -257,7 +257,7 @@
Improve this Doc
- View Source
+ View Source
OnMainThread
@@ -289,7 +289,7 @@
Improve this Doc
- View Source
+ View Source
PluginsPath
@@ -321,7 +321,7 @@
Improve this Doc
- View Source
+ View Source
ReleaseType
@@ -356,7 +356,7 @@
Improve this Doc
- View Source
+ View Source
UserDataPath
@@ -394,7 +394,7 @@
Improve this Doc
- View Source
+ View Source
diff --git a/api/IPA.Utilities.Utils.ScopeGuardObject.html b/api/IPA.Utilities.Utils.ScopeGuardObject.html
index e3a72c17..8b9aabaf 100644
--- a/api/IPA.Utilities.Utils.ScopeGuardObject.html
+++ b/api/IPA.Utilities.Utils.ScopeGuardObject.html
@@ -128,7 +128,7 @@
Improve this Doc
- View Source
+ View Source
ScopeGuardObject(Action)
@@ -164,7 +164,7 @@
Improve this Doc
- View Source
+ View Source
IDisposable.Dispose()
@@ -209,7 +209,7 @@
Improve this Doc
- View Source
+ View Source
diff --git a/api/IPA.Utilities.Utils.html b/api/IPA.Utilities.Utils.html
index 083c8e91..0e3c8fb2 100644
--- a/api/IPA.Utilities.Utils.html
+++ b/api/IPA.Utilities.Utils.html
@@ -129,7 +129,7 @@
Improve this Doc
- View Source
+ View Source
CanUseDateTimeNowSafely
@@ -163,7 +163,7 @@
Improve this Doc
- View Source
+ View Source
ByteArrayToString(Byte[])
@@ -213,7 +213,7 @@
Improve this Doc
- View Source
+ View Source
CopyAll(DirectoryInfo, DirectoryInfo, String, Func<Exception, FileInfo, Boolean>)
@@ -265,7 +265,7 @@
Improve this Doc
- View Source
+ View Source
CurrentTime()
@@ -297,7 +297,7 @@
Improve this Doc
- View Source
+ View Source
GetRelativePath(String, String)
@@ -353,7 +353,7 @@
Improve this Doc
- View Source
+ View Source
ScopeGuard(Action)
@@ -406,7 +406,7 @@
Improve this Doc
- View Source
+ View Source
StringToByteArray(String)
@@ -456,7 +456,7 @@
Improve this Doc
- View Source
+ View Source
UnsafeCompare(Byte[], Byte[])
@@ -512,7 +512,7 @@
Improve this Doc
- View Source
+ View Source
VersionCompareNoPrerelease(SemVer.Version, SemVer.Version)
@@ -574,7 +574,7 @@
Improve this Doc
- View Source
+ View Source
diff --git a/api/index.html b/api/index.html
index d6a98aff..3b6b95b4 100644
--- a/api/index.html
+++ b/api/index.html
@@ -90,7 +90,7 @@ Select a namespace and a class on the left to get started.
diff --git a/articles/command-line.html b/articles/command-line.html
index e3bb4c95..c8113337 100644
--- a/articles/command-line.html
+++ b/articles/command-line.html
@@ -183,7 +183,7 @@ avaliable. If there is, it will be downloaded and installed on the next run. Thi
diff --git a/articles/contributing.html b/articles/contributing.html
index 788e2c2c..a8d7ed14 100644
--- a/articles/contributing.html
+++ b/articles/contributing.html
@@ -117,7 +117,7 @@ should reference the copy in there. When building for Release, it just uses the
diff --git a/articles/dev-resources/description.html b/articles/dev-resources/description.html
index 49fb7d49..9c2f4639 100644
--- a/articles/dev-resources/description.html
+++ b/articles/dev-resources/description.html
@@ -91,7 +91,7 @@
diff --git a/articles/index.html b/articles/index.html
index 8e9af3d5..119b5810 100644
--- a/articles/index.html
+++ b/articles/index.html
@@ -94,7 +94,7 @@
diff --git a/articles/start-dev.html b/articles/start-dev.html
index c1937cba..dadb0266 100644
--- a/articles/start-dev.html
+++ b/articles/start-dev.html
@@ -517,7 +517,7 @@ namespace Demo
diff --git a/articles/start-user.html b/articles/start-user.html
index b99e918f..828d5b04 100644
--- a/articles/start-user.html
+++ b/articles/start-user.html
@@ -161,7 +161,7 @@ the game directory, though your plugins will be moved to a different folder when
diff --git a/index.html b/index.html
index bdf91749..6445fbe9 100644
--- a/index.html
+++ b/index.html
@@ -101,7 +101,7 @@
diff --git a/index.json b/index.json
index 1ebc1a72..afbdb0a7 100644
--- a/index.json
+++ b/index.json
@@ -1,78 +1,153 @@
{
- "api/IPA.Config.Stores.Converters.Converter-1.html": {
- "href": "api/IPA.Config.Stores.Converters.Converter-1.html",
- "title": "Class Converter
",
- "keywords": "Class Converter Provides generic utilities for converters for certain types. Inheritance Object Converter Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Config.Stores.Converters Assembly : IPA.Loader.dll Syntax public static class Converter Type Parameters Name Description T the type of the ValueConverter that this works on Properties | Improve this Doc View Source Default Gets the default ValueConverter for the current type. Declaration public static ValueConverter Default { get; } Property Value Type Description ValueConverter "
+ "index.html": {
+ "href": "index.html",
+ "title": "BSIPA - Home",
+ "keywords": "BSIPA - The Unity mod injector for the new age (pending confirmation). Assuming, that is, that Unity 2017 is \"new age\". How To Install See Installing How To Uninstall See Uninstalling Arguments See The Command Line . How To Develop See Developing for more information. How To Keep The Game Patched BSIPA will automatically repatch the game when it updates, as long as winhttp.dll is present in the install directory."
},
- "api/IPA.Config.Stores.Converters.CaseInsensitiveEnumConverter-1.html": {
- "href": "api/IPA.Config.Stores.Converters.CaseInsensitiveEnumConverter-1.html",
- "title": "Class CaseInsensitiveEnumConverter",
- "keywords": "Class CaseInsensitiveEnumConverter A converter for an enum of type T , that converts the enum to its string representation and back, ignoring the case of the serialized value for deseiralization. Inheritance Object ValueConverter CaseInsensitiveEnumConverter Implements IValueConverter Inherited Members ValueConverter.IValueConverter.ToValue(Object, Object) ValueConverter.IValueConverter.FromValue(Value, Object) ValueConverter.IValueConverter.Type Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Config.Stores.Converters Assembly : IPA.Loader.dll Syntax public sealed class CaseInsensitiveEnumConverter : ValueConverter, IValueConverter where T : Enum Type Parameters Name Description T the enum type Methods | Improve this Doc View Source FromValue(Value, Object) Converts a Value that is a Text node to the corresponding enum value. Declaration public override T FromValue(Value value, object parent) Parameters Type Name Description Value value the Value to convert Object parent the object which will own the created object Returns Type Description T the deserialized enum value Overrides IPA.Config.Stores.ValueConverter.FromValue(IPA.Config.Data.Value, System.Object) Exceptions Type Condition ArgumentException if value is not a Text node | Improve this Doc View Source ToValue(T, Object) Converts an enum of type T to a Value node corresponding to its value. Declaration public override Value ToValue(T obj, object parent) Parameters Type Name Description T obj the value to serialize Object parent the object which owns obj Returns Type Description Value a Text node representing obj Overrides IPA.Config.Stores.ValueConverter.ToValue(T, System.Object) Implements IValueConverter Extension Methods ReflectionUtil.SetField(T, String, U) ReflectionUtil.GetField(T, String) ReflectionUtil.SetProperty(T, String, U) ReflectionUtil.GetProperty(T, String) ReflectionUtil.InvokeMethod(T, String, Object[])"
+ "api/index.html": {
+ "href": "api/index.html",
+ "title": "BSIPA API Documentation",
+ "keywords": "BSIPA API Documentation Welcome to the full class documentation! To see guides, head over to the Articles tab . Select a namespace and a class on the left to get started."
},
- "api/IPA.Config.Data.Text.html": {
- "href": "api/IPA.Config.Data.Text.html",
- "title": "Class Text",
- "keywords": "Class Text A Value representing a piece of text. The only reason this is not named String is so that it doesn't conflict with String . Inheritance Object Value Text Inherited Members Value.Null() Value.List() Value.Map() Value.From(String) Value.Text(String) Value.From(Int64) Value.Integer(Int64) Value.From(Decimal) Value.Float(Decimal) Value.From(Boolean) Value.Bool(Boolean) Value.From(IEnumerable) Value.From(IDictionary) Value.From(IEnumerable>) Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Config.Data Assembly : IPA.Loader.dll Syntax public sealed class Text : Value Properties | Improve this Doc View Source Value The actual value of this Text object. Declaration public string Value { get; set; } Property Value Type Description String Methods | Improve this Doc View Source ToString() Converts this Value into a human-readable format. Declaration public override string ToString() Returns Type Description String a quoted, unescaped string form of Value Overrides Value.ToString() Extension Methods ReflectionUtil.SetField(T, String, U) ReflectionUtil.GetField(T, String) ReflectionUtil.SetProperty(T, String, U) ReflectionUtil.GetProperty(T, String) ReflectionUtil.InvokeMethod(T, String, Object[])"
+ "other_api/config/schema.html": {
+ "href": "other_api/config/schema.html",
+ "title": "Configuration File Schema",
+ "keywords": "Configuration File Schema { \"definitions\": { \"Debug_\": { \"type\": \"object\", \"properties\": { \"ShowCallSource\": { \"type\": \"boolean\" }, \"ShowDebug\": { \"type\": \"boolean\" }, \"CondenseModLogs\": { \"type\": \"boolean\" }, \"ShowHandledErrorStackTraces\": { \"type\": \"boolean\" }, \"HideMessagesForPerformance\": { \"type\": \"boolean\" }, \"HideLogThreshold\": { \"type\": \"integer\" }, \"ShowTrace\": { \"type\": \"boolean\" }, \"SyncLogging\": { \"type\": \"boolean\" } }, \"required\": [ \"ShowCallSource\", \"ShowDebug\", \"CondenseModLogs\", \"ShowHandledErrorStackTraces\", \"HideMessagesForPerformance\", \"HideLogThreshold\", \"ShowTrace\", \"SyncLogging\" ] }, \"Updates_\": { \"type\": \"object\", \"properties\": { \"AutoUpdate\": { \"type\": \"boolean\" }, \"AutoCheckUpdates\": { \"type\": \"boolean\" } }, \"required\": [ \"AutoUpdate\", \"AutoCheckUpdates\" ] } }, \"type\": \"object\", \"properties\": { \"Regenerate\": { \"type\": \"boolean\" }, \"Updates\": { \"$ref\": \"#/definitions/Updates_\" }, \"Debug\": { \"$ref\": \"#/definitions/Debug_\" }, \"YeetMods\": { \"type\": \"boolean\" }, \"GameAssemblies\": { \"type\": \"array\", \"items\": { \"type\": \"string\" } }, \"LastGameVersion\": { \"type\": \"string\" } }, \"required\": [ \"Regenerate\", \"Updates\", \"Debug\", \"YeetMods\", \"GameAssemblies\" ] }"
},
- "api/IPA.Config.Data.List.html": {
- "href": "api/IPA.Config.Data.List.html",
- "title": "Class List",
- "keywords": "Class List A list of Value s for serialization by an IConfigProvider . Use List() or From(IEnumerable) to create. Inheritance Object Value List Implements IList < Value > ICollection < Value > IEnumerable < Value > IEnumerable Inherited Members Value.Null() Value.List() Value.Map() Value.From(String) Value.Text(String) Value.From(Int64) Value.Integer(Int64) Value.From(Decimal) Value.Float(Decimal) Value.From(Boolean) Value.Bool(Boolean) Value.From(IEnumerable) Value.From(IDictionary) Value.From(IEnumerable>) Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Config.Data Assembly : IPA.Loader.dll Syntax public sealed class List : Value, IList, ICollection, IEnumerable, IEnumerable Properties | Improve this Doc View Source Count Gets the number of elements in the List . Declaration public int Count { get; } Property Value Type Description Int32 See Also Count | Improve this Doc View Source Item[Int32] Gets the value at the given index in this List . Declaration public Value this[int index] { get; set; } Parameters Type Name Description Int32 index the index to retrieve the Value at Property Value Type Description Value the Value at index See Also Item [ Int32 ] Methods | Improve this Doc View Source Add(Value) Adds a Value to the end of this List . Declaration public void Add(Value item) Parameters Type Name Description Value item the Value to add See Also Add (T) | Improve this Doc View Source AddRange(IEnumerable) Adds a range of Value s to the end of this List . Declaration public void AddRange(IEnumerable vals) Parameters Type Name Description IEnumerable < Value > vals the range of Value s to add | Improve this Doc View Source Clear() Clears the List . Declaration public void Clear() See Also Clear () | Improve this Doc View Source Contains(Value) Checks if the List contains a certian item. Declaration public bool Contains(Value item) Parameters Type Name Description Value item the Value to check for Returns Type Description Boolean true if the item was founc, otherwise false See Also Contains (T) | Improve this Doc View Source CopyTo(Value[], Int32) Copies the Value s in the List to the Array in array . Declaration public void CopyTo(Value[] array, int arrayIndex) Parameters Type Name Description Value [] array the Array to copy to Int32 arrayIndex the starting index to copy to See Also CopyTo (T[], Int32 ) | Improve this Doc View Source GetEnumerator() Gets an enumerator to enumerate the List . Declaration public IEnumerator GetEnumerator() Returns Type Description IEnumerator < Value > an IEnumerator for this List See Also GetEnumerator () | Improve this Doc View Source IndexOf(Value) Gets the index that a given Value is in the List . Declaration public int IndexOf(Value item) Parameters Type Name Description Value item the Value to search for Returns Type Description Int32 the index that the item was at, or -1. See Also IndexOf (T) | Improve this Doc View Source Insert(Int32, Value) Inserts a Value at an index. Declaration public void Insert(int index, Value item) Parameters Type Name Description Int32 index the index to insert at Value item the Value to insert See Also Insert ( Int32 , T) | Improve this Doc View Source Remove(Value) Removes a Value from the List . Declaration public bool Remove(Value item) Parameters Type Name Description Value item the Value to remove Returns Type Description Boolean true if the item was removed, false otherwise See Also Remove (T) | Improve this Doc View Source RemoveAt(Int32) Removes a Value at an index. Declaration public void RemoveAt(int index) Parameters Type Name Description Int32 index the index to remove a Value at See Also RemoveAt ( Int32 ) | Improve this Doc View Source ToString() Converts this Value into a human-readable format. Declaration public override string ToString() Returns Type Description String a comma-seperated list of the result of ToString() wrapped in square brackets Overrides Value.ToString() Explicit Interface Implementations | Improve this Doc View Source ICollection.IsReadOnly Declaration bool ICollection.IsReadOnly { get; } Returns Type Description Boolean | Improve this Doc View Source IEnumerable.GetEnumerator() Declaration IEnumerator IEnumerable.GetEnumerator() Returns Type Description IEnumerator Implements System.Collections.Generic.IList System.Collections.Generic.ICollection System.Collections.Generic.IEnumerable System.Collections.IEnumerable Extension Methods EnumerableExtensions.Prepend(IEnumerable, T) EnumerableExtensions.Append(IEnumerable, T) EnumerableExtensions.NonNull(IEnumerable) EnumerableExtensions.NonNull(IEnumerable, Func) EnumerableExtensions.NonNull(IEnumerable, Func>) ReflectionUtil.SetField(T, String, U) ReflectionUtil.GetField(T, String) ReflectionUtil.SetProperty(T, String, U) ReflectionUtil.GetProperty(T, String) ReflectionUtil.InvokeMethod(T, String, Object[])"
+ "other_api/index.html": {
+ "href": "other_api/index.html",
+ "title": "",
+ "keywords": ""
},
- "api/IPA.Config.Data.FloatingPoint.html": {
- "href": "api/IPA.Config.Data.FloatingPoint.html",
- "title": "Class FloatingPoint",
- "keywords": "Class FloatingPoint A Value representing a floating point value. This may hold a Decimal 's worth of data. Inheritance Object Value FloatingPoint Inherited Members Value.Null() Value.List() Value.Map() Value.From(String) Value.Text(String) Value.From(Int64) Value.Integer(Int64) Value.From(Decimal) Value.Float(Decimal) Value.From(Boolean) Value.Bool(Boolean) Value.From(IEnumerable) Value.From(IDictionary) Value.From(IEnumerable>) Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Config.Data Assembly : IPA.Loader.dll Syntax public sealed class FloatingPoint : Value Properties | Improve this Doc View Source Value The actual value fo this FloatingPoint object. Declaration public decimal Value { get; set; } Property Value Type Description Decimal Methods | Improve this Doc View Source AsInteger() Coerces this FloatingPoint into an Integer . Declaration public Integer AsInteger() Returns Type Description Integer a Integer representing the closest approximation of Value | Improve this Doc View Source ToString() Converts this Value into a human-readable format. Declaration public override string ToString() Returns Type Description String the result of Value.ToString() Overrides Value.ToString() Extension Methods ReflectionUtil.SetField(T, String, U) ReflectionUtil.GetField(T, String) ReflectionUtil.SetProperty(T, String, U) ReflectionUtil.GetProperty(T, String) ReflectionUtil.InvokeMethod(T, String, Object[])"
+ "articles/dev-resources/description.html": {
+ "href": "articles/dev-resources/description.html",
+ "title": "Demo Plugin",
+ "keywords": "Demo Plugin A little demo for the BSIPA modding introduction. WE CAN USE MARKDOWN!!!"
},
- "api/IPA.Config.ConfigProvider.html": {
- "href": "api/IPA.Config.ConfigProvider.html",
- "title": "Class ConfigProvider",
- "keywords": "Class ConfigProvider A wrapper for an IConfigProvider and the FileInfo to use with it. Inheritance Object ConfigProvider Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Config Assembly : IPA.Loader.dll Syntax public class ConfigProvider Methods | Improve this Doc View Source Load() Loads a Value from disk in whatever format this provider provides and returns it. Declaration public Value Load() Returns Type Description Value the Value loaded | Improve this Doc View Source Store(Value) Stores the Value given to disk in the format specified. Declaration public void Store(Value value) Parameters Type Name Description Value value the Value to store Extension Methods ReflectionUtil.SetField(T, String, U) ReflectionUtil.GetField(T, String) ReflectionUtil.SetProperty(T, String, U) ReflectionUtil.GetProperty(T, String) ReflectionUtil.InvokeMethod(T, String, Object[])"
+ "articles/start-user.html": {
+ "href": "articles/start-user.html",
+ "title": "Installing BSIPA",
+ "keywords": "Installing BSIPA Note This guide assumes that you are starting completely fresh. Grab a release from the GitHub Releases page . Make sure to download one of the BSIPA-*.zip s, as ModList.zip contains the Beat Saber mod for showing your mods in-game, not the loader itself. Note The specific ZIP you need to download varies on the game you will be patching. For example, if you are patching Beat Saber, you will need the file BSIPA-x64-Net4.zip . This is because Beat Saber is a 64 bit game running .NET 4. If you are patching Muse Dash, however, you nee the file BSIPA-x86-Net3.zip . Tip There are a few tricks for figuring out which file you need. If the game has a folder called MonoBleedingEdge in the install directory, then you need one of the Net4 builds. To determine which build to use, right click on the game executable, go to the Compatability tab, check the Run this program in compatability mode for checkbox, and look and see if the dropdown has any Windows XP emulation options. If it does, the application is 32 bit, and you need to get one of the x86 builds. Otherwise, get one of the x64 builds. Make sure to uncheck that checkbox before leaving the menu. Extract the zip into your game installation directory. There should now be a folder named IPA and a file named IPA.exe in the same folder as the game executable. For example, if you are installing BSIPA in Beat Saber, it might look like this after extraction: Run IPA.exe by double clicking it. A console window should pop up, and eventually, a gold message asking you to press a key will appear. Here is an example of a successful installation: Note In some cases, this may fail, something like this: In these cases, try dragging the game executable over IPA.exe . After installing, your game directory should look something like this: Note At this point it is recommended to run the game once before continuing, to ensure that things are installed correctly. The first run should create a UserData folder with Beat Saber IPA.json and Disabled Mods.json , as well as a Logs folder with several subfolders with their own files. If these are created, then the installation was very likely successful. Tip If you are not installing BSIPA on Beat Saber, you probably want to go to the config at UserData/Beat Saber IPA.json and set both of the following to false : { ... \"Updates\": { \"AutoUpdate\": false, \"AutoCheckUpdates\": false }, ... } Tip Depending on the game, you may have to set the config member GameAssemblies to the names of the assemblies that the game uses for BSIPA to virtualize them properly. For Beat Saber distrobutions, this will be set according to the version that it was built for by default. Otherwise, it will contain just Assembly-CSharp.dll since most games use that default. From here, just place all of your plugins in the Plugins folder, and you're all set! Many plugins will come in a zip such that the root of the zip represents the game install directory, so all you may have to do is extract the plugin into the game installation folder. Note For some reason, by default, Wine does not load DLLs in quite the same way that Windows does, causing issues with the injection. To make the injection work with Wine, winhttp has to have a DLL override set to native,builtin . This can be set either through Protontricks, or with the following .reg file. REGEDIT4 [HKEY_CURRENT_USER\\Software\\Wine\\DllOverrides] \"winhttp\"=\"native,builtin\" For Steam there's a per-game Wine prefix under compatdata . In this case SteamLibrary/steamapps/compatdata/620980/pfx/user.reg . Changes to this file will likely be ovewritten when the game updates or if local files are validated through Steam. Thats really all you have to do! The installation should persist across game updates for as long as winhttp.dll is present in the game directory, though your plugins will be moved to a different folder when it does update so things don't break horribly. Uninstalling Uninstalling is fairly simple, and can be done one of two ways: Drag the game executable over IPA.exe while holding Alt . Open a command prompt or Powershell terminal and run .\\IPA.exe -rn . (see The Command Line for what those options mean)"
},
- "api/BSIPA_ModList.UI.ViewControllers.html": {
- "href": "api/BSIPA_ModList.UI.ViewControllers.html",
+ "articles/start-dev.html": {
+ "href": "articles/start-dev.html",
+ "title": "Making your own mod",
+ "keywords": "Making a mod Overview What follows is a very barebones, and frankly not very useful plugin class, even as a starting point, but it should be enough to give a decent idea of how to do quick upgrades of existing mods for those who want to. using System; using IPA; using IPA.Logging; namespace Demo { [Plugin(RuntimeOptions.SingleStartInit)] internal class Plugin { public static Logger log { get; private set; } [Init] public Plugin(Logger logger) { log = logger; log.Debug(\"Basic plugin running!\"); // setup that does not require game code // this is only called once ever, so do once-ever initialization } [OnStart] public void OnStart() { // setup that requires game code } [OnExit] public void OnExit() { // teardown } } } There are basically 4 major concepts here: Logger , the logging system. PluginAttribute , which declares that this class is a plugin and how it should behave. InitAttribute , which declares the constructor (and optionally other methods) as being used for initialization. The lifecycle event attributes OnStartAttribute and OnExitAttribute . I reccommend you read the docs for each of those to get an idea for what they do. It is worth noting that this example is of a mod that cannot be enabled and disabled at runtime, as marked by RuntimeOptions.SingleStartInit . What can be changed Before we go adding more functionality, its worth mentioning that that is not the only way to have a plugin set up. For starters, we can add another method marked [Init] , and it will be called after the constructor, with the same injected parameters, if those are applicable. [Init] public void Init(Logger logger) { // logger will be the same instance as log currently is } If you only had a method marked [Init] , and no constructors marked [Init] , then the plugin type must expose a public default constructor. If multiple constructors are marked [Init] , only the one with the most parameters will be called. You may also mark as many methods as you wish with [Init] and all of them will be called, in no well-defined order on initialization. The same is true for [OnStart] and [OnExit] , respectively. From Scratch If you are starting from scratch, you will need one other thing to get your plugin up and running: a manifest. A basic manifest for that might look a little like this: { \"author\": \"ExampleMan\", \"description\": [ \"A demo plugin written for the BSIPA basic tutorial.\" ], \"gameVersion\": \"1.6.0\", \"id\": null, \"name\": \"Demo Plugin\", \"version\": \"0.0.1\", \"features\": [ ], \"links\": { \"project-home\": \"https://example.com/demo-plugin\", \"project-source\": \"https://github.com/exampleman/demo-plugin/\", \"donate\": \"https://ko-fi.com/exampleman\" }, } There is a lot going on there, but most of it should be decently obvious. Among the things that aren't immediately obvious, are id : This represents a unique identifier for the mod, for use by package managers such as BeatMods. It may be null if the mod chooses not to support those. features : Don't worry about this for now, this is a not-very-simple thing that will be touched on later. In addition, there are a few gatchas with it: description : This can be either a string or an array representing different lines. Markdown formatting is permitted. gameVersion : This should match exactly with the application version of the game being targeted. While this is not enforced by BSIPA, mod repositories like BeatMods may require it match, and it is good practice regardless. version : This must be a valid SemVer version number for your mod. In order for your plugin to load, the manifest must be embedded into the plugin DLL as an embedded resource. This can be set in the Visual Studio file properties panel under Build Action , or in the .csproj like so: At this point, if the main plugin source file and the manifest are in the same source location, and the plugin class is using the project's default namespace, the plugin will load just fine. However, this is somewhat difficult both to explain and verify, so I recommend you use the the misc.plugin-hint field in your manifest. It can be used like so: \"misc\": { \"plugin-hint\": \"Demo.Plugin\" } With this, you can set plugin-hint to the full typename of your plugin type, and it will correctly load. This is a hint though, and will also try it as a namespace if it fails to find the plugin type. If that fails, it will then fall back to using the manifest's embedded namespace. A less painful description If you want to have a relatively long or well-formatted description for your mod, it may start to become painful to embed it in a list of JSON strings in the manifest. Luckily, there is a way to handle this. The first step is to create another embedded file, but this time it should be a Markdown file, perhaps description.md . It may contain something like this: # Demo Plugin A little demo for the BSIPA modding introduction. --- WE CAN USE MARKDOWN!!! Then, in your manifest description, have the first line be something look like this, but replacing Demo.description.md with the fully namespaced name of the resource: \"#![Demo.description.md]\", Now, when loaded into memory, if anything reads your description metadata, they get the content of that file instead of the content of the manifest key. Configuring your plugin Something that many plugins want and need is configuration. Fortunately, BSIPA provides a fairly powerful configuration system out of the box. To start using it, first create a config class of some kind. Lets take a look at a fairly simple example of this: namespace Demo { public class PluginConfig { public static PluginConfig Instance { get; set; } public int IntValue { get; set; } = 42; public float FloatValue { get; set; } = 3.14159f; } } Notice how the class is both marked public and is not marked sealed . For the moment, both of these are necessary. Also notice that all of the members are properties. While this doesn't change much now, it will be significant in the near future. Now, how do we get this object off of disk? Simple. Back in your plugin class, change your [Init] constructor to look like this: [Init] public Plugin(Logger logger, Config conf) { log = logger; PluginConfig.Instance = conf.Generated(); log.Debug(\"Config loaded\"); // setup that does not require game code } For this to compile, though, we will need to add a few using s: using IPA.Config; using IPA.Config.Stores; With just this, you have your config automatically loading from disk! It's even reloaded when it gets changed mid-game! You can now access it from anywhere by simply accessing PluginConfig.Instance . Make sure you don't accidentally reassign this though, as then you will loose your only interaction with the user's preferences. By default, it will be named the same as is in your plugin's manifest's name field, and will use the built-in json provider. This means that the file that will be loaded from will be UserData/Demo Plugin.json for our demo plugin. You can, however, control both of those by applying attributes to the Config parameter, namely Config.NameAttribute to control the name, and Config.PreferAttribute to control the type. If the type preferences aren't registered though, it will just fall back to JSON. The config's behaviour can be found either later here, or in the remarks section of Generated(Config, Boolean) . At this point, your main plugin file should look something like this: using System; using IPA; using IPA.Logging; using IPA.Config; using IPA.Config.Stores; namespace Demo { [Plugin(RuntimeOptions.SingleStartInit)] internal class Plugin { public static Logger log { get; private set; } [Init] public Plugin(Logger logger, Config conf) { log = logger; PluginConfig.Instance = conf.Generated(); log.Debug(\"Config loaded\"); // setup that does not require game code } [OnStart] public void OnStart() { // setup that requires game code } [OnExit] public void OnExit() { // teardown } } } But what about more complex types than just int and float ? What if you want sub-objects? Those are supported natively, and so are very easy to set up. We just add this to the config class: public class SubThingsObject { public double DoubleValue { get; set; } = 2.718281828459045; } public SubThingsObject SubThings { get; set; } = new SubThingsObject(); Now this object will be automatically read from disk too. But there is one caveat to this: because SubThingsObject is a reference type, SubThings can be null . This is often undesireable. The obvious solution may be to simply change it to a struct , but that is both not supported and potentially undesirable for other reasons we'll get to later. Instead, you can use NonNullableAttribute . Change the definition of SubThings to this: [NonNullable] public SubThingsObject SubThings { get; set; } = new SubThingsObject(); And add this to the using s: using IPA.Config.Stores.Attributes; This attribute tells the serializer that null is an invalid value for the config object. This does, however, require that you take extra care ensure that it never becomes null in code, as that will break the serializer. What about collection types? Well, you can use those too, but you have to use something new: a converter. You may be familiar with them if you have used something like the popular Newtonsoft.Json library before. In BSIPA, they lie in the IPA.Config.Stores.Converters namespace. All converters either implement IValueConverter or derive from ValueConverter . You will mostly use them with an UseConverterAttribute . To use them, we'll want to import them: using System.Collections.Generic; using IPA.Config.Stores; using IPA.Config.Stores.Converters; Then add a field, for example a list field: [UseConverter(typeof(ListConverter))] public List ListValue { get; set; } = new List(); This uses a converter that is provided with BSIPA for List s specifically. It converts the list to an ordered array, which is then written to disk as a JSON array. We could also potentially want use something like a HashSet . Lets start by looking at the definition for such a member, then deciphering what exactly it means: [UseConverter(typeof(CollectionConverter>))] public HashSet SetValue { get; set; } = new HashSet(); The converter we're using here is CollectionConverter , a base type for converters of all kinds of collections. In fact, the ListConverter is derived from this, and uses it for most of its implementation. If a type implements ICollection , CollectionConverter can convert it. It, like most other BSIPA provided aggregate converters, provides a type argument overload CollectionConverter to compose other converters with it to handle unusual element types. Now after all that, your plugin class has not changed, and your config class should look something like this: using System.Collections.Generic; using IPA.Config.Stores; using IPA.Config.Stores.Attributes; using IPA.Config.Stores.Converters; namespace Demo { public class PluginConfig { public static PluginConfig Instance { get; set; } public class SubThingsObject { public double DoubleValue { get; set; } = 2.718281828459045; } public int IntValue { get; set; } = 42; public float FloatValue { get; set; } = 3.14159f; [NonNullable] public SubThingsObject SubThings { get; set; } = new SubThingsObject(); [UseConverter(typeof(ListConverter))] public List ListValue { get; set; } = new List(); [UseConverter(typeof(CollectionConverter>))] public HashSet SetValue { get; set; } = new HashSet(); } } I mentioned earlier that your config file will be automatically reloaded -- but isn't that a bad thing? Doesn't that mean that the config could change under your feet without you having a way to tell? Not so- I just haven't introduced the mechanism. Define a public or protected virtual method named OnReload : public virtual void OnReload() { // this is called whenever the config file is reloaded from disk // use it to tell all of your systems that something has changed // this is called off of the main thread, and is not safe to interact // with Unity in } This method will be called whenever BSIPA reloads your config from disk. When it is called, the object will already have been populated. Use it to notify all of your systems that configuration has changed. Now, we know how to read from disk, and how to use unusual types, but how do we write it back to disk? This config system is based on automatic saving (though we haven't quite gotten to the automatic part), and so the config is written to disk whenever the system recognizes that something has changed. To tell is as much, define a public or protected virtual method named Changed : public virtual void Changed() { // this is called whenever one of the virtual properties is changed // can be called to signal that the content has been changed } This method can be called to tell BSIPA that this config object has changed. Later, when we enable automated change tracking, this will also be called when one of the config's members changes. You can use this body to validate something or, for example, write a timestamp for last change. I just mentioned automated change tracking -- lets add that now. To do this, just make all of the properties virtual, like so: public class SubThingsObject { public virtual double DoubleValue { get; set; } = 2.718281828459045; } public virtual int IntValue { get; set; } = 42; public virtual float FloatValue { get; set; } = 3.14159f; [NonNullable] public virtual SubThingsObject SubThings { get; set; } = new SubThingsObject(); [UseConverter(typeof(ListConverter))] public virtual List ListValue { get; set; } = new List(); [UseConverter(typeof(CollectionConverter>))] public virtual HashSet SetValue { get; set; } = new HashSet(); Now, whenever you assign to any of those properties, your Changed method will be called, and the config object will be marked as changed and will be written to disk. Unfortunately, any properties that can be modified while only using the property getter do not trigger this, and so if you change any collections for example, you will have to manually call Changed . After doing all this, your config class should look something like this: using System.Collections.Generic; using IPA.Config.Stores; using IPA.Config.Stores.Attributes; using IPA.Config.Stores.Converters; namespace Demo { public class PluginConfig { public static PluginConfig Instance { get; set; } public class SubThingsObject { public virtual double DoubleValue { get; set; } = 2.718281828459045; } public virtual int IntValue { get; set; } = 42; public virtual float FloatValue { get; set; } = 3.14159f; [NonNullable] public virtual SubThingsObject SubThings { get; set; } = new SubThingsObject(); [UseConverter(typeof(ListConverter))] public virtual List ListValue { get; set; } = new List(); [UseConverter(typeof(CollectionConverter>))] public virtual HashSet SetValue { get; set; } = new HashSet(); public virtual void Changed() { // this is called whenever one of the virtual properties is changed // can be called to signal that the content has been changed } public virtual void OnReload() { // this is called whenever the config file is reloaded from disk // use it to tell all of your systems that something has changed // this is called off of the main thread, and is not safe to interact // with Unity in } } } There is one more major problem with this though: the main class is still public. Most configs shouldn't be. Lets make it internal. So we make it internal: internal class PluginConfig But to make it actually work, we add this outside the namespace declaration: using System.Runtime.CompilerServices; [assembly: InternalsVisibleTo(GeneratedStore.AssemblyVisibilityTarget)] And now our full file looks like this: using System.Collections.Generic; using System.Runtime.CompilerServices; using IPA.Config.Stores; using IPA.Config.Stores.Attributes; using IPA.Config.Stores.Converters; [assembly: InternalsVisibleTo(GeneratedStore.AssemblyVisibilityTarget)] namespace Demo { internal class PluginConfig { public static PluginConfig Instance { get; set; } public class SubThingsObject { public virtual double DoubleValue { get; set; } = 2.718281828459045; } public virtual int IntValue { get; set; } = 42; public virtual float FloatValue { get; set; } = 3.14159f; [NonNullable] public virtual SubThingsObject SubThings { get; set; } = new SubThingsObject(); [UseConverter(typeof(ListConverter))] public virtual List ListValue { get; set; } = new List(); [UseConverter(typeof(CollectionConverter>))] public virtual HashSet SetValue { get; set; } = new HashSet(); public virtual void Changed() { // this is called whenever one of the virtual properties is changed // can be called to signal that the content has been changed } public virtual void OnReload() { // this is called whenever the config file is reloaded from disk // use it to tell all of your systems that something has changed // this is called off of the main thread, and is not safe to interact // with Unity in } } }"
+ },
+ "articles/index.html": {
+ "href": "articles/index.html",
+ "title": "Getting Started",
+ "keywords": "Getting Started Starting out is quite simple. Just follow one of the following guides: Installing BSIPA Making your own mod Or, if you want to contribute, see Contributing ."
+ },
+ "articles/command-line.html": {
+ "href": "articles/command-line.html",
+ "title": "The Command Line",
+ "keywords": "The Command Line BSIPA has 2 command lines: the installer, and the game. Their documentation is below. The Installer ( IPA.exe ) The Game The installer has quite a few options, which are documented inline with the -h or --help flag. This is what it currently looks like: usage: IPA.exe [FLAGS] [ARGUMENTS] flags: -h, --help prints this message -w, --waitfor=PID waits for the specified PID to exit -f, --force forces the operation to go through -r, --revert reverts the IPA installation -n, --nowait doesn't wait for user input after the operation -s, --start=ARGUMENTS uses the specified arguments to start the game after the patch/unpatch -l, --launch uses positional parameters as arguments to start the game after patch/unpatch -R, --no-revert prevents a normal installation from first reverting The game also gets quite a few command line options, though there isn't anything as convenient as a help page for them. Here's a quick list of what they are and what they do. --verbose Makes a console appear with log information at startup. --debug Enables the loading of debug information in Mono. The debugging information must be in the portable PDB format, in the same location as the DLL that it's for. This option also forces BSIPA to show all debug messages in the console, as well as where they were called. This overrides the config settings Debug.ShowDebug and Debug.ShowCallSource . --trace Enables trace level messages. By default, they do not ever enter the message queue, and thus cost almost nothing. When this or the config option is used, they are added and logged with the same rules as Debug messages. This overrides the config setting Debug.ShowTrace . --mono-debug Enables the built-in Mono soft debugger engine. By default, it acts as a client, and requires that there be a soft debugger server running on port 10000 on localhost . Implies --debug . --server Does nothing on its own. When paired with --mono-debug , this option makes the Mono soft debugger act in server mode. It begins listening on port 10000 on any address, and will pause startup (with no window) until a debugger is connected. I recommend using SDB, but that is a command line debugger and a lot of people don't care for those. --no-yeet Disables mod yeeting. By default, whenever BSIPA detects that the game is now running a newer version than previous runs, it will move all mods to another folder and not load them. (They still get checked for updates though.) When this is enabled, that behaviour is disabled. Overrides the config setting YeetMods . --condense-logs Reduces the number of log files BSIPA will output for a given session. By default, BSIPA will create a subfolder in the Logs folder for each mod sublog, as well as each mod. This disables that behaviour, and restricts it to only create a global log and mod logs. Overrides the config setting Debug.CondenseModLogs . --no-updates Disables automatic updating. By default, BSIPA will check BeatMods for all of the loaded mods to see if there is a new version avaliable. If there is, it will be downloaded and installed on the next run. This flag disables that behaviour. Overrides the config settings Updates.AutoCheckUpdates and Updates.AutoUpdate ."
+ },
+ "articles/contributing.html": {
+ "href": "articles/contributing.html",
+ "title": "Contributing",
+ "keywords": "Contributing Prerequisites Microsoft Visual Studio 2019 or later (2017 may work, no guarantees) Tools for C/C++ (MSVC) v141 .NET 4.6.1 SDK and .NET 4.7.2 SDK Beat Saber (if developing for .NET 4.5+) Muse Dash (if developing for .NET 3.5) Building Clone with git clone https://github.com/beat-saber-modding-group/BeatSaber-IPA-Reloaded.git --recursive Create a file, bsinstalldir.txt in the solution root. Do NOT create this in Visual Studio; VS adds a BOM at the begginning of the file that the tools used cannot read. It should contain the path to your Beat Saber installation, using forward slashes with a trailing slash. e.g. C:/Program Files (x86)/Steam/steamapps/common/Beat Saber/ If you intend to be doing .NET 3.5 centric development, you must put your Muse Dash installation folder in a file named mdinstalldir.txt that is otherwise identical to bsinstalldir.txt . Open BSIPA.sln in Visual Studio. Choose the configuration that you intend to target during development. Rebuild all. When you make a change somewhere in BSIPA itself, right click on BSIPA-Meta and click Build or Rebuild . This sets up the output in path/to/solution/BSIPA-Meta/bin/ to be what should be copied to the game directory. When making a change to Mod List, you only need to build Mod List itself. Install by copying everything in path/to/solution/BSIPA-ModList/bin/ to your game directory. When building a Debug build, all referenced assemblies from Beat Saber will be copied from the install directory provided in bsinstalldir.txt into Refs/ . Any new references should reference the copy in there. When building for Release, it just uses the files already in Refs/ ."
+ },
+ "api/IPA.Utilities.AlmostVersionConverter.html": {
+ "href": "api/IPA.Utilities.AlmostVersionConverter.html",
+ "title": "Class AlmostVersionConverter",
+ "keywords": "Class AlmostVersionConverter A ValueConverter for AlmostVersion s. Inheritance Object ValueConverter < AlmostVersion > AlmostVersionConverter Implements IValueConverter Inherited Members ValueConverter.IValueConverter.ToValue(Object, Object) ValueConverter.IValueConverter.FromValue(Value, Object) ValueConverter.IValueConverter.Type Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Utilities Assembly : IPA.Loader.dll Syntax public sealed class AlmostVersionConverter : ValueConverter, IValueConverter Methods | Improve this Doc View Source FromValue(Value, Object) Converts a Text node into an AlmostVersion . Declaration public override AlmostVersion FromValue(Value value, object parent) Parameters Type Name Description Value value the Text node to convert Object parent the owner of the new object Returns Type Description AlmostVersion Overrides IPA.Config.Stores.ValueConverter.FromValue(IPA.Config.Data.Value, System.Object) | Improve this Doc View Source ToValue(AlmostVersion, Object) Converts an AlmostVersion to a Text node. Declaration public override Value ToValue(AlmostVersion obj, object parent) Parameters Type Name Description AlmostVersion obj the AlmostVersion to convert Object parent the parent of obj Returns Type Description Value a Text node representing obj Overrides IPA.Config.Stores.ValueConverter.ToValue(IPA.Utilities.AlmostVersion, System.Object) Implements IValueConverter Extension Methods ReflectionUtil.SetField(T, String, U) ReflectionUtil.GetField(T, String) ReflectionUtil.SetProperty(T, String, U) ReflectionUtil.GetProperty(T, String) ReflectionUtil.InvokeMethod(T, String, Object[])"
+ },
+ "api/IPA.Utilities.AlmostVersion.html": {
+ "href": "api/IPA.Utilities.AlmostVersion.html",
+ "title": "Class AlmostVersion",
+ "keywords": "Class AlmostVersion A type that wraps so that the string of the version is stored when the string is not a valid . Inheritance Object AlmostVersion Implements IComparable < AlmostVersion > IComparable < SemVer.Version > Inherited Members Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetType() Object.MemberwiseClone() Namespace : IPA.Utilities Assembly : IPA.Loader.dll Syntax public class AlmostVersion : IComparable, IComparable Constructors | Improve this Doc View Source AlmostVersion(SemVer.Version) Creates an AlmostVersion from the provided in ver . Declaration public AlmostVersion(SemVer.Version ver) Parameters Type Name Description SemVer.Version ver the to store | Improve this Doc View Source AlmostVersion(String) Creates a new AlmostVersion with the version string provided in vertext . Declaration public AlmostVersion(string vertext) Parameters Type Name Description String vertext the version string to store | Improve this Doc View Source AlmostVersion(String, AlmostVersion) Creates a new AlmostVersion from the version string in vertext stored the same way as the AlmostVersion passed in copyMode . Declaration public AlmostVersion(string vertext, AlmostVersion copyMode) Parameters Type Name Description String vertext the text to parse as an AlmostVersion AlmostVersion copyMode an AlmostVersion to copy the storage mode of | Improve this Doc View Source AlmostVersion(String, AlmostVersion.StoredAs) Creates an AlmostVersion from the version string in vertext stored using the storage mode specified in mode . Declaration public AlmostVersion(string vertext, AlmostVersion.StoredAs mode) Parameters Type Name Description String vertext the text to parse as an AlmostVersion AlmostVersion.StoredAs mode the storage mode to store the version in Properties | Improve this Doc View Source SemverValue The value of the AlmostVersion if it was stored as a . Declaration public SemVer.Version SemverValue { get; } Property Value Type Description SemVer.Version the stored value as a , or null if not stored as a version. | Improve this Doc View Source StorageMode The way the value is stored, whether it be as a or a String . Declaration public AlmostVersion.StoredAs StorageMode { get; } Property Value Type Description AlmostVersion.StoredAs the storage mode used to store this value | Improve this Doc View Source StringValue The value of the AlmostVersion if it was stored as a String . Declaration public string StringValue { get; } Property Value Type Description String the stored value as a String , or null if not stored as a string. Methods | Improve this Doc View Source CompareTo(AlmostVersion) Compares langword_csharp_this to the AlmostVersion in other using or CompareTo(String) , depending on the current store. Declaration public int CompareTo(AlmostVersion other) Parameters Type Name Description AlmostVersion other the AlmostVersion to compare to Returns Type Description Int32 less than 0 if other is considered bigger than langword_csharp_this , 0 if equal, and greater than zero if smaller Remarks The storage methods of the two objects must be the same, or this will throw an InvalidOperationException . See Also CompareTo(SemVer.Version) | Improve this Doc View Source CompareTo(SemVer.Version) Compares langword_csharp_this to the in other using . Declaration public int CompareTo(SemVer.Version other) Parameters Type Name Description SemVer.Version other the to compare to Returns Type Description Int32 less than 0 if other is considered bigger than langword_csharp_this , 0 if equal, and greater than zero if smaller Remarks The storage method of langword_csharp_this must be SemVer , else an InvalidOperationException will be thrown. See Also CompareTo(AlmostVersion) | Improve this Doc View Source Equals(Object) Performs a strict equality check between langword_csharp_this and obj . Declaration public override bool Equals(object obj) Parameters Type Name Description Object obj the object to compare to Returns Type Description Boolean true if they are equal, false otherwise Overrides Object.Equals(Object) Remarks This may return false where Equality(AlmostVersion, AlmostVersion) returns true See Also Equals ( Object ) | Improve this Doc View Source GetHashCode() Default generated hash code function generated by VS. Declaration public override int GetHashCode() Returns Type Description Int32 a value unique to each object, except those that are considered equal by Equals(Object) Overrides Object.GetHashCode() See Also GetHashCode () | Improve this Doc View Source ToString() Gets a string representation of the current version. If the value is stored as a string, this returns it. If it is stored as a , it is equivalent to calling . Declaration public override string ToString() Returns Type Description String a string representation of the current version Overrides Object.ToString() See Also ToString () Operators | Improve this Doc View Source Equality(AlmostVersion, AlmostVersion) Compares two versions, only taking into account the numeric part of the version if they are stored as s, or strict equality if they are stored as String s. Declaration public static bool operator ==(AlmostVersion l, AlmostVersion r) Parameters Type Name Description AlmostVersion l the first value to compare AlmostVersion r the second value to compare Returns Type Description Boolean true if they are mostly equal, false otherwise Remarks This is a looser equality than Equals(Object) , meaning that this may return true where Equals(Object) does not. See Also Equals(Object) | Improve this Doc View Source Implicit(AlmostVersion to SemVer.Version) Implicitly converts an AlmostVersion to , if applicable, using SemverValue . If not applicable, returns null Declaration public static implicit operator SemVer.Version(AlmostVersion av) Parameters Type Name Description AlmostVersion av the AlmostVersion to convert to a Returns Type Description SemVer.Version See Also SemverValue | Improve this Doc View Source Implicit(SemVer.Version to AlmostVersion) Implicitly converts a to AlmostVersion using AlmostVersion(SemVer.Version) . Declaration public static implicit operator AlmostVersion(SemVer.Version ver) Parameters Type Name Description SemVer.Version ver the to convert Returns Type Description AlmostVersion See Also AlmostVersion(SemVer.Version) | Improve this Doc View Source Inequality(AlmostVersion, AlmostVersion) The opposite of Equality(AlmostVersion, AlmostVersion) . Equivalent to !(l == r) . Declaration public static bool operator !=(AlmostVersion l, AlmostVersion r) Parameters Type Name Description AlmostVersion l the first value to compare AlmostVersion r the second value to compare Returns Type Description Boolean true if they are not mostly equal, false otherwise See Also Equality(AlmostVersion, AlmostVersion) Implements System.IComparable System.IComparable Extension Methods ReflectionUtil.SetField(T, String, U) ReflectionUtil.GetField(T, String) ReflectionUtil.SetProperty(T, String, U) ReflectionUtil.GetProperty(T, String) ReflectionUtil.InvokeMethod(T, String, Object[])"
+ },
+ "api/IPA.OnExitAttribute.html": {
+ "href": "api/IPA.OnExitAttribute.html",
+ "title": "Class OnExitAttribute",
+ "keywords": "Class OnExitAttribute Indicates that the target method should be called when the game exits. Inheritance Object Attribute OnExitAttribute Implements _Attribute Inherited Members Attribute.GetCustomAttributes(MemberInfo, Type) Attribute.GetCustomAttributes(MemberInfo, Type, Boolean) Attribute.GetCustomAttributes(MemberInfo) Attribute.GetCustomAttributes(MemberInfo, Boolean) Attribute.IsDefined(MemberInfo, Type) Attribute.IsDefined(MemberInfo, Type, Boolean) Attribute.GetCustomAttribute(MemberInfo, Type) Attribute.GetCustomAttribute(MemberInfo, Type, Boolean) Attribute.GetCustomAttributes(ParameterInfo) Attribute.GetCustomAttributes(ParameterInfo, Type) Attribute.GetCustomAttributes(ParameterInfo, Type, Boolean) Attribute.GetCustomAttributes(ParameterInfo, Boolean) Attribute.IsDefined(ParameterInfo, Type) Attribute.IsDefined(ParameterInfo, Type, Boolean) Attribute.GetCustomAttribute(ParameterInfo, Type) Attribute.GetCustomAttribute(ParameterInfo, Type, Boolean) Attribute.GetCustomAttributes(Module, Type) Attribute.GetCustomAttributes(Module) Attribute.GetCustomAttributes(Module, Boolean) Attribute.GetCustomAttributes(Module, Type, Boolean) Attribute.IsDefined(Module, Type) Attribute.IsDefined(Module, Type, Boolean) Attribute.GetCustomAttribute(Module, Type) Attribute.GetCustomAttribute(Module, Type, Boolean) Attribute.GetCustomAttributes(Assembly, Type) Attribute.GetCustomAttributes(Assembly, Type, Boolean) Attribute.GetCustomAttributes(Assembly) Attribute.GetCustomAttributes(Assembly, Boolean) Attribute.IsDefined(Assembly, Type) Attribute.IsDefined(Assembly, Type, Boolean) Attribute.GetCustomAttribute(Assembly, Type) Attribute.GetCustomAttribute(Assembly, Type, Boolean) Attribute.Equals(Object) Attribute.GetHashCode() Attribute.Match(Object) Attribute.IsDefaultAttribute() Attribute._Attribute.GetTypeInfoCount(UInt32) Attribute._Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) Attribute._Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) Attribute._Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) Attribute.TypeId Object.ToString() Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetType() Object.MemberwiseClone() Namespace : IPA Assembly : IPA.Loader.dll Syntax [AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = false)] public sealed class OnExitAttribute : Attribute, _Attribute, IEdgeLifecycleAttribute Remarks This attribute is interchangable with OnDisableAttribute , and is treated identically. They are seperate to allow plugin code to more clearly describe the intent of the methods. Typically, this will be used when the RuntimeOptions parameter of the plugins's PluginAttribute is SingleStartInit . The method marked by this attribute will always be called from the Unity main thread. Implements System.Runtime.InteropServices._Attribute Extension Methods ReflectionUtil.SetField(T, String, U) ReflectionUtil.GetField(T, String) ReflectionUtil.SetProperty(T, String, U) ReflectionUtil.GetProperty(T, String) ReflectionUtil.InvokeMethod(T, String, Object[]) See Also PluginAttribute OnDisableAttribute"
+ },
+ "api/IPA.OnEnableAttribute.html": {
+ "href": "api/IPA.OnEnableAttribute.html",
+ "title": "Class OnEnableAttribute",
+ "keywords": "Class OnEnableAttribute Indicates that the target method should be called when the plugin is enabled. Inheritance Object Attribute OnEnableAttribute Implements _Attribute Inherited Members Attribute.GetCustomAttributes(MemberInfo, Type) Attribute.GetCustomAttributes(MemberInfo, Type, Boolean) Attribute.GetCustomAttributes(MemberInfo) Attribute.GetCustomAttributes(MemberInfo, Boolean) Attribute.IsDefined(MemberInfo, Type) Attribute.IsDefined(MemberInfo, Type, Boolean) Attribute.GetCustomAttribute(MemberInfo, Type) Attribute.GetCustomAttribute(MemberInfo, Type, Boolean) Attribute.GetCustomAttributes(ParameterInfo) Attribute.GetCustomAttributes(ParameterInfo, Type) Attribute.GetCustomAttributes(ParameterInfo, Type, Boolean) Attribute.GetCustomAttributes(ParameterInfo, Boolean) Attribute.IsDefined(ParameterInfo, Type) Attribute.IsDefined(ParameterInfo, Type, Boolean) Attribute.GetCustomAttribute(ParameterInfo, Type) Attribute.GetCustomAttribute(ParameterInfo, Type, Boolean) Attribute.GetCustomAttributes(Module, Type) Attribute.GetCustomAttributes(Module) Attribute.GetCustomAttributes(Module, Boolean) Attribute.GetCustomAttributes(Module, Type, Boolean) Attribute.IsDefined(Module, Type) Attribute.IsDefined(Module, Type, Boolean) Attribute.GetCustomAttribute(Module, Type) Attribute.GetCustomAttribute(Module, Type, Boolean) Attribute.GetCustomAttributes(Assembly, Type) Attribute.GetCustomAttributes(Assembly, Type, Boolean) Attribute.GetCustomAttributes(Assembly) Attribute.GetCustomAttributes(Assembly, Boolean) Attribute.IsDefined(Assembly, Type) Attribute.IsDefined(Assembly, Type, Boolean) Attribute.GetCustomAttribute(Assembly, Type) Attribute.GetCustomAttribute(Assembly, Type, Boolean) Attribute.Equals(Object) Attribute.GetHashCode() Attribute.Match(Object) Attribute.IsDefaultAttribute() Attribute._Attribute.GetTypeInfoCount(UInt32) Attribute._Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) Attribute._Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) Attribute._Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) Attribute.TypeId Object.ToString() Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetType() Object.MemberwiseClone() Namespace : IPA Assembly : IPA.Loader.dll Syntax [AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = false)] public sealed class OnEnableAttribute : Attribute, _Attribute, IEdgeLifecycleAttribute Remarks This attribute is interchangable with OnStartAttribute , and is treated identically. They are seperate to allow plugin code to more clearly describe the intent of the methods. Typically, this will be used when the RuntimeOptions parameter of the plugins's PluginAttribute is DynamicInit . The method marked by this attribute will always be called from the Unity main thread. Implements System.Runtime.InteropServices._Attribute Extension Methods ReflectionUtil.SetField(T, String, U) ReflectionUtil.GetField(T, String) ReflectionUtil.SetProperty(T, String, U) ReflectionUtil.GetProperty(T, String) ReflectionUtil.InvokeMethod(T, String, Object[]) See Also PluginAttribute OnStartAttribute"
+ },
+ "api/IPA.OnDisableAttribute.html": {
+ "href": "api/IPA.OnDisableAttribute.html",
+ "title": "Class OnDisableAttribute",
+ "keywords": "Class OnDisableAttribute Indicates that the target method should be called when the plugin is disabled. Inheritance Object Attribute OnDisableAttribute Implements _Attribute Inherited Members Attribute.GetCustomAttributes(MemberInfo, Type) Attribute.GetCustomAttributes(MemberInfo, Type, Boolean) Attribute.GetCustomAttributes(MemberInfo) Attribute.GetCustomAttributes(MemberInfo, Boolean) Attribute.IsDefined(MemberInfo, Type) Attribute.IsDefined(MemberInfo, Type, Boolean) Attribute.GetCustomAttribute(MemberInfo, Type) Attribute.GetCustomAttribute(MemberInfo, Type, Boolean) Attribute.GetCustomAttributes(ParameterInfo) Attribute.GetCustomAttributes(ParameterInfo, Type) Attribute.GetCustomAttributes(ParameterInfo, Type, Boolean) Attribute.GetCustomAttributes(ParameterInfo, Boolean) Attribute.IsDefined(ParameterInfo, Type) Attribute.IsDefined(ParameterInfo, Type, Boolean) Attribute.GetCustomAttribute(ParameterInfo, Type) Attribute.GetCustomAttribute(ParameterInfo, Type, Boolean) Attribute.GetCustomAttributes(Module, Type) Attribute.GetCustomAttributes(Module) Attribute.GetCustomAttributes(Module, Boolean) Attribute.GetCustomAttributes(Module, Type, Boolean) Attribute.IsDefined(Module, Type) Attribute.IsDefined(Module, Type, Boolean) Attribute.GetCustomAttribute(Module, Type) Attribute.GetCustomAttribute(Module, Type, Boolean) Attribute.GetCustomAttributes(Assembly, Type) Attribute.GetCustomAttributes(Assembly, Type, Boolean) Attribute.GetCustomAttributes(Assembly) Attribute.GetCustomAttributes(Assembly, Boolean) Attribute.IsDefined(Assembly, Type) Attribute.IsDefined(Assembly, Type, Boolean) Attribute.GetCustomAttribute(Assembly, Type) Attribute.GetCustomAttribute(Assembly, Type, Boolean) Attribute.Equals(Object) Attribute.GetHashCode() Attribute.Match(Object) Attribute.IsDefaultAttribute() Attribute._Attribute.GetTypeInfoCount(UInt32) Attribute._Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) Attribute._Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) Attribute._Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) Attribute.TypeId Object.ToString() Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetType() Object.MemberwiseClone() Namespace : IPA Assembly : IPA.Loader.dll Syntax [AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = false)] public sealed class OnDisableAttribute : Attribute, _Attribute, IEdgeLifecycleAttribute Remarks This attribute is interchangable with OnExitAttribute , and is treated identically. They are seperate to allow plugin code to more clearly describe the intent of the methods. Typically, this will be used when the RuntimeOptions parameter of the plugins's PluginAttribute is DynamicInit . The method marked by this attribute will always be called from the Unity main thread. Implements System.Runtime.InteropServices._Attribute Extension Methods ReflectionUtil.SetField(T, String, U) ReflectionUtil.GetField(T, String) ReflectionUtil.SetProperty(T, String, U) ReflectionUtil.GetProperty(T, String) ReflectionUtil.InvokeMethod(T, String, Object[]) See Also PluginAttribute OnExitAttribute"
+ },
+ "api/IPA.Old.html": {
+ "href": "api/IPA.Old.html",
"title": "",
- "keywords": "Classes MarkdownView A UI component that renders CommonMark Markdown in-game."
+ "keywords": "Interfaces IEnhancedPlugin An enhanced version of the standard IPA plugin. IPlugin Interface for generic Illusion unity plugins. Every class that implements this will be loaded if the DLL is placed in Plugins."
},
- "api/IPA.Config.Stores.Converters.CollectionConverter-3.html": {
- "href": "api/IPA.Config.Stores.Converters.CollectionConverter-3.html",
- "title": "Class CollectionConverter",
- "keywords": "Class CollectionConverter A CollectionConverter which default constructs a converter for use as the value converter. Inheritance Object ValueConverter CollectionConverter CollectionConverter Implements IValueConverter Inherited Members CollectionConverter.BaseConverter CollectionConverter.Create(Int32, Object) CollectionConverter.PopulateFromValue(TCollection, List, Object) CollectionConverter.FromValue(Value, Object) CollectionConverter.ToValue(TCollection, Object) ValueConverter.ToValue(TCollection, Object) ValueConverter.FromValue(Value, Object) ValueConverter.IValueConverter.ToValue(Object, Object) ValueConverter.IValueConverter.FromValue(Value, Object) ValueConverter.IValueConverter.Type Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Config.Stores.Converters Assembly : IPA.Loader.dll Syntax public sealed class CollectionConverter : CollectionConverter, IValueConverter where TCollection : ICollection where TConverter : ValueConverter, new() Type Parameters Name Description T the value type of the collection TCollection the type of the colleciton TConverter the type of the converter to use for T Constructors | Improve this Doc View Source CollectionConverter() Creates a CollectionConverter using a default constructed TConverter element type. Equivalent to calling CollectionConverter(ValueConverter) with a default-constructed TConverter . Declaration public CollectionConverter() See Also CollectionConverter(ValueConverter) Implements IValueConverter Extension Methods ReflectionUtil.SetField(T, String, U) ReflectionUtil.GetField(T, String) ReflectionUtil.SetProperty(T, String, U) ReflectionUtil.GetProperty(T, String) ReflectionUtil.InvokeMethod(T, String, Object[]) See Also CollectionConverter "
+ "api/IPA.Logging.Printers.html": {
+ "href": "api/IPA.Logging.Printers.html",
+ "title": "",
+ "keywords": "Classes ColoredConsolePrinter Prints a pretty message to the console. ColorlessConsolePrinter A colorless version of ColoredConsolePrinter , that indiscriminantly prints to standard out. GlobalLogFilePrinter A printer for all messages to a unified log location. GZFilePrinter A LogPrinter abstract class that provides the utilities to write to a GZip file. PluginLogFilePrinter Prints log messages to the file specified by the name. PluginSubLogPrinter Prints log messages to the file specified by the name."
},
- "api/IPA.Config.Stores.Converters.CollectionConverter-2.html": {
- "href": "api/IPA.Config.Stores.Converters.CollectionConverter-2.html",
- "title": "Class CollectionConverter",
- "keywords": "Class CollectionConverter A base class for all ICollection type converters, providing most of the functionality. Inheritance Object ValueConverter CollectionConverter CollectionConverter IListConverter ISetConverter ListConverter Implements IValueConverter Inherited Members ValueConverter.IValueConverter.ToValue(Object, Object) ValueConverter.IValueConverter.FromValue(Value, Object) ValueConverter.IValueConverter.Type Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Config.Stores.Converters Assembly : IPA.Loader.dll Syntax public class CollectionConverter : ValueConverter, IValueConverter where TCollection : ICollection Type Parameters Name Description T the type of the items in the collection TCollection the instantiated type of collection Constructors | Improve this Doc View Source CollectionConverter() Creates a CollectionConverter using the default converter for the element type. Equivalent to calling CollectionConverter(ValueConverter) with Default . Declaration public CollectionConverter() See Also CollectionConverter(ValueConverter) | Improve this Doc View Source CollectionConverter(ValueConverter) Creates a CollectionConverter using the specified underlying converter. Declaration public CollectionConverter(ValueConverter underlying) Parameters Type Name Description ValueConverter underlying the ValueConverter to use to convert the values Properties | Improve this Doc View Source BaseConverter Gets the converter for the collection's value type. Declaration protected ValueConverter BaseConverter { get; } Property Value Type Description ValueConverter Methods | Improve this Doc View Source Create(Int32, Object) Creates a collection of type TCollection using the size and parent . Declaration protected virtual TCollection Create(int size, object parent) Parameters Type Name Description Int32 size the initial size of the collecion Object parent the object that will own the new collection Returns Type Description TCollection a new instance of TCollection See Also FromValue ( Value , Object ) | Improve this Doc View Source FromValue(Value, Object) Deserializes a List in value into a new TCollection owned by parent . Declaration public override TCollection FromValue(Value value, object parent) Parameters Type Name Description Value value the List to convert to a TCollection Object parent the object that will own the resulting TCollection Returns Type Description TCollection a new TCollection holding the deserialized content of value Overrides IPA.Config.Stores.ValueConverter.FromValue(IPA.Config.Data.Value, System.Object) See Also FromValue ( Value , Object ) | Improve this Doc View Source PopulateFromValue(TCollection, List, Object) Populates the colleciton col with the deserialized values from list with the parent parent . Declaration protected void PopulateFromValue(TCollection col, List list, object parent) Parameters Type Name Description TCollection col the collection to populate List list the values to populate it with Object parent the object that will own the new objects See Also FromValue ( Value , Object ) | Improve this Doc View Source ToValue(TCollection, Object) Serializes a TCollection into a List . Declaration public override Value ToValue(TCollection obj, object parent) Parameters Type Name Description TCollection obj the TCollection to serialize Object parent the object owning obj Returns Type Description Value the List that obj was serialized into Overrides IPA.Config.Stores.ValueConverter.ToValue(TCollection, System.Object) See Also ToValue (T, Object ) Implements IValueConverter Extension Methods ReflectionUtil.SetField(T, String, U) ReflectionUtil.GetField(T, String) ReflectionUtil.SetProperty(T, String, U) ReflectionUtil.GetProperty(T, String) ReflectionUtil.InvokeMethod(T, String, Object[])"
+ "api/IPA.Logging.Printers.PluginSubLogPrinter.html": {
+ "href": "api/IPA.Logging.Printers.PluginSubLogPrinter.html",
+ "title": "Class PluginSubLogPrinter",
+ "keywords": "Class PluginSubLogPrinter Prints log messages to the file specified by the name. Inheritance Object LogPrinter GZFilePrinter PluginSubLogPrinter Implements IDisposable Inherited Members GZFilePrinter.FileWriter GZFilePrinter.StartPrint() GZFilePrinter.EndPrint() GZFilePrinter.Dispose() GZFilePrinter.Dispose(Boolean) Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Logging.Printers Assembly : IPA.Loader.dll Syntax public class PluginSubLogPrinter : GZFilePrinter, IDisposable Constructors | Improve this Doc View Source PluginSubLogPrinter(String, String) Creates a new printer with the given name. Declaration public PluginSubLogPrinter(string mainname, string name) Parameters Type Name Description String mainname the name of the main logger String name the name of the logger Properties | Improve this Doc View Source Filter Provides a filter for this specific printer. Declaration public override Logger.LogLevel Filter { get; set; } Property Value Type Description Logger.LogLevel the filter for this printer Overrides LogPrinter.Filter Methods | Improve this Doc View Source GetFileInfo() Gets the FileInfo for the target file. Declaration protected override FileInfo GetFileInfo() Returns Type Description FileInfo the file to write to Overrides GZFilePrinter.GetFileInfo() | Improve this Doc View Source Print(Logger.Level, DateTime, String, String) Prints an entry to the associated file. Declaration public override void Print(Logger.Level level, DateTime time, string logName, string message) Parameters Type Name Description Logger.Level level the Logger.Level of the message DateTime time the DateTime the message was recorded at String logName the name of the log that sent the message String message the message to print Overrides LogPrinter.Print(Logger.Level, DateTime, String, String) Implements System.IDisposable Extension Methods ReflectionUtil.SetField(T, String, U) ReflectionUtil.GetField(T, String) ReflectionUtil.SetProperty(T, String, U) ReflectionUtil.GetProperty(T, String) ReflectionUtil.InvokeMethod(T, String, Object[])"
},
- "api/IPA.Config.Stores.Attributes.UseConverterAttribute.html": {
- "href": "api/IPA.Config.Stores.Attributes.UseConverterAttribute.html",
- "title": "Class UseConverterAttribute",
- "keywords": "Class UseConverterAttribute Indicates that a given field or property in an object being wrapped by Generated(Config, Boolean) should be serialized and deserialized using the provided converter instead of the default mechanism. Inheritance Object Attribute UseConverterAttribute Implements _Attribute Inherited Members Attribute.GetCustomAttributes(MemberInfo, Type) Attribute.GetCustomAttributes(MemberInfo, Type, Boolean) Attribute.GetCustomAttributes(MemberInfo) Attribute.GetCustomAttributes(MemberInfo, Boolean) Attribute.IsDefined(MemberInfo, Type) Attribute.IsDefined(MemberInfo, Type, Boolean) Attribute.GetCustomAttribute(MemberInfo, Type) Attribute.GetCustomAttribute(MemberInfo, Type, Boolean) Attribute.GetCustomAttributes(ParameterInfo) Attribute.GetCustomAttributes(ParameterInfo, Type) Attribute.GetCustomAttributes(ParameterInfo, Type, Boolean) Attribute.GetCustomAttributes(ParameterInfo, Boolean) Attribute.IsDefined(ParameterInfo, Type) Attribute.IsDefined(ParameterInfo, Type, Boolean) Attribute.GetCustomAttribute(ParameterInfo, Type) Attribute.GetCustomAttribute(ParameterInfo, Type, Boolean) Attribute.GetCustomAttributes(Module, Type) Attribute.GetCustomAttributes(Module) Attribute.GetCustomAttributes(Module, Boolean) Attribute.GetCustomAttributes(Module, Type, Boolean) Attribute.IsDefined(Module, Type) Attribute.IsDefined(Module, Type, Boolean) Attribute.GetCustomAttribute(Module, Type) Attribute.GetCustomAttribute(Module, Type, Boolean) Attribute.GetCustomAttributes(Assembly, Type) Attribute.GetCustomAttributes(Assembly, Type, Boolean) Attribute.GetCustomAttributes(Assembly) Attribute.GetCustomAttributes(Assembly, Boolean) Attribute.IsDefined(Assembly, Type) Attribute.IsDefined(Assembly, Type, Boolean) Attribute.GetCustomAttribute(Assembly, Type) Attribute.GetCustomAttribute(Assembly, Type, Boolean) Attribute.Equals(Object) Attribute.GetHashCode() Attribute.Match(Object) Attribute.IsDefaultAttribute() Attribute._Attribute.GetTypeInfoCount(UInt32) Attribute._Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) Attribute._Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) Attribute._Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) Attribute.TypeId Object.ToString() Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetType() Object.MemberwiseClone() Namespace : IPA.Config.Stores.Attributes Assembly : IPA.Loader.dll Syntax [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field, AllowMultiple = false, Inherited = true)] public sealed class UseConverterAttribute : Attribute, _Attribute Constructors | Improve this Doc View Source UseConverterAttribute(Type) Creates a new UseConverterAttribute with a given ConverterType . Declaration public UseConverterAttribute(Type converterType) Parameters Type Name Description Type converterType the type to assign to ConverterType Properties | Improve this Doc View Source ConverterTargetType Gets the target type of the converter if it is avaliable at instantiation time, otherwise null . Declaration public Type ConverterTargetType { get; } Property Value Type Description Type | Improve this Doc View Source ConverterType Gets the type of the converter to use. Declaration public Type ConverterType { get; } Property Value Type Description Type | Improve this Doc View Source IsGenericConverter Gets whether or not this converter is a generic ValueConverter . Declaration public bool IsGenericConverter { get; } Property Value Type Description Boolean Implements System.Runtime.InteropServices._Attribute Extension Methods ReflectionUtil.SetField(T, String, U) ReflectionUtil.GetField(T, String) ReflectionUtil.SetProperty(T, String, U) ReflectionUtil.GetProperty(T, String) ReflectionUtil.InvokeMethod(T, String, Object[])"
+ "api/IPA.Logging.Printers.PluginLogFilePrinter.html": {
+ "href": "api/IPA.Logging.Printers.PluginLogFilePrinter.html",
+ "title": "Class PluginLogFilePrinter",
+ "keywords": "Class PluginLogFilePrinter Prints log messages to the file specified by the name. Inheritance Object LogPrinter GZFilePrinter PluginLogFilePrinter Implements IDisposable Inherited Members GZFilePrinter.FileWriter GZFilePrinter.StartPrint() GZFilePrinter.EndPrint() GZFilePrinter.Dispose() GZFilePrinter.Dispose(Boolean) Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Logging.Printers Assembly : IPA.Loader.dll Syntax public class PluginLogFilePrinter : GZFilePrinter, IDisposable Constructors | Improve this Doc View Source PluginLogFilePrinter(String) Creates a new printer with the given name. Declaration public PluginLogFilePrinter(string name) Parameters Type Name Description String name the name of the logger Properties | Improve this Doc View Source Filter Provides a filter for this specific printer. Declaration public override Logger.LogLevel Filter { get; set; } Property Value Type Description Logger.LogLevel the filter level for this printer Overrides LogPrinter.Filter Methods | Improve this Doc View Source GetFileInfo() Gets the FileInfo for the target file. Declaration protected override FileInfo GetFileInfo() Returns Type Description FileInfo the file to write to Overrides GZFilePrinter.GetFileInfo() | Improve this Doc View Source Print(Logger.Level, DateTime, String, String) Prints an entry to the associated file. Declaration public override void Print(Logger.Level level, DateTime time, string logName, string message) Parameters Type Name Description Logger.Level level the Logger.Level of the message DateTime time the DateTime the message was recorded at String logName the name of the log that sent the message String message the message to print Overrides LogPrinter.Print(Logger.Level, DateTime, String, String) Implements System.IDisposable Extension Methods ReflectionUtil.SetField(T, String, U) ReflectionUtil.GetField(T, String) ReflectionUtil.SetProperty(T, String, U) ReflectionUtil.GetProperty(T, String) ReflectionUtil.InvokeMethod(T, String, Object[])"
},
- "api/IPA.Config.Stores.Attributes.SerializedNameAttribute.html": {
- "href": "api/IPA.Config.Stores.Attributes.SerializedNameAttribute.html",
- "title": "Class SerializedNameAttribute",
- "keywords": "Class SerializedNameAttribute Specifies a name for the serialized field or property in an object being wrapped by Generated(Config, Boolean) that is different from the member name itself. Inheritance Object Attribute SerializedNameAttribute Implements _Attribute Inherited Members Attribute.GetCustomAttributes(MemberInfo, Type) Attribute.GetCustomAttributes(MemberInfo, Type, Boolean) Attribute.GetCustomAttributes(MemberInfo) Attribute.GetCustomAttributes(MemberInfo, Boolean) Attribute.IsDefined(MemberInfo, Type) Attribute.IsDefined(MemberInfo, Type, Boolean) Attribute.GetCustomAttribute(MemberInfo, Type) Attribute.GetCustomAttribute(MemberInfo, Type, Boolean) Attribute.GetCustomAttributes(ParameterInfo) Attribute.GetCustomAttributes(ParameterInfo, Type) Attribute.GetCustomAttributes(ParameterInfo, Type, Boolean) Attribute.GetCustomAttributes(ParameterInfo, Boolean) Attribute.IsDefined(ParameterInfo, Type) Attribute.IsDefined(ParameterInfo, Type, Boolean) Attribute.GetCustomAttribute(ParameterInfo, Type) Attribute.GetCustomAttribute(ParameterInfo, Type, Boolean) Attribute.GetCustomAttributes(Module, Type) Attribute.GetCustomAttributes(Module) Attribute.GetCustomAttributes(Module, Boolean) Attribute.GetCustomAttributes(Module, Type, Boolean) Attribute.IsDefined(Module, Type) Attribute.IsDefined(Module, Type, Boolean) Attribute.GetCustomAttribute(Module, Type) Attribute.GetCustomAttribute(Module, Type, Boolean) Attribute.GetCustomAttributes(Assembly, Type) Attribute.GetCustomAttributes(Assembly, Type, Boolean) Attribute.GetCustomAttributes(Assembly) Attribute.GetCustomAttributes(Assembly, Boolean) Attribute.IsDefined(Assembly, Type) Attribute.IsDefined(Assembly, Type, Boolean) Attribute.GetCustomAttribute(Assembly, Type) Attribute.GetCustomAttribute(Assembly, Type, Boolean) Attribute.Equals(Object) Attribute.GetHashCode() Attribute.Match(Object) Attribute.IsDefaultAttribute() Attribute._Attribute.GetTypeInfoCount(UInt32) Attribute._Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) Attribute._Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) Attribute._Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) Attribute.TypeId Object.ToString() Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetType() Object.MemberwiseClone() Namespace : IPA.Config.Stores.Attributes Assembly : IPA.Loader.dll Syntax [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field, AllowMultiple = false, Inherited = true)] public sealed class SerializedNameAttribute : Attribute, _Attribute Examples When serializing the following object, we might get the JSON that follows. public class PluginConfig { public virtual bool BooleanField { get; set; } = true; } { \"BooleanField\": true } However, if we were to add a SerializedNameAttribute to that field, we would get the following. public class PluginConfig { [SerializedName(\"bool\")] public virtual bool BooleanField { get; set; } = true; } { \"bool\": true } Constructors | Improve this Doc View Source SerializedNameAttribute(String) Creates a new SerializedNameAttribute with the given Name . Declaration public SerializedNameAttribute(string name) Parameters Type Name Description String name the value to assign to Name Properties | Improve this Doc View Source Name Gets the name to replace the member name with. Declaration public string Name { get; } Property Value Type Description String Implements System.Runtime.InteropServices._Attribute Extension Methods ReflectionUtil.SetField(T, String, U) ReflectionUtil.GetField(T, String) ReflectionUtil.SetProperty(T, String, U) ReflectionUtil.GetProperty(T, String) ReflectionUtil.InvokeMethod(T, String, Object[])"
+ "api/IPA.Logging.Printers.GZFilePrinter.html": {
+ "href": "api/IPA.Logging.Printers.GZFilePrinter.html",
+ "title": "Class GZFilePrinter",
+ "keywords": "Class GZFilePrinter A LogPrinter abstract class that provides the utilities to write to a GZip file. Inheritance Object LogPrinter GZFilePrinter GlobalLogFilePrinter PluginLogFilePrinter PluginSubLogPrinter Implements IDisposable Inherited Members LogPrinter.Filter LogPrinter.Print(Logger.Level, DateTime, String, String) Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Logging.Printers Assembly : IPA.Loader.dll Syntax public abstract class GZFilePrinter : LogPrinter, IDisposable Fields | Improve this Doc View Source FileWriter The StreamWriter that writes to the GZip file. Declaration protected StreamWriter FileWriter Field Value Type Description StreamWriter the writer to the underlying filestream Methods | Improve this Doc View Source Dispose() Declaration public void Dispose() | Improve this Doc View Source Dispose(Boolean) Disposes the file printer. Declaration protected virtual void Dispose(bool disposing) Parameters Type Name Description Boolean disposing does nothing | Improve this Doc View Source EndPrint() Called at the end of any print session. Declaration public override sealed void EndPrint() Overrides LogPrinter.EndPrint() | Improve this Doc View Source GetFileInfo() Gets the FileInfo for the file to write to. Declaration protected abstract FileInfo GetFileInfo() Returns Type Description FileInfo the file to write to | Improve this Doc View Source StartPrint() Called at the start of any print session. Declaration public override sealed void StartPrint() Overrides LogPrinter.StartPrint() Implements System.IDisposable Extension Methods ReflectionUtil.SetField(T, String, U) ReflectionUtil.GetField(T, String) ReflectionUtil.SetProperty(T, String, U) ReflectionUtil.GetProperty(T, String) ReflectionUtil.InvokeMethod(T, String, Object[])"
},
- "api/IPA.Config.Stores.Attributes.IgnoreAttribute.html": {
- "href": "api/IPA.Config.Stores.Attributes.IgnoreAttribute.html",
- "title": "Class IgnoreAttribute",
- "keywords": "Class IgnoreAttribute Causes a field or property in an object being wrapped by Generated(Config, Boolean) to be ignored during serialization and deserialization. Inheritance Object Attribute IgnoreAttribute Implements _Attribute Inherited Members Attribute.GetCustomAttributes(MemberInfo, Type) Attribute.GetCustomAttributes(MemberInfo, Type, Boolean) Attribute.GetCustomAttributes(MemberInfo) Attribute.GetCustomAttributes(MemberInfo, Boolean) Attribute.IsDefined(MemberInfo, Type) Attribute.IsDefined(MemberInfo, Type, Boolean) Attribute.GetCustomAttribute(MemberInfo, Type) Attribute.GetCustomAttribute(MemberInfo, Type, Boolean) Attribute.GetCustomAttributes(ParameterInfo) Attribute.GetCustomAttributes(ParameterInfo, Type) Attribute.GetCustomAttributes(ParameterInfo, Type, Boolean) Attribute.GetCustomAttributes(ParameterInfo, Boolean) Attribute.IsDefined(ParameterInfo, Type) Attribute.IsDefined(ParameterInfo, Type, Boolean) Attribute.GetCustomAttribute(ParameterInfo, Type) Attribute.GetCustomAttribute(ParameterInfo, Type, Boolean) Attribute.GetCustomAttributes(Module, Type) Attribute.GetCustomAttributes(Module) Attribute.GetCustomAttributes(Module, Boolean) Attribute.GetCustomAttributes(Module, Type, Boolean) Attribute.IsDefined(Module, Type) Attribute.IsDefined(Module, Type, Boolean) Attribute.GetCustomAttribute(Module, Type) Attribute.GetCustomAttribute(Module, Type, Boolean) Attribute.GetCustomAttributes(Assembly, Type) Attribute.GetCustomAttributes(Assembly, Type, Boolean) Attribute.GetCustomAttributes(Assembly) Attribute.GetCustomAttributes(Assembly, Boolean) Attribute.IsDefined(Assembly, Type) Attribute.IsDefined(Assembly, Type, Boolean) Attribute.GetCustomAttribute(Assembly, Type) Attribute.GetCustomAttribute(Assembly, Type, Boolean) Attribute.Equals(Object) Attribute.GetHashCode() Attribute.Match(Object) Attribute.IsDefaultAttribute() Attribute._Attribute.GetTypeInfoCount(UInt32) Attribute._Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) Attribute._Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) Attribute._Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) Attribute.TypeId Object.ToString() Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetType() Object.MemberwiseClone() Namespace : IPA.Config.Stores.Attributes Assembly : IPA.Loader.dll Syntax [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field, AllowMultiple = false, Inherited = true)] public sealed class IgnoreAttribute : Attribute, _Attribute Implements System.Runtime.InteropServices._Attribute Extension Methods ReflectionUtil.SetField(T, String, U) ReflectionUtil.GetField(T, String) ReflectionUtil.SetProperty(T, String, U) ReflectionUtil.GetProperty