map_transformer.h 974 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #pragma once
  2. #include "../visuals/visual_catalog.h"
  3. #include "map_definition.h"
  4. #include <memory>
  5. namespace Engine::Core {
  6. class World;
  7. using EntityID = unsigned int;
  8. } // namespace Engine::Core
  9. namespace Game::Units {
  10. class UnitFactoryRegistry;
  11. }
  12. namespace Game::Map {
  13. struct MapRuntime {
  14. std::vector<Engine::Core::EntityID> unit_ids;
  15. };
  16. class MapTransformer {
  17. public:
  18. static auto apply_to_world(
  19. const MapDefinition &def, Engine::Core::World &world,
  20. const Game::Visuals::VisualCatalog *visuals = nullptr) -> MapRuntime;
  21. static void
  22. setFactoryRegistry(std::shared_ptr<Game::Units::UnitFactoryRegistry> reg);
  23. static auto
  24. getFactoryRegistry() -> std::shared_ptr<Game::Units::UnitFactoryRegistry>;
  25. static void set_local_owner_id(int owner_id);
  26. static auto local_owner_id() -> int;
  27. static void
  28. setPlayerTeamOverrides(const std::unordered_map<int, int> &overrides);
  29. static void clearPlayerTeamOverrides();
  30. };
  31. } // namespace Game::Map