#include "bootstrap.hpp" // Interfaces #include "interfaces/argument_parser.hpp" #include "interfaces/game.hpp" #include "interfaces/game_initializer.hpp" #include "interfaces/input.hpp" #include "interfaces/input_configurator.hpp" #include "interfaces/matrix.hpp" #include "interfaces/randomization.hpp" #include "interfaces/scene.hpp" // Implementations #include "argument_parser.hpp" #include "engine/data/bounds.hpp" #include "engine/data/vector2.hpp" #include "engine/game_initializer.hpp" #include "engine/graphics/scene.hpp" #include "engine/graphics/string_matrix.hpp" #include "engine/user/cursor.hpp" #include "engine/user/input.hpp" #include "game/game.hpp" #include "game/input_configurator.hpp" #include "randomization/generator.hpp" #include "randomization/seed_generator.hpp" #include "util/function.hpp" #include #include #include Container bootstrap() { auto container = Container(); container.bind().to(); container.bind().to(); container.bind().to(); container.bind().to(); container.bind().to(); container.bind().to(); container.bind().to(); container.bind().to_factory(normalize_lambda( [&container]() { return container.get(); })); container.bind().to_factory( [](const uint32_t &seed) { return std::dynamic_pointer_cast( std::make_shared(seed)); }); container.bind().to_factory( []() { return std::dynamic_pointer_cast( std::make_shared(std::make_unique())); }); container.bind>().to_factory( [](const Bounds &bounds) { return std::dynamic_pointer_cast>( std::make_shared(bounds)); }); return container; }