Skip to content

✨ Atracción de Orbes de Experiencia (MC 26.1.2)

📌 Descargo de Responsabilidad del Código del Repositorio: La documentación de esta Wiki refleja el estado actual del código fuente en el repositorio, que puede incluir confirmaciones recientes no publicadas o características en desarrollo antes de las versiones públicas en CurseForge y Modrinth.

Infobox de CaracterísticaParámetros Técnicos
Clase de Entidad Objetivonet.minecraft.world.entity.ExperienceOrb
Clase Gestoranet.instantgratification.magnet.MagnetManager
GameRule Habilitadoraig:magnet_affects_xp (Por Defecto: true)
Consulta de Escaneoplayer.level().getEntitiesOfClass(ExperienceOrb.class, area, Entity::isAlive)
Tipo de PartículaParticleTypes.ELECTRIC_SPARK
Límite de Fuentes de Partículasig:magnet_max_particle_sources (Por Defecto: 5)

📖 Mecánicas de Atracción de Experiencia

Bajo la filosofía Instant Gratification, dejar orbes de experiencia olvidados va en contra de la fluidez del juego. En Minecraft 26.1.2, las entidades ExperienceOrb son atraídas con idénticas físicas de velocidad y cambio de fase que los objetos caídos.

+------------------+     getEntitiesOfClass     +-----------------------+     MagnetMovement.pull     +--------------------+
| AABB Escaneo Jug.| -------------------------> | List<ExperienceOrb>   | --------------------------> | Recolección Jugador|
+------------------+                            +-----------------------+                             +--------------------+
                                                            |
                                                            v
                                                [Aplicar NoClip Fase]
                                                [Aplicar Vector Vel. Lerp]
                                                [Partículas Chispa Limit.]

⚡ Física Sincronizada y Cambio de Fase

  1. Cambio de Fase (NoClip): Los orbes de experiencia atraviesan bloques sólidos para evitar quedar atrapados tras muros o en esquinas de techos.
  2. Interpolación de Velocidad: Los orbes aceleran suavemente hacia los ojos del jugador utilizando los porcentajes configurados de velocidad y aceleración.
  3. Control por LOS: Cuando ig:magnet_los_only es true, los orbes de XP deben ser visibles para el jugador o disponer de inercia de magnetización activa.

🛡️ Prevención de Lag y Agrupamiento de Partículas

java
int maxParticleSources = ModGameRules.getInt(player.level(), ModGameRules.MAGNET_MAX_PARTICLE_SOURCES);
int particleSourceCount = 0;

for (ExperienceOrb orb : orbs) {
    boolean shouldSpawnParticles = false;
    if (particleSourceCount < maxParticleSources) {
        shouldSpawnParticles = true;
        particleSourceCount++;
    }
    MagnetMovement.pull(orb, player, shouldSpawnParticles);
}
  • Máximo de Fuentes de Partículas: Solo las primeras $N$ entidades por tick generan estelas visuales.
  • Mecanismo de Respaldo Seguro para Cliente: En MagnetMovement.java, si el nivel no es un ServerLevel, las partículas recurren de forma segura a level.addParticle(...).

⚙️ Configuración y GameRules Pertinentes

GameRuleTipoPor DefectoDescripción
ig:magnet_affects_xpBooleanotrueDetermina si el imán atrae Orbes de Experiencia.
ig:magnet_particlesBooleanotrueInterruptor maestro para los efectos de partículas.
ig:magnet_particle_countEntero1Partículas de chispa generadas por entidad por tick de partículas.
ig:magnet_max_particle_sourcesEntero5Máximo de entidades autorizadas a emitir partículas simultáneamente.

🔗 Documentación Relacionada de la Wiki

Official documentation & web portal for Dasik Igaijinn mods.