#pragma once

#include "CoreMinimal.h"
#include "HyperTwistClassicCubeTypes.generated.h"

UENUM(BlueprintType)
enum class EHyperTwistClassicCubeFace : uint8
{
	Up     UMETA(DisplayName = "Up"),
	Down   UMETA(DisplayName = "Down"),
	Front  UMETA(DisplayName = "Front"),
	Back   UMETA(DisplayName = "Back"),
	Left   UMETA(DisplayName = "Left"),
	Right  UMETA(DisplayName = "Right")
};

UENUM(BlueprintType)
enum class EHyperTwistRotationDirection : uint8
{
	Clockwise        UMETA(DisplayName = "Clockwise"),
	CounterClockwise UMETA(DisplayName = "Counter-Clockwise")
};

USTRUCT(BlueprintType)
struct FHyperTwistClassicCubePieceData
{
	GENERATED_BODY()

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist|Cube")
	FVector GridPosition;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist|Cube")
	TArray<EHyperTwistClassicCubeFace> ColoredFaces;
};
