5#include "CoreMinimal.h"
6#include "GameFramework/Pawn.h"
8#include "GameFramework/DefaultPawn.h"
9#include "EditorController.generated.h"
12enum class EToolMode : uint8
14 Translation UMETA(DisplayName =
"Translation"),
15 Rotation UMETA(DisplayName =
"Rotation"),
30 virtual void BeginPlay()
override;
31 virtual void SetupPlayerInputComponent(
class UInputComponent* PlayerInputComponent)
override;
33 UPROPERTY(VisibleAnywhere)
34 USceneComponent* RootSceneComponent;
36 UPROPERTY(VisibleAnywhere)
37 USceneComponent* GizmoComponent;
39 UPROPERTY(VisibleAnywhere)
40 APlayerController* PC;
42 UPROPERTY(VisibleAnywhere)
43 class UFloatingPawnMovement* PawnMovement;
45 UPROPERTY(VisibleAnywhere)
46 class UCameraComponent* Camera;
48 UPROPERTY(VisibleAnywhere)
49 UStaticMeshComponent* ArrowX;
51 UPROPERTY(VisibleAnywhere)
52 UStaticMeshComponent* ArrowY;
54 UPROPERTY(VisibleAnywhere)
55 UStaticMeshComponent* ArrowZ;
57 UPROPERTY(VisibleAnywhere)
58 UStaticMeshComponent* PlaneXY;
60 UPROPERTY(VisibleAnywhere)
61 UStaticMeshComponent* DiscZ;
65 virtual
void Tick(
float DeltaTime) override;
67 UPROPERTY(EditAnywhere, BlueprintReadWrite)
68 float MaxMoveSpeed = 5000.0f;
70 UPROPERTY(EditAnywhere, BlueprintReadWrite)
71 float Acceleration = 6000.0f;
73 UPROPERTY(EditAnywhere, BlueprintReadWrite)
74 float Deceleration = 10000.0f;
76 UPROPERTY(EditAnywhere, BlueprintReadWrite)
77 float LookSensistivity = 1.0f;
79 UPROPERTY(VisibleAnywhere)
80 EToolMode ToolMode = EToolMode::Translation;
82 template<const EToolMode NewToolMode>
85 void DeleteSelectedObject();
89 void OnMouseLeftPressed();
90 void OnMouseLeftReleased();
91 void OnMouseRightPressed();
92 void OnMouseRightReleased();
93 void SaveMouseLocation();
95 void MoveForward(
float AxisValue);
96 void MoveStrafe(
float AxisValue);
97 void MoveVertical(
float AxisValue);
98 void ChangeMoveSpeed(
float AxisValue);
99 void MovePitch(
float AxisValue);
100 void MoveYaw(
float AxisValue);
103 UMaterial* GizmoGreen;
104 UMaterial* GizmoBlue;
105 UMaterial* GizmoYellow;
107 ETraceTypeQuery GizmoTraceTypeQuery;
108 ETraceTypeQuery ObjectTraceTypeQuery;
110 UPROPERTY(VisibleAnywhere)
111 float MoveSpeed = 1800.0f;
115 FVector2D EditorRotation;
117 EAxisList::Type SelectedAxis = EAxisList::None;
119 AActor* SelectedObject;
120 UPrimitiveComponent* HoveringGizmo;
121 FTransform SelectedTransform;
123 UPrimitiveComponent* PreviousHoveringGizmo;
129 void UpdateGizmoVisibilityAndCollision();
130 void SetMeshEnabled(const std::initializer_list<UStaticMeshComponent*> Meshes,
bool Enabled);
131 void SetObjectHighlight(AActor* Object,
bool Value);
132 void SetSelectedObject(AActor* Object);
133 void SetGizmoDefaultMaterials();
134 USplineComponent* GetNearestRailwaySplineComponent();
136 FVector OffsetOnClick;
138 FVector MouseLocationOnClick;
140 float ObjectRotationOnClick;
A component for placing static meshes along a spline.
Definition: EditorController.h:21
Definition: SplineActor.h:22