- Replace per-body collision with single AABB collider for rigid entities - Entity has half_w/half_h defining the collider box - Separate axis resolution: X first (min-penetration push), then Y (velocity-direction push to handle floor/ceiling correctly) - Sliding: when hitting a wall, only X velocity is zeroed, Y continues - check_on_ground uses AABB bottom edge, not individual bodies - Fix: X resolution uses minimum penetration (was velocity-based, which pushed player through walls when velocity was zero) - Default scene: added water pool, lava pool, wood structure, sand dune, acid pool, stone wall obstacle - 28/28 tests passing
336 lines
24 KiB
Plaintext
336 lines
24 KiB
Plaintext
=== Verbatim Headless Run: 20 ticks ===
|
|
|
|
World: 250x250
|
|
Player start: (125.0, 242.0)
|
|
Camera: (85, 230)
|
|
|
|
=== Tick 0 (initial state) ===
|
|
30
|
|
31
|
|
32
|
|
33
|
|
34
|
|
35
|
|
36
|
|
37 TTTTT
|
|
38 T T
|
|
39 T T .
|
|
40 T T @@@@@ ...
|
|
41 T T ## @@@@@@ .....
|
|
42 T T ## @@@@@@ .......
|
|
43 T T ## @@@@@ """"""""""""" .........
|
|
44""" T T ## @@@@@ "":::::::::::::""" ..........
|
|
45:::""" ## """::::::::::::::::::"" ...........
|
|
46::::::"" ## "":::::::::::::::::::::::""".........
|
|
47::::::::"""""""""""""""""""""""""""""""""""::::::::::::::::::::::::::::"""""""""
|
|
48::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
|
49################################################################################
|
|
50????????????????????????????????????????????????????????????????????????????????
|
|
51????????????????????????????????????????????????????????????????????????????????
|
|
52????????????????????????????????????????????????????????????????????????????????
|
|
53????????????????????????????????????????????????????????????????????????????????
|
|
54????????????????????????????????????????????????????????????????????????????????
|
|
Player: "Player hp=100.0/100.0 pos=(125.0,242.0) bodies=27/27 on_fire=false"
|
|
Entities: 1
|
|
|
|
=== Tick 2 ===
|
|
30
|
|
31
|
|
32
|
|
33
|
|
34
|
|
35
|
|
36
|
|
37 TTTTT
|
|
38 T T
|
|
39 T T .
|
|
40 T T @@@@@ ...
|
|
41 T T ## @@@@@@ .....
|
|
42 T T ## @@@@@@ .......
|
|
43 T T ## @@@@@ """"""""""""" .........
|
|
44""" T T ## @@@@@ "":::::::::::::""" ..........
|
|
45:::""" ## """::::::::::::::::::"" ...........
|
|
46::::::"" ## "":::::::::::::::::::::::""".........
|
|
47::::::::"""""""""""""""""""""""""""""""""""::::::::::::::::::::::::::::"""""""""
|
|
48::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
|
49################################################################################
|
|
50????????????????????????????????????????????????????????????????????????????????
|
|
51????????????????????????????????????????????????????????????????????????????????
|
|
52????????????????????????????????????????????????????????????????????????????????
|
|
53????????????????????????????????????????????????????????????????????????????????
|
|
54????????????????????????????????????????????????????????????????????????????????
|
|
Player: "Player hp=100.0/100.0 pos=(125.0,242.1) bodies=27/27 on_fire=false"
|
|
Entities: 1
|
|
Alive entities: Player(hp=100, pos=(125.0, 242.11879))
|
|
|
|
=== Tick 4 ===
|
|
30
|
|
31
|
|
32
|
|
33
|
|
34
|
|
35
|
|
36
|
|
37 TTTTT
|
|
38 T T
|
|
39 T T .
|
|
40 T T @@@@@ ...
|
|
41 T T ## @@@@@@ .....
|
|
42 T T ## @@@@@@ .......
|
|
43 T T ## @@@@@ """"""""""""" .........
|
|
44""" T T ## @@@@@ "":::::::::::::""" ..........
|
|
45:::""" ## """::::::::::::::::::"" ...........
|
|
46::::::"" ## "":::::::::::::::::::::::""".........
|
|
47::::::::"""""""""""""""""""""""""""""""""""::::::::::::::::::::::::::::"""""""""
|
|
48::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
|
49################################################################################
|
|
50????????????????????????????????????????????????????????????????????????????????
|
|
51????????????????????????????????????????????????????????????????????????????????
|
|
52????????????????????????????????????????????????????????????????????????????????
|
|
53????????????????????????????????????????????????????????????????????????????????
|
|
54????????????????????????????????????????????????????????????????????????????????
|
|
Player: "Player hp=100.0/100.0 pos=(125.0,242.4) bodies=27/27 on_fire=false"
|
|
Entities: 1
|
|
Alive entities: Player(hp=100, pos=(125.0, 242.38817))
|
|
|
|
=== Tick 6 ===
|
|
30
|
|
31
|
|
32
|
|
33
|
|
34
|
|
35
|
|
36
|
|
37 TTTTT
|
|
38 T T
|
|
39 T T .
|
|
40 T T @@@@@ ...
|
|
41 T T ## @@@@@@ .....
|
|
42 T T ## @@@@@@ .......
|
|
43 T T ## @@@@@ """"""""""""" .........
|
|
44""" T T ## @@@@@ "":::::::::::::""" ..........
|
|
45:::""" ## """::::::::::::::::::"" ...........
|
|
46::::::"" ## "":::::::::::::::::::::::""".........
|
|
47::::::::"""""""""""""""""""""""""""""""""""::::::::::::::::::::::::::::"""""""""
|
|
48::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
|
49################################################################################
|
|
50????????????????????????????????????????????????????????????????????????????????
|
|
51????????????????????????????????????????????????????????????????????????????????
|
|
52????????????????????????????????????????????????????????????????????????????????
|
|
53????????????????????????????????????????????????????????????????????????????????
|
|
54????????????????????????????????????????????????????????????????????????????????
|
|
Player: "Player hp=100.0/100.0 pos=(125.0,242.8) bodies=27/27 on_fire=false"
|
|
Entities: 1
|
|
Alive entities: Player(hp=100, pos=(125.0, 242.79922))
|
|
|
|
=== Tick 8 ===
|
|
31
|
|
32
|
|
33
|
|
34
|
|
35
|
|
36
|
|
37 TTTTT
|
|
38 T T
|
|
39 T T .
|
|
40 T T ...
|
|
41 T T ## @@@@@ .....
|
|
42 T T ## @@@@@@ .......
|
|
43 T T ## @@@@@@ """"""""""""" .........
|
|
44""" T T ## @@@@@ "":::::::::::::""" ..........
|
|
45:::""" ## @@@@@ """::::::::::::::::::"" ...........
|
|
46::::::"" ## "":::::::::::::::::::::::""".........
|
|
47::::::::"""""""""""""""""""""""""""""""""""::::::::::::::::::::::::::::"""""""""
|
|
48::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
|
49################################################################################
|
|
50????????????????????????????????????????????????????????????????????????????????
|
|
51????????????????????????????????????????????????????????????????????????????????
|
|
52????????????????????????????????????????????????????????????????????????????????
|
|
53????????????????????????????????????????????????????????????????????????????????
|
|
54????????????????????????????????????????????????????????????????????????????????
|
|
55????????????????????????????????????????????????????????????????????????????????
|
|
Player: "Player hp=100.0/100.0 pos=(125.0,243.3) bodies=27/27 on_fire=false"
|
|
Entities: 1
|
|
Alive entities: Player(hp=100, pos=(125.0, 243.3436))
|
|
|
|
=== Tick 10 ===
|
|
31
|
|
32
|
|
33
|
|
34
|
|
35
|
|
36
|
|
37 TTTTT
|
|
38 T T
|
|
39 T T .
|
|
40 T T ...
|
|
41 T T ## @@@@@ .....
|
|
42 T T ## @@@@@@ .......
|
|
43 T T ## @@@@@@ """"""""""""" .........
|
|
44""" T T ## @@@@@ "":::::::::::::""" ..........
|
|
45:::""" ## @@@@@ """::::::::::::::::::"" ...........
|
|
46::::::"" ## "":::::::::::::::::::::::""".........
|
|
47::::::::"""""""""""""""""""""""""""""""""""::::::::::::::::::::::::::::"""""""""
|
|
48::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
|
49################################################################################
|
|
50????????????????????????????????????????????????????????????????????????????????
|
|
51????????????????????????????????????????????????????????????????????????????????
|
|
52????????????????????????????????????????????????????????????????????????????????
|
|
53????????????????????????????????????????????????????????????????????????????????
|
|
54????????????????????????????????????????????????????????????????????????????????
|
|
55????????????????????????????????????????????????????????????????????????????????
|
|
Player: "Player hp=100.0/100.0 pos=(125.0,243.5) bodies=27/27 on_fire=false"
|
|
Entities: 1
|
|
Alive entities: Player(hp=100, pos=(125.0, 243.5))
|
|
|
|
=== Tick 12 ===
|
|
31
|
|
32
|
|
33
|
|
34
|
|
35
|
|
36
|
|
37 TTTTT
|
|
38 T T
|
|
39 T T .
|
|
40 T T ...
|
|
41 T T ## @@@@@ .....
|
|
42 T T ## @@@@@@ .......
|
|
43 T T ## @@@@@@ """"""""""""" .........
|
|
44""" T T ## @@@@@ "":::::::::::::""" ..........
|
|
45:::""" ## @@@@@ """::::::::::::::::::"" ...........
|
|
46::::::"" ## "":::::::::::::::::::::::""".........
|
|
47::::::::"""""""""""""""""""""""""""""""""""::::::::::::::::::::::::::::"""""""""
|
|
48::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
|
49################################################################################
|
|
50????????????????????????????????????????????????????????????????????????????????
|
|
51????????????????????????????????????????????????????????????????????????????????
|
|
52????????????????????????????????????????????????????????????????????????????????
|
|
53????????????????????????????????????????????????????????????????????????????????
|
|
54????????????????????????????????????????????????????????????????????????????????
|
|
55????????????????????????????????????????????????????????????????????????????????
|
|
Player: "Player hp=100.0/100.0 pos=(125.0,243.5) bodies=27/27 on_fire=false"
|
|
Entities: 1
|
|
Alive entities: Player(hp=100, pos=(125.0, 243.5))
|
|
|
|
=== Tick 14 ===
|
|
31
|
|
32
|
|
33
|
|
34
|
|
35
|
|
36
|
|
37 TTTTT
|
|
38 T T
|
|
39 T T .
|
|
40 T T ...
|
|
41 T T ## @@@@@ .....
|
|
42 T T ## @@@@@@ .......
|
|
43 T T ## @@@@@@ """"""""""""" .........
|
|
44""" T T ## @@@@@ "":::::::::::::""" ..........
|
|
45:::""" ## @@@@@ """::::::::::::::::::"" ...........
|
|
46::::::"" ## "":::::::::::::::::::::::""".........
|
|
47::::::::"""""""""""""""""""""""""""""""""""::::::::::::::::::::::::::::"""""""""
|
|
48::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
|
49################################################################################
|
|
50????????????????????????????????????????????????????????????????????????????????
|
|
51????????????????????????????????????????????????????????????????????????????????
|
|
52????????????????????????????????????????????????????????????????????????????????
|
|
53????????????????????????????????????????????????????????????????????????????????
|
|
54????????????????????????????????????????????????????????????????????????????????
|
|
55????????????????????????????????????????????????????????????????????????????????
|
|
Player: "Player hp=100.0/100.0 pos=(125.0,243.5) bodies=27/27 on_fire=false"
|
|
Entities: 1
|
|
Alive entities: Player(hp=100, pos=(125.0, 243.5))
|
|
|
|
=== Tick 16 ===
|
|
31
|
|
32
|
|
33
|
|
34
|
|
35
|
|
36
|
|
37 TTTTT
|
|
38 T T
|
|
39 T T .
|
|
40 T T ...
|
|
41 T T ## @@@@@ .....
|
|
42 T T ## @@@@@@ .......
|
|
43 T T ## @@@@@@ """"""""""""" .........
|
|
44""" T T ## @@@@@ "":::::::::::::""" ..........
|
|
45:::""" ## @@@@@ """::::::::::::::::::"" ...........
|
|
46::::::"" ## "":::::::::::::::::::::::""".........
|
|
47::::::::"""""""""""""""""""""""""""""""""""::::::::::::::::::::::::::::"""""""""
|
|
48::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
|
49################################################################################
|
|
50????????????????????????????????????????????????????????????????????????????????
|
|
51????????????????????????????????????????????????????????????????????????????????
|
|
52????????????????????????????????????????????????????????????????????????????????
|
|
53????????????????????????????????????????????????????????????????????????????????
|
|
54????????????????????????????????????????????????????????????????????????????????
|
|
55????????????????????????????????????????????????????????????????????????????????
|
|
Player: "Player hp=100.0/100.0 pos=(125.0,243.5) bodies=27/27 on_fire=false"
|
|
Entities: 1
|
|
Alive entities: Player(hp=100, pos=(125.0, 243.5))
|
|
|
|
=== Tick 18 ===
|
|
31
|
|
32
|
|
33
|
|
34
|
|
35
|
|
36
|
|
37 TTTTT
|
|
38 T T
|
|
39 T T .
|
|
40 T T ...
|
|
41 T T ## @@@@@ .....
|
|
42 T T ## @@@@@@ .......
|
|
43 T T ## @@@@@@ """"""""""""" .........
|
|
44""" T T ## @@@@@ "":::::::::::::""" ..........
|
|
45:::""" ## @@@@@ """::::::::::::::::::"" ...........
|
|
46::::::"" ## "":::::::::::::::::::::::""".........
|
|
47::::::::"""""""""""""""""""""""""""""""""""::::::::::::::::::::::::::::"""""""""
|
|
48::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
|
49################################################################################
|
|
50????????????????????????????????????????????????????????????????????????????????
|
|
51????????????????????????????????????????????????????????????????????????????????
|
|
52????????????????????????????????????????????????????????????????????????????????
|
|
53????????????????????????????????????????????????????????????????????????????????
|
|
54????????????????????????????????????????????????????????????????????????????????
|
|
55????????????????????????????????????????????????????????????????????????????????
|
|
Player: "Player hp=100.0/100.0 pos=(125.0,243.5) bodies=27/27 on_fire=false"
|
|
Entities: 1
|
|
Alive entities: Player(hp=100, pos=(125.0, 243.5))
|
|
|
|
=== Tick 20 ===
|
|
31
|
|
32
|
|
33
|
|
34
|
|
35
|
|
36
|
|
37 TTTTT
|
|
38 T T
|
|
39 T T .
|
|
40 T T ...
|
|
41 T T ## @@@@@ .....
|
|
42 T T ## @@@@@@ .......
|
|
43 T T ## @@@@@@ """"""""""""" .........
|
|
44""" T T ## @@@@@ "":::::::::::::""" ..........
|
|
45:::""" ## @@@@@ """::::::::::::::::::"" ...........
|
|
46::::::"" ## "":::::::::::::::::::::::""".........
|
|
47::::::::"""""""""""""""""""""""""""""""""""::::::::::::::::::::::::::::"""""""""
|
|
48::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
|
49################################################################################
|
|
50????????????????????????????????????????????????????????????????????????????????
|
|
51????????????????????????????????????????????????????????????????????????????????
|
|
52????????????????????????????????????????????????????????????????????????????????
|
|
53????????????????????????????????????????????????????????????????????????????????
|
|
54????????????????????????????????????????????????????????????????????????????????
|
|
55????????????????????????????????????????????????????????????????????????????????
|
|
Player: "Player hp=100.0/100.0 pos=(125.0,243.5) bodies=27/27 on_fire=false"
|
|
Entities: 1
|
|
Alive entities: Player(hp=100, pos=(125.0, 243.5))
|
|
|