Import sample project
All checks were successful
/ build (push) Successful in 1m13s

This commit is contained in:
Nick Guy 2024-05-27 17:35:59 +01:00
parent b477f9b376
commit adacb22e71
120 changed files with 2955 additions and 7 deletions

6
.gitattribute Normal file
View file

@ -0,0 +1,6 @@
*.gd eol=lf
*.tscn eol=lf
*.material eol=lf
*.cfg eol=lf
*.godot eol=lf
*.import eol=lf

View file

@ -0,0 +1,2 @@
Camera3D
CSGBox3D

View file

@ -0,0 +1,48 @@
[docks]
dock_1_selected_tab_idx=0
dock_2_selected_tab_idx=0
dock_3_selected_tab_idx=0
dock_4_selected_tab_idx=0
dock_5_selected_tab_idx=0
dock_6_selected_tab_idx=0
dock_7_selected_tab_idx=0
dock_8_selected_tab_idx=0
dock_floating={}
dock_split_2=0
dock_split_3=0
dock_hsplit_1=0
dock_hsplit_2=270
dock_hsplit_3=-270
dock_hsplit_4=0
dock_filesystem_split=0
dock_filesystem_display_mode=0
dock_filesystem_file_sort=0
dock_filesystem_file_list_display_mode=1
dock_filesystem_selected_paths=PackedStringArray("res://town/town_scene.tscn")
dock_filesystem_uncollapsed_paths=PackedStringArray("Favorites", "res://", "res://town/")
dock_3="Scene,Import"
dock_4="FileSystem"
dock_5="Inspector,Node,History"
[EditorNode]
open_scenes=PackedStringArray("res://node_3d.tscn", "res://town/town_scene.tscn")
current_scene="res://town/town_scene.tscn"
center_split_offset=0
selected_default_debugger_tab_idx=0
selected_main_editor_idx=1
[ScriptEditor]
open_scripts=[]
selected_script=""
open_help=[]
script_split_offset=70
list_split_offset=0
[ShaderEditor]
open_shaders=[]
split_offset=0
selected_shader=""

View file

@ -0,0 +1,3 @@
[folding]
sections_unfolded=PackedStringArray()

View file

View file

@ -1,4 +1,45 @@
ea4bc82a6ad023ab7ee23ee620429895
::res://::1716826573
::res://::1716827728
default_env.tres::Environment::-1::1716823813::0::1::::<><>::
export_presets.cfg::TextFile::-1::1716826851::0::1::::<><>::
icon.png::CompressedTexture2D::4377832383621260559::1716823813::1716826574::1::::<><>::
icon.webp::CompressedTexture2D::3626017087650301524::1716827726::1716827730::1::::<><>::
node_3d.tscn::PackedScene::5734022820197298223::1716827531::0::1::::<><>::
README.md::TextFile::-1::1716827726::0::1::::<><>::
spedometer.gd::GDScript::-1::1716827726::0::1::::<>Button<>::
::res://car_select/::1716827726
car_select.gd::GDScript::-1::1716827726::0::1::::<>Control<>::
car_select.tscn::PackedScene::5519083593120862163::1716827726::0::1::::<><>::res://car_select/car_select.gd<>uid://bh7b4n4lg1uqt::::res://car_select/choose_van.png<>uid://hvkcmpdq1t0k::::res://car_select/choose_trailer.png<>uid://de7itkxhl0u28::::res://car_select/choose_tow.png
choose_tow.png::CompressedTexture2D::7506597740885427615::1716827726::1716827730::1::::<><>::
choose_trailer.png::CompressedTexture2D::535285233427956760::1716827726::1716827730::1::::<><>::
choose_van.png::CompressedTexture2D::2943915910416982227::1716827726::1716827730::1::::<><>::
::res://town/::1716827726
town_scene.tscn::PackedScene::8963914804262481880::1716827726::0::1::::<><>::uid://dfdgytsvtqxwv::::res://town/truck_town.glb<>res://spedometer.gd<>uid://b2g4dq0w72e68::::res://town/materials/grass.webp<>uid://bdjiubscxkdn6::::res://town/materials/cement.tres
truck_town.glb::PackedScene::7516807590272283437::1716827726::1716827731::1::::<><>::uid://bdjiubscxkdn6::::res://town/materials/cement.tres<>uid://c71ovlrgdfif5::::res://town/materials/grass.tres
::res://town/materials/::1716827726
cement.tres::StandardMaterial3D::2616088146665799013::1716827726::0::1::::<><>::uid://dkv00eeo3yu2w::::res://town/materials/cement.webp
cement.webp::CompressedTexture2D::7906065206908765244::1716827726::1716827731::1::::<><>::
grass.tres::StandardMaterial3D::7073446329274880064::1716827726::0::1::::<><>::uid://b2g4dq0w72e68::::res://town/materials/grass.webp
grass.webp::CompressedTexture2D::4295672758653397927::1716827726::1716827731::1::::<><>::
::res://vehicles/::1716827727
blob_shadow.png::CompressedTexture2D::3061404969606535202::1716827726::1716827730::1::::<><>::
car_base.tscn::PackedScene::6639054641309143335::1716827726::0::1::::<><>::res://vehicles/vehicle.gd<>uid://d4ostmqwgytk::::res://vehicles/particle_smoke.png<>uid://bqrwin8ccgptt::::res://vehicles/meshes/wheel.res<>uid://b2xi556mwp7ue::::res://vehicles/meshes/minivan.res<>res://vehicles/follow_camera.gd<>uid://cb7wvsd6vygd3::::res://vehicles/engine.wav<>uid://sy2li7u35867::::res://vehicles/impact_1.wav<>uid://bf0h7s81yr8nj::::res://vehicles/impact_2.wav<>uid://sun2n8a4xapl::::res://vehicles/impact_3.wav<>uid://dpbayeeufya21::::res://vehicles/impact_4.wav<>uid://bju75l2w3r7vq::::res://vehicles/blob_shadow.png
engine.wav::AudioStreamWAV::4910464526159239754::1716827726::1716827731::1::::<><>::
follow_camera.gd::GDScript::-1::1716827726::0::1::::<>Camera3D<>::
impact_1.wav::AudioStreamWAV::1314603724687552626::1716827726::1716827731::1::::<><>::
impact_2.wav::AudioStreamWAV::2789457507702027471::1716827726::1716827731::1::::<><>::
impact_3.wav::AudioStreamWAV::1305525011728930513::1716827726::1716827731::1::::<><>::
impact_4.wav::AudioStreamWAV::8214202159646518848::1716827727::1716827731::1::::<><>::
particle_smoke.png::CompressedTexture2D::271316685208785408::1716827727::1716827730::1::::<><>::
tow_truck.tscn::PackedScene::2945802589605193517::1716827727::0::1::::<><>::res://vehicles/vehicle.gd<>uid://bqrwin8ccgptt::::res://vehicles/meshes/wheel.res<>uid://cbpqxxd14g8un::::res://vehicles/meshes/tow_truck.res<>res://vehicles/follow_camera.gd<>uid://ctglc27jx8xe2::::res://vehicles/meshes/truck_cab.res<>uid://cb7wvsd6vygd3::::res://vehicles/engine.wav<>uid://sy2li7u35867::::res://vehicles/impact_1.wav<>uid://bf0h7s81yr8nj::::res://vehicles/impact_2.wav<>uid://sun2n8a4xapl::::res://vehicles/impact_3.wav<>uid://dpbayeeufya21::::res://vehicles/impact_4.wav<>uid://d4ostmqwgytk::::res://vehicles/particle_smoke.png<>uid://bju75l2w3r7vq::::res://vehicles/blob_shadow.png
trailer_truck.tscn::PackedScene::8369804417720244340::1716827727::0::1::::<><>::res://vehicles/vehicle.gd<>uid://bqrwin8ccgptt::::res://vehicles/meshes/wheel.res<>uid://ctglc27jx8xe2::::res://vehicles/meshes/truck_cab.res<>res://vehicles/follow_camera.gd<>uid://sy2li7u35867::::res://vehicles/impact_1.wav<>uid://cb7wvsd6vygd3::::res://vehicles/engine.wav<>uid://bf0h7s81yr8nj::::res://vehicles/impact_2.wav<>uid://sun2n8a4xapl::::res://vehicles/impact_3.wav<>uid://dpbayeeufya21::::res://vehicles/impact_4.wav<>uid://d4ostmqwgytk::::res://vehicles/particle_smoke.png<>uid://bju75l2w3r7vq::::res://vehicles/blob_shadow.png<>uid://dyg750wqca86r::::res://vehicles/truck_trailer.tres
truck_trailer.png::CompressedTexture2D::1190334386377021965::1716827727::1716827730::1::::<><>::
truck_trailer.tres::StandardMaterial3D::8858178430301242195::1716827727::0::1::::<><>::uid://q7uvsiqefkwr::::res://vehicles/truck_trailer.png
vehicle.gd::GDScript::-1::1716827727::0::1::::<>VehicleBody3D<>::
::res://vehicles/meshes/::1716827727
meshes.glb::PackedScene::349391053548130180::1716827727::1716827731::1::::<><>::uid://d0n61oj27qnya::::res://vehicles/meshes/truck_trailer.res<>uid://ctglc27jx8xe2::::res://vehicles/meshes/truck_cab.res<>uid://bqrwin8ccgptt::::res://vehicles/meshes/wheel.res<>uid://cbpqxxd14g8un::::res://vehicles/meshes/tow_truck.res<>uid://b2xi556mwp7ue::::res://vehicles/meshes/minivan.res
minivan.res::ArrayMesh::4329541084187321796::1716827731::0::1::::<><>::
tow_truck.res::ArrayMesh::4875009636371023161::1716827731::0::1::::<><>::
truck_cab.res::ArrayMesh::6119488589546590487::1716827731::0::1::::<><>::
truck_trailer.res::ArrayMesh::8942749460750483204::1716827731::0::1::::<><>::uid://dyg750wqca86r::::res://vehicles/truck_trailer.tres
wheel.res::ArrayMesh::3545887397788631717::1716827731::0::1::::<><>::

