# 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 ```