renderer_bootstrap.cpp 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. #include "renderer_bootstrap.h"
  2. #include "game/core/world.h"
  3. #include "game/systems/ai_system.h"
  4. #include "game/systems/arrow_system.h"
  5. #include "game/systems/ballista_attack_system.h"
  6. #include "game/systems/capture_system.h"
  7. #include "game/systems/catapult_attack_system.h"
  8. #include "game/systems/cleanup_system.h"
  9. #include "game/systems/combat_system.h"
  10. #include "game/systems/healing_beam_system.h"
  11. #include "game/systems/healing_system.h"
  12. #include "game/systems/movement_system.h"
  13. #include "game/systems/patrol_system.h"
  14. #include "game/systems/production_system.h"
  15. #include "game/systems/projectile_system.h"
  16. #include "game/systems/selection_system.h"
  17. #include "game/systems/terrain_alignment_system.h"
  18. #include "render/gl/camera.h"
  19. #include "render/ground/biome_renderer.h"
  20. #include "render/ground/bridge_renderer.h"
  21. #include "render/ground/firecamp_renderer.h"
  22. #include "render/ground/fog_renderer.h"
  23. #include "render/ground/ground_renderer.h"
  24. #include "render/ground/olive_renderer.h"
  25. #include "render/ground/pine_renderer.h"
  26. #include "render/ground/plant_renderer.h"
  27. #include "render/ground/river_renderer.h"
  28. #include "render/ground/riverbank_renderer.h"
  29. #include "render/ground/road_renderer.h"
  30. #include "render/ground/stone_renderer.h"
  31. #include "render/ground/terrain_renderer.h"
  32. #include "render/scene_renderer.h"
  33. auto RendererBootstrap::initialize_rendering() -> RenderingComponents {
  34. RenderingComponents components;
  35. components.renderer = std::make_unique<Render::GL::Renderer>();
  36. components.camera = std::make_unique<Render::GL::Camera>();
  37. components.ground = std::make_unique<Render::GL::GroundRenderer>();
  38. components.terrain = std::make_unique<Render::GL::TerrainRenderer>();
  39. components.biome = std::make_unique<Render::GL::BiomeRenderer>();
  40. components.river = std::make_unique<Render::GL::RiverRenderer>();
  41. components.road = std::make_unique<Render::GL::RoadRenderer>();
  42. components.riverbank = std::make_unique<Render::GL::RiverbankRenderer>();
  43. components.bridge = std::make_unique<Render::GL::BridgeRenderer>();
  44. components.fog = std::make_unique<Render::GL::FogRenderer>();
  45. components.stone = std::make_unique<Render::GL::StoneRenderer>();
  46. components.plant = std::make_unique<Render::GL::PlantRenderer>();
  47. components.pine = std::make_unique<Render::GL::PineRenderer>();
  48. components.olive = std::make_unique<Render::GL::OliveRenderer>();
  49. components.firecamp = std::make_unique<Render::GL::FireCampRenderer>();
  50. components.passes = {components.ground.get(), components.terrain.get(),
  51. components.river.get(), components.road.get(),
  52. components.riverbank.get(), components.bridge.get(),
  53. components.biome.get(), components.stone.get(),
  54. components.plant.get(), components.pine.get(),
  55. components.olive.get(), components.firecamp.get(),
  56. components.fog.get()};
  57. return components;
  58. }
  59. void RendererBootstrap::initialize_world_systems(Engine::Core::World &world) {
  60. world.add_system(std::make_unique<Game::Systems::ArrowSystem>());
  61. world.add_system(std::make_unique<Game::Systems::ProjectileSystem>());
  62. world.add_system(std::make_unique<Game::Systems::MovementSystem>());
  63. world.add_system(std::make_unique<Game::Systems::PatrolSystem>());
  64. world.add_system(std::make_unique<Game::Systems::CombatSystem>());
  65. world.add_system(std::make_unique<Game::Systems::CatapultAttackSystem>());
  66. world.add_system(std::make_unique<Game::Systems::BallistaAttackSystem>());
  67. world.add_system(std::make_unique<Game::Systems::HealingBeamSystem>());
  68. world.add_system(std::make_unique<Game::Systems::HealingSystem>());
  69. world.add_system(std::make_unique<Game::Systems::CaptureSystem>());
  70. world.add_system(std::make_unique<Game::Systems::AISystem>());
  71. world.add_system(std::make_unique<Game::Systems::ProductionSystem>());
  72. world.add_system(std::make_unique<Game::Systems::TerrainAlignmentSystem>());
  73. world.add_system(std::make_unique<Game::Systems::CleanupSystem>());
  74. world.add_system(std::make_unique<Game::Systems::SelectionSystem>());
  75. }