View file

@ -0,0 +1,6 @@
res://node_3d.tscn
res://vehicles/meshes/truck_trailer.res
res://vehicles/meshes/truck_cab.res
res://vehicles/meshes/wheel.res
res://vehicles/meshes/tow_truck.res
res://vehicles/meshes/minivan.res

View file

@ -0,0 +1,3 @@
[folding]
sections_unfolded=PackedStringArray()

View file

@ -0,0 +1,3 @@
[folding]
sections_unfolded=PackedStringArray()

View file

@ -0,0 +1,3 @@
[folding]
sections_unfolded=PackedStringArray()

View file

@ -0,0 +1,3 @@
[folding]
sections_unfolded=PackedStringArray()

View file

@ -0,0 +1,3 @@
[folding]
sections_unfolded=PackedStringArray()

View file

@ -0,0 +1,3 @@
[folding]
sections_unfolded=PackedStringArray()

View file

@ -0,0 +1,175 @@
[editor_states]
Anim={
"visible": false
}
2D={
"grid_offset": Vector2(0, 0),
"grid_snap_active": false,
"grid_step": Vector2(8, 8),
"grid_visibility": 1,
"ofs": Vector2(-165, -110),
"primary_grid_step": Vector2i(8, 8),
"show_edit_locks": true,
"show_guides": true,
"show_helpers": false,
"show_origin": true,
"show_rulers": true,
"show_transformation_gizmos": true,
"show_viewport": true,
"show_zoom_control": true,
"smart_snap_active": false,
"snap_guides": true,
"snap_node_anchors": true,
"snap_node_center": true,
"snap_node_parent": true,
"snap_node_sides": true,
"snap_other_nodes": true,
"snap_pixel": true,
"snap_relative": false,
"snap_rotation": false,
"snap_rotation_offset": 0.0,
"snap_rotation_step": 0.261799,
"snap_scale": false,
"snap_scale_step": 0.1,
"zoom": 1.0
}
3D={
"fov": 70.01,
"gizmos_status": {
"AudioListener3D": 0,
"AudioStreamPlayer3D": 0,
"CPUParticles3D": 0,
"CSGShape3D": 0,
"Camera3D": 0,
"CollisionObject3D": 0,
"CollisionPolygon3D": 0,
"CollisionShape3D": 0,
"Decal": 0,
"FogVolume": 0,
"GPUParticles3D": 0,
"GPUParticlesCollision3D": 0,
"Joint3D": 0,
"Light3D": 0,
"LightmapGI": 0,
"LightmapProbe": 0,
"Marker3D": 0,
"NavigationLink3D": 0,
"NavigationRegion3D": 0,
"OccluderInstance3D": 0,
"Path3D": 0,
"PhysicalBone3D": 0,
"RayCast3D": 0,
"ReflectionProbe": 0,
"ShapeCast3D": 0,
"Skeleton3D": 0,
"SoftBody3D": 0,
"SpringArm3D": 0,
"VehicleWheel3D": 0,
"VisibleOnScreenNotifier3D": 0,
"VoxelGI": 0
},
"local_coords": false,
"preview_sun_env": {
"environ_ao_enabled": false,
"environ_enabled": true,
"environ_energy": 1.0,
"environ_gi_enabled": false,
"environ_glow_enabled": true,
"environ_ground_color": Color(0.2, 0.169, 0.133, 1),
"environ_sky_color": Color(0.385, 0.454, 0.55, 1),
"environ_tonemap_enabled": true,
"sun_color": Color(1, 1, 1, 1),
"sun_enabled": true,
"sun_energy": 1.0,
"sun_max_distance": 100.0,
"sun_rotation": Vector2(-1.0472, 2.61799)
},
"rotate_snap": 15.0,
"scale_snap": 10.0,
"show_grid": true,
"show_origin": true,
"snap_enabled": false,
"translate_snap": 1.0,
"viewport_mode": 1,
"viewports": [{
"auto_orthogonal": false,
"auto_orthogonal_enabled": true,
"cinematic_preview": false,
"display_mode": 20,
"distance": 4.0,
"doppler": false,
"frame_time": false,
"gizmos": true,
"half_res": false,
"information": false,
"listener": true,
"lock_rotation": false,
"orthogonal": false,
"position": Vector3(0, 0, 0),
"use_environment": false,
"view_type": 0,
"x_rotation": 0.5,
"y_rotation": -0.5
}, {
"auto_orthogonal": false,
"auto_orthogonal_enabled": true,
"cinematic_preview": false,
"display_mode": 20,
"distance": 4.0,
"doppler": false,
"frame_time": false,
"gizmos": true,
"half_res": false,
"information": false,
"listener": false,
"lock_rotation": false,
"orthogonal": false,
"position": Vector3(0, 0, 0),
"use_environment": false,
"view_type": 0,
"x_rotation": 0.5,
"y_rotation": -0.5
}, {
"auto_orthogonal": false,
"auto_orthogonal_enabled": true,
"cinematic_preview": false,
"display_mode": 20,
"distance": 4.0,
"doppler": false,
"frame_time": false,
"gizmos": true,
"half_res": false,
"information": false,
"listener": false,
"lock_rotation": false,
"orthogonal": false,
"position": Vector3(0, 0, 0),
"use_environment": false,
"view_type": 0,
"x_rotation": 0.5,
"y_rotation": -0.5
}, {
"auto_orthogonal": false,
"auto_orthogonal_enabled": true,
"cinematic_preview": false,
"display_mode": 20,
"distance": 4.0,
"doppler": false,
"frame_time": false,
"gizmos": true,
"half_res": false,
"information": false,
"listener": false,
"lock_rotation": false,
"orthogonal": false,
"position": Vector3(0, 0, 0),
"use_environment": false,
"view_type": 0,
"x_rotation": 0.5,
"y_rotation": -0.5
}],
"zfar": 4000.01,
"znear": 0.05
}
selected_nodes=Array[NodePath]([NodePath("/root/@EditorNode@17147/@Panel@13/@VBoxContainer@14/@HSplitContainer@17/@HSplitContainer@25/@HSplitContainer@33/@VBoxContainer@34/@VSplitContainer@36/@VSplitContainer@62/@VBoxContainer@63/@PanelContainer@110/MainScreen/@CanvasItemEditor@9462/@VSplitContainer@9281/@HSplitContainer@9283/@HSplitContainer@9285/@Control@9286/@SubViewportContainer@9287/@SubViewport@9288/Node3D/Camera3D")])

