75 lines
2.3 KiB
C++
75 lines
2.3 KiB
C++
#pragma once
|
|
|
|
#include "Components.hpp"
|
|
#include "Entity.hpp"
|
|
#include <memory>
|
|
|
|
std::shared_ptr<Entity> CreateProbe() {
|
|
auto e = std::make_shared<Entity>();
|
|
e->template AddComponent<TransformComponent>();
|
|
e->template AddComponent<PhysicsComponent>();
|
|
e->template AddComponent<GravityReceiverComponent>();
|
|
e->template AddComponent<ColliderComponent>();
|
|
e->template AddComponent<TrailComponent>();
|
|
e->template AddComponent<ProjectionComponent>();
|
|
e->template AddComponent<RenderComponent>();
|
|
return e;
|
|
}
|
|
|
|
std::shared_ptr<Entity> CreateGravityWell() {
|
|
auto e = std::make_shared<Entity>();
|
|
e->template AddComponent<TransformComponent>();
|
|
e->template AddComponent<GravityWellComponent>();
|
|
e->template AddComponent<RenderComponent>();
|
|
return e;
|
|
}
|
|
|
|
std::shared_ptr<Entity> CreateStar(float x, float y) {
|
|
auto e = std::make_shared<Entity>();
|
|
auto &t = e->template AddComponent<TransformComponent>();
|
|
t.x = x;
|
|
t.y = y;
|
|
e->template AddComponent<ScrollableComponent>();
|
|
e->template AddComponent<ColliderComponent>();
|
|
e->template AddComponent<CollectibleComponent>();
|
|
e->template AddComponent<RenderComponent>();
|
|
return e;
|
|
}
|
|
|
|
std::shared_ptr<Entity> CreateAsteroid(float x, float y) {
|
|
auto e = std::make_shared<Entity>();
|
|
auto &t = e->template AddComponent<TransformComponent>();
|
|
t.x = x;
|
|
t.y = y;
|
|
e->template AddComponent<ScrollableComponent>();
|
|
e->template AddComponent<ColliderComponent>();
|
|
e->template AddComponent<RenderComponent>();
|
|
return e;
|
|
}
|
|
|
|
std::shared_ptr<Entity> CreateNullZone(float x, float width) {
|
|
auto e = std::make_shared<Entity>();
|
|
auto &t = e->template AddComponent<TransformComponent>();
|
|
t.x = x;
|
|
(void)width;
|
|
e->template AddComponent<ScrollableComponent>();
|
|
e->template AddComponent<NullZoneComponent>();
|
|
e->template AddComponent<RenderComponent>();
|
|
return e;
|
|
}
|
|
|
|
std::shared_ptr<Entity> CreateWorld() {
|
|
auto e = std::make_shared<Entity>();
|
|
e->template AddComponent<ScrollComponent>();
|
|
e->template AddComponent<SpawnComponent>();
|
|
return e;
|
|
}
|
|
|
|
std::shared_ptr<Entity> CreateHUD() {
|
|
auto e = std::make_shared<Entity>();
|
|
e->template AddComponent<MeterComponent>();
|
|
e->template AddComponent<HudComponent>();
|
|
e->template AddComponent<RenderComponent>();
|
|
return e;
|
|
}
|