import { world, system } from "@minecraft/server";
export default function growTreeCoconut(location, fruit, playerplaced, dimension) {
  const overworld = world.getDimension("overworld");
  const rotations = ["0_degrees", "180_degrees", "270_degrees", "90_degrees"];
  const offsets = [0, 0, 1, 2];
  var randomIndex, fruitParts, fruitName;
  try {
    let treernd = 0;
    dimension.runCommand(`setblock ${location.x} ${location.y} ${location.z} air replace`);
    randomIndex = Math.floor(Math.random() * 4.0);
    if (playerplaced) {
      treernd = Math.floor(Math.random() * 7.0);
    } else {
      treernd = Math.floor(Math.random() * 7.0);
    }
    fruitParts = fruit.split(":");
    fruitName = fruitParts.length > 1 ? fruitParts[1].split("_")[0] : fruitParts[0];
    if (treernd == 0) {
      dimension.runCommand(
        `structure load "float_fc/${fruitName}_tree_5x5_1" ${location.x - 2} ${location.y - 1} ${location.z - 2} ${
          rotations[randomIndex]
        } none layer_by_layer 3`
      );
    } else if (treernd == 1) {
      dimension.runCommand(
        `structure load "float_fc/${fruitName}_tree_5x5_2" ${location.x - 2} ${location.y - 1} ${location.z - 2} ${
          rotations[randomIndex]
        } none layer_by_layer 3`
      );
    } else if (treernd == 2) {
      dimension.runCommand(
        `structure load "float_fc/${fruitName}_tree_7x7_3" ${location.x - 3} ${location.y - 1} ${location.z - 3} ${
          rotations[randomIndex]
        } none layer_by_layer 3`
      );
    } else if (treernd == 3) {
      dimension.runCommand(
        `structure load "float_fc/${fruitName}_tree_9x9_4" ${location.x - 4} ${location.y - 1} ${location.z - 4} ${
          rotations[randomIndex]
        } none layer_by_layer 3`
      );
    } else if (treernd == 4) {
      dimension.runCommand(
        `structure load "float_fc/${fruitName}_tree_9x9_5" ${location.x - 4} ${location.y - 1} ${location.z - 4} ${
          rotations[randomIndex]
        } none layer_by_layer 3`
      );
    } else if (treernd == 5) {
      dimension.runCommand(
        `structure load "float_fc/${fruitName}_tree_11x11_6" ${location.x - 5} ${location.y - 1} ${location.z - 5} ${
          rotations[randomIndex]
        } none layer_by_layer 3`
      );
    } else if (treernd == 6) {
      dimension.runCommand(
        `structure load "float_fc/${fruitName}_tree_11x11_7" ${location.x - 5} ${location.y - 1} ${location.z - 5} ${
          rotations[randomIndex]
        } none layer_by_layer 3`
      );
    } else {
      dimension.runCommand(
        `structure load "float_fc/${fruitName}_tree_13x13_8" ${location.x - 6} ${location.y - 1} ${location.z - 6} ${
          rotations[randomIndex]
        } none layer_by_layer 3`
      );
    }
    let leaf = fruit.replace("sapling", "leaf");
    system.runTimeout(() => {
      dimension.runCommand(
        `event entity @e[type=${leaf},x=${location.x},y=${location.y},z=${location.z},r=20] float_fc:fully_grown`
      );
    }, 100);
  } catch (e) {}
  randomIndex = fruitParts = fruitName = undefined;
  return null;
}
