diff --git a/1.4/Assemblies/0Harmony.dll b/1.4/Assemblies/0Harmony.dll
deleted file mode 100644
index e182535..0000000
Binary files a/1.4/Assemblies/0Harmony.dll and /dev/null differ
diff --git a/1.4/Assemblies/0Harmony.xml b/1.4/Assemblies/0Harmony.xml
deleted file mode 100644
index f1b9b4c..0000000
--- a/1.4/Assemblies/0Harmony.xml
+++ /dev/null
@@ -1,3693 +0,0 @@
-
-
-
- 0Harmony
-
-
-
- A factory to create delegate types
-
-
- Default constructor
-
-
- Creates a delegate type for a method
- The method
- The new delegate type
-
-
-
- A getter delegate type
- Type that getter gets field/property value from
- Type of the value that getter gets
- The instance get getter uses
- An delegate
-
-
-
- A setter delegate type
- Type that setter sets field/property value for
- Type of the value that setter sets
- The instance the setter uses
- The value the setter uses
- An delegate
-
-
-
- A constructor delegate type
- Type that constructor creates
- An delegate
-
-
-
- A helper class for fast access to getters and setters
-
-
- Creates an instantiation delegate
- Type that constructor creates
- The new instantiation delegate
-
-
-
- Creates an getter delegate for a property
- Type that getter reads property from
- Type of the property that gets accessed
- The property
- The new getter delegate
-
-
-
- Creates an getter delegate for a field
- Type that getter reads field from
- Type of the field that gets accessed
- The field
- The new getter delegate
-
-
-
- Creates an getter delegate for a field (with a list of possible field names)
- Type that getter reads field/property from
- Type of the field/property that gets accessed
- A list of possible field names
- The new getter delegate
-
-
-
- Creates an setter delegate
- Type that setter assigns property value to
- Type of the property that gets assigned
- The property
- The new setter delegate
-
-
-
- Creates an setter delegate for a field
- Type that setter assigns field value to
- Type of the field that gets assigned
- The field
- The new getter delegate
-
-
-
- A delegate to invoke a method
- The instance
- The method parameters
- The method result
-
-
- A helper class to invoke method with delegates
-
-
- Creates a fast invocation handler from a method
- The method to invoke
- Controls if boxed value object is accessed/updated directly
- The
-
-
- The directBoxValueAccess option controls how value types passed by reference (e.g. ref int, out my_struct) are handled in the arguments array
- passed to the fast invocation handler.
- Since the arguments array is an object array, any value types contained within it are actually references to a boxed value object.
- Like any other object, there can be other references to such boxed value objects, other than the reference within the arguments array.
- For example,
-
- var val = 5;
- var box = (object)val;
- var arr = new object[] { box };
- handler(arr); // for a method with parameter signature: ref/out/in int
-
-
-
-
- If directBoxValueAccess is true, the boxed value object is accessed (and potentially updated) directly when the handler is called,
- such that all references to the boxed object reflect the potentially updated value.
- In the above example, if the method associated with the handler updates the passed (boxed) value to 10, both box and arr[0]
- now reflect the value 10. Note that the original val is not updated, since boxing always copies the value into the new boxed value object.
-
-
- If directBoxValueAccess is false (default), the boxed value object in the arguments array is replaced with a "reboxed" value object,
- such that potential updates to the value are reflected only in the arguments array.
- In the above example, if the method associated with the handler updates the passed (boxed) value to 10, only arr[0] now reflects the value 10.
-
-
-
-
- A low level memory helper
-
-
-
- Mark method for no inlining (currently only works on Mono)
- The method/constructor to change
-
-
-
- Detours a method
- The original method/constructor
- The replacement method/constructor
- An error string
-
-
-
- Writes a jump to memory
- The memory address
- Jump destination
- An error string
-
-
-
- Gets the start of a method in memory
- The method/constructor
- [out] Details of the exception
- The method start address
-
-
-
- special parameter names that can be used in prefix and postfix methods
-
-
- Patch function helpers
-
-
- Sorts patch methods by their priority rules
- The original method
- Patches to sort
- Use debug mode
- The sorted patch methods
-
-
-
- Creates new replacement method with the latest patches and detours the original method
- The original method
- Information describing the patches
- The newly created replacement method
-
-
-
- Creates a patch sorter
- Array of patches that will be sorted
- Use debugging
-
-
- Sorts internal PatchSortingWrapper collection and caches the results.
- After first run the result is provided from the cache.
- The original method
- The sorted patch methods
-
-
- Checks if the sorter was created with the same patch list and as a result can be reused to
- get the sorted order of the patches.
- List of patches to check against
- true if equal
-
-
- Removes one unresolved dependency from the least important patch.
-
-
- Outputs all unblocked patches from the waiting list to results list
-
-
- Adds patch to both results list and handled patches set
- Patch to add
-
-
- Wrapper used over the Patch object to allow faster dependency access and
- dependency removal in case of cyclic dependencies
-
-
- Create patch wrapper object used for sorting
- Patch to wrap
-
-
- Determines how patches sort
- The other patch
- integer to define sort order (-1, 0, 1)
-
-
- Determines whether patches are equal
- The other patch
- true if equal
-
-
- Hash function
- A hash code
-
-
- Bidirectionally registers Patches as after dependencies
- List of dependencies to register
-
-
- Bidirectionally registers Patches as before dependencies
- List of dependencies to register
-
-
- Bidirectionally removes Patch from after dependencies
- Patch to remove
-
-
- Bidirectionally removes Patch from before dependencies
- Patch to remove
-
-
- Specifies the type of method
-
-
-
- This is a normal method
-
-
- This is a getter
-
-
- This is a setter
-
-
- This is a constructor
-
-
- This is a static constructor
-
-
- This targets the MoveNext method of the enumerator result
-
-
- Specifies the type of argument
-
-
-
- This is a normal argument
-
-
- This is a reference argument (ref)
-
-
- This is an out argument (out)
-
-
- This is a pointer argument (&)
-
-
- Specifies the type of patch
-
-
-
- Any patch
-
-
- A prefix patch
-
-
- A postfix patch
-
-
- A transpiler
-
-
- A finalizer
-
-
- A reverse patch
-
-
- Specifies the type of reverse patch
-
-
-
- Use the unmodified original method (directly from IL)
-
-
- Use the original as it is right now including previous patches but excluding future ones
-
-
- Specifies the type of method call dispatching mechanics
-
-
-
- Call the method using dynamic dispatching if method is virtual (including overriden)
-
-
- This is the built-in form of late binding (a.k.a. dynamic binding) and is the default dispatching mechanic in C#.
- This directly corresponds with the instruction.
-
-
- For virtual (including overriden) methods, the instance type's most-derived/overriden implementation of the method is called.
- For non-virtual (including static) methods, same behavior as : the exact specified method implementation is called.
-
-
- Note: This is not a fully dynamic dispatch, since non-virtual (including static) methods are still called non-virtually.
- A fully dynamic dispatch in C# involves using
- the dynamic type
- (actually a fully dynamic binding, since even the name and overload resolution happens at runtime), which does not support.
-
-
-
-
- Call the method using static dispatching, regardless of whether method is virtual (including overriden) or non-virtual (including static)
-
-
- a.k.a. non-virtual dispatching, early binding, or static binding.
- This directly corresponds with the instruction.
-
-
- For both virtual (including overriden) and non-virtual (including static) methods, the exact specified method implementation is called, without virtual/override mechanics.
-
-
-
-
- The base class for all Harmony annotations (not meant to be used directly)
-
-
-
- The common information for all attributes
-
-
- Annotation to define your Harmony patch methods
-
-
-
- An empty annotation can be used together with TargetMethod(s)
-
-
-
- An annotation that specifies a class to patch
- The declaring class/type
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The declaring class/type
- The argument types of the method or constructor to patch
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The declaring class/type
- The name of the method, property or constructor to patch
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The declaring class/type
- The name of the method, property or constructor to patch
- An array of argument types to target overloads
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The declaring class/type
- The name of the method, property or constructor to patch
- An array of argument types to target overloads
- Array of
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The declaring class/type
- The
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The declaring class/type
- The
- An array of argument types to target overloads
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The declaring class/type
- The
- An array of argument types to target overloads
- Array of
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The declaring class/type
- The name of the method, property or constructor to patch
- The
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The name of the method, property or constructor to patch
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The name of the method, property or constructor to patch
- An array of argument types to target overloads
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The name of the method, property or constructor to patch
- An array of argument types to target overloads
- An array of
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The name of the method, property or constructor to patch
- The
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The
- An array of argument types to target overloads
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The
- An array of argument types to target overloads
- An array of
-
-
-
- An annotation that specifies a method, property or constructor to patch
- An array of argument types to target overloads
-
-
-
- An annotation that specifies a method, property or constructor to patch
- An array of argument types to target overloads
- An array of
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The full name of the declaring class/type
- The name of the method, property or constructor to patch
- The
-
-
-
- Annotation to define the original method for delegate injection
-
-
-
- An annotation that specifies a class to patch
- The declaring class/type
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The declaring class/type
- The argument types of the method or constructor to patch
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The declaring class/type
- The name of the method, property or constructor to patch
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The declaring class/type
- The name of the method, property or constructor to patch
- An array of argument types to target overloads
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The declaring class/type
- The name of the method, property or constructor to patch
- An array of argument types to target overloads
- Array of
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The declaring class/type
- The
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The declaring class/type
- The
- An array of argument types to target overloads
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The declaring class/type
- The
- An array of argument types to target overloads
- Array of
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The declaring class/type
- The name of the method, property or constructor to patch
- The
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The name of the method, property or constructor to patch
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The name of the method, property or constructor to patch
- An array of argument types to target overloads
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The name of the method, property or constructor to patch
- An array of argument types to target overloads
- An array of
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The name of the method, property or constructor to patch
- The
-
-
-
- An annotation that specifies call dispatching mechanics for the delegate
- The
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The
- An array of argument types to target overloads
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The
- An array of argument types to target overloads
- An array of
-
-
-
- An annotation that specifies a method, property or constructor to patch
- An array of argument types to target overloads
-
-
-
- An annotation that specifies a method, property or constructor to patch
- An array of argument types to target overloads
- An array of
-
-
-
- Annotation to define your standin methods for reverse patching
-
-
-
- An annotation that specifies the type of reverse patching
- The of the reverse patch
-
-
-
- A Harmony annotation to define that all methods in a class are to be patched
-
-
-
- A Harmony annotation
-
-
-
- A Harmony annotation to define patch priority
- The priority
-
-
-
- A Harmony annotation
-
-
-
- A Harmony annotation to define that a patch comes before another patch
- The array of harmony IDs of the other patches
-
-
-
- A Harmony annotation
-
-
- A Harmony annotation to define that a patch comes after another patch
- The array of harmony IDs of the other patches
-
-
-
- A Harmony annotation
-
-
- A Harmony annotation to debug a patch (output uses to log to your Desktop)
-
-
-
- Specifies the Prepare function in a patch class
-
-
-
- Specifies the Cleanup function in a patch class
-
-
-
- Specifies the TargetMethod function in a patch class
-
-
-
- Specifies the TargetMethods function in a patch class
-
-
-
- Specifies the Prefix function in a patch class
-
-
-
- Specifies the Postfix function in a patch class
-
-
-
- Specifies the Transpiler function in a patch class
-
-
-
- Specifies the Finalizer function in a patch class
-
-
-
- A Harmony annotation
-
-
-
- The name of the original argument
-
-
-
- The index of the original argument
-
-
-
- The new name of the original argument
-
-
-
- An annotation to declare injected arguments by name
-
-
-
- An annotation to declare injected arguments by index
- Zero-based index
-
-
-
- An annotation to declare injected arguments by renaming them
- Name of the original argument
- New name
-
-
-
- An annotation to declare injected arguments by index and renaming them
- Zero-based index
- New name
-
-
-
- An abstract wrapper around OpCode and their operands. Used by transpilers
-
-
-
- The opcode
-
-
-
- The operand
-
-
-
- All labels defined on this instruction
-
-
-
- All exception block boundaries defined on this instruction
-
-
-
- Creates a new CodeInstruction with a given opcode and optional operand
- The opcode
- The operand
-
-
-
- Create a full copy (including labels and exception blocks) of a CodeInstruction
- The to copy
-
-
-
- Clones a CodeInstruction and resets its labels and exception blocks
- A lightweight copy of this code instruction
-
-
-
- Clones a CodeInstruction, resets labels and exception blocks and sets its opcode
- The opcode
- A copy of this CodeInstruction with a new opcode
-
-
-
- Clones a CodeInstruction, resets labels and exception blocks and sets its operand
- The operand
- A copy of this CodeInstruction with a new operand
-
-
-
- Creates a CodeInstruction calling a method (CALL)
- The class/type where the method is declared
- The name of the method (case sensitive)
- Optional parameters to target a specific overload of the method
- Optional list of types that define the generic version of the method
- A code instruction that calls the method matching the arguments
-
-
-
- Creates a CodeInstruction calling a method (CALL)
- The target method in the form TypeFullName:MethodName, where the type name matches a form recognized by Type.GetType like Some.Namespace.Type.
- Optional parameters to target a specific overload of the method
- Optional list of types that define the generic version of the method
- A code instruction that calls the method matching the arguments
-
-
-
- Creates a CodeInstruction calling a method (CALL)
- The lambda expression using the method
-
-
-
-
- Creates a CodeInstruction calling a method (CALL)
- The lambda expression using the method
-
-
-
-
- Creates a CodeInstruction calling a method (CALL)
- The lambda expression using the method
-
-
-
-
- Creates a CodeInstruction calling a method (CALL)
- The lambda expression using the method
-
-
-
-
- Returns an instruction to call the specified closure
- The delegate type to emit
- The closure that defines the method to call
- A that calls the closure as a method
-
-
-
- Creates a CodeInstruction loading a field (LD[S]FLD[A])
- The class/type where the field is defined
- The name of the field (case sensitive)
- Use address of field
-
-
-
- Creates a CodeInstruction storing to a field (ST[S]FLD)
- The class/type where the field is defined
- The name of the field (case sensitive)
-
-
-
- Returns a string representation of the code instruction
- A string representation of the code instruction
-
-
-
- Exception block types
-
-
-
- The beginning of an exception block
-
-
-
- The beginning of a catch block
-
-
-
- The beginning of an except filter block (currently not supported to use in a patch)
-
-
-
- The beginning of a fault block
-
-
-
- The beginning of a finally block
-
-
-
- The end of an exception block
-
-
-
- An exception block
-
-
-
- Block type
-
-
-
- Catch type
-
-
-
- Creates an exception block
- The
- The catch type
-
-
-
- The Harmony instance is the main entry to Harmony. After creating one with an unique identifier, it is used to patch and query the current application domain
-
-
-
- The unique identifier
-
-
-
- Set to true before instantiating Harmony to debug Harmony or use an environment variable to set HARMONY_DEBUG to '1' like this: cmd /C "set HARMONY_DEBUG=1 && game.exe"
- This is for full debugging. To debug only specific patches, use the attribute
-
-
-
- Creates a new Harmony instance
- A unique identifier (you choose your own)
- A Harmony instance
-
-
-
- Searches the current assembly for Harmony annotations and uses them to create patches
- This method can fail to use the correct assembly when being inlined. It calls StackTrace.GetFrame(1) which can point to the wrong method/assembly. If you are unsure or run into problems, use PatchAll(Assembly.GetExecutingAssembly())
instead.
-
-
-
- Creates a empty patch processor for an original method
- The original method/constructor
- A new instance
-
-
-
- Creates a patch class processor from an annotated class
- The class/type
- A new instance
-
-
-
- Creates a reverse patcher for one of your stub methods
- The original method/constructor
- The stand-in stub method as
- A new instance
-
-
-
- Searches an assembly for Harmony annotations and uses them to create patches
- The assembly
-
-
-
- Creates patches by manually specifying the methods
- The original method/constructor
- An optional prefix method wrapped in a object
- An optional postfix method wrapped in a object
- An optional transpiler method wrapped in a object
- An optional finalizer method wrapped in a object
- The replacement method that was created to patch the original method
-
-
-
- Patches a foreign method onto a stub method of yours and optionally applies transpilers during the process
- The original method/constructor you want to duplicate
- Your stub method as that will become the original. Needs to have the correct signature (either original or whatever your transpilers generates)
- An optional transpiler as method that will be applied during the process
- The replacement method that was created to patch the stub method
-
-
-
- Unpatches methods by patching them with zero patches. Fully unpatching is not supported. Be careful, unpatching is global
- The optional Harmony ID to restrict unpatching to a specific Harmony instance
- This method could be static if it wasn't for the fact that unpatching creates a new replacement method that contains your harmony ID
-
-
-
- Unpatches a method by patching it with zero patches. Fully unpatching is not supported. Be careful, unpatching is global
- The original method/constructor
- The
- The optional Harmony ID to restrict unpatching to a specific Harmony instance
-
-
-
- Unpatches a method by patching it with zero patches. Fully unpatching is not supported. Be careful, unpatching is global
- The original method/constructor
- The patch method as method to remove
-
-
-
- Test for patches from a specific Harmony ID
- The Harmony ID
- True if patches for this ID exist
-
-
-
- Gets patch information for a given original method
- The original method/constructor
- The patch information as
-
-
-
- Gets the methods this instance has patched
- An enumeration of original methods/constructors
-
-
-
- Gets all patched original methods in the appdomain
- An enumeration of patched original methods/constructors
-
-
-
- Gets the original method from a given replacement method
- A replacement method, for example from a stacktrace
- The original method/constructor or null if not found
-
-
-
- Tries to get the method from a stackframe including dynamic replacement methods
- The
- For normal frames, frame.GetMethod() is returned. For frames containing patched methods, the replacement method is returned or null if no method can be found
-
-
-
- Gets the original method from the stackframe and uses original if method is a dynamic replacement
- The
- The original method from that stackframe
-
-
- Gets Harmony version for all active Harmony instances
- [out] The current Harmony version
- A dictionary containing assembly versions keyed by Harmony IDs
-
-
-
- Under Mono, HarmonyException wraps IL compile errors with detailed information about the failure
-
-
-
- Default serialization constructor (not implemented)
- The info
- The context
-
-
-
- Get a list of IL instructions in pairs of offset+code
- A list of key/value pairs which represent an offset and the code at that offset
-
-
-
- Get a list of IL instructions without offsets
- A list of
-
-
-
- Get the error offset of the errornous IL instruction
- The offset
-
-
-
- Get the index of the errornous IL instruction
- The index into the list of instructions or -1 if not found
-
-
-
- A wrapper around a method to use it as a patch (for example a Prefix)
-
-
-
- The original method
-
-
-
- Class/type declaring this patch
-
-
-
- Patch method name
-
-
-
- Optional patch
-
-
-
- Array of argument types of the patch method
-
-
-
- of the patch
-
-
-
- Install this patch before patches with these Harmony IDs
-
-
-
- Install this patch after patches with these Harmony IDs
-
-
-
- Reverse patch type, see
-
-
-
- Create debug output for this patch
-
-
-
- Whether to use (true) or (false) mechanics
- for -attributed delegate
-
-
-
- Default constructor
-
-
-
- Creates a patch from a given method
- The original method
-
-
-
- Creates a patch from a given method
- The original method
- The patch
- A list of harmony IDs that should come after this patch
- A list of harmony IDs that should come before this patch
- Set to true to generate debug output
-
-
-
- Creates a patch from a given method
- The patch class/type
- The patch method name
- The optional argument types of the patch method (for overloaded methods)
-
-
-
- Gets the names of all internal patch info fields
- A list of field names
-
-
-
- Merges annotations
- The list of to merge
- The merged
-
-
-
- Returns a string that represents the annotation
- A string representation
-
-
-
- Annotation extensions
-
-
-
- Copies annotation information
- The source
- The destination
-
-
-
- Clones an annotation
- The to clone
- A copied
-
-
-
- Merges annotations
- The master
- The detail
- A new, merged
-
-
-
- Gets all annotations on a class/type
- The class/type
- A list of all
-
-
-
- Gets merged annotations on a class/type
- The class/type
- The merged
-
-
-
- Gets all annotations on a method
- The method/constructor
- A list of
-
-
-
- Gets merged annotations on a method
- The method/constructor
- The merged
-
-
-
-
- A mutable representation of an inline signature, similar to Mono.Cecil's CallSite.
- Used by the calli instruction, can be used by transpilers
-
-
-
-
- See
-
-
-
- See
-
-
-
- See
-
-
-
- The list of all parameter types or function pointer signatures received by the call site
-
-
-
- The return type or function pointer signature returned by the call site
-
-
-
- Returns a string representation of the inline signature
- A string representation of the inline signature
-
-
-
-
- A mutable representation of a parameter type with an attached type modifier,
- similar to Mono.Cecil's OptionalModifierType / RequiredModifierType and C#'s modopt / modreq
-
-
-
-
- Whether this is a modopt (optional modifier type) or a modreq (required modifier type)
-
-
-
- The modifier type attached to the parameter type
-
-
-
- The modified parameter type
-
-
-
- Returns a string representation of the modifier type
- A string representation of the modifier type
-
-
-
- Patch serialization
-
-
-
- Control the binding of a serialized object to a type
- Specifies the assembly name of the serialized object
- Specifies the type name of the serialized object
- The type of the object the formatter creates a new instance of
-
-
-
- Serializes a patch info
- The
- The serialized data
-
-
-
- Deserialize a patch info
- The serialized data
- A
-
-
-
- Compare function to sort patch priorities
- The patch
- Zero-based index
- The priority
- A standard sort integer (-1, 0, 1)
-
-
-
- Serializable patch information
-
-
-
- Prefixes as an array of
-
-
-
- Postfixes as an array of
-
-
-
- Transpilers as an array of
-
-
-
- Finalizers as an array of
-
-
-
- Returns if any of the patches wants debugging turned on
-
-
-
- Adds prefixes
- An owner (Harmony ID)
- The patch methods
-
-
-
- Adds a prefix
-
-
- Removes prefixes
- The owner of the prefixes, or * for all
-
-
-
- Adds postfixes
- An owner (Harmony ID)
- The patch methods
-
-
-
- Adds a postfix
-
-
- Removes postfixes
- The owner of the postfixes, or * for all
-
-
-
- Adds transpilers
- An owner (Harmony ID)
- The patch methods
-
-
-
- Adds a transpiler
-
-
- Removes transpilers
- The owner of the transpilers, or * for all
-
-
-
- Adds finalizers
- An owner (Harmony ID)
- The patch methods
-
-
-
- Adds a finalizer
-
-
- Removes finalizers
- The owner of the finalizers, or * for all
-
-
-
- Removes a patch using its method
- The method of the patch to remove
-
-
-
- Gets a concatenated list of patches
- The Harmony instance ID adding the new patches
- The patches to add
- The current patches
-
-
-
- Gets a list of patches with any from the given owner removed
- The owner of the methods, or * for all
- The current patches
-
-
-
- A serializable patch
-
-
-
- Zero-based index
-
-
-
- The owner (Harmony ID)
-
-
-
- The priority, see
-
-
-
- Keep this patch before the patches indicated in the list of Harmony IDs
-
-
-
- Keep this patch after the patches indicated in the list of Harmony IDs
-
-
-
- A flag that will log the replacement method via every time this patch is used to build the replacement, even in the future
-
-
-
- The method of the static patch method
-
-
-
- Creates a patch
- The method of the patch
- Zero-based index
- An owner (Harmony ID)
- The priority, see
- A list of Harmony IDs for patches that should run after this patch
- A list of Harmony IDs for patches that should run before this patch
- A flag that will log the replacement method via every time this patch is used to build the replacement, even in the future
-
-
-
- Creates a patch
- The method of the patch
- Zero-based index
- An owner (Harmony ID)
-
-
- Get the patch method or a DynamicMethod if original patch method is a patch factory
- The original method/constructor
- The method of the patch
-
-
-
- Determines whether patches are equal
- The other patch
- true if equal
-
-
-
- Determines how patches sort
- The other patch
- integer to define sort order (-1, 0, 1)
-
-
-
- Hash function
- A hash code
-
-
-
- A PatchClassProcessor used to turn on a class/type into patches
-
-
-
- Creates a patch class processor by pointing out a class. Similar to PatchAll() but without searching through all classes.
- The Harmony instance
- The class to process (need to have at least a [HarmonyPatch] attribute)
-
-
-
- Applies the patches
- A list of all created replacement methods or null if patch class is not annotated
-
-
-
- A group of patches
-
-
-
- A collection of prefix
-
-
-
- A collection of postfix
-
-
-
- A collection of transpiler
-
-
-
- A collection of finalizer
-
-
-
- Gets all owners (Harmony IDs) or all known patches
- The patch owners
-
-
-
- Creates a group of patches
- An array of prefixes as
- An array of postfixes as
- An array of transpileres as
- An array of finalizeres as
-
-
-
- A PatchProcessor handles patches on a method/constructor
-
-
-
- Creates an empty patch processor
- The Harmony instance
- The original method/constructor
-
-
-
- Adds a prefix
- The prefix as a
- A for chaining calls
-
-
-
- Adds a prefix
- The prefix method
- A for chaining calls
-
-
-
- Adds a postfix
- The postfix as a
- A for chaining calls
-
-
-
- Adds a postfix
- The postfix method
- A for chaining calls
-
-
-
- Adds a transpiler
- The transpiler as a
- A for chaining calls
-
-
-
- Adds a transpiler
- The transpiler method
- A for chaining calls
-
-
-
- Adds a finalizer
- The finalizer as a
- A for chaining calls
-
-
-
- Adds a finalizer
- The finalizer method
- A for chaining calls
-
-
-
- Gets all patched original methods in the appdomain
- An enumeration of patched method/constructor
-
-
-
- Applies all registered patches
- The generated replacement method
-
-
-
- Unpatches patches of a given type and/or Harmony ID
- The patch type
- Harmony ID or * for any
- A for chaining calls
-
-
-
- Unpatches a specific patch
- The method of the patch
- A for chaining calls
-
-
-
- Gets patch information on an original
- The original method/constructor
- The patch information as
-
-
-
- Sort patch methods by their priority rules
- The original method
- Patches to sort
- The sorted patch methods
-
-
-
- Gets Harmony version for all active Harmony instances
- [out] The current Harmony version
- A dictionary containing assembly version keyed by Harmony ID
-
-
-
- Creates a new empty generator to use when reading method bodies
- A new
-
-
-
- Creates a new generator matching the method/constructor to use when reading method bodies
- The original method/constructor to copy method information from
- A new
-
-
-
- Returns the methods unmodified list of code instructions
- The original method/constructor
- Optionally an existing generator that will be used to create all local variables and labels contained in the result (if not specified, an internal generator is used)
- A list containing all the original
-
-
-
- Returns the methods unmodified list of code instructions
- The original method/constructor
- A new generator that now contains all local variables and labels contained in the result
- A list containing all the original
-
-
-
- Returns the methods current list of code instructions after all existing transpilers have been applied
- The original method/constructor
- Apply only the first count of transpilers
- Optionally an existing generator that will be used to create all local variables and labels contained in the result (if not specified, an internal generator is used)
- A list of
-
-
-
- Returns the methods current list of code instructions after all existing transpilers have been applied
- The original method/constructor
- A new generator that now contains all local variables and labels contained in the result
- Apply only the first count of transpilers
- A list of
-
-
-
- A low level way to read the body of a method. Used for quick searching in methods
- The original method
- All instructions as opcode/operand pairs
-
-
-
- A low level way to read the body of a method. Used for quick searching in methods
- The original method
- An existing generator that will be used to create all local variables and labels contained in the result
- All instructions as opcode/operand pairs
-
-
-
- A patch priority
-
-
-
- Patch last
-
-
-
- Patch with very low priority
-
-
-
- Patch with low priority
-
-
-
- Patch with lower than normal priority
-
-
-
- Patch with normal priority
-
-
-
- Patch with higher than normal priority
-
-
-
- Patch with high priority
-
-
-
- Patch with very high priority
-
-
-
- Patch first
-
-
-
- A reverse patcher
-
-
-
- Creates a reverse patcher
- The Harmony instance
- The original method/constructor
- Your stand-in stub method as
-
-
-
- Applies the patch
- The type of patch, see
- The generated replacement method
-
-
-
- A collection of commonly used transpilers
-
-
-
- A transpiler that replaces all occurrences of a given method with another one using the same signature
- The enumeration of to act on
- Method or constructor to search for
- Method or constructor to replace with
- Modified enumeration of
-
-
-
- A transpiler that alters instructions that match a predicate by calling an action
- The enumeration of to act on
- A predicate selecting the instructions to change
- An action to apply to matching instructions
- Modified enumeration of
-
-
-
- A transpiler that logs a text at the beginning of the method
- The instructions to act on
- The log text
- Modified enumeration of
-
-
-
- A helper class for reflection related functions
-
-
-
- Shortcut for to simplify the use of reflections and make it work for any access level
-
-
-
- Shortcut for to simplify the use of reflections and make it work for any access level but only within the current type
-
-
-
- Enumerates all assemblies in the current app domain, excluding visual studio assemblies
- An enumeration of
-
-
- Gets a type by name. Prefers a full name with namespace but falls back to the first type matching the name otherwise
- The name
- A type or null if not found
-
-
-
- Gets all successfully loaded types from a given assembly
- The assembly
- An array of types
-
- This calls and returns , while catching any thrown .
- If such an exception is thrown, returns the successfully loaded types (,
- filtered for non-null values).
-
-
-
-
- Enumerates all successfully loaded types in the current app domain, excluding visual studio assemblies
- An enumeration of all in all assemblies, excluding visual studio assemblies
-
-
- Applies a function going up the type hierarchy and stops at the first non-null result
- Result type of func()
- The class/type to start with
- The evaluation function returning T
- The first non-null result, or null if no match
-
- The type hierarchy of a class or value type (including struct) does NOT include implemented interfaces,
- and the type hierarchy of an interface is only itself (regardless of whether that interface implements other interfaces).
- The top-most type in the type hierarchy of all non-interface types (including value types) is .
-
-
-
-
- Applies a function going into inner types and stops at the first non-null result
- Generic type parameter
- The class/type to start with
- The evaluation function returning T
- The first non-null result, or null if no match
-
-
-
- Gets the reflection information for a directly declared field
- The class/type where the field is defined
- The name of the field
- A field or null when type/name is null or when the field cannot be found
-
-
-
- Gets the reflection information for a directly declared field
- The member in the form TypeFullName:MemberName, where TypeFullName matches the form recognized by Type.GetType like Some.Namespace.Type.
- A field or null when the field cannot be found
-
-
-
- Gets the reflection information for a field by searching the type and all its super types
- The class/type where the field is defined
- The name of the field (case sensitive)
- A field or null when type/name is null or when the field cannot be found
-
-
-
- Gets the reflection information for a field by searching the type and all its super types
- The member in the form TypeFullName:MemberName, where TypeFullName matches the form recognized by Type.GetType like Some.Namespace.Type.
- A field or null when the field cannot be found
-
-
-
- Gets the reflection information for a field
- The class/type where the field is declared
- The zero-based index of the field inside the class definition
- A field or null when type is null or when the field cannot be found
-
-
-
- Gets the reflection information for a directly declared property
- The class/type where the property is declared
- The name of the property (case sensitive)
- A property or null when type/name is null or when the property cannot be found
-
-
-
- Gets the reflection information for a directly declared property
- The member in the form TypeFullName:MemberName, where TypeFullName matches the form recognized by Type.GetType like Some.Namespace.Type.
- A property or null when the property cannot be found
-
-
-
- Gets the reflection information for the getter method of a directly declared property
- The class/type where the property is declared
- The name of the property (case sensitive)
- A method or null when type/name is null or when the property cannot be found
-
-
-
- Gets the reflection information for the getter method of a directly declared property
- The member in the form TypeFullName:MemberName, where TypeFullName matches the form recognized by Type.GetType like Some.Namespace.Type.
- A method or null when the property cannot be found
-
-
-
- Gets the reflection information for the setter method of a directly declared property
- The class/type where the property is declared
- The name of the property (case sensitive)
- A method or null when type/name is null or when the property cannot be found
-
-
-
- Gets the reflection information for the Setter method of a directly declared property
- The member in the form TypeFullName:MemberName, where TypeFullName matches the form recognized by Type.GetType like Some.Namespace.Type.
- A method or null when the property cannot be found
-
-
-
- Gets the reflection information for a property by searching the type and all its super types
- The class/type
- The name
- A property or null when type/name is null or when the property cannot be found
-
-
-
- Gets the reflection information for a property by searching the type and all its super types
- The member in the form TypeFullName:MemberName, where TypeFullName matches the form recognized by Type.GetType like Some.Namespace.Type.
- A property or null when the property cannot be found
-
-
-
- Gets the reflection information for the getter method of a property by searching the type and all its super types
- The class/type
- The name
- A method or null when type/name is null or when the property cannot be found
-
-
-
- Gets the reflection information for the getter method of a property by searching the type and all its super types
- The member in the form TypeFullName:MemberName, where TypeFullName matches the form recognized by Type.GetType like Some.Namespace.Type.
- A method or null when type/name is null or when the property cannot be found
-
-
-
- Gets the reflection information for the setter method of a property by searching the type and all its super types
- The class/type
- The name
- A method or null when type/name is null or when the property cannot be found
-
-
-
- Gets the reflection information for the setter method of a property by searching the type and all its super types
- The member in the form TypeFullName:MemberName, where TypeFullName matches the form recognized by Type.GetType like Some.Namespace.Type.
- A method or null when type/name is null or when the property cannot be found
-
-
-
- Gets the reflection information for a directly declared method
- The class/type where the method is declared
- The name of the method (case sensitive)
- Optional parameters to target a specific overload of the method
- Optional list of types that define the generic version of the method
- A method or null when type/name is null or when the method cannot be found
-
-
-
- Gets the reflection information for a directly declared method
- The member in the form TypeFullName:MemberName, where TypeFullName matches the form recognized by Type.GetType like Some.Namespace.Type.
- Optional parameters to target a specific overload of the method
- Optional list of types that define the generic version of the method
- A method or null when the method cannot be found
-
-
-
- Gets the reflection information for a method by searching the type and all its super types
- The class/type where the method is declared
- The name of the method (case sensitive)
- Optional parameters to target a specific overload of the method
- Optional list of types that define the generic version of the method
- A method or null when type/name is null or when the method cannot be found
-
-
-
- Gets the reflection information for a method by searching the type and all its super types
- The member in the form TypeFullName:MemberName, where TypeFullName matches the form recognized by Type.GetType like Some.Namespace.Type.
- Optional parameters to target a specific overload of the method
- Optional list of types that define the generic version of the method
- A method or null when the method cannot be found
-
-
-
- Gets the method of an enumerator method
- Enumerator method that creates the enumerator
- The internal method of the enumerator or null if no valid enumerator is detected
-
-
- Gets the names of all method that are declared in a type
- The declaring class/type
- A list of method names
-
-
-
- Gets the names of all method that are declared in the type of the instance
- An instance of the type to search in
- A list of method names
-
-
-
- Gets the names of all fields that are declared in a type
- The declaring class/type
- A list of field names
-
-
-
- Gets the names of all fields that are declared in the type of the instance
- An instance of the type to search in
- A list of field names
-
-
-
- Gets the names of all properties that are declared in a type
- The declaring class/type
- A list of property names
-
-
-
- Gets the names of all properties that are declared in the type of the instance
- An instance of the type to search in
- A list of property names
-
-
-
- Gets the type of any class member of
- A member
- The class/type of this member
-
-
-
- Test if a class member is actually an concrete implementation
- A member
- True if the member is a declared
-
-
-
- Gets the real implementation of a class member
- A member
- The member itself if its declared. Otherwise the member that is actually implemented in some base type
-
-
-
- Gets the reflection information for a directly declared constructor
- The class/type where the constructor is declared
- Optional parameters to target a specific overload of the constructor
- Optional parameters to only consider static constructors
- A constructor info or null when type is null or when the constructor cannot be found
-
-
-
- Gets the reflection information for a constructor by searching the type and all its super types
- The class/type where the constructor is declared
- Optional parameters to target a specific overload of the method
- Optional parameters to only consider static constructors
- A constructor info or null when type is null or when the method cannot be found
-
-
-
- Gets reflection information for all declared constructors
- The class/type where the constructors are declared
- Optional parameters to only consider static constructors
- A list of constructor infos
-
-
-
- Gets reflection information for all declared methods
- The class/type where the methods are declared
- A list of methods
-
-
-
- Gets reflection information for all declared properties
- The class/type where the properties are declared
- A list of properties
-
-
-
- Gets reflection information for all declared fields
- The class/type where the fields are declared
- A list of fields
-
-
-
- Gets the return type of a method or constructor
- The method/constructor
- The return type
-
-
-
- Given a type, returns the first inner type matching a recursive search by name
- The class/type to start searching at
- The name of the inner type (case sensitive)
- The inner type or null if type/name is null or if a type with that name cannot be found
-
-
-
- Given a type, returns the first inner type matching a recursive search with a predicate
- The class/type to start searching at
- The predicate to search with
- The inner type or null if type/predicate is null or if a type with that name cannot be found
-
-
-
- Given a type, returns the first method matching a predicate
- The class/type to start searching at
- The predicate to search with
- The method or null if type/predicate is null or if a type with that name cannot be found
-
-
-
- Given a type, returns the first constructor matching a predicate
- The class/type to start searching at
- The predicate to search with
- The constructor info or null if type/predicate is null or if a type with that name cannot be found
-
-
-
- Given a type, returns the first property matching a predicate
- The class/type to start searching at
- The predicate to search with
- The property or null if type/predicate is null or if a type with that name cannot be found
-
-
-
- Returns an array containing the type of each object in the given array
- An array of objects
- An array of types or an empty array if parameters is null (if an object is null, the type for it will be object)
-
-
-
- Creates an array of input parameters for a given method and a given set of potential inputs
- The method/constructor you are planing to call
- The possible input parameters in any order
- An object array matching the method signature
-
-
-
- A readable/assignable reference delegate to an instance field of a class or static field (NOT an instance field of a struct)
-
- An arbitrary type if the field is static; otherwise the class that defines the field, or a parent class (including ),
- implemented interface, or derived class of this type
-
-
- The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type),
- a type that is assignable from that type; or if the field's type is an enum type,
- either that type or the underlying integral type of that enum type
-
- The runtime instance to access the field (ignored and can be omitted for static fields)
- A readable/assignable reference to the field
- Null instance passed to a non-static field ref delegate
-
- Instance of invalid type passed to a non-static field ref delegate
- (this can happen if is a parent class or interface of the field's declaring type)
-
-
-
- This delegate cannot be used for instance fields of structs, since a struct instance passed to the delegate would be passed by
- value and thus would be a copy that only exists within the delegate's invocation. This is fine for a readonly reference,
- but makes assignment futile. Use instead.
-
-
- Note that is not required to be the field's declaring type. It can be a parent class (including ),
- implemented interface, or a derived class of the field's declaring type ("instanceOfT is FieldDeclaringType" must be possible).
- Specifically, must be assignable from OR to the field's declaring type.
- Technically, this allows Nullable, although Nullable is only relevant for structs, and since only static fields of structs
- are allowed for this delegate, and the instance passed to such a delegate is ignored, this hardly matters.
-
-
- Similarly, is not required to be the field's field type, unless that type is a non-enum value type.
- It can be a parent class (including object) or implemented interface of the field's field type. It cannot be a derived class.
- This variance is not allowed for value types, since that would require boxing/unboxing, which is not allowed for ref values.
- Special case for enum types: can also be the underlying integral type of the enum type.
- Specifically, for reference types, must be assignable from
- the field's field type; for non-enum value types, must be exactly the field's field type; for enum types,
- must be either the field's field type or the underyling integral type of that field type.
-
-
- This delegate supports static fields, even those defined in structs, for legacy reasons.
- For such static fields, is effectively ignored.
- Consider using (and StaticFieldRefAccess methods that return it) instead for static fields.
-
-
-
-
-
- Creates a field reference delegate for an instance field of a class
- The class that defines the instance field, or derived class of this type
-
- The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type),
- a type that is assignable from that type; or if the field's type is an enum type,
- either that type or the underlying integral type of that enum type
-
- The name of the field
- A readable/assignable delegate
-
-
- For backwards compatibility, there is no class constraint on .
- Instead, the non-value-type check is done at runtime within the method.
-
-
-
-
-
- Creates an instance field reference for a specific instance of a class
- The class that defines the instance field, or derived class of this type
-
- The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type),
- a type that is assignable from that type; or if the field's type is an enum type,
- either that type or the underlying integral type of that enum type
-
- The instance
- The name of the field
- A readable/assignable reference to the field
-
-
- This method is meant for one-off access to a field's value for a single instance.
- If you need to access a field's value for potentially multiple instances, use instead.
- FieldRefAccess<T, F>(instance, fieldName) is functionally equivalent to FieldRefAccess<T, F>(fieldName)(instance).
-
-
- For backwards compatibility, there is no class constraint on .
- Instead, the non-value-type check is done at runtime within the method.
-
-
-
-
-
- Creates a field reference delegate for an instance field of a class or static field (NOT an instance field of a struct)
-
- The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type),
- a type that is assignable from that type; or if the field's type is an enum type,
- either that type or the underlying integral type of that enum type
-
-
- The type that defines the field, or derived class of this type; must not be a struct type unless the field is static
-
- The name of the field
-
- A readable/assignable delegate with T=object
- (for static fields, the instance delegate parameter is ignored)
-
-
-
- This method is meant for cases where the given type is only known at runtime and thus can't be used as a type parameter T
- in e.g. .
-
-
- This method supports static fields, even those defined in structs, for legacy reasons.
- Consider using (and other overloads) instead for static fields.
-
-
-
-
-
- Creates a field reference delegate for an instance field of a class or static field (NOT an instance field of a struct)
- type of the field
- The member in the form TypeFullName:MemberName, where TypeFullName matches the form recognized by Type.GetType like Some.Namespace.Type.
- A readable/assignable delegate with T=object
-
-
- Creates a field reference delegate for an instance field of a class or static field (NOT an instance field of a struct)
-
- An arbitrary type if the field is static; otherwise the class that defines the field, or a parent class (including ),
- implemented interface, or derived class of this type ("instanceOfT is FieldDeclaringType" must be possible)
-
-
- The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type),
- a type that is assignable from that type; or if the field's type is an enum type,
- either that type or the underlying integral type of that enum type
-
- The field
- A readable/assignable delegate
-
-
- This method is meant for cases where the field has already been obtained, avoiding the field searching cost in
- e.g. .
-
-
- This method supports static fields, even those defined in structs, for legacy reasons.
- For such static fields, is effectively ignored.
- Consider using (and other overloads) instead for static fields.
-
-
- For backwards compatibility, there is no class constraint on .
- Instead, the non-value-type check is done at runtime within the method.
-
-
-
-
-
- Creates a field reference for an instance field of a class
-
- The type that defines the field; or a parent class (including ), implemented interface, or derived class of this type
- ("instanceOfT is FieldDeclaringType" must be possible)
-
-
- The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type),
- a type that is assignable from that type; or if the field's type is an enum type,
- either that type or the underlying integral type of that enum type
-
- The instance
- The field
- A readable/assignable reference to the field
-
-
- This method is meant for one-off access to a field's value for a single instance and where the field has already been obtained.
- If you need to access a field's value for potentially multiple instances, use instead.
- FieldRefAccess<T, F>(instance, fieldInfo) is functionally equivalent to FieldRefAccess<T, F>(fieldInfo)(instance).
-
-
- For backwards compatibility, there is no class constraint on .
- Instead, the non-value-type check is done at runtime within the method.
-
-
-
-
-
- A readable/assignable reference delegate to an instance field of a struct
- The struct that defines the instance field
-
- The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type),
- a type that is assignable from that type; or if the field's type is an enum type,
- either that type or the underlying integral type of that enum type
-
- A reference to the runtime instance to access the field
- A readable/assignable reference to the field
-
-
-
- Creates a field reference delegate for an instance field of a struct
- The struct that defines the instance field
-
- The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type),
- a type that is assignable from that type; or if the field's type is an enum type,
- either that type or the underlying integral type of that enum type
-
- The name of the field
- A readable/assignable delegate
-
-
-
- Creates an instance field reference for a specific instance of a struct
- The struct that defines the instance field
-
- The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type),
- a type that is assignable from that type; or if the field's type is an enum type,
- either that type or the underlying integral type of that enum type
-
- The instance
- The name of the field
- A readable/assignable reference to the field
-
-
- This method is meant for one-off access to a field's value for a single instance.
- If you need to access a field's value for potentially multiple instances, use instead.
- StructFieldRefAccess<T, F>(ref instance, fieldName) is functionally equivalent to StructFieldRefAccess<T, F>(fieldName)(ref instance).
-
-
-
-
-
- Creates a field reference delegate for an instance field of a struct
- The struct that defines the instance field
-
- The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type),
- a type that is assignable from that type; or if the field's type is an enum type,
- either that type or the underlying integral type of that enum type
-
- The field
- A readable/assignable delegate
-
-
- This method is meant for cases where the field has already been obtained, avoiding the field searching cost in
- e.g. .
-
-
-
-
-
- Creates a field reference for an instance field of a struct
- The struct that defines the instance field
-
- The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type),
- a type that is assignable from that type; or if the field's type is an enum type,
- either that type or the underlying integral type of that enum type
-
- The instance
- The field
- A readable/assignable reference to the field
-
-
- This method is meant for one-off access to a field's value for a single instance and where the field has already been obtained.
- If you need to access a field's value for potentially multiple instances, use instead.
- StructFieldRefAccess<T, F>(ref instance, fieldInfo) is functionally equivalent to StructFieldRefAccess<T, F>(fieldInfo)(ref instance).
-
-
-
-
-
- A readable/assignable reference delegate to a static field
-
- The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type),
- a type that is assignable from that type; or if the field's type is an enum type,
- either that type or the underlying integral type of that enum type
-
- A readable/assignable reference to the field
-
-
-
- Creates a static field reference
- The type (can be class or struct) the field is defined in
-
- The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type),
- a type that is assignable from that type; or if the field's type is an enum type,
- either that type or the underlying integral type of that enum type
-
- The name of the field
- A readable/assignable reference to the field
-
-
-
- Creates a static field reference
-
- The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type),
- a type that is assignable from that type; or if the field's type is an enum type,
- either that type or the underlying integral type of that enum type
-
- The type (can be class or struct) the field is defined in
- The name of the field
- A readable/assignable reference to the field
-
-
-
- Creates a static field reference
- The type of the field
- The member in the form TypeFullName:MemberName, where TypeFullName matches the form recognized by Type.GetType like Some.Namespace.Type.
- A readable/assignable reference to the field
-
-
-
- Creates a static field reference
- An arbitrary type (by convention, the type the field is defined in)
-
- The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type),
- a type that is assignable from that type; or if the field's type is an enum type,
- either that type or the underlying integral type of that enum type
-
- The field
- A readable/assignable reference to the field
-
- The type parameter is only used in exception messaging and to distinguish between this method overload
- and the overload (which returns a rather than a reference).
-
-
-
-
- Creates a static field reference delegate
-
- The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type),
- a type that is assignable from that type; or if the field's type is an enum type,
- either that type or the underlying integral type of that enum type
-
- The field
- A readable/assignable delegate
-
-
-
- Creates a delegate to a given method
- The delegate Type
- The method to create a delegate from.
-
- Only applies for instance methods. If null (default), returned delegate is an open (a.k.a. unbound) instance delegate
- where an instance is supplied as the first argument to the delegate invocation; else, delegate is a closed (a.k.a. bound)
- instance delegate where the delegate invocation always applies to the given .
-
-
- Only applies for instance methods. If true (default) and is virtual, invocation of the delegate
- calls the instance method virtually (the instance type's most-derived/overriden implementation of the method is called);
- else, invocation of the delegate calls the exact specified (this is useful for calling base class methods)
- Note: if false and is an interface method, an ArgumentException is thrown.
-
- A delegate of given to given
-
-
- Delegate invocation is more performant and more convenient to use than
- at a one-time setup cost.
-
-
- Works for both type of static and instance methods, both open and closed (a.k.a. unbound and bound) instance methods,
- and both class and struct methods.
-
-
-
-
-
- Creates a delegate to a given method
- The delegate Type
- The method in the form TypeFullName:MemberName, where TypeFullName matches the form recognized by Type.GetType like Some.Namespace.Type.
-
- Only applies for instance methods. If null (default), returned delegate is an open (a.k.a. unbound) instance delegate
- where an instance is supplied as the first argument to the delegate invocation; else, delegate is a closed (a.k.a. bound)
- instance delegate where the delegate invocation always applies to the given .
-
-
- Only applies for instance methods. If true (default) and is virtual, invocation of the delegate
- calls the instance method virtually (the instance type's most-derived/overriden implementation of the method is called);
- else, invocation of the delegate calls the exact specified (this is useful for calling base class methods)
- Note: if false and is an interface method, an ArgumentException is thrown.
-
- A delegate of given to given
-
-
- Delegate invocation is more performant and more convenient to use than
- at a one-time setup cost.
-
-
- Works for both type of static and instance methods, both open and closed (a.k.a. unbound and bound) instance methods,
- and both class and struct methods.
-
-
-
-
-
- Creates a delegate for a given delegate definition, attributed with []
- The delegate Type, attributed with []
-
- Only applies for instance methods. If null (default), returned delegate is an open (a.k.a. unbound) instance delegate
- where an instance is supplied as the first argument to the delegate invocation; else, delegate is a closed (a.k.a. bound)
- instance delegate where the delegate invocation always applies to the given .
-
- A delegate of given to the method specified via []
- attributes on
-
- This calls with the method and virtualCall arguments
- determined from the [] attributes on ,
- and the given (for closed instance delegates).
-
-
-
-
- Returns who called the current method
- The calling method/constructor (excluding the caller)
-
-
-
- Rethrows an exception while preserving its stack trace (throw statement typically clobbers existing stack traces)
- The exception to rethrow
-
-
-
- True if the current runtime is based on Mono, false otherwise (.NET)
-
-
-
- True if the current runtime is .NET Framework, false otherwise (.NET Core or Mono, although latter isn't guaranteed)
-
-
-
- True if the current runtime is .NET Core, false otherwise (Mono or .NET Framework)
-
-
-
- Throws a missing member runtime exception
- The type that is involved
- A list of names
-
-
-
- Gets default value for a specific type
- The class/type
- The default value
-
-
-
- Creates an (possibly uninitialized) instance of a given type
- The class/type
- The new instance
-
-
-
- Creates an (possibly uninitialized) instance of a given type
- The class/type
- The new instance
-
-
-
-
- A cache for the or similar Add methods for different types.
-
-
-
- Makes a deep copy of any object
- The type of the instance that should be created; for legacy reasons, this must be a class or interface
- The original object
- A copy of the original object but of type T
-
-
-
- Makes a deep copy of any object
- The type of the instance that should be created
- The original object
- [out] The copy of the original object
- Optional value transformation function (taking a field name and src/dst instances)
- The optional path root to start with
-
-
-
- Makes a deep copy of any object
- The original object
- The type of the instance that should be created
- Optional value transformation function (taking a field name and src/dst instances)
- The optional path root to start with
- The copy of the original object
-
-
-
- Tests if a type is a struct
- The type
- True if the type is a struct
-
-
-
- Tests if a type is a class
- The type
- True if the type is a class
-
-
-
- Tests if a type is a value type
- The type
- True if the type is a value type
-
-
-
- Tests if a type is an integer type
- The type
- True if the type represents some integer
-
-
-
- Tests if a type is a floating point type
- The type
- True if the type represents some floating point
-
-
-
- Tests if a type is a numerical type
- The type
- True if the type represents some number
-
-
-
- Tests if a type is void
- The type
- True if the type is void
-
-
-
- Test whether an instance is of a nullable type
- Type of instance
- An instance to test
- True if instance is of nullable type, false if not
-
-
-
- Tests whether a type or member is static, as defined in C#
- The type or member
- True if the type or member is static
-
-
-
- Tests whether a type is static, as defined in C#
- The type
- True if the type is static
-
-
-
- Tests whether a property is static, as defined in C#
- The property
- True if the property is static
-
-
-
- Tests whether an event is static, as defined in C#
- The event
- True if the event is static
-
-
-
- Calculates a combined hash code for an enumeration of objects
- The objects
- The hash code
-
-
-
- A CodeInstruction match
-
-
- The name of the match
-
-
- The matched opcodes
-
-
- The matched operands
-
-
- The jumps from the match
-
-
- The jumps to the match
-
-
- The match predicate
-
-
- Creates a code match
- The optional opcode
- The optional operand
- The optional name
-
-
-
- Creates a code match that calls a method
- The lambda expression using the method
- The optional name
-
-
-
- Creates a code match that calls a method
- The lambda expression using the method
- The optional name
-
-
-
- Creates a code match
- The CodeInstruction
- An optional name
-
-
-
- Creates a code match
- The predicate
- An optional name
-
-
-
- Returns a string that represents the match
- A string representation
-
-
-
- A CodeInstruction matcher
-
-
- The current position
- The index or -1 if out of bounds
-
-
-
- Gets the number of code instructions in this matcher
- The count
-
-
-
- Checks whether the position of this CodeMatcher is within bounds
- True if this CodeMatcher is valid
-
-
-
- Checks whether the position of this CodeMatcher is outside its bounds
- True if this CodeMatcher is invalid
-
-
-
- Gets the remaining code instructions
- The remaining count
-
-
-
- Gets the opcode at the current position
- The opcode
-
-
-
- Gets the operand at the current position
- The operand
-
-
-
- Gets the labels at the current position
- The labels
-
-
-
- Gets the exception blocks at the current position
- The blocks
-
-
-
- Creates an empty code matcher
-
-
- Creates a code matcher from an enumeration of instructions
- The instructions (transpiler argument)
- An optional IL generator
-
-
-
- Makes a clone of this instruction matcher
- A copy of this matcher
-
-
-
- Gets instructions at the current position
- The instruction
-
-
-
- Gets instructions at the current position with offset
- The offset
- The instruction
-
-
-
- Gets all instructions
- A list of instructions
-
-
-
- Gets all instructions as an enumeration
- A list of instructions
-
-
-
- Gets some instructions counting from current position
- Number of instructions
- A list of instructions
-
-
-
- Gets all instructions within a range
- The start index
- The end index
- A list of instructions
-
-
-
- Gets all instructions within a range (relative to current position)
- The start offset
- The end offset
- A list of instructions
-
-
-
- Gets a list of all distinct labels
- The instructions (transpiler argument)
- A list of Labels
-
-
-
- Reports a failure
- The method involved
- The logger
- True if current position is invalid and error was logged
-
-
-
- Throw an InvalidOperationException if current state is invalid (position out of bounds / last match failed)
- Explanation of where/why the exception was thrown that will be added to the exception message
- The same code matcher
-
-
-
- Throw an InvalidOperationException if current state is invalid (position out of bounds / last match failed),
- or if the matches do not match at current position
- Explanation of where/why the exception was thrown that will be added to the exception message
- Some code matches
- The same code matcher
-
-
-
- Throw an InvalidOperationException if current state is invalid (position out of bounds / last match failed),
- or if the matches do not match at any point between current position and the end
- Explanation of where/why the exception was thrown that will be added to the exception message
- Some code matches
- The same code matcher
-
-
-
- Throw an InvalidOperationException if current state is invalid (position out of bounds / last match failed),
- or if the matches do not match at any point between current position and the start
- Explanation of where/why the exception was thrown that will be added to the exception message
- Some code matches
- The same code matcher
-
-
-
- Throw an InvalidOperationException if current state is invalid (position out of bounds / last match failed),
- or if the check function returns false
- Explanation of where/why the exception was thrown that will be added to the exception message
- Function that checks validity of current state. If it returns false, an exception is thrown
- The same code matcher
-
-
-
- Sets an instruction at current position
- The instruction to set
- The same code matcher
-
-
-
- Sets instruction at current position and advances
- The instruction
- The same code matcher
-
-
-
- Sets opcode and operand at current position
- The opcode
- The operand
- The same code matcher
-
-
-
- Sets opcode and operand at current position and advances
- The opcode
- The operand
- The same code matcher
-
-
-
- Sets opcode at current position and advances
- The opcode
- The same code matcher
-
-
-
- Sets operand at current position and advances
- The operand
- The same code matcher
-
-
-
- Creates a label at current position
- [out] The label
- The same code matcher
-
-
-
- Creates a label at a position
- The position
- [out] The new label
- The same code matcher
-
-
-
- Creates a label at a position
- The offset
- [out] The new label
- The same code matcher
-
-
-
- Adds an enumeration of labels to current position
- The labels
- The same code matcher
-
-
-
- Adds an enumeration of labels at a position
- The position
- The labels
- The same code matcher
-
-
-
- Sets jump to
- Branch instruction
- Destination for the jump
- [out] The created label
- The same code matcher
-
-
-
- Inserts some instructions
- The instructions
- The same code matcher
-
-
-
- Inserts an enumeration of instructions
- The instructions
- The same code matcher
-
-
-
- Inserts a branch
- The branch opcode
- Branch destination
- The same code matcher
-
-
-
- Inserts some instructions and advances the position
- The instructions
- The same code matcher
-
-
-
- Inserts an enumeration of instructions and advances the position
- The instructions
- The same code matcher
-
-
-
- Inserts a branch and advances the position
- The branch opcode
- Branch destination
- The same code matcher
-
-
-
- Removes current instruction
- The same code matcher
-
-
-
- Removes some instruction from current position by count
- Number of instructions
- The same code matcher
-
-
-
- Removes the instructions in a range
- The start
- The end
- The same code matcher
-
-
-
- Removes the instructions in a offset range
- The start offset
- The end offset
- The same code matcher
-
-
-
- Advances the current position
- The offset
- The same code matcher
-
-
-
- Moves the current position to the start
- The same code matcher
-
-
-
- Moves the current position to the end
- The same code matcher
-
-
-
- Searches forward with a predicate and advances position
- The predicate
- The same code matcher
-
-
-
- Searches backwards with a predicate and reverses position
- The predicate
- The same code matcher
-
-
-
- Matches forward and advances position to beginning of matching sequence
- Some code matches
- The same code matcher
-
-
-
- Matches forward and advances position to ending of matching sequence
- Some code matches
- The same code matcher
-
-
-
- Matches backwards and reverses position to beginning of matching sequence
- Some code matches
- The same code matcher
-
-
-
- Matches backwards and reverses position to ending of matching sequence
- Some code matches
- The same code matcher
-
-
-
- Repeats a match action until boundaries are met
- The match action
- An optional action that is executed when no match is found
- The same code matcher
-
-
-
- Gets a match by its name
- The match name
- An instruction
-
-
-
- General extensions for common cases
-
-
-
- Joins an enumeration with a value converter and a delimiter to a string
- The inner type of the enumeration
- The enumeration
- An optional value converter (from T to string)
- An optional delimiter
- The values joined into a string
-
-
-
- Converts an array of types (for example methods arguments) into a human readable form
- The array of types
- A human readable description including brackets
-
-
-
- A full description of a type
- The type
- A human readable description
-
-
-
- A a full description of a method or a constructor without assembly details but with generics
- The method/constructor
- A human readable description
-
-
-
- A helper converting parameter infos to types
- The array of parameter infos
- An array of types
-
-
-
- A helper to access a value via key from a dictionary
- The key type
- The value type
- The dictionary
- The key
- The value for the key or the default value (of T) if that key does not exist
-
-
-
- A helper to access a value via key from a dictionary with extra casting
- The value type
- The dictionary
- The key
- The value for the key or the default value (of T) if that key does not exist or cannot be cast to T
-
-
-
- Escapes Unicode and ASCII non printable characters
- The string to convert
- The string to convert
- A string literal surrounded by
-
-
-
- Extensions for
-
-
-
- Returns if an is initialized and valid
- The
-
-
-
- Shortcut for testing whether the operand is equal to a non-null value
- The
- The value
- True if the operand has the same type and is equal to the value
-
-
-
- Shortcut for testing whether the operand is equal to a non-null value
- The
- The value
- True if the operand is equal to the value
- This is an optimized version of for
-
-
-
- Shortcut for code.opcode == opcode && code.OperandIs(operand)
- The
- The
- The operand value
- True if the opcode is equal to the given opcode and the operand has the same type and is equal to the given operand
-
-
-
- Shortcut for code.opcode == opcode && code.OperandIs(operand)
- The
- The
- The operand value
- True if the opcode is equal to the given opcode and the operand is equal to the given operand
- This is an optimized version of for
-
-
-
- Tests for any form of Ldarg*
- The
- The (optional) index
- True if it matches one of the variations
-
-
-
- Tests for Ldarga/Ldarga_S
- The
- The (optional) index
- True if it matches one of the variations
-
-
-
- Tests for Starg/Starg_S
- The
- The (optional) index
- True if it matches one of the variations
-
-
-
- Tests for any form of Ldloc*
- The
- The optional local variable
- True if it matches one of the variations
-
-
-
- Tests for any form of Stloc*
- The
- The optional local variable
- True if it matches one of the variations
-
-
-
- Tests if the code instruction branches
- The
- The label if the instruction is a branch operation or if not
- True if the instruction branches
-
-
-
- Tests if the code instruction calls the method/constructor
- The
- The method
- True if the instruction calls the method or constructor
-
-
-
- Tests if the code instruction loads a constant
- The
- True if the instruction loads a constant
-
-
-
- Tests if the code instruction loads an integer constant
- The
- The integer constant
- True if the instruction loads the constant
-
-
-
- Tests if the code instruction loads a floating point constant
- The
- The floating point constant
- True if the instruction loads the constant
-
-
-
- Tests if the code instruction loads an enum constant
- The
- The enum
- True if the instruction loads the constant
-
-
-
- Tests if the code instruction loads a string constant
- The
- The string
- True if the instruction loads the constant
-
-
-
- Tests if the code instruction loads a field
- The
- The field
- Set to true if the address of the field is loaded
- True if the instruction loads the field
-
-
-
- Tests if the code instruction stores a field
- The
- The field
- True if the instruction stores this field
-
-
-
- Adds labels to the code instruction and return it
- The
- One or several to add
- The same code instruction
-
-
- Adds labels to the code instruction and return it
- The
- An enumeration of
- The same code instruction
-
-
- Extracts all labels from the code instruction and returns them
- The
- A list of
-
-
- Moves all labels from the code instruction to another one
- The to move the labels from
- The other to move the labels to
- The code instruction labels were moved from (now empty)
-
-
- Moves all labels from another code instruction to the current one
- The to move the labels to
- The other to move the labels from
- The code instruction that received the labels
-
-
- Adds ExceptionBlocks to the code instruction and return it
- The
- One or several to add
- The same code instruction
-
-
- Adds ExceptionBlocks to the code instruction and return it
- The
- An enumeration of
- The same code instruction
-
-
- Extracts all ExceptionBlocks from the code instruction and returns them
- The
- A list of
-
-
- Moves all ExceptionBlocks from the code instruction to another one
- The to move the ExceptionBlocks from
- The other to move the ExceptionBlocks to
- The code instruction blocks were moved from (now empty)
-
-
- Moves all ExceptionBlocks from another code instruction to the current one
- The to move the ExceptionBlocks to
- The other to move the ExceptionBlocks from
- The code instruction that received the blocks
-
-
- General extensions for collections
-
-
-
- A simple way to execute code for every element in a collection
- The inner type of the collection
- The collection
- The action to execute
-
-
-
- A simple way to execute code for elements in a collection matching a condition
- The inner type of the collection
- The collection
- The predicate
- The action to execute
-
-
-
- A helper to add an item to a collection
- The inner type of the collection
- The collection
- The item to add
- The collection containing the item
-
-
-
- A helper to add an item to an array
- The inner type of the collection
- The array
- The item to add
- The array containing the item
-
-
-
- A helper to add items to an array
- The inner type of the collection
- The array
- The items to add
- The array containing the items
-
-
-
- General extensions for collections
-
-
-
- Tests a class member if it has an IL method body (external methods for example don't have a body)
- The member to test
- Returns true if the member has an IL body or false if not
-
-
- A file log for debugging
-
-
-
- Set this to make Harmony write its log content to this stream
-
-
-
- Full pathname of the log file, defaults to a file called harmony.log.txt on your Desktop
-
-
-
- The indent character. The default is tab
-
-
-
- The current indent level
-
-
-
- Changes the indentation level
- The value to add to the indentation level
-
-
-
- Log a string in a buffered way. Use this method only if you are sure that FlushBuffer will be called
- or else logging information is incomplete in case of a crash
- The string to log
-
-
-
- Logs a list of string in a buffered way. Use this method only if you are sure that FlushBuffer will be called
- or else logging information is incomplete in case of a crash
- A list of strings to log (they will not be re-indented)
-
-
-
- Returns the log buffer and optionally empties it
- True to empty the buffer
- The buffer.
-
-
-
- Replaces the buffer with new lines
- The lines to store
-
-
-
- Flushes the log buffer to disk (use in combination with LogBuffered)
-
-
-
- Log a string directly to disk. Slower method that prevents missing information in case of a crash
- The string to log.
-
-
-
- Log a string directly to disk if Harmony.DEBUG is true. Slower method that prevents missing information in case of a crash
- The string to log.
-
-
-
- Resets and deletes the log
-
-
-
- Logs some bytes as hex values
- The pointer to some memory
- The length of bytes to log
-
-
-
- A helper class to retrieve reflection info for non-private methods
-
-
-
- Given a lambda expression that calls a method, returns the method info
- The lambda expression using the method
- The method in the lambda expression
-
-
-
- Given a lambda expression that calls a method, returns the method info
- The generic type
- The lambda expression using the method
- The method in the lambda expression
-
-
-
- Given a lambda expression that calls a method, returns the method info
- The generic type
- The generic result type
- The lambda expression using the method
- The method in the lambda expression
-
-
-
- Given a lambda expression that calls a method, returns the method info
- The lambda expression using the method
- The method in the lambda expression
-
-
-
- A reflection helper to read and write private elements
- The result type defined by GetValue()
-
-
-
- Creates a traverse instance from an existing instance
- The existing instance
-
-
-
- Gets/Sets the current value
- The value to read or write
-
-
-
- A reflection helper to read and write private elements
-
-
-
- Creates a new traverse instance from a class/type
- The class/type
- A instance
-
-
-
- Creates a new traverse instance from a class T
- The class
- A instance
-
-
-
- Creates a new traverse instance from an instance
- The object
- A instance
-
-
-
- Creates a new traverse instance from a named type
- The type name, for format see
- A instance
-
-
-
- Creates a new and empty traverse instance
-
-
-
- Creates a new traverse instance from a class/type
- The class/type
-
-
-
- Creates a new traverse instance from an instance
- The object
-
-
-
- Gets the current value
- The value
-
-
-
- Gets the current value
- The type of the value
- The value
-
-
-
- Invokes the current method with arguments and returns the result
- The method arguments
- The value returned by the method
-
-
-
- Invokes the current method with arguments and returns the result
- The type of the value
- The method arguments
- The value returned by the method
-
-
-
- Sets a value of the current field or property
- The value
- The same traverse instance
-
-
-
- Gets the type of the current field or property
- The type
-
-
-
- Moves the current traverse instance to a inner type
- The type name
- A traverse instance
-
-
-
- Moves the current traverse instance to a field
- The type name
- A traverse instance
-
-
-
- Moves the current traverse instance to a field
- The type of the field
- The type name
- A traverse instance
-
-
-
- Gets all fields of the current type
- A list of field names
-
-
-
- Moves the current traverse instance to a property
- The type name
- Optional property index
- A traverse instance
-
-
-
- Moves the current traverse instance to a field
- The type of the property
- The type name
- Optional property index
- A traverse instance
-
-
-
- Gets all properties of the current type
- A list of property names
-
-
-
- Moves the current traverse instance to a method
- The name of the method
- The arguments defining the argument types of the method overload
- A traverse instance
-
-
-
- Moves the current traverse instance to a method
- The name of the method
- The argument types of the method
- The arguments for the method
- A traverse instance
-
-
-
- Gets all methods of the current type
- A list of method names
-
-
-
- Checks if the current traverse instance is for a field
- True if its a field
-
-
-
- Checks if the current traverse instance is for a property
- True if its a property
-
-
-
- Checks if the current traverse instance is for a method
- True if its a method
-
-
-
- Checks if the current traverse instance is for a type
- True if its a type
-
-
-
- Iterates over all fields of the current type and executes a traverse action
- Original object
- The action receiving a instance for each field
-
-
-
- Iterates over all fields of the current type and executes a traverse action
- Original object
- Target object
- The action receiving a pair of instances for each field pair
-
-
-
- Iterates over all fields of the current type and executes a traverse action
- Original object
- Target object
- The action receiving a dot path representing the field pair and the instances
-
-
-
- Iterates over all properties of the current type and executes a traverse action
- Original object
- The action receiving a instance for each property
-
-
-
- Iterates over all properties of the current type and executes a traverse action
- Original object
- Target object
- The action receiving a pair of instances for each property pair
-
-
-
- Iterates over all properties of the current type and executes a traverse action
- Original object
- Target object
- The action receiving a dot path representing the property pair and the instances
-
-
-
- A default field action that copies fields to fields
-
-
-
- Returns a string that represents the current traverse
- A string representation
-
-
-
-
diff --git a/1.4/Assemblies/0MultiplayerAPI.dll b/1.4/Assemblies/0MultiplayerAPI.dll
deleted file mode 100644
index 38b8a0e..0000000
Binary files a/1.4/Assemblies/0MultiplayerAPI.dll and /dev/null differ
diff --git a/1.4/Assemblies/Assembly-CSharp-firstpass.dll b/1.4/Assemblies/Assembly-CSharp-firstpass.dll
deleted file mode 100644
index 3110d7d..0000000
Binary files a/1.4/Assemblies/Assembly-CSharp-firstpass.dll and /dev/null differ
diff --git a/1.4/Assemblies/Assembly-CSharp.dll b/1.4/Assemblies/Assembly-CSharp.dll
deleted file mode 100644
index 9eaf3d3..0000000
Binary files a/1.4/Assemblies/Assembly-CSharp.dll and /dev/null differ
diff --git a/1.4/Assemblies/ISharpZipLib.dll b/1.4/Assemblies/ISharpZipLib.dll
deleted file mode 100644
index bb15d24..0000000
Binary files a/1.4/Assemblies/ISharpZipLib.dll and /dev/null differ
diff --git a/1.4/Assemblies/NAudio.dll b/1.4/Assemblies/NAudio.dll
deleted file mode 100644
index decb8dd..0000000
Binary files a/1.4/Assemblies/NAudio.dll and /dev/null differ
diff --git a/1.4/Assemblies/NVorbis.dll b/1.4/Assemblies/NVorbis.dll
deleted file mode 100644
index 89d7214..0000000
Binary files a/1.4/Assemblies/NVorbis.dll and /dev/null differ
diff --git a/1.4/Assemblies/RJW.dll b/1.4/Assemblies/RJW.dll
deleted file mode 100644
index cd73522..0000000
Binary files a/1.4/Assemblies/RJW.dll and /dev/null differ
diff --git a/1.4/Assemblies/Unity.TextMeshPro.dll b/1.4/Assemblies/Unity.TextMeshPro.dll
deleted file mode 100644
index ec29a4f..0000000
Binary files a/1.4/Assemblies/Unity.TextMeshPro.dll and /dev/null differ
diff --git a/1.4/Assemblies/UnityEngine.AIModule.dll b/1.4/Assemblies/UnityEngine.AIModule.dll
deleted file mode 100644
index 78e7704..0000000
Binary files a/1.4/Assemblies/UnityEngine.AIModule.dll and /dev/null differ
diff --git a/1.4/Assemblies/UnityEngine.ARModule.dll b/1.4/Assemblies/UnityEngine.ARModule.dll
deleted file mode 100644
index faa2f92..0000000
Binary files a/1.4/Assemblies/UnityEngine.ARModule.dll and /dev/null differ
diff --git a/1.4/Assemblies/UnityEngine.AccessibilityModule.dll b/1.4/Assemblies/UnityEngine.AccessibilityModule.dll
deleted file mode 100644
index 5229d35..0000000
Binary files a/1.4/Assemblies/UnityEngine.AccessibilityModule.dll and /dev/null differ
diff --git a/1.4/Assemblies/UnityEngine.AndroidJNIModule.dll b/1.4/Assemblies/UnityEngine.AndroidJNIModule.dll
deleted file mode 100644
index 52d1ec4..0000000
Binary files a/1.4/Assemblies/UnityEngine.AndroidJNIModule.dll and /dev/null differ
diff --git a/1.4/Assemblies/UnityEngine.AnimationModule.dll b/1.4/Assemblies/UnityEngine.AnimationModule.dll
deleted file mode 100644
index 6243b6b..0000000
Binary files a/1.4/Assemblies/UnityEngine.AnimationModule.dll and /dev/null differ
diff --git a/1.4/Assemblies/UnityEngine.AssetBundleModule.dll b/1.4/Assemblies/UnityEngine.AssetBundleModule.dll
deleted file mode 100644
index 4762681..0000000
Binary files a/1.4/Assemblies/UnityEngine.AssetBundleModule.dll and /dev/null differ
diff --git a/1.4/Assemblies/UnityEngine.AudioModule.dll b/1.4/Assemblies/UnityEngine.AudioModule.dll
deleted file mode 100644
index 04a092a..0000000
Binary files a/1.4/Assemblies/UnityEngine.AudioModule.dll and /dev/null differ
diff --git a/1.4/Assemblies/UnityEngine.ClothModule.dll b/1.4/Assemblies/UnityEngine.ClothModule.dll
deleted file mode 100644
index e9a819d..0000000
Binary files a/1.4/Assemblies/UnityEngine.ClothModule.dll and /dev/null differ
diff --git a/1.4/Assemblies/UnityEngine.ClusterInputModule.dll b/1.4/Assemblies/UnityEngine.ClusterInputModule.dll
deleted file mode 100644
index 6324fbb..0000000
Binary files a/1.4/Assemblies/UnityEngine.ClusterInputModule.dll and /dev/null differ
diff --git a/1.4/Assemblies/UnityEngine.ClusterRendererModule.dll b/1.4/Assemblies/UnityEngine.ClusterRendererModule.dll
deleted file mode 100644
index 26ef8fa..0000000
Binary files a/1.4/Assemblies/UnityEngine.ClusterRendererModule.dll and /dev/null differ
diff --git a/1.4/Assemblies/UnityEngine.CoreModule.dll b/1.4/Assemblies/UnityEngine.CoreModule.dll
deleted file mode 100644
index 83b2b0a..0000000
Binary files a/1.4/Assemblies/UnityEngine.CoreModule.dll and /dev/null differ
diff --git a/1.4/Assemblies/UnityEngine.CrashReportingModule.dll b/1.4/Assemblies/UnityEngine.CrashReportingModule.dll
deleted file mode 100644
index 7d391bd..0000000
Binary files a/1.4/Assemblies/UnityEngine.CrashReportingModule.dll and /dev/null differ
diff --git a/1.4/Assemblies/UnityEngine.DSPGraphModule.dll b/1.4/Assemblies/UnityEngine.DSPGraphModule.dll
deleted file mode 100644
index eba8cc1..0000000
Binary files a/1.4/Assemblies/UnityEngine.DSPGraphModule.dll and /dev/null differ
diff --git a/1.4/Assemblies/UnityEngine.DirectorModule.dll b/1.4/Assemblies/UnityEngine.DirectorModule.dll
deleted file mode 100644
index 5976cc5..0000000
Binary files a/1.4/Assemblies/UnityEngine.DirectorModule.dll and /dev/null differ
diff --git a/1.4/Assemblies/UnityEngine.GameCenterModule.dll b/1.4/Assemblies/UnityEngine.GameCenterModule.dll
deleted file mode 100644
index 4797dbe..0000000
Binary files a/1.4/Assemblies/UnityEngine.GameCenterModule.dll and /dev/null differ
diff --git a/1.4/Assemblies/UnityEngine.GridModule.dll b/1.4/Assemblies/UnityEngine.GridModule.dll
deleted file mode 100644
index 61c1ec4..0000000
Binary files a/1.4/Assemblies/UnityEngine.GridModule.dll and /dev/null differ
diff --git a/1.4/Assemblies/UnityEngine.InputModule.dll b/1.4/Assemblies/UnityEngine.InputModule.dll
deleted file mode 100644
index 3be4fb9..0000000
Binary files a/1.4/Assemblies/UnityEngine.InputModule.dll and /dev/null differ
diff --git a/1.4/Assemblies/UnityEngine.JSONSerializeModule.dll b/1.4/Assemblies/UnityEngine.JSONSerializeModule.dll
deleted file mode 100644
index cd1981f..0000000
Binary files a/1.4/Assemblies/UnityEngine.JSONSerializeModule.dll and /dev/null differ
diff --git a/1.4/Assemblies/UnityEngine.LocalizationModule.dll b/1.4/Assemblies/UnityEngine.LocalizationModule.dll
deleted file mode 100644
index 292f854..0000000
Binary files a/1.4/Assemblies/UnityEngine.LocalizationModule.dll and /dev/null differ
diff --git a/1.4/Assemblies/UnityEngine.ParticleSystemModule.dll b/1.4/Assemblies/UnityEngine.ParticleSystemModule.dll
deleted file mode 100644
index c570bbe..0000000
Binary files a/1.4/Assemblies/UnityEngine.ParticleSystemModule.dll and /dev/null differ
diff --git a/1.4/Assemblies/UnityEngine.PerformanceReportingModule.dll b/1.4/Assemblies/UnityEngine.PerformanceReportingModule.dll
deleted file mode 100644
index faf6411..0000000
Binary files a/1.4/Assemblies/UnityEngine.PerformanceReportingModule.dll and /dev/null differ
diff --git a/1.4/Assemblies/UnityEngine.Physics2DModule.dll b/1.4/Assemblies/UnityEngine.Physics2DModule.dll
deleted file mode 100644
index 65dba8a..0000000
Binary files a/1.4/Assemblies/UnityEngine.Physics2DModule.dll and /dev/null differ
diff --git a/1.4/Assemblies/UnityEngine.PhysicsModule.dll b/1.4/Assemblies/UnityEngine.PhysicsModule.dll
deleted file mode 100644
index 4a7a9a6..0000000
Binary files a/1.4/Assemblies/UnityEngine.PhysicsModule.dll and /dev/null differ
diff --git a/1.4/Assemblies/UnityEngine.ScreenCaptureModule.dll b/1.4/Assemblies/UnityEngine.ScreenCaptureModule.dll
deleted file mode 100644
index 4ec8198..0000000
Binary files a/1.4/Assemblies/UnityEngine.ScreenCaptureModule.dll and /dev/null differ
diff --git a/1.4/Assemblies/UnityEngine.SpriteMaskModule.dll b/1.4/Assemblies/UnityEngine.SpriteMaskModule.dll
deleted file mode 100644
index 3de5b54..0000000
Binary files a/1.4/Assemblies/UnityEngine.SpriteMaskModule.dll and /dev/null differ
diff --git a/1.4/Assemblies/UnityEngine.SpriteShapeModule.dll b/1.4/Assemblies/UnityEngine.SpriteShapeModule.dll
deleted file mode 100644
index b59a5b8..0000000
Binary files a/1.4/Assemblies/UnityEngine.SpriteShapeModule.dll and /dev/null differ
diff --git a/1.4/Assemblies/UnityEngine.StreamingModule.dll b/1.4/Assemblies/UnityEngine.StreamingModule.dll
deleted file mode 100644
index 69068e5..0000000
Binary files a/1.4/Assemblies/UnityEngine.StreamingModule.dll and /dev/null differ
diff --git a/1.4/Assemblies/UnityEngine.SubsystemsModule.dll b/1.4/Assemblies/UnityEngine.SubsystemsModule.dll
deleted file mode 100644
index b5b7429..0000000
Binary files a/1.4/Assemblies/UnityEngine.SubsystemsModule.dll and /dev/null differ
diff --git a/1.4/Assemblies/UnityEngine.TerrainModule.dll b/1.4/Assemblies/UnityEngine.TerrainModule.dll
deleted file mode 100644
index 18b193e..0000000
Binary files a/1.4/Assemblies/UnityEngine.TerrainModule.dll and /dev/null differ
diff --git a/1.4/Assemblies/UnityEngine.TerrainPhysicsModule.dll b/1.4/Assemblies/UnityEngine.TerrainPhysicsModule.dll
deleted file mode 100644
index 48119b4..0000000
Binary files a/1.4/Assemblies/UnityEngine.TerrainPhysicsModule.dll and /dev/null differ
diff --git a/1.4/Assemblies/UnityEngine.TextCoreModule.dll b/1.4/Assemblies/UnityEngine.TextCoreModule.dll
deleted file mode 100644
index e13a54d..0000000
Binary files a/1.4/Assemblies/UnityEngine.TextCoreModule.dll and /dev/null differ
diff --git a/1.4/Assemblies/UnityEngine.TilemapModule.dll b/1.4/Assemblies/UnityEngine.TilemapModule.dll
deleted file mode 100644
index 6c43665..0000000
Binary files a/1.4/Assemblies/UnityEngine.TilemapModule.dll and /dev/null differ
diff --git a/1.4/Assemblies/UnityEngine.UI.dll b/1.4/Assemblies/UnityEngine.UI.dll
deleted file mode 100644
index ea17de1..0000000
Binary files a/1.4/Assemblies/UnityEngine.UI.dll and /dev/null differ
diff --git a/1.4/Assemblies/UnityEngine.UIElementsModule.dll b/1.4/Assemblies/UnityEngine.UIElementsModule.dll
deleted file mode 100644
index 8dc2716..0000000
Binary files a/1.4/Assemblies/UnityEngine.UIElementsModule.dll and /dev/null differ
diff --git a/1.4/Assemblies/UnityEngine.UIModule.dll b/1.4/Assemblies/UnityEngine.UIModule.dll
deleted file mode 100644
index e082dda..0000000
Binary files a/1.4/Assemblies/UnityEngine.UIModule.dll and /dev/null differ
diff --git a/1.4/Assemblies/UnityEngine.UNETModule.dll b/1.4/Assemblies/UnityEngine.UNETModule.dll
deleted file mode 100644
index 0234fad..0000000
Binary files a/1.4/Assemblies/UnityEngine.UNETModule.dll and /dev/null differ
diff --git a/1.4/Assemblies/UnityEngine.UnityAnalyticsModule.dll b/1.4/Assemblies/UnityEngine.UnityAnalyticsModule.dll
deleted file mode 100644
index e3c39e8..0000000
Binary files a/1.4/Assemblies/UnityEngine.UnityAnalyticsModule.dll and /dev/null differ
diff --git a/1.4/Assemblies/UnityEngine.UnityConnectModule.dll b/1.4/Assemblies/UnityEngine.UnityConnectModule.dll
deleted file mode 100644
index 7ec2470..0000000
Binary files a/1.4/Assemblies/UnityEngine.UnityConnectModule.dll and /dev/null differ
diff --git a/1.4/Assemblies/UnityEngine.UnityWebRequestAssetBundleModule.dll b/1.4/Assemblies/UnityEngine.UnityWebRequestAssetBundleModule.dll
deleted file mode 100644
index 0024d85..0000000
Binary files a/1.4/Assemblies/UnityEngine.UnityWebRequestAssetBundleModule.dll and /dev/null differ
diff --git a/1.4/Assemblies/UnityEngine.UnityWebRequestAudioModule.dll b/1.4/Assemblies/UnityEngine.UnityWebRequestAudioModule.dll
deleted file mode 100644
index d4f9220..0000000
Binary files a/1.4/Assemblies/UnityEngine.UnityWebRequestAudioModule.dll and /dev/null differ
diff --git a/1.4/Assemblies/UnityEngine.UnityWebRequestTextureModule.dll b/1.4/Assemblies/UnityEngine.UnityWebRequestTextureModule.dll
deleted file mode 100644
index d8b643a..0000000
Binary files a/1.4/Assemblies/UnityEngine.UnityWebRequestTextureModule.dll and /dev/null differ
diff --git a/1.4/Assemblies/UnityEngine.UnityWebRequestWWWModule.dll b/1.4/Assemblies/UnityEngine.UnityWebRequestWWWModule.dll
deleted file mode 100644
index b8b8314..0000000
Binary files a/1.4/Assemblies/UnityEngine.UnityWebRequestWWWModule.dll and /dev/null differ
diff --git a/1.4/Assemblies/UnityEngine.VFXModule.dll b/1.4/Assemblies/UnityEngine.VFXModule.dll
deleted file mode 100644
index 0895120..0000000
Binary files a/1.4/Assemblies/UnityEngine.VFXModule.dll and /dev/null differ
diff --git a/1.4/Assemblies/UnityEngine.VRModule.dll b/1.4/Assemblies/UnityEngine.VRModule.dll
deleted file mode 100644
index ea9d6fe..0000000
Binary files a/1.4/Assemblies/UnityEngine.VRModule.dll and /dev/null differ
diff --git a/1.4/Assemblies/UnityEngine.VehiclesModule.dll b/1.4/Assemblies/UnityEngine.VehiclesModule.dll
deleted file mode 100644
index f7c1085..0000000
Binary files a/1.4/Assemblies/UnityEngine.VehiclesModule.dll and /dev/null differ
diff --git a/1.4/Assemblies/UnityEngine.VideoModule.dll b/1.4/Assemblies/UnityEngine.VideoModule.dll
deleted file mode 100644
index 92c9898..0000000
Binary files a/1.4/Assemblies/UnityEngine.VideoModule.dll and /dev/null differ
diff --git a/1.4/Assemblies/UnityEngine.WindModule.dll b/1.4/Assemblies/UnityEngine.WindModule.dll
deleted file mode 100644
index 8ac2232..0000000
Binary files a/1.4/Assemblies/UnityEngine.WindModule.dll and /dev/null differ
diff --git a/1.4/Assemblies/UnityEngine.XRModule.dll b/1.4/Assemblies/UnityEngine.XRModule.dll
deleted file mode 100644
index a58bf6a..0000000
Binary files a/1.4/Assemblies/UnityEngine.XRModule.dll and /dev/null differ
diff --git a/1.4/Assemblies/UnityEngine.dll b/1.4/Assemblies/UnityEngine.dll
deleted file mode 100644
index d45693c..0000000
Binary files a/1.4/Assemblies/UnityEngine.dll and /dev/null differ
diff --git a/1.4/Assemblies/com.rlabrecque.steamworks.net.dll b/1.4/Assemblies/com.rlabrecque.steamworks.net.dll
deleted file mode 100644
index 57edb49..0000000
Binary files a/1.4/Assemblies/com.rlabrecque.steamworks.net.dll and /dev/null differ
diff --git a/C0ffee's RJW Ideology Addons.csproj b/C0ffee's RJW Ideology Addons.csproj
index a6721be..9adb9f6 100644
--- a/C0ffee's RJW Ideology Addons.csproj
+++ b/C0ffee's RJW Ideology Addons.csproj
@@ -35,9 +35,11 @@
..\..\..\..\workshop\content\294100\839005762\1.4\Assemblies\0Harmony.dll
+ False
..\..\RimWorldWin64_Data\Managed\Assembly-CSharp.dll
+ False
..\..\..\..\workshop\content\294100\818773962\v1.3\Assemblies\HugsLib.dll
@@ -45,6 +47,7 @@
..\rjw\1.4\Assemblies\RJW.dll
+ False
@@ -56,9 +59,11 @@
..\..\RimWorldWin64_Data\Managed\UnityEngine.dll
+ False
..\..\RimWorldWin64_Data\Managed\UnityEngine.CoreModule.dll
+ False
diff --git a/CRIALactation/1.4/Assemblies/0Harmony.dll b/CRIALactation/1.4/Assemblies/0Harmony.dll
deleted file mode 100644
index e182535..0000000
Binary files a/CRIALactation/1.4/Assemblies/0Harmony.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/0Harmony.xml b/CRIALactation/1.4/Assemblies/0Harmony.xml
deleted file mode 100644
index f1b9b4c..0000000
--- a/CRIALactation/1.4/Assemblies/0Harmony.xml
+++ /dev/null
@@ -1,3693 +0,0 @@
-
-
-
- 0Harmony
-
-
-
- A factory to create delegate types
-
-
- Default constructor
-
-
- Creates a delegate type for a method
- The method
- The new delegate type
-
-
-
- A getter delegate type
- Type that getter gets field/property value from
- Type of the value that getter gets
- The instance get getter uses
- An delegate
-
-
-
- A setter delegate type
- Type that setter sets field/property value for
- Type of the value that setter sets
- The instance the setter uses
- The value the setter uses
- An delegate
-
-
-
- A constructor delegate type
- Type that constructor creates
- An delegate
-
-
-
- A helper class for fast access to getters and setters
-
-
- Creates an instantiation delegate
- Type that constructor creates
- The new instantiation delegate
-
-
-
- Creates an getter delegate for a property
- Type that getter reads property from
- Type of the property that gets accessed
- The property
- The new getter delegate
-
-
-
- Creates an getter delegate for a field
- Type that getter reads field from
- Type of the field that gets accessed
- The field
- The new getter delegate
-
-
-
- Creates an getter delegate for a field (with a list of possible field names)
- Type that getter reads field/property from
- Type of the field/property that gets accessed
- A list of possible field names
- The new getter delegate
-
-
-
- Creates an setter delegate
- Type that setter assigns property value to
- Type of the property that gets assigned
- The property
- The new setter delegate
-
-
-
- Creates an setter delegate for a field
- Type that setter assigns field value to
- Type of the field that gets assigned
- The field
- The new getter delegate
-
-
-
- A delegate to invoke a method
- The instance
- The method parameters
- The method result
-
-
- A helper class to invoke method with delegates
-
-
- Creates a fast invocation handler from a method
- The method to invoke
- Controls if boxed value object is accessed/updated directly
- The
-
-
- The directBoxValueAccess option controls how value types passed by reference (e.g. ref int, out my_struct) are handled in the arguments array
- passed to the fast invocation handler.
- Since the arguments array is an object array, any value types contained within it are actually references to a boxed value object.
- Like any other object, there can be other references to such boxed value objects, other than the reference within the arguments array.
- For example,
-
- var val = 5;
- var box = (object)val;
- var arr = new object[] { box };
- handler(arr); // for a method with parameter signature: ref/out/in int
-
-
-
-
- If directBoxValueAccess is true, the boxed value object is accessed (and potentially updated) directly when the handler is called,
- such that all references to the boxed object reflect the potentially updated value.
- In the above example, if the method associated with the handler updates the passed (boxed) value to 10, both box and arr[0]
- now reflect the value 10. Note that the original val is not updated, since boxing always copies the value into the new boxed value object.
-
-
- If directBoxValueAccess is false (default), the boxed value object in the arguments array is replaced with a "reboxed" value object,
- such that potential updates to the value are reflected only in the arguments array.
- In the above example, if the method associated with the handler updates the passed (boxed) value to 10, only arr[0] now reflects the value 10.
-
-
-
-
- A low level memory helper
-
-
-
- Mark method for no inlining (currently only works on Mono)
- The method/constructor to change
-
-
-
- Detours a method
- The original method/constructor
- The replacement method/constructor
- An error string
-
-
-
- Writes a jump to memory
- The memory address
- Jump destination
- An error string
-
-
-
- Gets the start of a method in memory
- The method/constructor
- [out] Details of the exception
- The method start address
-
-
-
- special parameter names that can be used in prefix and postfix methods
-
-
- Patch function helpers
-
-
- Sorts patch methods by their priority rules
- The original method
- Patches to sort
- Use debug mode
- The sorted patch methods
-
-
-
- Creates new replacement method with the latest patches and detours the original method
- The original method
- Information describing the patches
- The newly created replacement method
-
-
-
- Creates a patch sorter
- Array of patches that will be sorted
- Use debugging
-
-
- Sorts internal PatchSortingWrapper collection and caches the results.
- After first run the result is provided from the cache.
- The original method
- The sorted patch methods
-
-
- Checks if the sorter was created with the same patch list and as a result can be reused to
- get the sorted order of the patches.
- List of patches to check against
- true if equal
-
-
- Removes one unresolved dependency from the least important patch.
-
-
- Outputs all unblocked patches from the waiting list to results list
-
-
- Adds patch to both results list and handled patches set
- Patch to add
-
-
- Wrapper used over the Patch object to allow faster dependency access and
- dependency removal in case of cyclic dependencies
-
-
- Create patch wrapper object used for sorting
- Patch to wrap
-
-
- Determines how patches sort
- The other patch
- integer to define sort order (-1, 0, 1)
-
-
- Determines whether patches are equal
- The other patch
- true if equal
-
-
- Hash function
- A hash code
-
-
- Bidirectionally registers Patches as after dependencies
- List of dependencies to register
-
-
- Bidirectionally registers Patches as before dependencies
- List of dependencies to register
-
-
- Bidirectionally removes Patch from after dependencies
- Patch to remove
-
-
- Bidirectionally removes Patch from before dependencies
- Patch to remove
-
-
- Specifies the type of method
-
-
-
- This is a normal method
-
-
- This is a getter
-
-
- This is a setter
-
-
- This is a constructor
-
-
- This is a static constructor
-
-
- This targets the MoveNext method of the enumerator result
-
-
- Specifies the type of argument
-
-
-
- This is a normal argument
-
-
- This is a reference argument (ref)
-
-
- This is an out argument (out)
-
-
- This is a pointer argument (&)
-
-
- Specifies the type of patch
-
-
-
- Any patch
-
-
- A prefix patch
-
-
- A postfix patch
-
-
- A transpiler
-
-
- A finalizer
-
-
- A reverse patch
-
-
- Specifies the type of reverse patch
-
-
-
- Use the unmodified original method (directly from IL)
-
-
- Use the original as it is right now including previous patches but excluding future ones
-
-
- Specifies the type of method call dispatching mechanics
-
-
-
- Call the method using dynamic dispatching if method is virtual (including overriden)
-
-
- This is the built-in form of late binding (a.k.a. dynamic binding) and is the default dispatching mechanic in C#.
- This directly corresponds with the instruction.
-
-
- For virtual (including overriden) methods, the instance type's most-derived/overriden implementation of the method is called.
- For non-virtual (including static) methods, same behavior as : the exact specified method implementation is called.
-
-
- Note: This is not a fully dynamic dispatch, since non-virtual (including static) methods are still called non-virtually.
- A fully dynamic dispatch in C# involves using
- the dynamic type
- (actually a fully dynamic binding, since even the name and overload resolution happens at runtime), which does not support.
-
-
-
-
- Call the method using static dispatching, regardless of whether method is virtual (including overriden) or non-virtual (including static)
-
-
- a.k.a. non-virtual dispatching, early binding, or static binding.
- This directly corresponds with the instruction.
-
-
- For both virtual (including overriden) and non-virtual (including static) methods, the exact specified method implementation is called, without virtual/override mechanics.
-
-
-
-
- The base class for all Harmony annotations (not meant to be used directly)
-
-
-
- The common information for all attributes
-
-
- Annotation to define your Harmony patch methods
-
-
-
- An empty annotation can be used together with TargetMethod(s)
-
-
-
- An annotation that specifies a class to patch
- The declaring class/type
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The declaring class/type
- The argument types of the method or constructor to patch
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The declaring class/type
- The name of the method, property or constructor to patch
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The declaring class/type
- The name of the method, property or constructor to patch
- An array of argument types to target overloads
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The declaring class/type
- The name of the method, property or constructor to patch
- An array of argument types to target overloads
- Array of
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The declaring class/type
- The
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The declaring class/type
- The
- An array of argument types to target overloads
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The declaring class/type
- The
- An array of argument types to target overloads
- Array of
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The declaring class/type
- The name of the method, property or constructor to patch
- The
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The name of the method, property or constructor to patch
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The name of the method, property or constructor to patch
- An array of argument types to target overloads
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The name of the method, property or constructor to patch
- An array of argument types to target overloads
- An array of
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The name of the method, property or constructor to patch
- The
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The
- An array of argument types to target overloads
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The
- An array of argument types to target overloads
- An array of
-
-
-
- An annotation that specifies a method, property or constructor to patch
- An array of argument types to target overloads
-
-
-
- An annotation that specifies a method, property or constructor to patch
- An array of argument types to target overloads
- An array of
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The full name of the declaring class/type
- The name of the method, property or constructor to patch
- The
-
-
-
- Annotation to define the original method for delegate injection
-
-
-
- An annotation that specifies a class to patch
- The declaring class/type
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The declaring class/type
- The argument types of the method or constructor to patch
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The declaring class/type
- The name of the method, property or constructor to patch
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The declaring class/type
- The name of the method, property or constructor to patch
- An array of argument types to target overloads
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The declaring class/type
- The name of the method, property or constructor to patch
- An array of argument types to target overloads
- Array of
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The declaring class/type
- The
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The declaring class/type
- The
- An array of argument types to target overloads
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The declaring class/type
- The
- An array of argument types to target overloads
- Array of
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The declaring class/type
- The name of the method, property or constructor to patch
- The
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The name of the method, property or constructor to patch
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The name of the method, property or constructor to patch
- An array of argument types to target overloads
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The name of the method, property or constructor to patch
- An array of argument types to target overloads
- An array of
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The name of the method, property or constructor to patch
- The
-
-
-
- An annotation that specifies call dispatching mechanics for the delegate
- The
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The
- An array of argument types to target overloads
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The
- An array of argument types to target overloads
- An array of
-
-
-
- An annotation that specifies a method, property or constructor to patch
- An array of argument types to target overloads
-
-
-
- An annotation that specifies a method, property or constructor to patch
- An array of argument types to target overloads
- An array of
-
-
-
- Annotation to define your standin methods for reverse patching
-
-
-
- An annotation that specifies the type of reverse patching
- The of the reverse patch
-
-
-
- A Harmony annotation to define that all methods in a class are to be patched
-
-
-
- A Harmony annotation
-
-
-
- A Harmony annotation to define patch priority
- The priority
-
-
-
- A Harmony annotation
-
-
-
- A Harmony annotation to define that a patch comes before another patch
- The array of harmony IDs of the other patches
-
-
-
- A Harmony annotation
-
-
- A Harmony annotation to define that a patch comes after another patch
- The array of harmony IDs of the other patches
-
-
-
- A Harmony annotation
-
-
- A Harmony annotation to debug a patch (output uses to log to your Desktop)
-
-
-
- Specifies the Prepare function in a patch class
-
-
-
- Specifies the Cleanup function in a patch class
-
-
-
- Specifies the TargetMethod function in a patch class
-
-
-
- Specifies the TargetMethods function in a patch class
-
-
-
- Specifies the Prefix function in a patch class
-
-
-
- Specifies the Postfix function in a patch class
-
-
-
- Specifies the Transpiler function in a patch class
-
-
-
- Specifies the Finalizer function in a patch class
-
-
-
- A Harmony annotation
-
-
-
- The name of the original argument
-
-
-
- The index of the original argument
-
-
-
- The new name of the original argument
-
-
-
- An annotation to declare injected arguments by name
-
-
-
- An annotation to declare injected arguments by index
- Zero-based index
-
-
-
- An annotation to declare injected arguments by renaming them
- Name of the original argument
- New name
-
-
-
- An annotation to declare injected arguments by index and renaming them
- Zero-based index
- New name
-
-
-
- An abstract wrapper around OpCode and their operands. Used by transpilers
-
-
-
- The opcode
-
-
-
- The operand
-
-
-
- All labels defined on this instruction
-
-
-
- All exception block boundaries defined on this instruction
-
-
-
- Creates a new CodeInstruction with a given opcode and optional operand
- The opcode
- The operand
-
-
-
- Create a full copy (including labels and exception blocks) of a CodeInstruction
- The to copy
-
-
-
- Clones a CodeInstruction and resets its labels and exception blocks
- A lightweight copy of this code instruction
-
-
-
- Clones a CodeInstruction, resets labels and exception blocks and sets its opcode
- The opcode
- A copy of this CodeInstruction with a new opcode
-
-
-
- Clones a CodeInstruction, resets labels and exception blocks and sets its operand
- The operand
- A copy of this CodeInstruction with a new operand
-
-
-
- Creates a CodeInstruction calling a method (CALL)
- The class/type where the method is declared
- The name of the method (case sensitive)
- Optional parameters to target a specific overload of the method
- Optional list of types that define the generic version of the method
- A code instruction that calls the method matching the arguments
-
-
-
- Creates a CodeInstruction calling a method (CALL)
- The target method in the form TypeFullName:MethodName, where the type name matches a form recognized by Type.GetType like Some.Namespace.Type.
- Optional parameters to target a specific overload of the method
- Optional list of types that define the generic version of the method
- A code instruction that calls the method matching the arguments
-
-
-
- Creates a CodeInstruction calling a method (CALL)
- The lambda expression using the method
-
-
-
-
- Creates a CodeInstruction calling a method (CALL)
- The lambda expression using the method
-
-
-
-
- Creates a CodeInstruction calling a method (CALL)
- The lambda expression using the method
-
-
-
-
- Creates a CodeInstruction calling a method (CALL)
- The lambda expression using the method
-
-
-
-
- Returns an instruction to call the specified closure
- The delegate type to emit
- The closure that defines the method to call
- A that calls the closure as a method
-
-
-
- Creates a CodeInstruction loading a field (LD[S]FLD[A])
- The class/type where the field is defined
- The name of the field (case sensitive)
- Use address of field
-
-
-
- Creates a CodeInstruction storing to a field (ST[S]FLD)
- The class/type where the field is defined
- The name of the field (case sensitive)
-
-
-
- Returns a string representation of the code instruction
- A string representation of the code instruction
-
-
-
- Exception block types
-
-
-
- The beginning of an exception block
-
-
-
- The beginning of a catch block
-
-
-
- The beginning of an except filter block (currently not supported to use in a patch)
-
-
-
- The beginning of a fault block
-
-
-
- The beginning of a finally block
-
-
-
- The end of an exception block
-
-
-
- An exception block
-
-
-
- Block type
-
-
-
- Catch type
-
-
-
- Creates an exception block
- The
- The catch type
-
-
-
- The Harmony instance is the main entry to Harmony. After creating one with an unique identifier, it is used to patch and query the current application domain
-
-
-
- The unique identifier
-
-
-
- Set to true before instantiating Harmony to debug Harmony or use an environment variable to set HARMONY_DEBUG to '1' like this: cmd /C "set HARMONY_DEBUG=1 && game.exe"
- This is for full debugging. To debug only specific patches, use the attribute
-
-
-
- Creates a new Harmony instance
- A unique identifier (you choose your own)
- A Harmony instance
-
-
-
- Searches the current assembly for Harmony annotations and uses them to create patches
- This method can fail to use the correct assembly when being inlined. It calls StackTrace.GetFrame(1) which can point to the wrong method/assembly. If you are unsure or run into problems, use PatchAll(Assembly.GetExecutingAssembly())
instead.
-
-
-
- Creates a empty patch processor for an original method
- The original method/constructor
- A new instance
-
-
-
- Creates a patch class processor from an annotated class
- The class/type
- A new instance
-
-
-
- Creates a reverse patcher for one of your stub methods
- The original method/constructor
- The stand-in stub method as
- A new instance
-
-
-
- Searches an assembly for Harmony annotations and uses them to create patches
- The assembly
-
-
-
- Creates patches by manually specifying the methods
- The original method/constructor
- An optional prefix method wrapped in a object
- An optional postfix method wrapped in a object
- An optional transpiler method wrapped in a object
- An optional finalizer method wrapped in a object
- The replacement method that was created to patch the original method
-
-
-
- Patches a foreign method onto a stub method of yours and optionally applies transpilers during the process
- The original method/constructor you want to duplicate
- Your stub method as that will become the original. Needs to have the correct signature (either original or whatever your transpilers generates)
- An optional transpiler as method that will be applied during the process
- The replacement method that was created to patch the stub method
-
-
-
- Unpatches methods by patching them with zero patches. Fully unpatching is not supported. Be careful, unpatching is global
- The optional Harmony ID to restrict unpatching to a specific Harmony instance
- This method could be static if it wasn't for the fact that unpatching creates a new replacement method that contains your harmony ID
-
-
-
- Unpatches a method by patching it with zero patches. Fully unpatching is not supported. Be careful, unpatching is global
- The original method/constructor
- The
- The optional Harmony ID to restrict unpatching to a specific Harmony instance
-
-
-
- Unpatches a method by patching it with zero patches. Fully unpatching is not supported. Be careful, unpatching is global
- The original method/constructor
- The patch method as method to remove
-
-
-
- Test for patches from a specific Harmony ID
- The Harmony ID
- True if patches for this ID exist
-
-
-
- Gets patch information for a given original method
- The original method/constructor
- The patch information as
-
-
-
- Gets the methods this instance has patched
- An enumeration of original methods/constructors
-
-
-
- Gets all patched original methods in the appdomain
- An enumeration of patched original methods/constructors
-
-
-
- Gets the original method from a given replacement method
- A replacement method, for example from a stacktrace
- The original method/constructor or null if not found
-
-
-
- Tries to get the method from a stackframe including dynamic replacement methods
- The
- For normal frames, frame.GetMethod() is returned. For frames containing patched methods, the replacement method is returned or null if no method can be found
-
-
-
- Gets the original method from the stackframe and uses original if method is a dynamic replacement
- The
- The original method from that stackframe
-
-
- Gets Harmony version for all active Harmony instances
- [out] The current Harmony version
- A dictionary containing assembly versions keyed by Harmony IDs
-
-
-
- Under Mono, HarmonyException wraps IL compile errors with detailed information about the failure
-
-
-
- Default serialization constructor (not implemented)
- The info
- The context
-
-
-
- Get a list of IL instructions in pairs of offset+code
- A list of key/value pairs which represent an offset and the code at that offset
-
-
-
- Get a list of IL instructions without offsets
- A list of
-
-
-
- Get the error offset of the errornous IL instruction
- The offset
-
-
-
- Get the index of the errornous IL instruction
- The index into the list of instructions or -1 if not found
-
-
-
- A wrapper around a method to use it as a patch (for example a Prefix)
-
-
-
- The original method
-
-
-
- Class/type declaring this patch
-
-
-
- Patch method name
-
-
-
- Optional patch
-
-
-
- Array of argument types of the patch method
-
-
-
- of the patch
-
-
-
- Install this patch before patches with these Harmony IDs
-
-
-
- Install this patch after patches with these Harmony IDs
-
-
-
- Reverse patch type, see
-
-
-
- Create debug output for this patch
-
-
-
- Whether to use (true) or (false) mechanics
- for -attributed delegate
-
-
-
- Default constructor
-
-
-
- Creates a patch from a given method
- The original method
-
-
-
- Creates a patch from a given method
- The original method
- The patch
- A list of harmony IDs that should come after this patch
- A list of harmony IDs that should come before this patch
- Set to true to generate debug output
-
-
-
- Creates a patch from a given method
- The patch class/type
- The patch method name
- The optional argument types of the patch method (for overloaded methods)
-
-
-
- Gets the names of all internal patch info fields
- A list of field names
-
-
-
- Merges annotations
- The list of to merge
- The merged
-
-
-
- Returns a string that represents the annotation
- A string representation
-
-
-
- Annotation extensions
-
-
-
- Copies annotation information
- The source
- The destination
-
-
-
- Clones an annotation
- The to clone
- A copied
-
-
-
- Merges annotations
- The master
- The detail
- A new, merged
-
-
-
- Gets all annotations on a class/type
- The class/type
- A list of all
-
-
-
- Gets merged annotations on a class/type
- The class/type
- The merged
-
-
-
- Gets all annotations on a method
- The method/constructor
- A list of
-
-
-
- Gets merged annotations on a method
- The method/constructor
- The merged
-
-
-
-
- A mutable representation of an inline signature, similar to Mono.Cecil's CallSite.
- Used by the calli instruction, can be used by transpilers
-
-
-
-
- See
-
-
-
- See
-
-
-
- See
-
-
-
- The list of all parameter types or function pointer signatures received by the call site
-
-
-
- The return type or function pointer signature returned by the call site
-
-
-
- Returns a string representation of the inline signature
- A string representation of the inline signature
-
-
-
-
- A mutable representation of a parameter type with an attached type modifier,
- similar to Mono.Cecil's OptionalModifierType / RequiredModifierType and C#'s modopt / modreq
-
-
-
-
- Whether this is a modopt (optional modifier type) or a modreq (required modifier type)
-
-
-
- The modifier type attached to the parameter type
-
-
-
- The modified parameter type
-
-
-
- Returns a string representation of the modifier type
- A string representation of the modifier type
-
-
-
- Patch serialization
-
-
-
- Control the binding of a serialized object to a type
- Specifies the assembly name of the serialized object
- Specifies the type name of the serialized object
- The type of the object the formatter creates a new instance of
-
-
-
- Serializes a patch info
- The
- The serialized data
-
-
-
- Deserialize a patch info
- The serialized data
- A
-
-
-
- Compare function to sort patch priorities
- The patch
- Zero-based index
- The priority
- A standard sort integer (-1, 0, 1)
-
-
-
- Serializable patch information
-
-
-
- Prefixes as an array of
-
-
-
- Postfixes as an array of
-
-
-
- Transpilers as an array of
-
-
-
- Finalizers as an array of
-
-
-
- Returns if any of the patches wants debugging turned on
-
-
-
- Adds prefixes
- An owner (Harmony ID)
- The patch methods
-
-
-
- Adds a prefix
-
-
- Removes prefixes
- The owner of the prefixes, or * for all
-
-
-
- Adds postfixes
- An owner (Harmony ID)
- The patch methods
-
-
-
- Adds a postfix
-
-
- Removes postfixes
- The owner of the postfixes, or * for all
-
-
-
- Adds transpilers
- An owner (Harmony ID)
- The patch methods
-
-
-
- Adds a transpiler
-
-
- Removes transpilers
- The owner of the transpilers, or * for all
-
-
-
- Adds finalizers
- An owner (Harmony ID)
- The patch methods
-
-
-
- Adds a finalizer
-
-
- Removes finalizers
- The owner of the finalizers, or * for all
-
-
-
- Removes a patch using its method
- The method of the patch to remove
-
-
-
- Gets a concatenated list of patches
- The Harmony instance ID adding the new patches
- The patches to add
- The current patches
-
-
-
- Gets a list of patches with any from the given owner removed
- The owner of the methods, or * for all
- The current patches
-
-
-
- A serializable patch
-
-
-
- Zero-based index
-
-
-
- The owner (Harmony ID)
-
-
-
- The priority, see
-
-
-
- Keep this patch before the patches indicated in the list of Harmony IDs
-
-
-
- Keep this patch after the patches indicated in the list of Harmony IDs
-
-
-
- A flag that will log the replacement method via every time this patch is used to build the replacement, even in the future
-
-
-
- The method of the static patch method
-
-
-
- Creates a patch
- The method of the patch
- Zero-based index
- An owner (Harmony ID)
- The priority, see
- A list of Harmony IDs for patches that should run after this patch
- A list of Harmony IDs for patches that should run before this patch
- A flag that will log the replacement method via every time this patch is used to build the replacement, even in the future
-
-
-
- Creates a patch
- The method of the patch
- Zero-based index
- An owner (Harmony ID)
-
-
- Get the patch method or a DynamicMethod if original patch method is a patch factory
- The original method/constructor
- The method of the patch
-
-
-
- Determines whether patches are equal
- The other patch
- true if equal
-
-
-
- Determines how patches sort
- The other patch
- integer to define sort order (-1, 0, 1)
-
-
-
- Hash function
- A hash code
-
-
-
- A PatchClassProcessor used to turn on a class/type into patches
-
-
-
- Creates a patch class processor by pointing out a class. Similar to PatchAll() but without searching through all classes.
- The Harmony instance
- The class to process (need to have at least a [HarmonyPatch] attribute)
-
-
-
- Applies the patches
- A list of all created replacement methods or null if patch class is not annotated
-
-
-
- A group of patches
-
-
-
- A collection of prefix
-
-
-
- A collection of postfix
-
-
-
- A collection of transpiler
-
-
-
- A collection of finalizer
-
-
-
- Gets all owners (Harmony IDs) or all known patches
- The patch owners
-
-
-
- Creates a group of patches
- An array of prefixes as
- An array of postfixes as
- An array of transpileres as
- An array of finalizeres as
-
-
-
- A PatchProcessor handles patches on a method/constructor
-
-
-
- Creates an empty patch processor
- The Harmony instance
- The original method/constructor
-
-
-
- Adds a prefix
- The prefix as a
- A for chaining calls
-
-
-
- Adds a prefix
- The prefix method
- A for chaining calls
-
-
-
- Adds a postfix
- The postfix as a
- A for chaining calls
-
-
-
- Adds a postfix
- The postfix method
- A for chaining calls
-
-
-
- Adds a transpiler
- The transpiler as a
- A for chaining calls
-
-
-
- Adds a transpiler
- The transpiler method
- A for chaining calls
-
-
-
- Adds a finalizer
- The finalizer as a
- A for chaining calls
-
-
-
- Adds a finalizer
- The finalizer method
- A for chaining calls
-
-
-
- Gets all patched original methods in the appdomain
- An enumeration of patched method/constructor
-
-
-
- Applies all registered patches
- The generated replacement method
-
-
-
- Unpatches patches of a given type and/or Harmony ID
- The patch type
- Harmony ID or * for any
- A for chaining calls
-
-
-
- Unpatches a specific patch
- The method of the patch
- A for chaining calls
-
-
-
- Gets patch information on an original
- The original method/constructor
- The patch information as
-
-
-
- Sort patch methods by their priority rules
- The original method
- Patches to sort
- The sorted patch methods
-
-
-
- Gets Harmony version for all active Harmony instances
- [out] The current Harmony version
- A dictionary containing assembly version keyed by Harmony ID
-
-
-
- Creates a new empty generator to use when reading method bodies
- A new
-
-
-
- Creates a new generator matching the method/constructor to use when reading method bodies
- The original method/constructor to copy method information from
- A new
-
-
-
- Returns the methods unmodified list of code instructions
- The original method/constructor
- Optionally an existing generator that will be used to create all local variables and labels contained in the result (if not specified, an internal generator is used)
- A list containing all the original
-
-
-
- Returns the methods unmodified list of code instructions
- The original method/constructor
- A new generator that now contains all local variables and labels contained in the result
- A list containing all the original
-
-
-
- Returns the methods current list of code instructions after all existing transpilers have been applied
- The original method/constructor
- Apply only the first count of transpilers
- Optionally an existing generator that will be used to create all local variables and labels contained in the result (if not specified, an internal generator is used)
- A list of
-
-
-
- Returns the methods current list of code instructions after all existing transpilers have been applied
- The original method/constructor
- A new generator that now contains all local variables and labels contained in the result
- Apply only the first count of transpilers
- A list of
-
-
-
- A low level way to read the body of a method. Used for quick searching in methods
- The original method
- All instructions as opcode/operand pairs
-
-
-
- A low level way to read the body of a method. Used for quick searching in methods
- The original method
- An existing generator that will be used to create all local variables and labels contained in the result
- All instructions as opcode/operand pairs
-
-
-
- A patch priority
-
-
-
- Patch last
-
-
-
- Patch with very low priority
-
-
-
- Patch with low priority
-
-
-
- Patch with lower than normal priority
-
-
-
- Patch with normal priority
-
-
-
- Patch with higher than normal priority
-
-
-
- Patch with high priority
-
-
-
- Patch with very high priority
-
-
-
- Patch first
-
-
-
- A reverse patcher
-
-
-
- Creates a reverse patcher
- The Harmony instance
- The original method/constructor
- Your stand-in stub method as
-
-
-
- Applies the patch
- The type of patch, see
- The generated replacement method
-
-
-
- A collection of commonly used transpilers
-
-
-
- A transpiler that replaces all occurrences of a given method with another one using the same signature
- The enumeration of to act on
- Method or constructor to search for
- Method or constructor to replace with
- Modified enumeration of
-
-
-
- A transpiler that alters instructions that match a predicate by calling an action
- The enumeration of to act on
- A predicate selecting the instructions to change
- An action to apply to matching instructions
- Modified enumeration of
-
-
-
- A transpiler that logs a text at the beginning of the method
- The instructions to act on
- The log text
- Modified enumeration of
-
-
-
- A helper class for reflection related functions
-
-
-
- Shortcut for to simplify the use of reflections and make it work for any access level
-
-
-
- Shortcut for to simplify the use of reflections and make it work for any access level but only within the current type
-
-
-
- Enumerates all assemblies in the current app domain, excluding visual studio assemblies
- An enumeration of
-
-
- Gets a type by name. Prefers a full name with namespace but falls back to the first type matching the name otherwise
- The name
- A type or null if not found
-
-
-
- Gets all successfully loaded types from a given assembly
- The assembly
- An array of types
-
- This calls and returns , while catching any thrown .
- If such an exception is thrown, returns the successfully loaded types (,
- filtered for non-null values).
-
-
-
-
- Enumerates all successfully loaded types in the current app domain, excluding visual studio assemblies
- An enumeration of all in all assemblies, excluding visual studio assemblies
-
-
- Applies a function going up the type hierarchy and stops at the first non-null result
- Result type of func()
- The class/type to start with
- The evaluation function returning T
- The first non-null result, or null if no match
-
- The type hierarchy of a class or value type (including struct) does NOT include implemented interfaces,
- and the type hierarchy of an interface is only itself (regardless of whether that interface implements other interfaces).
- The top-most type in the type hierarchy of all non-interface types (including value types) is .
-
-
-
-
- Applies a function going into inner types and stops at the first non-null result
- Generic type parameter
- The class/type to start with
- The evaluation function returning T
- The first non-null result, or null if no match
-
-
-
- Gets the reflection information for a directly declared field
- The class/type where the field is defined
- The name of the field
- A field or null when type/name is null or when the field cannot be found
-
-
-
- Gets the reflection information for a directly declared field
- The member in the form TypeFullName:MemberName, where TypeFullName matches the form recognized by Type.GetType like Some.Namespace.Type.
- A field or null when the field cannot be found
-
-
-
- Gets the reflection information for a field by searching the type and all its super types
- The class/type where the field is defined
- The name of the field (case sensitive)
- A field or null when type/name is null or when the field cannot be found
-
-
-
- Gets the reflection information for a field by searching the type and all its super types
- The member in the form TypeFullName:MemberName, where TypeFullName matches the form recognized by Type.GetType like Some.Namespace.Type.
- A field or null when the field cannot be found
-
-
-
- Gets the reflection information for a field
- The class/type where the field is declared
- The zero-based index of the field inside the class definition
- A field or null when type is null or when the field cannot be found
-
-
-
- Gets the reflection information for a directly declared property
- The class/type where the property is declared
- The name of the property (case sensitive)
- A property or null when type/name is null or when the property cannot be found
-
-
-
- Gets the reflection information for a directly declared property
- The member in the form TypeFullName:MemberName, where TypeFullName matches the form recognized by Type.GetType like Some.Namespace.Type.
- A property or null when the property cannot be found
-
-
-
- Gets the reflection information for the getter method of a directly declared property
- The class/type where the property is declared
- The name of the property (case sensitive)
- A method or null when type/name is null or when the property cannot be found
-
-
-
- Gets the reflection information for the getter method of a directly declared property
- The member in the form TypeFullName:MemberName, where TypeFullName matches the form recognized by Type.GetType like Some.Namespace.Type.
- A method or null when the property cannot be found
-
-
-
- Gets the reflection information for the setter method of a directly declared property
- The class/type where the property is declared
- The name of the property (case sensitive)
- A method or null when type/name is null or when the property cannot be found
-
-
-
- Gets the reflection information for the Setter method of a directly declared property
- The member in the form TypeFullName:MemberName, where TypeFullName matches the form recognized by Type.GetType like Some.Namespace.Type.
- A method or null when the property cannot be found
-
-
-
- Gets the reflection information for a property by searching the type and all its super types
- The class/type
- The name
- A property or null when type/name is null or when the property cannot be found
-
-
-
- Gets the reflection information for a property by searching the type and all its super types
- The member in the form TypeFullName:MemberName, where TypeFullName matches the form recognized by Type.GetType like Some.Namespace.Type.
- A property or null when the property cannot be found
-
-
-
- Gets the reflection information for the getter method of a property by searching the type and all its super types
- The class/type
- The name
- A method or null when type/name is null or when the property cannot be found
-
-
-
- Gets the reflection information for the getter method of a property by searching the type and all its super types
- The member in the form TypeFullName:MemberName, where TypeFullName matches the form recognized by Type.GetType like Some.Namespace.Type.
- A method or null when type/name is null or when the property cannot be found
-
-
-
- Gets the reflection information for the setter method of a property by searching the type and all its super types
- The class/type
- The name
- A method or null when type/name is null or when the property cannot be found
-
-
-
- Gets the reflection information for the setter method of a property by searching the type and all its super types
- The member in the form TypeFullName:MemberName, where TypeFullName matches the form recognized by Type.GetType like Some.Namespace.Type.
- A method or null when type/name is null or when the property cannot be found
-
-
-
- Gets the reflection information for a directly declared method
- The class/type where the method is declared
- The name of the method (case sensitive)
- Optional parameters to target a specific overload of the method
- Optional list of types that define the generic version of the method
- A method or null when type/name is null or when the method cannot be found
-
-
-
- Gets the reflection information for a directly declared method
- The member in the form TypeFullName:MemberName, where TypeFullName matches the form recognized by Type.GetType like Some.Namespace.Type.
- Optional parameters to target a specific overload of the method
- Optional list of types that define the generic version of the method
- A method or null when the method cannot be found
-
-
-
- Gets the reflection information for a method by searching the type and all its super types
- The class/type where the method is declared
- The name of the method (case sensitive)
- Optional parameters to target a specific overload of the method
- Optional list of types that define the generic version of the method
- A method or null when type/name is null or when the method cannot be found
-
-
-
- Gets the reflection information for a method by searching the type and all its super types
- The member in the form TypeFullName:MemberName, where TypeFullName matches the form recognized by Type.GetType like Some.Namespace.Type.
- Optional parameters to target a specific overload of the method
- Optional list of types that define the generic version of the method
- A method or null when the method cannot be found
-
-
-
- Gets the method of an enumerator method
- Enumerator method that creates the enumerator
- The internal method of the enumerator or null if no valid enumerator is detected
-
-
- Gets the names of all method that are declared in a type
- The declaring class/type
- A list of method names
-
-
-
- Gets the names of all method that are declared in the type of the instance
- An instance of the type to search in
- A list of method names
-
-
-
- Gets the names of all fields that are declared in a type
- The declaring class/type
- A list of field names
-
-
-
- Gets the names of all fields that are declared in the type of the instance
- An instance of the type to search in
- A list of field names
-
-
-
- Gets the names of all properties that are declared in a type
- The declaring class/type
- A list of property names
-
-
-
- Gets the names of all properties that are declared in the type of the instance
- An instance of the type to search in
- A list of property names
-
-
-
- Gets the type of any class member of
- A member
- The class/type of this member
-
-
-
- Test if a class member is actually an concrete implementation
- A member
- True if the member is a declared
-
-
-
- Gets the real implementation of a class member
- A member
- The member itself if its declared. Otherwise the member that is actually implemented in some base type
-
-
-
- Gets the reflection information for a directly declared constructor
- The class/type where the constructor is declared
- Optional parameters to target a specific overload of the constructor
- Optional parameters to only consider static constructors
- A constructor info or null when type is null or when the constructor cannot be found
-
-
-
- Gets the reflection information for a constructor by searching the type and all its super types
- The class/type where the constructor is declared
- Optional parameters to target a specific overload of the method
- Optional parameters to only consider static constructors
- A constructor info or null when type is null or when the method cannot be found
-
-
-
- Gets reflection information for all declared constructors
- The class/type where the constructors are declared
- Optional parameters to only consider static constructors
- A list of constructor infos
-
-
-
- Gets reflection information for all declared methods
- The class/type where the methods are declared
- A list of methods
-
-
-
- Gets reflection information for all declared properties
- The class/type where the properties are declared
- A list of properties
-
-
-
- Gets reflection information for all declared fields
- The class/type where the fields are declared
- A list of fields
-
-
-
- Gets the return type of a method or constructor
- The method/constructor
- The return type
-
-
-
- Given a type, returns the first inner type matching a recursive search by name
- The class/type to start searching at
- The name of the inner type (case sensitive)
- The inner type or null if type/name is null or if a type with that name cannot be found
-
-
-
- Given a type, returns the first inner type matching a recursive search with a predicate
- The class/type to start searching at
- The predicate to search with
- The inner type or null if type/predicate is null or if a type with that name cannot be found
-
-
-
- Given a type, returns the first method matching a predicate
- The class/type to start searching at
- The predicate to search with
- The method or null if type/predicate is null or if a type with that name cannot be found
-
-
-
- Given a type, returns the first constructor matching a predicate
- The class/type to start searching at
- The predicate to search with
- The constructor info or null if type/predicate is null or if a type with that name cannot be found
-
-
-
- Given a type, returns the first property matching a predicate
- The class/type to start searching at
- The predicate to search with
- The property or null if type/predicate is null or if a type with that name cannot be found
-
-
-
- Returns an array containing the type of each object in the given array
- An array of objects
- An array of types or an empty array if parameters is null (if an object is null, the type for it will be object)
-
-
-
- Creates an array of input parameters for a given method and a given set of potential inputs
- The method/constructor you are planing to call
- The possible input parameters in any order
- An object array matching the method signature
-
-
-
- A readable/assignable reference delegate to an instance field of a class or static field (NOT an instance field of a struct)
-
- An arbitrary type if the field is static; otherwise the class that defines the field, or a parent class (including ),
- implemented interface, or derived class of this type
-
-
- The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type),
- a type that is assignable from that type; or if the field's type is an enum type,
- either that type or the underlying integral type of that enum type
-
- The runtime instance to access the field (ignored and can be omitted for static fields)
- A readable/assignable reference to the field
- Null instance passed to a non-static field ref delegate
-
- Instance of invalid type passed to a non-static field ref delegate
- (this can happen if is a parent class or interface of the field's declaring type)
-
-
-
- This delegate cannot be used for instance fields of structs, since a struct instance passed to the delegate would be passed by
- value and thus would be a copy that only exists within the delegate's invocation. This is fine for a readonly reference,
- but makes assignment futile. Use instead.
-
-
- Note that is not required to be the field's declaring type. It can be a parent class (including ),
- implemented interface, or a derived class of the field's declaring type ("instanceOfT is FieldDeclaringType" must be possible).
- Specifically, must be assignable from OR to the field's declaring type.
- Technically, this allows Nullable, although Nullable is only relevant for structs, and since only static fields of structs
- are allowed for this delegate, and the instance passed to such a delegate is ignored, this hardly matters.
-
-
- Similarly, is not required to be the field's field type, unless that type is a non-enum value type.
- It can be a parent class (including object) or implemented interface of the field's field type. It cannot be a derived class.
- This variance is not allowed for value types, since that would require boxing/unboxing, which is not allowed for ref values.
- Special case for enum types: can also be the underlying integral type of the enum type.
- Specifically, for reference types, must be assignable from
- the field's field type; for non-enum value types, must be exactly the field's field type; for enum types,
- must be either the field's field type or the underyling integral type of that field type.
-
-
- This delegate supports static fields, even those defined in structs, for legacy reasons.
- For such static fields, is effectively ignored.
- Consider using (and StaticFieldRefAccess methods that return it) instead for static fields.
-
-
-
-
-
- Creates a field reference delegate for an instance field of a class
- The class that defines the instance field, or derived class of this type
-
- The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type),
- a type that is assignable from that type; or if the field's type is an enum type,
- either that type or the underlying integral type of that enum type
-
- The name of the field
- A readable/assignable delegate
-
-
- For backwards compatibility, there is no class constraint on .
- Instead, the non-value-type check is done at runtime within the method.
-
-
-
-
-
- Creates an instance field reference for a specific instance of a class
- The class that defines the instance field, or derived class of this type
-
- The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type),
- a type that is assignable from that type; or if the field's type is an enum type,
- either that type or the underlying integral type of that enum type
-
- The instance
- The name of the field
- A readable/assignable reference to the field
-
-
- This method is meant for one-off access to a field's value for a single instance.
- If you need to access a field's value for potentially multiple instances, use instead.
- FieldRefAccess<T, F>(instance, fieldName) is functionally equivalent to FieldRefAccess<T, F>(fieldName)(instance).
-
-
- For backwards compatibility, there is no class constraint on .
- Instead, the non-value-type check is done at runtime within the method.
-
-
-
-
-
- Creates a field reference delegate for an instance field of a class or static field (NOT an instance field of a struct)
-
- The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type),
- a type that is assignable from that type; or if the field's type is an enum type,
- either that type or the underlying integral type of that enum type
-
-
- The type that defines the field, or derived class of this type; must not be a struct type unless the field is static
-
- The name of the field
-
- A readable/assignable delegate with T=object
- (for static fields, the instance delegate parameter is ignored)
-
-
-
- This method is meant for cases where the given type is only known at runtime and thus can't be used as a type parameter T
- in e.g. .
-
-
- This method supports static fields, even those defined in structs, for legacy reasons.
- Consider using (and other overloads) instead for static fields.
-
-
-
-
-
- Creates a field reference delegate for an instance field of a class or static field (NOT an instance field of a struct)
- type of the field
- The member in the form TypeFullName:MemberName, where TypeFullName matches the form recognized by Type.GetType like Some.Namespace.Type.
- A readable/assignable delegate with T=object
-
-
- Creates a field reference delegate for an instance field of a class or static field (NOT an instance field of a struct)
-
- An arbitrary type if the field is static; otherwise the class that defines the field, or a parent class (including ),
- implemented interface, or derived class of this type ("instanceOfT is FieldDeclaringType" must be possible)
-
-
- The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type),
- a type that is assignable from that type; or if the field's type is an enum type,
- either that type or the underlying integral type of that enum type
-
- The field
- A readable/assignable delegate
-
-
- This method is meant for cases where the field has already been obtained, avoiding the field searching cost in
- e.g. .
-
-
- This method supports static fields, even those defined in structs, for legacy reasons.
- For such static fields, is effectively ignored.
- Consider using (and other overloads) instead for static fields.
-
-
- For backwards compatibility, there is no class constraint on .
- Instead, the non-value-type check is done at runtime within the method.
-
-
-
-
-
- Creates a field reference for an instance field of a class
-
- The type that defines the field; or a parent class (including ), implemented interface, or derived class of this type
- ("instanceOfT is FieldDeclaringType" must be possible)
-
-
- The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type),
- a type that is assignable from that type; or if the field's type is an enum type,
- either that type or the underlying integral type of that enum type
-
- The instance
- The field
- A readable/assignable reference to the field
-
-
- This method is meant for one-off access to a field's value for a single instance and where the field has already been obtained.
- If you need to access a field's value for potentially multiple instances, use instead.
- FieldRefAccess<T, F>(instance, fieldInfo) is functionally equivalent to FieldRefAccess<T, F>(fieldInfo)(instance).
-
-
- For backwards compatibility, there is no class constraint on .
- Instead, the non-value-type check is done at runtime within the method.
-
-
-
-
-
- A readable/assignable reference delegate to an instance field of a struct
- The struct that defines the instance field
-
- The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type),
- a type that is assignable from that type; or if the field's type is an enum type,
- either that type or the underlying integral type of that enum type
-
- A reference to the runtime instance to access the field
- A readable/assignable reference to the field
-
-
-
- Creates a field reference delegate for an instance field of a struct
- The struct that defines the instance field
-
- The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type),
- a type that is assignable from that type; or if the field's type is an enum type,
- either that type or the underlying integral type of that enum type
-
- The name of the field
- A readable/assignable delegate
-
-
-
- Creates an instance field reference for a specific instance of a struct
- The struct that defines the instance field
-
- The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type),
- a type that is assignable from that type; or if the field's type is an enum type,
- either that type or the underlying integral type of that enum type
-
- The instance
- The name of the field
- A readable/assignable reference to the field
-
-
- This method is meant for one-off access to a field's value for a single instance.
- If you need to access a field's value for potentially multiple instances, use instead.
- StructFieldRefAccess<T, F>(ref instance, fieldName) is functionally equivalent to StructFieldRefAccess<T, F>(fieldName)(ref instance).
-
-
-
-
-
- Creates a field reference delegate for an instance field of a struct
- The struct that defines the instance field
-
- The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type),
- a type that is assignable from that type; or if the field's type is an enum type,
- either that type or the underlying integral type of that enum type
-
- The field
- A readable/assignable delegate
-
-
- This method is meant for cases where the field has already been obtained, avoiding the field searching cost in
- e.g. .
-
-
-
-
-
- Creates a field reference for an instance field of a struct
- The struct that defines the instance field
-
- The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type),
- a type that is assignable from that type; or if the field's type is an enum type,
- either that type or the underlying integral type of that enum type
-
- The instance
- The field
- A readable/assignable reference to the field
-
-
- This method is meant for one-off access to a field's value for a single instance and where the field has already been obtained.
- If you need to access a field's value for potentially multiple instances, use instead.
- StructFieldRefAccess<T, F>(ref instance, fieldInfo) is functionally equivalent to StructFieldRefAccess<T, F>(fieldInfo)(ref instance).
-
-
-
-
-
- A readable/assignable reference delegate to a static field
-
- The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type),
- a type that is assignable from that type; or if the field's type is an enum type,
- either that type or the underlying integral type of that enum type
-
- A readable/assignable reference to the field
-
-
-
- Creates a static field reference
- The type (can be class or struct) the field is defined in
-
- The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type),
- a type that is assignable from that type; or if the field's type is an enum type,
- either that type or the underlying integral type of that enum type
-
- The name of the field
- A readable/assignable reference to the field
-
-
-
- Creates a static field reference
-
- The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type),
- a type that is assignable from that type; or if the field's type is an enum type,
- either that type or the underlying integral type of that enum type
-
- The type (can be class or struct) the field is defined in
- The name of the field
- A readable/assignable reference to the field
-
-
-
- Creates a static field reference
- The type of the field
- The member in the form TypeFullName:MemberName, where TypeFullName matches the form recognized by Type.GetType like Some.Namespace.Type.
- A readable/assignable reference to the field
-
-
-
- Creates a static field reference
- An arbitrary type (by convention, the type the field is defined in)
-
- The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type),
- a type that is assignable from that type; or if the field's type is an enum type,
- either that type or the underlying integral type of that enum type
-
- The field
- A readable/assignable reference to the field
-
- The type parameter is only used in exception messaging and to distinguish between this method overload
- and the overload (which returns a rather than a reference).
-
-
-
-
- Creates a static field reference delegate
-
- The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type),
- a type that is assignable from that type; or if the field's type is an enum type,
- either that type or the underlying integral type of that enum type
-
- The field
- A readable/assignable delegate
-
-
-
- Creates a delegate to a given method
- The delegate Type
- The method to create a delegate from.
-
- Only applies for instance methods. If null (default), returned delegate is an open (a.k.a. unbound) instance delegate
- where an instance is supplied as the first argument to the delegate invocation; else, delegate is a closed (a.k.a. bound)
- instance delegate where the delegate invocation always applies to the given .
-
-
- Only applies for instance methods. If true (default) and is virtual, invocation of the delegate
- calls the instance method virtually (the instance type's most-derived/overriden implementation of the method is called);
- else, invocation of the delegate calls the exact specified (this is useful for calling base class methods)
- Note: if false and is an interface method, an ArgumentException is thrown.
-
- A delegate of given to given
-
-
- Delegate invocation is more performant and more convenient to use than
- at a one-time setup cost.
-
-
- Works for both type of static and instance methods, both open and closed (a.k.a. unbound and bound) instance methods,
- and both class and struct methods.
-
-
-
-
-
- Creates a delegate to a given method
- The delegate Type
- The method in the form TypeFullName:MemberName, where TypeFullName matches the form recognized by Type.GetType like Some.Namespace.Type.
-
- Only applies for instance methods. If null (default), returned delegate is an open (a.k.a. unbound) instance delegate
- where an instance is supplied as the first argument to the delegate invocation; else, delegate is a closed (a.k.a. bound)
- instance delegate where the delegate invocation always applies to the given .
-
-
- Only applies for instance methods. If true (default) and is virtual, invocation of the delegate
- calls the instance method virtually (the instance type's most-derived/overriden implementation of the method is called);
- else, invocation of the delegate calls the exact specified (this is useful for calling base class methods)
- Note: if false and is an interface method, an ArgumentException is thrown.
-
- A delegate of given to given
-
-
- Delegate invocation is more performant and more convenient to use than
- at a one-time setup cost.
-
-
- Works for both type of static and instance methods, both open and closed (a.k.a. unbound and bound) instance methods,
- and both class and struct methods.
-
-
-
-
-
- Creates a delegate for a given delegate definition, attributed with []
- The delegate Type, attributed with []
-
- Only applies for instance methods. If null (default), returned delegate is an open (a.k.a. unbound) instance delegate
- where an instance is supplied as the first argument to the delegate invocation; else, delegate is a closed (a.k.a. bound)
- instance delegate where the delegate invocation always applies to the given .
-
- A delegate of given to the method specified via []
- attributes on
-
- This calls with the method and virtualCall arguments
- determined from the [] attributes on ,
- and the given (for closed instance delegates).
-
-
-
-
- Returns who called the current method
- The calling method/constructor (excluding the caller)
-
-
-
- Rethrows an exception while preserving its stack trace (throw statement typically clobbers existing stack traces)
- The exception to rethrow
-
-
-
- True if the current runtime is based on Mono, false otherwise (.NET)
-
-
-
- True if the current runtime is .NET Framework, false otherwise (.NET Core or Mono, although latter isn't guaranteed)
-
-
-
- True if the current runtime is .NET Core, false otherwise (Mono or .NET Framework)
-
-
-
- Throws a missing member runtime exception
- The type that is involved
- A list of names
-
-
-
- Gets default value for a specific type
- The class/type
- The default value
-
-
-
- Creates an (possibly uninitialized) instance of a given type
- The class/type
- The new instance
-
-
-
- Creates an (possibly uninitialized) instance of a given type
- The class/type
- The new instance
-
-
-
-
- A cache for the or similar Add methods for different types.
-
-
-
- Makes a deep copy of any object
- The type of the instance that should be created; for legacy reasons, this must be a class or interface
- The original object
- A copy of the original object but of type T
-
-
-
- Makes a deep copy of any object
- The type of the instance that should be created
- The original object
- [out] The copy of the original object
- Optional value transformation function (taking a field name and src/dst instances)
- The optional path root to start with
-
-
-
- Makes a deep copy of any object
- The original object
- The type of the instance that should be created
- Optional value transformation function (taking a field name and src/dst instances)
- The optional path root to start with
- The copy of the original object
-
-
-
- Tests if a type is a struct
- The type
- True if the type is a struct
-
-
-
- Tests if a type is a class
- The type
- True if the type is a class
-
-
-
- Tests if a type is a value type
- The type
- True if the type is a value type
-
-
-
- Tests if a type is an integer type
- The type
- True if the type represents some integer
-
-
-
- Tests if a type is a floating point type
- The type
- True if the type represents some floating point
-
-
-
- Tests if a type is a numerical type
- The type
- True if the type represents some number
-
-
-
- Tests if a type is void
- The type
- True if the type is void
-
-
-
- Test whether an instance is of a nullable type
- Type of instance
- An instance to test
- True if instance is of nullable type, false if not
-
-
-
- Tests whether a type or member is static, as defined in C#
- The type or member
- True if the type or member is static
-
-
-
- Tests whether a type is static, as defined in C#
- The type
- True if the type is static
-
-
-
- Tests whether a property is static, as defined in C#
- The property
- True if the property is static
-
-
-
- Tests whether an event is static, as defined in C#
- The event
- True if the event is static
-
-
-
- Calculates a combined hash code for an enumeration of objects
- The objects
- The hash code
-
-
-
- A CodeInstruction match
-
-
- The name of the match
-
-
- The matched opcodes
-
-
- The matched operands
-
-
- The jumps from the match
-
-
- The jumps to the match
-
-
- The match predicate
-
-
- Creates a code match
- The optional opcode
- The optional operand
- The optional name
-
-
-
- Creates a code match that calls a method
- The lambda expression using the method
- The optional name
-
-
-
- Creates a code match that calls a method
- The lambda expression using the method
- The optional name
-
-
-
- Creates a code match
- The CodeInstruction
- An optional name
-
-
-
- Creates a code match
- The predicate
- An optional name
-
-
-
- Returns a string that represents the match
- A string representation
-
-
-
- A CodeInstruction matcher
-
-
- The current position
- The index or -1 if out of bounds
-
-
-
- Gets the number of code instructions in this matcher
- The count
-
-
-
- Checks whether the position of this CodeMatcher is within bounds
- True if this CodeMatcher is valid
-
-
-
- Checks whether the position of this CodeMatcher is outside its bounds
- True if this CodeMatcher is invalid
-
-
-
- Gets the remaining code instructions
- The remaining count
-
-
-
- Gets the opcode at the current position
- The opcode
-
-
-
- Gets the operand at the current position
- The operand
-
-
-
- Gets the labels at the current position
- The labels
-
-
-
- Gets the exception blocks at the current position
- The blocks
-
-
-
- Creates an empty code matcher
-
-
- Creates a code matcher from an enumeration of instructions
- The instructions (transpiler argument)
- An optional IL generator
-
-
-
- Makes a clone of this instruction matcher
- A copy of this matcher
-
-
-
- Gets instructions at the current position
- The instruction
-
-
-
- Gets instructions at the current position with offset
- The offset
- The instruction
-
-
-
- Gets all instructions
- A list of instructions
-
-
-
- Gets all instructions as an enumeration
- A list of instructions
-
-
-
- Gets some instructions counting from current position
- Number of instructions
- A list of instructions
-
-
-
- Gets all instructions within a range
- The start index
- The end index
- A list of instructions
-
-
-
- Gets all instructions within a range (relative to current position)
- The start offset
- The end offset
- A list of instructions
-
-
-
- Gets a list of all distinct labels
- The instructions (transpiler argument)
- A list of Labels
-
-
-
- Reports a failure
- The method involved
- The logger
- True if current position is invalid and error was logged
-
-
-
- Throw an InvalidOperationException if current state is invalid (position out of bounds / last match failed)
- Explanation of where/why the exception was thrown that will be added to the exception message
- The same code matcher
-
-
-
- Throw an InvalidOperationException if current state is invalid (position out of bounds / last match failed),
- or if the matches do not match at current position
- Explanation of where/why the exception was thrown that will be added to the exception message
- Some code matches
- The same code matcher
-
-
-
- Throw an InvalidOperationException if current state is invalid (position out of bounds / last match failed),
- or if the matches do not match at any point between current position and the end
- Explanation of where/why the exception was thrown that will be added to the exception message
- Some code matches
- The same code matcher
-
-
-
- Throw an InvalidOperationException if current state is invalid (position out of bounds / last match failed),
- or if the matches do not match at any point between current position and the start
- Explanation of where/why the exception was thrown that will be added to the exception message
- Some code matches
- The same code matcher
-
-
-
- Throw an InvalidOperationException if current state is invalid (position out of bounds / last match failed),
- or if the check function returns false
- Explanation of where/why the exception was thrown that will be added to the exception message
- Function that checks validity of current state. If it returns false, an exception is thrown
- The same code matcher
-
-
-
- Sets an instruction at current position
- The instruction to set
- The same code matcher
-
-
-
- Sets instruction at current position and advances
- The instruction
- The same code matcher
-
-
-
- Sets opcode and operand at current position
- The opcode
- The operand
- The same code matcher
-
-
-
- Sets opcode and operand at current position and advances
- The opcode
- The operand
- The same code matcher
-
-
-
- Sets opcode at current position and advances
- The opcode
- The same code matcher
-
-
-
- Sets operand at current position and advances
- The operand
- The same code matcher
-
-
-
- Creates a label at current position
- [out] The label
- The same code matcher
-
-
-
- Creates a label at a position
- The position
- [out] The new label
- The same code matcher
-
-
-
- Creates a label at a position
- The offset
- [out] The new label
- The same code matcher
-
-
-
- Adds an enumeration of labels to current position
- The labels
- The same code matcher
-
-
-
- Adds an enumeration of labels at a position
- The position
- The labels
- The same code matcher
-
-
-
- Sets jump to
- Branch instruction
- Destination for the jump
- [out] The created label
- The same code matcher
-
-
-
- Inserts some instructions
- The instructions
- The same code matcher
-
-
-
- Inserts an enumeration of instructions
- The instructions
- The same code matcher
-
-
-
- Inserts a branch
- The branch opcode
- Branch destination
- The same code matcher
-
-
-
- Inserts some instructions and advances the position
- The instructions
- The same code matcher
-
-
-
- Inserts an enumeration of instructions and advances the position
- The instructions
- The same code matcher
-
-
-
- Inserts a branch and advances the position
- The branch opcode
- Branch destination
- The same code matcher
-
-
-
- Removes current instruction
- The same code matcher
-
-
-
- Removes some instruction from current position by count
- Number of instructions
- The same code matcher
-
-
-
- Removes the instructions in a range
- The start
- The end
- The same code matcher
-
-
-
- Removes the instructions in a offset range
- The start offset
- The end offset
- The same code matcher
-
-
-
- Advances the current position
- The offset
- The same code matcher
-
-
-
- Moves the current position to the start
- The same code matcher
-
-
-
- Moves the current position to the end
- The same code matcher
-
-
-
- Searches forward with a predicate and advances position
- The predicate
- The same code matcher
-
-
-
- Searches backwards with a predicate and reverses position
- The predicate
- The same code matcher
-
-
-
- Matches forward and advances position to beginning of matching sequence
- Some code matches
- The same code matcher
-
-
-
- Matches forward and advances position to ending of matching sequence
- Some code matches
- The same code matcher
-
-
-
- Matches backwards and reverses position to beginning of matching sequence
- Some code matches
- The same code matcher
-
-
-
- Matches backwards and reverses position to ending of matching sequence
- Some code matches
- The same code matcher
-
-
-
- Repeats a match action until boundaries are met
- The match action
- An optional action that is executed when no match is found
- The same code matcher
-
-
-
- Gets a match by its name
- The match name
- An instruction
-
-
-
- General extensions for common cases
-
-
-
- Joins an enumeration with a value converter and a delimiter to a string
- The inner type of the enumeration
- The enumeration
- An optional value converter (from T to string)
- An optional delimiter
- The values joined into a string
-
-
-
- Converts an array of types (for example methods arguments) into a human readable form
- The array of types
- A human readable description including brackets
-
-
-
- A full description of a type
- The type
- A human readable description
-
-
-
- A a full description of a method or a constructor without assembly details but with generics
- The method/constructor
- A human readable description
-
-
-
- A helper converting parameter infos to types
- The array of parameter infos
- An array of types
-
-
-
- A helper to access a value via key from a dictionary
- The key type
- The value type
- The dictionary
- The key
- The value for the key or the default value (of T) if that key does not exist
-
-
-
- A helper to access a value via key from a dictionary with extra casting
- The value type
- The dictionary
- The key
- The value for the key or the default value (of T) if that key does not exist or cannot be cast to T
-
-
-
- Escapes Unicode and ASCII non printable characters
- The string to convert
- The string to convert
- A string literal surrounded by
-
-
-
- Extensions for
-
-
-
- Returns if an is initialized and valid
- The
-
-
-
- Shortcut for testing whether the operand is equal to a non-null value
- The
- The value
- True if the operand has the same type and is equal to the value
-
-
-
- Shortcut for testing whether the operand is equal to a non-null value
- The
- The value
- True if the operand is equal to the value
- This is an optimized version of for
-
-
-
- Shortcut for code.opcode == opcode && code.OperandIs(operand)
- The
- The
- The operand value
- True if the opcode is equal to the given opcode and the operand has the same type and is equal to the given operand
-
-
-
- Shortcut for code.opcode == opcode && code.OperandIs(operand)
- The
- The
- The operand value
- True if the opcode is equal to the given opcode and the operand is equal to the given operand
- This is an optimized version of for
-
-
-
- Tests for any form of Ldarg*
- The
- The (optional) index
- True if it matches one of the variations
-
-
-
- Tests for Ldarga/Ldarga_S
- The
- The (optional) index
- True if it matches one of the variations
-
-
-
- Tests for Starg/Starg_S
- The
- The (optional) index
- True if it matches one of the variations
-
-
-
- Tests for any form of Ldloc*
- The
- The optional local variable
- True if it matches one of the variations
-
-
-
- Tests for any form of Stloc*
- The
- The optional local variable
- True if it matches one of the variations
-
-
-
- Tests if the code instruction branches
- The
- The label if the instruction is a branch operation or if not
- True if the instruction branches
-
-
-
- Tests if the code instruction calls the method/constructor
- The
- The method
- True if the instruction calls the method or constructor
-
-
-
- Tests if the code instruction loads a constant
- The
- True if the instruction loads a constant
-
-
-
- Tests if the code instruction loads an integer constant
- The
- The integer constant
- True if the instruction loads the constant
-
-
-
- Tests if the code instruction loads a floating point constant
- The
- The floating point constant
- True if the instruction loads the constant
-
-
-
- Tests if the code instruction loads an enum constant
- The
- The enum
- True if the instruction loads the constant
-
-
-
- Tests if the code instruction loads a string constant
- The
- The string
- True if the instruction loads the constant
-
-
-
- Tests if the code instruction loads a field
- The
- The field
- Set to true if the address of the field is loaded
- True if the instruction loads the field
-
-
-
- Tests if the code instruction stores a field
- The
- The field
- True if the instruction stores this field
-
-
-
- Adds labels to the code instruction and return it
- The
- One or several to add
- The same code instruction
-
-
- Adds labels to the code instruction and return it
- The
- An enumeration of
- The same code instruction
-
-
- Extracts all labels from the code instruction and returns them
- The
- A list of
-
-
- Moves all labels from the code instruction to another one
- The to move the labels from
- The other to move the labels to
- The code instruction labels were moved from (now empty)
-
-
- Moves all labels from another code instruction to the current one
- The to move the labels to
- The other to move the labels from
- The code instruction that received the labels
-
-
- Adds ExceptionBlocks to the code instruction and return it
- The
- One or several to add
- The same code instruction
-
-
- Adds ExceptionBlocks to the code instruction and return it
- The
- An enumeration of
- The same code instruction
-
-
- Extracts all ExceptionBlocks from the code instruction and returns them
- The
- A list of
-
-
- Moves all ExceptionBlocks from the code instruction to another one
- The to move the ExceptionBlocks from
- The other to move the ExceptionBlocks to
- The code instruction blocks were moved from (now empty)
-
-
- Moves all ExceptionBlocks from another code instruction to the current one
- The to move the ExceptionBlocks to
- The other to move the ExceptionBlocks from
- The code instruction that received the blocks
-
-
- General extensions for collections
-
-
-
- A simple way to execute code for every element in a collection
- The inner type of the collection
- The collection
- The action to execute
-
-
-
- A simple way to execute code for elements in a collection matching a condition
- The inner type of the collection
- The collection
- The predicate
- The action to execute
-
-
-
- A helper to add an item to a collection
- The inner type of the collection
- The collection
- The item to add
- The collection containing the item
-
-
-
- A helper to add an item to an array
- The inner type of the collection
- The array
- The item to add
- The array containing the item
-
-
-
- A helper to add items to an array
- The inner type of the collection
- The array
- The items to add
- The array containing the items
-
-
-
- General extensions for collections
-
-
-
- Tests a class member if it has an IL method body (external methods for example don't have a body)
- The member to test
- Returns true if the member has an IL body or false if not
-
-
- A file log for debugging
-
-
-
- Set this to make Harmony write its log content to this stream
-
-
-
- Full pathname of the log file, defaults to a file called harmony.log.txt on your Desktop
-
-
-
- The indent character. The default is tab
-
-
-
- The current indent level
-
-
-
- Changes the indentation level
- The value to add to the indentation level
-
-
-
- Log a string in a buffered way. Use this method only if you are sure that FlushBuffer will be called
- or else logging information is incomplete in case of a crash
- The string to log
-
-
-
- Logs a list of string in a buffered way. Use this method only if you are sure that FlushBuffer will be called
- or else logging information is incomplete in case of a crash
- A list of strings to log (they will not be re-indented)
-
-
-
- Returns the log buffer and optionally empties it
- True to empty the buffer
- The buffer.
-
-
-
- Replaces the buffer with new lines
- The lines to store
-
-
-
- Flushes the log buffer to disk (use in combination with LogBuffered)
-
-
-
- Log a string directly to disk. Slower method that prevents missing information in case of a crash
- The string to log.
-
-
-
- Log a string directly to disk if Harmony.DEBUG is true. Slower method that prevents missing information in case of a crash
- The string to log.
-
-
-
- Resets and deletes the log
-
-
-
- Logs some bytes as hex values
- The pointer to some memory
- The length of bytes to log
-
-
-
- A helper class to retrieve reflection info for non-private methods
-
-
-
- Given a lambda expression that calls a method, returns the method info
- The lambda expression using the method
- The method in the lambda expression
-
-
-
- Given a lambda expression that calls a method, returns the method info
- The generic type
- The lambda expression using the method
- The method in the lambda expression
-
-
-
- Given a lambda expression that calls a method, returns the method info
- The generic type
- The generic result type
- The lambda expression using the method
- The method in the lambda expression
-
-
-
- Given a lambda expression that calls a method, returns the method info
- The lambda expression using the method
- The method in the lambda expression
-
-
-
- A reflection helper to read and write private elements
- The result type defined by GetValue()
-
-
-
- Creates a traverse instance from an existing instance
- The existing instance
-
-
-
- Gets/Sets the current value
- The value to read or write
-
-
-
- A reflection helper to read and write private elements
-
-
-
- Creates a new traverse instance from a class/type
- The class/type
- A instance
-
-
-
- Creates a new traverse instance from a class T
- The class
- A instance
-
-
-
- Creates a new traverse instance from an instance
- The object
- A instance
-
-
-
- Creates a new traverse instance from a named type
- The type name, for format see
- A instance
-
-
-
- Creates a new and empty traverse instance
-
-
-
- Creates a new traverse instance from a class/type
- The class/type
-
-
-
- Creates a new traverse instance from an instance
- The object
-
-
-
- Gets the current value
- The value
-
-
-
- Gets the current value
- The type of the value
- The value
-
-
-
- Invokes the current method with arguments and returns the result
- The method arguments
- The value returned by the method
-
-
-
- Invokes the current method with arguments and returns the result
- The type of the value
- The method arguments
- The value returned by the method
-
-
-
- Sets a value of the current field or property
- The value
- The same traverse instance
-
-
-
- Gets the type of the current field or property
- The type
-
-
-
- Moves the current traverse instance to a inner type
- The type name
- A traverse instance
-
-
-
- Moves the current traverse instance to a field
- The type name
- A traverse instance
-
-
-
- Moves the current traverse instance to a field
- The type of the field
- The type name
- A traverse instance
-
-
-
- Gets all fields of the current type
- A list of field names
-
-
-
- Moves the current traverse instance to a property
- The type name
- Optional property index
- A traverse instance
-
-
-
- Moves the current traverse instance to a field
- The type of the property
- The type name
- Optional property index
- A traverse instance
-
-
-
- Gets all properties of the current type
- A list of property names
-
-
-
- Moves the current traverse instance to a method
- The name of the method
- The arguments defining the argument types of the method overload
- A traverse instance
-
-
-
- Moves the current traverse instance to a method
- The name of the method
- The argument types of the method
- The arguments for the method
- A traverse instance
-
-
-
- Gets all methods of the current type
- A list of method names
-
-
-
- Checks if the current traverse instance is for a field
- True if its a field
-
-
-
- Checks if the current traverse instance is for a property
- True if its a property
-
-
-
- Checks if the current traverse instance is for a method
- True if its a method
-
-
-
- Checks if the current traverse instance is for a type
- True if its a type
-
-
-
- Iterates over all fields of the current type and executes a traverse action
- Original object
- The action receiving a instance for each field
-
-
-
- Iterates over all fields of the current type and executes a traverse action
- Original object
- Target object
- The action receiving a pair of instances for each field pair
-
-
-
- Iterates over all fields of the current type and executes a traverse action
- Original object
- Target object
- The action receiving a dot path representing the field pair and the instances
-
-
-
- Iterates over all properties of the current type and executes a traverse action
- Original object
- The action receiving a instance for each property
-
-
-
- Iterates over all properties of the current type and executes a traverse action
- Original object
- Target object
- The action receiving a pair of instances for each property pair
-
-
-
- Iterates over all properties of the current type and executes a traverse action
- Original object
- Target object
- The action receiving a dot path representing the property pair and the instances
-
-
-
- A default field action that copies fields to fields
-
-
-
- Returns a string that represents the current traverse
- A string representation
-
-
-
-
diff --git a/CRIALactation/1.4/Assemblies/0MultiplayerAPI.dll b/CRIALactation/1.4/Assemblies/0MultiplayerAPI.dll
deleted file mode 100644
index 38b8a0e..0000000
Binary files a/CRIALactation/1.4/Assemblies/0MultiplayerAPI.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/Assembly-CSharp-firstpass.dll b/CRIALactation/1.4/Assemblies/Assembly-CSharp-firstpass.dll
deleted file mode 100644
index 3110d7d..0000000
Binary files a/CRIALactation/1.4/Assemblies/Assembly-CSharp-firstpass.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/Assembly-CSharp.dll b/CRIALactation/1.4/Assemblies/Assembly-CSharp.dll
deleted file mode 100644
index 9eaf3d3..0000000
Binary files a/CRIALactation/1.4/Assemblies/Assembly-CSharp.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/HugsLib.dll b/CRIALactation/1.4/Assemblies/HugsLib.dll
deleted file mode 100644
index cbd145f..0000000
Binary files a/CRIALactation/1.4/Assemblies/HugsLib.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/HugsLib.xml b/CRIALactation/1.4/Assemblies/HugsLib.xml
deleted file mode 100644
index d156b74..0000000
--- a/CRIALactation/1.4/Assemblies/HugsLib.xml
+++ /dev/null
@@ -1,1467 +0,0 @@
-
-
-
- HugsLib
-
-
-
-
- Informs the player about a mod that requires a later version of HugsLib than the one running.
- Also has button to open the download link in the Steam or system browser.
-
-
-
-
- Entry point for the library.
- Instantiated by the game at the start of DoPlayLoad().
-
-
-
-
- Loads and stores textures from the HugsLib /Textures folder
-
-
-
-
- Handles the key presses for key bindings added by HugsLib
-
-
-
-
- Checks the current version of the library against the About.xml -> requiredLibraryVersion of all mods.
- Shows a popup window () if one of the loaded mods requires a
- more recent version of the library.
-
-
-
-
- Ensures that the library comes after Core in the load order and displays a warning dialog otherwise.
-
-
-
-
- Provides support for reading version information from Manifest.xml files.
- These files are used in mods by Fluffy and a a few other authors.
-
-
-
-
- Attempts to read and parse the manifest file for a mod.
-
-
- Returns null if reading or parsing fails for any reason.
-
-
-
-
- Reads and parses the manifest file for a mod.
-
-
- Returns null if the file does not exist.
-
-
-
-
- Checks for Dev mode and bypasses the Restart message box.
- Holding Shift will prevent the automatic restart.
-
-
-
-
- Provides an entry point for late controller setup during static constructor initialization.
-
-
-
-
- Forwards ticks to the controller. Will not be saved and is never spawned.
-
-
-
-
- Holds references to key binding defs used by the library.
-
-
-
-
- A base for managers that save data in xml format, to be stored in the save data folder
-
-
-
-
- This is added as a component to the GameObject on scene to forward events to the controller.
-
-
-
-
- Represents the information stored in the About/Version.xml file.
- Since we cannot update the version of the library assembly, we have to store the version externally.
-
-
-
-
- A shorter, invariable alternative to System.Version in the format of major.minor.patch
- Also known as a semantic version number.
- System.Version can be implicitly cast to this type.
- VersionShort is no longer used by HugsLib internally, and the type is retained for backwards compatibility.
-
-
-
-
- The extended update news dialog, with filtering by mod and a menu button in entry headers for dev mode actions.
-
-
-
-
- Handles the custom loading mechanics of s.
-
-
-
-
- Filters s by their mod identifier.
-
-
-
-
- Provides the options for the dev tools dropdown menu in the extended update news dialog.
-
-
-
-
- Displays a list to update feature defs with basic image and formatting support. See for proper syntax.
-
-
-
-
- Stores the highest displayed update news version for all mods that provide update news via .
- Defs are loaded from the News folder in the root mod directory.
-
-
-
-
- Shows the news dialog window when there are not yet displayed news items available.
-
- Pass true to disable filtering based on what has
- and has not been seen and open the dialog with all available news items.
- true, if there have been found news items that were not displayed before, and the dialog has been opened
-
-
-
- Rewire the main menu "Dev quicktest" button to trigger the HugsLib quickstarter.
-
-
-
-
- Hooks into the flow of the vanilla MonoBehavior.OnGUI()
- This allows to take advantage of automatic UI scaling and prevents GUI updates during a loading screen.
-
-
-
-
- Adds an entry point to draw and additional debug button on the toolbar.
- The infix is necessary to catch the WidgetRow that the stock buttons are drawn to.
-
-
-
-
- Extends the width of the immediate window the dev toolbar buttons are drawn to to accommodate an additional button
-
-
-
-
- Adds a hook for the early initialization of a Game.
-
-
-
-
- Forces a game restart after a language change.
- This is necessary to avoid creating problems for running mods caused by reloaded graphics and defs.
-
-
-
-
- Adds a hook for discarding maps.
-
-
-
-
- Adds extra buttons to the Log window.
-
-
-
-
- Adds a hook to produce the WorldLoaded callback for ModBase mods.
-
-
-
-
- Adds a hook to produce the MapGenerated callback for ModBase mods.
-
-
-
-
- Adds a hook to produce the MapComponentsInitializing callback for ModBase mods.
-
-
-
-
- Adds a hook to produce the MapLoaded callback for ModBase mods.
-
-
-
-
- Restarts the game automatically, bypassing the message dialog, if changes in the mod configuration have been made and dev mode is on.
- Holding Shift will prevent the restart, while allowing the config changes to still be saved.
-
-
-
-
- Adds a hook to produce the DefsLoaded callback for ModBase mods.
-
-
-
-
- Hooks into the flow of the vanilla MonoBehavior.Update()
-
-
-
-
- Hooks into the flow of the vanilla MonoBehavior.OnGUI().
- Unlike the patch, this hook also
- allows to receive OnGUI events during loading screens.
-
-
-
-
- Displays at game startup when the quickstarter is scheduled to run.
- Shows the pending operation and allows to abort or disable the quickstart.
-
-
-
-
- Allows to change settings related to the custom quickstart functionality.
- Strings are not translated, since this is a tool exclusively for modders.
-
-
-
-
- Manages the custom quickstart functionality.
- Will trigger map loading and generation when the appropriate settings are present, and draws an additional dev toolbar button.
-
-
-
-
- Wraps settings related to the Quickstart system for storage in a SettingHandle.
-
-
-
-
- Caches the result of a string translation for performance.
- Also caches the calculated size of the label that would accomodate the translated string.
-
-
-
-
- Contains data used for the creation of a .
-
-
-
-
- A name for the entry to show to the player.
-
-
-
-
- The delegate that will be called when the menu entry is clicked.
-
-
-
-
- Set to true to make a greyed-out, non-selectable menu entry.
-
-
-
-
-
-
-
-
- Helper methods for drawing elements and controls that appear in the window.
-
-
-
-
- Draws a hovering menu of 2 buttons: info and menu.
-
-
- Text for the info button tooltip. Null to disable.
- When false, the menu button is semi-transparent and non-interactable
- When true, uses menu-with-plus-badge icon for the button
- true if the menu button was clicked
-
-
-
- Draws the menu button for the hovering menu.
-
-
- When false, the button is semi-transparent and non-interactable
- When true, uses menu-with-plus-badge icon for the button
- true if the menu button was clicked
-
-
-
- Used to preserve the state of the Mod Settings window between multiple openings.
- State is not persisted between game restarts.
-
-
-
-
- Utility methods for SettingHandleConvertible data objects.
- These are useful for packing and unpacking your custom fields into a string without bothering with manual serialization.
-
-
-
-
- Deserializes an XML string into an existing object instance.
-
- The serialized values to fill the object with
- The object to receive the deserialized values
-
-
-
- Serializes an object into a compact XML string.
- Whitespace and namespace declarations are omitted.
- Make sure the object is annotated with SerializableAttribute and the fields to serialize with XmlElementAttribute.
-
- The object to serialize
-
-
-
- An options window for settings exposed by mods using the library
-
-
-
-
- Base type for all custom SettingHandle types.
- Allows complex data structures to be stored in setting values by converting them to and from their string representation.
- See for an easy way to serialize complex types to XML.
-
-
-
-
- Return false to prevent this object from serializing and being written to file.
-
-
-
-
- Called when settings handles of this type load an existing value.
- Should deserialize and restore the state of the object using the provided string.
-
-
-
-
- Called when handles of this type are being saved, and only if return true.
- Should serialize the state of the object into a string so it can be restored later.
-
-
-
-
- A set of useful value constraints for use with SettingHandle
-
-
-
-
- A group of settings values added by a mod. Each mod has their own ModSettingsPack.
- Loaded values are stored until they are "claimed" by their mod by requesting a handle for a setting with the same name.
-
-
-
-
- Identifier of the mod that owns this pack
-
-
-
-
- The name of the owning mod that will display is the Mod Settings dialog
-
-
-
-
- Additional context menu options for this entry in the mod settings dialog.
- Will be shown when the hovering menu button for this entry is clicked.
-
-
-
-
- Returns true if any handles retrieved from this pack have had their values changed.
- Resets to false after the changes are saved.
-
-
-
-
- Enumerates the handles that have been registered with this pack up to this point.
-
-
-
-
- Retrieves an existing SettingHandle from the pack, or creates a new one.
- Loaded settings will only display in the Mod Settings dialog after they have been claimed using this method.
-
- The type of setting value you are creating.
- Unique identifier for the setting. Must be unique for this specific pack only.
- A display name for the setting that will show up next to it in the Mod Settings dialog. Recommended to keep this short.
- A description for the setting that will appear in a tooltip when the player hovers over the setting in the Mod Settings dialog.
- The value the setting will assume when newly created and when the player resets the setting to its default.
- An optional delegate that will be called when a new value is about to be assigned to the handle. Receives a string argument and must return a bool to indicate if the passed value is valid for the setting.
- Used only for Enum settings. Enum values are displayed in a readable format by the following method: Translate(prefix+EnumValueName)
-
-
-
- Returns a handle that was already created.
- Will return null if the handle does not exist yet.
-
- Throws an exception if the referenced handle does not match the provided type
- The name of the handle to retrieve
-
-
-
- Attempts to retrieve a setting value by name.
- If a handle for that value has already been created, returns that handle's StringValue.
- Otherwise will return the unclaimed value that was loaded from the XML file.
- Will return null if the value does not exist.
-
- The name of the setting the value of which should be retrieved
-
-
-
- Returns true, if there is a setting value that can be retrieved with PeekValue.
- This includes already created handles and unclaimed values.
-
- The name of the setting to check
-
-
-
- Deletes a setting loaded from the xml file before it is claimed using GetHandle.
- Useful for cleaning up settings that are no longer in use.
-
- The identifier of the setting (handle identifier)
-
-
-
- Prompts the to save changes if any or the registered
- s have handles with unsaved changes
-
-
-
-
- A central place for mods to store persistent settings. Individual settings are grouped by mod using ModSettingsPack
-
-
-
-
- Fires when is called and changes are about to be saved.
- Use and to identify changed packs,
- and with to identify changed handles.
-
-
-
-
- Fires when is called and the settings file has just been written to disk.
-
-
-
-
- Enumerates the s that have been registered up to this point.
-
-
-
-
- Returns true when there are handles with values that have changed since the last time settings were saved.
-
-
-
-
- Retrieves the for a given mod identifier.
-
- The unique identifier of the mod that owns the pack
- If not null, assigns the property of the pack.
- This will be displayed in the Mod Settings dialog as a header.
-
-
-
- Saves all settings to disk and notifies all ModBase mods by calling SettingsChanged()
-
-
-
-
- Removes a settings pack for a mod if it exists. Use SaveChanges to apply the change afterward.
-
- The identifier of the mod owning the pack
-
-
-
- An individual persistent setting owned by a mod.
- The extra layer of inheritance allows for type abstraction and storing SettingHandles in lists.
-
-
-
-
- Unique identifier of the setting.
-
-
-
-
- Name displayed in the settings menu.
-
-
-
-
- Displayed as a tooltip in the settings menu.
-
-
-
-
- Should return true if the passed value is valid for this setting. Optional.
-
-
-
-
- The string identifier prefix used to display enum values in the settings menu (e.g. "prefix_" for "prefix_EnumValue")
-
-
-
-
- Return true to make this setting visible in the menu. Optional.
- An invisible setting can still be reset to default using the Reset All button.
-
-
-
-
- Draw a custom control for the settings menu entry. Entry name is already drawn when this is called.
- Optional. Return value indicates if the handle value was changed during the drawer call.
-
-
-
-
- Fully override the drawing of the settings menu entry for this handle.
- This replaces both the title and the control half of the entry.
- Optional. Return value indicates if the handle value was changed during the drawer call.
-
-
- The following built-in handle drawing features are also disabled when this property is assigned:
- hovering info/menu buttons ().
-
-
-
-
- When true, setting will never appear. For serialized data.
- No longer affects value resetting, see
-
-
-
-
- When true (true by default), the setting can be reset to its default value by the player.
- If the handle is visible, this can be done through the right-click menu, or using the "Reset all" button.
- Disabling this is generally not recommended, except for specific use cases (for example, content unlocked by the player).
-
-
-
-
- When true, will not save this setting to the xml file. Useful in conjunction with CustomDrawer for placing buttons in the settings menu.
-
-
-
-
- Specifies by how much the + and - buttons should change a numeric setting.
-
-
-
-
- When CustomDrawer is used, specifies the height of the row for the handle. Leave at 0 for default height.
-
-
-
-
- Affects the order in which handles appear in the settings menu. Lower comes first, default is 0.
-
-
-
-
- Returns true if the of this handle has been modified
- after the creation of the handle or the last time its value was saved.
- Automatically resets to false when saves changes.
- Can be manually toggled when e.g. replacing null with an instance in a handle.
-
-
-
-
- Additional context menu options for the entry of this handle in the mod settings dialog.
- Will be shown when the hovering menu button for this entry is clicked.
-
-
- The "Reset to default" option is always present, but will be disabled if is false.
-
-
-
-
- Marks the handle as modified and forces all settings to be saved.
- This is necessary for values, as changes in reference types cannot be automatically detected.
-
-
-
-
- Dispatched after the Value of the handle changes.
-
-
-
-
- Implicitly cast handles to the Value they carry.
-
-
-
-
- Called when the Value of the handle changes. Optional.
-
-
-
-
- The actual value of the setting.
- This is converted to its string representation when settings are saved.
- Assigning a new value will trigger the OnValueChanged delegate.
-
-
-
-
- The value the setting assumes when initially created or reset.
-
-
-
-
- Retrieves the string representation of the setting or assigns a new setting value using a string.
- Will trigger the Validator delegate if assigned and change the Value property if the validation passes.
-
-
-
-
- Returns the type of the handle Value property.
-
-
-
-
- Assigns the default value to the Value property.
- Ignores the property.
-
-
-
-
- Returns true if the handle is set to its default value.
-
-
-
-
-
- Keeps track of mod packageIds that ever were loaded together with HugsLib
- by the player and the first/last time they were seen.
-
-
-
-
- Sets the "first time seen" status of a packageId until the game is restarted.
-
- Throws on null packageId
-
-
-
- Returns true if the provided packageId was recorded for the first time during the current run.
-
- Throws on null packageId
-
-
-
- Returns true if the provided mod packageId was at any time seen running together with HugsLib.
-
- Throws on null packageId
-
-
-
- Used by to track mod packageIds loaded from the XML file.
-
-
-
-
- Used to indicate that a type should be instantiated at the earliest moment possible.
- Specifically, when classes are instantiated (see .DoPlayLoad()).
- If is true, Harmony patching will also happen at that time.
-
-
-
-
- The front-end for LogPublisher.
- Shows the status of the upload operation, provides controls and shows the produced URL.
-
-
-
-
- Collects the game logs and loaded mods and posts the information on GitHub as a gist.
-
-
-
-
- Allows adding custom buttons to the EditWindow_Log window.
-
-
-
-
- Alignment side for custom widgets.
-
-
-
-
- Callback to draw log window widgets in.
-
- The log window being dawn.
- Window area for custom widgets.
- The currently selected log message, or null.
- Draw your widget using this to automatically align it with the others.
-
-
-
- Adds a new drawing callback to the log window widget drawer.
-
- The delegate called each OnGUI to draw the widget.
- The side of the WidgetRow this widget should be drawn into.
-
-
-
- Commands start a new process on the target machine using platform specific commands and args to pass to the shell.
- Refer to the Microsoft documentation for dotNet 3.5 for more info on a process.
- https://msdn.microsoft.com/en-us/library/system.diagnostics.process(v=vs.90).aspx
-
-
-
-
- A command to open a directory in the systems default file explorer.
- Since Unity's OpenUrl() is broken on OS X, we can use a shell to do it correctly.
-
-
-
-
- A Command to open the log file in the systems default text editor.
-
-
-
-
- The hub of the library. Instantiates classes that extend ModBase and forwards some of the more useful events to them.
- The assembly version of the library should reflect the current major Rimworld version, i.e.: 0.18.0.0 for B18.
- This gives us the ability to release updates to the library without breaking compatibility with the mods that implement it.
- See Core.HugsLibMod for the entry point.
-
-
-
-
- The base class for all mods using HugsLib library. All classes extending ModBase will be instantiated
- automatically by at game initialization.
- Can be annotated with to initialize the mod at
- initialization time and have be called.
-
-
-
-
- This can be used to log messages specific to your mod.
- It will prefix everything with your ModIdentifier.
-
-
-
-
- The ModSettingsPack specific to your mod.
- Use this to create settings handles that represent the values of saved settings.
-
-
-
-
- Override this and return false to prevent a Harmony instance from being automatically created and scanning your assembly for patches.
-
-
-
-
- The reference to Harmony instance that applied the patches in your assembly.
-
-
-
-
- A unique identifier used both as and .
- Override them separately if different identifiers are needed or no should be assigned to .
- Must start with a letter and contain any of [A-z, 0-9, -, _, :] (identifier must be valid as an XML tag name).
-
-
- This is no longer used to identify mods since 7.0 (Rimworld 1.1). Use ModBase.ModContentPack.PackageId to that end instead.
-
-
-
-
- A unique identifier to use as a key when settings are stored for this mod by .
- Must start with a letter and contain any of [A-z, 0-9, -, _, :] (identifier must be valid as an XML tag name).
- By default uses the PackageId of the implementing mod.
- Returning null will prevent the property from being assigned.
-
-
-
-
- A readable identifier for the mod, used as a prefix by and in various error messages.
- Appear as "[LogIdentifier] message" when using .
- By default uses the non-lowercase PackageId of the implementing mod or the type name if that is not set.
-
-
-
-
- The null-checked version of .
- Returns the type name if is null.
-
-
-
-
- The content pack for the mod containing the assembly this class belongs to
-
-
-
-
- Can be false if the mod was enabled at game start and then disabled in the mods menu.
- Always true, unless the of the declaring mod can't be
- identified for some unexpected reason.
-
-
-
-
- Contains the AssemblyVersion and AssemblyFileVersion of the mod. Used by .
-
-
-
-
- Return the override version from the Version.xml file if specified,
- or the higher one between AssemblyVersion and AssemblyFileVersion
-
-
-
-
- Called during HugsLib instantiation, accounting for mod load order.
- Load order among mods implementing is respected.
- and only if the implementing class is annotated with .
-
-
-
-
- Called when HugsLib receives the call.
- Load order among mods implementing is respected.
- Called after the static constructors for non-HugsLib mods have executed. Is not called again on def reload
-
-
-
-
- An alias for , both or either can be used,
- although makes for clearer code by indicating when the method is called.
-
-
-
-
- Called on each tick when in Play scene
-
- The sequential number of the tick being processed
-
-
-
- Called each frame
-
-
-
-
- Called each unity physics update
-
-
-
-
- Called on each unity gui event, after UIRoot.UIRootOnGUI.
- Respects UI scaling and screen fading. Will not be called during loading screens.
- This is a good place to listen for hotkey events.
-
-
-
-
- Called when GameState.Playing has been entered and the world is fully loaded in the Play scene.
- Will not be called during world generation and landing site selection.
-
-
-
-
- Called right after Map.ConstructComponents() (before MapLoaded)
-
- The map being initialized
-
-
-
- Called right after a new map has been generated.
- This is the equivalent of MapComponent.MapGenerated().
-
- The new map that has just finished generating
-
-
-
- Called when the map was fully loaded
-
- The map that has finished loading
-
-
-
- Called after a map has been abandoned or otherwise made inaccessible.
- Works on player bases, encounter maps, destroyed faction bases, etc.
-
- The map that has been discarded
-
-
-
- Called after each scene change
-
- The scene that has been loaded
-
-
-
- Called after settings menu changes have been confirmed.
- This is called for all mods, regardless if their own settings have been modified, or not.
-
-
-
-
- Called after StaticInitialize and when defs have been reloaded. This is a good place to inject defs.
- Get your settings handles here, so that the labels will properly update on language change.
- If the mod is disabled after being loaded, this method will STILL execute. Use ModIsActive to check.
-
-
- There is no scenario in which defs are reloaded without the game restarting, save for a mod manually initiating a reload.
- When def reloading is not an issue, anything done by this method can be safely done in StaticInitialize.
-
-
-
-
- Called before the game process shuts down.
- "Quit to OS", clicking the "X" button on the window, and pressing Alt+F4 all execute this event.
- There are still ways to forcibly terminate the game process, so this callback is not 100% reliable.
-
-
- Modified s are automatically saved after this call.
-
-
-
-
- Describes a single update news item.
- Recommended to be placed in the /News folder in the root directory of the mod.
- Can be loaded from the /Defs folder, but any placed
- in the /News folder will unload all s loaded from /Defs.
-
-
-
-
- An optional unique identifier to reference the mod that adds this news item.
- If not set, the PackageId of the mod will be used.
- Must start with a letter and contain any of [A-z, 0-9, -, _, :]
-
-
- Used to preserve compatibility with pre-RW1.1 HugsLib news data, such as already displayed news items and ignored news providers.
- Previously used to reference a BodBase.ModIdentifier which had to be loaded for the defining news def to be displayed.
-
-
-
-
- Displayed in the title of the news item
-
-
-
-
- Optional complete replacement for the news item title
-
-
-
-
- The version number associated with the news item. Format: major.minor.patch
- Used to sort news items and determine which items have not been displayed yet.
-
-
- For example, after an item with version 3.2.1 has been displayed, adding an item with version 3.2.0 will not cause the
- New Mod Features dialog to automatically open. However, both items will still appear the next time the dialog is opened.
- The version of the mod adding the news item is no longer required to be equal or higher for a news item to be displayed.
-
-
-
-
- The text of the news item. Can contain text and images, supports Unity html markup (only recommended for highlighting).
- The text can contain the following formatting markers:
- | -> (pipe) splits the content into segments. A segment can be a paragraph or image sequence
- img:name1,name2 -> Displays a horizontal image sequence. Image names are file names without the extension.
- caption:text -> Attaches a text paragraph on the right side of the preceding image
- Everything else is treated as plain text and creates a paragraph.
-
- Paragraph1|Paragraph2|img:singleImage|caption:caption\ntext|img:sequence1,sequence2|More text
-
-
-
- When set to true (true by default), leading and trailing whitespace characters (spaces, tabs, newlines)
- are removed from content captions and paragraphs.
- This makes it easier lay out your content and not have to cram everything into one line.
-
-
-
-
- Optional link to a forum post/info page for this update, or the whole mod. Displayed in the news item title.
-
-
-
-
- Specifies which players of the mod the news item should be only shown to- new players, returning players, or both.
- Defaults to .
-
-
-
-
- Returns the Id of the owning mod.
- is used if defined, and ModContentPack.PackageId otherwise.
-
-
-
-
- Provides a convenient way to read, compare and print out the assembly version and file version of assemblies.
-
-
-
-
- Tries to read the file assembly version in addition to the already known assembly version.
-
- The assembly to read
- The full path to the assembly file, if is not set
- An with only AssemblyVersion set if an exception was encountered
-
-
-
- Reads assembly version information for a mod assembly.
- Mod assemblies require special treatment, since they are loaded from byte arrays and their is null.
-
- The assembly to read
- The content pack the assembly was loaded from
- See
-
-
-
- A way to schedule single-use callbacks for an upcoming event.
- Useful to break the stack and ensure code is run in the main thread.
- Access via HugsLibController.Instance.DoLater
-
-
-
-
- Schedule a callback to be executed at the start of the next tick
-
-
-
-
- Schedule a callback to be executed at the start of the next frame
-
-
-
-
- Schedule a callback to be executed at the start of the next OnGUI
-
-
-
-
- Schedule a callback to be executed the next time a map has finished loading
-
- The callback receives the map that has finished loading
-
-
-
- A performance-friendly way to execute code at arbitrary tick intervals.
- Optimized for one-off timed callbacks with variable callback delay.
- Use DistributedTickScheduler instead if you have many recipients with recurring callbacks and constant time.
- Callbacks are called at tick time, which means a game must be loaded and running for them to be processed.
-
-
-
-
- Registers a delegate to be called in a given number of ticks.
-
- The delegate to be called
- The delay in ticks before the delegate is called
- Optional owner of the delegate. Callback will not fire if the Thing is not spawned at call time.
- If true, the callback will be rescheduled after each call until manually unscheduled
-
-
-
- Manually remove a callback to abort a delay or clear a recurring callback.
- Silently fails if the callback is not found.
-
- The scheduled callback
-
-
-
- Only for debug purposes
-
-
-
-
- A compact confirm dialog with Esc and Enter key support.
-
-
-
-
- A compact message dialog with a title and a custom close button label.
-
-
-
- A title to display in the dialog
- A message to display in the dialog
- A custom label to the close button. Optional- when null, the default label will be used instead.
- A callback to call when the dialog is closed
-
-
-
- A ticking scheduler for things that require a tick only every so often.
- Distributes tick calls uniformly over multiple frames to reduce the workload.
- Optimized for many tick recipients with the same tick interval.
-
-
-
-
- Registers a delegate to be called every tickInterval ticks.
-
- The delegate that will be called
- The interval between the calls (for example 30 to have the delegate be called 2 times a second)
- The Thing the delegate is attached to. The callback will be automatically unregistered if the owner is found to be despawned at call time.
-
-
-
- Manually removes a delegate to prevent further calls.
-
- Throws if the provided owner is not registered. Use IsRegistered() to check.
- The Thing the delegate was registered with
-
-
-
- Returns true if the passed Thing is registered as the owner of a delegate.
-
-
-
-
-
-
- Returns all registered tick recipients
-
-
-
-
-
- Returns the number of calls issued across all intervals during the last tick
-
-
-
-
- Returns the number of active tickers (intervals)
-
-
-
-
- Tools for working with the Harmony library.
-
-
-
-
- Produces a human-readable list of all methods patched by all Harmony instances and their respective patches.
-
-
-
-
- Produces a human-readable list of all methods patched by a single Harmony instance and their respective patches.
-
- A Harmony instance that can be queried for patch information.
-
-
-
- Produces a human-readable list of Harmony patches on a given set of methods.
-
-
-
-
- Produces a human-readable list of all Harmony versions present and their respective owners.
-
- A Harmony instance that can be queried for version information.
-
-
-
-
- Logs an error if any issues with Harmony patches are detected
-
-
-
-
- A catch-all place for extension methods and other useful stuff
-
-
-
-
- Returns true if the left or right Shift keys are currently pressed.
-
-
-
-
- Returns true if the left or right Alt keys are currently pressed.
-
-
-
-
- Returns true if the left or right Control keys are currently pressed.
- Mac command keys are supported, as well.
-
-
-
-
- Returns an enumerable as a comma-separated string.
-
- A list of elements to string together
-
-
-
- Returns an enumerable as a string, joined by a separator string. By default null values appear as an empty string.
-
- A list of elements to string together
- A string to inset between elements
- If true, null elements will appear as "[null]"
-
-
-
- Returns a version as major.minor.patch formatted string.
-
-
-
-
- Checks if a Thing has a designation of a given def.
-
-
- The designation def to check for
-
-
-
- Adds or removes a designation of a given def on a Thing. Fails silently if designation is already in the desired state.
-
- The thing to designate
- The DesignationDef to apply or remove
- True to add the designation, false to remove
-
-
-
- Checks if a cell has a designation of a given def
-
- The map position to check
- The DesignationDef to detect
- The map to look on. When null, defaults to VisibleMap.
-
-
-
- Adds or removes a designation of a given def on a cell. Fails silently if designation is already in the desired state.
-
- The position to designate
- The DesignationDef to apply or remove
- True to add the designation, false to remove
- The map to operate on. When null, defaults to VisibleMap.
-
-
-
- Returns true, if a MethodInfo matches the provided signature.
-
- Note: instance methods always take their parent type as the first parameter.
- The method to check
- Expected return type of the checked method
- Expected parameter types of the checked method
-
-
-
- Returns an attribute from a member, if it exists.
- Mods could include attributes from libraries that are not loaded, which would throw an exception, so error checking is included.
-
- The type of the attribute to fetch
- The member to fetch the attribute from
-
-
-
- Enumerates all loaded assemblies, including stock and enabled mods.
-
-
-
-
- Returns true if the mod with a matching name is currently loaded in the mod configuration.
-
- The ModMetaData.Name to match
-
-
-
- Copies a string to the system copy buffer and displays a confirmation message.
-
-
-
-
- Expands a shorthand unix user directory path with its full system path.
-
-
-
-
- Adds double quotes to the start and end of a string.
-
-
-
-
- Attempts to return the path of the log file Unity is writing to.
-
-
-
-
-
- Sends a constructed UnityWebRequest, waits for the result, and returns the data via callbacks.
-
- Use UnityWebRequest or WWW to construct a request. Do not call Send().
- Called with the response body if server replied with status 200.
- Called with the error message in case of a network error or if server replied with status other than 200.
- The expected status code in the response for the request to be considered successful
- How long to wait before aborting the request
-
-
-
- Tries to find the file handle for a given mod assembly name.
-
- This is a replacement for mod assemblies are loaded from byte arrays.
- The of the assembly
- The content pack the assembly was presumably loaded from
- Returns null if the file is not found
-
-
-
- Same as but suppresses all exceptions.
-
-
-
-
- Opens the Options dialog on the Mod Settings page.
-
-
-
-
- Adds a hash to a manually instantiated def to avoid def collisions.
-
-
-
-
- Give a short hash to a def created at runtime.
- Short hashes are used for proper saving of defs in compressed maps within a save file.
-
-
- The type of defs your def will be saved with. For example,
- use typeof(ThingDef) if your def extends ThingDef.
-
-
-
- Injects a map component into the current map if it does not already exist.
- Required for new MapComponents that were not active at map creation.
- The injection is performed at ExecuteWhenFinished to allow calling this method in MapComponent constructors.
-
- The MapComponent that is expected to be present is the map's component list
-
-
-
- Gets the map component of the given type from a map.
- Will throw an exception if a component of the requested type is not found.
-
- The type of your MapComponent
- The map to get the component from
-
-
-
- A logger that prefixes all messages with the identifier of the issuing mod.
-
-
-
-
- Writes a message to the log, prefixing it with the issuing mod identifier.
-
- The message to write
- Optional substitution values for the message
-
-
-
- Same as Message(), but the console will display the message as a warning.
-
-
-
-
- Same as Message(), but the console will display the message as an error.
- This will open the Log window in in Dev mode.
-
-
-
-
- Writes a message only if Dev mode is enabled.
- Message is written using Tracer.Trace with the addition of the ModIdentifier as the first value.
-
- The strings to display
-
-
-
- Same as Trace(), but formats the message and replaces substitution variables.
-
-
-
-
- Writes an error to the log to report an exception.
- The message will contain the name of the method that caused the exception if a location is not provided.
-
- The exception that occurred
- Optional identifier of the mod that caused the exception
- True, if the exception should only be reported once for that specific location. Useful for errors that will trigger each frame or tick.
- Optional name of the location where the exception occurred. Will display as "exception during (location)"
-
-
-
- A tool to identify the platform the game is running on.
-
-
-
-
- Utility methods for displaying debug messages during development.
-
-
-
-
- Writes comma-separated log messages if the game is in Dev mode.
- Any non-strings will be converted to strings, and null values will appear explicitly.
-
- Messages to output
-
-
-
- Similar to Trace, but feeds the messages through String.Format first.
-
- The string to interpolate
- Interpolation arguments
-
-
-
- Base type for utility WorldObjects repurposed to store data. See UtilityWorldObjectManager for more info.
-
-
-
-
- Handles utility WorldObjects of custom types.
- Utility WorldObjects are a map-independent storage method for custom data.
- All UWOs share the same def and aren't visible on the world, but are saved and loaded with it.
-
-
-
-
- Returns an existing UWO or creates a new one, adding it to the world.
-
- Your custom type that extends UtilityWorldObject
-
-
-
diff --git a/CRIALactation/1.4/Assemblies/ISharpZipLib.dll b/CRIALactation/1.4/Assemblies/ISharpZipLib.dll
deleted file mode 100644
index bb15d24..0000000
Binary files a/CRIALactation/1.4/Assemblies/ISharpZipLib.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/Milk.dll b/CRIALactation/1.4/Assemblies/Milk.dll
deleted file mode 100644
index 0e58733..0000000
Binary files a/CRIALactation/1.4/Assemblies/Milk.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/NAudio.dll b/CRIALactation/1.4/Assemblies/NAudio.dll
deleted file mode 100644
index decb8dd..0000000
Binary files a/CRIALactation/1.4/Assemblies/NAudio.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/NVorbis.dll b/CRIALactation/1.4/Assemblies/NVorbis.dll
deleted file mode 100644
index 89d7214..0000000
Binary files a/CRIALactation/1.4/Assemblies/NVorbis.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/RJW.dll b/CRIALactation/1.4/Assemblies/RJW.dll
deleted file mode 100644
index cd73522..0000000
Binary files a/CRIALactation/1.4/Assemblies/RJW.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/Unity.TextMeshPro.dll b/CRIALactation/1.4/Assemblies/Unity.TextMeshPro.dll
deleted file mode 100644
index ec29a4f..0000000
Binary files a/CRIALactation/1.4/Assemblies/Unity.TextMeshPro.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/UnityEngine.AIModule.dll b/CRIALactation/1.4/Assemblies/UnityEngine.AIModule.dll
deleted file mode 100644
index 78e7704..0000000
Binary files a/CRIALactation/1.4/Assemblies/UnityEngine.AIModule.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/UnityEngine.ARModule.dll b/CRIALactation/1.4/Assemblies/UnityEngine.ARModule.dll
deleted file mode 100644
index faa2f92..0000000
Binary files a/CRIALactation/1.4/Assemblies/UnityEngine.ARModule.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/UnityEngine.AccessibilityModule.dll b/CRIALactation/1.4/Assemblies/UnityEngine.AccessibilityModule.dll
deleted file mode 100644
index 5229d35..0000000
Binary files a/CRIALactation/1.4/Assemblies/UnityEngine.AccessibilityModule.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/UnityEngine.AndroidJNIModule.dll b/CRIALactation/1.4/Assemblies/UnityEngine.AndroidJNIModule.dll
deleted file mode 100644
index 52d1ec4..0000000
Binary files a/CRIALactation/1.4/Assemblies/UnityEngine.AndroidJNIModule.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/UnityEngine.AnimationModule.dll b/CRIALactation/1.4/Assemblies/UnityEngine.AnimationModule.dll
deleted file mode 100644
index 6243b6b..0000000
Binary files a/CRIALactation/1.4/Assemblies/UnityEngine.AnimationModule.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/UnityEngine.AssetBundleModule.dll b/CRIALactation/1.4/Assemblies/UnityEngine.AssetBundleModule.dll
deleted file mode 100644
index 4762681..0000000
Binary files a/CRIALactation/1.4/Assemblies/UnityEngine.AssetBundleModule.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/UnityEngine.AudioModule.dll b/CRIALactation/1.4/Assemblies/UnityEngine.AudioModule.dll
deleted file mode 100644
index 04a092a..0000000
Binary files a/CRIALactation/1.4/Assemblies/UnityEngine.AudioModule.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/UnityEngine.ClothModule.dll b/CRIALactation/1.4/Assemblies/UnityEngine.ClothModule.dll
deleted file mode 100644
index e9a819d..0000000
Binary files a/CRIALactation/1.4/Assemblies/UnityEngine.ClothModule.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/UnityEngine.ClusterInputModule.dll b/CRIALactation/1.4/Assemblies/UnityEngine.ClusterInputModule.dll
deleted file mode 100644
index 6324fbb..0000000
Binary files a/CRIALactation/1.4/Assemblies/UnityEngine.ClusterInputModule.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/UnityEngine.ClusterRendererModule.dll b/CRIALactation/1.4/Assemblies/UnityEngine.ClusterRendererModule.dll
deleted file mode 100644
index 26ef8fa..0000000
Binary files a/CRIALactation/1.4/Assemblies/UnityEngine.ClusterRendererModule.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/UnityEngine.CoreModule.dll b/CRIALactation/1.4/Assemblies/UnityEngine.CoreModule.dll
deleted file mode 100644
index 83b2b0a..0000000
Binary files a/CRIALactation/1.4/Assemblies/UnityEngine.CoreModule.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/UnityEngine.CrashReportingModule.dll b/CRIALactation/1.4/Assemblies/UnityEngine.CrashReportingModule.dll
deleted file mode 100644
index 7d391bd..0000000
Binary files a/CRIALactation/1.4/Assemblies/UnityEngine.CrashReportingModule.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/UnityEngine.DSPGraphModule.dll b/CRIALactation/1.4/Assemblies/UnityEngine.DSPGraphModule.dll
deleted file mode 100644
index eba8cc1..0000000
Binary files a/CRIALactation/1.4/Assemblies/UnityEngine.DSPGraphModule.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/UnityEngine.DirectorModule.dll b/CRIALactation/1.4/Assemblies/UnityEngine.DirectorModule.dll
deleted file mode 100644
index 5976cc5..0000000
Binary files a/CRIALactation/1.4/Assemblies/UnityEngine.DirectorModule.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/UnityEngine.GameCenterModule.dll b/CRIALactation/1.4/Assemblies/UnityEngine.GameCenterModule.dll
deleted file mode 100644
index 4797dbe..0000000
Binary files a/CRIALactation/1.4/Assemblies/UnityEngine.GameCenterModule.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/UnityEngine.GridModule.dll b/CRIALactation/1.4/Assemblies/UnityEngine.GridModule.dll
deleted file mode 100644
index 61c1ec4..0000000
Binary files a/CRIALactation/1.4/Assemblies/UnityEngine.GridModule.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/UnityEngine.IMGUIModule.dll b/CRIALactation/1.4/Assemblies/UnityEngine.IMGUIModule.dll
deleted file mode 100644
index b557b58..0000000
Binary files a/CRIALactation/1.4/Assemblies/UnityEngine.IMGUIModule.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/UnityEngine.ImageConversionModule.dll b/CRIALactation/1.4/Assemblies/UnityEngine.ImageConversionModule.dll
deleted file mode 100644
index 79aa449..0000000
Binary files a/CRIALactation/1.4/Assemblies/UnityEngine.ImageConversionModule.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/UnityEngine.InputLegacyModule.dll b/CRIALactation/1.4/Assemblies/UnityEngine.InputLegacyModule.dll
deleted file mode 100644
index 1067ff9..0000000
Binary files a/CRIALactation/1.4/Assemblies/UnityEngine.InputLegacyModule.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/UnityEngine.InputModule.dll b/CRIALactation/1.4/Assemblies/UnityEngine.InputModule.dll
deleted file mode 100644
index 3be4fb9..0000000
Binary files a/CRIALactation/1.4/Assemblies/UnityEngine.InputModule.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/UnityEngine.JSONSerializeModule.dll b/CRIALactation/1.4/Assemblies/UnityEngine.JSONSerializeModule.dll
deleted file mode 100644
index cd1981f..0000000
Binary files a/CRIALactation/1.4/Assemblies/UnityEngine.JSONSerializeModule.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/UnityEngine.LocalizationModule.dll b/CRIALactation/1.4/Assemblies/UnityEngine.LocalizationModule.dll
deleted file mode 100644
index 292f854..0000000
Binary files a/CRIALactation/1.4/Assemblies/UnityEngine.LocalizationModule.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/UnityEngine.ParticleSystemModule.dll b/CRIALactation/1.4/Assemblies/UnityEngine.ParticleSystemModule.dll
deleted file mode 100644
index c570bbe..0000000
Binary files a/CRIALactation/1.4/Assemblies/UnityEngine.ParticleSystemModule.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/UnityEngine.PerformanceReportingModule.dll b/CRIALactation/1.4/Assemblies/UnityEngine.PerformanceReportingModule.dll
deleted file mode 100644
index faf6411..0000000
Binary files a/CRIALactation/1.4/Assemblies/UnityEngine.PerformanceReportingModule.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/UnityEngine.Physics2DModule.dll b/CRIALactation/1.4/Assemblies/UnityEngine.Physics2DModule.dll
deleted file mode 100644
index 65dba8a..0000000
Binary files a/CRIALactation/1.4/Assemblies/UnityEngine.Physics2DModule.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/UnityEngine.PhysicsModule.dll b/CRIALactation/1.4/Assemblies/UnityEngine.PhysicsModule.dll
deleted file mode 100644
index 4a7a9a6..0000000
Binary files a/CRIALactation/1.4/Assemblies/UnityEngine.PhysicsModule.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/UnityEngine.ScreenCaptureModule.dll b/CRIALactation/1.4/Assemblies/UnityEngine.ScreenCaptureModule.dll
deleted file mode 100644
index 4ec8198..0000000
Binary files a/CRIALactation/1.4/Assemblies/UnityEngine.ScreenCaptureModule.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/UnityEngine.SharedInternalsModule.dll b/CRIALactation/1.4/Assemblies/UnityEngine.SharedInternalsModule.dll
deleted file mode 100644
index 8a9c9eb..0000000
Binary files a/CRIALactation/1.4/Assemblies/UnityEngine.SharedInternalsModule.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/UnityEngine.SpriteMaskModule.dll b/CRIALactation/1.4/Assemblies/UnityEngine.SpriteMaskModule.dll
deleted file mode 100644
index 3de5b54..0000000
Binary files a/CRIALactation/1.4/Assemblies/UnityEngine.SpriteMaskModule.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/UnityEngine.SpriteShapeModule.dll b/CRIALactation/1.4/Assemblies/UnityEngine.SpriteShapeModule.dll
deleted file mode 100644
index b59a5b8..0000000
Binary files a/CRIALactation/1.4/Assemblies/UnityEngine.SpriteShapeModule.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/UnityEngine.StreamingModule.dll b/CRIALactation/1.4/Assemblies/UnityEngine.StreamingModule.dll
deleted file mode 100644
index 69068e5..0000000
Binary files a/CRIALactation/1.4/Assemblies/UnityEngine.StreamingModule.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/UnityEngine.SubsystemsModule.dll b/CRIALactation/1.4/Assemblies/UnityEngine.SubsystemsModule.dll
deleted file mode 100644
index b5b7429..0000000
Binary files a/CRIALactation/1.4/Assemblies/UnityEngine.SubsystemsModule.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/UnityEngine.TerrainModule.dll b/CRIALactation/1.4/Assemblies/UnityEngine.TerrainModule.dll
deleted file mode 100644
index 18b193e..0000000
Binary files a/CRIALactation/1.4/Assemblies/UnityEngine.TerrainModule.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/UnityEngine.TerrainPhysicsModule.dll b/CRIALactation/1.4/Assemblies/UnityEngine.TerrainPhysicsModule.dll
deleted file mode 100644
index 48119b4..0000000
Binary files a/CRIALactation/1.4/Assemblies/UnityEngine.TerrainPhysicsModule.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/UnityEngine.TextCoreModule.dll b/CRIALactation/1.4/Assemblies/UnityEngine.TextCoreModule.dll
deleted file mode 100644
index e13a54d..0000000
Binary files a/CRIALactation/1.4/Assemblies/UnityEngine.TextCoreModule.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/UnityEngine.TextRenderingModule.dll b/CRIALactation/1.4/Assemblies/UnityEngine.TextRenderingModule.dll
deleted file mode 100644
index 447239e..0000000
Binary files a/CRIALactation/1.4/Assemblies/UnityEngine.TextRenderingModule.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/UnityEngine.TilemapModule.dll b/CRIALactation/1.4/Assemblies/UnityEngine.TilemapModule.dll
deleted file mode 100644
index 6c43665..0000000
Binary files a/CRIALactation/1.4/Assemblies/UnityEngine.TilemapModule.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/UnityEngine.UI.dll b/CRIALactation/1.4/Assemblies/UnityEngine.UI.dll
deleted file mode 100644
index ea17de1..0000000
Binary files a/CRIALactation/1.4/Assemblies/UnityEngine.UI.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/UnityEngine.UIElementsModule.dll b/CRIALactation/1.4/Assemblies/UnityEngine.UIElementsModule.dll
deleted file mode 100644
index 8dc2716..0000000
Binary files a/CRIALactation/1.4/Assemblies/UnityEngine.UIElementsModule.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/UnityEngine.UIModule.dll b/CRIALactation/1.4/Assemblies/UnityEngine.UIModule.dll
deleted file mode 100644
index e082dda..0000000
Binary files a/CRIALactation/1.4/Assemblies/UnityEngine.UIModule.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/UnityEngine.UNETModule.dll b/CRIALactation/1.4/Assemblies/UnityEngine.UNETModule.dll
deleted file mode 100644
index 0234fad..0000000
Binary files a/CRIALactation/1.4/Assemblies/UnityEngine.UNETModule.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/UnityEngine.UnityAnalyticsModule.dll b/CRIALactation/1.4/Assemblies/UnityEngine.UnityAnalyticsModule.dll
deleted file mode 100644
index e3c39e8..0000000
Binary files a/CRIALactation/1.4/Assemblies/UnityEngine.UnityAnalyticsModule.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/UnityEngine.UnityConnectModule.dll b/CRIALactation/1.4/Assemblies/UnityEngine.UnityConnectModule.dll
deleted file mode 100644
index 7ec2470..0000000
Binary files a/CRIALactation/1.4/Assemblies/UnityEngine.UnityConnectModule.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/UnityEngine.UnityWebRequestAssetBundleModule.dll b/CRIALactation/1.4/Assemblies/UnityEngine.UnityWebRequestAssetBundleModule.dll
deleted file mode 100644
index 0024d85..0000000
Binary files a/CRIALactation/1.4/Assemblies/UnityEngine.UnityWebRequestAssetBundleModule.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/UnityEngine.UnityWebRequestAudioModule.dll b/CRIALactation/1.4/Assemblies/UnityEngine.UnityWebRequestAudioModule.dll
deleted file mode 100644
index d4f9220..0000000
Binary files a/CRIALactation/1.4/Assemblies/UnityEngine.UnityWebRequestAudioModule.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/UnityEngine.UnityWebRequestModule.dll b/CRIALactation/1.4/Assemblies/UnityEngine.UnityWebRequestModule.dll
deleted file mode 100644
index b99842a..0000000
Binary files a/CRIALactation/1.4/Assemblies/UnityEngine.UnityWebRequestModule.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/UnityEngine.UnityWebRequestTextureModule.dll b/CRIALactation/1.4/Assemblies/UnityEngine.UnityWebRequestTextureModule.dll
deleted file mode 100644
index d8b643a..0000000
Binary files a/CRIALactation/1.4/Assemblies/UnityEngine.UnityWebRequestTextureModule.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/UnityEngine.UnityWebRequestWWWModule.dll b/CRIALactation/1.4/Assemblies/UnityEngine.UnityWebRequestWWWModule.dll
deleted file mode 100644
index b8b8314..0000000
Binary files a/CRIALactation/1.4/Assemblies/UnityEngine.UnityWebRequestWWWModule.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/UnityEngine.VFXModule.dll b/CRIALactation/1.4/Assemblies/UnityEngine.VFXModule.dll
deleted file mode 100644
index 0895120..0000000
Binary files a/CRIALactation/1.4/Assemblies/UnityEngine.VFXModule.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/UnityEngine.VRModule.dll b/CRIALactation/1.4/Assemblies/UnityEngine.VRModule.dll
deleted file mode 100644
index ea9d6fe..0000000
Binary files a/CRIALactation/1.4/Assemblies/UnityEngine.VRModule.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/UnityEngine.VehiclesModule.dll b/CRIALactation/1.4/Assemblies/UnityEngine.VehiclesModule.dll
deleted file mode 100644
index f7c1085..0000000
Binary files a/CRIALactation/1.4/Assemblies/UnityEngine.VehiclesModule.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/UnityEngine.VideoModule.dll b/CRIALactation/1.4/Assemblies/UnityEngine.VideoModule.dll
deleted file mode 100644
index 92c9898..0000000
Binary files a/CRIALactation/1.4/Assemblies/UnityEngine.VideoModule.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/UnityEngine.WindModule.dll b/CRIALactation/1.4/Assemblies/UnityEngine.WindModule.dll
deleted file mode 100644
index 8ac2232..0000000
Binary files a/CRIALactation/1.4/Assemblies/UnityEngine.WindModule.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/UnityEngine.XRModule.dll b/CRIALactation/1.4/Assemblies/UnityEngine.XRModule.dll
deleted file mode 100644
index a58bf6a..0000000
Binary files a/CRIALactation/1.4/Assemblies/UnityEngine.XRModule.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/UnityEngine.dll b/CRIALactation/1.4/Assemblies/UnityEngine.dll
deleted file mode 100644
index d45693c..0000000
Binary files a/CRIALactation/1.4/Assemblies/UnityEngine.dll and /dev/null differ
diff --git a/CRIALactation/1.4/Assemblies/com.rlabrecque.steamworks.net.dll b/CRIALactation/1.4/Assemblies/com.rlabrecque.steamworks.net.dll
deleted file mode 100644
index 57edb49..0000000
Binary files a/CRIALactation/1.4/Assemblies/com.rlabrecque.steamworks.net.dll and /dev/null differ
diff --git a/CRIALactation/CRIALactation.csproj b/CRIALactation/CRIALactation.csproj
index 9c93a0f..5c849ac 100644
--- a/CRIALactation/CRIALactation.csproj
+++ b/CRIALactation/CRIALactation.csproj
@@ -34,18 +34,23 @@
..\..\..\..\..\workshop\content\294100\839005762\1.4\Assemblies\0Harmony.dll
+ False
..\..\..\RimWorldWin64_Data\Managed\Assembly-CSharp.dll
+ False
..\..\..\..\..\workshop\content\294100\818773962\v1.4\Assemblies\HugsLib.dll
+ False
..\..\rjw-mc\1.3\Assemblies\Milk.dll
+ False
..\..\rjw\1.4\Assemblies\RJW.dll
+ False
@@ -57,9 +62,11 @@
..\..\..\RimWorldWin64_Data\Managed\UnityEngine.dll
+ False
..\..\..\RimWorldWin64_Data\Managed\UnityEngine.CoreModule.dll
+ False
diff --git a/CRIAOrgy/1.4/Assemblies/0Harmony.dll b/CRIAOrgy/1.4/Assemblies/0Harmony.dll
deleted file mode 100644
index e182535..0000000
Binary files a/CRIAOrgy/1.4/Assemblies/0Harmony.dll and /dev/null differ
diff --git a/CRIAOrgy/1.4/Assemblies/0Harmony.xml b/CRIAOrgy/1.4/Assemblies/0Harmony.xml
deleted file mode 100644
index f1b9b4c..0000000
--- a/CRIAOrgy/1.4/Assemblies/0Harmony.xml
+++ /dev/null
@@ -1,3693 +0,0 @@
-
-
-
- 0Harmony
-
-
-
- A factory to create delegate types
-
-
- Default constructor
-
-
- Creates a delegate type for a method
- The method
- The new delegate type
-
-
-
- A getter delegate type
- Type that getter gets field/property value from
- Type of the value that getter gets
- The instance get getter uses
- An delegate
-
-
-
- A setter delegate type
- Type that setter sets field/property value for
- Type of the value that setter sets
- The instance the setter uses
- The value the setter uses
- An delegate
-
-
-
- A constructor delegate type
- Type that constructor creates
- An delegate
-
-
-
- A helper class for fast access to getters and setters
-
-
- Creates an instantiation delegate
- Type that constructor creates
- The new instantiation delegate
-
-
-
- Creates an getter delegate for a property
- Type that getter reads property from
- Type of the property that gets accessed
- The property
- The new getter delegate
-
-
-
- Creates an getter delegate for a field
- Type that getter reads field from
- Type of the field that gets accessed
- The field
- The new getter delegate
-
-
-
- Creates an getter delegate for a field (with a list of possible field names)
- Type that getter reads field/property from
- Type of the field/property that gets accessed
- A list of possible field names
- The new getter delegate
-
-
-
- Creates an setter delegate
- Type that setter assigns property value to
- Type of the property that gets assigned
- The property
- The new setter delegate
-
-
-
- Creates an setter delegate for a field
- Type that setter assigns field value to
- Type of the field that gets assigned
- The field
- The new getter delegate
-
-
-
- A delegate to invoke a method
- The instance
- The method parameters
- The method result
-
-
- A helper class to invoke method with delegates
-
-
- Creates a fast invocation handler from a method
- The method to invoke
- Controls if boxed value object is accessed/updated directly
- The
-
-
- The directBoxValueAccess option controls how value types passed by reference (e.g. ref int, out my_struct) are handled in the arguments array
- passed to the fast invocation handler.
- Since the arguments array is an object array, any value types contained within it are actually references to a boxed value object.
- Like any other object, there can be other references to such boxed value objects, other than the reference within the arguments array.
- For example,
-
- var val = 5;
- var box = (object)val;
- var arr = new object[] { box };
- handler(arr); // for a method with parameter signature: ref/out/in int
-
-
-
-
- If directBoxValueAccess is true, the boxed value object is accessed (and potentially updated) directly when the handler is called,
- such that all references to the boxed object reflect the potentially updated value.
- In the above example, if the method associated with the handler updates the passed (boxed) value to 10, both box and arr[0]
- now reflect the value 10. Note that the original val is not updated, since boxing always copies the value into the new boxed value object.
-
-
- If directBoxValueAccess is false (default), the boxed value object in the arguments array is replaced with a "reboxed" value object,
- such that potential updates to the value are reflected only in the arguments array.
- In the above example, if the method associated with the handler updates the passed (boxed) value to 10, only arr[0] now reflects the value 10.
-
-
-
-
- A low level memory helper
-
-
-
- Mark method for no inlining (currently only works on Mono)
- The method/constructor to change
-
-
-
- Detours a method
- The original method/constructor
- The replacement method/constructor
- An error string
-
-
-
- Writes a jump to memory
- The memory address
- Jump destination
- An error string
-
-
-
- Gets the start of a method in memory
- The method/constructor
- [out] Details of the exception
- The method start address
-
-
-
- special parameter names that can be used in prefix and postfix methods
-
-
- Patch function helpers
-
-
- Sorts patch methods by their priority rules
- The original method
- Patches to sort
- Use debug mode
- The sorted patch methods
-
-
-
- Creates new replacement method with the latest patches and detours the original method
- The original method
- Information describing the patches
- The newly created replacement method
-
-
-
- Creates a patch sorter
- Array of patches that will be sorted
- Use debugging
-
-
- Sorts internal PatchSortingWrapper collection and caches the results.
- After first run the result is provided from the cache.
- The original method
- The sorted patch methods
-
-
- Checks if the sorter was created with the same patch list and as a result can be reused to
- get the sorted order of the patches.
- List of patches to check against
- true if equal
-
-
- Removes one unresolved dependency from the least important patch.
-
-
- Outputs all unblocked patches from the waiting list to results list
-
-
- Adds patch to both results list and handled patches set
- Patch to add
-
-
- Wrapper used over the Patch object to allow faster dependency access and
- dependency removal in case of cyclic dependencies
-
-
- Create patch wrapper object used for sorting
- Patch to wrap
-
-
- Determines how patches sort
- The other patch
- integer to define sort order (-1, 0, 1)
-
-
- Determines whether patches are equal
- The other patch
- true if equal
-
-
- Hash function
- A hash code
-
-
- Bidirectionally registers Patches as after dependencies
- List of dependencies to register
-
-
- Bidirectionally registers Patches as before dependencies
- List of dependencies to register
-
-
- Bidirectionally removes Patch from after dependencies
- Patch to remove
-
-
- Bidirectionally removes Patch from before dependencies
- Patch to remove
-
-
- Specifies the type of method
-
-
-
- This is a normal method
-
-
- This is a getter
-
-
- This is a setter
-
-
- This is a constructor
-
-
- This is a static constructor
-
-
- This targets the MoveNext method of the enumerator result
-
-
- Specifies the type of argument
-
-
-
- This is a normal argument
-
-
- This is a reference argument (ref)
-
-
- This is an out argument (out)
-
-
- This is a pointer argument (&)
-
-
- Specifies the type of patch
-
-
-
- Any patch
-
-
- A prefix patch
-
-
- A postfix patch
-
-
- A transpiler
-
-
- A finalizer
-
-
- A reverse patch
-
-
- Specifies the type of reverse patch
-
-
-
- Use the unmodified original method (directly from IL)
-
-
- Use the original as it is right now including previous patches but excluding future ones
-
-
- Specifies the type of method call dispatching mechanics
-
-
-
- Call the method using dynamic dispatching if method is virtual (including overriden)
-
-
- This is the built-in form of late binding (a.k.a. dynamic binding) and is the default dispatching mechanic in C#.
- This directly corresponds with the instruction.
-
-
- For virtual (including overriden) methods, the instance type's most-derived/overriden implementation of the method is called.
- For non-virtual (including static) methods, same behavior as : the exact specified method implementation is called.
-
-
- Note: This is not a fully dynamic dispatch, since non-virtual (including static) methods are still called non-virtually.
- A fully dynamic dispatch in C# involves using
- the dynamic type
- (actually a fully dynamic binding, since even the name and overload resolution happens at runtime), which does not support.
-
-
-
-
- Call the method using static dispatching, regardless of whether method is virtual (including overriden) or non-virtual (including static)
-
-
- a.k.a. non-virtual dispatching, early binding, or static binding.
- This directly corresponds with the instruction.
-
-
- For both virtual (including overriden) and non-virtual (including static) methods, the exact specified method implementation is called, without virtual/override mechanics.
-
-
-
-
- The base class for all Harmony annotations (not meant to be used directly)
-
-
-
- The common information for all attributes
-
-
- Annotation to define your Harmony patch methods
-
-
-
- An empty annotation can be used together with TargetMethod(s)
-
-
-
- An annotation that specifies a class to patch
- The declaring class/type
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The declaring class/type
- The argument types of the method or constructor to patch
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The declaring class/type
- The name of the method, property or constructor to patch
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The declaring class/type
- The name of the method, property or constructor to patch
- An array of argument types to target overloads
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The declaring class/type
- The name of the method, property or constructor to patch
- An array of argument types to target overloads
- Array of
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The declaring class/type
- The
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The declaring class/type
- The
- An array of argument types to target overloads
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The declaring class/type
- The
- An array of argument types to target overloads
- Array of
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The declaring class/type
- The name of the method, property or constructor to patch
- The
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The name of the method, property or constructor to patch
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The name of the method, property or constructor to patch
- An array of argument types to target overloads
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The name of the method, property or constructor to patch
- An array of argument types to target overloads
- An array of
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The name of the method, property or constructor to patch
- The
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The
- An array of argument types to target overloads
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The
- An array of argument types to target overloads
- An array of
-
-
-
- An annotation that specifies a method, property or constructor to patch
- An array of argument types to target overloads
-
-
-
- An annotation that specifies a method, property or constructor to patch
- An array of argument types to target overloads
- An array of
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The full name of the declaring class/type
- The name of the method, property or constructor to patch
- The
-
-
-
- Annotation to define the original method for delegate injection
-
-
-
- An annotation that specifies a class to patch
- The declaring class/type
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The declaring class/type
- The argument types of the method or constructor to patch
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The declaring class/type
- The name of the method, property or constructor to patch
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The declaring class/type
- The name of the method, property or constructor to patch
- An array of argument types to target overloads
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The declaring class/type
- The name of the method, property or constructor to patch
- An array of argument types to target overloads
- Array of
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The declaring class/type
- The
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The declaring class/type
- The
- An array of argument types to target overloads
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The declaring class/type
- The
- An array of argument types to target overloads
- Array of
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The declaring class/type
- The name of the method, property or constructor to patch
- The
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The name of the method, property or constructor to patch
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The name of the method, property or constructor to patch
- An array of argument types to target overloads
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The name of the method, property or constructor to patch
- An array of argument types to target overloads
- An array of
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The name of the method, property or constructor to patch
- The
-
-
-
- An annotation that specifies call dispatching mechanics for the delegate
- The
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The
- An array of argument types to target overloads
-
-
-
- An annotation that specifies a method, property or constructor to patch
- The
- An array of argument types to target overloads
- An array of
-
-
-
- An annotation that specifies a method, property or constructor to patch
- An array of argument types to target overloads
-
-
-
- An annotation that specifies a method, property or constructor to patch
- An array of argument types to target overloads
- An array of
-
-
-
- Annotation to define your standin methods for reverse patching
-
-
-
- An annotation that specifies the type of reverse patching
- The of the reverse patch
-
-
-
- A Harmony annotation to define that all methods in a class are to be patched
-
-
-
- A Harmony annotation
-
-
-
- A Harmony annotation to define patch priority
- The priority
-
-
-
- A Harmony annotation
-
-
-
- A Harmony annotation to define that a patch comes before another patch
- The array of harmony IDs of the other patches
-
-
-
- A Harmony annotation
-
-
- A Harmony annotation to define that a patch comes after another patch
- The array of harmony IDs of the other patches
-
-
-
- A Harmony annotation
-
-
- A Harmony annotation to debug a patch (output uses to log to your Desktop)
-
-
-
- Specifies the Prepare function in a patch class
-
-
-
- Specifies the Cleanup function in a patch class
-
-
-
- Specifies the TargetMethod function in a patch class
-
-
-
- Specifies the TargetMethods function in a patch class
-
-
-
- Specifies the Prefix function in a patch class
-
-
-
- Specifies the Postfix function in a patch class
-
-
-
- Specifies the Transpiler function in a patch class
-
-
-
- Specifies the Finalizer function in a patch class
-
-
-
- A Harmony annotation
-
-
-
- The name of the original argument
-
-
-
- The index of the original argument
-
-
-
- The new name of the original argument
-
-
-
- An annotation to declare injected arguments by name
-
-
-
- An annotation to declare injected arguments by index
- Zero-based index
-
-
-
- An annotation to declare injected arguments by renaming them
- Name of the original argument
- New name
-
-
-
- An annotation to declare injected arguments by index and renaming them
- Zero-based index
- New name
-
-
-
- An abstract wrapper around OpCode and their operands. Used by transpilers
-
-
-
- The opcode
-
-
-
- The operand
-
-
-
- All labels defined on this instruction
-
-
-
- All exception block boundaries defined on this instruction
-
-
-
- Creates a new CodeInstruction with a given opcode and optional operand
- The opcode
- The operand
-
-
-
- Create a full copy (including labels and exception blocks) of a CodeInstruction
- The to copy
-
-
-
- Clones a CodeInstruction and resets its labels and exception blocks
- A lightweight copy of this code instruction
-
-
-
- Clones a CodeInstruction, resets labels and exception blocks and sets its opcode
- The opcode
- A copy of this CodeInstruction with a new opcode
-
-
-
- Clones a CodeInstruction, resets labels and exception blocks and sets its operand
- The operand
- A copy of this CodeInstruction with a new operand
-
-
-
- Creates a CodeInstruction calling a method (CALL)
- The class/type where the method is declared
- The name of the method (case sensitive)
- Optional parameters to target a specific overload of the method
- Optional list of types that define the generic version of the method
- A code instruction that calls the method matching the arguments
-
-
-
- Creates a CodeInstruction calling a method (CALL)
- The target method in the form TypeFullName:MethodName, where the type name matches a form recognized by Type.GetType like Some.Namespace.Type.
- Optional parameters to target a specific overload of the method
- Optional list of types that define the generic version of the method
- A code instruction that calls the method matching the arguments
-
-
-
- Creates a CodeInstruction calling a method (CALL)
- The lambda expression using the method
-
-
-
-
- Creates a CodeInstruction calling a method (CALL)
- The lambda expression using the method
-
-
-
-
- Creates a CodeInstruction calling a method (CALL)
- The lambda expression using the method
-
-
-
-
- Creates a CodeInstruction calling a method (CALL)
- The lambda expression using the method
-
-
-
-
- Returns an instruction to call the specified closure
- The delegate type to emit
- The closure that defines the method to call
- A that calls the closure as a method
-
-
-
- Creates a CodeInstruction loading a field (LD[S]FLD[A])
- The class/type where the field is defined
- The name of the field (case sensitive)
- Use address of field
-
-
-
- Creates a CodeInstruction storing to a field (ST[S]FLD)
- The class/type where the field is defined
- The name of the field (case sensitive)
-
-
-
- Returns a string representation of the code instruction
- A string representation of the code instruction
-
-
-
- Exception block types
-
-
-
- The beginning of an exception block
-
-
-
- The beginning of a catch block
-
-
-
- The beginning of an except filter block (currently not supported to use in a patch)
-
-
-
- The beginning of a fault block
-
-
-
- The beginning of a finally block
-
-
-
- The end of an exception block
-
-
-
- An exception block
-
-
-
- Block type
-
-
-
- Catch type
-
-
-
- Creates an exception block
- The
- The catch type
-
-
-
- The Harmony instance is the main entry to Harmony. After creating one with an unique identifier, it is used to patch and query the current application domain
-
-
-
- The unique identifier
-
-
-
- Set to true before instantiating Harmony to debug Harmony or use an environment variable to set HARMONY_DEBUG to '1' like this: cmd /C "set HARMONY_DEBUG=1 && game.exe"
- This is for full debugging. To debug only specific patches, use the attribute
-
-
-
- Creates a new Harmony instance
- A unique identifier (you choose your own)
- A Harmony instance
-
-
-
- Searches the current assembly for Harmony annotations and uses them to create patches
- This method can fail to use the correct assembly when being inlined. It calls StackTrace.GetFrame(1) which can point to the wrong method/assembly. If you are unsure or run into problems, use PatchAll(Assembly.GetExecutingAssembly())
instead.
-
-
-
- Creates a empty patch processor for an original method
- The original method/constructor
- A new instance
-
-
-
- Creates a patch class processor from an annotated class
- The class/type
- A new instance
-
-
-
- Creates a reverse patcher for one of your stub methods
- The original method/constructor
- The stand-in stub method as
- A new instance
-
-
-
- Searches an assembly for Harmony annotations and uses them to create patches
- The assembly
-
-
-
- Creates patches by manually specifying the methods
- The original method/constructor
- An optional prefix method wrapped in a object
- An optional postfix method wrapped in a object
- An optional transpiler method wrapped in a object
- An optional finalizer method wrapped in a object
- The replacement method that was created to patch the original method
-
-
-
- Patches a foreign method onto a stub method of yours and optionally applies transpilers during the process
- The original method/constructor you want to duplicate
- Your stub method as that will become the original. Needs to have the correct signature (either original or whatever your transpilers generates)
- An optional transpiler as method that will be applied during the process
- The replacement method that was created to patch the stub method
-
-
-
- Unpatches methods by patching them with zero patches. Fully unpatching is not supported. Be careful, unpatching is global
- The optional Harmony ID to restrict unpatching to a specific Harmony instance
- This method could be static if it wasn't for the fact that unpatching creates a new replacement method that contains your harmony ID
-
-
-
- Unpatches a method by patching it with zero patches. Fully unpatching is not supported. Be careful, unpatching is global
- The original method/constructor
- The
- The optional Harmony ID to restrict unpatching to a specific Harmony instance
-
-
-
- Unpatches a method by patching it with zero patches. Fully unpatching is not supported. Be careful, unpatching is global
- The original method/constructor
- The patch method as method to remove
-
-
-
- Test for patches from a specific Harmony ID
- The Harmony ID
- True if patches for this ID exist
-
-
-
- Gets patch information for a given original method
- The original method/constructor
- The patch information as
-
-
-
- Gets the methods this instance has patched
- An enumeration of original methods/constructors
-
-
-
- Gets all patched original methods in the appdomain
- An enumeration of patched original methods/constructors
-
-
-
- Gets the original method from a given replacement method
- A replacement method, for example from a stacktrace
- The original method/constructor or null if not found
-
-
-
- Tries to get the method from a stackframe including dynamic replacement methods
- The
- For normal frames, frame.GetMethod() is returned. For frames containing patched methods, the replacement method is returned or null if no method can be found
-
-
-
- Gets the original method from the stackframe and uses original if method is a dynamic replacement
- The
- The original method from that stackframe
-
-
- Gets Harmony version for all active Harmony instances
- [out] The current Harmony version
- A dictionary containing assembly versions keyed by Harmony IDs
-
-
-
- Under Mono, HarmonyException wraps IL compile errors with detailed information about the failure
-
-
-
- Default serialization constructor (not implemented)
- The info
- The context
-
-
-
- Get a list of IL instructions in pairs of offset+code
- A list of key/value pairs which represent an offset and the code at that offset
-
-
-
- Get a list of IL instructions without offsets
- A list of
-
-
-
- Get the error offset of the errornous IL instruction
- The offset
-
-
-
- Get the index of the errornous IL instruction
- The index into the list of instructions or -1 if not found
-
-
-
- A wrapper around a method to use it as a patch (for example a Prefix)
-
-
-
- The original method
-
-
-
- Class/type declaring this patch
-
-
-
- Patch method name
-
-
-
- Optional patch
-
-
-
- Array of argument types of the patch method
-
-
-
- of the patch
-
-
-
- Install this patch before patches with these Harmony IDs
-
-
-
- Install this patch after patches with these Harmony IDs
-
-
-
- Reverse patch type, see
-
-
-
- Create debug output for this patch
-
-
-
- Whether to use (true) or (false) mechanics
- for -attributed delegate
-
-
-
- Default constructor
-
-
-
- Creates a patch from a given method
- The original method
-
-
-
- Creates a patch from a given method
- The original method
- The patch
- A list of harmony IDs that should come after this patch
- A list of harmony IDs that should come before this patch
- Set to true to generate debug output
-
-
-
- Creates a patch from a given method
- The patch class/type
- The patch method name
- The optional argument types of the patch method (for overloaded methods)
-
-
-
- Gets the names of all internal patch info fields
- A list of field names
-
-
-
- Merges annotations
- The list of to merge
- The merged
-
-
-
- Returns a string that represents the annotation
- A string representation
-
-
-
- Annotation extensions
-
-
-
- Copies annotation information
- The source
- The destination
-
-
-
- Clones an annotation
- The to clone
- A copied
-
-
-
- Merges annotations
- The master
- The detail
- A new, merged
-
-
-
- Gets all annotations on a class/type
- The class/type
- A list of all
-
-
-
- Gets merged annotations on a class/type
- The class/type
- The merged
-
-
-
- Gets all annotations on a method
- The method/constructor
- A list of
-
-
-
- Gets merged annotations on a method
- The method/constructor
- The merged
-
-
-
-
- A mutable representation of an inline signature, similar to Mono.Cecil's CallSite.
- Used by the calli instruction, can be used by transpilers
-
-
-
-
- See
-
-
-
- See
-
-
-
- See
-
-
-
- The list of all parameter types or function pointer signatures received by the call site
-
-
-
- The return type or function pointer signature returned by the call site
-
-
-
- Returns a string representation of the inline signature
- A string representation of the inline signature
-
-
-
-
- A mutable representation of a parameter type with an attached type modifier,
- similar to Mono.Cecil's OptionalModifierType / RequiredModifierType and C#'s modopt / modreq
-
-
-
-
- Whether this is a modopt (optional modifier type) or a modreq (required modifier type)
-
-
-
- The modifier type attached to the parameter type
-
-
-
- The modified parameter type
-
-
-
- Returns a string representation of the modifier type
- A string representation of the modifier type
-
-
-
- Patch serialization
-
-
-
- Control the binding of a serialized object to a type
- Specifies the assembly name of the serialized object
- Specifies the type name of the serialized object
- The type of the object the formatter creates a new instance of
-
-
-
- Serializes a patch info
- The
- The serialized data
-
-
-
- Deserialize a patch info
- The serialized data
- A
-
-
-
- Compare function to sort patch priorities
- The patch
- Zero-based index
- The priority
- A standard sort integer (-1, 0, 1)
-
-
-
- Serializable patch information
-
-
-
- Prefixes as an array of
-
-
-
- Postfixes as an array of
-
-
-
- Transpilers as an array of
-
-
-
- Finalizers as an array of
-
-
-
- Returns if any of the patches wants debugging turned on
-
-
-
- Adds prefixes
- An owner (Harmony ID)
- The patch methods
-
-
-
- Adds a prefix
-
-
- Removes prefixes
- The owner of the prefixes, or * for all
-
-
-
- Adds postfixes
- An owner (Harmony ID)
- The patch methods
-
-
-
- Adds a postfix
-
-
- Removes postfixes
- The owner of the postfixes, or * for all
-
-
-
- Adds transpilers
- An owner (Harmony ID)
- The patch methods
-
-
-
- Adds a transpiler
-
-
- Removes transpilers
- The owner of the transpilers, or * for all
-
-
-
- Adds finalizers
- An owner (Harmony ID)
- The patch methods
-
-
-
- Adds a finalizer
-
-
- Removes finalizers
- The owner of the finalizers, or * for all
-
-
-
- Removes a patch using its method
- The method of the patch to remove
-
-
-
- Gets a concatenated list of patches
- The Harmony instance ID adding the new patches
- The patches to add
- The current patches
-
-
-
- Gets a list of patches with any from the given owner removed
- The owner of the methods, or * for all
- The current patches
-
-
-
- A serializable patch
-
-
-
- Zero-based index
-
-
-
- The owner (Harmony ID)
-
-
-
- The priority, see
-
-
-
- Keep this patch before the patches indicated in the list of Harmony IDs
-
-
-
- Keep this patch after the patches indicated in the list of Harmony IDs
-
-
-
- A flag that will log the replacement method via every time this patch is used to build the replacement, even in the future
-
-
-
- The method of the static patch method
-
-
-
- Creates a patch
- The method of the patch
- Zero-based index
- An owner (Harmony ID)
- The priority, see
- A list of Harmony IDs for patches that should run after this patch
- A list of Harmony IDs for patches that should run before this patch
- A flag that will log the replacement method via every time this patch is used to build the replacement, even in the future
-
-
-
- Creates a patch
- The method of the patch
- Zero-based index
- An owner (Harmony ID)
-
-
- Get the patch method or a DynamicMethod if original patch method is a patch factory
- The original method/constructor
- The method of the patch
-
-
-
- Determines whether patches are equal
- The other patch
- true if equal
-
-
-
- Determines how patches sort
- The other patch
- integer to define sort order (-1, 0, 1)
-
-
-
- Hash function
- A hash code
-
-
-
- A PatchClassProcessor used to turn on a class/type into patches
-
-
-
- Creates a patch class processor by pointing out a class. Similar to PatchAll() but without searching through all classes.
- The Harmony instance
- The class to process (need to have at least a [HarmonyPatch] attribute)
-
-
-
- Applies the patches
- A list of all created replacement methods or null if patch class is not annotated
-
-
-
- A group of patches
-
-
-
- A collection of prefix
-
-
-
- A collection of postfix
-
-
-
- A collection of transpiler
-
-
-
- A collection of finalizer
-
-
-
- Gets all owners (Harmony IDs) or all known patches
- The patch owners
-
-
-
- Creates a group of patches
- An array of prefixes as
- An array of postfixes as
- An array of transpileres as
- An array of finalizeres as
-
-
-
- A PatchProcessor handles patches on a method/constructor
-
-
-
- Creates an empty patch processor
- The Harmony instance
- The original method/constructor
-
-
-
- Adds a prefix
- The prefix as a
- A for chaining calls
-
-
-
- Adds a prefix
- The prefix method
- A for chaining calls
-
-
-
- Adds a postfix
- The postfix as a
- A for chaining calls
-
-
-
- Adds a postfix
- The postfix method
- A for chaining calls
-
-
-
- Adds a transpiler
- The transpiler as a
- A for chaining calls
-
-
-
- Adds a transpiler
- The transpiler method
- A for chaining calls
-
-
-
- Adds a finalizer
- The finalizer as a
- A for chaining calls
-
-
-
- Adds a finalizer
- The finalizer method
- A for chaining calls
-
-
-
- Gets all patched original methods in the appdomain
- An enumeration of patched method/constructor
-
-
-
- Applies all registered patches
- The generated replacement method
-
-
-
- Unpatches patches of a given type and/or Harmony ID
- The patch type
- Harmony ID or * for any
- A for chaining calls
-
-
-
- Unpatches a specific patch
- The method of the patch
- A for chaining calls
-
-
-
- Gets patch information on an original
- The original method/constructor
- The patch information as
-
-
-
- Sort patch methods by their priority rules
- The original method
- Patches to sort
- The sorted patch methods
-
-
-
- Gets Harmony version for all active Harmony instances
- [out] The current Harmony version
- A dictionary containing assembly version keyed by Harmony ID
-
-
-
- Creates a new empty generator to use when reading method bodies
- A new
-
-
-
- Creates a new generator matching the method/constructor to use when reading method bodies
- The original method/constructor to copy method information from
- A new
-
-
-
- Returns the methods unmodified list of code instructions
- The original method/constructor
- Optionally an existing generator that will be used to create all local variables and labels contained in the result (if not specified, an internal generator is used)
- A list containing all the original
-
-
-
- Returns the methods unmodified list of code instructions
- The original method/constructor
- A new generator that now contains all local variables and labels contained in the result
- A list containing all the original
-
-
-
- Returns the methods current list of code instructions after all existing transpilers have been applied
- The original method/constructor
- Apply only the first count of transpilers
- Optionally an existing generator that will be used to create all local variables and labels contained in the result (if not specified, an internal generator is used)
- A list of
-
-
-
- Returns the methods current list of code instructions after all existing transpilers have been applied
- The original method/constructor
- A new generator that now contains all local variables and labels contained in the result
- Apply only the first count of transpilers
- A list of
-
-
-
- A low level way to read the body of a method. Used for quick searching in methods
- The original method
- All instructions as opcode/operand pairs
-
-
-
- A low level way to read the body of a method. Used for quick searching in methods
- The original method
- An existing generator that will be used to create all local variables and labels contained in the result
- All instructions as opcode/operand pairs
-
-
-
- A patch priority
-
-
-
- Patch last
-
-
-
- Patch with very low priority
-
-
-
- Patch with low priority
-
-
-
- Patch with lower than normal priority
-
-
-
- Patch with normal priority
-
-
-
- Patch with higher than normal priority
-
-
-
- Patch with high priority
-
-
-
- Patch with very high priority
-
-
-
- Patch first
-
-
-
- A reverse patcher
-
-
-
- Creates a reverse patcher
- The Harmony instance
- The original method/constructor
- Your stand-in stub method as
-
-
-
- Applies the patch
- The type of patch, see
- The generated replacement method
-
-
-
- A collection of commonly used transpilers
-
-
-
- A transpiler that replaces all occurrences of a given method with another one using the same signature
- The enumeration of to act on
- Method or constructor to search for
- Method or constructor to replace with
- Modified enumeration of
-
-
-
- A transpiler that alters instructions that match a predicate by calling an action
- The enumeration of to act on
- A predicate selecting the instructions to change
- An action to apply to matching instructions
- Modified enumeration of
-
-
-
- A transpiler that logs a text at the beginning of the method
- The instructions to act on
- The log text
- Modified enumeration of
-
-
-
- A helper class for reflection related functions
-
-
-
- Shortcut for to simplify the use of reflections and make it work for any access level
-
-
-
- Shortcut for to simplify the use of reflections and make it work for any access level but only within the current type
-
-
-
- Enumerates all assemblies in the current app domain, excluding visual studio assemblies
- An enumeration of
-
-
- Gets a type by name. Prefers a full name with namespace but falls back to the first type matching the name otherwise
- The name
- A type or null if not found
-
-
-
- Gets all successfully loaded types from a given assembly
- The assembly
- An array of types
-
- This calls and returns , while catching any thrown .
- If such an exception is thrown, returns the successfully loaded types (,
- filtered for non-null values).
-
-
-
-
- Enumerates all successfully loaded types in the current app domain, excluding visual studio assemblies
- An enumeration of all in all assemblies, excluding visual studio assemblies
-
-
- Applies a function going up the type hierarchy and stops at the first non-null result
- Result type of func()
- The class/type to start with
- The evaluation function returning T
- The first non-null result, or null if no match
-
- The type hierarchy of a class or value type (including struct) does NOT include implemented interfaces,
- and the type hierarchy of an interface is only itself (regardless of whether that interface implements other interfaces).
- The top-most type in the type hierarchy of all non-interface types (including value types) is .
-
-
-
-
- Applies a function going into inner types and stops at the first non-null result
- Generic type parameter
- The class/type to start with
- The evaluation function returning T
- The first non-null result, or null if no match
-
-
-
- Gets the reflection information for a directly declared field
- The class/type where the field is defined
- The name of the field
- A field or null when type/name is null or when the field cannot be found
-
-
-
- Gets the reflection information for a directly declared field
- The member in the form TypeFullName:MemberName, where TypeFullName matches the form recognized by Type.GetType like Some.Namespace.Type.
- A field or null when the field cannot be found
-
-
-
- Gets the reflection information for a field by searching the type and all its super types
- The class/type where the field is defined
- The name of the field (case sensitive)
- A field or null when type/name is null or when the field cannot be found
-
-
-
- Gets the reflection information for a field by searching the type and all its super types
- The member in the form TypeFullName:MemberName, where TypeFullName matches the form recognized by Type.GetType like Some.Namespace.Type.
- A field or null when the field cannot be found
-
-
-
- Gets the reflection information for a field
- The class/type where the field is declared
- The zero-based index of the field inside the class definition
- A field or null when type is null or when the field cannot be found
-
-
-
- Gets the reflection information for a directly declared property
- The class/type where the property is declared
- The name of the property (case sensitive)
- A property or null when type/name is null or when the property cannot be found
-
-
-
- Gets the reflection information for a directly declared property
- The member in the form TypeFullName:MemberName, where TypeFullName matches the form recognized by Type.GetType like Some.Namespace.Type.
- A property or null when the property cannot be found
-
-
-
- Gets the reflection information for the getter method of a directly declared property
- The class/type where the property is declared
- The name of the property (case sensitive)
- A method or null when type/name is null or when the property cannot be found
-
-
-
- Gets the reflection information for the getter method of a directly declared property
- The member in the form TypeFullName:MemberName, where TypeFullName matches the form recognized by Type.GetType like Some.Namespace.Type.
- A method or null when the property cannot be found
-
-
-
- Gets the reflection information for the setter method of a directly declared property
- The class/type where the property is declared
- The name of the property (case sensitive)
- A method or null when type/name is null or when the property cannot be found
-
-
-
- Gets the reflection information for the Setter method of a directly declared property
- The member in the form TypeFullName:MemberName, where TypeFullName matches the form recognized by Type.GetType like Some.Namespace.Type.
- A method or null when the property cannot be found
-
-
-
- Gets the reflection information for a property by searching the type and all its super types
- The class/type
- The name
- A property or null when type/name is null or when the property cannot be found
-
-
-
- Gets the reflection information for a property by searching the type and all its super types
- The member in the form TypeFullName:MemberName, where TypeFullName matches the form recognized by Type.GetType like Some.Namespace.Type.
- A property or null when the property cannot be found
-
-
-
- Gets the reflection information for the getter method of a property by searching the type and all its super types
- The class/type
- The name
- A method or null when type/name is null or when the property cannot be found
-
-
-
- Gets the reflection information for the getter method of a property by searching the type and all its super types
- The member in the form TypeFullName:MemberName, where TypeFullName matches the form recognized by Type.GetType like Some.Namespace.Type.
- A method or null when type/name is null or when the property cannot be found
-
-
-
- Gets the reflection information for the setter method of a property by searching the type and all its super types
- The class/type
- The name
- A method or null when type/name is null or when the property cannot be found
-
-
-
- Gets the reflection information for the setter method of a property by searching the type and all its super types
- The member in the form TypeFullName:MemberName, where TypeFullName matches the form recognized by Type.GetType like Some.Namespace.Type.
- A method or null when type/name is null or when the property cannot be found
-
-
-
- Gets the reflection information for a directly declared method
- The class/type where the method is declared
- The name of the method (case sensitive)
- Optional parameters to target a specific overload of the method
- Optional list of types that define the generic version of the method
- A method or null when type/name is null or when the method cannot be found
-
-
-
- Gets the reflection information for a directly declared method
- The member in the form TypeFullName:MemberName, where TypeFullName matches the form recognized by Type.GetType like Some.Namespace.Type.
- Optional parameters to target a specific overload of the method
- Optional list of types that define the generic version of the method
- A method or null when the method cannot be found
-
-
-
- Gets the reflection information for a method by searching the type and all its super types
- The class/type where the method is declared
- The name of the method (case sensitive)
- Optional parameters to target a specific overload of the method
- Optional list of types that define the generic version of the method
- A method or null when type/name is null or when the method cannot be found
-
-
-
- Gets the reflection information for a method by searching the type and all its super types
- The member in the form TypeFullName:MemberName, where TypeFullName matches the form recognized by Type.GetType like Some.Namespace.Type.
- Optional parameters to target a specific overload of the method
- Optional list of types that define the generic version of the method
- A method or null when the method cannot be found
-
-
-
- Gets the method of an enumerator method
- Enumerator method that creates the enumerator
- The internal method of the enumerator or null if no valid enumerator is detected
-
-
- Gets the names of all method that are declared in a type
- The declaring class/type
- A list of method names
-
-
-
- Gets the names of all method that are declared in the type of the instance
- An instance of the type to search in
- A list of method names
-
-
-
- Gets the names of all fields that are declared in a type
- The declaring class/type
- A list of field names
-
-
-
- Gets the names of all fields that are declared in the type of the instance
- An instance of the type to search in
- A list of field names
-
-
-
- Gets the names of all properties that are declared in a type
- The declaring class/type
- A list of property names
-
-
-
- Gets the names of all properties that are declared in the type of the instance
- An instance of the type to search in
- A list of property names
-
-
-
- Gets the type of any class member of
- A member
- The class/type of this member
-
-
-
- Test if a class member is actually an concrete implementation
- A member
- True if the member is a declared
-
-
-
- Gets the real implementation of a class member
- A member
- The member itself if its declared. Otherwise the member that is actually implemented in some base type
-
-
-
- Gets the reflection information for a directly declared constructor
- The class/type where the constructor is declared
- Optional parameters to target a specific overload of the constructor
- Optional parameters to only consider static constructors
- A constructor info or null when type is null or when the constructor cannot be found
-
-
-
- Gets the reflection information for a constructor by searching the type and all its super types
- The class/type where the constructor is declared
- Optional parameters to target a specific overload of the method
- Optional parameters to only consider static constructors
- A constructor info or null when type is null or when the method cannot be found
-
-
-
- Gets reflection information for all declared constructors
- The class/type where the constructors are declared
- Optional parameters to only consider static constructors
- A list of constructor infos
-
-
-
- Gets reflection information for all declared methods
- The class/type where the methods are declared
- A list of methods
-
-
-
- Gets reflection information for all declared properties
- The class/type where the properties are declared
- A list of properties
-
-
-
- Gets reflection information for all declared fields
- The class/type where the fields are declared
- A list of fields
-
-
-
- Gets the return type of a method or constructor
- The method/constructor
- The return type
-
-
-
- Given a type, returns the first inner type matching a recursive search by name
- The class/type to start searching at
- The name of the inner type (case sensitive)
- The inner type or null if type/name is null or if a type with that name cannot be found
-
-
-
- Given a type, returns the first inner type matching a recursive search with a predicate
- The class/type to start searching at
- The predicate to search with
- The inner type or null if type/predicate is null or if a type with that name cannot be found
-
-
-
- Given a type, returns the first method matching a predicate
- The class/type to start searching at
- The predicate to search with
- The method or null if type/predicate is null or if a type with that name cannot be found
-
-
-
- Given a type, returns the first constructor matching a predicate
- The class/type to start searching at
- The predicate to search with
- The constructor info or null if type/predicate is null or if a type with that name cannot be found
-
-
-
- Given a type, returns the first property matching a predicate
- The class/type to start searching at
- The predicate to search with
- The property or null if type/predicate is null or if a type with that name cannot be found
-
-
-
- Returns an array containing the type of each object in the given array
- An array of objects
- An array of types or an empty array if parameters is null (if an object is null, the type for it will be object)
-
-
-
- Creates an array of input parameters for a given method and a given set of potential inputs
- The method/constructor you are planing to call
- The possible input parameters in any order
- An object array matching the method signature
-
-
-
- A readable/assignable reference delegate to an instance field of a class or static field (NOT an instance field of a struct)
-
- An arbitrary type if the field is static; otherwise the class that defines the field, or a parent class (including ),
- implemented interface, or derived class of this type
-
-
- The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type),
- a type that is assignable from that type; or if the field's type is an enum type,
- either that type or the underlying integral type of that enum type
-
- The runtime instance to access the field (ignored and can be omitted for static fields)
- A readable/assignable reference to the field
- Null instance passed to a non-static field ref delegate
-
- Instance of invalid type passed to a non-static field ref delegate
- (this can happen if is a parent class or interface of the field's declaring type)
-
-
-
- This delegate cannot be used for instance fields of structs, since a struct instance passed to the delegate would be passed by
- value and thus would be a copy that only exists within the delegate's invocation. This is fine for a readonly reference,
- but makes assignment futile. Use instead.
-
-
- Note that is not required to be the field's declaring type. It can be a parent class (including ),
- implemented interface, or a derived class of the field's declaring type ("instanceOfT is FieldDeclaringType" must be possible).
- Specifically, must be assignable from OR to the field's declaring type.
- Technically, this allows Nullable, although Nullable is only relevant for structs, and since only static fields of structs
- are allowed for this delegate, and the instance passed to such a delegate is ignored, this hardly matters.
-
-
- Similarly, is not required to be the field's field type, unless that type is a non-enum value type.
- It can be a parent class (including object) or implemented interface of the field's field type. It cannot be a derived class.
- This variance is not allowed for value types, since that would require boxing/unboxing, which is not allowed for ref values.
- Special case for enum types: can also be the underlying integral type of the enum type.
- Specifically, for reference types, must be assignable from
- the field's field type; for non-enum value types, must be exactly the field's field type; for enum types,
- must be either the field's field type or the underyling integral type of that field type.
-
-
- This delegate supports static fields, even those defined in structs, for legacy reasons.
- For such static fields, is effectively ignored.
- Consider using (and StaticFieldRefAccess methods that return it) instead for static fields.
-
-
-
-
-
- Creates a field reference delegate for an instance field of a class
- The class that defines the instance field, or derived class of this type
-
- The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type),
- a type that is assignable from that type; or if the field's type is an enum type,
- either that type or the underlying integral type of that enum type
-
- The name of the field
- A readable/assignable delegate
-
-
- For backwards compatibility, there is no class constraint on .
- Instead, the non-value-type check is done at runtime within the method.
-
-
-
-
-
- Creates an instance field reference for a specific instance of a class
- The class that defines the instance field, or derived class of this type
-
- The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type),
- a type that is assignable from that type; or if the field's type is an enum type,
- either that type or the underlying integral type of that enum type
-
- The instance
- The name of the field
- A readable/assignable reference to the field
-
-
- This method is meant for one-off access to a field's value for a single instance.
- If you need to access a field's value for potentially multiple instances, use instead.
- FieldRefAccess<T, F>(instance, fieldName) is functionally equivalent to FieldRefAccess<T, F>(fieldName)(instance).
-
-
- For backwards compatibility, there is no class constraint on .
- Instead, the non-value-type check is done at runtime within the method.
-
-
-
-
-
- Creates a field reference delegate for an instance field of a class or static field (NOT an instance field of a struct)
-
- The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type),
- a type that is assignable from that type; or if the field's type is an enum type,
- either that type or the underlying integral type of that enum type
-
-
- The type that defines the field, or derived class of this type; must not be a struct type unless the field is static
-
- The name of the field
-
- A readable/assignable delegate with T=object
- (for static fields, the instance delegate parameter is ignored)
-
-
-
- This method is meant for cases where the given type is only known at runtime and thus can't be used as a type parameter T
- in e.g. .
-
-
- This method supports static fields, even those defined in structs, for legacy reasons.
- Consider using (and other overloads) instead for static fields.
-
-
-
-
-
- Creates a field reference delegate for an instance field of a class or static field (NOT an instance field of a struct)
- type of the field
- The member in the form TypeFullName:MemberName, where TypeFullName matches the form recognized by Type.GetType like Some.Namespace.Type.
- A readable/assignable delegate with T=object
-
-
- Creates a field reference delegate for an instance field of a class or static field (NOT an instance field of a struct)
-
- An arbitrary type if the field is static; otherwise the class that defines the field, or a parent class (including ),
- implemented interface, or derived class of this type ("instanceOfT is FieldDeclaringType" must be possible)
-
-
- The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type),
- a type that is assignable from that type; or if the field's type is an enum type,
- either that type or the underlying integral type of that enum type
-
- The field
- A readable/assignable delegate
-
-
- This method is meant for cases where the field has already been obtained, avoiding the field searching cost in
- e.g. .
-
-
- This method supports static fields, even those defined in structs, for legacy reasons.
- For such static fields, is effectively ignored.
- Consider using (and other overloads) instead for static fields.
-
-
- For backwards compatibility, there is no class constraint on .
- Instead, the non-value-type check is done at runtime within the method.
-
-
-
-
-
- Creates a field reference for an instance field of a class
-
- The type that defines the field; or a parent class (including ), implemented interface, or derived class of this type
- ("instanceOfT is FieldDeclaringType" must be possible)
-
-
- The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type),
- a type that is assignable from that type; or if the field's type is an enum type,
- either that type or the underlying integral type of that enum type
-
- The instance
- The field
- A readable/assignable reference to the field
-
-
- This method is meant for one-off access to a field's value for a single instance and where the field has already been obtained.
- If you need to access a field's value for potentially multiple instances, use instead.
- FieldRefAccess<T, F>(instance, fieldInfo) is functionally equivalent to FieldRefAccess<T, F>(fieldInfo)(instance).
-
-
- For backwards compatibility, there is no class constraint on .
- Instead, the non-value-type check is done at runtime within the method.
-
-
-
-
-
- A readable/assignable reference delegate to an instance field of a struct
- The struct that defines the instance field
-
- The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type),
- a type that is assignable from that type; or if the field's type is an enum type,
- either that type or the underlying integral type of that enum type
-
- A reference to the runtime instance to access the field
- A readable/assignable reference to the field
-
-
-
- Creates a field reference delegate for an instance field of a struct
- The struct that defines the instance field
-
- The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type),
- a type that is assignable from that type; or if the field's type is an enum type,
- either that type or the underlying integral type of that enum type
-
- The name of the field
- A readable/assignable delegate
-
-
-
- Creates an instance field reference for a specific instance of a struct
- The struct that defines the instance field
-
- The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type),
- a type that is assignable from that type; or if the field's type is an enum type,
- either that type or the underlying integral type of that enum type
-
- The instance
- The name of the field
- A readable/assignable reference to the field
-
-
- This method is meant for one-off access to a field's value for a single instance.
- If you need to access a field's value for potentially multiple instances, use instead.
- StructFieldRefAccess<T, F>(ref instance, fieldName) is functionally equivalent to StructFieldRefAccess<T, F>(fieldName)(ref instance).
-
-
-
-
-
- Creates a field reference delegate for an instance field of a struct
- The struct that defines the instance field
-
- The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type),
- a type that is assignable from that type; or if the field's type is an enum type,
- either that type or the underlying integral type of that enum type
-
- The field
- A readable/assignable delegate
-
-
- This method is meant for cases where the field has already been obtained, avoiding the field searching cost in
- e.g. .
-
-
-
-
-
- Creates a field reference for an instance field of a struct
- The struct that defines the instance field
-
- The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type),
- a type that is assignable from that type; or if the field's type is an enum type,
- either that type or the underlying integral type of that enum type
-
- The instance
- The field
- A readable/assignable reference to the field
-
-
- This method is meant for one-off access to a field's value for a single instance and where the field has already been obtained.
- If you need to access a field's value for potentially multiple instances, use instead.
- StructFieldRefAccess<T, F>(ref instance, fieldInfo) is functionally equivalent to StructFieldRefAccess<T, F>(fieldInfo)(ref instance).
-
-
-
-
-
- A readable/assignable reference delegate to a static field
-
- The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type),
- a type that is assignable from that type; or if the field's type is an enum type,
- either that type or the underlying integral type of that enum type
-
- A readable/assignable reference to the field
-
-
-
- Creates a static field reference
- The type (can be class or struct) the field is defined in
-
- The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type),
- a type that is assignable from that type; or if the field's type is an enum type,
- either that type or the underlying integral type of that enum type
-
- The name of the field
- A readable/assignable reference to the field
-
-
-
- Creates a static field reference
-
- The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type),
- a type that is assignable from that type; or if the field's type is an enum type,
- either that type or the underlying integral type of that enum type
-
- The type (can be class or struct) the field is defined in
- The name of the field
- A readable/assignable reference to the field
-
-
-
- Creates a static field reference
- The type of the field
- The member in the form TypeFullName:MemberName, where TypeFullName matches the form recognized by Type.GetType like Some.Namespace.Type.
- A readable/assignable reference to the field
-
-
-
- Creates a static field reference
- An arbitrary type (by convention, the type the field is defined in)
-
- The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type),
- a type that is assignable from that type; or if the field's type is an enum type,
- either that type or the underlying integral type of that enum type
-
- The field
- A readable/assignable reference to the field
-
- The type parameter is only used in exception messaging and to distinguish between this method overload
- and the overload (which returns a rather than a reference).
-
-
-
-
- Creates a static field reference delegate
-
- The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type),
- a type that is assignable from that type; or if the field's type is an enum type,
- either that type or the underlying integral type of that enum type
-
- The field
- A readable/assignable delegate
-
-
-
- Creates a delegate to a given method
- The delegate Type
- The method to create a delegate from.
-
- Only applies for instance methods. If null (default), returned delegate is an open (a.k.a. unbound) instance delegate
- where an instance is supplied as the first argument to the delegate invocation; else, delegate is a closed (a.k.a. bound)
- instance delegate where the delegate invocation always applies to the given .
-
-
- Only applies for instance methods. If true (default) and is virtual, invocation of the delegate
- calls the instance method virtually (the instance type's most-derived/overriden implementation of the method is called);
- else, invocation of the delegate calls the exact specified (this is useful for calling base class methods)
- Note: if false and is an interface method, an ArgumentException is thrown.
-
- A delegate of given to given
-
-
- Delegate invocation is more performant and more convenient to use than
- at a one-time setup cost.
-
-
- Works for both type of static and instance methods, both open and closed (a.k.a. unbound and bound) instance methods,
- and both class and struct methods.
-
-
-
-
-
- Creates a delegate to a given method
- The delegate Type
- The method in the form TypeFullName:MemberName, where TypeFullName matches the form recognized by Type.GetType like Some.Namespace.Type.
-
- Only applies for instance methods. If null (default), returned delegate is an open (a.k.a. unbound) instance delegate
- where an instance is supplied as the first argument to the delegate invocation; else, delegate is a closed (a.k.a. bound)
- instance delegate where the delegate invocation always applies to the given .
-
-
- Only applies for instance methods. If true (default) and is virtual, invocation of the delegate
- calls the instance method virtually (the instance type's most-derived/overriden implementation of the method is called);
- else, invocation of the delegate calls the exact specified (this is useful for calling base class methods)
- Note: if false and is an interface method, an ArgumentException is thrown.
-
- A delegate of given to given
-
-
- Delegate invocation is more performant and more convenient to use than
- at a one-time setup cost.
-
-
- Works for both type of static and instance methods, both open and closed (a.k.a. unbound and bound) instance methods,
- and both class and struct methods.
-
-
-
-
-
- Creates a delegate for a given delegate definition, attributed with []
- The delegate Type, attributed with []
-
- Only applies for instance methods. If null (default), returned delegate is an open (a.k.a. unbound) instance delegate
- where an instance is supplied as the first argument to the delegate invocation; else, delegate is a closed (a.k.a. bound)
- instance delegate where the delegate invocation always applies to the given .
-
- A delegate of given to the method specified via []
- attributes on
-
- This calls with the method and virtualCall arguments
- determined from the [] attributes on ,
- and the given (for closed instance delegates).
-
-
-
-
- Returns who called the current method
- The calling method/constructor (excluding the caller)
-
-
-
- Rethrows an exception while preserving its stack trace (throw statement typically clobbers existing stack traces)
- The exception to rethrow
-
-
-
- True if the current runtime is based on Mono, false otherwise (.NET)
-
-
-
- True if the current runtime is .NET Framework, false otherwise (.NET Core or Mono, although latter isn't guaranteed)
-
-
-
- True if the current runtime is .NET Core, false otherwise (Mono or .NET Framework)
-
-
-
- Throws a missing member runtime exception
- The type that is involved
- A list of names
-
-
-
- Gets default value for a specific type
- The class/type
- The default value
-
-
-
- Creates an (possibly uninitialized) instance of a given type
- The class/type
- The new instance
-
-
-
- Creates an (possibly uninitialized) instance of a given type
- The class/type
- The new instance
-
-
-
-
- A cache for the or similar Add methods for different types.
-
-
-
- Makes a deep copy of any object
- The type of the instance that should be created; for legacy reasons, this must be a class or interface
- The original object
- A copy of the original object but of type T
-
-
-
- Makes a deep copy of any object
- The type of the instance that should be created
- The original object
- [out] The copy of the original object
- Optional value transformation function (taking a field name and src/dst instances)
- The optional path root to start with
-
-
-
- Makes a deep copy of any object
- The original object
- The type of the instance that should be created
- Optional value transformation function (taking a field name and src/dst instances)
- The optional path root to start with
- The copy of the original object
-
-
-
- Tests if a type is a struct
- The type
- True if the type is a struct
-
-
-
- Tests if a type is a class
- The type
- True if the type is a class
-
-
-
- Tests if a type is a value type
- The type
- True if the type is a value type
-
-
-
- Tests if a type is an integer type
- The type
- True if the type represents some integer
-
-
-
- Tests if a type is a floating point type
- The type
- True if the type represents some floating point
-
-
-
- Tests if a type is a numerical type
- The type
- True if the type represents some number
-
-
-
- Tests if a type is void
- The type
- True if the type is void
-
-
-
- Test whether an instance is of a nullable type
- Type of instance
- An instance to test
- True if instance is of nullable type, false if not
-
-
-
- Tests whether a type or member is static, as defined in C#
- The type or member
- True if the type or member is static
-
-
-
- Tests whether a type is static, as defined in C#
- The type
- True if the type is static
-
-
-
- Tests whether a property is static, as defined in C#
- The property
- True if the property is static
-
-
-
- Tests whether an event is static, as defined in C#
- The event
- True if the event is static
-
-
-
- Calculates a combined hash code for an enumeration of objects
- The objects
- The hash code
-
-
-
- A CodeInstruction match
-
-
- The name of the match
-
-
- The matched opcodes
-
-
- The matched operands
-
-
- The jumps from the match
-
-
- The jumps to the match
-
-
- The match predicate
-
-
- Creates a code match
- The optional opcode
- The optional operand
- The optional name
-
-
-
- Creates a code match that calls a method
- The lambda expression using the method
- The optional name
-
-
-
- Creates a code match that calls a method
- The lambda expression using the method
- The optional name
-
-
-
- Creates a code match
- The CodeInstruction
- An optional name
-
-
-
- Creates a code match
- The predicate
- An optional name
-
-
-
- Returns a string that represents the match
- A string representation
-
-
-
- A CodeInstruction matcher
-
-
- The current position
- The index or -1 if out of bounds
-
-
-
- Gets the number of code instructions in this matcher
- The count
-
-
-
- Checks whether the position of this CodeMatcher is within bounds
- True if this CodeMatcher is valid
-
-
-
- Checks whether the position of this CodeMatcher is outside its bounds
- True if this CodeMatcher is invalid
-
-
-
- Gets the remaining code instructions
- The remaining count
-
-
-
- Gets the opcode at the current position
- The opcode
-
-
-
- Gets the operand at the current position
- The operand
-
-
-
- Gets the labels at the current position
- The labels
-
-
-
- Gets the exception blocks at the current position
- The blocks
-
-
-
- Creates an empty code matcher
-
-
- Creates a code matcher from an enumeration of instructions
- The instructions (transpiler argument)
- An optional IL generator
-
-
-
- Makes a clone of this instruction matcher
- A copy of this matcher
-
-
-
- Gets instructions at the current position
- The instruction
-
-
-
- Gets instructions at the current position with offset
- The offset
- The instruction
-
-
-
- Gets all instructions
- A list of instructions
-
-
-
- Gets all instructions as an enumeration
- A list of instructions
-
-
-
- Gets some instructions counting from current position
- Number of instructions
- A list of instructions
-
-
-
- Gets all instructions within a range
- The start index
- The end index
- A list of instructions
-
-
-
- Gets all instructions within a range (relative to current position)
- The start offset
- The end offset
- A list of instructions
-
-
-
- Gets a list of all distinct labels
- The instructions (transpiler argument)
- A list of Labels
-
-
-
- Reports a failure
- The method involved
- The logger
- True if current position is invalid and error was logged
-
-
-
- Throw an InvalidOperationException if current state is invalid (position out of bounds / last match failed)
- Explanation of where/why the exception was thrown that will be added to the exception message
- The same code matcher
-
-
-
- Throw an InvalidOperationException if current state is invalid (position out of bounds / last match failed),
- or if the matches do not match at current position
- Explanation of where/why the exception was thrown that will be added to the exception message
- Some code matches
- The same code matcher
-
-
-
- Throw an InvalidOperationException if current state is invalid (position out of bounds / last match failed),
- or if the matches do not match at any point between current position and the end
- Explanation of where/why the exception was thrown that will be added to the exception message
- Some code matches
- The same code matcher
-
-
-
- Throw an InvalidOperationException if current state is invalid (position out of bounds / last match failed),
- or if the matches do not match at any point between current position and the start
- Explanation of where/why the exception was thrown that will be added to the exception message
- Some code matches
- The same code matcher
-
-
-
- Throw an InvalidOperationException if current state is invalid (position out of bounds / last match failed),
- or if the check function returns false
- Explanation of where/why the exception was thrown that will be added to the exception message
- Function that checks validity of current state. If it returns false, an exception is thrown
- The same code matcher
-
-
-
- Sets an instruction at current position
- The instruction to set
- The same code matcher
-
-
-
- Sets instruction at current position and advances
- The instruction
- The same code matcher
-
-
-
- Sets opcode and operand at current position
- The opcode
- The operand
- The same code matcher
-
-
-
- Sets opcode and operand at current position and advances
- The opcode
- The operand
- The same code matcher
-
-
-
- Sets opcode at current position and advances
- The opcode
- The same code matcher
-
-
-
- Sets operand at current position and advances
- The operand
- The same code matcher
-
-
-
- Creates a label at current position
- [out] The label
- The same code matcher
-
-
-
- Creates a label at a position
- The position
- [out] The new label
- The same code matcher
-
-
-
- Creates a label at a position
- The offset
- [out] The new label
- The same code matcher
-
-
-
- Adds an enumeration of labels to current position
- The labels
- The same code matcher
-
-
-
- Adds an enumeration of labels at a position
- The position
- The labels
- The same code matcher
-
-
-
- Sets jump to
- Branch instruction
- Destination for the jump
- [out] The created label
- The same code matcher
-
-
-
- Inserts some instructions
- The instructions
- The same code matcher
-
-
-
- Inserts an enumeration of instructions
- The instructions
- The same code matcher
-
-
-
- Inserts a branch
- The branch opcode
- Branch destination
- The same code matcher
-
-
-
- Inserts some instructions and advances the position
- The instructions
- The same code matcher
-
-
-
- Inserts an enumeration of instructions and advances the position
- The instructions
- The same code matcher
-
-
-
- Inserts a branch and advances the position
- The branch opcode
- Branch destination
- The same code matcher
-
-
-
- Removes current instruction
- The same code matcher
-
-
-
- Removes some instruction from current position by count
- Number of instructions
- The same code matcher
-
-
-
- Removes the instructions in a range
- The start
- The end
- The same code matcher
-
-
-
- Removes the instructions in a offset range
- The start offset
- The end offset
- The same code matcher
-
-
-
- Advances the current position
- The offset
- The same code matcher
-
-
-
- Moves the current position to the start
- The same code matcher
-
-
-
- Moves the current position to the end
- The same code matcher
-
-
-
- Searches forward with a predicate and advances position
- The predicate
- The same code matcher
-
-
-
- Searches backwards with a predicate and reverses position
- The predicate
- The same code matcher
-
-
-
- Matches forward and advances position to beginning of matching sequence
- Some code matches
- The same code matcher
-
-
-
- Matches forward and advances position to ending of matching sequence
- Some code matches
- The same code matcher
-
-
-
- Matches backwards and reverses position to beginning of matching sequence
- Some code matches
- The same code matcher
-
-
-
- Matches backwards and reverses position to ending of matching sequence
- Some code matches
- The same code matcher
-
-
-
- Repeats a match action until boundaries are met
- The match action
- An optional action that is executed when no match is found
- The same code matcher
-
-
-
- Gets a match by its name
- The match name
- An instruction
-
-
-
- General extensions for common cases
-
-
-
- Joins an enumeration with a value converter and a delimiter to a string
- The inner type of the enumeration
- The enumeration
- An optional value converter (from T to string)
- An optional delimiter
- The values joined into a string
-
-
-
- Converts an array of types (for example methods arguments) into a human readable form
- The array of types
- A human readable description including brackets
-
-
-
- A full description of a type
- The type
- A human readable description
-
-
-
- A a full description of a method or a constructor without assembly details but with generics
- The method/constructor
- A human readable description
-
-
-
- A helper converting parameter infos to types
- The array of parameter infos
- An array of types
-
-
-
- A helper to access a value via key from a dictionary
- The key type
- The value type
- The dictionary
- The key
- The value for the key or the default value (of T) if that key does not exist
-
-
-
- A helper to access a value via key from a dictionary with extra casting
- The value type
- The dictionary
- The key
- The value for the key or the default value (of T) if that key does not exist or cannot be cast to T
-
-
-
- Escapes Unicode and ASCII non printable characters
- The string to convert
- The string to convert
- A string literal surrounded by
-
-
-
- Extensions for
-
-
-
- Returns if an is initialized and valid
- The
-
-
-
- Shortcut for testing whether the operand is equal to a non-null value
- The
- The value
- True if the operand has the same type and is equal to the value
-
-
-
- Shortcut for testing whether the operand is equal to a non-null value
- The
- The value
- True if the operand is equal to the value
- This is an optimized version of for
-
-
-
- Shortcut for code.opcode == opcode && code.OperandIs(operand)
- The
- The
- The operand value
- True if the opcode is equal to the given opcode and the operand has the same type and is equal to the given operand
-
-
-
- Shortcut for code.opcode == opcode && code.OperandIs(operand)
- The
- The
- The operand value
- True if the opcode is equal to the given opcode and the operand is equal to the given operand
- This is an optimized version of for
-
-
-
- Tests for any form of Ldarg*
- The
- The (optional) index
- True if it matches one of the variations
-
-
-
- Tests for Ldarga/Ldarga_S
- The
- The (optional) index
- True if it matches one of the variations
-
-
-
- Tests for Starg/Starg_S
- The
- The (optional) index
- True if it matches one of the variations
-
-
-
- Tests for any form of Ldloc*
- The
- The optional local variable
- True if it matches one of the variations
-
-
-
- Tests for any form of Stloc*
- The
- The optional local variable
- True if it matches one of the variations
-
-
-
- Tests if the code instruction branches
- The
- The label if the instruction is a branch operation or if not
- True if the instruction branches
-
-
-
- Tests if the code instruction calls the method/constructor
- The
- The method
- True if the instruction calls the method or constructor
-
-
-
- Tests if the code instruction loads a constant
- The
- True if the instruction loads a constant
-
-
-
- Tests if the code instruction loads an integer constant
- The
- The integer constant
- True if the instruction loads the constant
-
-
-
- Tests if the code instruction loads a floating point constant
- The
- The floating point constant
- True if the instruction loads the constant
-
-
-
- Tests if the code instruction loads an enum constant
- The
- The enum
- True if the instruction loads the constant
-
-
-
- Tests if the code instruction loads a string constant
- The
- The string
- True if the instruction loads the constant
-
-
-
- Tests if the code instruction loads a field
- The
- The field
- Set to true if the address of the field is loaded
- True if the instruction loads the field
-
-
-
- Tests if the code instruction stores a field
- The
- The field
- True if the instruction stores this field
-
-
-
- Adds labels to the code instruction and return it
- The
- One or several to add
- The same code instruction
-
-
- Adds labels to the code instruction and return it
- The
- An enumeration of
- The same code instruction
-
-
- Extracts all labels from the code instruction and returns them
- The
- A list of
-
-
- Moves all labels from the code instruction to another one
- The to move the labels from
- The other to move the labels to
- The code instruction labels were moved from (now empty)
-
-
- Moves all labels from another code instruction to the current one
- The to move the labels to
- The other to move the labels from
- The code instruction that received the labels
-
-
- Adds ExceptionBlocks to the code instruction and return it
- The
- One or several to add
- The same code instruction
-
-
- Adds ExceptionBlocks to the code instruction and return it
- The
- An enumeration of
- The same code instruction
-
-
- Extracts all ExceptionBlocks from the code instruction and returns them
- The
- A list of
-
-
- Moves all ExceptionBlocks from the code instruction to another one
- The to move the ExceptionBlocks from
- The other to move the ExceptionBlocks to
- The code instruction blocks were moved from (now empty)
-
-
- Moves all ExceptionBlocks from another code instruction to the current one
- The to move the ExceptionBlocks to
- The other to move the ExceptionBlocks from
- The code instruction that received the blocks
-
-
- General extensions for collections
-
-
-
- A simple way to execute code for every element in a collection
- The inner type of the collection
- The collection
- The action to execute
-
-
-
- A simple way to execute code for elements in a collection matching a condition
- The inner type of the collection
- The collection
- The predicate
- The action to execute
-
-
-
- A helper to add an item to a collection
- The inner type of the collection
- The collection
- The item to add
- The collection containing the item
-
-
-
- A helper to add an item to an array
- The inner type of the collection
- The array
- The item to add
- The array containing the item
-
-
-
- A helper to add items to an array
- The inner type of the collection
- The array
- The items to add
- The array containing the items
-
-
-
- General extensions for collections
-
-
-
- Tests a class member if it has an IL method body (external methods for example don't have a body)
- The member to test
- Returns true if the member has an IL body or false if not
-
-
- A file log for debugging
-
-
-
- Set this to make Harmony write its log content to this stream
-
-
-
- Full pathname of the log file, defaults to a file called harmony.log.txt on your Desktop
-
-
-
- The indent character. The default is tab
-
-
-
- The current indent level
-
-
-
- Changes the indentation level
- The value to add to the indentation level
-
-
-
- Log a string in a buffered way. Use this method only if you are sure that FlushBuffer will be called
- or else logging information is incomplete in case of a crash
- The string to log
-
-
-
- Logs a list of string in a buffered way. Use this method only if you are sure that FlushBuffer will be called
- or else logging information is incomplete in case of a crash
- A list of strings to log (they will not be re-indented)
-
-
-
- Returns the log buffer and optionally empties it
- True to empty the buffer
- The buffer.
-
-
-
- Replaces the buffer with new lines
- The lines to store
-
-
-
- Flushes the log buffer to disk (use in combination with LogBuffered)
-
-
-
- Log a string directly to disk. Slower method that prevents missing information in case of a crash
- The string to log.
-
-
-
- Log a string directly to disk if Harmony.DEBUG is true. Slower method that prevents missing information in case of a crash
- The string to log.
-
-
-
- Resets and deletes the log
-
-
-
- Logs some bytes as hex values
- The pointer to some memory
- The length of bytes to log
-
-
-
- A helper class to retrieve reflection info for non-private methods
-
-
-
- Given a lambda expression that calls a method, returns the method info
- The lambda expression using the method
- The method in the lambda expression
-
-
-
- Given a lambda expression that calls a method, returns the method info
- The generic type
- The lambda expression using the method
- The method in the lambda expression
-
-
-
- Given a lambda expression that calls a method, returns the method info
- The generic type
- The generic result type
- The lambda expression using the method
- The method in the lambda expression
-
-
-
- Given a lambda expression that calls a method, returns the method info
- The lambda expression using the method
- The method in the lambda expression
-
-
-
- A reflection helper to read and write private elements
- The result type defined by GetValue()
-
-
-
- Creates a traverse instance from an existing instance
- The existing instance
-
-
-
- Gets/Sets the current value
- The value to read or write
-
-
-
- A reflection helper to read and write private elements
-
-
-
- Creates a new traverse instance from a class/type
- The class/type
- A instance
-
-
-
- Creates a new traverse instance from a class T
- The class
- A instance
-
-
-
- Creates a new traverse instance from an instance
- The object
- A instance
-
-
-
- Creates a new traverse instance from a named type
- The type name, for format see
- A instance
-
-
-
- Creates a new and empty traverse instance
-
-
-
- Creates a new traverse instance from a class/type
- The class/type
-
-
-
- Creates a new traverse instance from an instance
- The object
-
-
-
- Gets the current value
- The value
-
-
-
- Gets the current value
- The type of the value
- The value
-
-
-
- Invokes the current method with arguments and returns the result
- The method arguments
- The value returned by the method
-
-
-
- Invokes the current method with arguments and returns the result
- The type of the value
- The method arguments
- The value returned by the method
-
-
-
- Sets a value of the current field or property
- The value
- The same traverse instance
-
-
-
- Gets the type of the current field or property
- The type
-
-
-
- Moves the current traverse instance to a inner type
- The type name
- A traverse instance
-
-
-
- Moves the current traverse instance to a field
- The type name
- A traverse instance
-
-
-
- Moves the current traverse instance to a field
- The type of the field
- The type name
- A traverse instance
-
-
-
- Gets all fields of the current type
- A list of field names
-
-
-
- Moves the current traverse instance to a property
- The type name
- Optional property index
- A traverse instance
-
-
-
- Moves the current traverse instance to a field
- The type of the property
- The type name
- Optional property index
- A traverse instance
-
-
-
- Gets all properties of the current type
- A list of property names
-
-
-
- Moves the current traverse instance to a method
- The name of the method
- The arguments defining the argument types of the method overload
- A traverse instance
-
-
-
- Moves the current traverse instance to a method
- The name of the method
- The argument types of the method
- The arguments for the method
- A traverse instance
-
-
-
- Gets all methods of the current type
- A list of method names
-
-
-
- Checks if the current traverse instance is for a field
- True if its a field
-
-
-
- Checks if the current traverse instance is for a property
- True if its a property
-
-
-
- Checks if the current traverse instance is for a method
- True if its a method
-
-
-
- Checks if the current traverse instance is for a type
- True if its a type
-
-
-
- Iterates over all fields of the current type and executes a traverse action
- Original object
- The action receiving a instance for each field
-
-
-
- Iterates over all fields of the current type and executes a traverse action
- Original object
- Target object
- The action receiving a pair of instances for each field pair
-
-
-
- Iterates over all fields of the current type and executes a traverse action
- Original object
- Target object
- The action receiving a dot path representing the field pair and the instances
-
-
-
- Iterates over all properties of the current type and executes a traverse action
- Original object
- The action receiving a instance for each property
-
-
-
- Iterates over all properties of the current type and executes a traverse action
- Original object
- Target object
- The action receiving a pair of instances for each property pair
-
-
-
- Iterates over all properties of the current type and executes a traverse action
- Original object
- Target object
- The action receiving a dot path representing the property pair and the instances
-
-
-
- A default field action that copies fields to fields
-
-
-
- Returns a string that represents the current traverse
- A string representation
-
-
-
-
diff --git a/CRIAOrgy/1.4/Assemblies/0MultiplayerAPI.dll b/CRIAOrgy/1.4/Assemblies/0MultiplayerAPI.dll
deleted file mode 100644
index 38b8a0e..0000000
Binary files a/CRIAOrgy/1.4/Assemblies/0MultiplayerAPI.dll and /dev/null differ
diff --git a/CRIAOrgy/1.4/Assemblies/Milk.dll b/CRIAOrgy/1.4/Assemblies/Milk.dll
deleted file mode 100644
index 0e58733..0000000
Binary files a/CRIAOrgy/1.4/Assemblies/Milk.dll and /dev/null differ
diff --git a/CRIAOrgy/1.4/Assemblies/RJW.dll b/CRIAOrgy/1.4/Assemblies/RJW.dll
deleted file mode 100644
index cd73522..0000000
Binary files a/CRIAOrgy/1.4/Assemblies/RJW.dll and /dev/null differ
diff --git a/CRIAOrgy/1.4/Assemblies/UnityEngine.AIModule.dll b/CRIAOrgy/1.4/Assemblies/UnityEngine.AIModule.dll
deleted file mode 100644
index 78e7704..0000000
Binary files a/CRIAOrgy/1.4/Assemblies/UnityEngine.AIModule.dll and /dev/null differ
diff --git a/CRIAOrgy/1.4/Assemblies/UnityEngine.ARModule.dll b/CRIAOrgy/1.4/Assemblies/UnityEngine.ARModule.dll
deleted file mode 100644
index faa2f92..0000000
Binary files a/CRIAOrgy/1.4/Assemblies/UnityEngine.ARModule.dll and /dev/null differ
diff --git a/CRIAOrgy/1.4/Assemblies/UnityEngine.AccessibilityModule.dll b/CRIAOrgy/1.4/Assemblies/UnityEngine.AccessibilityModule.dll
deleted file mode 100644
index 5229d35..0000000
Binary files a/CRIAOrgy/1.4/Assemblies/UnityEngine.AccessibilityModule.dll and /dev/null differ
diff --git a/CRIAOrgy/1.4/Assemblies/UnityEngine.AndroidJNIModule.dll b/CRIAOrgy/1.4/Assemblies/UnityEngine.AndroidJNIModule.dll
deleted file mode 100644
index 52d1ec4..0000000
Binary files a/CRIAOrgy/1.4/Assemblies/UnityEngine.AndroidJNIModule.dll and /dev/null differ
diff --git a/CRIAOrgy/1.4/Assemblies/UnityEngine.ClothModule.dll b/CRIAOrgy/1.4/Assemblies/UnityEngine.ClothModule.dll
deleted file mode 100644
index e9a819d..0000000
Binary files a/CRIAOrgy/1.4/Assemblies/UnityEngine.ClothModule.dll and /dev/null differ
diff --git a/CRIAOrgy/1.4/Assemblies/UnityEngine.ClusterInputModule.dll b/CRIAOrgy/1.4/Assemblies/UnityEngine.ClusterInputModule.dll
deleted file mode 100644
index 6324fbb..0000000
Binary files a/CRIAOrgy/1.4/Assemblies/UnityEngine.ClusterInputModule.dll and /dev/null differ
diff --git a/CRIAOrgy/1.4/Assemblies/UnityEngine.ClusterRendererModule.dll b/CRIAOrgy/1.4/Assemblies/UnityEngine.ClusterRendererModule.dll
deleted file mode 100644
index 26ef8fa..0000000
Binary files a/CRIAOrgy/1.4/Assemblies/UnityEngine.ClusterRendererModule.dll and /dev/null differ
diff --git a/CRIAOrgy/1.4/Assemblies/UnityEngine.CoreModule.dll b/CRIAOrgy/1.4/Assemblies/UnityEngine.CoreModule.dll
deleted file mode 100644
index 83b2b0a..0000000
Binary files a/CRIAOrgy/1.4/Assemblies/UnityEngine.CoreModule.dll and /dev/null differ
diff --git a/CRIAOrgy/1.4/Assemblies/UnityEngine.CrashReportingModule.dll b/CRIAOrgy/1.4/Assemblies/UnityEngine.CrashReportingModule.dll
deleted file mode 100644
index 7d391bd..0000000
Binary files a/CRIAOrgy/1.4/Assemblies/UnityEngine.CrashReportingModule.dll and /dev/null differ
diff --git a/CRIAOrgy/1.4/Assemblies/UnityEngine.DSPGraphModule.dll b/CRIAOrgy/1.4/Assemblies/UnityEngine.DSPGraphModule.dll
deleted file mode 100644
index eba8cc1..0000000
Binary files a/CRIAOrgy/1.4/Assemblies/UnityEngine.DSPGraphModule.dll and /dev/null differ
diff --git a/CRIAOrgy/1.4/Assemblies/UnityEngine.DirectorModule.dll b/CRIAOrgy/1.4/Assemblies/UnityEngine.DirectorModule.dll
deleted file mode 100644
index 5976cc5..0000000
Binary files a/CRIAOrgy/1.4/Assemblies/UnityEngine.DirectorModule.dll and /dev/null differ
diff --git a/CRIAOrgy/1.4/Assemblies/UnityEngine.GameCenterModule.dll b/CRIAOrgy/1.4/Assemblies/UnityEngine.GameCenterModule.dll
deleted file mode 100644
index 4797dbe..0000000
Binary files a/CRIAOrgy/1.4/Assemblies/UnityEngine.GameCenterModule.dll and /dev/null differ
diff --git a/CRIAOrgy/1.4/Assemblies/UnityEngine.GridModule.dll b/CRIAOrgy/1.4/Assemblies/UnityEngine.GridModule.dll
deleted file mode 100644
index 61c1ec4..0000000
Binary files a/CRIAOrgy/1.4/Assemblies/UnityEngine.GridModule.dll and /dev/null differ
diff --git a/CRIAOrgy/1.4/Assemblies/UnityEngine.InputModule.dll b/CRIAOrgy/1.4/Assemblies/UnityEngine.InputModule.dll
deleted file mode 100644
index 3be4fb9..0000000
Binary files a/CRIAOrgy/1.4/Assemblies/UnityEngine.InputModule.dll and /dev/null differ
diff --git a/CRIAOrgy/1.4/Assemblies/UnityEngine.JSONSerializeModule.dll b/CRIAOrgy/1.4/Assemblies/UnityEngine.JSONSerializeModule.dll
deleted file mode 100644
index cd1981f..0000000
Binary files a/CRIAOrgy/1.4/Assemblies/UnityEngine.JSONSerializeModule.dll and /dev/null differ
diff --git a/CRIAOrgy/1.4/Assemblies/UnityEngine.LocalizationModule.dll b/CRIAOrgy/1.4/Assemblies/UnityEngine.LocalizationModule.dll
deleted file mode 100644
index 292f854..0000000
Binary files a/CRIAOrgy/1.4/Assemblies/UnityEngine.LocalizationModule.dll and /dev/null differ
diff --git a/CRIAOrgy/1.4/Assemblies/UnityEngine.ParticleSystemModule.dll b/CRIAOrgy/1.4/Assemblies/UnityEngine.ParticleSystemModule.dll
deleted file mode 100644
index c570bbe..0000000
Binary files a/CRIAOrgy/1.4/Assemblies/UnityEngine.ParticleSystemModule.dll and /dev/null differ
diff --git a/CRIAOrgy/1.4/Assemblies/UnityEngine.SpriteMaskModule.dll b/CRIAOrgy/1.4/Assemblies/UnityEngine.SpriteMaskModule.dll
deleted file mode 100644
index 3de5b54..0000000
Binary files a/CRIAOrgy/1.4/Assemblies/UnityEngine.SpriteMaskModule.dll and /dev/null differ
diff --git a/CRIAOrgy/1.4/Assemblies/UnityEngine.SpriteShapeModule.dll b/CRIAOrgy/1.4/Assemblies/UnityEngine.SpriteShapeModule.dll
deleted file mode 100644
index b59a5b8..0000000
Binary files a/CRIAOrgy/1.4/Assemblies/UnityEngine.SpriteShapeModule.dll and /dev/null differ
diff --git a/CRIAOrgy/1.4/Assemblies/UnityEngine.StreamingModule.dll b/CRIAOrgy/1.4/Assemblies/UnityEngine.StreamingModule.dll
deleted file mode 100644
index 69068e5..0000000
Binary files a/CRIAOrgy/1.4/Assemblies/UnityEngine.StreamingModule.dll and /dev/null differ
diff --git a/CRIAOrgy/1.4/Assemblies/UnityEngine.SubsystemsModule.dll b/CRIAOrgy/1.4/Assemblies/UnityEngine.SubsystemsModule.dll
deleted file mode 100644
index b5b7429..0000000
Binary files a/CRIAOrgy/1.4/Assemblies/UnityEngine.SubsystemsModule.dll and /dev/null differ
diff --git a/CRIAOrgy/1.4/Assemblies/UnityEngine.TerrainModule.dll b/CRIAOrgy/1.4/Assemblies/UnityEngine.TerrainModule.dll
deleted file mode 100644
index 18b193e..0000000
Binary files a/CRIAOrgy/1.4/Assemblies/UnityEngine.TerrainModule.dll and /dev/null differ
diff --git a/CRIAOrgy/1.4/Assemblies/UnityEngine.TerrainPhysicsModule.dll b/CRIAOrgy/1.4/Assemblies/UnityEngine.TerrainPhysicsModule.dll
deleted file mode 100644
index 48119b4..0000000
Binary files a/CRIAOrgy/1.4/Assemblies/UnityEngine.TerrainPhysicsModule.dll and /dev/null differ
diff --git a/CRIAOrgy/1.4/Assemblies/UnityEngine.TilemapModule.dll b/CRIAOrgy/1.4/Assemblies/UnityEngine.TilemapModule.dll
deleted file mode 100644
index 6c43665..0000000
Binary files a/CRIAOrgy/1.4/Assemblies/UnityEngine.TilemapModule.dll and /dev/null differ
diff --git a/CRIAOrgy/1.4/Assemblies/UnityEngine.UIElementsModule.dll b/CRIAOrgy/1.4/Assemblies/UnityEngine.UIElementsModule.dll
deleted file mode 100644
index 8dc2716..0000000
Binary files a/CRIAOrgy/1.4/Assemblies/UnityEngine.UIElementsModule.dll and /dev/null differ
diff --git a/CRIAOrgy/1.4/Assemblies/UnityEngine.UNETModule.dll b/CRIAOrgy/1.4/Assemblies/UnityEngine.UNETModule.dll
deleted file mode 100644
index 0234fad..0000000
Binary files a/CRIAOrgy/1.4/Assemblies/UnityEngine.UNETModule.dll and /dev/null differ
diff --git a/CRIAOrgy/1.4/Assemblies/UnityEngine.UnityAnalyticsModule.dll b/CRIAOrgy/1.4/Assemblies/UnityEngine.UnityAnalyticsModule.dll
deleted file mode 100644
index e3c39e8..0000000
Binary files a/CRIAOrgy/1.4/Assemblies/UnityEngine.UnityAnalyticsModule.dll and /dev/null differ
diff --git a/CRIAOrgy/1.4/Assemblies/UnityEngine.UnityConnectModule.dll b/CRIAOrgy/1.4/Assemblies/UnityEngine.UnityConnectModule.dll
deleted file mode 100644
index 7ec2470..0000000
Binary files a/CRIAOrgy/1.4/Assemblies/UnityEngine.UnityConnectModule.dll and /dev/null differ
diff --git a/CRIAOrgy/1.4/Assemblies/UnityEngine.UnityWebRequestAssetBundleModule.dll b/CRIAOrgy/1.4/Assemblies/UnityEngine.UnityWebRequestAssetBundleModule.dll
deleted file mode 100644
index 0024d85..0000000
Binary files a/CRIAOrgy/1.4/Assemblies/UnityEngine.UnityWebRequestAssetBundleModule.dll and /dev/null differ
diff --git a/CRIAOrgy/1.4/Assemblies/UnityEngine.UnityWebRequestAudioModule.dll b/CRIAOrgy/1.4/Assemblies/UnityEngine.UnityWebRequestAudioModule.dll
deleted file mode 100644
index d4f9220..0000000
Binary files a/CRIAOrgy/1.4/Assemblies/UnityEngine.UnityWebRequestAudioModule.dll and /dev/null differ
diff --git a/CRIAOrgy/1.4/Assemblies/UnityEngine.UnityWebRequestModule.dll b/CRIAOrgy/1.4/Assemblies/UnityEngine.UnityWebRequestModule.dll
deleted file mode 100644
index b99842a..0000000
Binary files a/CRIAOrgy/1.4/Assemblies/UnityEngine.UnityWebRequestModule.dll and /dev/null differ
diff --git a/CRIAOrgy/1.4/Assemblies/UnityEngine.UnityWebRequestTextureModule.dll b/CRIAOrgy/1.4/Assemblies/UnityEngine.UnityWebRequestTextureModule.dll
deleted file mode 100644
index d8b643a..0000000
Binary files a/CRIAOrgy/1.4/Assemblies/UnityEngine.UnityWebRequestTextureModule.dll and /dev/null differ
diff --git a/CRIAOrgy/1.4/Assemblies/UnityEngine.UnityWebRequestWWWModule.dll b/CRIAOrgy/1.4/Assemblies/UnityEngine.UnityWebRequestWWWModule.dll
deleted file mode 100644
index b8b8314..0000000
Binary files a/CRIAOrgy/1.4/Assemblies/UnityEngine.UnityWebRequestWWWModule.dll and /dev/null differ
diff --git a/CRIAOrgy/1.4/Assemblies/UnityEngine.VFXModule.dll b/CRIAOrgy/1.4/Assemblies/UnityEngine.VFXModule.dll
deleted file mode 100644
index 0895120..0000000
Binary files a/CRIAOrgy/1.4/Assemblies/UnityEngine.VFXModule.dll and /dev/null differ
diff --git a/CRIAOrgy/1.4/Assemblies/UnityEngine.VRModule.dll b/CRIAOrgy/1.4/Assemblies/UnityEngine.VRModule.dll
deleted file mode 100644
index ea9d6fe..0000000
Binary files a/CRIAOrgy/1.4/Assemblies/UnityEngine.VRModule.dll and /dev/null differ
diff --git a/CRIAOrgy/1.4/Assemblies/UnityEngine.VehiclesModule.dll b/CRIAOrgy/1.4/Assemblies/UnityEngine.VehiclesModule.dll
deleted file mode 100644
index f7c1085..0000000
Binary files a/CRIAOrgy/1.4/Assemblies/UnityEngine.VehiclesModule.dll and /dev/null differ
diff --git a/CRIAOrgy/1.4/Assemblies/UnityEngine.VideoModule.dll b/CRIAOrgy/1.4/Assemblies/UnityEngine.VideoModule.dll
deleted file mode 100644
index 92c9898..0000000
Binary files a/CRIAOrgy/1.4/Assemblies/UnityEngine.VideoModule.dll and /dev/null differ
diff --git a/CRIAOrgy/1.4/Assemblies/UnityEngine.WindModule.dll b/CRIAOrgy/1.4/Assemblies/UnityEngine.WindModule.dll
deleted file mode 100644
index 8ac2232..0000000
Binary files a/CRIAOrgy/1.4/Assemblies/UnityEngine.WindModule.dll and /dev/null differ
diff --git a/CRIAOrgy/1.4/Assemblies/UnityEngine.XRModule.dll b/CRIAOrgy/1.4/Assemblies/UnityEngine.XRModule.dll
deleted file mode 100644
index a58bf6a..0000000
Binary files a/CRIAOrgy/1.4/Assemblies/UnityEngine.XRModule.dll and /dev/null differ
diff --git a/CRIAOrgy/1.4/Assemblies/UnityEngine.dll b/CRIAOrgy/1.4/Assemblies/UnityEngine.dll
deleted file mode 100644
index d45693c..0000000
Binary files a/CRIAOrgy/1.4/Assemblies/UnityEngine.dll and /dev/null differ
diff --git a/CRIAOrgy/CRIAOrgy.csproj b/CRIAOrgy/CRIAOrgy.csproj
index e08ba10..542136f 100644
--- a/CRIAOrgy/CRIAOrgy.csproj
+++ b/CRIAOrgy/CRIAOrgy.csproj
@@ -35,6 +35,7 @@
..\..\..\..\..\workshop\content\294100\839005762\1.4\Assemblies\0Harmony.dll
+ False
..\..\..\RimWorldWin64_Data\Managed\Assembly-CSharp.dll
@@ -42,9 +43,11 @@
..\..\rjw-mc\1.3\Assemblies\Milk.dll
+ False
..\..\rjw\1.4\Assemblies\RJW.dll
+ False
@@ -56,9 +59,11 @@
..\..\..\RimWorldWin64_Data\Managed\UnityEngine.dll
+ False
..\..\..\RimWorldWin64_Data\Managed\UnityEngine.CoreModule.dll
+ False