TypeRegistry.h 1.3 KB

123456789101112131415161718192021222324252627282930313233
  1. #pragma once
  2. #include "DimensionGenerator.h"
  3. #include "GeneratorRule.h"
  4. #include "GeneratorTemplate.h"
  5. class TypeRegistry : public Framework::ReferenceCounter
  6. {
  7. private:
  8. Framework::RCArray<GeneratorRuleFactory> generatorRules;
  9. Framework::RCArray<DimensionGeneratorFactory> dimensionGenerators;
  10. Framework::RCArray<GeneratorTemplateFactory> generatorTemplates;
  11. public:
  12. TypeRegistry();
  13. void registerGeneratorRuleFactory(GeneratorRuleFactory* factory);
  14. GeneratorRule* createGeneratorRule(
  15. Framework::JSON::JSONValue* zConfig, JExpressionMemory* zMemory);
  16. Framework::JSON::Validator::JSONValidator* getGeneratorRuleValidator();
  17. void registerDimensionGeneratorFactory(DimensionGeneratorFactory* factory);
  18. DimensionGenerator* createDimensionGenerator(
  19. Framework::JSON::JSONValue* zConfig, int worldSeed);
  20. Framework::JSON::Validator::JSONValidator* getDimensionGeneratorValidator();
  21. const Framework::RCArray<DimensionGeneratorFactory>&
  22. getDimensionGeneratorFactories() const;
  23. void registerGeneratorTemplate(GeneratorTemplateFactory* factory);
  24. GeneratorTemplate* createGeneratorTemplate(
  25. Framework::JSON::JSONValue* zConfig);
  26. Framework::JSON::Validator::JSONValidator* getGeneratorTemplateValidator();
  27. };