// FORSAKEN ODYSSEY:
import { world, system, BlockVolume, BlockPermutation } from "@minecraft/server";

world.afterEvents.entitySpawn.subscribe(eventData => {
  const flourishingMagicSpell = [
    "ntk:miscellaneous_flourishing_magic_spell_1",
    "ntk:miscellaneous_flourishing_magic_spell_2",
    "ntk:miscellaneous_flourishing_magic_spell_3"
  ];
  if (!flourishingMagicSpell.includes(eventData.entity.typeId)) return;
  const magicSpell = eventData.entity;
  const magicLocation = magicSpell.location;
  function plantFlourishing(area, dimension) {
    for (const eachLocation of area.getBlockLocationIterator()) {
      let block = dimension.getBlock(eachLocation);
      if (!block) continue;
      let blockPerm = block.permutation;
      let randomChance = Math.random() * 100.0 + 1.0;
      let vegetationChance = Math.random() * 100.0 + 1.0;
      // Crops:
      if (block.typeId === "minecraft:beetroot") {
        let ageGrowth = blockPerm.getState("growth");
        if (ageGrowth < 7) {
          block.setPermutation(BlockPermutation.resolve("minecraft:beetroot", { "growth": 7 }));
          dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
        }
      }
      if (block.typeId === "minecraft:cocoa") {
        let ageGrowth = blockPerm.getState("age");
        let facingDirection = blockPerm.getState("direction");
        if (ageGrowth != 2) {
          block.setPermutation(BlockPermutation.resolve("minecraft:cocoa", { "direction": facingDirection, "age": 2 }));
          dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
        }
      }
      if (block.typeId === "minecraft:carrots") {
        let ageGrowth = blockPerm.getState("growth");
        if (ageGrowth < 7) {
          block.setPermutation(BlockPermutation.resolve("minecraft:carrots", { "growth": 7 }));
          dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
        }
      }
      if (block.typeId === "minecraft:melon_stem") {
        let ageGrowth = blockPerm.getState("growth");
        let facingDirection = blockPerm.getState("facing_direction");
        if (ageGrowth < 7) {
          block.setPermutation(BlockPermutation.resolve("minecraft:melon_stem", { "growth": 7, "facing_direction": facingDirection }));
          dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
        }
      }
      if (block.typeId === "minecraft:pitcher_crop") {
        if (block.permutation.matches("minecraft:pitcher_crop", { "growth": 0 })) {
          block.setPermutation(BlockPermutation.resolve("minecraft:pitcher_crop", { "growth": 1 }));
          dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
        }
        else if (block.permutation.matches("minecraft:pitcher_crop", { "growth": 1 })) {
          block.setPermutation(BlockPermutation.resolve("minecraft:pitcher_crop", { "growth": 2 }));
          dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
        }
        else if (block.permutation.matches("minecraft:pitcher_crop", { "growth": 2 }) && block.above().isAir) {
          block.setPermutation(BlockPermutation.resolve("minecraft:pitcher_crop", { "growth": 3 }));
          dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
        }
        else if (block.permutation.matches("minecraft:pitcher_crop", { "growth": 3, "upper_block_bit": false })) {
          block.setPermutation(BlockPermutation.resolve("minecraft:pitcher_crop", { "growth": 4, "upper_block_bit": false }));
          block.above().setPermutation(BlockPermutation.resolve("minecraft:pitcher_crop", { "growth": 4, "upper_block_bit": true }));
          dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
        }
      }
      if (block.typeId === "minecraft:potatoes") {
        let ageGrowth = blockPerm.getState("growth");
        if (ageGrowth < 7) {
          block.setPermutation(BlockPermutation.resolve("minecraft:potatoes", { "growth": 7 }));
          dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
        }
      }
      if (block.typeId === "minecraft:pumpkin_stem") {
        let ageGrowth = blockPerm.getState("growth");
        let facingDirection = blockPerm.getState("facing_direction");
        if (ageGrowth < 7) {
          block.setPermutation(BlockPermutation.resolve("minecraft:pumpkin_stem", { "growth": 7, "facing_direction": facingDirection }));
          dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
        }
      }
      if (block.typeId === "minecraft:reeds") {
        if (block.below().typeId !== "minecraft:reeds") {
          if (block.above(1).isAir && block.above(2).isAir != true) {
            block.above(1).setPermutation(BlockPermutation.resolve("minecraft:reeds"));
            dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
          }
          else if (block.above(1).isAir && block.above(2).isAir) {
            block.above(1).setPermutation(BlockPermutation.resolve("minecraft:reeds"));
            block.above(2).setPermutation(BlockPermutation.resolve("minecraft:reeds"));
            dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
          }
          else if (block.above(1).typeId === "minecraft:reeds" && block.above(2).isAir) {
            block.above(2).setPermutation(BlockPermutation.resolve("minecraft:reeds"));
            dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
          }
        }
      }
      if (block.typeId === "minecraft:sweet_berry_bush") {
        let ageGrowth = blockPerm.getState("growth");
        if (ageGrowth < 3) {
          block.setPermutation(BlockPermutation.resolve("minecraft:sweet_berry_bush", { "growth": 3 }));
          dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
        }
      }
      if (block.typeId === "minecraft:torchflower_crop") {
        if (block.permutation.matches("minecraft:torchflower_crop", { "growth": 0 })) {
          block.setPermutation(BlockPermutation.resolve("minecraft:torchflower_crop", { "growth": 1 }));
          dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
        }
        else if (block.permutation.matches("minecraft:torchflower_crop", { "growth": 1 })) {
          block.setPermutation(BlockPermutation.resolve("minecraft:torchflower"));
          dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
        }
        else if (block.permutation.matches("minecraft:torchflower_crop", { "growth": 2 })) {
          block.setPermutation(BlockPermutation.resolve("minecraft:torchflower"));
          dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
        }
        else if (block.permutation.matches("minecraft:torchflower_crop", { "growth": 3 })) {
          block.setPermutation(BlockPermutation.resolve("minecraft:torchflower"));
          dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
        }
      }
      if (block.typeId === "minecraft:wheat") {
        let ageGrowth = blockPerm.getState("growth");
        if (ageGrowth < 7) {
          block.setPermutation(BlockPermutation.resolve("minecraft:wheat", { "growth": 7 }));
          dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
        }
      }
      // Saplings:
      if (block.typeId === "minecraft:bamboo") {
        if (block.below().typeId !== "minecraft:bamboo") {
          if (block.permutation.matches("minecraft:bamboo", { "bamboo_stalk_thickness": "thin", "bamboo_leaf_size": "no_leaves" }) && block.above(1).permutation.matches("minecraft:bamboo", { "bamboo_stalk_thickness": "thin", "bamboo_leaf_size": "small_leaves" }) && block.above(2).isAir) {
            block.above(1).setPermutation(BlockPermutation.resolve("minecraft:bamboo", { "bamboo_stalk_thickness": "thin", "bamboo_leaf_size": "small_leaves", "age_bit": false }));
            block.above(2).setPermutation(BlockPermutation.resolve("minecraft:bamboo", { "bamboo_stalk_thickness": "thin", "bamboo_leaf_size": "small_leaves", "age_bit": false }));
            dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
          }
          else if (block.permutation.matches("minecraft:bamboo", { "bamboo_stalk_thickness": "thin", "bamboo_leaf_size": "no_leaves" }) && block.above(1).permutation.matches("minecraft:bamboo", { "bamboo_stalk_thickness": "thin", "bamboo_leaf_size": "small_leaves" }) && block.above(2).permutation.matches("minecraft:bamboo", { "bamboo_stalk_thickness": "thin", "bamboo_leaf_size": "small_leaves" }) && block.above(3).isAir) {
            block.setPermutation(BlockPermutation.resolve("minecraft:bamboo", { "bamboo_stalk_thickness": "thick", "bamboo_leaf_size": "no_leaves", "age_bit": false }));
            block.above(1).setPermutation(BlockPermutation.resolve("minecraft:bamboo", { "bamboo_stalk_thickness": "thick", "bamboo_leaf_size": "no_leaves", "age_bit": false }));
            block.above(1).above(1).setPermutation(BlockPermutation.resolve("minecraft:bamboo", { "bamboo_stalk_thickness": "thick", "bamboo_leaf_size": "small_leaves", "age_bit": false }));
            block.above(3).setPermutation(BlockPermutation.resolve("minecraft:bamboo", { "bamboo_stalk_thickness": "thick", "bamboo_leaf_size": "large_leaves", "age_bit": false }));
            dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
          }
        }
      }
      if (block.typeId === "minecraft:bamboo_sapling") {
        if (block.above().isAir) {
          block.setPermutation(BlockPermutation.resolve("minecraft:bamboo", { "bamboo_stalk_thickness": "thin", "bamboo_leaf_size": "no_leaves", "age_bit": false }));
          block.above().setPermutation(BlockPermutation.resolve("minecraft:bamboo", { "bamboo_stalk_thickness": "thin", "bamboo_leaf_size": "small_leaves", "age_bit": false }));
          dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
        }
      }
      // Plants & Flowers:
      if (block.typeId === "minecraft:pink_petals") {
        let cardinalDirection = block.permutation.getState("minecraft:cardinal_direction");
        if (block.permutation.matches("minecraft:pink_petals", { "growth": 0 })) {
          block.setPermutation(BlockPermutation.resolve("minecraft:pink_petals", { "minecraft:cardinal_direction": cardinalDirection, "growth": 1 }));
          dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
        }
        else if (block.permutation.matches("minecraft:pink_petals", { "growth": 1 })) {
          block.setPermutation(BlockPermutation.resolve("minecraft:pink_petals", { "minecraft:cardinal_direction": cardinalDirection, "growth": 2 }));
          dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
        }
        else if (block.permutation.matches("minecraft:pink_petals", { "growth": 2 })) {
          block.setPermutation(BlockPermutation.resolve("minecraft:pink_petals", { "minecraft:cardinal_direction": cardinalDirection, "growth": 3 }));
          dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
        }
      }
      if (block.typeId === "minecraft:wildflowers") {
        let cardinalDirection = block.permutation.getState("minecraft:cardinal_direction");
        if (block.permutation.matches("minecraft:wildflowers", { "growth": 0 })) {
          block.setPermutation(BlockPermutation.resolve("minecraft:wildflowers", { "minecraft:cardinal_direction": cardinalDirection, "growth": 1 }));
          dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
        }
        else if (block.permutation.matches("minecraft:wildflowers", { "growth": 1 })) {
          block.setPermutation(BlockPermutation.resolve("minecraft:wildflowers", { "minecraft:cardinal_direction": cardinalDirection, "growth": 2 }));
          dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
        }
        else if (block.permutation.matches("minecraft:wildflowers", { "growth": 2 })) {
          block.setPermutation(BlockPermutation.resolve("minecraft:wildflowers", { "minecraft:cardinal_direction": cardinalDirection, "growth": 3 }));
          dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
        }
      }
      if (block.typeId === "ntk:short_lush_bush") {
        if (vegetationChance <= 100) {
          block.setType("ntk:tall_lush_bush");
          dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
        }
      }
      if (block.typeId === "ntk:tall_lush_bush") {
        if (vegetationChance <= 75) {
          let lushBushSoilBlock = [
            "minecraft:coarse_dirt",
            "minecraft:dirt",
            "minecraft:dirt_with_roots",
            "minecraft:farmland",
            "minecraft:grass_block",
            "minecraft:moss_block",
            "minecraft:mycelium",
            "minecraft:pale_moss_block",
            "minecraft:podzol"
          ];
          if (block.north().isAir) {
            let blockBelow = block.north().below();
            if (lushBushSoilBlock.includes(blockBelow.typeId) || blockBelow.hasTag("ntk:custom_dirt") || blockBelow.hasTag("ntk:grassed_blocks") || blockBelow.hasTag("ntk:mossed_blocks")) {
              block = block.north();
              block.setType("ntk:short_lush_bush");
              dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
            }
          }
          else if (block.east().isAir) {
            let blockBelow = block.east().below();
            if (lushBushSoilBlock.includes(blockBelow.typeId) || blockBelow.hasTag("ntk:custom_dirt") || blockBelow.hasTag("ntk:grassed_blocks") || blockBelow.hasTag("ntk:mossed_blocks")) {
              block = block.east();
              block.setType("ntk:short_lush_bush");
              dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
            }
          }
          else if (block.south().isAir) {
            let blockBelow = block.south().below();
            if (lushBushSoilBlock.includes(blockBelow.typeId) || blockBelow.hasTag("ntk:custom_dirt") || blockBelow.hasTag("ntk:grassed_blocks") || blockBelow.hasTag("ntk:mossed_blocks")) {
              block = block.south();
              block.setType("ntk:short_lush_bush");
              dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
            }
          }
          else if (block.west().isAir) {
            let blockBelow = block.west().below();
            if (lushBushSoilBlock.includes(blockBelow.typeId) || blockBelow.hasTag("ntk:custom_dirt") || blockBelow.hasTag("ntk:grassed_blocks") || blockBelow.hasTag("ntk:mossed_blocks")) {
              block = block.west();
              block.setType("ntk:short_lush_bush");
              dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
            }
          }
        }
      }
      if (block.typeId === "minecraft:bush") {
        if (vegetationChance <= 75) {
          let bushSoilBlock = [
            "minecraft:coarse_dirt",
            "minecraft:dirt",
            "minecraft:dirt_with_roots",
            "minecraft:farmland",
            "minecraft:grass_block",
            "minecraft:moss_block",
            "minecraft:mud",
            "minecraft:mycelium",
            "minecraft:muddy_mangrove_roots",
            "minecraft:pale_moss_block",
            "minecraft:podzol"
          ];
          if (block.north().isAir && bushSoilBlock.includes(block.north().below().typeId)) {
            block = block.north();
            block.setType("minecraft:bush");
            dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
          }
          else if (block.east().isAir && bushSoilBlock.includes(block.east().below().typeId)) {
            block = block.east();
            block.setType("minecraft:bush");
            dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
          }
          else if (block.south().isAir && bushSoilBlock.includes(block.south().below().typeId)) {
            block = block.south();
            block.setType("minecraft:bush");
            dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
          }
          else if (block.west().isAir && bushSoilBlock.includes(block.west().below().typeId)) {
            block = block.west();
            block.setType("minecraft:bush");
            dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
          }
        }
      }
      if (block.typeId === "minecraft:firefly_bush") {
        if (vegetationChance <= 75) {
          let fireflyBushSoilBlock = [
            "minecraft:coarse_dirt",
            "minecraft:dirt",
            "minecraft:dirt_with_roots",
            "minecraft:farmland",
            "minecraft:grass_block",
            "minecraft:moss_block",
            "minecraft:mud",
            "minecraft:mycelium",
            "minecraft:muddy_mangrove_roots",
            "minecraft:pale_moss_block",
            "minecraft:podzol"
          ];
          if (block.north().isAir && fireflyBushSoilBlock.includes(block.north().below().typeId)) {
            block = block.north();
            block.setType("minecraft:firefly_bush");
            dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
          }
          else if (block.east().isAir && fireflyBushSoilBlock.includes(block.east().below().typeId)) {
            block = block.east();
            block.setType("minecraft:firefly_bush");
            dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
          }
          else if (block.south().isAir && fireflyBushSoilBlock.includes(block.south().below().typeId)) {
            block = block.south();
            block.setType("minecraft:firefly_bush");
            dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
          }
          else if (block.west().isAir && fireflyBushSoilBlock.includes(block.west().below().typeId)) {
            block = block.west();
            block.setType("minecraft:firefly_bush");
            dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
          }
        }
      }
      // Grass & Sprouts:
      if (block.typeId === "minecraft:short_grass") {
        if (vegetationChance <= 50) {
          if (block.above().isAir) {
            block.setPermutation(BlockPermutation.resolve("minecraft:tall_grass", { "upper_block_bit": false }));
            block.above().setPermutation(BlockPermutation.resolve("minecraft:tall_grass", { "upper_block_bit": true }));
            dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
          }
        }
      }
      if (block.typeId === "minecraft:fern") {
        if (vegetationChance <= 50) {
          if (block.above().isAir) {
            block.setPermutation(BlockPermutation.resolve("minecraft:large_fern", { "upper_block_bit": false }));
            block.above().setPermutation(BlockPermutation.resolve("minecraft:large_fern", { "upper_block_bit": true }));
            dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
          }
        }
      }
      if (block.typeId === "minecraft:short_dry_grass") {
        if (vegetationChance <= 100) {
          block.setType("minecraft:tall_dry_grass");
          dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
        }
      }
      if (block.typeId === "ntk:short_moss_sprouts") {
        if (vegetationChance <= 100) {
          block.setType("ntk:tall_moss_sprouts");
          dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
        }
      }
      if (block.typeId === "ntk:short_mycelium_sprouts") {
        if (vegetationChance <= 100) {
          block.setType("ntk:tall_mycelium_sprouts");
          dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
        }
      }
      if (block.typeId === "minecraft:tall_dry_grass") {
        if (vegetationChance <= 75) {
          let dryGrassSoilBlock = [
            "minecraft:coarse_dirt",
            "minecraft:dirt",
            "minecraft:dirt_with_roots",
            "minecraft:farmland",
            "minecraft:grass_block",
            "minecraft:grass_path",
            "minecraft:hardened_clay",
            "minecraft:moss_block",
            "minecraft:mud",
            "minecraft:mycelium",
            "minecraft:muddy_mangrove_roots",
            "minecraft:pale_moss_block",
            "minecraft:podzol",
            "minecraft:red_sand",
            "minecraft:sand",
            "minecraft:suspicious_sand"
          ];
          if (block.north().isAir && dryGrassSoilBlock.includes(block.north().below().typeId)) {
            block = block.north();
            block.setType("minecraft:short_dry_grass");
            dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
          }
          else if (block.east().isAir && dryGrassSoilBlock.includes(block.east().below().typeId)) {
            block = block.east();
            block.setType("minecraft:short_dry_grass");
            dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
          }
          else if (block.south().isAir && dryGrassSoilBlock.includes(block.south().below().typeId)) {
            block = block.south();
            block.setType("minecraft:short_dry_grass");
            dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
          }
          else if (block.west().isAir && dryGrassSoilBlock.includes(block.west().below().typeId)) {
            block = block.west();
            block.setType("minecraft:short_dry_grass");
            dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
          }
        }
      }
      if (block.typeId === "minecraft:seagrass") {
        if (vegetationChance <= 50) {
          if (block.permutation.matches("minecraft:seagrass", { "sea_grass_type": "default" })) {
            if (block.above().typeId === "minecraft:water") {
              block.setPermutation(BlockPermutation.resolve("minecraft:seagrass", { "sea_grass_type": "double_bot" }));
              block.above().setPermutation(BlockPermutation.resolve("minecraft:seagrass", { "sea_grass_type": "double_top" }));
              dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
            }
          }
        }
      }
      // Soil Blocks:
      if (block.typeId === "minecraft:grass_block") {
        if (vegetationChance <= 75) {
          if (block.above().isAir) {
            block = block.above();
            if (randomChance <= 65) {
              block.setType("minecraft:short_grass");
              dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
            }
            else if (randomChance <= 74) {
              block.setType("minecraft:fern");
              dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
            }
            else if (randomChance <= 78) {
              block.setType("minecraft:bush");
              dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
            }
            else if (randomChance <= 80) {
              block.setType("minecraft:firefly_bush");
              dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
            }
            else if (randomChance <= 82) {
              block.setType("minecraft:azure_bluet");
              dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
            }
            else if (randomChance <= 84) {
              block.setType("minecraft:cornflower");
              dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
            }
            else if (randomChance <= 86) {
              block.setType("minecraft:dandelion");
              dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
            }
            else if (randomChance <= 88) {
              block.setType("minecraft:poppy");
              dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
            }
          }
          else if (block.above().typeId === "minecraft:water") {
            if (randomChance <= 80) {
              block = block.above();
              block.setPermutation(BlockPermutation.resolve("minecraft:seagrass", { "sea_grass_type": "default" }));
              dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
            }
          }
        }
      }
      if (block.typeId === "minecraft:mycelium") {
        if (vegetationChance <= 75) {
          if (block.above().isAir) {
            block = block.above();
            if (randomChance <= 60) {
              block.setType("ntk:short_mycelium_sprouts");
              dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
            }
            else if (randomChance <= 70) {
              block.setType("minecraft:brown_mushroom");
              dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
            }
            else if (randomChance <= 80) {
              block.setType("minecraft:red_mushroom");
              dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
            }
          }
          else if (block.above().typeId === "minecraft:water") {
            if (randomChance <= 80) {
              block = block.above();
              block.setPermutation(BlockPermutation.resolve("minecraft:seagrass", { "sea_grass_type": "default" }));
              dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
            }
          }
        }
      }
      if (block.typeId === "minecraft:moss_block") {
        if (vegetationChance <= 75) {
          if (block.above().isAir && block.above(2).isAir) {
            block = block.above();
            if (randomChance <= 40) {
              block.setType("minecraft:short_grass");
              dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
            }
            else if (randomChance <= 50) {
              block.setPermutation(BlockPermutation.resolve("minecraft:tall_grass", { "upper_block_bit": false }));
              block.above().setPermutation(BlockPermutation.resolve("minecraft:tall_grass", { "upper_block_bit": true }));
              dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
            }
            else if (randomChance <= 65) {
              block.setType("minecraft:fern");
              dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
            }
            else if (randomChance <= 75) {
              block.setType("minecraft:azalea");
              dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
            }
            else if (randomChance <= 85) {
              block.setType("minecraft:flowering_azalea");
              dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
            }
            else if (randomChance <= 90) {
              block.setType("minecraft:moss_carpet");
              dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
            }
          }
          else if (block.above().isAir && !block.above(2).isAir) {
            block = block.above();
            if (randomChance <= 50) {
              block.setType("minecraft:short_grass");
              dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
            }
            else if (randomChance <= 65) {
              block.setType("minecraft:fern");
              dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
            }
            else if (randomChance <= 75) {
              block.setType("minecraft:azalea");
              dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
            }
            else if (randomChance <= 85) {
              block.setType("minecraft:flowering_azalea");
              dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
            }
            else if (randomChance <= 90) {
              block.setType("minecraft:moss_carpet");
              dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
            }
          }
          else if (block.above().typeId === "minecraft:water") {
            if (randomChance <= 90) {
              block = block.above();
              block.setPermutation(BlockPermutation.resolve("minecraft:seagrass", { "sea_grass_type": "default" }));
              dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
            }
          }
        }
      }
      if (block.typeId === "minecraft:pale_moss_block") {
        if (vegetationChance <= 75) {
          if (block.above().isAir && block.above(2).isAir) {
            block = block.above();
            if (randomChance <= 45) {
              block.setType("minecraft:short_grass");
              dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
            }
            else if (randomChance <= 65) {
              block.setPermutation(BlockPermutation.resolve("minecraft:tall_grass", { "upper_block_bit": false }));
              block.above().setPermutation(BlockPermutation.resolve("minecraft:tall_grass", { "upper_block_bit": true }));
              dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
            }
            else if (randomChance <= 75) {
              block.setType("minecraft:pale_moss_carpet");
              dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
            }
          }
          else if (block.above().isAir && !block.above(2).isAir) {
            block = block.above();
            if (randomChance <= 65) {
              block.setType("minecraft:short_grass");
              dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
            }
            else if (randomChance <= 75) {
              block.setType("minecraft:moss_carpet");
              dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
            }
          }
          else if (block.above().typeId === "minecraft:water") {
            if (randomChance <= 90) {
              block = block.above();
              block.setPermutation(BlockPermutation.resolve("minecraft:seagrass", { "sea_grass_type": "default" }));
              dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
            }
          }
        }
      }
      if (block.typeId === "minecraft:crimson_nylium") {
        if (vegetationChance <= 75) {
          if (block.above().isAir) {
            block = block.above();
            if (randomChance <= 60) {
              block.setType("minecraft:crimson_roots");
              dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
            }
            else if (randomChance <= 80) {
              block.setType("minecraft:crimson_fungus");
              dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
            }
            else if (randomChance <= 83) {
              block.setType("minecraft:warped_fungus");
              dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
            }
          }
        }
      }
      if (block.typeId === "minecraft:warped_nylium") {
        if (vegetationChance <= 75) {
          if (block.above().isAir) {
            block = block.above();
            if (randomChance <= 30) {
              block.setType("minecraft:nether_sprouts");
              dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
            }
            else if (randomChance <= 60) {
              block.setType("minecraft:warped_roots");
              dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
            }
            else if (randomChance <= 80) {
              block.setType("minecraft:warped_fungus");
              dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
            }
            else if (randomChance <= 83) {
              block.setType("minecraft:crimson_fungus");
              dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
            }
          }
        }
      }
      if (block.typeId === "ntk:corrupted_dirt") {
        if (vegetationChance <= 75) {
          if (block.above().isAir) {
            block = block.above();
            if (randomChance <= 65) {
              block.setType("ntk:corrupted_grass");
              dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
            }
            else if (randomChance <= 75) {
              block.setType("ntk:corrupted_oak_sapling");
              dimension.spawnParticle("minecraft:crop_growth_emitter", { x: block.location.x + 0.5, y: block.location.y + 0.5, z: block.location.z + 0.5 });
            }
          }
        }
      }
    }
  }
  
  if (magicSpell.typeId === "ntk:miscellaneous_flourishing_magic_spell_1") {
    const radius = 4;
    const min = {
      x: magicLocation.x - radius,
      y: magicLocation.y - radius,
      z: magicLocation.z - radius
    };
    const max = {
      x: magicLocation.x + radius,
      y: magicLocation.y + radius,
      z: magicLocation.z + radius
    };
    const volume = new BlockVolume(min, max);
    const blocksArea = magicSpell.dimension.getBlocks(
      volume,
      { 
        includePermutations: [
          BlockPermutation.resolve("minecraft:beetroot", { "growth": 0 }),
          BlockPermutation.resolve("minecraft:beetroot", { "growth": 1 }),
          BlockPermutation.resolve("minecraft:beetroot", { "growth": 2 }),
          BlockPermutation.resolve("minecraft:beetroot", { "growth": 3 }),
          BlockPermutation.resolve("minecraft:beetroot", { "growth": 4 }),
          BlockPermutation.resolve("minecraft:beetroot", { "growth": 5 }),
          BlockPermutation.resolve("minecraft:beetroot", { "growth": 6 }),
          BlockPermutation.resolve("minecraft:cocoa", { "direction": 0, "age": 0 }),
          BlockPermutation.resolve("minecraft:cocoa", { "direction": 0, "age": 1 }),
          BlockPermutation.resolve("minecraft:cocoa", { "direction": 1, "age": 0 }),
          BlockPermutation.resolve("minecraft:cocoa", { "direction": 1, "age": 1 }),
          BlockPermutation.resolve("minecraft:cocoa", { "direction": 2, "age": 0 }),
          BlockPermutation.resolve("minecraft:cocoa", { "direction": 2, "age": 1 }),
          BlockPermutation.resolve("minecraft:cocoa", { "direction": 3, "age": 0 }),
          BlockPermutation.resolve("minecraft:cocoa", { "direction": 3, "age": 1 }),
          BlockPermutation.resolve("minecraft:carrots", { "growth": 0 }),
          BlockPermutation.resolve("minecraft:carrots", { "growth": 1 }),
          BlockPermutation.resolve("minecraft:carrots", { "growth": 2 }),
          BlockPermutation.resolve("minecraft:carrots", { "growth": 3 }),
          BlockPermutation.resolve("minecraft:carrots", { "growth": 4 }),
          BlockPermutation.resolve("minecraft:carrots", { "growth": 5 }),
          BlockPermutation.resolve("minecraft:carrots", { "growth": 6 }),
          BlockPermutation.resolve("minecraft:melon_stem", { "growth": 0 }),
          BlockPermutation.resolve("minecraft:melon_stem", { "growth": 1 }),
          BlockPermutation.resolve("minecraft:melon_stem", { "growth": 2 }),
          BlockPermutation.resolve("minecraft:melon_stem", { "growth": 3 }),
          BlockPermutation.resolve("minecraft:melon_stem", { "growth": 4 }),
          BlockPermutation.resolve("minecraft:melon_stem", { "growth": 5 }),
          BlockPermutation.resolve("minecraft:melon_stem", { "growth": 6 }),
          BlockPermutation.resolve("minecraft:pitcher_crop", { "growth": 0, "upper_block_bit": false }),
          BlockPermutation.resolve("minecraft:pitcher_crop", { "growth": 0, "upper_block_bit": true }),
          BlockPermutation.resolve("minecraft:pitcher_crop", { "growth": 1, "upper_block_bit": false }),
          BlockPermutation.resolve("minecraft:pitcher_crop", { "growth": 1, "upper_block_bit": true }),
          BlockPermutation.resolve("minecraft:pitcher_crop", { "growth": 2, "upper_block_bit": false }),
          BlockPermutation.resolve("minecraft:pitcher_crop", { "growth": 2, "upper_block_bit": true }),
          BlockPermutation.resolve("minecraft:pitcher_crop", { "growth": 3, "upper_block_bit": false }),
          BlockPermutation.resolve("minecraft:pitcher_crop", { "growth": 3, "upper_block_bit": true }),
          BlockPermutation.resolve("minecraft:potatoes", { "growth": 0 }),
          BlockPermutation.resolve("minecraft:potatoes", { "growth": 1 }),
          BlockPermutation.resolve("minecraft:potatoes", { "growth": 2 }),
          BlockPermutation.resolve("minecraft:potatoes", { "growth": 3 }),
          BlockPermutation.resolve("minecraft:potatoes", { "growth": 4 }),
          BlockPermutation.resolve("minecraft:potatoes", { "growth": 5 }),
          BlockPermutation.resolve("minecraft:potatoes", { "growth": 6 }),
          BlockPermutation.resolve("minecraft:pumpkin_stem", { "growth": 0 }),
          BlockPermutation.resolve("minecraft:pumpkin_stem", { "growth": 1 }),
          BlockPermutation.resolve("minecraft:pumpkin_stem", { "growth": 2 }),
          BlockPermutation.resolve("minecraft:pumpkin_stem", { "growth": 3 }),
          BlockPermutation.resolve("minecraft:pumpkin_stem", { "growth": 4 }),
          BlockPermutation.resolve("minecraft:pumpkin_stem", { "growth": 5 }),
          BlockPermutation.resolve("minecraft:pumpkin_stem", { "growth": 6 }),
          BlockPermutation.resolve("minecraft:reeds", { "age": 0 }),
          BlockPermutation.resolve("minecraft:reeds", { "age": 1 }),
          BlockPermutation.resolve("minecraft:reeds", { "age": 2 }),
          BlockPermutation.resolve("minecraft:reeds", { "age": 3 }),
          BlockPermutation.resolve("minecraft:reeds", { "age": 4 }),
          BlockPermutation.resolve("minecraft:reeds", { "age": 5 }),
          BlockPermutation.resolve("minecraft:reeds", { "age": 6 }),
          BlockPermutation.resolve("minecraft:reeds", { "age": 7 }),
          BlockPermutation.resolve("minecraft:reeds", { "age": 8 }),
          BlockPermutation.resolve("minecraft:reeds", { "age": 9 }),
          BlockPermutation.resolve("minecraft:reeds", { "age": 10 }),
          BlockPermutation.resolve("minecraft:reeds", { "age": 11 }),
          BlockPermutation.resolve("minecraft:reeds", { "age": 12 }),
          BlockPermutation.resolve("minecraft:reeds", { "age": 13 }),
          BlockPermutation.resolve("minecraft:reeds", { "age": 14 }),
          BlockPermutation.resolve("minecraft:reeds", { "age": 15 }),
          BlockPermutation.resolve("minecraft:sweet_berry_bush", { "growth": 0 }),
          BlockPermutation.resolve("minecraft:sweet_berry_bush", { "growth": 1 }),
          BlockPermutation.resolve("minecraft:sweet_berry_bush", { "growth": 2 }),
          BlockPermutation.resolve("minecraft:torchflower_crop", { "growth": 0 }),
          BlockPermutation.resolve("minecraft:torchflower_crop", { "growth": 1 }),
          BlockPermutation.resolve("minecraft:torchflower_crop", { "growth": 2 }),
          BlockPermutation.resolve("minecraft:torchflower_crop", { "growth": 3 }),
          BlockPermutation.resolve("minecraft:wheat", { "growth": 0 }),
          BlockPermutation.resolve("minecraft:wheat", { "growth": 1 }),
          BlockPermutation.resolve("minecraft:wheat", { "growth": 2 }),
          BlockPermutation.resolve("minecraft:wheat", { "growth": 3 }),
          BlockPermutation.resolve("minecraft:wheat", { "growth": 4 }),
          BlockPermutation.resolve("minecraft:wheat", { "growth": 5 }),
          BlockPermutation.resolve("minecraft:wheat", { "growth": 6 }),
          //Saplings:
          BlockPermutation.resolve("minecraft:bamboo"),
          BlockPermutation.resolve("minecraft:bamboo_sapling"),
          // Plants & Flowers:
          BlockPermutation.resolve("minecraft:pink_petals", { "minecraft:cardinal_direction": "south", "growth": 0 }),
          BlockPermutation.resolve("minecraft:pink_petals", { "minecraft:cardinal_direction": "south", "growth": 1 }),
          BlockPermutation.resolve("minecraft:pink_petals", { "minecraft:cardinal_direction": "south", "growth": 2 }),
          BlockPermutation.resolve("minecraft:pink_petals", { "minecraft:cardinal_direction": "west", "growth": 0 }),
          BlockPermutation.resolve("minecraft:pink_petals", { "minecraft:cardinal_direction": "west", "growth": 1 }),
          BlockPermutation.resolve("minecraft:pink_petals", { "minecraft:cardinal_direction": "west", "growth": 2 }),
          BlockPermutation.resolve("minecraft:pink_petals", { "minecraft:cardinal_direction": "north", "growth": 0 }),
          BlockPermutation.resolve("minecraft:pink_petals", { "minecraft:cardinal_direction": "north", "growth": 1 }),
          BlockPermutation.resolve("minecraft:pink_petals", { "minecraft:cardinal_direction": "north", "growth": 2 }),
          BlockPermutation.resolve("minecraft:pink_petals", { "minecraft:cardinal_direction": "east", "growth": 0 }),
          BlockPermutation.resolve("minecraft:pink_petals", { "minecraft:cardinal_direction": "east", "growth": 1 }),
          BlockPermutation.resolve("minecraft:pink_petals", { "minecraft:cardinal_direction": "east", "growth": 2 }),
          BlockPermutation.resolve("minecraft:wildflowers", { "minecraft:cardinal_direction": "south", "growth": 0 }),
          BlockPermutation.resolve("minecraft:wildflowers", { "minecraft:cardinal_direction": "south", "growth": 1 }),
          BlockPermutation.resolve("minecraft:wildflowers", { "minecraft:cardinal_direction": "south", "growth": 2 }),
          BlockPermutation.resolve("minecraft:wildflowers", { "minecraft:cardinal_direction": "west", "growth": 0 }),
          BlockPermutation.resolve("minecraft:wildflowers", { "minecraft:cardinal_direction": "west", "growth": 1 }),
          BlockPermutation.resolve("minecraft:wildflowers", { "minecraft:cardinal_direction": "west", "growth": 2 }),
          BlockPermutation.resolve("minecraft:wildflowers", { "minecraft:cardinal_direction": "north", "growth": 0 }),
          BlockPermutation.resolve("minecraft:wildflowers", { "minecraft:cardinal_direction": "north", "growth": 1 }),
          BlockPermutation.resolve("minecraft:wildflowers", { "minecraft:cardinal_direction": "north", "growth": 2 }),
          BlockPermutation.resolve("minecraft:wildflowers", { "minecraft:cardinal_direction": "east", "growth": 0 }),
          BlockPermutation.resolve("minecraft:wildflowers", { "minecraft:cardinal_direction": "east", "growth": 1 }),
          BlockPermutation.resolve("minecraft:wildflowers", { "minecraft:cardinal_direction": "east", "growth": 2 }),
          BlockPermutation.resolve("ntk:short_lush_bush"),
          BlockPermutation.resolve("ntk:tall_lush_bush"),
          BlockPermutation.resolve("minecraft:bush"),
          BlockPermutation.resolve("minecraft:firefly_bush"),
          // Grass & Sprouts:
          BlockPermutation.resolve("minecraft:short_grass"),
          BlockPermutation.resolve("minecraft:fern"),
          BlockPermutation.resolve("minecraft:short_dry_grass"),
          BlockPermutation.resolve("ntk:short_moss_sprouts"),
          BlockPermutation.resolve("ntk:short_mycelium_sprouts"),
          BlockPermutation.resolve("minecraft:tall_dry_grass"),
          BlockPermutation.resolve("minecraft:seagrass", { "sea_grass_type": "default" }),
          // Soil Blocks:
          BlockPermutation.resolve("minecraft:grass_block"),
          BlockPermutation.resolve("minecraft:mycelium"),
          BlockPermutation.resolve("minecraft:moss_block"),
          BlockPermutation.resolve("minecraft:pale_moss_block"),
          BlockPermutation.resolve("minecraft:crimson_nylium"),
          BlockPermutation.resolve("minecraft:warped_nylium"),
          BlockPermutation.resolve("ntk:corrupted_dirt"),
        ]
      },
      true
    );
    plantFlourishing(blocksArea, magicSpell.dimension);
  }
  if (magicSpell.typeId === "ntk:miscellaneous_flourishing_magic_spell_2") {
    const radius = 8;
    const min = {
      x: magicLocation.x - radius,
      y: magicLocation.y - radius,
      z: magicLocation.z - radius
    };
    const max = {
      x: magicLocation.x + radius,
      y: magicLocation.y + radius,
      z: magicLocation.z + radius
    };
    const volume = new BlockVolume(min, max);
    const blocksArea = magicSpell.dimension.getBlocks(
      volume,
      { 
        includePermutations: [
          BlockPermutation.resolve("minecraft:beetroot", { "growth": 0 }),
          BlockPermutation.resolve("minecraft:beetroot", { "growth": 1 }),
          BlockPermutation.resolve("minecraft:beetroot", { "growth": 2 }),
          BlockPermutation.resolve("minecraft:beetroot", { "growth": 3 }),
          BlockPermutation.resolve("minecraft:beetroot", { "growth": 4 }),
          BlockPermutation.resolve("minecraft:beetroot", { "growth": 5 }),
          BlockPermutation.resolve("minecraft:beetroot", { "growth": 6 }),
          BlockPermutation.resolve("minecraft:cocoa", { "direction": 0, "age": 0 }),
          BlockPermutation.resolve("minecraft:cocoa", { "direction": 0, "age": 1 }),
          BlockPermutation.resolve("minecraft:cocoa", { "direction": 1, "age": 0 }),
          BlockPermutation.resolve("minecraft:cocoa", { "direction": 1, "age": 1 }),
          BlockPermutation.resolve("minecraft:cocoa", { "direction": 2, "age": 0 }),
          BlockPermutation.resolve("minecraft:cocoa", { "direction": 2, "age": 1 }),
          BlockPermutation.resolve("minecraft:cocoa", { "direction": 3, "age": 0 }),
          BlockPermutation.resolve("minecraft:cocoa", { "direction": 3, "age": 1 }),
          BlockPermutation.resolve("minecraft:carrots", { "growth": 0 }),
          BlockPermutation.resolve("minecraft:carrots", { "growth": 1 }),
          BlockPermutation.resolve("minecraft:carrots", { "growth": 2 }),
          BlockPermutation.resolve("minecraft:carrots", { "growth": 3 }),
          BlockPermutation.resolve("minecraft:carrots", { "growth": 4 }),
          BlockPermutation.resolve("minecraft:carrots", { "growth": 5 }),
          BlockPermutation.resolve("minecraft:carrots", { "growth": 6 }),
          BlockPermutation.resolve("minecraft:melon_stem", { "growth": 0 }),
          BlockPermutation.resolve("minecraft:melon_stem", { "growth": 1 }),
          BlockPermutation.resolve("minecraft:melon_stem", { "growth": 2 }),
          BlockPermutation.resolve("minecraft:melon_stem", { "growth": 3 }),
          BlockPermutation.resolve("minecraft:melon_stem", { "growth": 4 }),
          BlockPermutation.resolve("minecraft:melon_stem", { "growth": 5 }),
          BlockPermutation.resolve("minecraft:melon_stem", { "growth": 6 }),
          BlockPermutation.resolve("minecraft:pitcher_crop", { "growth": 0, "upper_block_bit": false }),
          BlockPermutation.resolve("minecraft:pitcher_crop", { "growth": 0, "upper_block_bit": true }),
          BlockPermutation.resolve("minecraft:pitcher_crop", { "growth": 1, "upper_block_bit": false }),
          BlockPermutation.resolve("minecraft:pitcher_crop", { "growth": 1, "upper_block_bit": true }),
          BlockPermutation.resolve("minecraft:pitcher_crop", { "growth": 2, "upper_block_bit": false }),
          BlockPermutation.resolve("minecraft:pitcher_crop", { "growth": 2, "upper_block_bit": true }),
          BlockPermutation.resolve("minecraft:pitcher_crop", { "growth": 3, "upper_block_bit": false }),
          BlockPermutation.resolve("minecraft:pitcher_crop", { "growth": 3, "upper_block_bit": true }),
          BlockPermutation.resolve("minecraft:potatoes", { "growth": 0 }),
          BlockPermutation.resolve("minecraft:potatoes", { "growth": 1 }),
          BlockPermutation.resolve("minecraft:potatoes", { "growth": 2 }),
          BlockPermutation.resolve("minecraft:potatoes", { "growth": 3 }),
          BlockPermutation.resolve("minecraft:potatoes", { "growth": 4 }),
          BlockPermutation.resolve("minecraft:potatoes", { "growth": 5 }),
          BlockPermutation.resolve("minecraft:potatoes", { "growth": 6 }),
          BlockPermutation.resolve("minecraft:pumpkin_stem", { "growth": 0 }),
          BlockPermutation.resolve("minecraft:pumpkin_stem", { "growth": 1 }),
          BlockPermutation.resolve("minecraft:pumpkin_stem", { "growth": 2 }),
          BlockPermutation.resolve("minecraft:pumpkin_stem", { "growth": 3 }),
          BlockPermutation.resolve("minecraft:pumpkin_stem", { "growth": 4 }),
          BlockPermutation.resolve("minecraft:pumpkin_stem", { "growth": 5 }),
          BlockPermutation.resolve("minecraft:pumpkin_stem", { "growth": 6 }),
          BlockPermutation.resolve("minecraft:reeds", { "age": 0 }),
          BlockPermutation.resolve("minecraft:reeds", { "age": 1 }),
          BlockPermutation.resolve("minecraft:reeds", { "age": 2 }),
          BlockPermutation.resolve("minecraft:reeds", { "age": 3 }),
          BlockPermutation.resolve("minecraft:reeds", { "age": 4 }),
          BlockPermutation.resolve("minecraft:reeds", { "age": 5 }),
          BlockPermutation.resolve("minecraft:reeds", { "age": 6 }),
          BlockPermutation.resolve("minecraft:reeds", { "age": 7 }),
          BlockPermutation.resolve("minecraft:reeds", { "age": 8 }),
          BlockPermutation.resolve("minecraft:reeds", { "age": 9 }),
          BlockPermutation.resolve("minecraft:reeds", { "age": 10 }),
          BlockPermutation.resolve("minecraft:reeds", { "age": 11 }),
          BlockPermutation.resolve("minecraft:reeds", { "age": 12 }),
          BlockPermutation.resolve("minecraft:reeds", { "age": 13 }),
          BlockPermutation.resolve("minecraft:reeds", { "age": 14 }),
          BlockPermutation.resolve("minecraft:reeds", { "age": 15 }),
          BlockPermutation.resolve("minecraft:sweet_berry_bush", { "growth": 0 }),
          BlockPermutation.resolve("minecraft:sweet_berry_bush", { "growth": 1 }),
          BlockPermutation.resolve("minecraft:sweet_berry_bush", { "growth": 2 }),
          BlockPermutation.resolve("minecraft:torchflower_crop", { "growth": 0 }),
          BlockPermutation.resolve("minecraft:torchflower_crop", { "growth": 1 }),
          BlockPermutation.resolve("minecraft:torchflower_crop", { "growth": 2 }),
          BlockPermutation.resolve("minecraft:torchflower_crop", { "growth": 3 }),
          BlockPermutation.resolve("minecraft:wheat", { "growth": 0 }),
          BlockPermutation.resolve("minecraft:wheat", { "growth": 1 }),
          BlockPermutation.resolve("minecraft:wheat", { "growth": 2 }),
          BlockPermutation.resolve("minecraft:wheat", { "growth": 3 }),
          BlockPermutation.resolve("minecraft:wheat", { "growth": 4 }),
          BlockPermutation.resolve("minecraft:wheat", { "growth": 5 }),
          BlockPermutation.resolve("minecraft:wheat", { "growth": 6 }),
          //Saplings:
          BlockPermutation.resolve("minecraft:bamboo"),
          BlockPermutation.resolve("minecraft:bamboo_sapling"),
          // Plants & Flowers:
          BlockPermutation.resolve("minecraft:pink_petals", { "minecraft:cardinal_direction": "south", "growth": 0 }),
          BlockPermutation.resolve("minecraft:pink_petals", { "minecraft:cardinal_direction": "south", "growth": 1 }),
          BlockPermutation.resolve("minecraft:pink_petals", { "minecraft:cardinal_direction": "south", "growth": 2 }),
          BlockPermutation.resolve("minecraft:pink_petals", { "minecraft:cardinal_direction": "west", "growth": 0 }),
          BlockPermutation.resolve("minecraft:pink_petals", { "minecraft:cardinal_direction": "west", "growth": 1 }),
          BlockPermutation.resolve("minecraft:pink_petals", { "minecraft:cardinal_direction": "west", "growth": 2 }),
          BlockPermutation.resolve("minecraft:pink_petals", { "minecraft:cardinal_direction": "north", "growth": 0 }),
          BlockPermutation.resolve("minecraft:pink_petals", { "minecraft:cardinal_direction": "north", "growth": 1 }),
          BlockPermutation.resolve("minecraft:pink_petals", { "minecraft:cardinal_direction": "north", "growth": 2 }),
          BlockPermutation.resolve("minecraft:pink_petals", { "minecraft:cardinal_direction": "east", "growth": 0 }),
          BlockPermutation.resolve("minecraft:pink_petals", { "minecraft:cardinal_direction": "east", "growth": 1 }),
          BlockPermutation.resolve("minecraft:pink_petals", { "minecraft:cardinal_direction": "east", "growth": 2 }),
          BlockPermutation.resolve("minecraft:wildflowers", { "minecraft:cardinal_direction": "south", "growth": 0 }),
          BlockPermutation.resolve("minecraft:wildflowers", { "minecraft:cardinal_direction": "south", "growth": 1 }),
          BlockPermutation.resolve("minecraft:wildflowers", { "minecraft:cardinal_direction": "south", "growth": 2 }),
          BlockPermutation.resolve("minecraft:wildflowers", { "minecraft:cardinal_direction": "west", "growth": 0 }),
          BlockPermutation.resolve("minecraft:wildflowers", { "minecraft:cardinal_direction": "west", "growth": 1 }),
          BlockPermutation.resolve("minecraft:wildflowers", { "minecraft:cardinal_direction": "west", "growth": 2 }),
          BlockPermutation.resolve("minecraft:wildflowers", { "minecraft:cardinal_direction": "north", "growth": 0 }),
          BlockPermutation.resolve("minecraft:wildflowers", { "minecraft:cardinal_direction": "north", "growth": 1 }),
          BlockPermutation.resolve("minecraft:wildflowers", { "minecraft:cardinal_direction": "north", "growth": 2 }),
          BlockPermutation.resolve("minecraft:wildflowers", { "minecraft:cardinal_direction": "east", "growth": 0 }),
          BlockPermutation.resolve("minecraft:wildflowers", { "minecraft:cardinal_direction": "east", "growth": 1 }),
          BlockPermutation.resolve("minecraft:wildflowers", { "minecraft:cardinal_direction": "east", "growth": 2 }),
          BlockPermutation.resolve("ntk:short_lush_bush"),
          BlockPermutation.resolve("ntk:tall_lush_bush"),
          BlockPermutation.resolve("minecraft:bush"),
          BlockPermutation.resolve("minecraft:firefly_bush"),
          // Grass & Sprouts:
          BlockPermutation.resolve("minecraft:short_grass"),
          BlockPermutation.resolve("minecraft:fern"),
          BlockPermutation.resolve("minecraft:short_dry_grass"),
          BlockPermutation.resolve("ntk:short_moss_sprouts"),
          BlockPermutation.resolve("ntk:short_mycelium_sprouts"),
          BlockPermutation.resolve("minecraft:tall_dry_grass"),
          BlockPermutation.resolve("minecraft:seagrass", { "sea_grass_type": "default" }),
          // Soil Blocks:
          BlockPermutation.resolve("minecraft:grass_block"),
          BlockPermutation.resolve("minecraft:mycelium"),
          BlockPermutation.resolve("minecraft:moss_block"),
          BlockPermutation.resolve("minecraft:pale_moss_block"),
          BlockPermutation.resolve("minecraft:crimson_nylium"),
          BlockPermutation.resolve("minecraft:warped_nylium"),
          BlockPermutation.resolve("ntk:corrupted_dirt"),
        ]
      },
      true
    );
    plantFlourishing(blocksArea, magicSpell.dimension);
  }
  if (magicSpell.typeId === "ntk:miscellaneous_flourishing_magic_spell_3") {
    const radius = 12;
    const min = {
      x: magicLocation.x - radius,
      y: magicLocation.y - radius,
      z: magicLocation.z - radius
    };
    const max = {
      x: magicLocation.x + radius,
      y: magicLocation.y + radius,
      z: magicLocation.z + radius
    };
    const volume = new BlockVolume(min, max);
    const blocksArea = magicSpell.dimension.getBlocks(
      volume,
      { 
        includePermutations: [
          BlockPermutation.resolve("minecraft:beetroot", { "growth": 0 }),
          BlockPermutation.resolve("minecraft:beetroot", { "growth": 1 }),
          BlockPermutation.resolve("minecraft:beetroot", { "growth": 2 }),
          BlockPermutation.resolve("minecraft:beetroot", { "growth": 3 }),
          BlockPermutation.resolve("minecraft:beetroot", { "growth": 4 }),
          BlockPermutation.resolve("minecraft:beetroot", { "growth": 5 }),
          BlockPermutation.resolve("minecraft:beetroot", { "growth": 6 }),
          BlockPermutation.resolve("minecraft:cocoa", { "direction": 0, "age": 0 }),
          BlockPermutation.resolve("minecraft:cocoa", { "direction": 0, "age": 1 }),
          BlockPermutation.resolve("minecraft:cocoa", { "direction": 1, "age": 0 }),
          BlockPermutation.resolve("minecraft:cocoa", { "direction": 1, "age": 1 }),
          BlockPermutation.resolve("minecraft:cocoa", { "direction": 2, "age": 0 }),
          BlockPermutation.resolve("minecraft:cocoa", { "direction": 2, "age": 1 }),
          BlockPermutation.resolve("minecraft:cocoa", { "direction": 3, "age": 0 }),
          BlockPermutation.resolve("minecraft:cocoa", { "direction": 3, "age": 1 }),
          BlockPermutation.resolve("minecraft:carrots", { "growth": 0 }),
          BlockPermutation.resolve("minecraft:carrots", { "growth": 1 }),
          BlockPermutation.resolve("minecraft:carrots", { "growth": 2 }),
          BlockPermutation.resolve("minecraft:carrots", { "growth": 3 }),
          BlockPermutation.resolve("minecraft:carrots", { "growth": 4 }),
          BlockPermutation.resolve("minecraft:carrots", { "growth": 5 }),
          BlockPermutation.resolve("minecraft:carrots", { "growth": 6 }),
          BlockPermutation.resolve("minecraft:melon_stem", { "growth": 0 }),
          BlockPermutation.resolve("minecraft:melon_stem", { "growth": 1 }),
          BlockPermutation.resolve("minecraft:melon_stem", { "growth": 2 }),
          BlockPermutation.resolve("minecraft:melon_stem", { "growth": 3 }),
          BlockPermutation.resolve("minecraft:melon_stem", { "growth": 4 }),
          BlockPermutation.resolve("minecraft:melon_stem", { "growth": 5 }),
          BlockPermutation.resolve("minecraft:melon_stem", { "growth": 6 }),
          BlockPermutation.resolve("minecraft:pitcher_crop", { "growth": 0, "upper_block_bit": false }),
          BlockPermutation.resolve("minecraft:pitcher_crop", { "growth": 0, "upper_block_bit": true }),
          BlockPermutation.resolve("minecraft:pitcher_crop", { "growth": 1, "upper_block_bit": false }),
          BlockPermutation.resolve("minecraft:pitcher_crop", { "growth": 1, "upper_block_bit": true }),
          BlockPermutation.resolve("minecraft:pitcher_crop", { "growth": 2, "upper_block_bit": false }),
          BlockPermutation.resolve("minecraft:pitcher_crop", { "growth": 2, "upper_block_bit": true }),
          BlockPermutation.resolve("minecraft:pitcher_crop", { "growth": 3, "upper_block_bit": false }),
          BlockPermutation.resolve("minecraft:pitcher_crop", { "growth": 3, "upper_block_bit": true }),
          BlockPermutation.resolve("minecraft:potatoes", { "growth": 0 }),
          BlockPermutation.resolve("minecraft:potatoes", { "growth": 1 }),
          BlockPermutation.resolve("minecraft:potatoes", { "growth": 2 }),
          BlockPermutation.resolve("minecraft:potatoes", { "growth": 3 }),
          BlockPermutation.resolve("minecraft:potatoes", { "growth": 4 }),
          BlockPermutation.resolve("minecraft:potatoes", { "growth": 5 }),
          BlockPermutation.resolve("minecraft:potatoes", { "growth": 6 }),
          BlockPermutation.resolve("minecraft:pumpkin_stem", { "growth": 0 }),
          BlockPermutation.resolve("minecraft:pumpkin_stem", { "growth": 1 }),
          BlockPermutation.resolve("minecraft:pumpkin_stem", { "growth": 2 }),
          BlockPermutation.resolve("minecraft:pumpkin_stem", { "growth": 3 }),
          BlockPermutation.resolve("minecraft:pumpkin_stem", { "growth": 4 }),
          BlockPermutation.resolve("minecraft:pumpkin_stem", { "growth": 5 }),
          BlockPermutation.resolve("minecraft:pumpkin_stem", { "growth": 6 }),
          BlockPermutation.resolve("minecraft:reeds", { "age": 0 }),
          BlockPermutation.resolve("minecraft:reeds", { "age": 1 }),
          BlockPermutation.resolve("minecraft:reeds", { "age": 2 }),
          BlockPermutation.resolve("minecraft:reeds", { "age": 3 }),
          BlockPermutation.resolve("minecraft:reeds", { "age": 4 }),
          BlockPermutation.resolve("minecraft:reeds", { "age": 5 }),
          BlockPermutation.resolve("minecraft:reeds", { "age": 6 }),
          BlockPermutation.resolve("minecraft:reeds", { "age": 7 }),
          BlockPermutation.resolve("minecraft:reeds", { "age": 8 }),
          BlockPermutation.resolve("minecraft:reeds", { "age": 9 }),
          BlockPermutation.resolve("minecraft:reeds", { "age": 10 }),
          BlockPermutation.resolve("minecraft:reeds", { "age": 11 }),
          BlockPermutation.resolve("minecraft:reeds", { "age": 12 }),
          BlockPermutation.resolve("minecraft:reeds", { "age": 13 }),
          BlockPermutation.resolve("minecraft:reeds", { "age": 14 }),
          BlockPermutation.resolve("minecraft:reeds", { "age": 15 }),
          BlockPermutation.resolve("minecraft:sweet_berry_bush", { "growth": 0 }),
          BlockPermutation.resolve("minecraft:sweet_berry_bush", { "growth": 1 }),
          BlockPermutation.resolve("minecraft:sweet_berry_bush", { "growth": 2 }),
          BlockPermutation.resolve("minecraft:torchflower_crop", { "growth": 0 }),
          BlockPermutation.resolve("minecraft:torchflower_crop", { "growth": 1 }),
          BlockPermutation.resolve("minecraft:torchflower_crop", { "growth": 2 }),
          BlockPermutation.resolve("minecraft:torchflower_crop", { "growth": 3 }),
          BlockPermutation.resolve("minecraft:wheat", { "growth": 0 }),
          BlockPermutation.resolve("minecraft:wheat", { "growth": 1 }),
          BlockPermutation.resolve("minecraft:wheat", { "growth": 2 }),
          BlockPermutation.resolve("minecraft:wheat", { "growth": 3 }),
          BlockPermutation.resolve("minecraft:wheat", { "growth": 4 }),
          BlockPermutation.resolve("minecraft:wheat", { "growth": 5 }),
          BlockPermutation.resolve("minecraft:wheat", { "growth": 6 }),
          //Saplings:
          BlockPermutation.resolve("minecraft:bamboo"),
          BlockPermutation.resolve("minecraft:bamboo_sapling"),
          // Plants & Flowers:
          BlockPermutation.resolve("minecraft:pink_petals", { "minecraft:cardinal_direction": "south", "growth": 0 }),
          BlockPermutation.resolve("minecraft:pink_petals", { "minecraft:cardinal_direction": "south", "growth": 1 }),
          BlockPermutation.resolve("minecraft:pink_petals", { "minecraft:cardinal_direction": "south", "growth": 2 }),
          BlockPermutation.resolve("minecraft:pink_petals", { "minecraft:cardinal_direction": "west", "growth": 0 }),
          BlockPermutation.resolve("minecraft:pink_petals", { "minecraft:cardinal_direction": "west", "growth": 1 }),
          BlockPermutation.resolve("minecraft:pink_petals", { "minecraft:cardinal_direction": "west", "growth": 2 }),
          BlockPermutation.resolve("minecraft:pink_petals", { "minecraft:cardinal_direction": "north", "growth": 0 }),
          BlockPermutation.resolve("minecraft:pink_petals", { "minecraft:cardinal_direction": "north", "growth": 1 }),
          BlockPermutation.resolve("minecraft:pink_petals", { "minecraft:cardinal_direction": "north", "growth": 2 }),
          BlockPermutation.resolve("minecraft:pink_petals", { "minecraft:cardinal_direction": "east", "growth": 0 }),
          BlockPermutation.resolve("minecraft:pink_petals", { "minecraft:cardinal_direction": "east", "growth": 1 }),
          BlockPermutation.resolve("minecraft:pink_petals", { "minecraft:cardinal_direction": "east", "growth": 2 }),
          BlockPermutation.resolve("minecraft:wildflowers", { "minecraft:cardinal_direction": "south", "growth": 0 }),
          BlockPermutation.resolve("minecraft:wildflowers", { "minecraft:cardinal_direction": "south", "growth": 1 }),
          BlockPermutation.resolve("minecraft:wildflowers", { "minecraft:cardinal_direction": "south", "growth": 2 }),
          BlockPermutation.resolve("minecraft:wildflowers", { "minecraft:cardinal_direction": "west", "growth": 0 }),
          BlockPermutation.resolve("minecraft:wildflowers", { "minecraft:cardinal_direction": "west", "growth": 1 }),
          BlockPermutation.resolve("minecraft:wildflowers", { "minecraft:cardinal_direction": "west", "growth": 2 }),
          BlockPermutation.resolve("minecraft:wildflowers", { "minecraft:cardinal_direction": "north", "growth": 0 }),
          BlockPermutation.resolve("minecraft:wildflowers", { "minecraft:cardinal_direction": "north", "growth": 1 }),
          BlockPermutation.resolve("minecraft:wildflowers", { "minecraft:cardinal_direction": "north", "growth": 2 }),
          BlockPermutation.resolve("minecraft:wildflowers", { "minecraft:cardinal_direction": "east", "growth": 0 }),
          BlockPermutation.resolve("minecraft:wildflowers", { "minecraft:cardinal_direction": "east", "growth": 1 }),
          BlockPermutation.resolve("minecraft:wildflowers", { "minecraft:cardinal_direction": "east", "growth": 2 }),
          BlockPermutation.resolve("ntk:short_lush_bush"),
          BlockPermutation.resolve("ntk:tall_lush_bush"),
          BlockPermutation.resolve("minecraft:bush"),
          BlockPermutation.resolve("minecraft:firefly_bush"),
          // Grass & Sprouts:
          BlockPermutation.resolve("minecraft:short_grass"),
          BlockPermutation.resolve("minecraft:fern"),
          BlockPermutation.resolve("minecraft:short_dry_grass"),
          BlockPermutation.resolve("ntk:short_moss_sprouts"),
          BlockPermutation.resolve("ntk:short_mycelium_sprouts"),
          BlockPermutation.resolve("minecraft:tall_dry_grass"),
          BlockPermutation.resolve("minecraft:seagrass", { "sea_grass_type": "default" }),
          // Soil Blocks:
          BlockPermutation.resolve("minecraft:grass_block"),
          BlockPermutation.resolve("minecraft:mycelium"),
          BlockPermutation.resolve("minecraft:moss_block"),
          BlockPermutation.resolve("minecraft:pale_moss_block"),
          BlockPermutation.resolve("minecraft:crimson_nylium"),
          BlockPermutation.resolve("minecraft:warped_nylium"),
          BlockPermutation.resolve("ntk:corrupted_dirt"),
        ]
      },
      true
    );
    plantFlourishing(blocksArea, magicSpell.dimension);
  }
});
