public void Generate(bool randomizeConfig = true)
        {
            if (constantSeed)
            {
                Random.InitState(0);
            }

            if (randomizeConfig)
            {
                //GeneratePalette();

                //config.gradient = ColorE.Gradient(from: GetMainColorHSV(), to: GetSecondaryColorHSV());
            }
            //config.path = pathCreator.GetComponent<PathCreator>().getPath();

            var drafts  = LowPolyTerrainGenerator.TerrainDraft(config);
            var draftQ1 = drafts[0];
            var draftQ2 = drafts[1];
            var draftQ3 = drafts[2];
            var draftQ4 = drafts[3];

            //draftQ1.Move(Vector3.left * config.terrainSize.x / 2 + Vector3.back * config.terrainSize.z / 2);
            draftQ1.Move(Vector3.left * config.terrainSize.x / 2 + Vector3.back * config.terrainSize.z / 2);
            draftQ2.Move(Vector3.back * config.terrainSize.z / 2);
            draftQ3.Move(Vector3.left * config.terrainSize.x / 2);
            //draftQ4.Move(Vector3.right * config.terrainSize.x / 4 + Vector3.forward * config.terrainSize.z / 2);

            AssignDraftToMeshFilter(draftQ1, terrainMeshFilterQ1, ref terrainMeshQ1);
            AssignDraftToMeshFilter(draftQ2, terrainMeshFilterQ2, ref terrainMeshQ2);
            AssignDraftToMeshFilter(draftQ3, terrainMeshFilterQ3, ref terrainMeshQ3);
            AssignDraftToMeshFilter(draftQ4, terrainMeshFilterQ4, ref terrainMeshQ4);

            AssignDraftToMeshFilter(draftQ1, terrainDuplicateQ1, ref terrainMeshQ1);
            AssignDraftToMeshFilter(draftQ2, terrainDuplicateQ2, ref terrainMeshQ2);
            AssignDraftToMeshFilter(draftQ3, terrainDuplicateQ3, ref terrainMeshQ3);
            AssignDraftToMeshFilter(draftQ4, terrainDuplicateQ4, ref terrainMeshQ4);

            terrainMeshColliderQ1.sharedMesh = terrainMeshQ1;
            terrainMeshColliderQ2.sharedMesh = terrainMeshQ2;
            terrainMeshColliderQ3.sharedMesh = terrainMeshQ3;
            terrainMeshColliderQ4.sharedMesh = terrainMeshQ4;

            terrainDuplicateColliderQ1.sharedMesh = terrainMeshQ1;
            terrainDuplicateColliderQ2.sharedMesh = terrainMeshQ2;
            terrainDuplicateColliderQ3.sharedMesh = terrainMeshQ3;
            terrainDuplicateColliderQ4.sharedMesh = terrainMeshQ4;
        }
        public void Generate(bool randomizeConfig = true)
        {
            if (constantSeed)
            {
                Random.InitState(0);
            }

            if (randomizeConfig)
            {
                GeneratePalette();

                config.gradient = ColorE.Gradient(from: GetMainColorHSV(), to: GetSecondaryColorHSV());
            }

            var draft = LowPolyTerrainGenerator.TerrainDraft(config);

            draft.Move(Vector3.left * config.terrainSize.x / 2 + Vector3.back * config.terrainSize.z / 2);
            AssignDraftToMeshFilter(draft, terrainMeshFilter, ref terrainMesh);
        }