View file

@ -0,0 +1,5 @@
[folding]
node_unfolds=[]
resource_unfolds=[]
nodes_folded=[]

View file

@ -20,4 +20,4 @@ Camera3D:scale=true
[recent_files]
scenes=["res://node_3d.tscn"]
scenes=["res://town/town_scene.tscn", "res://node_3d.tscn"]

View file

View file

@ -0,0 +1,3 @@
[folding]
sections_unfolded=PackedStringArray()

View file

@ -0,0 +1,5 @@
[folding]
node_unfolds=[NodePath("DirectionalLight3D"), PackedStringArray("Transform", "Light", "Shadow", "Directional Shadow"), NodePath("InstancePos"), PackedStringArray("Transform"), NodePath("Spedometer"), PackedStringArray("Layout", "Focus", "Shortcut", "BiDi"), NodePath("Back"), PackedStringArray("Layout"), NodePath("TouchTurnLeft"), PackedStringArray("Layout"), NodePath("TouchTurnLeft/TurnLeft"), PackedStringArray("Visibility", "Transform"), NodePath("TouchReverse"), PackedStringArray("Layout"), NodePath("TouchReverse/Reverse"), PackedStringArray("Visibility", "Transform"), NodePath("TouchTurnRight"), PackedStringArray("Layout"), NodePath("TouchTurnRight/TurnRight"), PackedStringArray("Visibility", "Transform"), NodePath("Ground"), PackedStringArray("Transform", "Geometry", "surface_material_override"), NodePath("Ground2"), PackedStringArray("Transform", "Geometry", "surface_material_override"), NodePath("Ground3"), PackedStringArray("Transform", "Geometry", "surface_material_override"), NodePath("Ground4"), PackedStringArray("Transform", "Geometry", "surface_material_override"), NodePath("Racetrack"), PackedStringArray("Transform"), NodePath("Racetrack/HugeTire"), PackedStringArray("Transform", "Skeleton", "surface_material_override"), NodePath("Racetrack/Ramp"), PackedStringArray("Transform", "surface_material_override"), NodePath("Racetrack/Ramp/RampStart"), PackedStringArray("Transform", "Skeleton", "surface_material_override"), NodePath("Racetrack/Ramp2"), PackedStringArray("Transform", "surface_material_override"), NodePath("Racetrack/Ramp2/RampStart"), PackedStringArray("Transform", "Skeleton", "surface_material_override"), NodePath("Racetrack/Ramp2/StaticBody3D/CollisionShape3D"), PackedStringArray("Transform"), NodePath("Racetrack/Ramp3"), PackedStringArray("Transform", "surface_material_override"), NodePath("Racetrack/Ramp3/RampStart"), PackedStringArray("Transform", "Skeleton", "surface_material_override"), NodePath("Racetrack/Ramp4"), PackedStringArray("Transform", "surface_material_override"), NodePath("Racetrack/Ramp4/RampStart"), PackedStringArray("Transform", "Skeleton", "surface_material_override"), NodePath("Racetrack/Ramp5"), PackedStringArray("Transform", "surface_material_override"), NodePath("Racetrack/Ramp5/RampStart"), PackedStringArray("Transform", "Skeleton", "surface_material_override")]
resource_unfolds=["res://town/town_scene.tscn::Environment_dauhq", PackedStringArray("Resource", "Background", "Sky", "Tonemap", "Fog"), "res://town/town_scene.tscn::Shortcut_msvqx", PackedStringArray("Resource"), "res://town/town_scene.tscn::GradientTexture2D_m8ylb", PackedStringArray("Resource"), "res://town/town_scene.tscn::GradientTexture2D_xu6xc", PackedStringArray("Resource"), "res://town/town_scene.tscn::BoxMesh_x3c0g", PackedStringArray("Resource"), "res://town/town_scene.tscn::StandardMaterial3D_0ud3l", PackedStringArray("Resource", "Albedo", "Roughness", "UV1", "Sampling"), "res://town/town_scene.tscn::ConcavePolygonShape3D_gearx", PackedStringArray("Resource"), "res://town/town_scene.tscn::ConcavePolygonShape3D_g7q2f", PackedStringArray("Resource"), "res://town/town_scene.tscn::BoxMesh_n528d", PackedStringArray("Resource"), "res://town/town_scene.tscn::StandardMaterial3D_aijyr", PackedStringArray("Resource", "Albedo", "Roughness", "UV1", "Sampling"), "res://town/town_scene.tscn::ConcavePolygonShape3D_mb5rx", PackedStringArray("Resource"), "res://town/town_scene.tscn::ConcavePolygonShape3D_3wmyg", PackedStringArray("Resource"), "res://town/town_scene.tscn::Curve3D_6vskq", PackedStringArray("Resource"), "res://town/town_scene.tscn::TorusMesh_jqadq", PackedStringArray("Resource"), "res://town/town_scene.tscn::StandardMaterial3D_5qgna", PackedStringArray("Resource", "Albedo"), "res://town/town_scene.tscn::ConcavePolygonShape3D_smisc", PackedStringArray("Resource"), "res://town/town_scene.tscn::PrismMesh_xglk4", PackedStringArray("Resource"), "res://town/town_scene.tscn::StandardMaterial3D_kamav", PackedStringArray("Resource", "Albedo"), "res://town/town_scene.tscn::PrismMesh_3jdtn", PackedStringArray("Resource"), "res://town/town_scene.tscn::ConcavePolygonShape3D_ykfn8", PackedStringArray("Resource"), "res://town/town_scene.tscn::ConcavePolygonShape3D_4aeas", PackedStringArray("Resource"), "res://town/town_scene.tscn::ConcavePolygonShape3D_e2cnd", PackedStringArray("Resource"), "res://town/town_scene.tscn::ConcavePolygonShape3D_8ool4", PackedStringArray("Resource"), "res://town/town_scene.tscn::ConcavePolygonShape3D_ru3pl", PackedStringArray("Resource"), "res://town/town_scene.tscn::ConcavePolygonShape3D_stwys", PackedStringArray("Resource"), "res://town/town_scene.tscn::ConcavePolygonShape3D_04800", PackedStringArray("Resource"), "res://town/town_scene.tscn::ConcavePolygonShape3D_248tl", PackedStringArray("Resource"), "res://town/town_scene.tscn::ConcavePolygonShape3D_nhcrh", PackedStringArray("Resource")]
nodes_folded=[]

