Services.h 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. /*
  2. * api/Services.h, part of VCMI engine
  3. *
  4. * Authors: listed in file AUTHORS in main folder
  5. *
  6. * License: GNU General Public License v2.0 or later
  7. * Full text of license available in license.txt file, in main folder
  8. *
  9. */
  10. #pragma once
  11. #include <vcmi/Services.h>
  12. #include <vcmi/ArtifactService.h>
  13. #include <vcmi/CreatureService.h>
  14. #include <vcmi/FactionService.h>
  15. #include <vcmi/HeroClassService.h>
  16. #include <vcmi/HeroTypeService.h>
  17. #include <vcmi/SkillService.h>
  18. #include <vcmi/spells/Service.h>
  19. #include "../LuaWrapper.h"
  20. namespace scripting
  21. {
  22. namespace api
  23. {
  24. class ServicesProxy : public OpaqueWrapper<const Services, ServicesProxy>
  25. {
  26. public:
  27. using Wrapper = OpaqueWrapper<const Services, ServicesProxy>;
  28. static const std::vector<typename Wrapper::RegType> REGISTER;
  29. static const std::vector<typename Wrapper::CustomRegType> REGISTER_CUSTOM;
  30. };
  31. class ArtifactServiceProxy : public OpaqueWrapper<const ArtifactService, ArtifactServiceProxy>
  32. {
  33. public:
  34. using Wrapper = OpaqueWrapper<const ArtifactService, ArtifactServiceProxy>;
  35. static const std::vector<typename Wrapper::RegType> REGISTER;
  36. static const std::vector<typename Wrapper::CustomRegType> REGISTER_CUSTOM;
  37. };
  38. class CreatureServiceProxy : public OpaqueWrapper<const CreatureService, CreatureServiceProxy>
  39. {
  40. public:
  41. using Wrapper = OpaqueWrapper<const CreatureService, CreatureServiceProxy>;
  42. static const std::vector<typename Wrapper::RegType> REGISTER;
  43. static const std::vector<typename Wrapper::CustomRegType> REGISTER_CUSTOM;
  44. };
  45. class FactionServiceProxy : public OpaqueWrapper<const FactionService, FactionServiceProxy>
  46. {
  47. public:
  48. using Wrapper = OpaqueWrapper<const FactionService, FactionServiceProxy>;
  49. static const std::vector<typename Wrapper::RegType> REGISTER;
  50. static const std::vector<typename Wrapper::CustomRegType> REGISTER_CUSTOM;
  51. };
  52. class HeroClassServiceProxy : public OpaqueWrapper<const HeroClassService, HeroClassServiceProxy>
  53. {
  54. public:
  55. using Wrapper = OpaqueWrapper<const HeroClassService, HeroClassServiceProxy>;
  56. static const std::vector<typename Wrapper::RegType> REGISTER;
  57. static const std::vector<typename Wrapper::CustomRegType> REGISTER_CUSTOM;
  58. };
  59. class HeroTypeServiceProxy : public OpaqueWrapper<const HeroTypeService, HeroTypeServiceProxy>
  60. {
  61. public:
  62. using Wrapper = OpaqueWrapper<const HeroTypeService, HeroTypeServiceProxy>;
  63. static const std::vector<typename Wrapper::RegType> REGISTER;
  64. static const std::vector<typename Wrapper::CustomRegType> REGISTER_CUSTOM;
  65. };
  66. class SkillServiceProxy : public OpaqueWrapper<const SkillService, SkillServiceProxy>
  67. {
  68. public:
  69. using Wrapper = OpaqueWrapper<const SkillService, SkillServiceProxy>;
  70. static const std::vector<typename Wrapper::RegType> REGISTER;
  71. static const std::vector<typename Wrapper::CustomRegType> REGISTER_CUSTOM;
  72. };
  73. class SpellServiceProxy : public OpaqueWrapper<const spells::Service, SpellServiceProxy>
  74. {
  75. public:
  76. using Wrapper = OpaqueWrapper<const spells::Service, SpellServiceProxy>;
  77. static const std::vector<typename Wrapper::RegType> REGISTER;
  78. static const std::vector<typename Wrapper::CustomRegType> REGISTER_CUSTOM;
  79. };
  80. }
  81. }