small racing game im working on
-rw-r--r--classes/track.gd8
-rw-r--r--race.gd4
-rw-r--r--scenes/track-base.gd2
-rw-r--r--tracks/test.tres3
-rw-r--r--ui/laps.gd2
5 files changed, 10 insertions, 9 deletions
diff --git a/classes/track.gd b/classes/track.gd
index 349dc78..9764ccc 100644
--- a/classes/track.gd
+++ b/classes/track.gd
@@ -31,8 +31,8 @@ class_name TrackResource
## Offset the entire track
@export var offset := Vector3.UP
@export_group("Race")
-## Num laps, 0 = no laps
-@export var laps := 0
+## Num laps, 1 = go to finish and done
+@export var laps := 1
@export_subgroup("Checkpoints")
## Place the path offsets of checkpoint locations in this array
@export var checkpoints: PackedFloat32Array = []
@@ -50,9 +50,9 @@ class_name TrackResource
@export var finish_scale := Vector3.ONE
@export var finish_needs_collision := false
@export_subgroup("Start")
-## Start location in path offset (unused if [member laps] > 0)
+## Start location in path offset (unused if [member laps] > 1)
@export var start_location: float = 0.0
-## Start scene (disregarded if [member laps] > 0)
+## Start scene (disregarded if [member laps] > 1)
@export var start_scene: PackedScene = preload("res://scenes/ring_start.tscn")
## How much to scale the start (see above)
@export var start_scale := Vector3.ONE
diff --git a/race.gd b/race.gd
index ff1a3db..c8dcafb 100644
--- a/race.gd
+++ b/race.gd
@@ -5,7 +5,7 @@ extends Node3D
@export var track: TrackLoader
@export var splits: Control
@export var timer: Control
-@onready var data := TrackSaveableData.new(track.checkpoints.size(), track.track.laps if track.track.laps else 1)
+@onready var data := TrackSaveableData.new(track.checkpoints.size(), track.track.laps)
@onready var best_time_data := TrackSaveableData._load(saves % track.track.name)
var car: Car
var ghost: GhostCar
@@ -57,7 +57,7 @@ func _ready() -> void:
if data.checkpoints[current_lap][i] < 0:
return
collect(-1)
- if not track.track.laps or track.track.laps - 1 == current_lap:
+ if track.track.laps - 1 == current_lap:
finished.emit()
playing = false
print("finished")
diff --git a/scenes/track-base.gd b/scenes/track-base.gd
index 4a429b7..fdf2b7b 100644
--- a/scenes/track-base.gd
+++ b/scenes/track-base.gd
@@ -108,7 +108,7 @@ func _update():
checkpoints.append(c)
finish = make_follower(track.finish_scene, track.finish_location, track.finish_scale, track.finish_needs_collision)
- if track.laps == 0:
+ if track.laps == 1:
var s: Start = make_follower(track.start_scene, track.start_location, track.start_scale, track.start_needs_collision)
start_pos = s.global_position
start_rot = s.rotation
diff --git a/tracks/test.tres b/tracks/test.tres
index 504ef4b..d19c967 100644
--- a/tracks/test.tres
+++ b/tracks/test.tres
@@ -17,10 +17,11 @@ left_barrier = true
right_barrier = true
sun_x = -90
sun_y = 0
+overview_height = 200.0
name = "test"
is_loop = false
offset = Vector3(0, 1, 0)
-laps = 0
+laps = 1
checkpoints = PackedFloat32Array(0.5)
checkpoint_scene = ExtResource("1_ra7ed")
checkpoint_scale = Vector3(0.4, 0.4, 0.4)
diff --git a/ui/laps.gd b/ui/laps.gd
index 9189a17..c33a886 100644
--- a/ui/laps.gd
+++ b/ui/laps.gd
@@ -6,7 +6,7 @@ extends PanelContainer
var lap := 0
func _ready() -> void:
- visible = track.track.laps
+ visible = track.track.laps > 1
increment()
func increment() -> void: