renderer_bootstrap.cpp 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  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/defense_tower_system.h"
  11. #include "game/systems/elephant_attack_system.h"
  12. #include "game/systems/guard_system.h"
  13. #include "game/systems/healing_beam_system.h"
  14. #include "game/systems/healing_system.h"
  15. #include "game/systems/home_system.h"
  16. #include "game/systems/movement_system.h"
  17. #include "game/systems/patrol_system.h"
  18. #include "game/systems/production_system.h"
  19. #include "game/systems/projectile_system.h"
  20. #include "game/systems/selection_system.h"
  21. #include "game/systems/stamina_system.h"
  22. #include "game/systems/terrain_alignment_system.h"
  23. #include "render/gl/camera.h"
  24. #include "render/ground/biome_renderer.h"
  25. #include "render/ground/bridge_renderer.h"
  26. #include "render/ground/firecamp_renderer.h"
  27. #include "render/ground/fog_renderer.h"
  28. #include "render/ground/ground_renderer.h"
  29. #include "render/ground/olive_renderer.h"
  30. #include "render/ground/pine_renderer.h"
  31. #include "render/ground/plant_renderer.h"
  32. #include "render/ground/rain_renderer.h"
  33. #include "render/ground/river_renderer.h"
  34. #include "render/ground/riverbank_renderer.h"
  35. #include "render/ground/road_renderer.h"
  36. #include "render/ground/stone_renderer.h"
  37. #include "render/ground/terrain_renderer.h"
  38. #include "render/scene_renderer.h"
  39. auto RendererBootstrap::initialize_rendering() -> RenderingComponents {
  40. RenderingComponents components;
  41. components.renderer = std::make_unique<Render::GL::Renderer>();
  42. components.camera = std::make_unique<Render::GL::Camera>();
  43. components.ground = std::make_unique<Render::GL::GroundRenderer>();
  44. components.terrain = std::make_unique<Render::GL::TerrainRenderer>();
  45. components.biome = std::make_unique<Render::GL::BiomeRenderer>();
  46. components.river = std::make_unique<Render::GL::RiverRenderer>();
  47. components.road = std::make_unique<Render::GL::RoadRenderer>();
  48. components.riverbank = std::make_unique<Render::GL::RiverbankRenderer>();
  49. components.bridge = std::make_unique<Render::GL::BridgeRenderer>();
  50. components.fog = std::make_unique<Render::GL::FogRenderer>();
  51. components.stone = std::make_unique<Render::GL::StoneRenderer>();
  52. components.plant = std::make_unique<Render::GL::PlantRenderer>();
  53. components.pine = std::make_unique<Render::GL::PineRenderer>();
  54. components.olive = std::make_unique<Render::GL::OliveRenderer>();
  55. components.firecamp = std::make_unique<Render::GL::FireCampRenderer>();
  56. components.rain = std::make_unique<Render::GL::RainRenderer>();
  57. components.passes = {components.ground.get(), components.terrain.get(),
  58. components.river.get(), components.road.get(),
  59. components.riverbank.get(), components.bridge.get(),
  60. components.biome.get(), components.stone.get(),
  61. components.plant.get(), components.pine.get(),
  62. components.olive.get(), components.firecamp.get(),
  63. components.rain.get(), components.fog.get()};
  64. return components;
  65. }
  66. void RendererBootstrap::initialize_world_systems(Engine::Core::World &world) {
  67. world.add_system(std::make_unique<Game::Systems::ArrowSystem>());
  68. world.add_system(std::make_unique<Game::Systems::ProjectileSystem>());
  69. world.add_system(std::make_unique<Game::Systems::StaminaSystem>());
  70. world.add_system(std::make_unique<Game::Systems::MovementSystem>());
  71. world.add_system(std::make_unique<Game::Systems::PatrolSystem>());
  72. world.add_system(std::make_unique<Game::Systems::GuardSystem>());
  73. world.add_system(std::make_unique<Game::Systems::CombatSystem>());
  74. world.add_system(std::make_unique<Game::Systems::CatapultAttackSystem>());
  75. world.add_system(std::make_unique<Game::Systems::BallistaAttackSystem>());
  76. world.add_system(std::make_unique<Game::Systems::ElephantAttackSystem>());
  77. world.add_system(std::make_unique<Game::Systems::DefenseTowerSystem>());
  78. world.add_system(std::make_unique<Game::Systems::HealingBeamSystem>());
  79. world.add_system(std::make_unique<Game::Systems::HealingSystem>());
  80. world.add_system(std::make_unique<Game::Systems::CaptureSystem>());
  81. world.add_system(std::make_unique<Game::Systems::AISystem>());
  82. world.add_system(std::make_unique<Game::Systems::ProductionSystem>());
  83. world.add_system(std::make_unique<Game::Systems::HomeSystem>());
  84. world.add_system(std::make_unique<Game::Systems::TerrainAlignmentSystem>());
  85. world.add_system(std::make_unique<Game::Systems::CleanupSystem>());
  86. world.add_system(std::make_unique<Game::Systems::SelectionSystem>());
  87. }