{
"api/IPA.Utilities.FieldAccessor-2.html": {
"href": "api/IPA.Utilities.FieldAccessor-2.html",
"title": "Class FieldAccessor",
"keywords": "Class FieldAccessor A type containing utilities for accessing non-public fields of objects. Inheritance Object FieldAccessor Inherited Members 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 static class FieldAccessor Type Parameters Name Description T the type that the fields are on U the type of the field to access Methods | Improve this Doc View Source Access(ref T, String) Accesses a field for an object by name. Declaration public static U Access(ref T obj, string name) Parameters Type Name Description T obj the object to access the field of String name the name of the field to access Returns Type Description U a reference to the object at the field Exceptions Type Condition MissingFieldException if the field does not exist on T See Also GetAccessor(String) | Improve this Doc View Source Get(T, String) Gets the value of a field of an object by name. Declaration public static U Get(T obj, string name) Parameters Type Name Description T obj the object to access the field of String name the name of the field to access Returns Type Description U the value of the field Exceptions Type Condition MissingFieldException if the field does not exist on T See Also Get(ref T, String) Access(ref T, String) GetAccessor(String) | Improve this Doc View Source Get(ref T, String) Gets the value of a field of an object by name. Declaration public static U Get(ref T obj, string name) Parameters Type Name Description T obj the object to access the field of String name the name of the field to access Returns Type Description U the value of the field Remarks The only good reason to use this over Get(T, String) is when you are working with a value type, as it prevents a copy. Exceptions Type Condition MissingFieldException if the field does not exist on T See Also Get(T, String) Access(ref T, String) GetAccessor(String) | Improve this Doc View Source GetAccessor(String) Gets an FieldAccessor.Accessor for the field named name on T . Declaration public static FieldAccessor.Accessor GetAccessor(string name) Parameters Type Name Description String name the field name Returns Type Description FieldAccessor.Accessor <> an accessor for the field Exceptions Type Condition MissingFieldException if the field does not exist on T | Improve this Doc View Source Set(T, String, U) Sets the value of a field for an object by name. Declaration public static void Set(T obj, string name, U value) Parameters Type Name Description T obj the object to set the field of String name the name of the field U value the value to set it to Remarks This overload cannot be safely used for value types. Use Set(ref T, String, U) instead. Exceptions Type Condition MissingFieldException if the field does not exist on T See Also Set(ref T, String, U) Access(ref T, String) GetAccessor(String) | Improve this Doc View Source Set(ref T, String, U) Sets the value of a field for an object by name. Declaration public static void Set(ref T obj, string name, U value) Parameters Type Name Description T obj the object to set the field of String name the name of the field U value the value to set it to Remarks This overload must be used for value types. Exceptions Type Condition MissingFieldException if the field does not exist on T See Also Set(T, String, U) Access(ref T, String) GetAccessor(String) See Also PropertyAccessor "
},
"api/IPA.Utilities.FieldAccessor-2.Accessor.html": {
"href": "api/IPA.Utilities.FieldAccessor-2.Accessor.html",
"title": "Delegate FieldAccessor.Accessor",
"keywords": "Delegate FieldAccessor.Accessor A delegate for a field accessor taking a T ref and returning a U ref. Namespace : IPA.Utilities Assembly : IPA.Loader.dll Syntax public delegate U Accessor(ref T obj); Parameters Type Name Description T obj the object to access the field of Returns Type Description U a reference to the field's value 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.Extensions.html": {
"href": "api/IPA.Utilities.Extensions.html",
"title": "Class Extensions",
"keywords": "Class Extensions A class providing various extension methods. Inheritance Object Extensions Inherited Members 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 static class Extensions Methods | Improve this Doc View Source GetDefault(Type) Gets the default value for a given Type . Declaration public static object GetDefault(this Type type) Parameters Type Name Description Type type the Type to get the default value for Returns Type Description Object the default value of type | Improve this Doc View Source IsSubPathOf(String, String) Returns true if path starts with the path baseDirPath . The comparison is case-insensitive, handles / and \\ slashes as folder separators and only matches if the base dir folder name is matched exactly (\"c:\\foobar\\file.txt\" is not a sub path of \"c:\\foo\"). Declaration public static bool IsSubPathOf(this string path, string baseDirPath) Parameters Type Name Description String path String baseDirPath Returns Type Description Boolean | Improve this Doc View Source Right(String, Int32) Gets the rightmost length characters from a string. Declaration public static string Right(this string value, int length) Parameters Type Name Description String value The string to retrieve the substring from. Int32 length The number of characters to retrieve. Returns Type Description String The substring. | Improve this Doc View Source Unwrap(Nullable) Unwraps a Nullable where T is Boolean such that if the value is null, it gives false . Declaration public static bool Unwrap(this bool? self) Parameters Type Name Description Nullable < Boolean > self the bool? to unwrap Returns Type Description Boolean the unwrapped value, or false if it was null | Improve this Doc View Source WithEnding(String, String) Returns str with the minimal concatenation of ending (starting from end) that results in satisfying .EndsWith(ending). Declaration public static string WithEnding(this string str, string ending) Parameters Type Name Description String str String ending Returns Type Description String Examples \"hel\".WithEnding(\"llo\") returns \"hello\", which is the result of \"hel\" + \"lo\"."
},
"api/IPA.Utilities.Async.Synchronization.SemaphoreLocker.html": {
"href": "api/IPA.Utilities.Async.Synchronization.SemaphoreLocker.html",
"title": "Struct Synchronization.SemaphoreLocker",
"keywords": "Struct Synchronization.SemaphoreLocker A locker for a Semaphore that automatically releases when it is disposed. Create this with Lock(Semaphore) . Implements IDisposable Inherited Members ValueType.Equals(Object) ValueType.GetHashCode() ValueType.ToString() Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetType() Namespace : IPA.Utilities.Async Assembly : IPA.Loader.dll Syntax public struct SemaphoreLocker : IDisposable Explicit Interface Implementations | Improve this Doc View Source IDisposable.Dispose() Declaration void IDisposable.Dispose() 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[]) See Also Synchronization Lock(Semaphore)"
},
"api/IPA.Utilities.Async.Synchronization.ReaderWriterLockSlimWriteLocker.html": {
"href": "api/IPA.Utilities.Async.Synchronization.ReaderWriterLockSlimWriteLocker.html",
"title": "Struct Synchronization.ReaderWriterLockSlimWriteLocker",
"keywords": "Struct Synchronization.ReaderWriterLockSlimWriteLocker A locker for a write lock on a ReaderWriterLockSlim that automatically releases when it is disposed. Create this with LockWrite(ReaderWriterLockSlim) . Implements IDisposable Inherited Members ValueType.Equals(Object) ValueType.GetHashCode() ValueType.ToString() Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetType() Namespace : IPA.Utilities.Async Assembly : IPA.Loader.dll Syntax public struct ReaderWriterLockSlimWriteLocker : IDisposable Explicit Interface Implementations | Improve this Doc View Source IDisposable.Dispose() Declaration void IDisposable.Dispose() 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[]) See Also Synchronization LockWrite(ReaderWriterLockSlim)"
},
"api/IPA.Utilities.Async.Synchronization.ReaderWriterLockSlimUpgradableReadLocker.html": {
"href": "api/IPA.Utilities.Async.Synchronization.ReaderWriterLockSlimUpgradableReadLocker.html",
"title": "Struct Synchronization.ReaderWriterLockSlimUpgradableReadLocker",
"keywords": "Struct Synchronization.ReaderWriterLockSlimUpgradableReadLocker A locker for an upgradable read lock on a ReaderWriterLockSlim that automatically releases when it is disposed. Create this with LockReadUpgradable(ReaderWriterLockSlim) . Implements IDisposable Inherited Members ValueType.Equals(Object) ValueType.GetHashCode() ValueType.ToString() Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetType() Namespace : IPA.Utilities.Async Assembly : IPA.Loader.dll Syntax public struct ReaderWriterLockSlimUpgradableReadLocker : IDisposable Methods | Improve this Doc View Source Upgrade() Creates a locker for a write lock on the ReaderWriterLockSlim associated with this locker, upgrading the current thread's lock. Declaration public Synchronization.ReaderWriterLockSlimWriteLocker Upgrade() Returns Type Description Synchronization.ReaderWriterLockSlimWriteLocker a locker for the new write lock See Also Synchronization Explicit Interface Implementations | Improve this Doc View Source IDisposable.Dispose() Declaration void IDisposable.Dispose() 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[]) See Also Synchronization LockReadUpgradable(ReaderWriterLockSlim)"
},
"api/IPA.Utilities.Async.Synchronization.ReaderWriterLockSlimReadLocker.html": {
"href": "api/IPA.Utilities.Async.Synchronization.ReaderWriterLockSlimReadLocker.html",
"title": "Struct Synchronization.ReaderWriterLockSlimReadLocker",
"keywords": "Struct Synchronization.ReaderWriterLockSlimReadLocker A locker for a read lock on a ReaderWriterLockSlim that automatically releases when it is disposed. Create this with LockRead(ReaderWriterLockSlim) . Implements IDisposable Inherited Members ValueType.Equals(Object) ValueType.GetHashCode() ValueType.ToString() Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetType() Namespace : IPA.Utilities.Async Assembly : IPA.Loader.dll Syntax public struct ReaderWriterLockSlimReadLocker : IDisposable Explicit Interface Implementations | Improve this Doc View Source IDisposable.Dispose() Declaration void IDisposable.Dispose() 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[]) See Also Synchronization LockRead(ReaderWriterLockSlim)"
},
"api/IPA.Utilities.Async.Synchronization.MutexLocker.html": {
"href": "api/IPA.Utilities.Async.Synchronization.MutexLocker.html",
"title": "Struct Synchronization.MutexLocker",
"keywords": "Struct Synchronization.MutexLocker A locker for a Mutex that automatically releases when it is disposed. Create this with Lock(Mutex) . Implements IDisposable Inherited Members ValueType.Equals(Object) ValueType.GetHashCode() ValueType.ToString() Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetType() Namespace : IPA.Utilities.Async Assembly : IPA.Loader.dll Syntax public struct MutexLocker : IDisposable Explicit Interface Implementations | Improve this Doc View Source IDisposable.Dispose() Declaration void IDisposable.Dispose() 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[]) See Also Synchronization Lock(Mutex)"
},
"api/IPA.Utilities.Async.SingleThreadTaskScheduler.html": {
"href": "api/IPA.Utilities.Async.SingleThreadTaskScheduler.html",
"title": "Class SingleThreadTaskScheduler",
"keywords": "Class SingleThreadTaskScheduler A single-threaded task scheduler that runs all of its tasks on the same thread. Inheritance Object TaskScheduler SingleThreadTaskScheduler Implements IDisposable Inherited Members TaskScheduler.TryDequeue(Task) TaskScheduler.FromCurrentSynchronizationContext() TaskScheduler.TryExecuteTask(Task) TaskScheduler.MaximumConcurrencyLevel TaskScheduler.Default TaskScheduler.Current TaskScheduler.Id TaskScheduler.UnobservedTaskException Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Utilities.Async Assembly : IPA.Loader.dll Syntax public class SingleThreadTaskScheduler : TaskScheduler, IDisposable Properties | Improve this Doc View Source IsRunning Gets whether or not the underlying thread has been started. Declaration public bool IsRunning { get; } Property Value Type Description Boolean Exceptions Type Condition ObjectDisposedException Thrown if this object has already been disposed. Methods | Improve this Doc View Source Dispose() Disposes this object. This puts the object into an unusable state. Declaration public void Dispose() | Improve this Doc View Source Dispose(Boolean) Disposes this object. Declaration protected virtual void Dispose(bool disposing) Parameters Type Name Description Boolean disposing whether or not to dispose managed objects | Improve this Doc View Source Exit() Terminates the runner thread, and waits for the currently running task to complete. Declaration public IEnumerable Exit() Returns Type Description IEnumerable < Task > an IEnumerable of Task s that did not execute Remarks After this method returns, this object has been disposed and is no longer in a valid state. Exceptions Type Condition ObjectDisposedException Thrown if this object has already been disposed. | Improve this Doc View Source GetScheduledTasks() Throws a NotSupportedException . Declaration protected override IEnumerable GetScheduledTasks() Returns Type Description IEnumerable < Task > nothing Overrides TaskScheduler.GetScheduledTasks() Exceptions Type Condition NotSupportedException Always. | Improve this Doc View Source Join() Waits for the runner thread to complete all tasks in the queue, then exits. Declaration public void Join() Remarks After this method returns, this object has been disposed and is no longer in a valid state. Exceptions Type Condition ObjectDisposedException Thrown if this object has already been disposed. | Improve this Doc View Source QueueTask(Task) Queues a given Task to this scheduler. The Task must> be scheduled for this TaskScheduler by the runtime. Declaration protected override void QueueTask(Task task) Parameters Type Name Description Task task the Task to queue Overrides TaskScheduler.QueueTask(Task) Exceptions Type Condition ObjectDisposedException Thrown if this object has already been disposed. | Improve this Doc View Source Start() Starts the thread that executes tasks scheduled with this TaskScheduler Declaration public void Start() Exceptions Type Condition ObjectDisposedException Thrown if this object has already been disposed. | Improve this Doc View Source TryExecuteTaskInline(Task, Boolean) Rejects any attempts to execute a task inline. Declaration protected override bool TryExecuteTaskInline(Task task, bool taskWasPreviouslyQueued) Parameters Type Name Description Task task the task to attempt to execute Boolean taskWasPreviouslyQueued whether the task was previously queued to this scheduler Returns Type Description Boolean false Overrides TaskScheduler.TryExecuteTaskInline(Task, Boolean) Remarks This task scheduler always runs its tasks on the thread that it manages, therefore it doesn't make sense to run it inline. Exceptions Type Condition ObjectDisposedException Thrown if this object has already been disposed. 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.Utilities.Async.Coroutines.html": {
"href": "api/IPA.Utilities.Async.Coroutines.html",
"title": "Class Coroutines",
"keywords": "Class Coroutines A class providing coroutine helpers. Inheritance Object Coroutines Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Utilities.Async Assembly : IPA.Loader.dll Syntax public static class Coroutines Methods | Improve this Doc View Source WaitForTask(Task) Stalls the coroutine until task completes, faults, or is canceled. Declaration public static IEnumerator WaitForTask(Task task) Parameters Type Name Description Task task the Task to wait for Returns Type Description IEnumerator a coroutine waiting for the given task"
},
"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.OnStartAttribute.html": {
"href": "api/IPA.OnStartAttribute.html",
"title": "Class OnStartAttribute",
"keywords": "Class OnStartAttribute Indicates that the target method should be called when the game starts. Inheritance Object Attribute OnStartAttribute 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 OnStartAttribute : Attribute, _Attribute, IEdgeLifecycleAttribute Remarks This attribute is interchangable with OnEnableAttribute , 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 OnEnableAttribute"
},
"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.Logging.StandardLogger.html": {
"href": "api/IPA.Logging.StandardLogger.html",
"title": "Class StandardLogger",
"keywords": "Class StandardLogger The default (and standard) Logger implementation. Inheritance Object Logger StandardLogger Inherited Members Logger.LogFormat Logger.Log(Logger.Level, Exception) Logger.Trace(String) Logger.Trace(Exception) Logger.Debug(Exception) Logger.Info(String) Logger.Info(Exception) Logger.Notice(String) Logger.Notice(Exception) Logger.Warn(String) Logger.Warn(Exception) Logger.Error(String) Logger.Error(Exception) Logger.Critical(String) Logger.Critical(Exception) Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Logging Assembly : IPA.Loader.dll Syntax public class StandardLogger : Logger Remarks StandardLogger uses a multi-threaded approach to logging. All actual I/O is done on another thread, where all messaged are guaranteed to be logged in the order they appeared. It is up to the printers to format them. This logger supports child loggers. Use GetChildLogger(Logger, String) to safely get a child. The modification of printers on a parent are reflected down the chain. Properties | Improve this Doc View Source ConsoleWriter The TextWriter for writing directly to the console window, or stdout if no window open. Declaration public static TextWriter ConsoleWriter { get; } Property Value Type Description TextWriter a TextWriter for the current primary text output | Improve this Doc View Source PrintFilter All levels defined by this filter will be sent to loggers. All others will be ignored. Declaration public static Logger.LogLevel PrintFilter { get; } Property Value Type Description Logger.LogLevel the global filter level Methods | Improve this Doc View Source AddPrinter(LogPrinter) Adds a log printer to the logger. Declaration public void AddPrinter(LogPrinter printer) Parameters Type Name Description LogPrinter printer the printer to add | Improve this Doc View Source Debug(String) An override to Debug(String) which shows the method that called it. Declaration public override void Debug(string message) Parameters Type Name Description String message the message to log Overrides Logger.Debug(String) See Also Log ( Logger.Level , String ) | Improve this Doc View Source Log(Logger.Level, String) Logs a specific message at a given level. Declaration public override void Log(Logger.Level level, string message) Parameters Type Name Description Logger.Level level the message level String message the message to log Overrides Logger.Log(Logger.Level, String) Extension Methods LoggerExtensions.GetChildLogger(Logger, String) 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.Loader.PluginManager.PluginEnableDelegate.html": {
"href": "api/IPA.Loader.PluginManager.PluginEnableDelegate.html",
"title": "Delegate PluginManager.PluginEnableDelegate",
"keywords": "Delegate PluginManager.PluginEnableDelegate An invoker for the PluginEnabled event. Namespace : IPA.Loader Assembly : IPA.Loader.dll Syntax public delegate void PluginEnableDelegate(PluginMetadata plugin, bool needsRestart); Parameters Type Name Description PluginMetadata plugin the plugin that was enabled Boolean needsRestart whether it needs a restart to take effect 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.Loader.PluginManager.PluginDisableDelegate.html": {
"href": "api/IPA.Loader.PluginManager.PluginDisableDelegate.html",
"title": "Delegate PluginManager.PluginDisableDelegate",
"keywords": "Delegate PluginManager.PluginDisableDelegate An invoker for the PluginDisabled event. Namespace : IPA.Loader Assembly : IPA.Loader.dll Syntax public delegate void PluginDisableDelegate(PluginMetadata plugin, bool needsRestart); Parameters Type Name Description PluginMetadata plugin the plugin that was disabled Boolean needsRestart whether it needs a restart to take effect 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.Loader.PluginInitInjector.html": {
"href": "api/IPA.Loader.PluginInitInjector.html",
"title": "Class PluginInitInjector",
"keywords": "Class PluginInitInjector The type that handles value injecting into a plugin's initialization methods. Inheritance Object PluginInitInjector Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Loader Assembly : IPA.Loader.dll Syntax public static class PluginInitInjector Remarks The default injectors and what they provide are shown in this table. Parameter Type Injected Value Logger A StandardLogger specialized for the plugin being injected PluginMetadata The PluginMetadata of the plugin being injected Config A Config object for the plugin being injected. These parameters may have Config.NameAttribute and Config.PreferAttribute to control how it is constructed. For all of the default injectors, only one of each will be generated, and any later parameters will recieve the same value as the first one. Methods | Improve this Doc View Source AddInjector(Type, PluginInitInjector.InjectParameter) Adds an injector to be used when calling future plugins' Init methods. Declaration public static void AddInjector(Type type, PluginInitInjector.InjectParameter injector) Parameters Type Name Description Type type the type of the parameter. PluginInitInjector.InjectParameter injector the function to call for injection."
},
"api/IPA.InitAttribute.html": {
"href": "api/IPA.InitAttribute.html",
"title": "Class InitAttribute",
"keywords": "Class InitAttribute Marks a method or a constructor as an inialization method. Inheritance Object Attribute InitAttribute 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.Constructor | AttributeTargets.Method, AllowMultiple = false, Inherited = false)] public sealed class InitAttribute : Attribute, _Attribute Remarks If more than one constructor is marked with this attribute, the one with the most parameters, whether or not they can be injected, will be used. Parameter injection is done with PluginInitInjector . 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 PluginInitInjector"
},
"api/IPA.Config.html": {
"href": "api/IPA.Config.html",
"title": "",
"keywords": "Classes Config An abstraction of a config file on disk, which handles synchronizing between a memory representation and the disk representation. Config.NameAttribute Specifies a preferred config name, instead of using the plugin's name. Config.PreferAttribute Specifies that a particular parameter is preferred to use a particular IConfigProvider . If it is not available, also specifies backups. If none are available, the default is used. ConfigProvider A wrapper for an IConfigProvider and the FileInfo to use with it. ModPrefs Allows to get and set preferences for your mod. Interfaces IConfigProvider An interface for configuration providers. IConfigStore A storage for a config structure. IModPrefs Allows to get and set preferences for your mod."
},
"api/IPA.Config.Stores.IValueConverter.html": {
"href": "api/IPA.Config.Stores.IValueConverter.html",
"title": "Interface IValueConverter",
"keywords": "Interface IValueConverter The base interface for a value converter for use by objects generated by Generated(Config, Boolean) . Namespace : IPA.Config.Stores Assembly : IPA.Loader.dll Syntax public interface IValueConverter Remarks The object returned from FromValue(Value, Object) , if fed into ToValue(Object, Object) , should return equivalent Value structures. Similarly, if the result of ToValue(Object, Object) is fed into FromValue(Value, Object) , the resulting object should be equivalent to the one passed to ToValue(Object, Object) . The parent parameter to ToValue(Object, Object) and FromValue(Value, Object) should be (ideally) the the top of the serialization tree, or some other generated object in that tree, rather than some arbitrary object in the middle that is not managed by the generatd config system. Converters do not need to perform null checks, as the serializer and deserializer will do that automatically. Properties | Improve this Doc View Source Type Gets the type that this IValueConverter handles. Declaration Type Type { get; } Property Value Type Description Type Methods | Improve this Doc View Source FromValue(Value, Object) Converts the given Value to the object type handled by this converter. Declaration object FromValue(Value value, object parent) Parameters Type Name Description Value value the Value to deserialize Object parent the object that will own the result Returns Type Description Object the deserialized object | Improve this Doc View Source ToValue(Object, Object) Converts the given object to a Value . Declaration Value ToValue(object obj, object parent) Parameters Type Name Description Object obj the object to convert Object parent the owning object of obj Returns Type Description Value a representation of obj as a Value structure 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.GeneratedStore.html": {
"href": "api/IPA.Config.Stores.GeneratedStore.html",
"title": "Class GeneratedStore",
"keywords": "Class GeneratedStore A class providing an extension for Config to make it easy to use generated config stores. Inheritance Object GeneratedStore 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 Assembly : IPA.Loader.dll Syntax public static class GeneratedStore Fields | Improve this Doc View Source AssemblyVisibilityTarget The name of the assembly that internals must be visible to to allow internal protection. Declaration public const string AssemblyVisibilityTarget = \"IPA.Config.Generated\" Field Value Type Description String Methods | Improve this Doc View Source Create() Creates a generated store outside of the context of the config system. Declaration public static T Create() where T : class Returns Type Description T a generated instance of T implementing functionality described by Generated(Config, Boolean) Type Parameters Name Description T the type to wrap Remarks See Generated(Config, Boolean) for more information about how it behaves. See Also Generated(Config, Boolean) | Improve this Doc View Source Generated(Config, Boolean) Creates a generated IConfigStore of type T , registers it to the Config object, and returns it. This also forces a synchronous config load via LoadSync() if loadSync is true . Declaration public static T Generated(this Config cfg, bool loadSync = true) where T : class Parameters Type Name Description Config cfg the Config to register to Boolean loadSync whether to synchronously load the content, or trigger an async load Returns Type Description T a generated instance of T as a special IConfigStore Type Parameters Name Description T the type to wrap Remarks T must be a public non- sealed class. It can also be internal, but in that case, then your assembly must have the following attribute to allow the generated code to reference it. [assembly: InternalsVisibleTo(IPA.Config.Stores.GeneratedStore.AssemblyVisibilityTarget)] Only fields and properties that are public or protected will be considered, and only properties where both the getter and setter are public or protected are considered. Any fields or properties with an IgnoreAttribute applied to them are also ignored. Having properties be virtual is not strictly necessary, however it allows the generated type to keep track of changes and lock around them so that the config will auto-save. All of the attributes in the IPA.Config.Stores.Attributes namespace are handled as described by them. If the T declares a public or protected, virtual method Changed() , then that method may be called to artificially signal to the runtime that the content of the object has changed. That method will also be called after the write locks are released when a property is set anywhere in the owning tree. This will only be called on the outermost generated object of the config structure, even if the change being signaled is somewhere deep into the tree. Similarly, T can declare a public or protected, virtual method OnReload() , which will be called on the filesystem reader thread after the object has been repopulated with new data values. It will be called after the write lock for this object is released. This will only be called on the outermost generated object of the config structure. Similarly, T can declare a public or protected, virtual method CopyFrom(ConfigType) (the first parameter is the type it is defined on), which may be called to copy the properties from another object of its type easily, and more importantly, as only one change. Its body will be executed after the values have been copied. Similarly, T can declare a public or protected, virtual method ChangeTransaction() returning IDisposable , which may be called to get an object representing a transactional change. This may be used to change a lot of properties at once without triggering a save multiple times. Ideally, this is used in a langword_csharp_using block or declaration. The IDisposable returned from your implementation will have its Dispose() called after Changed() is called, but before the write lock is released. Unless you have a very good reason to use the nested IDisposable , avoid it. If T is marked with NotifyPropertyChangesAttribute , the resulting object will implement INotifyPropertyChanged . Similarly, if T implements INotifyPropertyChanged , the resulting object will implement it and notify it too."
},
"api/IPA.Config.Stores.Converters.NullableConverter-2.html": {
"href": "api/IPA.Config.Stores.Converters.NullableConverter-2.html",
"title": "Class NullableConverter",
"keywords": "Class NullableConverter A converter for a Nullable that default-constructs a converter of type TConverter to use as the underlying converter. Use this in the UseConverterAttribute . Inheritance Object ValueConverter < Nullable > NullableConverter NullableConverter Implements IValueConverter Inherited Members NullableConverter.FromValue(Value, Object) NullableConverter.ToValue(Nullable, 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 NullableConverter : NullableConverter, IValueConverter where T : struct where TConverter : ValueConverter, new() Type Parameters Name Description T the underlying type of the Nullable TConverter the type to use as an underlying converter Constructors | Improve this Doc View Source NullableConverter() Creates a converter with a new TConverter as the underlying converter. Declaration public NullableConverter() See Also NullableConverter(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 NullableConverter "
},
"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.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(T, String) ReflectionUtil.InvokeMethod(T, String, Object[])"
},
"api/IPA.Config.ModPrefs.html": {
"href": "api/IPA.Config.ModPrefs.html",
"title": "Class ModPrefs",
"keywords": "Class ModPrefs Allows to get and set preferences for your mod. Inheritance Object ModPrefs Implements IModPrefs 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 [Obsolete(\"Uses IniFile, which uses 16 bit system calls. Use BS Utils INI system for now.\")] public class ModPrefs : IModPrefs Constructors | Improve this Doc View Source ModPrefs(PluginMetadata) Constructs a ModPrefs object for the provide plugin. Declaration public ModPrefs(PluginMetadata plugin) Parameters Type Name Description PluginMetadata plugin the plugin to get the preferences file for Methods | Improve this Doc View Source GetBool(String, String, Boolean, Boolean) Gets a bool from the ini. Declaration public static bool GetBool(string section, string name, bool defaultValue = false, bool autoSave = false) Parameters Type Name Description String section Section of the key. String name Name of the key. Boolean defaultValue Value that should be used when no value is found. Boolean autoSave Whether or not the default value should be written if no value is found. Returns Type Description Boolean | Improve this Doc View Source GetFloat(String, String, Single, Boolean) Gets a float from the ini. Declaration public static float GetFloat(string section, string name, float defaultValue = 0F, bool autoSave = false) Parameters Type Name Description String section Section of the key. String name Name of the key. Single defaultValue Value that should be used when no value is found. Boolean autoSave Whether or not the default value should be written if no value is found. Returns Type Description Single | Improve this Doc View Source GetInt(String, String, Int32, Boolean) Gets an int from the ini. Declaration public static int GetInt(string section, string name, int defaultValue = 0, bool autoSave = false) Parameters Type Name Description String section Section of the key. String name Name of the key. Int32 defaultValue Value that should be used when no value is found. Boolean autoSave Whether or not the default value should be written if no value is found. Returns Type Description Int32 | Improve this Doc View Source GetString(String, String, String, Boolean) Gets a string from the ini. Declaration public static string GetString(string section, string name, string defaultValue = \"\", bool autoSave = false) Parameters Type Name Description String section Section of the key. String name Name of the key. String defaultValue Value that should be used when no value is found. Boolean autoSave Whether or not the default value should be written if no value is found. Returns Type Description String | Improve this Doc View Source HasKey(String, String) Checks whether or not a key exists in the ini. Declaration public static bool HasKey(string section, string name) Parameters Type Name Description String section Section of the key. String name Name of the key. Returns Type Description Boolean | Improve this Doc View Source SetBool(String, String, Boolean) Sets a bool in the ini. Declaration public static void SetBool(string section, string name, bool value) Parameters Type Name Description String section Section of the key. String name Name of the key. Boolean value Value that should be written. | Improve this Doc View Source SetFloat(String, String, Single) Sets a float in the ini. Declaration public static void SetFloat(string section, string name, float value) Parameters Type Name Description String section Section of the key. String name Name of the key. Single value Value that should be written. | Improve this Doc View Source SetInt(String, String, Int32) Sets an int in the ini. Declaration public static void SetInt(string section, string name, int value) Parameters Type Name Description String section Section of the key. String name Name of the key. Int32 value Value that should be written. | Improve this Doc View Source SetString(String, String, String) Sets a string in the ini. Declaration public static void SetString(string section, string name, string value) Parameters Type Name Description String section Section of the key. String name Name of the key. String value Value that should be written. Explicit Interface Implementations | Improve this Doc View Source IModPrefs.GetBool(String, String, Boolean, Boolean) Declaration bool IModPrefs.GetBool(string section, string name, bool defaultValue, bool autoSave) Parameters Type Name Description String section String name Boolean defaultValue Boolean autoSave Returns Type Description Boolean | Improve this Doc View Source IModPrefs.GetFloat(String, String, Single, Boolean) Declaration float IModPrefs.GetFloat(string section, string name, float defaultValue, bool autoSave) Parameters Type Name Description String section String name Single defaultValue Boolean autoSave Returns Type Description Single | Improve this Doc View Source IModPrefs.GetInt(String, String, Int32, Boolean) Declaration int IModPrefs.GetInt(string section, string name, int defaultValue, bool autoSave) Parameters Type Name Description String section String name Int32 defaultValue Boolean autoSave Returns Type Description Int32 | Improve this Doc View Source IModPrefs.GetString(String, String, String, Boolean) Declaration string IModPrefs.GetString(string section, string name, string defaultValue, bool autoSave) Parameters Type Name Description String section String name String defaultValue Boolean autoSave Returns Type Description String | Improve this Doc View Source IModPrefs.HasKey(String, String) Declaration bool IModPrefs.HasKey(string section, string name) Parameters Type Name Description String section String name Returns Type Description Boolean | Improve this Doc View Source IModPrefs.SetBool(String, String, Boolean) Declaration void IModPrefs.SetBool(string section, string name, bool value) Parameters Type Name Description String section String name Boolean value | Improve this Doc View Source IModPrefs.SetFloat(String, String, Single) Declaration void IModPrefs.SetFloat(string section, string name, float value) Parameters Type Name Description String section String name Single value | Improve this Doc View Source IModPrefs.SetInt(String, String, Int32) Declaration void IModPrefs.SetInt(string section, string name, int value) Parameters Type Name Description String section String name Int32 value | Improve this Doc View Source IModPrefs.SetString(String, String, String) Declaration void IModPrefs.SetString(string section, string name, string value) Parameters Type Name Description String section String name String value Implements IModPrefs 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.IConfigProvider.html": {
"href": "api/IPA.Config.IConfigProvider.html",
"title": "Interface IConfigProvider",
"keywords": "Interface IConfigProvider An interface for configuration providers. Namespace : IPA.Config Assembly : IPA.Loader.dll Syntax public interface IConfigProvider Remarks Implementers must provide a default constructor. Do not assume that File will ever be set for a given object. Implementers are expected to preserve the typing of values passed to Store(Value, FileInfo) when returned from Load(FileInfo) . The only exceptions to this are the numeric types, Integer and FloatingPoint , since they can be coerced to each other with AsFloat() and AsInteger() respectively. The provider should however store and recover Integer with as much precision as is possible. For example, a JSON provider may decide to decode all numbers that have an integral value, even if they were originally FloatingPoint , as Integer . This is reasonable, as Integer is more precise, particularly with larger values, than FloatingPoint . Properties | Improve this Doc View Source Extension Gets the extension without a dot to use for files handled by this provider. Declaration string Extension { get; } Property Value Type Description String Remarks This must work immediately, and is used to generate the FileInfo used to set File . Methods | Improve this Doc View Source Load(FileInfo) Loads a Value from disk in whatever format this provider provides and returns it. Declaration Value Load(FileInfo file) Parameters Type Name Description FileInfo file the file to read from Returns Type Description Value the Value loaded | Improve this Doc View Source Store(Value, FileInfo) Stores the Value given to disk in the format specified. Declaration void Store(Value value, FileInfo file) Parameters Type Name Description Value value the Value to store FileInfo file the file to write to 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.Data.Value.html": {
"href": "api/IPA.Config.Data.Value.html",
"title": "Class Value",
"keywords": "Class Value A base value type for config data abstract representations, to be serialized with an IConfigProvider . If a Value is null , then that represents just that: a null in whatever serialization is being used. Also contains factory functions for all derived types. Inheritance Object Value Boolean FloatingPoint Integer List Map Text Inherited Members 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 abstract class Value Methods | Improve this Doc View Source Bool(Boolean) Creates a new Boolean wrapping a Boolean . Declaration public static Boolean Bool(bool val) Parameters Type Name Description Boolean val the value to wrap Returns Type Description Boolean a Boolean wrapping val See Also From(Boolean) | Improve this Doc View Source Float(Decimal) Creates a new FloatingPoint wrapping a Decimal . Declaration public static FloatingPoint Float(decimal val) Parameters Type Name Description Decimal val the value to wrap Returns Type Description FloatingPoint a FloatingPoint wrapping val See Also From(Decimal) | Improve this Doc View Source From(Boolean) Creates a new Value wrapping a Boolean . Declaration public static Boolean From(bool val) Parameters Type Name Description Boolean val the value to wrap Returns Type Description Boolean a Boolean wrapping val See Also Bool(Boolean) | Improve this Doc View Source From(IDictionary) Creates a new Map holding the content of an IDictionary of String to Value . Declaration public static Map From(IDictionary vals) Parameters Type Name Description IDictionary < String , Value > vals the dictionary of Value s to initialize the Map wtih Returns Type Description Map a Map containing the content of vals See Also Map() From(IEnumerable>) | Improve this Doc View Source From(IEnumerable) Creates a new List holding the content of an IEnumerable of Value . Declaration public static List From(IEnumerable vals) Parameters Type Name Description IEnumerable < Value > vals the Value s to initialize the List with Returns Type Description List a List containing the content of vals See Also List() | Improve this Doc View Source From(IEnumerable>) Creates a new Map holding the content of an IEnumerable of KeyValuePair of String to Value . Declaration public static Map From(IEnumerable> vals) Parameters Type Name Description IEnumerable < KeyValuePair < String , Value >> vals the enumerable of KeyValuePair of name to Value Returns Type Description Map a Map containing the content of vals See Also Map() From(IDictionary) | Improve this Doc View Source From(Decimal) Creates a new Value wrapping a Double . Declaration public static FloatingPoint From(decimal val) Parameters Type Name Description Decimal val the value to wrap Returns Type Description FloatingPoint a FloatingPoint wrapping val See Also Float(Decimal) | Improve this Doc View Source From(Int64) Creates a new Value wrapping a Int64 . Declaration public static Integer From(long val) Parameters Type Name Description Int64 val the value to wrap Returns Type Description Integer a Integer wrapping val See Also Integer(Int64) | Improve this Doc View Source From(String) Creates a new Value representing a String . Declaration public static Text From(string val) Parameters Type Name Description String val the value to wrap Returns Type Description Text a Text wrapping val See Also Text(String) | Improve this Doc View Source Integer(Int64) Creates a new Integer wrapping a Int64 . Declaration public static Integer Integer(long val) Parameters Type Name Description Int64 val the value to wrap Returns Type Description Integer a Integer wrapping val See Also From(Int64) | Improve this Doc View Source List() Creates an empty List() . Declaration public static List List() Returns Type Description List an empty List() See Also From(IEnumerable) | Improve this Doc View Source Map() Creates an empty Map() . Declaration public static Map Map() Returns Type Description Map an empty Map() See Also From(IDictionary) From(IEnumerable>) | Improve this Doc View Source Null() Creates a Null Value . Declaration public static Value Null() Returns Type Description Value null | Improve this Doc View Source Text(String) Creates a new Text object wrapping a String . Declaration public static Text Text(string val) Parameters Type Name Description String val the value to wrap Returns Type Description Text a Text wrapping val See Also From(String) | Improve this Doc View Source ToString() Converts this Value into a human-readable format. Declaration public abstract override string ToString() Returns Type Description String a human-readable string containing the value provided Overrides Object.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[])"
},
"api/IPA.Config.Data.Map.html": {
"href": "api/IPA.Config.Data.Map.html",
"title": "Class Map",
"keywords": "Class Map A ordered map of String to Value for serialization by an IConfigProvider . Use Map() or From(IDictionary) to create. Inheritance Object Value Map Implements IDictionary < String , Value > ICollection < KeyValuePair < String , Value >> IEnumerable < KeyValuePair < String , 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 Map : Value, IDictionary, ICollection>, IEnumerable>, IEnumerable Properties | Improve this Doc View Source Count Gets the number of key-value pairs in this Map . Declaration public int Count { get; } Property Value Type Description Int32 See Also Count | Improve this Doc View Source Item[String] Accesses the Value at key in the map. Declaration public Value this[string key] { get; set; } Parameters Type Name Description String key the key to get the value associated with Property Value Type Description Value the value associated with the key See Also Item [TKey] | Improve this Doc View Source Keys Gets a collection of the keys for the Map . Declaration public ICollection Keys { get; } Property Value Type Description ICollection < String > See Also Keys | Improve this Doc View Source Values Gets a collection of the values in the Map . Declaration public ICollection Values { get; } Property Value Type Description ICollection < Value > Remarks Unlike all other iterables given by Map , this does not guarantee that order is maintained. See Also Values Methods | Improve this Doc View Source Add(String, Value) Adds a new Value with a given key. Declaration public void Add(string key, Value value) Parameters Type Name Description String key the key to put the value at Value value the Value to add See Also Add (TKey, TValue) | Improve this Doc View Source Clear() Clears the Map of its key-value pairs. Declaration public void Clear() See Also Clear () | Improve this Doc View Source ContainsKey(String) Checks if the Map contains a given key . Declaration public bool ContainsKey(string key) Parameters Type Name Description String key the key to check for Returns Type Description Boolean true if the key exists, otherwise false See Also ContainsKey (TKey) | Improve this Doc View Source GetEnumerator() Enumerates the Map 's key-value pairs. Declaration public IEnumerator> GetEnumerator() Returns Type Description IEnumerator < KeyValuePair < String , Value >> an IEnumerator of key-value pairs in this Map See Also GetEnumerator () | Improve this Doc View Source Remove(String) Removes the object associated with a key in this Map . Declaration public bool Remove(string key) Parameters Type Name Description String key the key to remove Returns Type Description Boolean true if the key existed, false otherwise See Also Remove (TKey) | Improve this Doc View Source ToString() Converts this Value into a human-readable format. Declaration public override string ToString() Returns Type Description String a JSON-like set of key-value pairs Overrides Value.ToString() | Improve this Doc View Source TryGetValue(String, out Value) Gets the value associated with the specified key. Declaration public bool TryGetValue(string key, out Value value) Parameters Type Name Description String key the key of the value to get Value value the target location of the retrieved object Returns Type Description Boolean true if the key was found and value set, false otherwise See Also TryGetValue (TKey, TValue) Explicit Interface Implementations | Improve this Doc View Source ICollection>.Add(KeyValuePair) Declaration void ICollection>.Add(KeyValuePair item) Parameters Type Name Description KeyValuePair < String , Value > item | Improve this Doc View Source ICollection>.Contains(KeyValuePair) Declaration bool ICollection>.Contains(KeyValuePair item) Parameters Type Name Description KeyValuePair < String , Value > item Returns Type Description Boolean | Improve this Doc View Source ICollection>.CopyTo(KeyValuePair[], Int32) Declaration void ICollection>.CopyTo(KeyValuePair[] array, int arrayIndex) Parameters Type Name Description KeyValuePair < String , Value >[] array Int32 arrayIndex | Improve this Doc View Source ICollection>.IsReadOnly Declaration bool ICollection>.IsReadOnly { get; } Returns Type Description Boolean | Improve this Doc View Source ICollection>.Remove(KeyValuePair) Declaration bool ICollection>.Remove(KeyValuePair item) Parameters Type Name Description KeyValuePair < String , Value > item Returns Type Description Boolean | Improve this Doc View Source IEnumerable.GetEnumerator() Declaration IEnumerator IEnumerable.GetEnumerator() Returns Type Description IEnumerator Implements System.Collections.Generic.IDictionary System.Collections.Generic.ICollection System.Collections.Generic.IEnumerable System.Collections.IEnumerable Extension Methods EnumerableExtensions.Prepend(IEnumerable, T) EnumerableExtensions.Append(IEnumerable, T) 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[])"
},
"api/IPA.Config.Data.Integer.html": {
"href": "api/IPA.Config.Data.Integer.html",
"title": "Class Integer",
"keywords": "Class Integer A Value representing an integer. This may hold a Int64 's worth of data. Inheritance Object Value Integer 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 Integer : Value Properties | Improve this Doc View Source Value The actual value of the Integer object. Declaration public long Value { get; set; } Property Value Type Description Int64 Methods | Improve this Doc View Source AsFloat() Coerces this Integer into a FloatingPoint . Declaration public FloatingPoint AsFloat() Returns Type Description FloatingPoint a FloatingPoint 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[])"
},
"api/IPA.Config.Data.Boolean.html": {
"href": "api/IPA.Config.Data.Boolean.html",
"title": "Class Boolean",
"keywords": "Class Boolean A Value representing a boolean value. Inheritance Object Value Boolean 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 Boolean : Value Properties | Improve this Doc View Source Value The actual value fo this Boolean object. Declaration public bool Value { get; set; } Property Value Type Description Boolean Methods | 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().ToLower() 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[])"
},
"api/IPA.Utilities.CriticalSection.html": {
"href": "api/IPA.Utilities.CriticalSection.html",
"title": "Class CriticalSection",
"keywords": "Class CriticalSection Provides utilities for managing various critical sections. Inheritance Object CriticalSection Inherited Members 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 static class CriticalSection Methods | Improve this Doc View Source EnterExecuteSection() Enters a critical execution section. Does not nest. Declaration public static void EnterExecuteSection() | Improve this Doc View Source ExecuteSection() Creates an CriticalSection.AutoExecuteSection for automated management of an execute section. Declaration public static CriticalSection.AutoExecuteSection ExecuteSection() Returns Type Description CriticalSection.AutoExecuteSection the new CriticalSection.AutoExecuteSection that manages the section | Improve this Doc View Source ExitExecuteSection() Exits a critical execution section. Does not nest. Declaration public static void ExitExecuteSection()"
},
"api/IPA.Utilities.CriticalSection.AutoExecuteSection.html": {
"href": "api/IPA.Utilities.CriticalSection.AutoExecuteSection.html",
"title": "Struct CriticalSection.AutoExecuteSection",
"keywords": "Struct CriticalSection.AutoExecuteSection A struct that allows using blocks to manage an execute section. Implements IDisposable Inherited Members ValueType.Equals(Object) ValueType.GetHashCode() ValueType.ToString() Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetType() Namespace : IPA.Utilities Assembly : IPA.Loader.dll Syntax public struct AutoExecuteSection : IDisposable Explicit Interface Implementations | Improve this Doc View Source IDisposable.Dispose() Declaration void IDisposable.Dispose() 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.Utilities.Async.html": {
"href": "api/IPA.Utilities.Async.html",
"title": "",
"keywords": "Classes Coroutines A class providing coroutine helpers. SingleThreadTaskScheduler A single-threaded task scheduler that runs all of its tasks on the same thread. Synchronization Utilities for inter-thread synchronization. All Locker method acquire their object immediately, and should only be used with langword_csharp_using to automatically release them. UnityMainThreadTaskScheduler A task scheduler that runs tasks on the Unity main thread via coroutines. Structs Synchronization.MutexLocker A locker for a Mutex that automatically releases when it is disposed. Create this with Lock(Mutex) . Synchronization.ReaderWriterLockSlimReadLocker A locker for a read lock on a ReaderWriterLockSlim that automatically releases when it is disposed. Create this with LockRead(ReaderWriterLockSlim) . Synchronization.ReaderWriterLockSlimUpgradableReadLocker A locker for an upgradable read lock on a ReaderWriterLockSlim that automatically releases when it is disposed. Create this with LockReadUpgradable(ReaderWriterLockSlim) . Synchronization.ReaderWriterLockSlimWriteLocker A locker for a write lock on a ReaderWriterLockSlim that automatically releases when it is disposed. Create this with LockWrite(ReaderWriterLockSlim) . Synchronization.SemaphoreLocker A locker for a Semaphore that automatically releases when it is disposed. Create this with Lock(Semaphore) . Synchronization.SemaphoreSlimAsyncLocker A locker for a SemaphoreSlim that was created asynchronously and automatically releases when it is disposed. Create this with LockAsync(SemaphoreSlim) . Synchronization.SemaphoreSlimLocker A locker for a SemaphoreSlim that automatically releases when it is disposed. Create this with Lock(SemaphoreSlim) ."
},
"api/IPA.Utilities.Async.UnityMainThreadTaskScheduler.html": {
"href": "api/IPA.Utilities.Async.UnityMainThreadTaskScheduler.html",
"title": "Class UnityMainThreadTaskScheduler",
"keywords": "Class UnityMainThreadTaskScheduler A task scheduler that runs tasks on the Unity main thread via coroutines. Inheritance Object TaskScheduler UnityMainThreadTaskScheduler Implements IDisposable Inherited Members TaskScheduler.TryDequeue(Task) TaskScheduler.FromCurrentSynchronizationContext() TaskScheduler.TryExecuteTask(Task) TaskScheduler.MaximumConcurrencyLevel TaskScheduler.Current TaskScheduler.Id TaskScheduler.UnobservedTaskException Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Utilities.Async Assembly : IPA.Loader.dll Syntax public class UnityMainThreadTaskScheduler : TaskScheduler, IDisposable Properties | Improve this Doc View Source Cancelling Gets whether or not this scheduler is in the process of shutting down. Declaration public bool Cancelling { get; } Property Value Type Description Boolean true if the scheduler is shutting down, false otherwise | Improve this Doc View Source Default Gets the default main thread scheduler that is managed by BSIPA. Declaration public static TaskScheduler Default { get; } Property Value Type Description TaskScheduler a scheduler that is managed by BSIPA | Improve this Doc View Source Factory Gets a factory for creating tasks on Default . Declaration public static TaskFactory Factory { get; } Property Value Type Description TaskFactory a factory for creating tasks on the default scheduler | Improve this Doc View Source IsRunning Gets whether or not this scheduler is currently executing tasks. Declaration public bool IsRunning { get; } Property Value Type Description Boolean true if the scheduler is running, false otherwise | Improve this Doc View Source YieldAfterTasks Gets or sets the number of tasks to execute before yielding back to Unity. Declaration public int YieldAfterTasks { get; set; } Property Value Type Description Int32 the number of tasks to execute per resume | Improve this Doc View Source YieldAfterTime Gets or sets the amount of time to execute tasks for before yielding back to Unity. Default is 0.5ms. Declaration public TimeSpan YieldAfterTime { get; set; } Property Value Type Description TimeSpan the amount of time to execute tasks for before yielding back to Unity Methods | Improve this Doc View Source Cancel() Cancels the scheduler. If the scheduler is currently executing tasks, that batch will finish first. All remaining tasks will be left in the queue. Declaration public void Cancel() Exceptions Type Condition ObjectDisposedException if this scheduler is disposed InvalidOperationException if the scheduler is not running | Improve this Doc View Source Coroutine() When used as a Unity coroutine, runs the scheduler. Otherwise, this is an invalid call. Declaration public IEnumerator Coroutine() Returns Type Description IEnumerator a Unity coroutine Remarks Do not ever call UnityEngine.MonoBehaviour.StopCoroutine(System.Collections.IEnumerator) on this coroutine, nor UnityEngine.MonoBehaviour.StopAllCoroutines() on the behaviour hosting this coroutine. This has no way to detect this, and this object will become invalid. If you need to stop this coroutine, first call Cancel() , then wait for it to exit on its own. Exceptions Type Condition ObjectDisposedException if this scheduler is disposed InvalidOperationException if the scheduler is already running | Improve this Doc View Source Dispose() Disposes this object. This puts the object into an unusable state. Declaration public void Dispose() | Improve this Doc View Source Dispose(Boolean) Disposes this object. Declaration protected virtual void Dispose(bool disposing) Parameters Type Name Description Boolean disposing whether or not to dispose managed objects | Improve this Doc View Source GetScheduledTasks() Throws a NotSupportedException . Declaration protected override IEnumerable GetScheduledTasks() Returns Type Description IEnumerable < Task > nothing Overrides TaskScheduler.GetScheduledTasks() Exceptions Type Condition NotSupportedException Always. | Improve this Doc View Source QueueTask(Task) Queues a given Task to this scheduler. The Task must> be scheduled for this TaskScheduler by the runtime. Declaration protected override void QueueTask(Task task) Parameters Type Name Description Task task the Task to queue Overrides TaskScheduler.QueueTask(Task) Exceptions Type Condition ObjectDisposedException Thrown if this object has already been disposed. | Improve this Doc View Source TryExecuteTaskInline(Task, Boolean) Rejects any attempts to execute a task inline. Declaration protected override bool TryExecuteTaskInline(Task task, bool taskWasPreviouslyQueued) Parameters Type Name Description Task task the task to attempt to execute Boolean taskWasPreviouslyQueued whether the task was previously queued to this scheduler Returns Type Description Boolean false Overrides TaskScheduler.TryExecuteTaskInline(Task, Boolean) Remarks This task scheduler always runs its tasks on the thread that it manages, therefore it doesn't make sense to run it inline. Exceptions Type Condition ObjectDisposedException Thrown if this object has already been disposed. 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.Utilities.Async.Synchronization.html": {
"href": "api/IPA.Utilities.Async.Synchronization.html",
"title": "Class Synchronization",
"keywords": "Class Synchronization Utilities for inter-thread synchronization. All Locker method acquire their object immediately, and should only be used with langword_csharp_using to automatically release them. Inheritance Object Synchronization Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Utilities.Async Assembly : IPA.Loader.dll Syntax public static class Synchronization Examples The canonical usage of all of the member functions is as follows, substituting Lock(Mutex) with whichever member you want to use, according to your lock type. using var _locker = Synchronization.Lock(mutex); Methods | Improve this Doc View Source Lock(Mutex) Creates a locker for a mutex. Declaration public static Synchronization.MutexLocker Lock(Mutex mut) Parameters Type Name Description Mutex mut the mutex to acquire Returns Type Description Synchronization.MutexLocker the locker to use with langword_csharp_using | Improve this Doc View Source Lock(Semaphore) Creates a locker for a semaphore. Declaration public static Synchronization.SemaphoreLocker Lock(Semaphore sem) Parameters Type Name Description Semaphore sem the semaphore to acquire Returns Type Description Synchronization.SemaphoreLocker the locker to use with langword_csharp_using | Improve this Doc View Source Lock(SemaphoreSlim) Creates a locker for a slim semaphore. Declaration public static Synchronization.SemaphoreSlimLocker Lock(SemaphoreSlim sem) Parameters Type Name Description SemaphoreSlim sem the slim semaphore to acquire Returns Type Description Synchronization.SemaphoreSlimLocker the locker to use with langword_csharp_using | Improve this Doc View Source LockAsync(SemaphoreSlim) Creates a locker for a slim semaphore asynchronously. Declaration public static Task