"use strict";
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
Object.defineProperty(exports, "__esModule", { value: true });
const ScriptModuleManager_1 = require("../manager/ScriptModuleManager");
const VsCodeFileManager_1 = require("../manager/VsCodeFileManager");
const MinEngineVersionManager_1 = require("../manager/MinEngineVersionManager");
const BaseGameVersionManager_1 = require("../manager/BaseGameVersionManager");
const BehaviorPackEntityTypeManager_1 = require("../manager/BehaviorPackEntityTypeManager");
const PackMetaDataInfoGenerator_1 = require("./PackMetaDataInfoGenerator");
const AddOnRequirementsGenerator_1 = require("./AddOnRequirementsGenerator");
const StrictPlatformInfoGenerator_1 = require("./StrictPlatformInfoGenerator");
const AddOnItemRequirementsGenerator_1 = require("./AddOnItemRequirementsGenerator");
const PathLengthFileGenerator_1 = require("./PathLengthFileGenerator");
const ItemCountsInfoGenerator_1 = require("./ItemCountsInfoGenerator");
const PackInfoGenerator_1 = require("./PackInfoGenerator");
const LineSizeInfoGenerator_1 = require("./LineSizeInfoGenerator");
const SchemaItemInfoGenerator_1 = require("./SchemaItemInfoGenerator");
const UnknownItemGenerator_1 = require("./UnknownItemGenerator");
const UnknownFileGenerator_1 = require("./UnknownFileGenerator");
const WorldItemInfoGenerator_1 = require("./WorldItemInfoGenerator");
const JsonFileTagsInfoGenerator_1 = require("./JsonFileTagsInfoGenerator");
const WorldDataInfoGenerator_1 = require("./WorldDataInfoGenerator");
const IProjectInfoData_1 = require("./IProjectInfoData");
const TextureInfoGenerator_1 = require("./TextureInfoGenerator");
const PackSizeInfoGenerator_1 = require("./PackSizeInfoGenerator");
const BehaviorPackItemTypeManager_1 = require("../manager/BehaviorPackItemTypeManager");
const TextureImageInfoGenerator_1 = require("./TextureImageInfoGenerator");
const FormatVersionManager_1 = require("../manager/FormatVersionManager");
const AnimationResourceInfoGenerator_1 = require("./AnimationResourceInfoGenerator");
class GeneratorRegistrations {
    static configureForSuite(generator, suite) {
        if (suite === IProjectInfoData_1.ProjectInfoSuite.addOn) {
            if (generator.id === "WORLDDATA") {
                generator.performAddOnValidations = true;
            }
            else if (generator.id === "TEXTURE") {
                generator.performAddOnValidations = true;
            }
            else if (generator.id === "PACKSIZE") {
                generator.performAddOnValidations = true;
            }
        }
        else {
            if (generator.id === "WORLDDATA") {
                generator.performAddOnValidations = false;
            }
            else if (generator.id === "TEXTURE") {
                generator.performAddOnValidations = false;
            }
            else if (generator.id === "PACKSIZE") {
                generator.performAddOnValidations = false;
            }
        }
        if (suite === IProjectInfoData_1.ProjectInfoSuite.currentPlatformVersions) {
            if (generator.id === "FORMATVER") {
                generator.performPlatformVersionValidations = true;
            }
            else if (generator.id === "BASEGAMEVER") {
                generator.performPlatformVersionValidations = true;
            }
            else if (generator.id === "MINENGINEVER") {
                generator.performPlatformVersionValidations = true;
            }
            else if (generator.id === "WORLDDATA") {
                generator.performPlatformVersionValidations = true;
            }
        }
        else {
            if (generator.id === "FORMATVER") {
                generator.performPlatformVersionValidations = false;
            }
            else if (generator.id === "BASEGAMEVER") {
                generator.performPlatformVersionValidations = false;
            }
            else if (generator.id === "MINENGINEVER") {
                generator.performPlatformVersionValidations = false;
            }
            else if (generator.id === "WORLDDATA") {
                generator.performPlatformVersionValidations = false;
            }
        }
    }
}
exports.default = GeneratorRegistrations;
GeneratorRegistrations.projectGenerators = [
    new ItemCountsInfoGenerator_1.default(),
    new LineSizeInfoGenerator_1.default(),
    new PackSizeInfoGenerator_1.default(),
    new PackInfoGenerator_1.default(),
    new JsonFileTagsInfoGenerator_1.default(),
    new ScriptModuleManager_1.default(),
    new VsCodeFileManager_1.default(),
    new MinEngineVersionManager_1.default(),
    new BaseGameVersionManager_1.default(),
    new FormatVersionManager_1.default(),
    new PackMetaDataInfoGenerator_1.default(),
    new AnimationResourceInfoGenerator_1.default(),
    new BehaviorPackEntityTypeManager_1.default(),
    new BehaviorPackItemTypeManager_1.default(),
    new AddOnRequirementsGenerator_1.default(),
    new StrictPlatformInfoGenerator_1.default(),
    new TextureInfoGenerator_1.default(),
    new TextureImageInfoGenerator_1.default(),
];
GeneratorRegistrations.itemGenerators = [
    new UnknownItemGenerator_1.default(),
    new SchemaItemInfoGenerator_1.default(),
    new WorldItemInfoGenerator_1.default(),
    new WorldDataInfoGenerator_1.default(),
    new AddOnItemRequirementsGenerator_1.default(),
];
GeneratorRegistrations.fileGenerators = [new UnknownFileGenerator_1.default(), new PathLengthFileGenerator_1.default()];

//# sourceMappingURL=../maps/info/GeneratorRegistrations.js.map
