feat: 5x5 entity (27 bodies), terminal viewport up to 250x120

- Entity: 5x5 grid body + 2-cell arm = 27 sub-bodies, radius 0.5
- Terminal: default 200x60, max 250x120 (was 250x80)
- 31 constraints (full grid + arm)
- Spawn height adjusted for 5-tall body
This commit is contained in:
Emil
2026-06-20 21:43:50 +03:00
parent 595edc3006
commit a731d5cbb7
4 changed files with 155 additions and 148 deletions
+118 -118
View File
@@ -1,10 +1,12 @@
=== Verbatim Headless Run: 20 ticks ===
World: 250x250
Player start: (125.0, 244.0)
Camera: (85, 232)
Player start: (125.0, 242.0)
Camera: (85, 230)
=== Tick 0 (initial state) ===
30
31
32
33
34
@@ -13,12 +15,12 @@ Camera: (85, 232)
37
38
39
40
41
42
43 @@@ """""""""""""
44""" @@@@ "":::::::::::::"""
45:::""" @@@ """::::::::::::::::::""
40 @@@@@
41 @@@@@@
42 @@@@@@
43 @@@@@ """""""""""""
44""" @@@@@ "":::::::::::::"""
45:::""" """::::::::::::::::::""
46::::::"" "":::::::::::::::::::::::"""
47::::::::"""""""""""""""""""""""""""""""""""::::::::::::::::::::::::::::"""""""""
48::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
@@ -28,12 +30,12 @@ Camera: (85, 232)
52????????????????????????????????????????????????????????????????????????????????
53????????????????????????????????????????????????????????????????????????????????
54????????????????????????????????????????????????????????????????????????????????
55????????????????????????????????????????????????????????????????????????????????
56????????????????????????????????????????????????????????????????????????????????
Player: "Player hp=100.0/100.0 pos=(125.0,244.0) bodies=10/10 on_fire=false"
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
@@ -42,12 +44,12 @@ Entities: 1
37
38
39
40
41
42
43 @@@ """""""""""""
44""" @@@@ "":::::::::::::"""
45:::""" @@@ """::::::::::::::::::""
40 @@@@@
41 @@@@@@
42 @@@@@@
43 @@@@@ """""""""""""
44""" @@@@@ "":::::::::::::"""
45:::""" """::::::::::::::::::""
46::::::"" "":::::::::::::::::::::::"""
47::::::::"""""""""""""""""""""""""""""""""""::::::::::::::::::::::::::::"""""""""
48::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
@@ -57,13 +59,13 @@ Entities: 1
52????????????????????????????????????????????????????????????????????????????????
53????????????????????????????????????????????????????????????????????????????????
54????????????????????????????????????????????????????????????????????????????????
55????????????????????????????????????????????????????????????????????????????????
56????????????????????????????????????????????????????????????????????????????????
Player: "Player hp=100.0/100.0 pos=(125.0,244.1) bodies=10/10 on_fire=false"
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, 244.11879))
Alive entities: Player(hp=100, pos=(125.0, 242.11879))
=== Tick 4 ===
30
31
32
33
34
@@ -72,12 +74,12 @@ Alive entities: Player(hp=100, pos=(125.0, 244.11879))
37
38
39
40
41
42
43 @@@ """""""""""""
44""" @@@@ "":::::::::::::"""
45:::""" @@@ """::::::::::::::::::""
40 @@@@@
41 @@@@@@
42 @@@@@@
43 @@@@@ """""""""""""
44""" @@@@@ "":::::::::::::"""
45:::""" """::::::::::::::::::""
46::::::"" "":::::::::::::::::::::::"""
47::::::::"""""""""""""""""""""""""""""""""""::::::::::::::::::::::::::::"""""""""
48::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
@@ -87,13 +89,42 @@ Alive entities: Player(hp=100, pos=(125.0, 244.11879))
52????????????????????????????????????????????????????????????????????????????????
53????????????????????????????????????????????????????????????????????????????????
54????????????????????????????????????????????????????????????????????????????????
55????????????????????????????????????????????????????????????????????????????????
56????????????????????????????????????????????????????????????????????????????????
Player: "Player hp=100.0/100.0 pos=(125.0,244.4) bodies=10/10 on_fire=false"
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, 244.38817))
Alive entities: Player(hp=100, pos=(125.0, 242.38817))
=== Tick 6 ===
30
31
32
33
34
35
36
37
38
39
40 @@@@@
41 @@@@@@
42 @@@@@@
43 @@@@@ """""""""""""
44""" @@@@@ "":::::::::::::"""
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
@@ -103,11 +134,11 @@ Alive entities: Player(hp=100, pos=(125.0, 244.38817))
38
39
40
41
42
43 @@@ """""""""""""
44""" @@@@ "":::::::::::::"""
45:::""" @@@ """::::::::::::::::::""
41 @@@@@
42 @@@@@@
43 @@@@@@ """""""""""""
44""" @@@@@ "":::::::::::::"""
45:::""" @@@@@ """::::::::::::::::::""
46::::::"" "":::::::::::::::::::::::"""
47::::::::"""""""""""""""""""""""""""""""""""::::::::::::::::::::::::::::"""""""""
48::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
@@ -118,42 +149,12 @@ Alive entities: Player(hp=100, pos=(125.0, 244.38817))
53????????????????????????????????????????????????????????????????????????????????
54????????????????????????????????????????????????????????????????????????????????
55????????????????????????????????????????????????????????????????????????????????
56????????????????????????????????????????????????????????????????????????????????
Player: "Player hp=100.0/100.0 pos=(125.0,244.8) bodies=10/10 on_fire=false"
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, 244.79922))
=== Tick 8 ===
33
34
35
36
37
38
39
40
41
42
43 """""""""""""
44""" @@@ "":::::::::::::"""
45:::""" @@@@ """::::::::::::::::::""
46::::::"" @@@ "":::::::::::::::::::::::"""
47::::::::"""""""""""""""""""""""""""""""""""::::::::::::::::::::::::::::"""""""""
48::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
49################################################################################
50????????????????????????????????????????????????????????????????????????????????
51????????????????????????????????????????????????????????????????????????????????
52????????????????????????????????????????????????????????????????????????????????
53????????????????????????????????????????????????????????????????????????????????
54????????????????????????????????????????????????????????????????????????????????
55????????????????????????????????????????????????????????????????????????????????
56????????????????????????????????????????????????????????????????????????????????
57????????????????????????????????????????????????????????????????????????????????
Player: "Player hp=100.0/100.0 pos=(125.0,245.3) bodies=10/10 on_fire=false"
Entities: 1
Alive entities: Player(hp=100, pos=(125.0, 245.3436))
Alive entities: Player(hp=100, pos=(125.0, 243.3436))
=== Tick 10 ===
32
33
34
35
@@ -163,11 +164,11 @@ Alive entities: Player(hp=100, pos=(125.0, 245.3436))
39
40
41
42
43 """""""""""""
44""" @@@ "":::::::::::::"""
45:::""" @@@@ """::::::::::::::::::""
46::::::"" @@@ "":::::::::::::::::::::::"""
42 @@@@@
43 @@@@@@ """""""""""""
44""" @@@@@@ "":::::::::::::"""
45:::""" @@@@@ """::::::::::::::::::""
46::::::"" @@@@@"":::::::::::::::::::::::"""
47::::::::"""""""""""""""""""""""""""""""""""::::::::::::::::::::::::::::"""""""""
48::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
49################################################################################
@@ -178,12 +179,12 @@ Alive entities: Player(hp=100, pos=(125.0, 245.3436))
54????????????????????????????????????????????????????????????????????????????????
55????????????????????????????????????????????????????????????????????????????????
56????????????????????????????????????????????????????????????????????????????????
57????????????????????????????????????????????????????????????????????????????????
Player: "Player hp=100.0/100.0 pos=(125.0,245.6) bodies=10/10 on_fire=false"
Player: "Player hp=100.0/100.0 pos=(125.0,244.0) bodies=27/27 on_fire=false"
Entities: 1
Alive entities: Player(hp=100, pos=(125.0, 245.55))
Alive entities: Player(hp=100, pos=(125.0, 244.01338))
=== Tick 12 ===
32
33
34
35
@@ -193,11 +194,11 @@ Alive entities: Player(hp=100, pos=(125.0, 245.55))
39
40
41
42
43 """""""""""""
44""" @@@ "":::::::::::::"""
45:::""" @@@@ """::::::::::::::::::""
46::::::"" @@@ "":::::::::::::::::::::::"""
42 @@@@@
43 @@@@@@ """""""""""""
44""" @@@@@@ "":::::::::::::"""
45:::""" @@@@@ """::::::::::::::::::""
46::::::"" @@@@@"":::::::::::::::::::::::"""
47::::::::"""""""""""""""""""""""""""""""""""::::::::::::::::::::::::::::"""""""""
48::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
49################################################################################
@@ -208,12 +209,12 @@ Alive entities: Player(hp=100, pos=(125.0, 245.55))
54????????????????????????????????????????????????????????????????????????????????
55????????????????????????????????????????????????????????????????????????????????
56????????????????????????????????????????????????????????????????????????????????
57????????????????????????????????????????????????????????????????????????????????
Player: "Player hp=100.0/100.0 pos=(125.0,245.6) bodies=10/10 on_fire=false"
Player: "Player hp=100.0/100.0 pos=(125.0,244.5) bodies=27/27 on_fire=false"
Entities: 1
Alive entities: Player(hp=100, pos=(125.0, 245.55))
Alive entities: Player(hp=100, pos=(125.0, 244.5))
=== Tick 14 ===
32
33
34
35
@@ -223,12 +224,12 @@ Alive entities: Player(hp=100, pos=(125.0, 245.55))
39
40
41
42
43" """""""""""""
44:""" @@@ "":::::::::::::"""
45::::""" @@@@ """::::::::::::::::::""
46:::::::"" @@@ "":::::::::::::::::::::::"""
47:::::::::"""""""""""""""""""""""""""""""""""::::::::::::::::::::::::::::""""""""
42 @@@@@
43 @@@@@@ """""""""""""
44""" @@@@@@ "":::::::::::::"""
45:::""" @@@@@ """::::::::::::::::::""
46::::::"" @@@@@"":::::::::::::::::::::::"""
47::::::::"""""""""""""""""""""""""""""""""""::::::::::::::::::::::::::::"""""""""
48::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
49################################################################################
50????????????????????????????????????????????????????????????????????????????????
@@ -238,12 +239,12 @@ Alive entities: Player(hp=100, pos=(125.0, 245.55))
54????????????????????????????????????????????????????????????????????????????????
55????????????????????????????????????????????????????????????????????????????????
56????????????????????????????????????????????????????????????????????????????????
57????????????????????????????????????????????????????????????????????????????????
Player: "Player hp=100.0/100.0 pos=(124.6,245.6) bodies=10/10 on_fire=false"
Player: "Player hp=100.0/100.0 pos=(125.0,244.5) bodies=27/27 on_fire=false"
Entities: 1
Alive entities: Player(hp=100, pos=(124.55, 245.55))
Alive entities: Player(hp=100, pos=(125.0, 244.5))
=== Tick 16 ===
32
33
34
35
@@ -253,11 +254,11 @@ Alive entities: Player(hp=100, pos=(124.55, 245.55))
39
40
41
42
43" """""""""""""
44:""" @@@ "":::::::::::::"""
45::::""" @@@@ """::::::::::::::::::""
46:::::::"" @@@ "":::::::::::::::::::::::"""
42 @@@@@
43" @@@@@@ """""""""""""
44:""" @@@@@@ "":::::::::::::"""
45::::""" @@@@@ """::::::::::::::::::""
46:::::::"" @@@@@ "":::::::::::::::::::::::"""
47:::::::::"""""""""""""""""""""""""""""""""""::::::::::::::::::::::::::::""""""""
48::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
49################################################################################
@@ -268,12 +269,12 @@ Alive entities: Player(hp=100, pos=(124.55, 245.55))
54????????????????????????????????????????????????????????????????????????????????
55????????????????????????????????????????????????????????????????????????????????
56????????????????????????????????????????????????????????????????????????????????
57????????????????????????????????????????????????????????????????????????????????
Player: "Player hp=100.0/100.0 pos=(124.6,245.6) bodies=10/10 on_fire=false"
Player: "Player hp=100.0/100.0 pos=(124.5,244.5) bodies=27/27 on_fire=false"
Entities: 1
Alive entities: Player(hp=100, pos=(124.55, 245.55))
Alive entities: Player(hp=100, pos=(124.5, 244.5))
=== Tick 18 ===
32
33
34
35
@@ -283,11 +284,11 @@ Alive entities: Player(hp=100, pos=(124.55, 245.55))
39
40
41
42
43" """""""""""""
44:""" @@@ "":::::::::::::"""
45::::""" @@@@ """::::::::::::::::::""
46:::::::"" @@@ "":::::::::::::::::::::::"""
42 @@@@@
43" @@@@@@ """""""""""""
44:""" @@@@@@ "":::::::::::::"""
45::::""" @@@@@ """::::::::::::::::::""
46:::::::"" @@@@@ "":::::::::::::::::::::::"""
47:::::::::"""""""""""""""""""""""""""""""""""::::::::::::::::::::::::::::""""""""
48::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
49################################################################################
@@ -298,12 +299,12 @@ Alive entities: Player(hp=100, pos=(124.55, 245.55))
54????????????????????????????????????????????????????????????????????????????????
55????????????????????????????????????????????????????????????????????????????????
56????????????????????????????????????????????????????????????????????????????????
57????????????????????????????????????????????????????????????????????????????????
Player: "Player hp=100.0/100.0 pos=(124.6,245.6) bodies=10/10 on_fire=false"
Player: "Player hp=100.0/100.0 pos=(124.5,244.5) bodies=27/27 on_fire=false"
Entities: 1
Alive entities: Player(hp=100, pos=(124.55, 245.55))
Alive entities: Player(hp=100, pos=(124.5, 244.5))
=== Tick 20 ===
32
33
34
35
@@ -313,11 +314,11 @@ Alive entities: Player(hp=100, pos=(124.55, 245.55))
39
40
41
42
43" """""""""""""
44:""" @@@ "":::::::::::::"""
45::::""" @@@@ """::::::::::::::::::""
46:::::::"" @@@ "":::::::::::::::::::::::"""
42 @@@@@
43" @@@@@@ """""""""""""
44:""" @@@@@@ "":::::::::::::"""
45::::""" @@@@@ """::::::::::::::::::""
46:::::::"" @@@@@ "":::::::::::::::::::::::"""
47:::::::::"""""""""""""""""""""""""""""""""""::::::::::::::::::::::::::::""""""""
48::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
49################################################################################
@@ -328,8 +329,7 @@ Alive entities: Player(hp=100, pos=(124.55, 245.55))
54????????????????????????????????????????????????????????????????????????????????
55????????????????????????????????????????????????????????????????????????????????
56????????????????????????????????????????????????????????????????????????????????
57????????????????????????????????????????????????????????????????????????????????
Player: "Player hp=100.0/100.0 pos=(124.6,245.6) bodies=10/10 on_fire=false"
Player: "Player hp=100.0/100.0 pos=(124.5,244.5) bodies=27/27 on_fire=false"
Entities: 1
Alive entities: Player(hp=100, pos=(124.55, 245.55))
Alive entities: Player(hp=100, pos=(124.5, 244.5))