#include "bootstrap.hpp" // Interfaces #include "interfaces/argument_parser.hpp" #include "interfaces/bounds.hpp" #include "interfaces/game.hpp" #include "interfaces/input.hpp" #include "interfaces/matrix.hpp" #include "interfaces/randomization.hpp" #include "interfaces/scene.hpp" #include "interfaces/vector2.hpp" // Implementations #include "argument_parser.hpp" #include "engine/graphics/bounds.hpp" #include "engine/graphics/scene.hpp" #include "engine/graphics/string_matrix.hpp" #include "engine/graphics/vector2.hpp" #include "engine/user/cursor.hpp" #include "engine/user/input.hpp" #include "game/game.hpp" #include "randomization/generator.hpp" #include "randomization/seed_generator.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_factory( [](const unsigned int &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 IVector2Options &options) { return std::dynamic_pointer_cast( std::make_shared(options)); }); container.bind>().to_factory( [](const IBounds &bounds) { return std::dynamic_pointer_cast>( std::make_shared(bounds)); }); container.bind().to_factory( [](const IBoundsOptions &options) { return std::dynamic_pointer_cast(std::make_shared(options)); }); return container; }