GameObjectFactory.ixx File
Factory for creating and cloning GameObjects with fluent configuration. More...
Included Headers
#include <memory>
#include <functional>
#include <helios.math>
#include <helios.util.Guid>
#include <helios.engine.mechanics>
#include <helios.engine.core.units>
#include <helios.engine.modules>
#include <helios.engine.runtime.world.GameWorld>
#include <helios.engine.builder.gameObject.builders>
#include <helios.engine.ecs.GameObject>
Namespaces Index
| namespace | helios |
| namespace | engine |
|
Main engine module aggregating core infrastructure and game systems. More... | |
| namespace | builder |
|
Fluent builder pattern for constructing GameObjects. More... | |
| namespace | gameObject |
|
Factory and prototype classes for GameObject construction. More... | |
Classes Index
| class | GameObjectFactory |
|
Factory class for creating and cloning GameObjects. More... | |
| class | GameObjectPrototype |
|
Internal builder class for fluent GameObject configuration. More... | |
Description
Factory for creating and cloning GameObjects with fluent configuration.
File Listing
The file content with the documentation metadata removed is:
24export namespace helios::engine::builder::gameObject {
41 class GameObjectFactory {
54 helios::engine::ecs::GameObject gameObject_;
64 std::unique_ptr<helios::engine::builder::gameObject::builders::RenderingBuilder> renderingBuilder_;
74 std::unique_ptr<helios::engine::builder::gameObject::builders::CollisionBuilder> collisionBuilder_;
79 std::unique_ptr<helios::engine::builder::gameObject::builders::TransformBuilder> transformBuilder_;
84 std::unique_ptr<helios::engine::builder::gameObject::builders::UiTransformBuilder> uiTransformBuilder_;
109 std::unique_ptr<helios::engine::builder::gameObject::builders::LifecycleBuilder> lifecycleBuilder_;
124 std::unique_ptr<helios::engine::builder::gameObject::builders::ObserverBuilder> observerBuilder_;
128 using MotionBuilderCallback = std::function<void(helios::engine::builder::gameObject::builders::MotionBuilder&)>;
131 using RenderingBuilderCallback = std::function<void(helios::engine::builder::gameObject::builders::RenderingBuilder&)>;
134 using SceneBuilderCallback = std::function<void(helios::engine::builder::gameObject::builders::SceneBuilder&)>;
137 using TransformBuilderCallback = std::function<void(helios::engine::builder::gameObject::builders::TransformBuilder&)>;
140 using UiTransformBuilderCallback = std::function<void(helios::engine::builder::gameObject::builders::UiTransformBuilder&)>;
143 using CollisionBuilderCallback = std::function<void(helios::engine::builder::gameObject::builders::CollisionBuilder&)>;
146 using EffectsBuilderCallback = std::function<void(helios::engine::builder::gameObject::builders::EffectsBuilder&)>;
149 using SpawnBuilderCallback = std::function<void(helios::engine::builder::gameObject::builders::SpawnBuilder&)>;
152 using AiBuilderCallback = std::function<void(helios::engine::builder::gameObject::builders::AiBuilder&)>;
155 using CombatBuilderCallback = std::function<void(helios::engine::builder::gameObject::builders::CombatBuilder&)>;
158 using LifecycleBuilderCallback = std::function<void(helios::engine::builder::gameObject::builders::LifecycleBuilder&)>;
161 using HealthBuilderCallback = std::function<void(helios::engine::builder::gameObject::builders::HealthBuilder&)>;
164 using ScoringBuilderCallback = std::function<void(helios::engine::builder::gameObject::builders::ScoringBuilder&)>;
167 using ObserverBuilderCallback = std::function<void(helios::engine::builder::gameObject::builders::ObserverBuilder&)>;
173 GameObjectPrototype(helios::engine::runtime::world::GameWorld& gameWorld) :
174 gameObject_(gameWorld.addGameObject()),
175 motionBuilder_(std::make_unique<helios::engine::builder::gameObject::builders::MotionBuilder>(gameObject_)),
176 renderingBuilder_(std::make_unique<helios::engine::builder::gameObject::builders::RenderingBuilder>(gameObject_)),
177 sceneBuilder_(std::make_unique<helios::engine::builder::gameObject::builders::SceneBuilder>(gameObject_)),
178 collisionBuilder_(std::make_unique<helios::engine::builder::gameObject::builders::CollisionBuilder>(gameObject_)),
179 transformBuilder_(std::make_unique<helios::engine::builder::gameObject::builders::TransformBuilder>(gameObject_)),
180 uiTransformBuilder_(std::make_unique<helios::engine::builder::gameObject::builders::UiTransformBuilder>(gameObject_)),
181 effectsBuilder_(std::make_unique<helios::engine::builder::gameObject::builders::EffectsBuilder>(gameObject_)),
182 spawnBuilder_(std::make_unique<helios::engine::builder::gameObject::builders::SpawnBuilder>(gameObject_)),
183 aiBuilder_(std::make_unique<helios::engine::builder::gameObject::builders::AiBuilder>(gameObject_)),
184 CombatBuilder_(std::make_unique<helios::engine::builder::gameObject::builders::CombatBuilder>(gameObject_)),
185 lifecycleBuilder_(std::make_unique<helios::engine::builder::gameObject::builders::LifecycleBuilder>(gameObject_)),
186 healthBuilder_(std::make_unique<helios::engine::builder::gameObject::builders::HealthBuilder>(gameObject_)),
187 scoringBuilder_(std::make_unique<helios::engine::builder::gameObject::builders::ScoringBuilder>(gameObject_)),
188 observerBuilder_(std::make_unique<helios::engine::builder::gameObject::builders::ObserverBuilder>(gameObject_))
208 helios::engine::ecs::GameObject make(const bool active = false) {
209 gameObject_.setActive(active);
380 static GameObjectFactory& instance() {
381 static GameObjectFactory inst{};
392 static GameObjectPrototype gameObject(helios::engine::runtime::world::GameWorld& gameWorld) {
Generated via doxygen2docusaurus 2.0.0 by Doxygen 1.15.0.