So im working on a spaceship game and I have a list of CrewPositions (pilot, gunner, systems operator, mechanic, ect) and a list of crew members. Both are custom UStructs with unique data. One variable in CrewPositions is AssignedCrewMember, I would like to have that be a dropdown in blueprints of only the CrewMembers variables which is a TArray that can add or subtract from.
UENUM(BlueprintType)
enum class ECrewPosition : uint8
{
Pilot UMETA(DisplayName = "Pilot"),
CoPilot UMETA(DisplayName = "Co-Pilot"),
Gunner UMETA(DisplayName = "Gunner"),
Commander UMETA(DisplayName = "Commander"),
SystemsOperator UMETA(DisplayName = "Systems Operator"),
Engineer UMETA(DisplayName = "Engineer"),
Passenger UMETA(DisplayName = "Passenger")
};
USTRUCT()
struct FCrewMember
{
GENERATED_BODY()
UPROPERTY(BlueprintReadWrite, EditAnywhere)
FString CrewName;
UPROPERTY(BlueprintReadWrite, EditAnywhere)
int32 CrewLevel;
UPROPERTY(BlueprintReadWrite, EditAnywhere)
int32 CrewBaseAttackBonus;
UPROPERTY(BlueprintReadWrite, EditAnywhere)
int32 CrewSkillInitiative;
UPROPERTY(BlueprintReadWrite, EditAnywhere)
int32 CrewSkillMechanics;
UPROPERTY(BlueprintReadWrite, EditAnywhere)
int32 CrewSkillPerception;
UPROPERTY(BlueprintReadWrite, EditAnywhere)
int32 CrewSkillPilot;
};
USTRUCT()
struct FCrewPosition
{
GENERATED_BODY()
UPROPERTY(BlueprintReadWrite, EditAnywhere)
FString PositionName;
UPROPERTY(BlueprintReadWrite, EditAnywhere)
TArray<ECrewPosition> Positions;
UPROPERTY(BlueprintReadWrite, EditAnywhere)
TArray<int32> ControlledWeaponSlots;
//Here I want to be able to select from the Crew variables that are created in AStarship
UPROPERTY(BlueprintReadWrite, EditAnywhere)
FCrewMember AssignedCrewMember;
};
UCLASS()
class POCKETSTARSHIP_API AStarship : public AActor
{
GENERATED_BODY()
public:
//A bunch of completely unrelated variables go here but took out for readability
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "General")
TArray<FCrewMember> Crew;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "General")
TArray<FCrewPosition> CrewPositions;
//A bunch of functions go here but are unrelated so took out for readability
};