{
  "format_version": "1.10.0",
  "particle_effect": {
    "description": {
      "identifier": "minecraft:portal_reverse_particle",
      "basic_render_parameters": {
        "material": "particles_blend",
        "texture": "textures/particle/portal_effect"  // Cambiar a la textura portal_effect
      }
    },
    "components": {
      "minecraft:emitter_rate_steady": {
        "spawn_rate": 3,
        "max_particles": 20
      },
      "minecraft:emitter_lifetime_once": {
        "active_time": 10
      },
      "minecraft:emitter_lifetime_expression": {
        "activation_expression": 1,
        "expiration_expression": 0
      },
      "minecraft:emitter_shape_box": {
        "offset": [ 0.5, 0, 0.5 ],
        "half_dimensions": [0.5, 0, 0.5],
        "direction": [0, 0, 0],
        "surface_only": true
      },
      "minecraft:particle_initial_speed": 0.0,

      "minecraft:particle_lifetime_expression": {
        "max_lifetime": "Math.Random(3.0, 3.1)"
      },

      "minecraft:particle_initialization": {
        "per_update_expression": "variable.alpha = variable.particle_age/variable.particle_lifetime; variable.distance = (1-(-1*(variable.alpha)+Math.Pow((variable.alpha),2)*2));",
        "per_render_expression": "variable.alpha = variable.particle_age/variable.particle_lifetime; variable.distance = (1-(-1*(variable.alpha)+Math.Pow((variable.alpha),2)*2));"
      },

      "minecraft:particle_motion_dynamic": {
        "linear_acceleration": [ "variable.direction.x * variable.distance", "variable.direction.y * variable.distance + variable.alpha", "variable.direction.z * variable.distance" ]
      },

      "minecraft:particle_appearance_billboard": {
        "size": [
          "(variable.particle_random_2 * 0.09 + 0.4) * (1 - (variable.particle_age/variable.particle_lifetime))",
          "(variable.particle_random_2 * 0.09 + 0.4) * (1 - (variable.particle_age/variable.particle_lifetime))"
        ],
        "facing_camera_mode": "lookat_xyz",

        "uv": {
          "texture_width": 160,  // Cambiar a 160 para la textura portal_effect
          "texture_height": 20,  // Cambiar a 20 para la textura portal_effect
          "uv": [ "Math.round(variable.particle_random_1*8)*20", 0 ],  // Ajuste para seleccionar áreas de 20x20
          "uv_size": [ 20, 20 ]  // Cada área es de 20x20
        }
      },
      "minecraft:particle_appearance_tinting": {
        "color": [ "variable.particle_random_1 * 0.6 + 0.4", "(variable.particle_random_1 * 0.6 + 0.4) * 0.3", "(variable.particle_random_1 * 0.6 + 0.4) * 0.9", 1.0 ]
      }
    }
  }
}