View file

@ -0,0 +1,3 @@
[folding]
sections_unfolded=PackedStringArray()

View file

@ -0,0 +1,3 @@
[folding]
sections_unfolded=PackedStringArray()

View file

@ -0,0 +1,3 @@
[folding]
sections_unfolded=PackedStringArray()

View file

@ -0,0 +1,3 @@
[folding]
sections_unfolded=PackedStringArray()

View file

@ -1 +1 @@
list=[]
list=Array[Dictionary]([])

View file

@ -0,0 +1,3 @@
source_md5="ce7eb00cb5b7e971d0f336f1814f6cb5"
dest_md5="c1b9b00f60f8f30a4b541575d5152e44"

View file

@ -0,0 +1,3 @@
source_md5="5bd7eca1a6164956bbece83554dd8ddb"
dest_md5="06dbde7fc0f5c2e83a282e48966e6883"

View file

@ -0,0 +1,3 @@
source_md5="479a4a2bdbd40dea2f759750b535a1df"
dest_md5="1a04c36afa44aaa2b4aeb43dd16d9e02"

View file

@ -0,0 +1,3 @@
source_md5="af4711e0c224d320d1b126cdf1c9e78e"
dest_md5="0449d7c86293a0efb65e17a5ec31cac0"

View file

@ -0,0 +1,3 @@
source_md5="655343634bfbabd4b2d99c8c463a9ad0"
dest_md5="6ce5f10dacbb8333bac0be3d9ec37117"

View file

@ -0,0 +1,3 @@
source_md5="2f3a63b1a9bf2c6b68c6e1f1da74a47c"
dest_md5="572bf33710e6a39abfb327b41876fdf1"

View file

@ -0,0 +1,3 @@
source_md5="3b4522e7349d3a0db51cd98c38c2ae61"
dest_md5="cf46b0999b4d6c18b1bb22e21964f66a"

View file

@ -0,0 +1,3 @@
source_md5="c643e882af4e6519374d473f82c4c376"
dest_md5="54567e8184349899f35df040a7688464"

View file

@ -0,0 +1,3 @@
source_md5="e30823d015b944e1a486719c4b5f1d65"
dest_md5="3e45e26908f4e1e0850c6d0bcca75c76"

View file

@ -0,0 +1,3 @@
source_md5="b15f64e9fd99e39e48e899737325ca24"
dest_md5="0fa9db8c95975174e542db5cdd9ec178"

View file

@ -0,0 +1,3 @@
source_md5="177fcd2d5799c2a019f058eeff123aef"
dest_md5="9e2b7f8c87e67a545e1777fe71d37663"

View file

@ -0,0 +1,3 @@
source_md5="d80e01b1b40b8e8484c6ecf178bb9ff6"
dest_md5="e5ca1eda74043251b3afdd11a9b9c142"

View file

@ -0,0 +1,3 @@
source_md5="ea1ce24fc25c95dce0ea44ffa66f395c"
dest_md5="f0288c8425c63e291717a7561b74d992"

View file

@ -0,0 +1,3 @@
source_md5="a39ef986c315d3485bbd77beb1ef30c5"
dest_md5="8c2fd73e5fae42c988a3e824df6dfd4a"

View file

@ -0,0 +1,3 @@
source_md5="21bfa370823577a0f32b53df00b936df"
dest_md5="02e238c979992ec989041a56a36afe83"

View file

@ -0,0 +1,3 @@
source_md5="63f10640a74da0424be95e4ad611d120"
dest_md5="9975c96d81f85d6bf9ceb131170e9dad"

Binary file not shown.

39
README.md Normal file
View file

