// Copyright Pacificao. All Rights Reserved.

#pragma once

#include "CoreMinimal.h"
#include "UObject/Interface.h"
#include "AgrarianPersistentStateProvider.generated.h"

class UAgrarianPersistentActorComponent;

UINTERFACE(BlueprintType)
class UAgrarianPersistentStateProvider : public UInterface
{
	GENERATED_BODY()
};

class IAgrarianPersistentStateProvider
{
	GENERATED_BODY()

public:
	UFUNCTION(BlueprintNativeEvent, Category = "Agrarian|Persistence")
	void CapturePersistentState(UAgrarianPersistentActorComponent* PersistentComponent) const;

	UFUNCTION(BlueprintNativeEvent, Category = "Agrarian|Persistence")
	void ApplyPersistentState(UAgrarianPersistentActorComponent* PersistentComponent);
};
