Correção de Velocidade em Repouso
Esta página documenta a resolução de leituras fantasmas (1.57 m/s) ao ficar parado sobre blocos.
📊 Infobox de correção de repouso no solo
| Aspecto | Implementação legada (v1.0.0) | Implementação moderna (v1.1.0+) |
|---|---|---|
| Método físico | Delta de posição personalizada ($\Delta p = p_t - p_{t-1}$) | API nativa Entity.getKnownSpeed() |
| Problema de repouso | Mostrava $1.57\text{ m/s}$ por reinicializações de gravidade | Mostra $0.00\text{ b/s}$ com clareza |
| Detecção de solo | Verificações pontuais de colisão de blocos | Gerenciamento nativo de vetores de velocidade do Minecraft |
| Precisão | Propenso a erros de arredondamento | 100% de precisão alinhada com a física vanilla |
🛠 Análise do problema e solução
O artefato de repouso legado
Nas primeiras versões (v1.0.0), subtrair coordenadas entre quadros causava um bug: no chão, o Minecraft redefine continuamente a velocidade descendente ($v_y \approx -0.0784$), sendo registrado como movimento ($1.57\text{ m/s}$).
A solução: integração nativa com getKnownSpeed()
A partir da v1.1.0, o Speedometer eliminou o cálculo de delta de posição personalizado em favor da API nativa Entity.getKnownSpeed() do Minecraft:
java
Vec3 knownSpeed = entity.getKnownSpeed();Jogadores parados reportam perfeitamente $(0.00, 0.00, 0.00)$, resultando em $0.00\text{ b/s}$.