@ -0,0 +1,39 @@
# Truck Town
This is a demo implementing different types of trucks of
varying complexity using vehicle physics.
Controls:
- <kbd>Up Arrow</kbd>, <kbd>W</kbd>, <kbd>Gamepad Right Trigger</kbd>, <kbd>Gamepad A/Cross</kbd>: Accelerate
- <kbd>Down Arrow</kbd>, <kbd>S</kbd>, <kbd>Gamepad Left Trigger</kbd>, <kbd>Gamepad B/Circle</kbd>, <kbd>Gamepad X/Square</kbd>: Brake/reverse
- <kbd>Left Arrow</kbd>, <kbd>Gamepad Left Stick</kbd>, <kbd>Gamepad D-Pad Left</kbd>: Steer left
- <kbd>Right Arrow</kbd>, <kbd>Gamepad Left Stick</kbd>, <kbd>Gamepad D-Pad Right</kbd>: Steer right
- <kbd>U</kbd>, <kbd>Gamepad Select</kbd>, left-click speedometer: Change speedometer unit (m/s, km/h, mph)
- <kbd>C</kbd>, <kbd>Gamepad Y/Triangle</kbd>: Change camera (exterior, interior, top-down)
- <kbd>Escape</kbd>, <kbd>Gamepad D-Pad Up</kbd>: Go back to menu (press again to exit)
On mobile platforms, the vehicle automatically accelerates. Touch the left and
right edges of the screen to steer. Touch the middle of the screen to
brake/reverse (this also temporarily stops acceleration).
Language: GDScript
Renderer: Forward+ on desktop, Mobile on mobile
Check out this demo on the asset library: https://godotengine.org/asset-library/asset/524
## How does it work?
The base vehicle uses a
[`VehicleBody`](https://docs.godotengine.org/en/latest/classes/class_vehiclebody.html)
node. The trailer truck is tied together using a
[`ConeJointTwist`](https://docs.godotengine.org/en/latest/classes/class_conetwistjoint.html)
node, and the tow truck is tried together using a chain made of
[`RigidBody`](https://docs.godotengine.org/en/latest/classes/class_rigidbody.html)
nodes which are pinned together using
[`PinJoint`](https://docs.godotengine.org/en/latest/classes/class_pinjoint.html) nodes.
## Screenshots
![Screenshot](screenshots/truck_town.webp)

47
car_select/car_select.gd Normal file
View file

@ -0,0 +1,47 @@
extends Control
var town: Node3D = null
func _ready():
# Automatically focus the first item for gamepad accessibility.
$HBoxContainer/MiniVan.grab_focus.call_deferred()
func _process(_delta: float):
if Input.is_action_just_pressed(&"back"):
_on_back_pressed()
func _load_scene(car_scene: PackedScene):
var car: Node3D = car_scene.instantiate()
car.name = "car"
town = preload("res://town/town_scene.tscn").instantiate()
town.get_node(^"InstancePos").add_child(car)
town.get_node(^"Spedometer").car_body = car.get_child(0)
town.get_node(^"Back").pressed.connect(_on_back_pressed)
get_parent().add_child(town)
hide()
func _on_back_pressed():
if is_instance_valid(town):
# Currently in the town, go back to main menu.
town.queue_free()
show()
# Automatically focus the first item for gamepad accessibility.
$HBoxContainer/MiniVan.grab_focus.call_deferred()
else:
# In main menu, exit the game.
get_tree().quit()
func _on_mini_van_pressed():
_load_scene(preload("res://vehicles/car_base.tscn"))
func _on_trailer_truck_pressed():
_load_scene(preload("res://vehicles/trailer_truck.tscn"))
func _on_tow_truck_pressed():
_load_scene(preload("res://vehicles/tow_truck.tscn"))

View file

@ -0,0 +1,80 @@
[gd_scene load_steps=6 format=3 uid="uid://ckvqraq6j1okh"]
[ext_resource type="Script" path="res://car_select/car_select.gd" id="1"]
[ext_resource type="Texture2D" uid="uid://bh7b4n4lg1uqt" path="res://car_select/choose_van.png" id="2"]
[ext_resource type="Texture2D" uid="uid://hvkcmpdq1t0k" path="res://car_select/choose_trailer.png" id="3"]
[ext_resource type="Texture2D" uid="uid://de7itkxhl0u28" path="res://car_select/choose_tow.png" id="4"]
[sub_resource type="FontVariation" id="FontVariation_hqcvw"]
variation_embolden = 1.0
variation_transform = Transform2D(1, 0.2, 0, 1, 0, 0)
spacing_glyph = -1
spacing_space = 4
[node name="CarSelect" type="Control"]
layout_mode = 3
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -512.0
offset_top = -300.0
offset_right = 512.0
offset_bottom = 300.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 2
size_flags_vertical = 2
script = ExtResource("1")
[node name="HBoxContainer" type="HBoxContainer" parent="."]
layout_mode = 0
anchor_top = 0.5
anchor_right = 1.0
anchor_bottom = 0.5
grow_horizontal = 2
grow_vertical = 2
alignment = 1
[node name="MiniVan" type="Button" parent="HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 6
size_flags_vertical = 4
icon = ExtResource("2")
[node name="TrailerTruck" type="Button" parent="HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 6
size_flags_vertical = 4
icon = ExtResource("3")
[node name="TowTruck" type="Button" parent="HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 6
size_flags_vertical = 4
icon = ExtResource("4")
[node name="Label" type="Label" parent="."]
layout_mode = 0
anchor_left = 0.5
anchor_right = 0.5
offset_left = -180.0
offset_top = 32.0
offset_right = 180.0
offset_bottom = 123.0
grow_horizontal = 2
theme_override_colors/font_color = Color(0.494118, 0.858824, 0.960784, 1)
theme_override_colors/font_shadow_color = Color(0, 0.25098, 1, 0.12549)
theme_override_colors/font_outline_color = Color(0.105882, 0.278431, 0.47451, 1)
theme_override_constants/shadow_offset_x = 6
theme_override_constants/shadow_offset_y = 6
theme_override_constants/outline_size = 38
theme_override_constants/shadow_outline_size = 38
theme_override_fonts/font = SubResource("FontVariation_hqcvw")
theme_override_font_sizes/font_size = 64
text = "Truck Town"
[connection signal="pressed" from="HBoxContainer/MiniVan" to="." method="_on_mini_van_pressed"]
[connection signal="pressed" from="HBoxContainer/TrailerTruck" to="." method="_on_trailer_truck_pressed"]
[connection signal="pressed" from="HBoxContainer/TowTruck" to="." method="_on_tow_truck_pressed"]

BIN
car_select/choose_tow.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://de7itkxhl0u28"
path="res://.godot/imported/choose_tow.png-e1d5f4ba7eb707eed82d65f6944c644a.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://car_select/choose_tow.png"
dest_files=["res://.godot/imported/choose_tow.png-e1d5f4ba7eb707eed82d65f6944c644a.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://hvkcmpdq1t0k"
path="res://.godot/imported/choose_trailer.png-42b178b0fc9d742f9f23bb1d9fdfc9a7.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://car_select/choose_trailer.png"
dest_files=["res://.godot/imported/choose_trailer.png-42b178b0fc9d742f9f23bb1d9fdfc9a7.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
car_select/choose_van.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bh7b4n4lg1uqt"
path="res://.godot/imported/choose_van.png-a2669a1a5e1faa5c8245c7e87ce8c490.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://car_select/choose_van.png"
dest_files=["res://.godot/imported/choose_van.png-a2669a1a5e1faa5c8245c7e87ce8c490.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
icon.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

34
icon.webp.import Normal file
View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://brwp8bimc75uu"
path="res://.godot/imported/icon.webp-e94f9a68b0f625a567a797079e4d325f.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://icon.webp"
dest_files=["res://.godot/imported/icon.webp-e94f9a68b0f625a567a797079e4d325f.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

8
node_3d.tscn Normal file
View file

@ -0,0 +1,8 @@
[gd_scene format=3 uid="uid://cnxuru6kiplw6"]
[node name="Node3D" type="Node3D"]
[node name="CSGBox3D" type="CSGBox3D" parent="."]
[node name="Camera3D" type="Camera3D" parent="."]
transform = Transform3D(0.866582, -0.139038, 0.479274, -0.0571974, 0.926401, 0.372169, -0.495746, -0.349928, 0.79485, 1.0281, 1.06217, 2.31513)

View file

@ -10,11 +10,156 @@ config_version=5
[application]
config/name="TestProject"
run/main_scene="res://node_3d.tscn"
config/name="Truck Town"
config/description="This is a demo implementing different types of trucks of
varying complexity using vehicle physics."
config/tags=PackedStringArray("3d", "demo", "official", "physics", "vehicle")
run/main_scene="res://car_select/car_select.tscn"
config/features=PackedStringArray("4.2")
config/icon="res://icon.png"
config/icon="res://icon.webp"
[display]
window/stretch/mode="canvas_items"
window/stretch/aspect="expand"
[input]
ui_accept={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194309,"key_label":0,"unicode":0,"echo":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":0,"pressure":0.0,"pressed":false,"script":null)
]
}
ui_select={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194309,"key_label":0,"unicode":0,"echo":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":3,"pressure":0.0,"pressed":false,"script":null)
]
}
ui_cancel={
"deadzone": 0.2,
"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":1,"pressure":0.0,"pressed":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194305,"key_label":0,"unicode":0,"echo":false,"script":null)
]
}
ui_focus_next={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194306,"key_label":0,"unicode":0,"echo":false,"script":null)
]
}
ui_focus_prev={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":true,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194306,"key_label":0,"unicode":0,"echo":false,"script":null)
]
}
ui_left={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"key_label":0,"unicode":0,"echo":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":14,"pressure":0.0,"pressed":false,"script":null)
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":0,"axis_value":-1.0,"script":null)
]
}
ui_right={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"key_label":0,"unicode":0,"echo":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":15,"pressure":0.0,"pressed":false,"script":null)
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":0,"axis_value":1.0,"script":null)
]
}
ui_up={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"key_label":0,"unicode":0,"echo":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":12,"pressure":0.0,"pressed":false,"script":null)
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":1,"axis_value":-1.0,"script":null)
]
}
ui_down={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"key_label":0,"unicode":0,"echo":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":13,"pressure":0.0,"pressed":false,"script":null)
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":1,"axis_value":1.0,"script":null)
]
}
ui_page_up={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194323,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
]
}
ui_page_down={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194324,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
]
}
accelerate={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":0,"echo":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"key_label":0,"unicode":0,"echo":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":0,"pressure":0.0,"pressed":false,"script":null)
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":5,"axis_value":1.0,"script":null)
]
}
reverse={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":0,"echo":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"key_label":0,"unicode":0,"echo":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":2,"pressure":0.0,"pressed":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":1,"pressure":0.0,"pressed":false,"script":null)
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":4,"axis_value":1.0,"script":null)
]
}
turn_left={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":0,"echo":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"key_label":0,"unicode":0,"echo":false,"script":null)
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":0,"axis_value":-1.0,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":13,"pressure":0.0,"pressed":false,"script":null)
]
}
turn_right={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":0,"echo":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"key_label":0,"unicode":0,"echo":false,"script":null)
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":0,"axis_value":1.0,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":14,"pressure":0.0,"pressed":false,"script":null)
]
}
cycle_speedometer_unit={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":85,"key_label":0,"unicode":0,"echo":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":4,"pressure":0.0,"pressed":false,"script":null)
]
}
back={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194305,"key_label":0,"unicode":0,"echo":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":11,"pressure":0.0,"pressed":false,"script":null)
]
}
cycle_camera={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":67,"key_label":0,"unicode":0,"echo":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":3,"pressure":0.0,"pressed":false,"script":null)
]
}
[physics]
common/physics_ticks_per_second=120
[rendering]
environment/default_environment="res://default_env.tres"
textures/vram_compression/import_etc2_astc=true
lights_and_shadows/directional_shadow/size=8192
lights_and_shadows/directional_shadow/soft_shadow_filter_quality=3
lights_and_shadows/directional_shadow/soft_shadow_filter_quality.mobile=1
textures/default_filters/anisotropic_filtering_level=4
textures/default_filters/texture_mipmap_bias=-0.5
textures/decals/filter=1
environment/defaults/default_clear_color=Color(0.133333, 0.133333, 0.133333, 1)
anti_aliasing/quality/msaa_3d=2
anti_aliasing/quality/use_debanding=true
anti_aliasing/quality/msaa_3d.mobile=0
scaling_3d/scale.mobile=0.67

