You've already forked LuckyWorld
+ Optionally allow remote control of the robot + Direct set of actuators, this should pass by the layer controler for proper interpolation
46 lines
1.3 KiB
C++
46 lines
1.3 KiB
C++
#pragma once
|
|
#include "CoreMinimal.h"
|
|
#include "SharedDef.h"
|
|
#include "RobotPawn.generated.h"
|
|
|
|
class ALuckySensorPawnBase;
|
|
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
|
|
UFUNCTION(BlueprintCallable)
|
|
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<AMujocoVolumeActor> PhysicsSceneProxy;
|
|
|
|
UPROPERTY(EditAnywhere, BlueprintReadWrite) // TODO Remove UPROPERTY once we migrate physics proxy initialization from Pawn
|
|
TObjectPtr<AActor> 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?
|
|
|
|
void EnableRemoteControl();
|
|
};
|