small racing game im working on
Diffstat (limited to 'scenes/track-base.gd')
| -rw-r--r-- | scenes/track-base.gd | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/scenes/track-base.gd b/scenes/track-base.gd index 5ab1bb5..a320614 100644 --- a/scenes/track-base.gd +++ b/scenes/track-base.gd @@ -2,6 +2,7 @@ extends Path3D class_name TrackLoader +@export_group("Track") @export var track: TrackResource = null: set(new_track): if track != new_track: @@ -20,8 +21,9 @@ class_name TrackLoader @onready var rail_l := $"Rail-L" as CSGPolygon3D @onready var rail_r := $"Rail-R" as CSGPolygon3D @onready var collision := $CollisionShape as CSGPolygon3D +@onready var sun := $Sun as DirectionalLight3D -var is_dirty = true +var is_dirty := true func vec(x := 0.0, y := 0.0) -> Vector2: return Vector2(x, y) @@ -29,24 +31,28 @@ func vec(x := 0.0, y := 0.0) -> Vector2: func _update(): if !is_dirty or !track or !track.track: - # curve = null + # curve = null # editor freezes with this, idk why return curve = track.track curve.set_point_tilt(0, PI/2) curve.set_point_tilt(curve.get_point_count() - 1, 0.0) + sun.rotation_degrees.x = (track.sun_x) + sun.rotation_degrees.y = (track.sun_y) + + # update our track - var thw: float = track.track_width * 0.5 # track half width + var thw := track.track_width * 0.5 # track half width road.polygon = PackedVector2Array([vec(-thw), vec(-thw, -0.1), vec(thw, -0.1), vec(thw)]) support.polygon = PackedVector2Array([ - vec(-thw - 2.0, -0.17), - vec( thw + 2.0, -0.17), + vec(-thw - 2.0, -1), + vec( thw + 2.0, -1), vec( track.lower_support_width + 0.1, -track.support_height), vec(-track.lower_support_width, -track.support_height) ]) # update our rails - var rp: float = thw + track.rail_distance # rail position + var rp := thw + track.rail_distance # rail position rail_l.polygon = PackedVector2Array([ vec(rp, 0.5), vec(rp - 0.05, 0.47), @@ -86,6 +92,9 @@ func _update(): c.set(7, Vector2(-rp, 5.0)) collision.polygon = c + # annd offset + position = track.offset + is_dirty = false func _ready(): |