0
screenshots/.gdignore Normal file
View file

BIN
screenshots/tow.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 686 KiB

BIN
screenshots/trailer.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 768 KiB

BIN
screenshots/truck_town.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 242 KiB

39
spedometer.gd Normal file
View file

@ -0,0 +1,39 @@
extends Button
enum SpeedUnit {
METERS_PER_SECOND,
KILOMETERS_PER_HOUR,
MILES_PER_HOUR,
}
@export var speed_unit: SpeedUnit = SpeedUnit.METERS_PER_SECOND
var gradient := Gradient.new()
var car_body: VehicleBody3D
func _ready():
# The start and end points (offset 0.0 and 1.0) are already defined in a Gradient
# resource on creation. Override their colors and only create one new point.
gradient.set_color(0, Color(0.7, 0.9, 1.0))
gradient.set_color(1, Color(1.0, 0.3, 0.1))
gradient.add_point(0.2, Color(1.0, 1.0, 1.0))
func _process(_delta):
var speed := car_body.linear_velocity.length()
if speed_unit == SpeedUnit.METERS_PER_SECOND:
text = "Speed: " + ("%.1f" % speed) + " m/s"
elif speed_unit == SpeedUnit.KILOMETERS_PER_HOUR:
speed *= 3.6
text = "Speed: " + ("%.0f" % speed) + " km/h"
else: # speed_unit == SpeedUnit.MILES_PER_HOUR:
speed *= 2.23694
text = "Speed: " + ("%.0f" % speed) + " mph"
# Change speedometer color depending on speed in m/s (regardless of unit).
add_theme_color_override("font_color", gradient.sample(remap(car_body.linear_velocity.length(), 0.0, 30.0, 0.0, 1.0)))
func _on_spedometer_pressed():
speed_unit = ((speed_unit + 1) % SpeedUnit.size()) as SpeedUnit

View file

