#pragma once

#include "CoreMinimal.h"
#include "Animation/AnimInstance.h"
#include "DynamicAccessoryAnimInstance.generated.h"

class USkeletalMeshComponent;
class ADBDPlayer;

UCLASS(Blueprintable, NonTransient)
class DBDANIMATION_API UDynamicAccessoryAnimInstance : public UAnimInstance
{
	GENERATED_BODY()

protected:
	UPROPERTY(BlueprintReadWrite, Transient)
	bool _isInMenu;

	UPROPERTY(BlueprintReadWrite, Transient)
	bool _isInGame;

	UPROPERTY(BlueprintReadWrite, Transient)
	bool _isInSnapshotTool;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	bool _isPoseableHusk;

	UPROPERTY(Transient, Export)
	TWeakObjectPtr<USkeletalMeshComponent> _masterMesh;

	UPROPERTY(Transient)
	TWeakObjectPtr<ADBDPlayer> _owningPlayer;

	UPROPERTY(BlueprintReadWrite, Transient)
	bool _isInParadise;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	bool _isInMori;

public:
	UDynamicAccessoryAnimInstance();
};

FORCEINLINE uint32 GetTypeHash(const UDynamicAccessoryAnimInstance) { return 0; }
