Services.h 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  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. VCMI_LIB_NAMESPACE_BEGIN
  21. namespace scripting
  22. {
  23. namespace api
  24. {
  25. class ServicesProxy : public OpaqueWrapper<const Services, ServicesProxy>
  26. {
  27. public:
  28. using Wrapper = OpaqueWrapper<const Services, ServicesProxy>;
  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::CustomRegType> REGISTER_CUSTOM;
  36. };
  37. class CreatureServiceProxy : public OpaqueWrapper<const CreatureService, CreatureServiceProxy>
  38. {
  39. public:
  40. using Wrapper = OpaqueWrapper<const CreatureService, CreatureServiceProxy>;
  41. static const std::vector<typename Wrapper::CustomRegType> REGISTER_CUSTOM;
  42. };
  43. class FactionServiceProxy : public OpaqueWrapper<const FactionService, FactionServiceProxy>
  44. {
  45. public:
  46. using Wrapper = OpaqueWrapper<const FactionService, FactionServiceProxy>;
  47. static const std::vector<typename Wrapper::CustomRegType> REGISTER_CUSTOM;
  48. };
  49. class HeroClassServiceProxy : public OpaqueWrapper<const HeroClassService, HeroClassServiceProxy>
  50. {
  51. public:
  52. using Wrapper = OpaqueWrapper<const HeroClassService, HeroClassServiceProxy>;
  53. static const std::vector<typename Wrapper::CustomRegType> REGISTER_CUSTOM;
  54. };
  55. class HeroTypeServiceProxy : public OpaqueWrapper<const HeroTypeService, HeroTypeServiceProxy>
  56. {
  57. public:
  58. using Wrapper = OpaqueWrapper<const HeroTypeService, HeroTypeServiceProxy>;
  59. static const std::vector<typename Wrapper::CustomRegType> REGISTER_CUSTOM;
  60. };
  61. class SkillServiceProxy : public OpaqueWrapper<const SkillService, SkillServiceProxy>
  62. {
  63. public:
  64. using Wrapper = OpaqueWrapper<const SkillService, SkillServiceProxy>;
  65. static const std::vector<typename Wrapper::CustomRegType> REGISTER_CUSTOM;
  66. };
  67. class SpellServiceProxy : public OpaqueWrapper<const spells::Service, SpellServiceProxy>
  68. {
  69. public:
  70. using Wrapper = OpaqueWrapper<const spells::Service, SpellServiceProxy>;
  71. static const std::vector<typename Wrapper::CustomRegType> REGISTER_CUSTOM;
  72. };
  73. }
  74. }
  75. VCMI_LIB_NAMESPACE_END