#pragma once #include "CoreMinimal.h" #include "Robot/PilotComponent/RobotPilotComponent.h" #include "RobotPilotSO100Component.generated.h" USTRUCT(BlueprintType) struct FSo100Actuators : public FRobotActuators { GENERATED_BODY() UPROPERTY(EditAnywhere, BlueprintReadWrite) float Rotation = 0.f; UPROPERTY(EditAnywhere, BlueprintReadWrite) float Pitch = 0.f; UPROPERTY(EditAnywhere, BlueprintReadWrite) float Elbow = 0.f; UPROPERTY(EditAnywhere, BlueprintReadWrite) float WristPitch = 0.f; UPROPERTY(EditAnywhere, BlueprintReadWrite) float WristRoll = 0.f; UPROPERTY(EditAnywhere, BlueprintReadWrite) float Jaw = 0.f; }; UCLASS(Blueprintable) class LUCKYWORLDV2_API URobotPilotSO100Component : public URobotPilotComponent { GENERATED_BODY() public: URobotPilotSO100Component(); virtual void BeginPlay() override; virtual void TickComponent(float DeltaTime, enum ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction) override; UFUNCTION(BlueprintCallable) virtual void StartAnimation(const FRobotActuators& NewAnimationTarget) override; // Here let's write the code trying to match with Constantin class // After both classes have been designed around specific needs, see what can be migrated in the parent class and update both children // Tick where it can have targets // Open Claw (ClawIndex) // Presets to move certain joints into certain positions -> HardCode // Move the arm myself JB + Capture LOG };