Skip to content

✨ Atração de Orbes de Experiência (MC 26.1.2)

📌 Aviso sobre o Código-Fonte do Repositório: A documentação nesta Wiki reflete o estado atual do código-fonte no repositório, que pode incluir commits recentes ainda não lançados ou recursos em desenvolvimento antes das compilações públicas oficiais no CurseForge e Modrinth.

Infobox do RecursoParâmetros Técnicos
Classe da Entidade Alvonet.minecraft.world.entity.ExperienceOrb
Classe Gerenciadoranet.instantgratification.magnet.MagnetManager
GameRule de Habilitaçãoig:magnet_affects_xp (Padrão: true)
Consulta de Varreduraplayer.level().getEntitiesOfClass(ExperienceOrb.class, area, Entity::isAlive)
Tipo de PartículaParticleTypes.ELECTRIC_SPARK
Limite de Fontes de Partículasig:magnet_max_particle_sources (Padrão: 5)

📖 Mecânicas de Vácuo de Experiência

Sob a filosofia Instant Gratification, deixar orbes de experiência para trás prejudica o fluxo agradável do jogo. No Minecraft 26.1.2, as entidades ExperienceOrb são atraídas com física idêntica de velocidade e deslocamento de fase em relação aos itens dropados.

+------------------+     getEntitiesOfClass     +-----------------------+     MagnetMovement.pull     +--------------------+
| AABB Varredura   | -------------------------> | List<ExperienceOrb>   | --------------------------> | Coleta do Jogador  |
+------------------+                            +-----------------------+                             +--------------------+
                                                            |
                                                            v
                                                [Aplicar NoClip Deslocamento]
                                                [Aplicar Vetor Velocidade Lerp]
                                                [Faíscas com Limite de Fluxo]

⚡ Física Sincronizada & Deslocamento de Fase

  1. Deslocamento de Fase (NoClip): Os orbes de experiência atravessam blocos sólidos para evitar ficarem presos atrás de paredes ou cantos de teto.
  2. Interpolação de Velocidade: Os orbes aceleram suavemente em direção à posição dos olhos do jogador conforme as porcentagens configuradas de velocidade e aceleração.
  3. Restrição por Linha de Visão: Quando ig:magnet_los_only é verdadeiro, os orbes de XP devem estar visíveis para o jogador ou possuir momento de magnetização ativo.

🛡️ Prevenção de Lag & Agrupamento 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 Fontes de Partículas: Apenas as primeiras $N$ entidades por tick geram rastros visuais.
  • Fallback Seguro no Cliente: Em MagnetMovement.java, caso o nível não seja um ServerLevel, as partículas recorrem de forma transparente a level.addParticle(...).

⚙️ Configurações Relevantes & GameRules

GameRuleTipoPadrãoDescrição
ig:magnet_affects_xpBooleantrueDefine se o ímã atrai Orbes de Experiência.
ig:magnet_particlesBooleantrueAlternância principal para efeitos visuais de partículas.
ig:magnet_particle_countInteger1Quantidade de partículas de faísca geradas por entidade a cada tick de partícula.
ig:magnet_max_particle_sourcesInteger5Quantidade máxima de entidades autorizadas a emitir partículas simultaneamente.

🔗 Documentação da Wiki Relacionada

Official documentation & web portal for Dasik Igaijinn mods.