#pragma once #include "CoreMinimal.h" #include "SharedDef.h" #include "RobotPawn.generated.h" class AMujocoVolumeActor; class URobotPilotComponent; // Enum of bots UCLASS(Blueprintable) class LUCKYWORLDV2_API ARobotPawn : public APawn // Should be an actor? { GENERATED_BODY() public: ARobotPawn(); virtual void BeginPlay() override; // TODO Called by GameInstance after robot has been spawned void InitRobot(); UPROPERTY(EditAnywhere, BlueprintReadWrite) ERobotsName RobotType = ERobotsName::None; // This value must be set in the pawn UPROPERTY(EditAnywhere, BlueprintReadWrite) // TODO Remove UPROPERTY once we migrate physics proxy initialization from Pawn TObjectPtr PhysicSceneProxy; UPROPERTY(EditAnywhere, BlueprintReadWrite) // TODO Remove UPROPERTY once we migrate physics proxy initialization from Pawn TObjectPtr RobotActor; // My brain is bleeding facing the fact that we have 2 actors... // ------------------- // ------ PILOT ------ // ------------------- UPROPERTY(EditAnywhere, BlueprintReadWrite) URobotPilotComponent* RobotPilotComponent = nullptr; UFUNCTION(BlueprintCallable) void InitPilotComponent(); // This should have Robot type as parameter? };