#pragma once #include #include #include "engine/CoreMath.h" #include "engine/registry/RegisterContent.h" #include "engine/Actor.h" #include "engine/World.h" extern "C" { #include "common_structs.h" #include "assets/textures/other_textures.h" } class AStarship : public AActor { public: explicit AStarship(const SpawnParams& params); virtual ~AStarship() = default; // This is simply a helper function to keep Spawning code clean static AStarship* Spawn(FVector pos, IRotator rot, FVector scale, f32 speed, f32 radius) { SpawnParams params = { .Name = "hm:starship", .Location = pos, .Rotation = rot, .Scale = scale, .Speed = speed, .SpeedB = radius, }; return dynamic_cast(AddActorToWorld(params)); } float SpeedB; virtual void SetSpawnParams(SpawnParams& params) override; virtual void Tick() override; virtual bool IsMod() override; virtual void BeginPlay() override; virtual void DrawEditorProperties() override; };