mirror of
https://gitlab.bixilon.de/bixilon/pixlyzer-physics.git
synced 2025-08-03 10:16:54 -04:00
126 lines
2.8 KiB
Markdown
126 lines
2.8 KiB
Markdown
# pixlyzer-physics
|
|
|
|
This [pixlyzer](https://gitlab.bixilon.de/bixilon/pixlyzer) module runs physics test on minecraft and extracts data from it.
|
|
|
|
## Use cases
|
|
|
|
- Anti cheat development
|
|
- 3rd party clients/servers to not get banned, e.g. integration tests in [Minosoft](https://gitlab.bixilon.de/bixilon/minosoft)
|
|
- Maybe mojang themselves? (check if nothing broke in their messy code)
|
|
|
|
## What affects movement (client side)?
|
|
|
|
(This list aims to be perfect, but you know its probably not)
|
|
|
|
- input (keys, mouse)
|
|
- walking
|
|
- sprint
|
|
- sneak
|
|
- rotating
|
|
- jumping
|
|
- gravity
|
|
- potions/modifiers
|
|
- ~~speed/slowness~~ (sent by server)
|
|
- levitation
|
|
- jump boost
|
|
- blindness
|
|
- slow falling
|
|
- dolphins grace
|
|
- ~~correct expiring (count ticks)~~ (sent by server)
|
|
- hunger
|
|
- swimming
|
|
- elytra (also boosting with firework rocket)
|
|
- enchantments
|
|
- depth strider
|
|
- ~~frost walker~~
|
|
- ~~soul speed~~
|
|
- swift sneak
|
|
- riptide
|
|
- armor
|
|
- leather boots on powder snow
|
|
- ~~knockback resistance~~
|
|
- items
|
|
- usable items (e.g. bow, shield)
|
|
- trident (with riptide)
|
|
- ~~damage~~
|
|
- blocks
|
|
- collisions
|
|
- block motion (e.g. piston, shulker box)
|
|
- block pushing
|
|
- prevent unsneak
|
|
- climbing (e.g. ladders)
|
|
- scaffolding
|
|
- stepping (e.g. stairs)
|
|
- honey
|
|
- soul sand
|
|
- fences
|
|
- bouncing
|
|
- bed
|
|
- slime
|
|
- slow movement
|
|
- powder snow
|
|
- sweet berry bush
|
|
- cobweb
|
|
- slippery movement
|
|
- ice
|
|
- vehicles
|
|
- riding (e.g. horse, strider, ...)
|
|
- jump strength
|
|
- time on space bar
|
|
- boats
|
|
- minecarts
|
|
- ...
|
|
- fluids
|
|
- water (also bubble column with soul sand/magma blocks)
|
|
- lava (also dimension `ultra_warm`)
|
|
- flying (creative)
|
|
- spectator
|
|
- gamemode
|
|
- and spectating other entities
|
|
- death
|
|
- entities
|
|
- cramming/pushing
|
|
- auto jump
|
|
- sleeping
|
|
- fishing rod?
|
|
- precision loss (high coordinates 20M+)
|
|
- world border
|
|
- end of world (everything >= 30M)
|
|
- abilities (flying, walk speed, fly speed)
|
|
- tags
|
|
- tags
|
|
|
|
## Additional entity physics
|
|
|
|
## Ridable entities
|
|
|
|
(only client controlled)
|
|
|
|
- strider (with warped fungus on a stick)
|
|
- pig (with carrot on a stick)
|
|
- all horses (with controls and jumping)
|
|
- boat
|
|
|
|
## Client calculated
|
|
|
|
- items
|
|
- projectiles
|
|
- firework rockets
|
|
- fishing bobber
|
|
|
|
## Non physics things
|
|
|
|
- client side biome noise
|
|
- digging times
|
|
|
|
## About consistency
|
|
|
|
Tests are general non-mutable, so a diff is possible between versions.
|
|
New tests can/will always be added, existing tests may only be changed if they break or are considered wrong.
|
|
|
|
Parkour code (attach debugger in `ClientPlayerEntity`, where `getTutorialManager` is called):
|
|
|
|
```java
|
|
"f="+input.pressingForward+",b="+input.pressingBack+",l="+input.pressingLeft+",r="+input.pressingRight+",j="+input.jumping+",sn="+input.sneaking+",sp="+client.options.sprintKey.isPressed()+" --> "+getX()+"|"+getY()+"|"+getZ()+" "+yaw+"|"+pitch
|
|
```
|