<?xml version="1.0"?>
<doc>
    <assembly>
        <name>AIAPI</name>
    </assembly>
    <members>
        <member name="T:KKAPI.Chara.CharacterApi">
            <summary>
            Provides an easy way to add custom logic to all characters in the game and in studio. 
            It takes care of all the error-prone plumbing and lets you easily save and load data to the character cards.
            </summary>
        </member>
        <member name="M:KKAPI.Chara.CharacterApi.Hooks.ChaFile_CopyChaFileHook(AIChara.ChaFile,AIChara.ChaFile)">
            <summary>
            Copy extended data when moving between class roster and main game data, and in free h
            (the character data gets transferred to predefined slots instead of creating new characters)
            </summary>
        </member>
        <member name="T:KKAPI.Chara.CharacterApi.ControllerRegistration">
            <summary>
            Information about a single kind of a <see cref="T:KKAPI.Chara.CharaCustomFunctionController"/>. New kind is created every time
            you call <see cref="M:KKAPI.Chara.CharacterApi.RegisterExtraBehaviour``1(System.String)"/>.
            </summary>
        </member>
        <member name="P:KKAPI.Chara.CharacterApi.ControllerRegistration.Instances">
            <summary>
            All currently existing instances of this kind of controller.
            </summary>
        </member>
        <member name="P:KKAPI.Chara.CharacterApi.ControllerRegistration.ControllerType">
            <summary>
            Type of the custom controller kind.
            </summary>
        </member>
        <member name="P:KKAPI.Chara.CharacterApi.ControllerRegistration.ExtendedDataId">
            <summary>
            ID of the extended data used by this controller kind.
            </summary>
        </member>
        <member name="P:KKAPI.Chara.CharacterApi.ControllerRegistration.ExtendedDataCopier">
            <summary>
            Method used to copy extended data used by this controller in case that's necessary.
            </summary>
        </member>
        <member name="P:KKAPI.Chara.CharacterApi.ControllerRegistration.MaintainState">
            <summary>
            If true, the current state of all controllers of this kind should be preserved inside <see cref="M:KKAPI.Chara.CharaCustomFunctionController.OnReload(KKAPI.GameMode,System.Boolean)"/>.
            New extended data will not be read, instead currently data will be reused, or the reload will not happen at all.
            </summary>
        </member>
        <member name="P:KKAPI.Chara.CharacterApi.ControllerRegistration.MaintainCoordinateState">
            <summary>
            If true, the current state of all controllers of this kind should be preserved inside <see cref="M:KKAPI.Chara.CharaCustomFunctionController.OnCoordinateBeingLoaded(AIChara.ChaFileCoordinate,System.Boolean)"/>.
            New extended data will not be read, instead currently data will be reused, or the load will not happen at all.
            </summary>
        </member>
        <member name="P:KKAPI.Chara.CharacterApi.RegisteredHandlers">
            <summary>
            All currently registered kinds of <see cref="T:KKAPI.Chara.CharaCustomFunctionController"/> controllers.
            </summary>
        </member>
        <member name="T:KKAPI.Chara.CharacterApi.CopyExtendedDataFunc">
            <summary>
            Override to supply custom extended data copying logic.
            By default copies all data under <code>ExtendedDataId</code> by reference.
            </summary>
            <param name="dst">Copy current character's ext data to this character</param>
            <param name="src">Current character to copy the data from</param>
        </member>
        <member name="M:KKAPI.Chara.CharacterApi.FileControlToChaControl(AIChara.ChaFileControl)">
            <summary>
            Get ChaControl that is using the specified ChaFileControl.
            </summary>
        </member>
        <member name="M:KKAPI.Chara.CharacterApi.GetBehaviours(AIChara.ChaControl)">
            <summary>
            Get all extra behaviours for specified character. If null, returns extra behaviours for all characters.
            </summary>
        </member>
        <member name="M:KKAPI.Chara.CharacterApi.GetRegisteredBehaviour(System.String)">
            <summary>
            Get the first controller that was registered with the specified extendedDataId.
            </summary>
        </member>
        <member name="M:KKAPI.Chara.CharacterApi.GetRegisteredBehaviour(System.Type)">
            <summary>
            Get the first controller of the specified type that was registered. The type has to be an exact match.
            </summary>
        </member>
        <member name="M:KKAPI.Chara.CharacterApi.GetRegisteredBehaviour(System.Type,System.String)">
            <summary>
            Get the first controller of the specified type that was registered with the specified extendedDataId. The type has to be an exact match.
            </summary>
        </member>
        <member name="M:KKAPI.Chara.CharacterApi.RegisterExtraBehaviour``1(System.String)">
            <summary>
            Register new functionality that will be automatically added to all characters (where applicable).
            Offers easy API for saving and loading extended data, and for running logic to apply it to the characters.
            All necessary hooking and event subscribing is done for you. All you have to do is create a type
            that inherits from <code>CharaExtraBehaviour</code> (don't make instances, the API will make them for you).
            </summary>
            <typeparam name="T">Type with your custom logic to add to a character</typeparam>
            <param name="extendedDataId">Extended data ID used by this behaviour. Set to null if not used. Needed to copy the data in some situations.</param>
        </member>
        <member name="M:KKAPI.Chara.CharacterApi.RegisterExtraBehaviour``1(System.String,KKAPI.Chara.CharacterApi.CopyExtendedDataFunc)">
            <summary>
            Register new functionality that will be automatically added to all characters (where applicable).
            Offers easy API for saving and loading extended data, and for running logic to apply it to the characters.
            All necessary hooking and event subscribing is done for you. All you have to do is create a type
            that inherits from <code>CharaExtraBehaviour</code> (don't make instances, the API will make them for you).
            </summary>
            <typeparam name="T">Type with your custom logic to add to a character</typeparam>
            <param name="extendedDataId">Extended data ID used by this behaviour. Set to null if not used.</param>
            <param name="customDataCopier">Override default extended data copy logic</param>
        </member>
        <member name="E:KKAPI.Chara.CharacterApi.CharacterReloaded">
            <summary>
            Fired after all CharaCustomFunctionController have updated.
            </summary>
        </member>
        <member name="E:KKAPI.Chara.CharacterApi.CoordinateLoaded">
            <summary>
            Fired after a coordinate card was loaded and all controllers were updated.
            Not filed if the coordinate file was not loaded into a character (so not during list updates). 
            </summary>
        </member>
        <member name="E:KKAPI.Chara.CharacterApi.CoordinateSaving">
            <summary>
            Fired just before a coordinate card is saved, but after all controllers wrote their data.
            </summary>
        </member>
        <member name="T:KKAPI.Chara.CharacterExtensions">
            <summary>
            Extensions for use with ChaControl, ChaFile and similar
            </summary>
        </member>
        <member name="M:KKAPI.Chara.CharacterExtensions.GetChaControl(AIChara.ChaFile)">
            <summary>
            Get ChaControl that is using this ChaFile if any exist.
            </summary>
        </member>
        <member name="T:KKAPI.Chara.CharaCustomFunctionController">
            <summary>
            Base type for custom character extensions.
            It provides many useful methods that abstract away the nasty hooks needed to figure out when
            a character is changed or how to save and load your custom data to the character card.
            
            This controller is a MonoBehaviour that is added to root gameObjects of ALL characters spawned into the game. 
            It's recommended to not use constructors, Awake or Start in controllers. Use <see cref="M:KKAPI.Chara.CharaCustomFunctionController.OnReload(KKAPI.GameMode,System.Boolean)"/> instead.
            </summary>
        </member>
        <member name="P:KKAPI.Chara.CharaCustomFunctionController.ChaControl">
            <summary>
            ChaControl of the character this controller is attached to. It's on the same gameObject as this controller.
            </summary>
        </member>
        <member name="P:KKAPI.Chara.CharaCustomFunctionController.ChaFileControl">
            <summary>
            ChaFile of the character this controller is attached to.
            </summary>
        </member>
        <member name="P:KKAPI.Chara.CharaCustomFunctionController.ExtendedDataId">
            <summary>
            ID used for extended data by this controller. It's set when registering the controller
            with <see cref="M:KKAPI.Chara.CharacterApi.RegisterExtraBehaviour``1(System.String)"/>
            </summary>
        </member>
        <member name="P:KKAPI.Chara.CharaCustomFunctionController.ControllerRegistration">
            <summary>
            Definition of this kind of function controllers.
            </summary>
        </member>
        <member name="P:KKAPI.Chara.CharaCustomFunctionController.Started">
            <summary>
            True if this controller has been initialized
            </summary>
        </member>
        <member name="M:KKAPI.Chara.CharaCustomFunctionController.GetExtendedData">
            <summary>
            Get extended data based on supplied ExtendedDataId. When in chara maker loads data from character that's being loaded. 
            </summary>
        </member>
        <member name="M:KKAPI.Chara.CharaCustomFunctionController.GetExtendedData(System.Boolean)">
            <summary>
            Get extended data of the current character by using the ID you specified when registering this controller.
            </summary>
            <param name="getFromLoadedChara">If true, when in chara maker load data from character that's being loaded. 
            When outside maker or false, always grab current character's data.</param>
        </member>
        <member name="M:KKAPI.Chara.CharaCustomFunctionController.SetExtendedData(ExtensibleSaveFormat.PluginData)">
            <summary>
            Save your custom data to the character card under the ID you specified when registering this controller.
            </summary>
            <param name="data">Your custom data to be written to the character card. Can be null to remove the data.</param>
        </member>
        <member name="M:KKAPI.Chara.CharaCustomFunctionController.GetCoordinateExtendedData(AIChara.ChaFileCoordinate)">
            <summary>
            Get extended data of the specified coordinate by using the ID you specified when registering this controller.
            </summary>
            <param name="coordinate">Coordinate you want to get the data from</param>
        </member>
        <member name="M:KKAPI.Chara.CharaCustomFunctionController.SetCoordinateExtendedData(AIChara.ChaFileCoordinate,ExtensibleSaveFormat.PluginData)">
            <summary>
            Set extended data to the specified coordinate by using the ID you specified when registering this controller.
            </summary>
            <param name="coordinate">Coordinate you want to set the data to</param>
            <param name="data">Your custom data to be saved to the coordinate card</param>
        </member>
        <member name="M:KKAPI.Chara.CharaCustomFunctionController.OnCardBeingSaved(KKAPI.GameMode)">
            <summary>
            Fired when the character information is being saved.
            It handles all types of saving (to character card, to a scene etc.)
            Write any of your extended data in this method by using <see cref="M:KKAPI.Chara.CharaCustomFunctionController.SetExtendedData(ExtensibleSaveFormat.PluginData)"/>.
            Avoid reusing old PluginData since we might no longer be pointed to the same character.
            </summary>
        </member>
        <member name="M:KKAPI.Chara.CharaCustomFunctionController.OnReload(KKAPI.GameMode,System.Boolean)">
            <summary>
            OnReload is fired whenever the character's state needs to be updated.
            This might be beacuse the character was just loaded into the game, 
            was replaced with a different character, etc.
            Use this method instead of Awake and Start. It will always get called
            before other methods, but after the character is in a usable state.
            WARNING: Make sure to completely reset your state in this method!
                     Assume that all of your variables are no longer valid!
            </summary>
            <param name="currentGameMode">Game mode we are currently in</param>
            <param name="maintainState">If true, the current state should be preserved.
            Do not load new extended data, instead reuse what you currently have or do nothing.</param>
        </member>
        <member name="M:KKAPI.Chara.CharaCustomFunctionController.OnReload(KKAPI.GameMode)">
            <summary>
            OnReload is fired whenever the character's state needs to be updated.
            This might be beacuse the character was just loaded into the game, 
            was replaced with a different character, etc.
            Use this method instead of Awake and Start. It will always get called
            before other methods, but after the character is in a usable state.
            WARNING: Make sure to completely reset your state in this method!
                     Assume that all of your variables are no longer valid!
            WARNING: Will not get fired if disabled in <see cref="P:KKAPI.Chara.CharacterApi.RegisteredHandlers"/>, 
            use overloads with maintainState parameter in that case.
            </summary>
            <param name="currentGameMode">Game mode we are currently in</param>
        </member>
        <member name="M:KKAPI.Chara.CharaCustomFunctionController.OnCoordinateBeingSaved(AIChara.ChaFileCoordinate)">
            <summary>
            Fired just before current coordinate is saved to a coordinate card. Use <see cref="M:KKAPI.Chara.CharaCustomFunctionController.SetCoordinateExtendedData(AIChara.ChaFileCoordinate,ExtensibleSaveFormat.PluginData)"/> to save data to it. 
            You might need to wait for the next frame with <see cref="M:UnityEngine.MonoBehaviour.StartCoroutine(System.Collections.IEnumerator)"/> before handling this.
            </summary>
        </member>
        <member name="M:KKAPI.Chara.CharaCustomFunctionController.OnCoordinateBeingLoaded(AIChara.ChaFileCoordinate,System.Boolean)">
            <summary>
            Fired just after loading a coordinate card into the current coordinate slot.
            Use <see cref="M:KKAPI.Chara.CharaCustomFunctionController.GetCoordinateExtendedData(AIChara.ChaFileCoordinate)"/> to get save data of the loaded coordinate.
            </summary>
            <param name="coordinate">Coordinate being currently loaded.</param>
            <param name="maintainState">If true, the current state should be preserved.
            Do not load new extended data, instead reuse what you currently have or do nothing.</param>
        </member>
        <member name="M:KKAPI.Chara.CharaCustomFunctionController.OnCoordinateBeingLoaded(AIChara.ChaFileCoordinate)">
            <summary>
            Fired just after loading a coordinate card into the current coordinate slot.
            Use <see cref="M:KKAPI.Chara.CharaCustomFunctionController.GetCoordinateExtendedData(AIChara.ChaFileCoordinate)"/> to get save data of the loaded coordinate.
            Will not get fired if disabled in <see cref="P:KKAPI.Chara.CharacterApi.RegisteredHandlers"/>, 
            use overloads with maintainState parameter in that case.
            </summary>
            <param name="coordinate">Coordinate being currently loaded.</param>
        </member>
        <member name="M:KKAPI.Chara.CharaCustomFunctionController.Update">
            <summary>
            Warning: When overriding make sure to call the base method at the end of your logic!
            </summary>
        </member>
        <member name="M:KKAPI.Chara.CharaCustomFunctionController.OnDestroy">
            <summary>
            Warning: When overriding make sure to call the base method at the end of your logic!
            </summary>
        </member>
        <member name="M:KKAPI.Chara.CharaCustomFunctionController.OnEnable">
            <summary>
            Warning: When overriding make sure to call the base method at the end of your logic!
            </summary>
        </member>
        <member name="M:KKAPI.Chara.CharaCustomFunctionController.Awake">
            <summary>
            Warning: When overriding make sure to call the base method at the end of your logic!
            </summary>
        </member>
        <member name="M:KKAPI.Chara.CharaCustomFunctionController.Start">
            <summary>
            Warning: When overriding make sure to call the base method at the end of your logic!
            </summary>
        </member>
        <member name="T:KKAPI.Chara.CharaReloadEventArgs">
            <summary>
            Event arguments used by character reload events
            </summary>
        </member>
        <member name="P:KKAPI.Chara.CharaReloadEventArgs.ReloadedCharacter">
            <summary>
            Can be null when all characters in a scene are reloaded
            </summary>
        </member>
        <member name="T:KKAPI.Chara.CoordinateEventArgs">
            <summary>
            Fired in events that deal with coordinate cards
            </summary>
        </member>
        <member name="P:KKAPI.Chara.CoordinateEventArgs.Character">
            <summary>
            Character the coordinate was loaded to
            </summary>
        </member>
        <member name="P:KKAPI.Chara.CoordinateEventArgs.LoadedCoordinate">
            <summary>
            The loaded coordinate
            </summary>
        </member>
        <member name="M:KKAPI.Chara.CoordinateEventArgs.GetCoordinateExtData">
            <summary>
            Get all exrtended data assigned to this coordinate card
            </summary>
        </member>
        <member name="M:KKAPI.Chara.CoordinateEventArgs.SetCoordinateExtData(System.String,ExtensibleSaveFormat.PluginData)">
            <summary>
            Set extended data for this coordinate card
            </summary>
            <param name="dataId">Key to save the data under (usually plugin GUID)</param>
            <param name="data">Data to set</param>
        </member>
        <member name="T:KKAPI.Maker.AccessoriesApi">
            <summary>
            Collection of methods useful for interfacing with character accessories. Has methods both for chara maker and
            everywhere else.
            Abstracts away MoreAccessories so you don't have to worry if it's installed or not.
            </summary>
        </member>
        <member name="P:KKAPI.Maker.AccessoriesApi.AccessoryCanvasVisible">
            <summary>
            Returns true if the accessory tab in maker is currently selected.
            If you want to know if the user can actually see the tab on the screen check <see cref="M:KKAPI.Maker.MakerAPI.IsInterfaceVisible"/>.
            </summary>
        </member>
        <member name="P:KKAPI.Maker.AccessoriesApi.MoreAccessoriesInstalled">
            <summary>
            True if the MoreAccessories mod is installed.
            Avoid relying on this and instead use other methods in this class since they will handle this for you.
            </summary>
        </member>
        <member name="P:KKAPI.Maker.AccessoriesApi.SelectedMakerAccSlot">
            <summary>
            Get the index of the currently selected accessory slot under Accessories group in Chara Maker.
            If none are selected or chara maker is not opened, returns -1. 0-indexed.
            Use <see cref="E:KKAPI.Maker.AccessoriesApi.SelectedMakerAccSlotChanged"/> to get notified when the selected slot changes.
            </summary>
        </member>
        <member name="E:KKAPI.Maker.AccessoriesApi.SelectedMakerAccSlotChanged">
            <summary>
            Fires whenever the index of the currently selected accessory slot under Accessories group in Chara Maker is changed.
            This happens when user click on another slot.
            </summary>
        </member>
        <member name="E:KKAPI.Maker.AccessoriesApi.AccessoryKindChanged">
            <summary>
            Fires when user selects a different accessory in the accessory window.
            </summary>
        </member>
        <member name="E:KKAPI.Maker.AccessoriesApi.AccessoryTransferred">
            <summary>
            Fires after user copies an accessory within a single coordinate by using the Transfer window.
            </summary>
        </member>
        <member name="M:KKAPI.Maker.AccessoriesApi.GetAccessory(AIChara.ChaControl,System.Int32)">
            <summary>
            Get the accessory given a slot index.
            </summary>
        </member>
        <member name="M:KKAPI.Maker.AccessoriesApi.GetAccessoryIndex(AIChara.CmpAccessory)">
            <summary>
            Get slot index of his accessory, useful for referencing to the accesory in extended data.
            </summary>
        </member>
        <member name="M:KKAPI.Maker.AccessoriesApi.GetCvsAccessory">
            <summary>
            Get accessory UI entry in maker.
            Only works inside chara maker.
            </summary>
        </member>
        <member name="M:KKAPI.Maker.AccessoriesApi.GetPartsInfo(System.Int32)">
            <summary>
            Get accessory PartsInfo entry in maker.
            Only works inside chara maker.
            </summary>
        </member>
        <member name="M:KKAPI.Maker.AccessoriesApi.GetCvsAccessoryCount">
            <summary>
            Get count of the UI entries for accessories (accessory slots).
            Returns 0 outside of chara maker.
            </summary>
        </member>
        <member name="M:KKAPI.Maker.AccessoriesApi.GetOwningChaControl(AIChara.CmpAccessory)">
            <summary>
            Get the ChaControl that owns this accessory
            </summary>
        </member>
        <member name="T:KKAPI.Maker.AccessoryControlWrapper`2">
            <summary>
            A wrapper for custom controls used in accessory window (added by using <see cref="M:KKAPI.Maker.MakerAPI.AddAccessoryWindowControl``1(``0)"/>).
            It abstracts away switching between accessory slots and provides a simple list of values for each accessory.
            </summary>
            <typeparam name="T">Type of the control to be wrapped. The control has to be added by using <see cref="M:KKAPI.Maker.MakerAPI.AddAccessoryWindowControl``1(``0)"/> or results will be undefined.</typeparam>
            <typeparam name="TVal">Type of the control's value.</typeparam>
        </member>
        <member name="M:KKAPI.Maker.AccessoryControlWrapper`2.#ctor(`0)">
            <summary>
            Create a new wrapper.
            </summary>
            <param name="control">Control to be wrapped. The control has to be added by using <see cref="M:KKAPI.Maker.MakerAPI.AddAccessoryWindowControl``1(``0)"/> or results will be undefined.</param>
        </member>
        <member name="P:KKAPI.Maker.AccessoryControlWrapper`2.Control">
            <summary>
            The wrapped control.
            </summary>
        </member>
        <member name="M:KKAPI.Maker.AccessoryControlWrapper`2.GetValue(System.Int32)">
            <summary>
            Get value of the control for the specified accessory.
            </summary>
        </member>
        <member name="M:KKAPI.Maker.AccessoryControlWrapper`2.GetSelectedValue">
            <summary>
            Get value of the control for the currently selected accessory.
            </summary>
        </member>
        <member name="M:KKAPI.Maker.AccessoryControlWrapper`2.SetValue(System.Int32,`1)">
            <summary>
            Set value of the control for the specified accessory.
            </summary>
            <param name="accessoryIndex">Index of the accessory to set the value for</param>
            <param name="value">Value to set</param>
        </member>
        <member name="M:KKAPI.Maker.AccessoryControlWrapper`2.SetValue(System.Int32,`1,System.Boolean)">
            <summary>
            Set value of the control for the specified accessory.
            </summary>
            <param name="accessoryIndex">Index of the accessory to set the value for</param>
            <param name="value">Value to set</param>
            <param name="fireEvents">Fire the <see cref="E:KKAPI.Maker.AccessoryControlWrapper`2.ValueChanged"/> event if the value actually changed.</param>
        </member>
        <member name="M:KKAPI.Maker.AccessoryControlWrapper`2.SetSelectedValue(`1)">
            <summary>
            Set value of the control for the currently selected accessory.
            </summary>
            <param name="value">Value to set</param>
        </member>
        <member name="M:KKAPI.Maker.AccessoryControlWrapper`2.SetSelectedValue(`1,System.Boolean)">
            <summary>
            Set value of the control for the currently selected accessory.
            </summary>
            <param name="value">Value to set</param>
            <param name="fireEvents">Fire the <see cref="E:KKAPI.Maker.AccessoryControlWrapper`2.ValueChanged"/> event if the value actually changed.</param>
        </member>
        <member name="P:KKAPI.Maker.AccessoryControlWrapper`2.CurrentlySelectedIndex">
            <summary>
            Index of the currently selected accessory.
            </summary>
        </member>
        <member name="E:KKAPI.Maker.AccessoryControlWrapper`2.ValueChanged">
            <summary>
            Fired when the value of this control changes for any of the accessories.
            </summary>
        </member>
        <member name="E:KKAPI.Maker.AccessoryControlWrapper`2.VisibleIndexChanged">
            <summary>
            Fired when the currently visible accessory was changed by the user clicking on one of the slots.
            </summary>
        </member>
        <member name="E:KKAPI.Maker.AccessoryControlWrapper`2.AccessoryKindChanged">
            <summary>
            Fires when user selects a different accessory in the accessory window.
            </summary>
        </member>
        <member name="E:KKAPI.Maker.AccessoryControlWrapper`2.AccessoryTransferred">
            <summary>
            Fires after user copies an accessory within a single coordinate by using the Transfer window.
            </summary>
        </member>
        <member name="P:KKAPI.Maker.AccessoryControlWrapper`2.IsDisposed">
            <summary>
            If true, the control has been disposed and can no longer be used, likely because the character maker exited.
            A new control has to be created to be used again.
            </summary>
        </member>
        <member name="T:KKAPI.Maker.AccessorySlotEventArgs">
            <summary>
            Event args for events that are related to accessory slot indexes.
            </summary>
        </member>
        <member name="M:KKAPI.Maker.AccessorySlotEventArgs.#ctor(System.Int32)">
            <inheritdoc />
        </member>
        <member name="P:KKAPI.Maker.AccessorySlotEventArgs.SlotIndex">
            <summary>
            Currently opened accessory slot index. 0-indexed.
            </summary>
        </member>
        <member name="P:KKAPI.Maker.AccessorySlotEventArgs.CvsAccessory">
            <summary>
            Get accessory UI entry in maker.
            </summary>
        </member>
        <member name="P:KKAPI.Maker.AccessorySlotEventArgs.AccessoryComponent">
            <summary>
            Get accessory component.
            </summary>
        </member>
        <member name="T:KKAPI.Maker.AccessoryTransferEventArgs">
            <summary>
            Event args for accessory transfer events.
            </summary>
        </member>
        <member name="M:KKAPI.Maker.AccessoryTransferEventArgs.#ctor(System.Int32,System.Int32)">
            <inheritdoc />
        </member>
        <member name="P:KKAPI.Maker.AccessoryTransferEventArgs.SourceSlotIndex">
            <summary>
            Index of the source accessory.
            </summary>
        </member>
        <member name="P:KKAPI.Maker.AccessoryTransferEventArgs.DestinationSlotIndex">
            <summary>
            Index the source accessory is copied to.
            </summary>
        </member>
        <member name="T:KKAPI.Maker.AccessoryWindowControlValueChangedEventArgs`1">
            <summary>
            Event args used in <see cref="T:KKAPI.Maker.AccessoryControlWrapper`2"/>.
            </summary>
        </member>
        <member name="M:KKAPI.Maker.AccessoryWindowControlValueChangedEventArgs`1.#ctor(`0,System.Int32)">
            <inheritdoc />
        </member>
        <member name="P:KKAPI.Maker.AccessoryWindowControlValueChangedEventArgs`1.NewValue">
            <summary>
            Newly assigned value.
            </summary>
        </member>
        <member name="P:KKAPI.Maker.AccessoryWindowControlValueChangedEventArgs`1.SlotIndex">
            <summary>
            Index of the accessory the value was assigned to.
            </summary>
        </member>
        <member name="T:KKAPI.Maker.MakerAPI">
            <summary>
            Provides a way to add custom items to the in-game Character Maker, and gives useful methods for interfacing with the maker.
            </summary>
        </member>
        <member name="M:KKAPI.Maker.MakerAPI.AddControl``1(``0)">
            <summary>
            Add custom controls. If you want to use custom sub categories, register them by calling AddSubCategory.
            </summary>
        </member>
        <member name="M:KKAPI.Maker.MakerAPI.AddSubCategory(KKAPI.Maker.MakerCategory)">
            <summary>
            Add custom sub categories. They need to be added before maker starts loading,
            or in the <see cref="E:KKAPI.Maker.MakerAPI.RegisterCustomSubCategories"/> event.
            </summary>
        </member>
        <member name="M:KKAPI.Maker.MakerAPI.AddSidebarControl``1(``0)">
            <summary>
            Add a control to the right sidebar in chara maker (the "Control Panel" where you set eye blinking, mouth expressions etc.)
            </summary>
        </member>
        <member name="M:KKAPI.Maker.MakerAPI.AddAccessoryWindowControl``1(``0)">
            <summary>
            Add a control to the accessory selection and settings window.
            For editable controls that depend on the selected accessory use <see cref="M:KKAPI.Maker.MakerAPI.AddEditableAccessoryWindowControl``2(``0)"/>.
            </summary>
        </member>
        <member name="M:KKAPI.Maker.MakerAPI.AddEditableAccessoryWindowControl``2(``0)">
            <summary>
            Add a control to the accessory selection and settings window. The control is wrapped to properly respond to changes in selected accessory slot (has unique values for each slot).
            </summary>
        </member>
        <member name="M:KKAPI.Maker.MakerAPI.GetMakerSex">
            <summary>
            0 is male, 1 is female
            </summary>
        </member>
        <member name="M:KKAPI.Maker.MakerAPI.GetMakerBase">
            <summary>
            Returns current maker logic instance.
            Same as <see cref="P:Singleton`1.Instance"/>
            </summary>
        </member>
        <member name="M:KKAPI.Maker.MakerAPI.GetCharacterControl">
            <summary>
            Get the ChaControl of the character serving as a preview in character maker.
            Outside of character maker and early on in maker load process this returns null.
            </summary>
        </member>
        <member name="E:KKAPI.Maker.MakerAPI.RegisterCustomSubCategories">
            <summary>
            This event is fired every time the character maker is being loaded, near the very beginning.
            This is the only chance to add custom sub categories. Custom controls can be added now on later in <see cref="E:KKAPI.Maker.MakerAPI.MakerBaseLoaded"/>.
            Warning: All custom subcategories and custom controls are cleared on maker exit and need to be re-added on next maker start.
            It's recommended to completely clear your GUI state in <see cref="E:KKAPI.Maker.MakerAPI.MakerExiting"/> in preparation for loading into maker again.
            </summary>
        </member>
        <member name="E:KKAPI.Maker.MakerAPI.MakerStartedLoading">
            <summary>
            Early in the process of maker loading. Most game components are initialized and had their Start methods ran.
            Warning: Some components and objects might not be loaded or initialized yet, especially if they are mods.
            Warning: All custom subcategories and custom controls are cleared on maker exit and need to be re-added on next maker
            start.
            </summary>
        </member>
        <member name="E:KKAPI.Maker.MakerAPI.MakerBaseLoaded">
            <summary>
            Maker is fully loaded. Use to load mods that rely on something that is loaded late, else use MakerStartedLoading.
            This is the last chance to add custom controls!
            Warning: All custom subcategories and custom controls are cleared on maker exit and need to be re-added on next maker
            start.
            </summary>
        </member>
        <member name="E:KKAPI.Maker.MakerAPI.MakerFinishedLoading">
            <summary>
            Maker is fully loaded and the user has control.
            Warning: Avoid loading mods or doing anything heavy in this event, use EarlyMakerFinishedLoading instead.
            </summary>
        </member>
        <member name="E:KKAPI.Maker.MakerAPI.MakerExiting">
            <summary>
            Fired after the user exits the maker. Use this to clean up any references and resources.
            You want to return to the state you were in before maker was loaded.
            </summary>
        </member>
        <member name="P:KKAPI.Maker.MakerAPI.CharaListIsLoading">
            <summary>
            Use to avoid unnecessary processing cards when they are loaded to the character list.
            For example, don't load extended data for these characters since it's never used.
            </summary>
        </member>
        <member name="P:KKAPI.Maker.MakerAPI.LastLoadedChaFile">
            <summary>
            ChaFile of the character currently opened in maker. Do not use to save extended data, or it will be lost when saving the card.
            Use ChaFile from <code>ExtendedSave.CardBeingSaved</code> event to save extended data instead.
            </summary>
        </member>
        <member name="E:KKAPI.Maker.MakerAPI.ChaFileLoaded">
            <summary>
            Fired when the current ChaFile in maker is being changed by loading other cards or coordinates.
            This event is only fired when inside the character maker.
            
            You might need to wait for the next frame with <see cref="M:UnityEngine.MonoBehaviour.StartCoroutine(System.Collections.IEnumerator)"/> before handling this.
            </summary>
        </member>
        <member name="E:KKAPI.Maker.MakerAPI.ReloadCustomInterface">
            <summary>
            Fired after character or coordinate is loaded in maker, after all controllers had their events fired.
            This event is only fired when inside the character maker. Use this to update values of custom controls.
            EventArgs can be either <see cref="T:KKAPI.Chara.CharaReloadEventArgs"/> or <see cref="T:KKAPI.Chara.CoordinateEventArgs"/> depending on why the reload happened.
            </summary>
        </member>
        <member name="E:KKAPI.Maker.MakerAPI.InsideMakerChanged">
            <summary>
            Firen whenever <see cref="P:KKAPI.Maker.MakerAPI.InsideMaker"/> changes. This is the earliest event fired when user starts the character maker.
            </summary>
        </member>
        <member name="P:KKAPI.Maker.MakerAPI.InsideMaker">
            <summary>
            The maker scene is currently loaded. It might still be loading!
            </summary>
        </member>
        <member name="P:KKAPI.Maker.MakerAPI.InsideAndLoaded">
            <summary>
            Maker is fully loaded and running
            </summary>
        </member>
        <member name="M:KKAPI.Maker.MakerAPI.GetCharacterLoadFlags">
            <summary>
            Get values of the default partial load checkboxes present at the bottom of the 
            character load window (load face, body, hair, parameters, clothes).
            Returns null if the values could not be collected (safe to assume it's the same as being enabled).
            </summary>
        </member>
        <member name="M:KKAPI.Maker.MakerAPI.IsInterfaceVisible">
            <summary>
            Check if maker interface is currently visible and not obscured by settings screen or other things.
            Useful for knowing when to display OnGui mod windows in maker.
            </summary>
        </member>
        <member name="T:KKAPI.Maker.MakerConstants">
            <summary>
            Useful values from the character maker. Mostly built-in categories for use with registering custom controls.
            </summary>
        </member>
        <member name="F:KKAPI.Maker.MakerConstants.DefaultControlTextColor">
            <summary>
            Default text color for maker controls.
            </summary>
        </member>
        <member name="M:KKAPI.Maker.MakerInterfaceCreator.AddMissingSubCategories(CharaCustom.CvsSelectWindow)">
            <summary>
            Needs to run before UI_ToggleGroupCtrl.Start of the category runs, or it won't get added properly
            </summary>
        </member>
        <member name="T:KKAPI.Maker.UI.MakerButton">
            <summary>
            Custom control that draws a simple blue button.
            </summary>
        </member>
        <member name="M:KKAPI.Maker.UI.MakerButton.#ctor(System.String,KKAPI.Maker.MakerCategory,BepInEx.BaseUnityPlugin)">
            <summary>
            Create a new custom control. Create and register it in <see cref="E:KKAPI.Maker.MakerAPI.RegisterCustomSubCategories"/>.
            </summary>
            <param name="text">Text displayed on the button</param>
            <param name="category">Category the control will be created under</param>
            <param name="owner">Plugin that owns the control</param>
        </member>
        <member name="P:KKAPI.Maker.UI.MakerButton.OnClick">
            <summary>
            Fired when user clicks on the button
            </summary>
        </member>
        <member name="P:KKAPI.Maker.UI.MakerButton.Text">
            <summary>
            Text displayed on the button
            </summary>
        </member>
        <member name="M:KKAPI.Maker.UI.MakerButton.Initialize">
            <inheritdoc />
        </member>
        <member name="M:KKAPI.Maker.UI.MakerButton.Dispose">
            <inheritdoc />
        </member>
        <member name="M:KKAPI.Maker.UI.MakerButton.OnCreateControl(UnityEngine.Transform)">
            <inheritdoc />
        </member>
        <member name="T:KKAPI.Maker.UI.MakerColor">
            <summary>
            Control that allows user to change a <see cref="T:UnityEngine.Color"/> in a separate color selector window
            </summary>
        </member>
        <member name="M:KKAPI.Maker.UI.MakerColor.#ctor(System.String,System.Boolean,KKAPI.Maker.MakerCategory,UnityEngine.Color,BepInEx.BaseUnityPlugin)">
            <summary>
            Create a new custom control. Create and register it in <see cref="E:KKAPI.Maker.MakerAPI.RegisterCustomSubCategories"/>.
            </summary>
            <param name="settingName">Text displayed next to the control</param>
            <param name="useAlpha">
            If true, the color selector will allow the user to change alpha of the color.
            If false, no color slider is shown and alpha is always 1f.
            </param>
            <param name="category">Category the control will be created under</param>
            <param name="initialValue">Color set to the control when it is created</param>
            <param name="owner">Plugin that owns the control</param>
        </member>
        <member name="P:KKAPI.Maker.UI.MakerColor.SettingName">
            <summary>
            Name of the setting
            </summary>
        </member>
        <member name="P:KKAPI.Maker.UI.MakerColor.UseAlpha">
            <summary>
            If true, the color selector will allow the user to change alpha of the color.
            If false, no color slider is shown and alpha is always 1f.
            </summary>
        </member>
        <member name="M:KKAPI.Maker.UI.MakerColor.Initialize">
            <inheritdoc />
        </member>
        <member name="M:KKAPI.Maker.UI.MakerColor.OnCreateControl(UnityEngine.Transform)">
            <inheritdoc />
        </member>
        <member name="T:KKAPI.Maker.UI.MakerCoordinateLoadToggle">
            <summary>
            Adds a toggle to the bottom of the coordinate/clothes card load window in character maker.
            Use to allow user to not load data related to your mod.
            Use with <see cref="M:KKAPI.Maker.UI.MakerCoordinateLoadToggle.AddLoadToggle(KKAPI.Maker.UI.MakerCoordinateLoadToggle)"/>
            </summary>
        </member>
        <member name="M:KKAPI.Maker.UI.MakerCoordinateLoadToggle.#ctor(System.String,System.Boolean)">
            <summary>
            Create a new coordinate load toggle. Create and register it in <see cref="E:KKAPI.Maker.MakerAPI.RegisterCustomSubCategories"/> 
            with <see cref="M:KKAPI.Maker.RegisterCustomControlsEvent.AddCoordinateLoadToggle(KKAPI.Maker.UI.MakerCoordinateLoadToggle)"/>.
            </summary>
            <param name="text">Text displayed next to the checkbox</param>
            <param name="initialValue">Initial value of the toggle</param>
        </member>
        <member name="P:KKAPI.Maker.UI.MakerCoordinateLoadToggle.Text">
            <summary>
            Text displayed next to the toggle
            </summary>
        </member>
        <member name="P:KKAPI.Maker.UI.MakerCoordinateLoadToggle.AnyEnabled">
            <summary>
            Check if any of the custom toggles are checked
            </summary>
        </member>
        <member name="M:KKAPI.Maker.UI.MakerCoordinateLoadToggle.OnCreateControl(UnityEngine.Transform)">
            <inheritdoc />
        </member>
        <member name="M:KKAPI.Maker.UI.MakerCoordinateLoadToggle.Initialize">
            <inheritdoc />
        </member>
        <member name="T:KKAPI.Maker.UI.MakerDropdown">
            <summary>
            Custom control that draws a dropdown list
            </summary>
        </member>
        <member name="M:KKAPI.Maker.UI.MakerDropdown.#ctor(System.String,System.String[],KKAPI.Maker.MakerCategory,System.Int32,BepInEx.BaseUnityPlugin)">
            <summary>
            Create a new custom control. Create and register it in <see cref="E:KKAPI.Maker.MakerAPI.RegisterCustomSubCategories"/>.
            </summary>
            <param name="settingName">Text displayed next to the dropdown</param>
            <param name="options">Items for the dropdown menu</param>
            <param name="category">Category the control will be created under</param>
            <param name="initialValue">Initially selected item in the dropdown menu</param>
            <param name="owner">Plugin that owns the control</param>
        </member>
        <member name="P:KKAPI.Maker.UI.MakerDropdown.Options">
            <summary>
            List of all options in the dropdown
            </summary>
        </member>
        <member name="P:KKAPI.Maker.UI.MakerDropdown.SettingName">
            <summary>
            Name displayed next to the dropdown
            </summary>
        </member>
        <member name="M:KKAPI.Maker.UI.MakerDropdown.Initialize">
            <inheritdoc />
        </member>
        <member name="M:KKAPI.Maker.UI.MakerDropdown.OnCreateControl(UnityEngine.Transform)">
            <inheritdoc />
        </member>
        <member name="T:KKAPI.Maker.UI.MakerImage">
            <summary>
            Custom control that displays a texture in a small preview thumbnail
            </summary>
        </member>
        <member name="P:KKAPI.Maker.UI.MakerImage.Texture">
            <summary>
            Texture to display in the preview
            </summary>
        </member>
        <member name="P:KKAPI.Maker.UI.MakerImage.Width">
            <summary>
            Width of the texture preview
            </summary>
        </member>
        <member name="P:KKAPI.Maker.UI.MakerImage.Height">
            <summary>
            Height of the texture preview
            </summary>
        </member>
        <member name="M:KKAPI.Maker.UI.MakerImage.#ctor(UnityEngine.Texture,KKAPI.Maker.MakerCategory,BepInEx.BaseUnityPlugin)">
            <summary>
            Create a new custom control. Create and register it in <see cref="E:KKAPI.Maker.MakerAPI.RegisterCustomSubCategories"/>.
            </summary>
            <param name="texture">Texture to be displayed in the image box. Can be null for empty.</param>
            <param name="category">Category the control will be created under</param>
            <param name="owner">Plugin that owns the control</param>
        </member>
        <member name="M:KKAPI.Maker.UI.MakerImage.Initialize">
            <inheritdoc />
        </member>
        <member name="M:KKAPI.Maker.UI.MakerImage.OnCreateControl(UnityEngine.Transform)">
            <inheritdoc />
        </member>
        <member name="T:KKAPI.Maker.UI.MakerLoadToggle">
            <summary>
            Adds a toggle to the bottom of the character card load window in character maker.
            Use to allow user to not load data related to your mod.
            Use with <see cref="M:KKAPI.Maker.UI.MakerLoadToggle.AddLoadToggle(KKAPI.Maker.UI.MakerLoadToggle)"/>
            </summary>
        </member>
        <member name="M:KKAPI.Maker.UI.MakerLoadToggle.#ctor(System.String,System.Boolean)">
            <summary>
            Create a new load toggle. Create and register it in <see cref="E:KKAPI.Maker.MakerAPI.RegisterCustomSubCategories"/> 
            with <see cref="M:KKAPI.Maker.RegisterCustomControlsEvent.AddLoadToggle(KKAPI.Maker.UI.MakerLoadToggle)"/>.
            </summary>
            <param name="text">Text displayed next to the checkbox</param>
            <param name="initialValue">Initial value of the toggle</param>
        </member>
        <member name="P:KKAPI.Maker.UI.MakerLoadToggle.Text">
            <summary>
            Text displayed next to the toggle
            </summary>
        </member>
        <member name="P:KKAPI.Maker.UI.MakerLoadToggle.AnyEnabled">
            <summary>
            Check if any of the custom toggles are checked
            </summary>
        </member>
        <member name="M:KKAPI.Maker.UI.MakerLoadToggle.OnCreateControl(UnityEngine.Transform)">
            <inheritdoc />
        </member>
        <member name="M:KKAPI.Maker.UI.MakerLoadToggle.Initialize">
            <inheritdoc />
        </member>
        <member name="T:KKAPI.Maker.UI.MakerRadioButtons">
            <summary>
            Custom control that displays multiple radio buttons
            </summary>
        </member>
        <member name="P:KKAPI.Maker.UI.MakerRadioButtons.Buttons">
            <summary>
            Objects of all of the radio buttons
            </summary>
        </member>
        <member name="M:KKAPI.Maker.UI.MakerRadioButtons.#ctor(KKAPI.Maker.MakerCategory,BepInEx.BaseUnityPlugin,System.String,System.String[])">
            <summary>
            Create a new custom control. Create and register it in <see cref="E:KKAPI.Maker.MakerAPI.RegisterCustomSubCategories"/>.
            </summary>
            <param name="settingName">Text displayed next to the buttons</param>
            <param name="category">Category the control will be created under</param>
            <param name="owner">Plugin that owns the control</param>
            <param name="buttons">Names of the radio buttons. Need at least 2 buttons.</param>
        </member>
        <member name="M:KKAPI.Maker.UI.MakerRadioButtons.#ctor(KKAPI.Maker.MakerCategory,BepInEx.BaseUnityPlugin,System.String,System.Int32,System.String[])">
            <summary>
            Create a new custom control. Create and register it in <see cref="E:KKAPI.Maker.MakerAPI.RegisterCustomSubCategories"/>.
            </summary>
            <param name="settingName">Text displayed next to the buttons</param>
            <param name="category">Category the control will be created under</param>
            <param name="owner">Plugin that owns the control</param>
            <param name="initialValue">Initial value of the control</param>
            <param name="buttons">Names of the radio buttons. Need at least 2 buttons.</param>
        </member>
        <member name="M:KKAPI.Maker.UI.MakerRadioButtons.Initialize">
            <inheritdoc />
        </member>
        <member name="M:KKAPI.Maker.UI.MakerRadioButtons.OnCreateControl(UnityEngine.Transform)">
            <inheritdoc />
        </member>
        <member name="T:KKAPI.Maker.UI.MakerSeparator">
            <summary>
            Custom control that draws a simple horizontal separator
            </summary>
        </member>
        <member name="M:KKAPI.Maker.UI.MakerSeparator.OnCreateControl(UnityEngine.Transform)">
            <inheritdoc />
        </member>
        <member name="M:KKAPI.Maker.UI.MakerSeparator.Initialize">
            <inheritdoc />
        </member>
        <member name="M:KKAPI.Maker.UI.MakerSeparator.#ctor(KKAPI.Maker.MakerCategory,BepInEx.BaseUnityPlugin)">
            <summary>
            Create a new custom control. Create and register it in <see cref="E:KKAPI.Maker.MakerAPI.RegisterCustomSubCategories"/>.
            </summary>
            <param name="category">Category the control will be created under</param>
            <param name="owner">Plugin that owns the control</param>
        </member>
        <member name="T:KKAPI.Maker.UI.MakerSlider">
            <summary>
            Custom control that draws a slider and a text box (both are used to edit the same value)
            </summary>
        </member>
        <member name="M:KKAPI.Maker.UI.MakerSlider.#ctor(KKAPI.Maker.MakerCategory,System.String,System.Single,System.Single,System.Single,BepInEx.BaseUnityPlugin)">
            <summary>
            Create a new custom control. Create and register it in <see cref="E:KKAPI.Maker.MakerAPI.RegisterCustomSubCategories"/>.
            </summary>
            <param name="settingName">Text displayed next to the slider</param>
            <param name="category">Category the control will be created under</param>
            <param name="owner">Plugin that owns the control</param>
            <param name="minValue">Lowest allowed value (inclusive)</param>
            <param name="maxValue">Highest allowed value (inclusive)</param>
            <param name="defaultValue">Value the slider will be set to after creation</param>
        </member>
        <member name="P:KKAPI.Maker.UI.MakerSlider.StringToValue">
            <summary>
            Custom converter from text in the textbox to the slider value.
            If not set, <code>float.Parse(txt) / 100f</code> is used.
            </summary>
        </member>
        <member name="P:KKAPI.Maker.UI.MakerSlider.ValueToString">
            <summary>
            Custom converter from the slider value to what's displayed in the textbox.
            If not set, <code>Mathf.RoundToInt(f * 100).ToString()</code> is used.
            </summary>
        </member>
        <member name="M:KKAPI.Maker.UI.MakerSlider.Initialize">
            <inheritdoc />
        </member>
        <member name="M:KKAPI.Maker.UI.MakerSlider.OnCreateControl(UnityEngine.Transform)">
            <inheritdoc />
        </member>
        <member name="T:KKAPI.Maker.UI.MakerText">
            <summary>
            Custom control that displays a simple text
            </summary>
        </member>
        <member name="P:KKAPI.Maker.UI.MakerText.ExplanationGray">
            <summary>
            Light gray color best used for text explaining another setting
            </summary>
        </member>
        <member name="M:KKAPI.Maker.UI.MakerText.#ctor(System.String,KKAPI.Maker.MakerCategory,BepInEx.BaseUnityPlugin)">
            <summary>
            Create a new custom control. Create and register it in <see cref="E:KKAPI.Maker.MakerAPI.RegisterCustomSubCategories"/>.
            </summary>
            <param name="text">Displayed text</param>
            <param name="category">Category the control will be created under</param>
            <param name="owner">Plugin that owns the control</param>
        </member>
        <member name="P:KKAPI.Maker.UI.MakerText.Text">
            <summary>
            Displayed text
            </summary>
        </member>
        <member name="M:KKAPI.Maker.UI.MakerText.Initialize">
            <inheritdoc />
        </member>
        <member name="M:KKAPI.Maker.UI.MakerText.OnCreateControl(UnityEngine.Transform)">
            <inheritdoc />
        </member>
        <member name="T:KKAPI.Maker.UI.MakerToggle">
            <summary>
            Custom control that displays a toggle
            </summary>
        </member>
        <member name="M:KKAPI.Maker.UI.MakerToggle.#ctor(KKAPI.Maker.MakerCategory,System.String,BepInEx.BaseUnityPlugin)">
            <summary>
            Create a new custom control. Create and register it in <see cref="E:KKAPI.Maker.MakerAPI.RegisterCustomSubCategories"/>.
            </summary>
            <param name="displayName">Text shown next to the checkbox</param>
            <param name="category">Category the control will be created under</param>
            <param name="owner">Plugin that owns the control</param>
        </member>
        <member name="M:KKAPI.Maker.UI.MakerToggle.#ctor(KKAPI.Maker.MakerCategory,System.String,System.Boolean,BepInEx.BaseUnityPlugin)">
            <summary>
            Create a new custom control. Create and register it in <see cref="E:KKAPI.Maker.MakerAPI.RegisterCustomSubCategories"/>.
            </summary>
            <param name="displayName">Text shown next to the checkbox</param>
            <param name="category">Category the control will be created under</param>
            <param name="initialValue">Initial value of the toggle</param>
            <param name="owner">Plugin that owns the control</param>
        </member>
        <member name="P:KKAPI.Maker.UI.MakerToggle.DisplayName">
            <summary>
            Text shown next to the checkbox
            </summary>
        </member>
        <member name="M:KKAPI.Maker.UI.MakerToggle.Initialize">
            <inheritdoc />
        </member>
        <member name="M:KKAPI.Maker.UI.MakerToggle.OnCreateControl(UnityEngine.Transform)">
            <inheritdoc />
        </member>
        <member name="T:KKAPI.Maker.UI.BaseEditableGuiEntry`1">
            <summary>
            Base of custom controls that have a value that can be changed and watched for changes.
            </summary>
        </member>
        <member name="M:KKAPI.Maker.UI.BaseEditableGuiEntry`1.#ctor(KKAPI.Maker.MakerCategory,`0,BepInEx.BaseUnityPlugin)">
            <inheritdoc />
        </member>
        <member name="P:KKAPI.Maker.UI.BaseEditableGuiEntry`1.Value">
            <summary>
            Buttons 1, 2, 3 are values 0, 1, 2
            </summary>
        </member>
        <member name="P:KKAPI.Maker.UI.BaseEditableGuiEntry`1.ValueChanged">
            <summary>
            Fired every time the value is changed, and once when the control is created.
            Buttons 1, 2, 3 are values 0, 1, 2
            </summary>
        </member>
        <member name="P:KKAPI.Maker.UI.BaseEditableGuiEntry`1.BufferedValueChanged">
            <summary>
            Use to get value changes for controls. Fired by external value set and by SetNewValue.
            </summary>
        </member>
        <member name="M:KKAPI.Maker.UI.BaseEditableGuiEntry`1.SetValue(`0)">
            <summary>
            Set the new value and trigger the <see cref="P:KKAPI.Maker.UI.BaseEditableGuiEntry`1.ValueChanged"/> event if the control has been created and the value actually changed.
            </summary>
            <param name="newValue">Value to set</param>
        </member>
        <member name="M:KKAPI.Maker.UI.BaseEditableGuiEntry`1.SetValue(`0,System.Boolean)">
            <summary>
            Set the new value and optionally trigger the <see cref="P:KKAPI.Maker.UI.BaseEditableGuiEntry`1.ValueChanged"/> event if the control has been created.
            </summary>
            <param name="newValue">Value to set</param>
            <param name="fireEvents">Fire the <see cref="P:KKAPI.Maker.UI.BaseEditableGuiEntry`1.ValueChanged"/> event if the value actually changed.</param>
        </member>
        <member name="M:KKAPI.Maker.UI.BaseEditableGuiEntry`1.Dispose">
            <inheritdoc />
        </member>
        <member name="T:KKAPI.Maker.UI.BaseGuiEntry">
            <summary>
            Base of all custom character maker controls.
            </summary>
        </member>
        <member name="F:KKAPI.Maker.UI.BaseGuiEntry.GuiApiNameAppendix">
            <summary>
            Added to the end of most custom controls to mark them as being created by this API.
            </summary>
        </member>
        <member name="M:KKAPI.Maker.UI.BaseGuiEntry.#ctor(KKAPI.Maker.MakerCategory,BepInEx.BaseUnityPlugin)">
            <summary>
            Create a new custom control
            </summary>
            <param name="category">Category the control will be created under</param>
            <param name="owner">Plugin that owns the control</param>
        </member>
        <member name="P:KKAPI.Maker.UI.BaseGuiEntry.Category">
            <summary>
            Category and subcategory that this control is inside of.
            </summary>
        </member>
        <member name="P:KKAPI.Maker.UI.BaseGuiEntry.GuiCacheTransfrom">
            <summary>
            Parent transform that holds temporary gui entries used to instantiate custom controls.
            </summary>
        </member>
        <member name="M:KKAPI.Maker.UI.BaseGuiEntry.GetExistingControl(System.String,System.String)">
            <summary>
            Find first control of this name under the specified category transform
            </summary>
        </member>
        <member name="M:KKAPI.Maker.UI.BaseGuiEntry.Initialize">
            <summary>
            Called before OnCreateControl to setup the object before instantiating the control.
            </summary>
        </member>
        <member name="M:KKAPI.Maker.UI.BaseGuiEntry.Dispose">
            <summary>
            Remove the control. Called when maker is quitting.
            </summary>
            <inheritdoc />
        </member>
        <member name="P:KKAPI.Maker.UI.BaseGuiEntry.IsDisposed">
            <summary>
            If true, the control has been disposed and can no longer be used, likely because the character maker exited.
            A new control has to be created to be used again.
            </summary>
        </member>
        <member name="M:KKAPI.Maker.UI.BaseGuiEntry.OnCreateControl(UnityEngine.Transform)">
            <summary>
            Used by the API to actually create the custom control.
            Should return main GameObject of the control
            </summary>
        </member>
        <member name="P:KKAPI.Maker.UI.BaseGuiEntry.TextColor">
            <summary>
            Text color of the control's description text (usually on the left).
            Can only set this before the control is created.
            </summary>
        </member>
        <member name="P:KKAPI.Maker.UI.BaseGuiEntry.Owner">
            <summary>
            The plugin that owns this custom control.
            </summary>
        </member>
        <member name="P:KKAPI.Maker.UI.BaseGuiEntry.Visible">
            <summary>
            The control is visible to the user (usually the same as it's GameObject being active).
            </summary>
        </member>
        <member name="P:KKAPI.Maker.UI.BaseGuiEntry.ControlObjects">
            <summary>
            GameObject(s) of the control. Populated once instantiated.
            Contains 1 item in most cases, can contain multiple in case of accessory window controls.
            </summary>
        </member>
        <member name="P:KKAPI.Maker.UI.BaseGuiEntry.ControlObject">
            <summary>
            GameObject of the control. Populated once instantiated.
            If there are multiple objects, returns one of them. Use <see cref="P:KKAPI.Maker.UI.BaseGuiEntry.ControlObjects"/> in that case.
            </summary>
        </member>
        <member name="P:KKAPI.Maker.UI.BaseGuiEntry.Exists">
            <summary>
            True if the control is currently instantiated in the scene
            </summary>
        </member>
        <member name="T:KKAPI.Maker.UI.Sidebar.ISidebarControl">
            <summary>
            Marks the control as being intended for use on Control Panel sidebar in chara maker
            </summary>
        </member>
        <member name="T:KKAPI.Maker.CharacterLoadFlags">
            <summary>
            Specifies which parts of the character will be loaded when loading a card in character maker.
            (It's the toggles at the bottom of load window) Only includes stock toggles.
            </summary>
        </member>
        <member name="P:KKAPI.Maker.ChaFileLoadedEventArgs.LoadedChaFile">
            <summary>
            Use this to get extended data on the character
            </summary>
        </member>
        <member name="T:KKAPI.Maker.RegisterCustomControlsEvent">
            <summary>
            Event fired when character maker is starting and plugins are given an opportunity to register custom controls
            </summary>
        </member>
        <member name="M:KKAPI.Maker.RegisterCustomControlsEvent.AddControl``1(``0)">
            <summary>
            Add custom controls. If you want to use custom sub categories, register them by calling AddSubCategory.
            </summary>
        </member>
        <member name="M:KKAPI.Maker.RegisterCustomControlsEvent.AddSidebarControl``1(``0)">
            <summary>
            Add a control to the right sidebar in chara maker (the "Control Panel" where you set eye blinking, mouth expressions etc.)
            </summary>
        </member>
        <member name="M:KKAPI.Maker.RegisterCustomControlsEvent.AddLoadToggle(KKAPI.Maker.UI.MakerLoadToggle)">
            <summary>
            Add a toggle to the bottom of the "Load character" window that allows for partial loading of characters.
            </summary>
        </member>
        <member name="M:KKAPI.Maker.RegisterCustomControlsEvent.AddCoordinateLoadToggle(KKAPI.Maker.UI.MakerCoordinateLoadToggle)">
            <summary>
            Add a toggle to the bottom of the "Load coordinate/clothes" window that allows for partial loading of coordinate cards.
            </summary>
        </member>
        <member name="T:KKAPI.Maker.RegisterSubCategoriesEvent">
            <summary>
            Event fired when character maker is starting and plugins are given an opportunity to register custom categories and controls
            </summary>
        </member>
        <member name="M:KKAPI.Maker.RegisterSubCategoriesEvent.AddSubCategory(KKAPI.Maker.MakerCategory)">
            <summary>
            Add custom sub categories. They need to be added before maker starts loading,
            or in the RegisterCustomSubCategories event.
            </summary>
        </member>
        <member name="T:KKAPI.Maker.MakerCategory">
            <summary>
            Specifies a category inside character maker.
            </summary>
        </member>
        <member name="M:KKAPI.Maker.MakerCategory.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:KKAPI.Maker.MakerCategory.GetHashCode">
            <inheritdoc />
        </member>
        <member name="M:KKAPI.Maker.MakerCategory.#ctor(System.String,System.String,System.Int32,System.String)">
            <summary>
            Make a new custom subcategory. 
            </summary>
        </member>
        <member name="P:KKAPI.Maker.MakerCategory.CategoryName">
            <summary>
            Main category gameObject name. Main categories are the square buttons at the top-left edge of the screen.
            They contain multiple subcategories (tabs on the left edge of the screen).
            </summary>
        </member>
        <member name="P:KKAPI.Maker.MakerCategory.SubCategoryName">
            <summary>
            Sub category gameObject name. Sub categories are the named tabs on the left edge of the screen.
            They contain the actual controls (inside the window on the right of the tabs).
            </summary>
        </member>
        <member name="P:KKAPI.Maker.MakerCategory.Position">
            <summary>
            Numeric position of the subcategory.
            When making new subcategories you can set this value to be in-between stock subcategories.
            </summary>
        </member>
        <member name="P:KKAPI.Maker.MakerCategory.DisplayName">
            <summary>
            The text displayed on the subcategory tab on the left edge of the screen.
            </summary>
        </member>
        <member name="M:KKAPI.Maker.MakerCategory.ToString">
            <summary>
            Get combined name for logging etc.
            </summary>
        </member>
        <member name="T:KKAPI.KoikatuAPI">
            <summary>
            Provides overall information about the game and the API itself, and provides some useful tools.
            More information is available in project wiki at https://github.com/ManlyMarco/KKAPI/wiki
            </summary>
        </member>
        <member name="M:KKAPI.KoikatuAPI.GetCurrentGameMode">
            <summary>
            Get current game mode. 
            </summary>
        </member>
        <member name="M:KKAPI.KoikatuAPI.GetGameVersion">
            <summary>
            Get current version of the game.
            </summary>
        </member>
        <member name="F:KKAPI.KoikatuAPI.VersionConst">
            <summary>
            Version of this assembly/plugin.
            WARNING: This is a const field, therefore it will be copied to your assembly!
            Use this field to check if the installed version of the plugin is up to date by doing this:
            <code>KoikatuAPI.CheckRequiredPlugin(this, KoikatuAPI.GUID, new Version(KoikatuAPI.VersionConst), LogLevel.Warning)</code>
            THIS VALUE WILL NOT BE READ FROM THE INSTALLED VERSION, YOU WILL READ THE VALUE FROM THIS VERSION THAT YOU COMPILE YOUR PLUGIN AGAINST!
            More info: https://stackoverflow.com/questions/55984/what-is-the-difference-between-const-and-readonly
            </summary>
        </member>
        <member name="F:KKAPI.KoikatuAPI.GUID">
            <summary>
            GUID of this plugin, use for checking dependancies with <see cref="T:BepInEx.BepInDependency"/> and <see cref="M:KKAPI.KoikatuAPI.CheckRequiredPlugin(BepInEx.BaseUnityPlugin,System.String,System.Version,BepInEx.Logging.LogLevel)"/>
            </summary>
        </member>
        <member name="P:KKAPI.KoikatuAPI.EnableDebugLogging">
            <summary>
            Enables display of additional log messages when certain events are triggered within KKAPI. 
            Useful for plugin devs to understand when controller messages are fired.
            </summary>
        </member>
        <member name="M:KKAPI.KoikatuAPI.#ctor">
            <summary>
            Don't use manually
            </summary>
        </member>
        <member name="M:KKAPI.KoikatuAPI.CheckRequiredPlugin(BepInEx.BaseUnityPlugin,System.String,System.Version,BepInEx.Logging.LogLevel)">
            <summary>
            Check if a plugin is loaded and has at least the minimum version. 
            If the plugin is missing or older than minimumVersion, user is shown an error message on screen and false is returned.
            Warning: Run only from Start, not from constructor or Awake because some plugins might not be loaded yet!
            </summary>
            <param name="origin">Your plugin</param>
            <param name="guid">Guid of the plugin your plugin is dependant on</param>
            <param name="minimumVersion">Minimum version of the required plugin</param>
            <param name="level">Level of the issue - <code>Error</code> if plugin can't work, <code>Warning</code> if there might be issues, or <code>None</code> to not show any message.</param>
            <returns>True if plugin exists and it's version equals or is newer than minimumVersion, otherwise false</returns>
        </member>
        <member name="M:KKAPI.KoikatuAPI.CheckIncompatiblePlugin(BepInEx.BaseUnityPlugin,System.String,BepInEx.Logging.LogLevel)">
            <summary>
            Check if a plugin that is not compatible with your plugin is loaded. 
            If the plugin is loaded, user is shown a warning message on screen and true is returned.
            Warning: Run only from Start, not from constructor or Awake because some plugins might not be loaded yet!
            </summary>
            <param name="origin">Your plugin</param>
            <param name="guid">Guid of the plugin your plugin is incompatible with</param>
            <param name="level">Level of the issue - <code>Error</code> if plugin can't work, <code>Warning</code> if there might be issues, or <code>None</code> to not show any message.</param>
            <returns>True if plugin exists, otherwise false</returns>
        </member>
        <member name="M:KKAPI.KoikatuAPI.SynchronizedInvoke(System.Action)">
            <summary>
            Invoke the Action on the main unity thread. Use to synchronize your threads.
            </summary>
        </member>
        <member name="T:KKAPI.GameMode">
            <summary>
            Current gameplay mode the game is in
            </summary>
        </member>
        <member name="F:KKAPI.GameMode.Unknown">
            <summary>
            Anywhere else, including main menu
            </summary>
        </member>
        <member name="F:KKAPI.GameMode.Maker">
            <summary>
            Inside character maker (can be started from main menu or from class roster)
            </summary>
        </member>
        <member name="F:KKAPI.GameMode.Studio">
            <summary>
            Anywhere inside CharaStudio.exe
            </summary>
        </member>
        <member name="F:KKAPI.GameMode.MainGame">
            <summary>
            Anywhere inside the main game.
            Includes everything after starting a new game from title screen and after loading a saved game.
            This means this includes story scenes, night menu, roaming around and h scenes inside story mode.
            This does not hoverwer include the character maker launched from within the class menu.
            </summary>
        </member>
        <member name="T:KKAPI.Utilities.CoroutineUtils">
            <summary>
            Utility methods for working with coroutines.
            </summary>
        </member>
        <member name="M:KKAPI.Utilities.CoroutineUtils.AppendCo(System.Collections.IEnumerator,System.Collections.IEnumerator)">
            <summary>
            Create a coroutine that calls the appendCoroutine after baseCoroutine finishes
            </summary>
        </member>
        <member name="M:KKAPI.Utilities.CoroutineUtils.AppendCo(System.Collections.IEnumerator,UnityEngine.YieldInstruction)">
            <summary>
            Create a coroutine that calls the yieldInstruction after baseCoroutine finishes.
            Useless on its own, append further coroutines to run after this.
            </summary>
        </member>
        <member name="M:KKAPI.Utilities.CoroutineUtils.AppendCo(System.Collections.IEnumerator,System.Action[])">
            <summary>
            Create a coroutine that calls each of the actions in order after base coroutine finishes.
            One action is called per frame. First action is called right after the coroutine finishes.
            </summary>
        </member>
        <member name="M:KKAPI.Utilities.CoroutineUtils.CreateCoroutine(System.Action[])">
            <summary>
            Create a coroutine that calls each of the action delegates on consecutive frames.
            One action is called per frame. First action is called right away. There is no frame skip after the last action.
            </summary>
        </member>
        <member name="M:KKAPI.Utilities.CoroutineUtils.ComposeCoroutine(System.Collections.IEnumerator[])">
            <summary>
            Create a coroutine that calls each of the supplied coroutines in order.
            </summary>
        </member>
        <member name="T:KKAPI.Utilities.HSceneUtils">
            <summary>
            Utility methods for working with H Scenes / main game.
            </summary>
        </member>
        <member name="T:KKAPI.Utilities.IMGUIUtils">
            <summary>
            Utility methods for working with IMGUI / OnGui.
            </summary>
        </member>
        <member name="M:KKAPI.Utilities.IMGUIUtils.DrawSolidBox(UnityEngine.Rect)">
            <summary>
            Draw a gray non-transparent GUI.Box at the specified rect. Use before a window or other controls to get rid of 
            the default transparency and make the GUI easier to read.
            </summary>
        </member>
        <member name="M:KKAPI.Utilities.IMGUIUtils.DrawLabelWithOutline(UnityEngine.Rect,System.String,UnityEngine.GUIStyle,UnityEngine.Color,UnityEngine.Color,System.Int32)">
            <summary>
            Draw a label with an outline
            </summary>
            <param name="rect">Size of the control</param>
            <param name="text">Text of the label</param>
            <param name="style">Style to be applied to the label</param>
            <param name="txtColor">Color of the text</param>
            <param name="outlineColor">Color of the outline</param>
            <param name="outlineThickness">Thickness of the outline in pixels</param>
        </member>
        <member name="M:KKAPI.Utilities.IMGUIUtils.DrawLabelWithShadow(UnityEngine.Rect,UnityEngine.GUIContent,UnityEngine.GUIStyle,UnityEngine.Color,UnityEngine.Color,UnityEngine.Vector2)">
            <summary>
            Draw a label with a shadow
            </summary>        
            <param name="rect">Size of the control</param>
            <param name="content">Contents of the label</param>
            <param name="style">Style to be applied to the label</param>
            <param name="txtColor">Color of the outline</param>
            <param name="shadowColor">Color of the text</param>
            <param name="shadowOffset">Offset of the shadow in pixels</param>
        </member>
        <member name="T:KKAPI.Utilities.ReadOnlyDictionary`2">
            <summary>
            Read-only dictionary wrapper. Will protect the base dictionary from being changed.
            Warning: Any reference types inside the dictionary can still be modified.
            </summary>
            <inheritdoc />
        </member>
        <member name="M:KKAPI.Utilities.ReadOnlyDictionary`2.#ctor(System.Collections.Generic.IDictionary{`0,`1})">
            <summary>
            Create a new wrapper around the specified dictionary
            </summary>
        </member>
        <member name="T:KKAPI.Utilities.ResourceUtils">
            <summary>
            Utility methods for working with embedded resources.
            </summary>
        </member>
        <member name="M:KKAPI.Utilities.ResourceUtils.ReadAllBytes(System.IO.Stream)">
            <summary>
            Read all bytes starting at current position and ending at the end of the stream.
            </summary>
        </member>
        <member name="M:KKAPI.Utilities.ResourceUtils.GetEmbeddedResource(System.String,System.Reflection.Assembly)">
            <summary>
            Get a file set as "Embedded Resource" from the assembly that is calling this code, or optionally from a specified assembly.
            The filename is matched to the end of the resource path, no need to give the full path.
            If 0 or more than 1 resources match the provided filename, an exception is thrown.
            For example if you have a file "ProjectRoot\Resources\icon.png" set as "Embedded Resource", you can use this to load it by
            doing <code>GetEmbeddedResource("icon.png"), assuming that no other embedded files have the same name.</code>
            </summary>
        </member>
        <member name="T:KKAPI.Utilities.TextureUtils">
            <summary>
            Utility methods for working with texture objects.
            </summary>
        </member>
        <member name="M:KKAPI.Utilities.TextureUtils.ToTexture2D(UnityEngine.Texture,UnityEngine.TextureFormat,System.Boolean)">
            <summary>
            Copy this texture inside a new editable Texture2D.
            </summary>
            <param name="tex">Texture to copy</param>
            <param name="format">Format of the copy</param>
            <param name="mipMaps">Copy has mipmaps</param>
        </member>
        <member name="M:KKAPI.Utilities.TextureUtils.LoadTexture(System.Byte[],UnityEngine.TextureFormat,System.Boolean)">
            <summary>
            Create texture from an image stored in a byte array, for example a png file read from disk.
            </summary>
        </member>
        <member name="M:KKAPI.Utilities.TextureUtils.ToSprite(UnityEngine.Texture2D)">
            <summary>
            Create a sprite based on this texture.
            </summary>
        </member>
        <member name="T:KKAPI.Utilities.TextUtils">
            <summary>
            Utility methods for working with text.
            </summary>
        </member>
        <member name="M:KKAPI.Utilities.TextUtils.PascalCaseToSentenceCase(System.String)">
            <summary>
            Convert PascalCase to Sentence case.
            </summary>
        </member>
        <member name="T:KKAPI.Utilities.OpenFileDialog">
            <summary>
            Gives access to the Windows open file dialog.
            http://www.pinvoke.net/default.aspx/comdlg32/GetOpenFileName.html
            http://www.pinvoke.net/default.aspx/Structures/OpenFileName.html
            http://www.pinvoke.net/default.aspx/Enums/OpenSaveFileDialgueFlags.html
            https://social.msdn.microsoft.com/Forums/en-US/2f4dd95e-5c7b-4f48-adfc-44956b350f38/getopenfilename-for-multiple-files?forum=csharpgeneral
            </summary>
        </member>
        <member name="F:KKAPI.Utilities.OpenFileDialog.SingleFileFlags">
            <summary>
            Arguments used for opening a single file
            </summary>
        </member>
        <member name="F:KKAPI.Utilities.OpenFileDialog.MultiFileFlags">
            <summary>
            Arguments used for opening multiple files
            </summary>
        </member>
        <member name="M:KKAPI.Utilities.OpenFileDialog.ShowDialog(System.String,System.String,System.String,System.String,KKAPI.Utilities.OpenFileDialog.OpenSaveFileDialgueFlags,System.IntPtr)">
            <summary>
            Show windows file open dialog. Blocks the thread until user closes the dialog. Returns list of selected files, or null if user cancelled the action.
            </summary>
            <param name="title">
            A string to be placed in the title bar of the dialog box. If this member is NULL, the system uses
            the default title (that is, Save As or Open)
            </param>
            <param name="initialDir">
            The initial directory. The algorithm for selecting the initial directory varies on different
            platforms.
            </param>
            <param name="filter">
            A list of filter pairs separated by |. First item is the display name, while the second is
            the actual filter (e.g. *.txt) Example: <code>"Log files (.log)|*.log|All files|*.*"</code>
            </param>
            <param name="defaultExt">
            The default extension. This extension is appended to the file name if the user fails to type
            an extension.
            </param>
            <param name="flags">
            A set of bit flags you can use to initialize the dialog box. When the dialog box returns, it sets these flags to
            indicate the user's input.
            This member can be a combination of the CommomDialgueFlags.
            </param>
            <param name="owner">Hwnd pointer of the owner window. IntPtr.Zero to use default parent</param>
        </member>
        <member name="M:KKAPI.Utilities.OpenFileDialog.Show(System.Action{System.String[]},System.String,System.String,System.String,System.String,KKAPI.Utilities.OpenFileDialog.OpenSaveFileDialgueFlags)">
            <summary>
            Show windows file open dialog. Doesn't pause the game.
            </summary>
            <param name="onAccept">Action that gets called with results of user's selection. Returns list of selected files, or null if user cancelled the action.
            WARNING: This runs on another thread! Game will crash if you attempt to access unity methods.
            You can use <code>KoikatuAPI.SynchronizedInvoke</code> to go back to the main thread.</param>
            <param name="title">
            A string to be placed in the title bar of the dialog box. If this member is NULL, the system uses
            the default title (that is, Save As or Open)
            </param>
            <param name="initialDir">
            The initial directory. The algorithm for selecting the initial directory varies on different
            platforms.
            </param>
            <param name="filter">
            A list of filter pairs separated by |. First item is the display name, while the second is
            the actual filter (e.g. *.txt) Example: <code>"Log files (.log)|*.log|All files|*.*"</code>
            </param>
            <param name="defaultExt">
            The default extension. This extension is appended to the file name if the user fails to type
            an extension.
            </param>
            <param name="flags">
            A set of bit flags you can use to initialize the dialog box. When the dialog box returns, it sets these flags to
            indicate the user's input.
            This member can be a combination of the CommomDialgueFlags.
            </param>
        </member>
        <member name="F:KKAPI.Utilities.OpenFileDialog.OpenSaveFileDialgueFlags.OFN_NOLONGNAMES">
            <summary>
            Force no long names for 4.x modules
            </summary>
        </member>
        <member name="F:KKAPI.Utilities.OpenFileDialog.OpenSaveFileDialgueFlags.OFN_EXPLORER">
            <summary>
            New look commdlg
            </summary>
        </member>
        <member name="F:KKAPI.Utilities.OpenFileDialog.OpenSaveFileDialgueFlags.OFN_LONGNAMES">
            <summary>
            Force long names for 3.x modules
            </summary>
        </member>
        <member name="T:KKAPI.Utilities.RecycleBinUtil">
            <summary>
            Allows to move files to recycle bin instead of completely removing them.
            https://stackoverflow.com/questions/3282418/send-a-file-to-the-recycle-bin?answertab=votes#tab-top
            </summary>
        </member>
        <member name="M:KKAPI.Utilities.RecycleBinUtil.MoveToRecycleBin(System.String,KKAPI.Utilities.RecycleBinUtil.FileOperationFlags)">
            <summary>
            Send file to recycle bin
            </summary>
            <param name="path">Location of directory or file to recycle</param>
            <param name="flags">FileOperationFlags to add in addition to FOF_ALLOWUNDO</param>
        </member>
        <member name="M:KKAPI.Utilities.RecycleBinUtil.MoveToRecycleBin(System.String)">
            <summary>
            Send file silently to recycle bin.  Surpress dialog, surpress errors, delete if too large.
            </summary>
            <param name="path">Location of directory or file to recycle</param>
        </member>
        <member name="T:KKAPI.Utilities.RecycleBinUtil.FileOperationFlags">
            <summary>
            Possible flags for the SHFileOperation method.
            </summary>
        </member>
        <member name="F:KKAPI.Utilities.RecycleBinUtil.FileOperationFlags.FOF_SILENT">
            <summary>
            Do not show a dialog during the process
            </summary>
        </member>
        <member name="F:KKAPI.Utilities.RecycleBinUtil.FileOperationFlags.FOF_NOCONFIRMATION">
            <summary>
            Do not ask the user to confirm selection
            </summary>
        </member>
        <member name="F:KKAPI.Utilities.RecycleBinUtil.FileOperationFlags.FOF_ALLOWUNDO">
            <summary>
            Delete the file to the recycle bin.  (Required flag to send a file to the bin
            </summary>
        </member>
        <member name="F:KKAPI.Utilities.RecycleBinUtil.FileOperationFlags.FOF_SIMPLEPROGRESS">
            <summary>
            Do not show the names of the files or folders that are being recycled.
            </summary>
        </member>
        <member name="F:KKAPI.Utilities.RecycleBinUtil.FileOperationFlags.FOF_NOERRORUI">
            <summary>
            Surpress errors, if any occur during the process.
            </summary>
        </member>
        <member name="F:KKAPI.Utilities.RecycleBinUtil.FileOperationFlags.FOF_WANTNUKEWARNING">
            <summary>
            Warn if files are too big to fit in the recycle bin and will need
            to be deleted completely.
            </summary>
        </member>
        <member name="T:KKAPI.Utilities.RecycleBinUtil.FileOperationType">
            <summary>
            File Operation Function Type for SHFileOperation
            </summary>
        </member>
        <member name="F:KKAPI.Utilities.RecycleBinUtil.FileOperationType.FO_MOVE">
            <summary>
            Move the objects
            </summary>
        </member>
        <member name="F:KKAPI.Utilities.RecycleBinUtil.FileOperationType.FO_COPY">
            <summary>
            Copy the objects
            </summary>
        </member>
        <member name="F:KKAPI.Utilities.RecycleBinUtil.FileOperationType.FO_DELETE">
            <summary>
            Delete (or recycle) the objects
            </summary>
        </member>
        <member name="F:KKAPI.Utilities.RecycleBinUtil.FileOperationType.FO_RENAME">
            <summary>
            Rename the object(s)
            </summary>
        </member>
        <member name="T:KKAPI.Utilities.RecycleBinUtil.SHFILEOPSTRUCT">
            <summary>
            SHFILEOPSTRUCT for SHFileOperation from COM
            </summary>
        </member>
        <member name="T:KKAPI.Utilities.Extensions">
            <summary>
            General utility extensions that don't fit in other categories.
            </summary>
        </member>
        <member name="M:KKAPI.Utilities.Extensions.ToReadOnlyDictionary``2(System.Collections.Generic.IDictionary{``0,``1})">
            <summary>
            Wrap this dictionary in a read-only wrapper that will prevent any changes to it. 
            Warning: Any reference types inside the dictionary can still be modified.
            </summary>
        </member>
        <member name="M:KKAPI.Utilities.Extensions.MarkXuaIgnored(UnityEngine.Component)">
            <summary>
            Mark GameObject of this Component as ignored by AutoTranslator. Prevents AutoTranslator from trying to translate custom UI elements.
            </summary>
        </member>
        <member name="M:KKAPI.Utilities.Extensions.ActuallyRemoveAllListeners(UnityEngine.Events.UnityEventBase)">
            <summary>
            Same as RemoveAllListeners but also disables all PersistentListeners.
            To avoid frustration always use this instead of RemoveAllListeners, unless you want to keep the PersistentListeners.
            </summary>
        </member>
        <member name="T:KKAPI.Utilities.WindowsStringComparer">
            <summary>
            String comparer that is equivalent to the one used by Windows Explorer to sort files (e.g. 2 will go before 10, unlike normal compare).
            </summary>
            <inheritdoc />
        </member>
        <member name="M:KKAPI.Utilities.WindowsStringComparer.Compare(System.String,System.String)">
            <summary>
            Compare two strings with rules used by Windows Explorer to logically sort files.
            </summary>
        </member>
        <member name="M:KKAPI.Utilities.WindowsStringComparer.LogicalCompare(System.String,System.String)">
            <summary>
            Compare two strings with rules used by Windows Explorer to logically sort files.
            </summary>
        </member>
    </members>
</doc>
