using Penumbra.Api.Enums;
namespace Penumbra.Api;
/// Used when a game object is redrawn by Penumbra.
/// The to the redrawn object and its .
public delegate void GameObjectRedrawnDelegate(nint objectPtr, int objectTableIndex);
///
/// Used when the setting of a mod is changed in any way.
///
/// The of change,
/// the in which the setting is changed,
/// the name of the mod,
/// and whether the change was or not.
public delegate void ModSettingChangedDelegate(ModSettingChange type, Guid collectionId, string modDirectory, bool inherited);
///
/// Used before a new character base draw object is created from a .
///
/// A pointer to the source ,
/// the used for the object,
/// a pointer to the used (of type ushort*),
/// a pointer to the array,
/// and a pointer to the array.
public delegate void CreatingCharacterBaseDelegate(nint gameObject, Guid collectionId, nint modelId, nint customize, nint equipData);
///
/// Used after a character base has been created from a .
///
/// A pointer to the source ,
/// the used for the object,
/// a pointer to newly created .
public delegate void CreatedCharacterBaseDelegate(nint gameObject, Guid collectionId, nint drawObject);
///
/// Used when a specific game object has resolved a path to a non-default path.
///
/// A pointer to the source ,
/// the original that was resolved by Penumbra,
/// the resulting returned by Penumbra.
public delegate void GameObjectResourceResolvedDelegate(nint gameObject, string gamePath, string localPath);