import { system, world } from "@minecraft/server";

const tracked = new Map();

system.runInterval(() => {
  const overworld = world.getDimension("overworld");

  // Revisa todas las entidades (jugadores, ítems, mobs, botes, etc.)
  for (const entity of overworld.getEntities()) {
    // Ubicación redondeada
    const pos = {
      x: Math.floor(entity.location.x),
      y: Math.floor(entity.location.y),
      z: Math.floor(entity.location.z)
    };

    const block = overworld.getBlock(pos);
    if (!block?.typeId.includes("water")) continue;

    const prev = tracked.get(entity.id);

    if (!prev || prev.x !== pos.x || prev.y !== pos.y || prev.z !== pos.z) {
      // Se movió → genera partícula
      overworld.spawnParticle("pa:olas", {
        x: pos.x + 0.5,
        y: pos.y + 0.1,
        z: pos.z + 0.5
      });
      tracked.set(entity.id, pos);
    } else {
      // Está quieto → probabilidad baja de generar otra ola
      if (Math.random() < 0.05) {
        overworld.spawnParticle("pa:olas", {
          x: pos.x + 0.5,
          y: pos.y + 0.1,
          z: pos.z + 0.5
        });
      }
    }
  }
}, 5);