@ -0,0 +1,10 @@
[gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://bdjiubscxkdn6"]
[ext_resource type="Texture2D" uid="uid://dkv00eeo3yu2w" path="res://town/materials/cement.webp" id="1_but66"]
[resource]
resource_name = "Cement"
albedo_texture = ExtResource("1_but66")
roughness = 0.8
uv1_scale = Vector3(2, 2, 2)
texture_filter = 5

BIN
town/materials/cement.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dkv00eeo3yu2w"
path="res://.godot/imported/cement.webp-a59028ca151ccfb7e6020be6c141b163.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://town/materials/cement.webp"
dest_files=["res://.godot/imported/cement.webp-a59028ca151ccfb7e6020be6c141b163.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

10
town/materials/grass.tres Normal file
View file

@ -0,0 +1,10 @@
[gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://c71ovlrgdfif5"]
[ext_resource type="Texture2D" uid="uid://b2g4dq0w72e68" path="res://town/materials/grass.webp" id="1_5bi3i"]
[resource]
resource_name = "Grass"
albedo_texture = ExtResource("1_5bi3i")
roughness = 0.8
uv1_scale = Vector3(2, 2, 2)
texture_filter = 5

BIN
town/materials/grass.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b2g4dq0w72e68"
path="res://.godot/imported/grass.webp-0ccf2a619a3f121234da585c8abbfdba.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://town/materials/grass.webp"
dest_files=["res://.godot/imported/grass.webp-0ccf2a619a3f121234da585c8abbfdba.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

423
town/town_scene.tscn Normal file

File diff suppressed because one or more lines are too long

BIN
town/truck_town.glb Normal file

Binary file not shown.

View file

@ -0,0 +1,97 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://dfdgytsvtqxwv"
path="res://.godot/imported/truck_town.glb-49b71606091d50bf5665443ce42e43d8.scn"
[deps]
source_file="res://town/truck_town.glb"
dest_files=["res://.godot/imported/truck_town.glb-49b71606091d50bf5665443ce42e43d8.scn"]
[params]
nodes/root_type="Node3D"
nodes/root_name="TruckTown"
nodes/apply_root_scale=true
nodes/root_scale=1.0
meshes/ensure_tangents=true
meshes/generate_lods=false
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=false
animation/import=false
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
import_script/path=""
_subresources={
"materials": {
"grass": {
"use_external/enabled": true,
"use_external/path": "res://town/materials/grass.tres"
},
"road": {
"use_external/enabled": true,
"use_external/path": "res://town/materials/cement.tres"
}
},
"nodes": {
"PATH:Grass": {
"generate/physics": true,
"physics/shape_type": 2
},
"PATH:House01": {
"generate/physics": true,
"physics/shape_type": 2
},
"PATH:House02": {
"generate/physics": true,
"physics/shape_type": 2
},
"PATH:House03": {
"generate/physics": true,
"physics/shape_type": 2
},
"PATH:House04": {
"generate/physics": true,
"physics/shape_type": 2
},
"PATH:House05": {
"generate/physics": true,
"physics/shape_type": 2
},
"PATH:House06": {
"generate/physics": true,
"physics/shape_type": 2
},
"PATH:House07": {
"generate/physics": true,
"physics/shape_type": 2
},
"PATH:House08": {
"generate/physics": true,
"physics/shape_type": 2
},
"PATH:House09": {
"generate/physics": true,
"physics/shape_type": 2
},
"PATH:House10": {
"generate/physics": true,
"physics/shape_type": 2
},
"PATH:Road": {
"decomposition/advanced": true,
"decomposition/precision": 10,
"generate/physics": true,
"physics/shape_type": 2
}
}
}
gltf/naming_version=0
gltf/embedded_image_handling=1

BIN
vehicles/blob_shadow.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 654 B

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bju75l2w3r7vq"
path="res://.godot/imported/blob_shadow.png-543236f87c8fdb7d06671b1460d3917a.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://vehicles/blob_shadow.png"
dest_files=["res://.godot/imported/blob_shadow.png-543236f87c8fdb7d06671b1460d3917a.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

191
vehicles/car_base.tscn Normal file
View file

@ -0,0 +1,191 @@
[gd_scene load_steps=19 format=3 uid="uid://c1uai3rvx8hul"]
[ext_resource type="Script" path="res://vehicles/vehicle.gd" id="1_r806m"]
[ext_resource type="Texture2D" uid="uid://d4ostmqwgytk" path="res://vehicles/particle_smoke.png" id="2_1gkvk"]
[ext_resource type="ArrayMesh" uid="uid://bqrwin8ccgptt" path="res://vehicles/meshes/wheel.res" id="2_3cqaw"]
[ext_resource type="ArrayMesh" uid="uid://b2xi556mwp7ue" path="res://vehicles/meshes/minivan.res" id="3_cqia8"]
[ext_resource type="Script" path="res://vehicles/follow_camera.gd" id="4_6igu8"]
[ext_resource type="AudioStream" uid="uid://cb7wvsd6vygd3" path="res://vehicles/engine.wav" id="5_m8g7o"]
[ext_resource type="AudioStream" uid="uid://sy2li7u35867" path="res://vehicles/impact_1.wav" id="6_kq567"]
[ext_resource type="AudioStream" uid="uid://bf0h7s81yr8nj" path="res://vehicles/impact_2.wav" id="7_e8n8v"]
[ext_resource type="AudioStream" uid="uid://sun2n8a4xapl" path="res://vehicles/impact_3.wav" id="8_mh5uv"]
[ext_resource type="AudioStream" uid="uid://dpbayeeufya21" path="res://vehicles/impact_4.wav" id="9_bomp1"]
[ext_resource type="Texture2D" uid="uid://bju75l2w3r7vq" path="res://vehicles/blob_shadow.png" id="11_3ryw5"]
[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_l7i2k"]
friction = 0.5
[sub_resource type="BoxShape3D" id="BoxShape3D_x74tc"]
size = Vector3(0.954078, 1, 2.32662)
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_bpr2q"]
random_pitch = 1.05
random_volume_offset_db = 2.0
streams_count = 4
stream_0/stream = ExtResource("6_kq567")
stream_0/weight = 1.0
stream_1/stream = ExtResource("7_e8n8v")
stream_1/weight = 1.0
stream_2/stream = ExtResource("8_mh5uv")
stream_2/weight = 1.0
stream_3/stream = ExtResource("9_bomp1")
stream_3/weight = 1.0
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_fuuj3"]
transparency = 1
shading_mode = 0
vertex_color_use_as_albedo = true
albedo_color = Color(0.462745, 0.462745, 0.462745, 0.501961)
albedo_texture = ExtResource("2_1gkvk")
billboard_mode = 3
billboard_keep_scale = true
particles_anim_h_frames = 1
particles_anim_v_frames = 1
particles_anim_loop = false
proximity_fade_enabled = true
proximity_fade_distance = 0.5
[sub_resource type="QuadMesh" id="QuadMesh_30wks"]
material = SubResource("StandardMaterial3D_fuuj3")
[sub_resource type="Curve" id="Curve_4j5vd"]
_data = [Vector2(0, 0), 0.0, 0.0, 0, 0, Vector2(1, 1), 0.0, 0.0, 0, 0]
point_count = 2
[sub_resource type="Gradient" id="Gradient_p5xtl"]
colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 0)
[node name="CarBase" type="Node3D"]
[node name="Body" type="VehicleBody3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.00169557, 0.222867, -0.0955184)
center_of_mass_mode = 1
physics_material_override = SubResource("PhysicsMaterial_l7i2k")
script = ExtResource("1_r806m")
[node name="Wheel1" type="VehicleWheel3D" parent="Body"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.573678, 0.115169, 1.10416)
use_as_traction = true
use_as_steering = true
wheel_roll_influence = 0.4
wheel_radius = 0.25
wheel_friction_slip = 1.0
suspension_travel = 2.0
suspension_stiffness = 40.0
damping_compression = 0.88
[node name="Wheel1" type="MeshInstance3D" parent="Body/Wheel1"]
layers = 2
gi_mode = 2
mesh = ExtResource("2_3cqaw")
[node name="Wheel2" type="VehicleWheel3D" parent="Body"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.573678, 0.115169, -0.783403)
use_as_traction = true
wheel_roll_influence = 0.4
wheel_radius = 0.25
wheel_friction_slip = 1.0
suspension_travel = 2.0
suspension_stiffness = 40.0
damping_compression = 0.88
[node name="Wheel2" type="MeshInstance3D" parent="Body/Wheel2"]
layers = 2
gi_mode = 2
mesh = ExtResource("2_3cqaw")
[node name="Wheel3" type="VehicleWheel3D" parent="Body"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.573678, 0.115169, 1.10416)
use_as_traction = true
use_as_steering = true
wheel_roll_influence = 0.4
wheel_radius = 0.25
wheel_friction_slip = 1.0
suspension_travel = 2.0
suspension_stiffness = 40.0
damping_compression = 0.88
[node name="Wheel3" type="MeshInstance3D" parent="Body/Wheel3"]
layers = 2
gi_mode = 2
mesh = ExtResource("2_3cqaw")
[node name="Wheel4" type="VehicleWheel3D" parent="Body"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.573678, 0.115169, -0.783403)
use_as_traction = true
wheel_roll_influence = 0.4
wheel_radius = 0.25
wheel_friction_slip = 1.0
suspension_travel = 2.0
suspension_stiffness = 40.0
damping_compression = 0.88
[node name="Wheel4" type="MeshInstance3D" parent="Body/Wheel4"]
layers = 2
gi_mode = 2
mesh = ExtResource("2_3cqaw")
[node name="Body" type="MeshInstance3D" parent="Body"]
layers = 2
gi_mode = 2
mesh = ExtResource("3_cqia8")
[node name="CollisionShape3D" type="CollisionShape3D" parent="Body"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.588269, 0.0774262)
shape = SubResource("BoxShape3D_x74tc")
[node name="CameraBase" type="Node3D" parent="Body"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.97449, 0)
[node name="Camera3D" type="Camera3D" parent="Body/CameraBase"]
transform = Transform3D(-1, 2.11495e-08, -8.48259e-08, 0, 0.970296, 0.241922, 8.74228e-08, 0.241922, -0.970296, 0, 2.032, -4.394)
fov = 74.0
near = 0.1
script = ExtResource("4_6igu8")
min_distance = 4.0
max_distance = 5.0
height = 1.25
[node name="EngineSound" type="AudioStreamPlayer3D" parent="Body"]
stream = ExtResource("5_m8g7o")
pitch_scale = 0.05
autoplay = true
attenuation_filter_cutoff_hz = 20500.0
[node name="ImpactSound" type="AudioStreamPlayer3D" parent="Body"]
stream = SubResource("AudioStreamRandomizer_bpr2q")
volume_db = -9.0
max_polyphony = 3
attenuation_filter_cutoff_hz = 20500.0
[node name="CPUParticles3D" type="CPUParticles3D" parent="Body"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.201696, -0.022867, -1.10448)
amount = 125
lifetime = 1.25
mesh = SubResource("QuadMesh_30wks")
direction = Vector3(0, 1, -0.5)
gravity = Vector3(0, 0, 0)
initial_velocity_min = 1.0
initial_velocity_max = 1.0
damping_min = 0.05
damping_max = 0.05
angle_max = 360.0
scale_amount_curve = SubResource("Curve_4j5vd")
color_ramp = SubResource("Gradient_p5xtl")
[node name="BlobShadow" type="Decal" parent="Body"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.05)
size = Vector3(1.6, 4, 3)
texture_albedo = ExtResource("11_3ryw5")
upper_fade = 2.0
lower_fade = 1.0
cull_mask = 1048573
[node name="AudioListener3D" type="AudioListener3D" parent="Body"]
current = true
[node name="InteriorCameraPosition" type="Marker3D" parent="Body"]
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0.9, 0.3)
[node name="TopDownCameraPosition" type="Marker3D" parent="Body"]
transform = Transform3D(-1, 8.74228e-08, 0, 3.82137e-15, 4.37114e-08, 1, 8.74228e-08, 1, -4.37114e-08, 0.00169557, 15.7771, 0.0955178)

BIN
vehicles/engine.wav Normal file

Binary file not shown.

View file

@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://cb7wvsd6vygd3"
path="res://.godot/imported/engine.wav-d6b28d3271a4c3acd03d9445eeff7cb3.sample"
[deps]
source_file="res://vehicles/engine.wav"
dest_files=["res://.godot/imported/engine.wav-d6b28d3271a4c3acd03d9445eeff7cb3.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=2
edit/loop_begin=0
edit/loop_end=-1
compress/mode=0

91
vehicles/follow_camera.gd Normal file
View file

@ -0,0 +1,91 @@
extends Camera3D
# Higher values cause the field of view to increase more at high speeds.
const FOV_SPEED_FACTOR = 60
# Higher values cause the field of view to adapt to speed changes faster.
const FOV_SMOOTH_FACTOR = 0.2
# Don't change FOV if moving below this speed. This prevents shadows from flickering when driving slowly.
const FOV_CHANGE_MIN_SPEED = 0.05
@export var min_distance := 2.0
@export var max_distance := 4.0
@export var angle_v_adjust := 0.0
@export var height := 1.5
var camera_type := CameraType.EXTERIOR
var initial_transform := transform
var base_fov := fov
# The field of view to smoothly interpolate to.
var desired_fov := fov
# Position on the last physics frame (used to measure speed).
@onready var previous_position := global_position
enum CameraType {
EXTERIOR,
INTERIOR,
TOP_DOWN,
MAX, # Represents the size of the CameraType enum.
}
func _ready():
update_camera()
func _input(event):
if event.is_action_pressed(&"cycle_camera"):
camera_type = wrapi(camera_type + 1, 0, CameraType.MAX) as CameraType
update_camera()
func _physics_process(_delta):
if camera_type == CameraType.EXTERIOR:
var target: Vector3 = get_parent().global_transform.origin
var pos := global_transform.origin
var from_target := pos - target
# Check ranges.
if from_target.length() < min_distance:
from_target = from_target.normalized() * min_distance
elif from_target.length() > max_distance:
from_target = from_target.normalized() * max_distance
from_target.y = height
pos = target + from_target
look_at_from_position(pos, target, Vector3.UP)
elif camera_type == CameraType.TOP_DOWN:
position.x = get_parent().global_transform.origin.x
position.z = get_parent().global_transform.origin.z
# Force rotation to prevent camera from being slanted after switching cameras while on a slope.
rotation_degrees = Vector3(270, 180, 0)
# Dynamic field of view based on car speed, with smoothing to prevent sudden changes on impact.
desired_fov = clamp(base_fov + (abs(global_position.length() - previous_position.length()) - FOV_CHANGE_MIN_SPEED) * FOV_SPEED_FACTOR, base_fov, 100)
fov = lerpf(fov, desired_fov, FOV_SMOOTH_FACTOR)
# Turn a little up or down
transform.basis = Basis(transform.basis[0], deg_to_rad(angle_v_adjust)) * transform.basis
previous_position = global_position
func update_camera():
match camera_type:
CameraType.EXTERIOR:
transform = initial_transform
CameraType.INTERIOR:
global_transform = get_node(^"../../InteriorCameraPosition").global_transform
CameraType.TOP_DOWN:
global_transform = get_node(^"../../TopDownCameraPosition").global_transform
# This detaches the camera transform from the parent spatial node, but only
# for exterior and top-down cameras.
set_as_top_level(camera_type != CameraType.INTERIOR)

View file

@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://biwk66ryub3f1"
path="res://.godot/imported/impact.wav-0e789bd7903e20aed8bed8918b465ad1.sample"
[deps]
source_file="res://vehicles/impact.wav"
dest_files=["res://.godot/imported/impact.wav-0e789bd7903e20aed8bed8918b465ad1.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=0

BIN
vehicles/impact_1.wav Normal file

Binary file not shown.

View file

@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://sy2li7u35867"
path="res://.godot/imported/impact_1.wav-b48c755a0f8f9c75d26b0f9cb15d1f4a.sample"
[deps]
source_file="res://vehicles/impact_1.wav"
dest_files=["res://.godot/imported/impact_1.wav-b48c755a0f8f9c75d26b0f9cb15d1f4a.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=0

BIN
vehicles/impact_2.wav Normal file

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show more