Services.h 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  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::CustomRegType> REGISTER_CUSTOM;
  29. };
  30. class ArtifactServiceProxy : public OpaqueWrapper<const ArtifactService, ArtifactServiceProxy>
  31. {
  32. public:
  33. using Wrapper = OpaqueWrapper<const ArtifactService, ArtifactServiceProxy>;
  34. static const std::vector<typename Wrapper::CustomRegType> REGISTER_CUSTOM;
  35. };
  36. class CreatureServiceProxy : public OpaqueWrapper<const CreatureService, CreatureServiceProxy>
  37. {
  38. public:
  39. using Wrapper = OpaqueWrapper<const CreatureService, CreatureServiceProxy>;
  40. static const std::vector<typename Wrapper::CustomRegType> REGISTER_CUSTOM;
  41. };
  42. class FactionServiceProxy : public OpaqueWrapper<const FactionService, FactionServiceProxy>
  43. {
  44. public:
  45. using Wrapper = OpaqueWrapper<const FactionService, FactionServiceProxy>;
  46. static const std::vector<typename Wrapper::CustomRegType> REGISTER_CUSTOM;
  47. };
  48. class HeroClassServiceProxy : public OpaqueWrapper<const HeroClassService, HeroClassServiceProxy>
  49. {
  50. public:
  51. using Wrapper = OpaqueWrapper<const HeroClassService, HeroClassServiceProxy>;
  52. static const std::vector<typename Wrapper::CustomRegType> REGISTER_CUSTOM;
  53. };
  54. class HeroTypeServiceProxy : public OpaqueWrapper<const HeroTypeService, HeroTypeServiceProxy>
  55. {
  56. public:
  57. using Wrapper = OpaqueWrapper<const HeroTypeService, HeroTypeServiceProxy>;
  58. static const std::vector<typename Wrapper::CustomRegType> REGISTER_CUSTOM;
  59. };
  60. class SkillServiceProxy : public OpaqueWrapper<const SkillService, SkillServiceProxy>
  61. {
  62. public:
  63. using Wrapper = OpaqueWrapper<const SkillService, SkillServiceProxy>;
  64. static const std::vector<typename Wrapper::CustomRegType> REGISTER_CUSTOM;
  65. };
  66. class SpellServiceProxy : public OpaqueWrapper<const spells::Service, SpellServiceProxy>
  67. {
  68. public:
  69. using Wrapper = OpaqueWrapper<const spells::Service, SpellServiceProxy>;
  70. static const std::vector<typename Wrapper::CustomRegType> REGISTER_CUSTOM;
  71. };
  72. }
  73. }