small racing game im working on
-rw-r--r--assets/cars/kenney_sedan/sedan.tscn14
-rw-r--r--tracks.cfg955
-rw-r--r--ui/editor/export.gd2
-rw-r--r--ui/editor/track_select.gd2
-rw-r--r--ui/track_button.gd9
-rw-r--r--ui/tracks.gd1
6 files changed, 967 insertions, 16 deletions
diff --git a/assets/cars/kenney_sedan/sedan.tscn b/assets/cars/kenney_sedan/sedan.tscn
index b897942..db56f8f 100644
--- a/assets/cars/kenney_sedan/sedan.tscn
+++ b/assets/cars/kenney_sedan/sedan.tscn
@@ -323,12 +323,12 @@ _surfaces = [{
blend_shape_mode = 0
shadow_mesh = SubResource("ArrayMesh_8qmjc")
-[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_uyq1o"]
-radius = 0.845291
-height = 5.12084
+[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_bmf3l"]
+radius = 0.797748
+height = 3.2258
[sub_resource type="BoxShape3D" id="BoxShape3D_mkjgy"]
-size = Vector3(2.353, 3.44463, 1)
+size = Vector3(3.5539, 4.38351, 1.91819)
[node name="Sedan" type="VehicleBody3D"]
collision_layer = 2
@@ -444,11 +444,11 @@ stream = ExtResource("19_stkh0")
volume_db = -10.0
[node name="coll1" type="CollisionShape3D" parent="."]
-transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 1.25229, 0)
-shape = SubResource("CapsuleShape3D_uyq1o")
+transform = Transform3D(-4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0, 1, 0, 1.17949, -1.89264)
+shape = SubResource("CapsuleShape3D_bmf3l")
[node name="coll2" type="CollisionShape3D" parent="."]
-transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 2.01516, 0.558206)
+transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 1.59047, 0.423482)
shape = SubResource("BoxShape3D_mkjgy")
[connection signal="shifted" from="." to="Gearbox" method="_on_sedan_shifted"]
diff --git a/tracks.cfg b/tracks.cfg
index 1512d26..b13590d 100644
--- a/tracks.cfg
+++ b/tracks.cfg
@@ -191,4 +191,957 @@
"o": Vector3(0, 1, 0),
"x": -45,
"y": 0
-}]
+}, {
+"b": Array[Dictionary]([{
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10, 250, -10),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10, 250, 0),
+"w": 2
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10, 250, -20),
+"w": 1
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 250, -10),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 250, 0),
+"w": 2
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 250, -20),
+"w": 1
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 250, -10),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 250, 0),
+"w": 2
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 250, -20),
+"w": 1
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 20, 250, -10),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 20, 250, 0),
+"w": 2
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 20, 250, -20),
+"w": 1
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -20, 250, -10),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -20, 250, 0),
+"w": 2
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -20, 250, -20),
+"w": 1
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30, 250, -10),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30, 250, 0),
+"w": 2
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30, 250, -20),
+"w": 1
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 40, 250, -10),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 40, 250, 0),
+"w": 2
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 40, 250, -20),
+"w": 1
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 50, 250, -10),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 50, 250, 0),
+"w": 2
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 50, 250, -20),
+"w": 1
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 60, 250, -10),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 60, 250, 0),
+"w": 2
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 60, 250, -20),
+"w": 1
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 70, 250, -10),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 70, 250, 0),
+"w": 2
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 70, 250, -20),
+"w": 1
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 80, 250, -10),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 80, 250, 0),
+"w": 2
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 80, 250, -20),
+"w": 1
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 90, 250, -10),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 90, 250, 0),
+"w": 2
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 90, 250, -20),
+"w": 1
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 100, 250, -10),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 100, 250, 0),
+"w": 2
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 100, 250, -20),
+"w": 1
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 110, 250, -10),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 110, 250, 0),
+"w": 2
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 110, 250, -20),
+"w": 1
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 120, 250, -10),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 120, 250, 0),
+"w": 2
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 120, 250, -20),
+"w": 1
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 130, 250, -10),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 130, 250, 0),
+"w": 2
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 130, 250, -20),
+"w": 1
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 140, 250, -10),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 140, 250, 0),
+"w": 2
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 140, 250, -20),
+"w": 1
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 150, 250, -10),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 150, 250, 0),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 150, 250, -20),
+"w": 1
+}, {
+"b": 8,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 160, 250, 0),
+"w": 0
+}, {
+"b": 10,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 180, 250, 0),
+"w": 8
+}, {
+"b": 9,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 170, 250, 0),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 160, 250, 10),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 170, 250, 10),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 180, 250, 10),
+"w": 8
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 160, 250, 20),
+"w": 4
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 170, 250, 20),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 180, 250, 20),
+"w": 8
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 160, 250, 30),
+"w": 4
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 170, 250, 30),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 180, 250, 30),
+"w": 8
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 160, 250, 40),
+"w": 4
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 170, 250, 40),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 180, 250, 40),
+"w": 8
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 160, 250, 50),
+"w": 4
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 170, 250, 50),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 180, 250, 50),
+"w": 8
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 160, 250, 60),
+"w": 4
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 170, 250, 60),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 180, 250, 60),
+"w": 8
+}, {
+"b": 1,
+"m": 1,
+"t": Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 150, 250, 10),
+"w": 1
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 170, 250, 70),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 160, 250, 70),
+"w": 2
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 180, 250, 70),
+"w": 1
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 170, 250, 80),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 160, 250, 80),
+"w": 2
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 180, 250, 80),
+"w": 1
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 170, 250, 90),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 160, 250, 90),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 180, 250, 90),
+"w": 1
+}, {
+"b": 8,
+"m": 1,
+"t": Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 160, 250, 100),
+"w": 0
+}, {
+"b": 10,
+"m": 1,
+"t": Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 160, 250, 120),
+"w": 8
+}, {
+"b": 9,
+"m": 1,
+"t": Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 160, 250, 110),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 150, 250, 100),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 150, 250, 110),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 150, 250, 120),
+"w": 8
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 140, 250, 100),
+"w": 4
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 140, 250, 110),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 140, 250, 120),
+"w": 8
+}, {
+"b": 1,
+"m": 1,
+"t": Transform3D(1.31134e-07, 0, 1, 0, 1, 0, -1, 0, 1.31134e-07, 150, 250, 90),
+"w": 1
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30, 250, 110),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30, 250, 120),
+"w": 2
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30, 250, 100),
+"w": 1
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 40, 250, 110),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 40, 250, 120),
+"w": 2
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 40, 250, 100),
+"w": 1
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 50, 250, 110),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 50, 250, 120),
+"w": 2
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 50, 250, 100),
+"w": 1
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 60, 250, 110),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 60, 250, 120),
+"w": 2
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 60, 250, 100),
+"w": 1
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 70, 250, 110),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 70, 250, 120),
+"w": 2
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 70, 250, 100),
+"w": 1
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 80, 250, 110),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 80, 250, 120),
+"w": 2
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 80, 250, 100),
+"w": 1
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 90, 250, 110),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 90, 250, 120),
+"w": 2
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 90, 250, 100),
+"w": 1
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 100, 250, 110),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 100, 250, 120),
+"w": 2
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 100, 250, 100),
+"w": 1
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 110, 250, 110),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 110, 250, 120),
+"w": 2
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 110, 250, 100),
+"w": 1
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 120, 250, 110),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 120, 250, 120),
+"w": 2
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 120, 250, 100),
+"w": 1
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 130, 250, 110),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 130, 250, 120),
+"w": 2
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 130, 250, 100),
+"w": 1
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 250, 110),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 250, 120),
+"w": 2
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 250, 100),
+"w": 1
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 20, 250, 110),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 20, 250, 120),
+"w": 2
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 20, 250, 100),
+"w": 1
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10, 250, 110),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10, 250, 120),
+"w": 2
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10, 250, 100),
+"w": 1
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 250, 110),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 250, 120),
+"w": 2
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 250, 100),
+"w": 1
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, -20, 250, 110),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, -20, 250, 100),
+"w": 2
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, -20, 250, 120),
+"w": 1
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, -30, 250, 110),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, -30, 250, 100),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, -30, 250, 120),
+"w": 1
+}, {
+"b": 8,
+"m": 1,
+"t": Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, -40, 250, 100),
+"w": 0
+}, {
+"b": 10,
+"m": 1,
+"t": Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, -60, 250, 100),
+"w": 8
+}, {
+"b": 9,
+"m": 1,
+"t": Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, -50, 250, 100),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, -40, 250, 90),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, -50, 250, 90),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, -60, 250, 90),
+"w": 8
+}, {
+"b": 1,
+"m": 1,
+"t": Transform3D(1, 0, -1.74846e-07, 0, 1, 0, 1.74846e-07, 0, 1, -30, 250, 90),
+"w": 1
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1.31134e-07, 0, 1, 0, 1, 0, -1, 0, 1.31134e-07, -50, 250, 20),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1.31134e-07, 0, 1, 0, 1, 0, -1, 0, 1.31134e-07, -40, 250, 20),
+"w": 2
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1.31134e-07, 0, 1, 0, 1, 0, -1, 0, 1.31134e-07, -60, 250, 20),
+"w": 1
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1.31134e-07, 0, 1, 0, 1, 0, -1, 0, 1.31134e-07, -50, 250, 10),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1.31134e-07, 0, 1, 0, 1, 0, -1, 0, 1.31134e-07, -40, 250, 10),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1.31134e-07, 0, 1, 0, 1, 0, -1, 0, 1.31134e-07, -60, 250, 10),
+"w": 1
+}, {
+"b": 8,
+"m": 1,
+"t": Transform3D(1.31134e-07, 0, 1, 0, 1, 0, -1, 0, 1.31134e-07, -40, 250, 0),
+"w": 0
+}, {
+"b": 10,
+"m": 1,
+"t": Transform3D(1.31134e-07, 0, 1, 0, 1, 0, -1, 0, 1.31134e-07, -40, 250, -20),
+"w": 8
+}, {
+"b": 9,
+"m": 1,
+"t": Transform3D(1.31134e-07, 0, 1, 0, 1, 0, -1, 0, 1.31134e-07, -40, 250, -10),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1.31134e-07, 0, 1, 0, 1, 0, -1, 0, 1.31134e-07, -30, 250, 0),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1.31134e-07, 0, 1, 0, 1, 0, -1, 0, 1.31134e-07, -30, 250, -10),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1.31134e-07, 0, 1, 0, 1, 0, -1, 0, 1.31134e-07, -30, 250, -20),
+"w": 8
+}, {
+"b": 1,
+"m": 1,
+"t": Transform3D(-2.18557e-07, 0, -1, 0, 1, 0, 1, 0, -2.18557e-07, -30, 250, 10),
+"w": 1
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -60, 250, 30),
+"w": 4
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -50, 250, 30),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -40, 250, 30),
+"w": 8
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -60, 250, 40),
+"w": 4
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -50, 250, 40),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -40, 250, 40),
+"w": 8
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -60, 250, 50),
+"w": 4
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -50, 250, 50),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -40, 250, 50),
+"w": 8
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -60, 250, 60),
+"w": 4
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -50, 250, 60),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -40, 250, 60),
+"w": 8
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -60, 250, 70),
+"w": 4
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -50, 250, 70),
+"w": 0
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -40, 250, 70),
+"w": 8
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -60, 250, 80),
+"w": 2
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -40, 250, 80),
+"w": 8
+}, {
+"b": 7,
+"m": 1,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -50, 250, 80),
+"w": 0
+}, {
+"b": 12,
+"m": 8,
+"t": Transform3D(2, 0, 0, 0, 2, 0, 0, 0, 2, -50, 255, 60),
+"w": 0
+}, {
+"b": 12,
+"m": 8,
+"t": Transform3D(-8.74228e-08, 0, -2, 0, 2, 0, 2, 0, -8.74228e-08, 60, 245, 110),
+"w": 0
+}, {
+"b": 13,
+"m": 16,
+"t": Transform3D(-8.74228e-08, 0, -2, 0, 2, 0, 2, 0, -8.74228e-08, 60, 247.5, -10),
+"w": 0
+}, {
+"b": 14,
+"m": 32,
+"t": Transform3D(-2, 0, 3.01992e-07, 0, 2, 0, -3.01992e-07, 0, -2, 170, 255, 60),
+"w": 0
+}, {
+"b": 15,
+"m": 0,
+"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -50.4331, 250.446, -20.655),
+"w": 0
+}]),
+"h": 300.0,
+"l": 3,
+"n": "loop",
+"o": Vector3(0, 1, 0),
+"x": -90,
+"y": 0
+}] \ No newline at end of file
diff --git a/ui/editor/export.gd b/ui/editor/export.gd
index d62aaaa..371fbfa 100644
--- a/ui/editor/export.gd
+++ b/ui/editor/export.gd
@@ -4,7 +4,7 @@ class_name EditorMarshalling
@onready var editor: TrackEditor = owner
func _pressed() -> void:
- var enc := EditorMarshalling.td2s(editor.to_trackdata())
+ var enc := EditorMarshalling.td2s(editor.get_trackdata())
print_rich("exporting to `[code]%s[/code]`" % enc) # for funny clipboard shenanigans
DisplayServer.clipboard_set(enc)
diff --git a/ui/editor/track_select.gd b/ui/editor/track_select.gd
index e7ed050..6582ef3 100644
--- a/ui/editor/track_select.gd
+++ b/ui/editor/track_select.gd
@@ -18,7 +18,7 @@ func _ready() -> void:
func _on_mkbutton(b: TrackButton, t: TrackResource) -> void:
@warning_ignore("static_called_on_instance")
- b.include.connect(func(): other.add(t); BuiltinTrackSelect.delete(t); b.queue_free())
+ b.include.connect(func(): other.add(t); TrackSelect.delete(t); b.queue_free())
func _on_new_pressed() -> void:
var res := TrackResource.new([])
diff --git a/ui/track_button.gd b/ui/track_button.gd
index 97aca44..59ac21b 100644
--- a/ui/track_button.gd
+++ b/ui/track_button.gd
@@ -13,14 +13,11 @@ const trackloader_scn = preload("res://scenes/track.tscn")
var editable := false # can edit
var dev := false # can edit main tracks and can move tracks into main
-var builtin := false # added to tracks.cfg
-func _ready() -> void:
+func init(t: TrackResource, g: GhostData) -> void:
%edit.visible = editable || dev
%delete.visible = editable || dev
- %include.visible = dev && !builtin
-
-func init(t: TrackResource, g: GhostData) -> void:
+ %include.visible = dev && !t.builtin
%name.text = t.name
t.name_changed.connect(func(n: String): %name.text = n)
if g == null:
@@ -28,11 +25,11 @@ func init(t: TrackResource, g: GhostData) -> void:
%time.text = "no time set"
else:
%time.text = GameTimer.format_precise(g.time)
- builtin = t.builtin
var tex := Thumbnail._load(Globals.THUMBS % t.name, Thumbnail.hash_b(t.bytes()), false)
if tex == null:
tex = await mkthumb(t)
%thumb.texture = ImageTexture.create_from_image(tex)
+
# update thumb on save
t.saved.connect(func(): %thumb.texture = ImageTexture.create_from_image(await mkthumb(t)))
diff --git a/ui/tracks.gd b/ui/tracks.gd
index e1e139c..38093e2 100644
--- a/ui/tracks.gd
+++ b/ui/tracks.gd
@@ -14,6 +14,7 @@ func _load():
Globals.builtin_tracks.append(loaded)
func add(t: TrackResource):
+ t.builtin = true
mkbutton(t)
Globals.builtin_tracks.append(t)
BuiltinTrackSelect.store_all()