generated from krampus/template-godot4
	Compare commits
	
		
			4 Commits
		
	
	
		
			191937eae8
			...
			cf185592d6
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| cf185592d6 | |||
| c699a72578 | |||
| c3e7bc62cc | |||
| cd4fbb4ee5 | 
| @ -1,4 +1,4 @@ | ||||
| [gd_scene load_steps=65 format=3 uid="uid://bm2o3mex10v11"] | ||||
| [gd_scene load_steps=66 format=3 uid="uid://bm2o3mex10v11"] | ||||
| 
 | ||||
| [ext_resource type="Terrain3DAssets" uid="uid://cwl34gstabgrx" path="res://levels/debug_level/terrain_assets.res" id="1_5smdk"] | ||||
| [ext_resource type="Material" uid="uid://drxnue0xsen13" path="res://assets/materials/tropical_water.tres" id="4_bwkbv"] | ||||
| @ -20,6 +20,7 @@ | ||||
| [ext_resource type="Texture2D" uid="uid://du3vk5nnksohs" path="res://assets/sprites/particles/sparkle.png" id="16_2m5yu"] | ||||
| [ext_resource type="Shader" path="res://src/shaders/frosted_glass.gdshader" id="16_rat2n"] | ||||
| [ext_resource type="PackedScene" uid="uid://nqar1qcun8ax" path="res://src/props/scenery/highway/guard_rail/guard_rail.tscn" id="16_xtxyj"] | ||||
| [ext_resource type="PackedScene" uid="uid://c6k44l0mnq3o1" path="res://src/world/effects/explosion/explosion_effect.tscn" id="16_xufks"] | ||||
| [ext_resource type="PackedScene" uid="uid://d0tcr6uijpym5" path="res://src/props/scenery/highway/highway_road.tscn" id="17_amems"] | ||||
| [ext_resource type="Texture2D" uid="uid://bq8dxuxfw1rwu" path="res://assets/textures/wood/lacquered_planks.png" id="17_xciuf"] | ||||
| [ext_resource type="Texture2D" path="res://assets/textures/grass_green/grass_green_albedo.dds" id="18_scall"] | ||||
| @ -440,6 +441,10 @@ amount = -1 | ||||
| spawn_on_ready = true | ||||
| spawn_turns = 1 | ||||
| 
 | ||||
| [node name="ExplosionEffect" parent="Course" instance=ExtResource("16_xufks")] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 274.103, 5.01502, 286.299) | ||||
| visible = false | ||||
| 
 | ||||
| [node name="CityBuildings" type="Node3D" parent="."] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 129.404, -9.53674e-07, 309.4) | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										
											BIN
										
									
								
								levels/debug_level/terrain_assets.res
									 (Stored with Git LFS)
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								levels/debug_level/terrain_assets.res
									 (Stored with Git LFS)
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										9
									
								
								levels/terrain_test/materials/concrete.tres
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								levels/terrain_test/materials/concrete.tres
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,9 @@ | ||||
| [gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://cwxh04w02o83o"] | ||||
| 
 | ||||
| [ext_resource type="Texture2D" uid="uid://cqlp0tjmadi75" path="res://assets/textures/highway/highway_road.png" id="1_5ncmm"] | ||||
| 
 | ||||
| [resource] | ||||
| albedo_texture = ExtResource("1_5ncmm") | ||||
| uv1_scale = Vector3(0.05, 0.05, 0.05) | ||||
| uv1_triplanar = true | ||||
| texture_filter = 4 | ||||
							
								
								
									
										9
									
								
								levels/terrain_test/materials/fairway.tres
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								levels/terrain_test/materials/fairway.tres
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,9 @@ | ||||
| [gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://ccmj2vt17lvs2"] | ||||
| 
 | ||||
| [ext_resource type="Texture2D" path="res://assets/textures/grass_fairway/grass_fairway_albedo.dds" id="1_isnyn"] | ||||
| 
 | ||||
| [resource] | ||||
| albedo_texture = ExtResource("1_isnyn") | ||||
| uv1_scale = Vector3(0.05, 0.05, 0.05) | ||||
| uv1_triplanar = true | ||||
| texture_filter = 4 | ||||
							
								
								
									
										9
									
								
								levels/terrain_test/materials/green.tres
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								levels/terrain_test/materials/green.tres
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,9 @@ | ||||
| [gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://cjvumpmthiac4"] | ||||
| 
 | ||||
| [ext_resource type="Texture2D" path="res://assets/textures/grass_green/grass_green_albedo.dds" id="1_ad8tx"] | ||||
| 
 | ||||
| [resource] | ||||
| albedo_texture = ExtResource("1_ad8tx") | ||||
| uv1_scale = Vector3(0.05, 0.05, 0.05) | ||||
| uv1_triplanar = true | ||||
| texture_filter = 4 | ||||
							
								
								
									
										9
									
								
								levels/terrain_test/materials/metal.tres
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								levels/terrain_test/materials/metal.tres
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,9 @@ | ||||
| [gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://buagg4yv8c7lj"] | ||||
| 
 | ||||
| [ext_resource type="Texture2D" uid="uid://b8vgf8wy7h4nx" path="res://assets/textures/guard_rail/guard_rail.png" id="1_arb6a"] | ||||
| 
 | ||||
| [resource] | ||||
| albedo_texture = ExtResource("1_arb6a") | ||||
| uv1_scale = Vector3(0.05, 0.05, 0.05) | ||||
| uv1_triplanar = true | ||||
| texture_filter = 4 | ||||
							
								
								
									
										9
									
								
								levels/terrain_test/materials/rock.tres
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								levels/terrain_test/materials/rock.tres
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,9 @@ | ||||
| [gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://dei1jkva281ei"] | ||||
| 
 | ||||
| [ext_resource type="Texture2D" path="res://assets/textures/mountain_rock/mountain_rock_albedo.dds" id="1_x1eim"] | ||||
| 
 | ||||
| [resource] | ||||
| albedo_texture = ExtResource("1_x1eim") | ||||
| uv1_scale = Vector3(0.05, 0.05, 0.05) | ||||
| uv1_triplanar = true | ||||
| texture_filter = 4 | ||||
							
								
								
									
										9
									
								
								levels/terrain_test/materials/rough.tres
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								levels/terrain_test/materials/rough.tres
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,9 @@ | ||||
| [gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://c8uym7rba01o5"] | ||||
| 
 | ||||
| [ext_resource type="Texture2D" path="res://assets/textures/grass_rough/grass_rough_albedo.dds" id="1_kiq74"] | ||||
| 
 | ||||
| [resource] | ||||
| albedo_texture = ExtResource("1_kiq74") | ||||
| uv1_scale = Vector3(0.05, 0.05, 0.05) | ||||
| uv1_triplanar = true | ||||
| texture_filter = 4 | ||||
							
								
								
									
										9
									
								
								levels/terrain_test/materials/sand.tres
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								levels/terrain_test/materials/sand.tres
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,9 @@ | ||||
| [gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://d3doxcg7g0sq"] | ||||
| 
 | ||||
| [ext_resource type="Texture2D" path="res://assets/textures/sand_trap/sand_trap_albedo.dds" id="1_bubcj"] | ||||
| 
 | ||||
| [resource] | ||||
| albedo_texture = ExtResource("1_bubcj") | ||||
| uv1_scale = Vector3(0.05, 0.05, 0.05) | ||||
| uv1_triplanar = true | ||||
| texture_filter = 4 | ||||
							
								
								
									
										9
									
								
								levels/terrain_test/materials/wood.tres
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								levels/terrain_test/materials/wood.tres
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,9 @@ | ||||
| [gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://bgnbvc5qdnoxm"] | ||||
| 
 | ||||
| [ext_resource type="Texture2D" uid="uid://bq8dxuxfw1rwu" path="res://assets/textures/wood/lacquered_planks.png" id="1_codln"] | ||||
| 
 | ||||
| [resource] | ||||
| albedo_texture = ExtResource("1_codln") | ||||
| uv1_scale = Vector3(0.05, 0.05, 0.05) | ||||
| uv1_triplanar = true | ||||
| texture_filter = 4 | ||||
| @ -1,12 +1,16 @@ | ||||
| extends Node3D | ||||
| 
 | ||||
| const BALL_SPAWN_GROUP := "BallSpawn" | ||||
| const RAMP_SPAWN_GROUP := "RampSpawn" | ||||
| const DROP_SPAWN_GROUP := "DropSpawn" | ||||
| const PUTT_SPAWN_GROUP := "PuttSpawn" | ||||
| 
 | ||||
| const PUTT_VEC := Vector3(0, 0, 2) | ||||
| 
 | ||||
| @export var ball_scene: PackedScene | ||||
| 
 | ||||
| 
 | ||||
| func spawn_balls() -> void: | ||||
| 	for spawn: Node3D in get_tree().get_nodes_in_group(BALL_SPAWN_GROUP): | ||||
| func spawn_balls(spawn_group: String, initial_impulse: Vector3 = Vector3.ZERO) -> void: | ||||
| 	for spawn: Node3D in get_tree().get_nodes_in_group(spawn_group): | ||||
| 		var ball: GameBall = ball_scene.instantiate() | ||||
| 		var callback := func() -> void: | ||||
| 			if ball.sleeping: | ||||
| @ -15,8 +19,23 @@ func spawn_balls() -> void: | ||||
| 		spawn.add_sibling(ball) | ||||
| 		ball.global_transform = spawn.global_transform | ||||
| 		ball.freeze = false | ||||
| 		if initial_impulse: | ||||
| 			ball.apply_impulse( | ||||
| 				initial_impulse, | ||||
| 				( | ||||
| 					initial_impulse.normalized() | ||||
| 					* -1 | ||||
| 					* ball.radius | ||||
| 					* ball.radius | ||||
| 					* ShotSetup.SHOT_OFFSET_Z_FACTOR | ||||
| 				) | ||||
| 			) | ||||
| 
 | ||||
| 
 | ||||
| func _process(_delta: float) -> void: | ||||
| 	if Input.is_action_just_pressed("debug_1"): | ||||
| 		spawn_balls() | ||||
| 		spawn_balls(RAMP_SPAWN_GROUP) | ||||
| 	if Input.is_action_just_pressed("debug_2"): | ||||
| 		spawn_balls(DROP_SPAWN_GROUP) | ||||
| 	if Input.is_action_just_pressed("debug_3"): | ||||
| 		spawn_balls(PUTT_SPAWN_GROUP, PUTT_VEC) | ||||
|  | ||||
| @ -1,20 +1,21 @@ | ||||
| [gd_scene load_steps=37 format=3 uid="uid://cvs546kk7t7aw"] | ||||
| [gd_scene load_steps=34 format=3 uid="uid://cvs546kk7t7aw"] | ||||
| 
 | ||||
| [ext_resource type="Texture2D" uid="uid://c47ern0l2d50r" path="res://assets/vista_2.png" id="1_d1wmn"] | ||||
| [ext_resource type="Script" path="res://levels/terrain_test/terrain_test.gd" id="1_drk48"] | ||||
| [ext_resource type="Terrain3DAssets" uid="uid://cwl34gstabgrx" path="res://levels/debug_level/terrain_assets.res" id="2_25igk"] | ||||
| [ext_resource type="PackedScene" uid="uid://b7pgvftmj7nbe" path="res://src/equipment/balls/debug_ball/debug_ball.tscn" id="2_77pf6"] | ||||
| [ext_resource type="Texture2D" path="res://assets/textures/grass_rough/grass_rough_albedo.dds" id="4_rm170"] | ||||
| [ext_resource type="Material" uid="uid://c8uym7rba01o5" path="res://levels/terrain_test/materials/rough.tres" id="5_5e0na"] | ||||
| [ext_resource type="FontFile" uid="uid://cbaqlaqdobnux" path="res://assets/fonts/Orbitron/Orbitron-VariableFont_wght.ttf" id="5_h18yf"] | ||||
| [ext_resource type="Script" path="res://src/world/terrain_marker.gd" id="6_4bo0x"] | ||||
| [ext_resource type="Texture2D" path="res://assets/textures/grass_fairway/grass_fairway_albedo.dds" id="6_wdukl"] | ||||
| [ext_resource type="Texture2D" path="res://assets/textures/grass_green/grass_green_albedo.dds" id="8_gxslv"] | ||||
| [ext_resource type="Texture2D" path="res://assets/textures/sand_trap/sand_trap_albedo.dds" id="9_ris7y"] | ||||
| [ext_resource type="Texture2D" uid="uid://cqlp0tjmadi75" path="res://assets/textures/highway/highway_road.png" id="10_4nt4g"] | ||||
| [ext_resource type="Texture2D" path="res://assets/textures/mountain_rock/mountain_rock_albedo.dds" id="11_2lq7o"] | ||||
| [ext_resource type="Texture2D" uid="uid://bq8dxuxfw1rwu" path="res://assets/textures/wood/lacquered_planks.png" id="12_e07mg"] | ||||
| [ext_resource type="Texture2D" uid="uid://b8vgf8wy7h4nx" path="res://assets/textures/guard_rail/guard_rail.png" id="13_ll3kp"] | ||||
| [ext_resource type="Material" uid="uid://ccmj2vt17lvs2" path="res://levels/terrain_test/materials/fairway.tres" id="8_eb66j"] | ||||
| [ext_resource type="Material" uid="uid://cjvumpmthiac4" path="res://levels/terrain_test/materials/green.tres" id="9_b32yd"] | ||||
| [ext_resource type="Material" uid="uid://d3doxcg7g0sq" path="res://levels/terrain_test/materials/sand.tres" id="10_5p842"] | ||||
| [ext_resource type="Material" uid="uid://cwxh04w02o83o" path="res://levels/terrain_test/materials/concrete.tres" id="11_n8v11"] | ||||
| [ext_resource type="Material" uid="uid://dei1jkva281ei" path="res://levels/terrain_test/materials/rock.tres" id="12_521n4"] | ||||
| [ext_resource type="Material" uid="uid://bgnbvc5qdnoxm" path="res://levels/terrain_test/materials/wood.tres" id="13_h001q"] | ||||
| [ext_resource type="Material" uid="uid://buagg4yv8c7lj" path="res://levels/terrain_test/materials/metal.tres" id="14_7mq02"] | ||||
| [ext_resource type="Material" uid="uid://c5hidbq5gbmr" path="res://assets/materials/crystal.tres" id="14_o81al"] | ||||
| [ext_resource type="PackedScene" uid="uid://1s3gywmoi20e" path="res://src/characters/player_characters/gfolf_girl/gfolf_girl.tscn" id="16_r3ld5"] | ||||
| 
 | ||||
| [sub_resource type="PanoramaSkyMaterial" id="PanoramaSkyMaterial_kd0nc"] | ||||
| panorama = ExtResource("1_d1wmn") | ||||
| @ -86,9 +87,6 @@ auto_shader = true | ||||
| [sub_resource type="BoxMesh" id="BoxMesh_7awoq"] | ||||
| size = Vector3(10, 1, 60) | ||||
| 
 | ||||
| [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ceq7g"] | ||||
| albedo_texture = ExtResource("4_rm170") | ||||
| 
 | ||||
| [sub_resource type="PrismMesh" id="PrismMesh_kdeya"] | ||||
| left_to_right = 1.0 | ||||
| size = Vector3(100, 50, 10) | ||||
| @ -102,30 +100,20 @@ data = PackedVector3Array(50, 25, 5, 50, -25, 5, -50, -25, 5, 50, 25, -5, -50, - | ||||
| [sub_resource type="BoxMesh" id="BoxMesh_oukkf"] | ||||
| size = Vector3(10, 1, 60) | ||||
| 
 | ||||
| [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_c7541"] | ||||
| albedo_texture = ExtResource("6_wdukl") | ||||
| 
 | ||||
| [sub_resource type="PrismMesh" id="PrismMesh_c7rfr"] | ||||
| left_to_right = 1.0 | ||||
| size = Vector3(100, 50, 10) | ||||
| 
 | ||||
| [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_18mqp"] | ||||
| albedo_texture = ExtResource("8_gxslv") | ||||
| [sub_resource type="BoxMesh" id="BoxMesh_3gfbh"] | ||||
| size = Vector3(20, 1, 400) | ||||
| 
 | ||||
| [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_2lnp3"] | ||||
| albedo_texture = ExtResource("9_ris7y") | ||||
| [sub_resource type="BoxShape3D" id="BoxShape3D_1sq7i"] | ||||
| size = Vector3(20, 1, 400) | ||||
| 
 | ||||
| [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_nflf8"] | ||||
| albedo_texture = ExtResource("10_4nt4g") | ||||
| [sub_resource type="PlaceholderTexture2D" id="PlaceholderTexture2D_ugtgi"] | ||||
| 
 | ||||
| [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_3qcr7"] | ||||
| albedo_texture = ExtResource("11_2lq7o") | ||||
| 
 | ||||
| [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_5nlxd"] | ||||
| albedo_texture = ExtResource("12_e07mg") | ||||
| 
 | ||||
| [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_fhrit"] | ||||
| albedo_texture = ExtResource("13_ll3kp") | ||||
| [sub_resource type="BoxMesh" id="BoxMesh_u7piw"] | ||||
| size = Vector3(20, 1, 400) | ||||
| 
 | ||||
| [node name="TerrainTestMap" type="Node3D"] | ||||
| script = ExtResource("1_drk48") | ||||
| @ -157,6 +145,7 @@ metadata/_edit_lock_ = true | ||||
| [node name="PlayerSpawn" type="Marker3D" parent="." groups=["PlayerSpawn"]] | ||||
| 
 | ||||
| [node name="TestRamps" type="Node3D" parent="."] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -299.216) | ||||
| 
 | ||||
| [node name="Rough" type="Node3D" parent="TestRamps"] | ||||
| transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 0, 0) | ||||
| @ -167,12 +156,12 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 30) | ||||
| [node name="MeshInstance3D" type="MeshInstance3D" parent="TestRamps/Rough/RampGeometry"] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 30) | ||||
| mesh = SubResource("BoxMesh_7awoq") | ||||
| surface_material_override/0 = SubResource("StandardMaterial3D_ceq7g") | ||||
| surface_material_override/0 = ExtResource("5_5e0na") | ||||
| 
 | ||||
| [node name="MeshInstance3D2" type="MeshInstance3D" parent="TestRamps/Rough/RampGeometry"] | ||||
| transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0, 25, 109) | ||||
| mesh = SubResource("PrismMesh_kdeya") | ||||
| surface_material_override/0 = SubResource("StandardMaterial3D_ceq7g") | ||||
| surface_material_override/0 = ExtResource("5_5e0na") | ||||
| 
 | ||||
| [node name="Label3D" type="Label3D" parent="TestRamps/Rough/RampGeometry"] | ||||
| transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 8, 0) | ||||
| @ -195,7 +184,7 @@ shape = SubResource("ConcavePolygonShape3D_ufirn") | ||||
| transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0, 25, 109) | ||||
| shape = SubResource("ConcavePolygonShape3D_gq475") | ||||
| 
 | ||||
| [node name="BallSpawn" type="Marker3D" parent="TestRamps/Rough/RampGeometry" groups=["BallSpawn"]] | ||||
| [node name="BallSpawn" type="Marker3D" parent="TestRamps/Rough/RampGeometry" groups=["RampSpawn"]] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 50, 158) | ||||
| 
 | ||||
| [node name="Fairway" type="Node3D" parent="TestRamps"] | ||||
| @ -207,12 +196,12 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 30) | ||||
| [node name="MeshInstance3D" type="MeshInstance3D" parent="TestRamps/Fairway/RampGeometry"] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 30) | ||||
| mesh = SubResource("BoxMesh_oukkf") | ||||
| surface_material_override/0 = SubResource("StandardMaterial3D_c7541") | ||||
| surface_material_override/0 = ExtResource("8_eb66j") | ||||
| 
 | ||||
| [node name="MeshInstance3D2" type="MeshInstance3D" parent="TestRamps/Fairway/RampGeometry"] | ||||
| transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0, 25, 109) | ||||
| mesh = SubResource("PrismMesh_c7rfr") | ||||
| surface_material_override/0 = SubResource("StandardMaterial3D_c7541") | ||||
| surface_material_override/0 = ExtResource("8_eb66j") | ||||
| 
 | ||||
| [node name="Label3D" type="Label3D" parent="TestRamps/Fairway/RampGeometry"] | ||||
| transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 8, 0) | ||||
| @ -235,7 +224,7 @@ shape = SubResource("ConcavePolygonShape3D_ufirn") | ||||
| transform = Transform3D(-2.98023e-08, 0, -1, 0, 1, 0, 1, 0, -2.98023e-08, 0, 25, 109) | ||||
| shape = SubResource("ConcavePolygonShape3D_gq475") | ||||
| 
 | ||||
| [node name="BallSpawn" type="Marker3D" parent="TestRamps/Fairway/RampGeometry" groups=["BallSpawn"]] | ||||
| [node name="BallSpawn" type="Marker3D" parent="TestRamps/Fairway/RampGeometry" groups=["RampSpawn"]] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 50, 158) | ||||
| 
 | ||||
| [node name="Green" type="Node3D" parent="TestRamps"] | ||||
| @ -247,12 +236,12 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 30) | ||||
| [node name="MeshInstance3D" type="MeshInstance3D" parent="TestRamps/Green/RampGeometry"] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 30) | ||||
| mesh = SubResource("BoxMesh_oukkf") | ||||
| surface_material_override/0 = SubResource("StandardMaterial3D_18mqp") | ||||
| surface_material_override/0 = ExtResource("9_b32yd") | ||||
| 
 | ||||
| [node name="MeshInstance3D2" type="MeshInstance3D" parent="TestRamps/Green/RampGeometry"] | ||||
| transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0, 25, 109) | ||||
| mesh = SubResource("PrismMesh_c7rfr") | ||||
| surface_material_override/0 = SubResource("StandardMaterial3D_18mqp") | ||||
| surface_material_override/0 = ExtResource("9_b32yd") | ||||
| 
 | ||||
| [node name="Label3D" type="Label3D" parent="TestRamps/Green/RampGeometry"] | ||||
| transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 8, 0) | ||||
| @ -275,7 +264,7 @@ shape = SubResource("ConcavePolygonShape3D_ufirn") | ||||
| transform = Transform3D(-2.98023e-08, 0, -1, 0, 1, 0, 1, 0, -2.98023e-08, 0, 25, 109) | ||||
| shape = SubResource("ConcavePolygonShape3D_gq475") | ||||
| 
 | ||||
| [node name="BallSpawn" type="Marker3D" parent="TestRamps/Green/RampGeometry" groups=["BallSpawn"]] | ||||
| [node name="BallSpawn" type="Marker3D" parent="TestRamps/Green/RampGeometry" groups=["RampSpawn"]] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 50, 158) | ||||
| 
 | ||||
| [node name="Sand" type="Node3D" parent="TestRamps"] | ||||
| @ -287,12 +276,12 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 30) | ||||
| [node name="MeshInstance3D" type="MeshInstance3D" parent="TestRamps/Sand/RampGeometry"] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 30) | ||||
| mesh = SubResource("BoxMesh_oukkf") | ||||
| surface_material_override/0 = SubResource("StandardMaterial3D_2lnp3") | ||||
| surface_material_override/0 = ExtResource("10_5p842") | ||||
| 
 | ||||
| [node name="MeshInstance3D2" type="MeshInstance3D" parent="TestRamps/Sand/RampGeometry"] | ||||
| transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0, 25, 109) | ||||
| mesh = SubResource("PrismMesh_c7rfr") | ||||
| surface_material_override/0 = SubResource("StandardMaterial3D_2lnp3") | ||||
| surface_material_override/0 = ExtResource("10_5p842") | ||||
| 
 | ||||
| [node name="Label3D" type="Label3D" parent="TestRamps/Sand/RampGeometry"] | ||||
| transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 8, 0) | ||||
| @ -315,7 +304,7 @@ shape = SubResource("ConcavePolygonShape3D_ufirn") | ||||
| transform = Transform3D(-2.98023e-08, 0, -1, 0, 1, 0, 1, 0, -2.98023e-08, 0, 25, 109) | ||||
| shape = SubResource("ConcavePolygonShape3D_gq475") | ||||
| 
 | ||||
| [node name="BallSpawn" type="Marker3D" parent="TestRamps/Sand/RampGeometry" groups=["BallSpawn"]] | ||||
| [node name="BallSpawn" type="Marker3D" parent="TestRamps/Sand/RampGeometry" groups=["RampSpawn"]] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 50, 158) | ||||
| 
 | ||||
| [node name="Concrete" type="Node3D" parent="TestRamps"] | ||||
| @ -327,12 +316,12 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 30) | ||||
| [node name="MeshInstance3D" type="MeshInstance3D" parent="TestRamps/Concrete/RampGeometry"] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 30) | ||||
| mesh = SubResource("BoxMesh_oukkf") | ||||
| surface_material_override/0 = SubResource("StandardMaterial3D_nflf8") | ||||
| surface_material_override/0 = ExtResource("11_n8v11") | ||||
| 
 | ||||
| [node name="MeshInstance3D2" type="MeshInstance3D" parent="TestRamps/Concrete/RampGeometry"] | ||||
| transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0, 25, 109) | ||||
| mesh = SubResource("PrismMesh_c7rfr") | ||||
| surface_material_override/0 = SubResource("StandardMaterial3D_nflf8") | ||||
| surface_material_override/0 = ExtResource("11_n8v11") | ||||
| 
 | ||||
| [node name="Label3D" type="Label3D" parent="TestRamps/Concrete/RampGeometry"] | ||||
| transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 8, 0) | ||||
| @ -355,7 +344,7 @@ shape = SubResource("ConcavePolygonShape3D_ufirn") | ||||
| transform = Transform3D(-2.98023e-08, 0, -1, 0, 1, 0, 1, 0, -2.98023e-08, 0, 25, 109) | ||||
| shape = SubResource("ConcavePolygonShape3D_gq475") | ||||
| 
 | ||||
| [node name="BallSpawn" type="Marker3D" parent="TestRamps/Concrete/RampGeometry" groups=["BallSpawn"]] | ||||
| [node name="BallSpawn" type="Marker3D" parent="TestRamps/Concrete/RampGeometry" groups=["RampSpawn"]] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 50, 158) | ||||
| 
 | ||||
| [node name="Rock" type="Node3D" parent="TestRamps"] | ||||
| @ -367,12 +356,12 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 30) | ||||
| [node name="MeshInstance3D" type="MeshInstance3D" parent="TestRamps/Rock/RampGeometry"] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 30) | ||||
| mesh = SubResource("BoxMesh_oukkf") | ||||
| surface_material_override/0 = SubResource("StandardMaterial3D_3qcr7") | ||||
| surface_material_override/0 = ExtResource("12_521n4") | ||||
| 
 | ||||
| [node name="MeshInstance3D2" type="MeshInstance3D" parent="TestRamps/Rock/RampGeometry"] | ||||
| transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0, 25, 109) | ||||
| mesh = SubResource("PrismMesh_c7rfr") | ||||
| surface_material_override/0 = SubResource("StandardMaterial3D_3qcr7") | ||||
| surface_material_override/0 = ExtResource("12_521n4") | ||||
| 
 | ||||
| [node name="Label3D" type="Label3D" parent="TestRamps/Rock/RampGeometry"] | ||||
| transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 8, 0) | ||||
| @ -395,7 +384,7 @@ shape = SubResource("ConcavePolygonShape3D_ufirn") | ||||
| transform = Transform3D(-2.98023e-08, 0, -1, 0, 1, 0, 1, 0, -2.98023e-08, 0, 25, 109) | ||||
| shape = SubResource("ConcavePolygonShape3D_gq475") | ||||
| 
 | ||||
| [node name="BallSpawn" type="Marker3D" parent="TestRamps/Rock/RampGeometry" groups=["BallSpawn"]] | ||||
| [node name="BallSpawn" type="Marker3D" parent="TestRamps/Rock/RampGeometry" groups=["RampSpawn"]] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 50, 158) | ||||
| 
 | ||||
| [node name="Wood" type="Node3D" parent="TestRamps"] | ||||
| @ -407,12 +396,12 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 30) | ||||
| [node name="MeshInstance3D" type="MeshInstance3D" parent="TestRamps/Wood/RampGeometry"] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 30) | ||||
| mesh = SubResource("BoxMesh_oukkf") | ||||
| surface_material_override/0 = SubResource("StandardMaterial3D_5nlxd") | ||||
| surface_material_override/0 = ExtResource("13_h001q") | ||||
| 
 | ||||
| [node name="MeshInstance3D2" type="MeshInstance3D" parent="TestRamps/Wood/RampGeometry"] | ||||
| transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0, 25, 109) | ||||
| mesh = SubResource("PrismMesh_c7rfr") | ||||
| surface_material_override/0 = SubResource("StandardMaterial3D_5nlxd") | ||||
| surface_material_override/0 = ExtResource("13_h001q") | ||||
| 
 | ||||
| [node name="Label3D" type="Label3D" parent="TestRamps/Wood/RampGeometry"] | ||||
| transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 8, 0) | ||||
| @ -435,7 +424,7 @@ shape = SubResource("ConcavePolygonShape3D_ufirn") | ||||
| transform = Transform3D(-2.98023e-08, 0, -1, 0, 1, 0, 1, 0, -2.98023e-08, 0, 25, 109) | ||||
| shape = SubResource("ConcavePolygonShape3D_gq475") | ||||
| 
 | ||||
| [node name="BallSpawn" type="Marker3D" parent="TestRamps/Wood/RampGeometry" groups=["BallSpawn"]] | ||||
| [node name="BallSpawn" type="Marker3D" parent="TestRamps/Wood/RampGeometry" groups=["RampSpawn"]] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 50, 158) | ||||
| 
 | ||||
| [node name="Metal" type="Node3D" parent="TestRamps"] | ||||
| @ -447,12 +436,12 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 30) | ||||
| [node name="MeshInstance3D" type="MeshInstance3D" parent="TestRamps/Metal/RampGeometry"] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 30) | ||||
| mesh = SubResource("BoxMesh_oukkf") | ||||
| surface_material_override/0 = SubResource("StandardMaterial3D_fhrit") | ||||
| surface_material_override/0 = ExtResource("14_7mq02") | ||||
| 
 | ||||
| [node name="MeshInstance3D2" type="MeshInstance3D" parent="TestRamps/Metal/RampGeometry"] | ||||
| transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0, 25, 109) | ||||
| mesh = SubResource("PrismMesh_c7rfr") | ||||
| surface_material_override/0 = SubResource("StandardMaterial3D_fhrit") | ||||
| surface_material_override/0 = ExtResource("14_7mq02") | ||||
| 
 | ||||
| [node name="Label3D" type="Label3D" parent="TestRamps/Metal/RampGeometry"] | ||||
| transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 8, 0) | ||||
| @ -475,7 +464,7 @@ shape = SubResource("ConcavePolygonShape3D_ufirn") | ||||
| transform = Transform3D(-2.98023e-08, 0, -1, 0, 1, 0, 1, 0, -2.98023e-08, 0, 25, 109) | ||||
| shape = SubResource("ConcavePolygonShape3D_gq475") | ||||
| 
 | ||||
| [node name="BallSpawn" type="Marker3D" parent="TestRamps/Metal/RampGeometry" groups=["BallSpawn"]] | ||||
| [node name="BallSpawn" type="Marker3D" parent="TestRamps/Metal/RampGeometry" groups=["RampSpawn"]] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 50, 158) | ||||
| 
 | ||||
| [node name="Glass" type="Node3D" parent="TestRamps"] | ||||
| @ -515,5 +504,281 @@ shape = SubResource("ConcavePolygonShape3D_ufirn") | ||||
| transform = Transform3D(-2.98023e-08, 0, -1, 0, 1, 0, 1, 0, -2.98023e-08, 0, 25, 109) | ||||
| shape = SubResource("ConcavePolygonShape3D_gq475") | ||||
| 
 | ||||
| [node name="BallSpawn" type="Marker3D" parent="TestRamps/Glass/RampGeometry" groups=["BallSpawn"]] | ||||
| [node name="BallSpawn" type="Marker3D" parent="TestRamps/Glass/RampGeometry" groups=["RampSpawn"]] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 50, 158) | ||||
| 
 | ||||
| [node name="TestFields" type="Node3D" parent="."] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -90, 0, 30) | ||||
| 
 | ||||
| [node name="Rough" type="Node3D" parent="TestFields"] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 0, 0) | ||||
| 
 | ||||
| [node name="MeshInstance3D" type="MeshInstance3D" parent="TestFields/Rough"] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 200) | ||||
| mesh = SubResource("BoxMesh_3gfbh") | ||||
| surface_material_override/0 = ExtResource("5_5e0na") | ||||
| 
 | ||||
| [node name="StaticBody3D" type="StaticBody3D" parent="TestFields/Rough/MeshInstance3D"] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -200) | ||||
| 
 | ||||
| [node name="CollisionShape3D" type="CollisionShape3D" parent="TestFields/Rough/MeshInstance3D/StaticBody3D"] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 200) | ||||
| shape = SubResource("BoxShape3D_1sq7i") | ||||
| 
 | ||||
| [node name="TerrainMarker" type="Node" parent="TestFields/Rough/MeshInstance3D/StaticBody3D"] | ||||
| script = ExtResource("6_4bo0x") | ||||
| type = 1 | ||||
| 
 | ||||
| [node name="BallDropSpawn" type="Marker3D" parent="TestFields/Rough" groups=["DropSpawn"]] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 40, 10) | ||||
| 
 | ||||
| [node name="PuttSpawn" type="Marker3D" parent="TestFields/Rough" groups=["PuttSpawn"]] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.55, 1) | ||||
| 
 | ||||
| [node name="GoalLine" type="Decal" parent="TestFields/Rough/PuttSpawn"] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 5) | ||||
| size = Vector3(20, 2, 0.5) | ||||
| texture_albedo = SubResource("PlaceholderTexture2D_ugtgi") | ||||
| 
 | ||||
| [node name="GfolfGirl" parent="TestFields/Rough/PuttSpawn" instance=ExtResource("16_r3ld5")] | ||||
| transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0.5, -0.05, 0) | ||||
| 
 | ||||
| [node name="Fairway" type="Node3D" parent="TestFields"] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30, 0, 0) | ||||
| 
 | ||||
| [node name="MeshInstance3D" type="MeshInstance3D" parent="TestFields/Fairway"] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 200) | ||||
| mesh = SubResource("BoxMesh_u7piw") | ||||
| surface_material_override/0 = ExtResource("8_eb66j") | ||||
| 
 | ||||
| [node name="StaticBody3D" type="StaticBody3D" parent="TestFields/Fairway/MeshInstance3D"] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -200) | ||||
| 
 | ||||
| [node name="CollisionShape3D" type="CollisionShape3D" parent="TestFields/Fairway/MeshInstance3D/StaticBody3D"] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 200) | ||||
| shape = SubResource("BoxShape3D_1sq7i") | ||||
| 
 | ||||
| [node name="TerrainMarker" type="Node" parent="TestFields/Fairway/MeshInstance3D/StaticBody3D"] | ||||
| script = ExtResource("6_4bo0x") | ||||
| type = 2 | ||||
| 
 | ||||
| [node name="BallDropSpawn" type="Marker3D" parent="TestFields/Fairway" groups=["DropSpawn"]] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 40, 10) | ||||
| 
 | ||||
| [node name="PuttSpawn" type="Marker3D" parent="TestFields/Fairway" groups=["PuttSpawn"]] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.55, 1) | ||||
| 
 | ||||
| [node name="GoalLine" type="Decal" parent="TestFields/Fairway/PuttSpawn"] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 8) | ||||
| size = Vector3(20, 2, 0.5) | ||||
| texture_albedo = SubResource("PlaceholderTexture2D_ugtgi") | ||||
| 
 | ||||
| [node name="Green" type="Node3D" parent="TestFields"] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 50, 0, 0) | ||||
| 
 | ||||
| [node name="MeshInstance3D" type="MeshInstance3D" parent="TestFields/Green"] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 200) | ||||
| mesh = SubResource("BoxMesh_u7piw") | ||||
| surface_material_override/0 = ExtResource("9_b32yd") | ||||
| 
 | ||||
| [node name="StaticBody3D" type="StaticBody3D" parent="TestFields/Green/MeshInstance3D"] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -200) | ||||
| 
 | ||||
| [node name="CollisionShape3D" type="CollisionShape3D" parent="TestFields/Green/MeshInstance3D/StaticBody3D"] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 200) | ||||
| shape = SubResource("BoxShape3D_1sq7i") | ||||
| 
 | ||||
| [node name="TerrainMarker" type="Node" parent="TestFields/Green/MeshInstance3D/StaticBody3D"] | ||||
| script = ExtResource("6_4bo0x") | ||||
| type = 3 | ||||
| 
 | ||||
| [node name="BallDropSpawn" type="Marker3D" parent="TestFields/Green" groups=["DropSpawn"]] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 40, 10) | ||||
| 
 | ||||
| [node name="PuttSpawn" type="Marker3D" parent="TestFields/Green" groups=["PuttSpawn"]] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.55, 1) | ||||
| 
 | ||||
| [node name="GoalLine" type="Decal" parent="TestFields/Green/PuttSpawn"] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 13) | ||||
| size = Vector3(20, 2, 0.5) | ||||
| texture_albedo = SubResource("PlaceholderTexture2D_ugtgi") | ||||
| 
 | ||||
| [node name="Sand" type="Node3D" parent="TestFields"] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 70, 0, 0) | ||||
| 
 | ||||
| [node name="MeshInstance3D" type="MeshInstance3D" parent="TestFields/Sand"] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 200) | ||||
| mesh = SubResource("BoxMesh_u7piw") | ||||
| surface_material_override/0 = ExtResource("10_5p842") | ||||
| 
 | ||||
| [node name="StaticBody3D" type="StaticBody3D" parent="TestFields/Sand/MeshInstance3D"] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -200) | ||||
| 
 | ||||
| [node name="CollisionShape3D" type="CollisionShape3D" parent="TestFields/Sand/MeshInstance3D/StaticBody3D"] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 200) | ||||
| shape = SubResource("BoxShape3D_1sq7i") | ||||
| 
 | ||||
| [node name="TerrainMarker" type="Node" parent="TestFields/Sand/MeshInstance3D/StaticBody3D"] | ||||
| script = ExtResource("6_4bo0x") | ||||
| type = 4 | ||||
| 
 | ||||
| [node name="BallDropSpawn" type="Marker3D" parent="TestFields/Sand" groups=["DropSpawn"]] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 40, 10) | ||||
| 
 | ||||
| [node name="PuttSpawn" type="Marker3D" parent="TestFields/Sand" groups=["PuttSpawn"]] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.55, 1) | ||||
| 
 | ||||
| [node name="GoalLine" type="Decal" parent="TestFields/Sand/PuttSpawn"] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 3) | ||||
| size = Vector3(20, 2, 0.5) | ||||
| texture_albedo = SubResource("PlaceholderTexture2D_ugtgi") | ||||
| 
 | ||||
| [node name="Concrete" type="Node3D" parent="TestFields"] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 90, 0, 0) | ||||
| 
 | ||||
| [node name="MeshInstance3D" type="MeshInstance3D" parent="TestFields/Concrete"] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 200) | ||||
| mesh = SubResource("BoxMesh_u7piw") | ||||
| surface_material_override/0 = ExtResource("11_n8v11") | ||||
| 
 | ||||
| [node name="StaticBody3D" type="StaticBody3D" parent="TestFields/Concrete/MeshInstance3D"] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -200) | ||||
| 
 | ||||
| [node name="CollisionShape3D" type="CollisionShape3D" parent="TestFields/Concrete/MeshInstance3D/StaticBody3D"] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 200) | ||||
| shape = SubResource("BoxShape3D_1sq7i") | ||||
| 
 | ||||
| [node name="TerrainMarker" type="Node" parent="TestFields/Concrete/MeshInstance3D/StaticBody3D"] | ||||
| script = ExtResource("6_4bo0x") | ||||
| type = 5 | ||||
| 
 | ||||
| [node name="BallDropSpawn" type="Marker3D" parent="TestFields/Concrete" groups=["DropSpawn"]] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 40, 10) | ||||
| 
 | ||||
| [node name="PuttSpawn" type="Marker3D" parent="TestFields/Concrete" groups=["PuttSpawn"]] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.55, 1) | ||||
| 
 | ||||
| [node name="GoalLine" type="Decal" parent="TestFields/Concrete/PuttSpawn"] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 21) | ||||
| size = Vector3(20, 2, 0.5) | ||||
| texture_albedo = SubResource("PlaceholderTexture2D_ugtgi") | ||||
| 
 | ||||
| [node name="Rock" type="Node3D" parent="TestFields"] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 110, 0, 0) | ||||
| 
 | ||||
| [node name="MeshInstance3D" type="MeshInstance3D" parent="TestFields/Rock"] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 200) | ||||
| mesh = SubResource("BoxMesh_u7piw") | ||||
| surface_material_override/0 = ExtResource("12_521n4") | ||||
| 
 | ||||
| [node name="StaticBody3D" type="StaticBody3D" parent="TestFields/Rock/MeshInstance3D"] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -200) | ||||
| 
 | ||||
| [node name="CollisionShape3D" type="CollisionShape3D" parent="TestFields/Rock/MeshInstance3D/StaticBody3D"] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 200) | ||||
| shape = SubResource("BoxShape3D_1sq7i") | ||||
| 
 | ||||
| [node name="TerrainMarker" type="Node" parent="TestFields/Rock/MeshInstance3D/StaticBody3D"] | ||||
| script = ExtResource("6_4bo0x") | ||||
| type = 6 | ||||
| 
 | ||||
| [node name="BallDropSpawn" type="Marker3D" parent="TestFields/Rock" groups=["DropSpawn"]] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 40, 10) | ||||
| 
 | ||||
| [node name="PuttSpawn" type="Marker3D" parent="TestFields/Rock" groups=["PuttSpawn"]] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.55, 1) | ||||
| 
 | ||||
| [node name="GoalLine" type="Decal" parent="TestFields/Rock/PuttSpawn"] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 8) | ||||
| size = Vector3(20, 2, 0.5) | ||||
| texture_albedo = SubResource("PlaceholderTexture2D_ugtgi") | ||||
| 
 | ||||
| [node name="Wood" type="Node3D" parent="TestFields"] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 130, 0, 0) | ||||
| 
 | ||||
| [node name="MeshInstance3D" type="MeshInstance3D" parent="TestFields/Wood"] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 200) | ||||
| mesh = SubResource("BoxMesh_u7piw") | ||||
| surface_material_override/0 = ExtResource("13_h001q") | ||||
| 
 | ||||
| [node name="StaticBody3D" type="StaticBody3D" parent="TestFields/Wood/MeshInstance3D"] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -200) | ||||
| 
 | ||||
| [node name="CollisionShape3D" type="CollisionShape3D" parent="TestFields/Wood/MeshInstance3D/StaticBody3D"] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 200) | ||||
| shape = SubResource("BoxShape3D_1sq7i") | ||||
| 
 | ||||
| [node name="TerrainMarker" type="Node" parent="TestFields/Wood/MeshInstance3D/StaticBody3D"] | ||||
| script = ExtResource("6_4bo0x") | ||||
| type = 7 | ||||
| 
 | ||||
| [node name="BallDropSpawn" type="Marker3D" parent="TestFields/Wood" groups=["DropSpawn"]] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 40, 10) | ||||
| 
 | ||||
| [node name="PuttSpawn" type="Marker3D" parent="TestFields/Wood" groups=["PuttSpawn"]] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.55, 1) | ||||
| 
 | ||||
| [node name="GoalLine" type="Decal" parent="TestFields/Wood/PuttSpawn"] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 21) | ||||
| size = Vector3(20, 2, 0.5) | ||||
| texture_albedo = SubResource("PlaceholderTexture2D_ugtgi") | ||||
| 
 | ||||
| [node name="Metal" type="Node3D" parent="TestFields"] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 150, 0, 0) | ||||
| 
 | ||||
| [node name="MeshInstance3D" type="MeshInstance3D" parent="TestFields/Metal"] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 200) | ||||
| mesh = SubResource("BoxMesh_u7piw") | ||||
| surface_material_override/0 = ExtResource("14_7mq02") | ||||
| 
 | ||||
| [node name="StaticBody3D" type="StaticBody3D" parent="TestFields/Metal/MeshInstance3D"] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -200) | ||||
| 
 | ||||
| [node name="CollisionShape3D" type="CollisionShape3D" parent="TestFields/Metal/MeshInstance3D/StaticBody3D"] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 200) | ||||
| shape = SubResource("BoxShape3D_1sq7i") | ||||
| 
 | ||||
| [node name="TerrainMarker" type="Node" parent="TestFields/Metal/MeshInstance3D/StaticBody3D"] | ||||
| script = ExtResource("6_4bo0x") | ||||
| type = 8 | ||||
| 
 | ||||
| [node name="BallDropSpawn" type="Marker3D" parent="TestFields/Metal" groups=["DropSpawn"]] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 40, 10) | ||||
| 
 | ||||
| [node name="PuttSpawn" type="Marker3D" parent="TestFields/Metal" groups=["PuttSpawn"]] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.55, 1) | ||||
| 
 | ||||
| [node name="GoalLine" type="Decal" parent="TestFields/Metal/PuttSpawn"] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 21) | ||||
| size = Vector3(20, 2, 0.5) | ||||
| texture_albedo = SubResource("PlaceholderTexture2D_ugtgi") | ||||
| 
 | ||||
| [node name="Glass" type="Node3D" parent="TestFields"] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 170, 0, 0) | ||||
| 
 | ||||
| [node name="MeshInstance3D" type="MeshInstance3D" parent="TestFields/Glass"] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 200) | ||||
| mesh = SubResource("BoxMesh_u7piw") | ||||
| surface_material_override/0 = ExtResource("14_o81al") | ||||
| 
 | ||||
| [node name="StaticBody3D" type="StaticBody3D" parent="TestFields/Glass/MeshInstance3D"] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -200) | ||||
| 
 | ||||
| [node name="CollisionShape3D" type="CollisionShape3D" parent="TestFields/Glass/MeshInstance3D/StaticBody3D"] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 200) | ||||
| shape = SubResource("BoxShape3D_1sq7i") | ||||
| 
 | ||||
| [node name="TerrainMarker" type="Node" parent="TestFields/Glass/MeshInstance3D/StaticBody3D"] | ||||
| script = ExtResource("6_4bo0x") | ||||
| type = 9 | ||||
| 
 | ||||
| [node name="BallDropSpawn" type="Marker3D" parent="TestFields/Glass" groups=["DropSpawn"]] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 40, 10) | ||||
| 
 | ||||
| [node name="PuttSpawn" type="Marker3D" parent="TestFields/Glass" groups=["PuttSpawn"]] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.55, 1) | ||||
| 
 | ||||
| [node name="GoalLine" type="Decal" parent="TestFields/Glass/PuttSpawn"] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 34) | ||||
| size = Vector3(20, 2, 0.5) | ||||
| texture_albedo = SubResource("PlaceholderTexture2D_ugtgi") | ||||
|  | ||||
| @ -146,7 +146,6 @@ func _integrate_forces(state: PhysicsDirectBodyState3D) -> void: | ||||
| 				min_dot = dot | ||||
| 				_last_contact_normal = norm | ||||
| 				primary_body = state.get_contact_collider_object(i) | ||||
| 
 | ||||
| 		_surface_terrain = Terrain.from_collision(global_position, primary_body) | ||||
| 	else: | ||||
| 		# Ball is in the air | ||||
| @ -154,6 +153,7 @@ func _integrate_forces(state: PhysicsDirectBodyState3D) -> void: | ||||
| 		_surface_time_s = 0.0 | ||||
| 
 | ||||
| 	var params := terrain_physics.get_params(_surface_terrain) | ||||
| 	#physics_material_override.bounce = params.bounce | ||||
| 	angular_damp = params.angular_damp | ||||
| 	linear_damp = params.linear_damp | ||||
| 
 | ||||
| @ -175,6 +175,8 @@ func _physics_process(delta: float) -> void: | ||||
| 	_shot_time_s += delta | ||||
| 	_surface_time_s += delta | ||||
| 
 | ||||
| 	physics_material_override.bounce = terrain_physics.get_params(_surface_terrain).bounce | ||||
| 
 | ||||
| 
 | ||||
| func enter_zone(zone: BallZone) -> void: | ||||
| 	_zones.push_back(zone) | ||||
|  | ||||
							
								
								
									
										77
									
								
								src/equipment/balls/physics_ball/normal_terrain_physics.tres
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										77
									
								
								src/equipment/balls/physics_ball/normal_terrain_physics.tres
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,77 @@ | ||||
| [gd_resource type="Resource" script_class="TerrainPhysics" load_steps=13 format=3 uid="uid://c6tt1hto75ex4"] | ||||
| 
 | ||||
| [ext_resource type="Script" path="res://src/equipment/balls/physics_ball/terrain_physics/terrain_parameters.gd" id="1_45pis"] | ||||
| [ext_resource type="Script" path="res://src/equipment/balls/physics_ball/terrain_physics/terrain_physics.gd" id="2_yuehx"] | ||||
| 
 | ||||
| [sub_resource type="Resource" id="Resource_casfi"] | ||||
| script = ExtResource("1_45pis") | ||||
| linear_damp = 1.15 | ||||
| angular_damp = 3.0 | ||||
| bounce = 0.9 | ||||
| 
 | ||||
| [sub_resource type="Resource" id="Resource_3k63c"] | ||||
| script = ExtResource("1_45pis") | ||||
| linear_damp = 0.0 | ||||
| angular_damp = 0.0 | ||||
| bounce = 0.5 | ||||
| 
 | ||||
| [sub_resource type="Resource" id="Resource_xf73q"] | ||||
| script = ExtResource("1_45pis") | ||||
| linear_damp = 4.4 | ||||
| angular_damp = 4.0 | ||||
| bounce = 0.4 | ||||
| 
 | ||||
| [sub_resource type="Resource" id="Resource_nhn3l"] | ||||
| script = ExtResource("1_45pis") | ||||
| linear_damp = 0.86 | ||||
| angular_damp = 1.0 | ||||
| bounce = 0.9 | ||||
| 
 | ||||
| [sub_resource type="Resource" id="Resource_m3wjo"] | ||||
| script = ExtResource("1_45pis") | ||||
| linear_damp = 2.3 | ||||
| angular_damp = 4.0 | ||||
| bounce = 0.4 | ||||
| 
 | ||||
| [sub_resource type="Resource" id="Resource_h4rld"] | ||||
| script = ExtResource("1_45pis") | ||||
| linear_damp = 1.62 | ||||
| angular_damp = 1.0 | ||||
| bounce = 0.9 | ||||
| 
 | ||||
| [sub_resource type="Resource" id="Resource_j6lib"] | ||||
| script = ExtResource("1_45pis") | ||||
| linear_damp = 4.7 | ||||
| angular_damp = 2.0 | ||||
| bounce = 0.6 | ||||
| 
 | ||||
| [sub_resource type="Resource" id="Resource_7f7ql"] | ||||
| script = ExtResource("1_45pis") | ||||
| linear_damp = 7.6 | ||||
| angular_damp = 4.0 | ||||
| bounce = 0.3 | ||||
| 
 | ||||
| [sub_resource type="Resource" id="Resource_pusmf"] | ||||
| script = ExtResource("1_45pis") | ||||
| linear_damp = 12.0 | ||||
| angular_damp = 32.0 | ||||
| bounce = 0.0 | ||||
| 
 | ||||
| [sub_resource type="Resource" id="Resource_edkxb"] | ||||
| script = ExtResource("1_45pis") | ||||
| linear_damp = 1.55 | ||||
| angular_damp = 1.3 | ||||
| bounce = 0.8 | ||||
| 
 | ||||
| [resource] | ||||
| script = ExtResource("2_yuehx") | ||||
| default = SubResource("Resource_3k63c") | ||||
| rough = SubResource("Resource_7f7ql") | ||||
| fairway = SubResource("Resource_xf73q") | ||||
| green = SubResource("Resource_m3wjo") | ||||
| sand = SubResource("Resource_pusmf") | ||||
| concrete = SubResource("Resource_casfi") | ||||
| rock = SubResource("Resource_j6lib") | ||||
| wood = SubResource("Resource_edkxb") | ||||
| metal = SubResource("Resource_h4rld") | ||||
| glass = SubResource("Resource_nhn3l") | ||||
| @ -1,10 +1,8 @@ | ||||
| [gd_scene load_steps=38 format=3 uid="uid://dfttci386ohip"] | ||||
| [gd_scene load_steps=26 format=3 uid="uid://dfttci386ohip"] | ||||
| 
 | ||||
| [ext_resource type="Script" path="res://src/equipment/balls/physics_ball/game_ball.gd" id="1_iwh2u"] | ||||
| [ext_resource type="PhysicsMaterial" uid="uid://3bih72l068ic" path="res://src/equipment/balls/physics_ball/normal_physics.tres" id="1_l23pw"] | ||||
| [ext_resource type="Script" path="res://src/equipment/balls/physics_ball/terrain_physics/terrain_physics.gd" id="3_52hui"] | ||||
| [ext_resource type="Resource" uid="uid://c6tt1hto75ex4" path="res://src/equipment/balls/physics_ball/normal_terrain_physics.tres" id="3_3gnie"] | ||||
| [ext_resource type="Material" uid="uid://dpsmjlhjpc7vs" path="res://assets/materials/basic_ball_material.tres" id="3_rc7m1"] | ||||
| [ext_resource type="Script" path="res://src/equipment/balls/physics_ball/terrain_physics/terrain_parameters.gd" id="4_onl6o"] | ||||
| [ext_resource type="Script" path="res://src/equipment/balls/physics_ball/ball_sfx.gd" id="5_bhshl"] | ||||
| [ext_resource type="AudioStream" uid="uid://cayyndwmxua5x" path="res://assets/sound/sfx/ball/grass2.wav" id="7_l22cv"] | ||||
| [ext_resource type="AudioStream" uid="uid://orisjdcj3mes" path="res://assets/sound/sfx/ball/concrete3.wav" id="7_t2ak2"] | ||||
| @ -17,68 +15,8 @@ | ||||
| [ext_resource type="Texture2D" uid="uid://c47bkx508biqr" path="res://assets/sprites/particles/plasma.png" id="12_guipt"] | ||||
| [ext_resource type="PackedScene" uid="uid://cm4bb3lg4mfd2" path="res://src/world/effects/splash/splash_effect.tscn" id="12_qlrvx"] | ||||
| 
 | ||||
| [sub_resource type="Resource" id="Resource_casfi"] | ||||
| script = ExtResource("4_onl6o") | ||||
| linear_damp = 0.0 | ||||
| angular_damp = 1.4 | ||||
| 
 | ||||
| [sub_resource type="Resource" id="Resource_3k63c"] | ||||
| script = ExtResource("4_onl6o") | ||||
| linear_damp = 0.0 | ||||
| angular_damp = 0.0 | ||||
| 
 | ||||
| [sub_resource type="Resource" id="Resource_xf73q"] | ||||
| script = ExtResource("4_onl6o") | ||||
| linear_damp = 0.0 | ||||
| angular_damp = 2.0 | ||||
| 
 | ||||
| [sub_resource type="Resource" id="Resource_nhn3l"] | ||||
| script = ExtResource("4_onl6o") | ||||
| linear_damp = 0.0 | ||||
| angular_damp = 0.6 | ||||
| 
 | ||||
| [sub_resource type="Resource" id="Resource_m3wjo"] | ||||
| script = ExtResource("4_onl6o") | ||||
| linear_damp = 0.0 | ||||
| angular_damp = 1.0 | ||||
| 
 | ||||
| [sub_resource type="Resource" id="Resource_h4rld"] | ||||
| script = ExtResource("4_onl6o") | ||||
| linear_damp = 0.0 | ||||
| angular_damp = 0.9 | ||||
| 
 | ||||
| [sub_resource type="Resource" id="Resource_j6lib"] | ||||
| script = ExtResource("4_onl6o") | ||||
| linear_damp = 0.0 | ||||
| angular_damp = 2.5 | ||||
| 
 | ||||
| [sub_resource type="Resource" id="Resource_7f7ql"] | ||||
| script = ExtResource("4_onl6o") | ||||
| linear_damp = 0.0 | ||||
| angular_damp = 4.0 | ||||
| 
 | ||||
| [sub_resource type="Resource" id="Resource_pusmf"] | ||||
| script = ExtResource("4_onl6o") | ||||
| linear_damp = 0.0 | ||||
| angular_damp = 8.0 | ||||
| 
 | ||||
| [sub_resource type="Resource" id="Resource_edkxb"] | ||||
| script = ExtResource("4_onl6o") | ||||
| linear_damp = 0.0 | ||||
| angular_damp = 0.9 | ||||
| 
 | ||||
| [sub_resource type="Resource" id="Resource_3ngau"] | ||||
| script = ExtResource("3_52hui") | ||||
| default = SubResource("Resource_3k63c") | ||||
| rough = SubResource("Resource_7f7ql") | ||||
| fairway = SubResource("Resource_xf73q") | ||||
| green = SubResource("Resource_m3wjo") | ||||
| sand = SubResource("Resource_pusmf") | ||||
| concrete = SubResource("Resource_casfi") | ||||
| rock = SubResource("Resource_j6lib") | ||||
| wood = SubResource("Resource_edkxb") | ||||
| metal = SubResource("Resource_h4rld") | ||||
| glass = SubResource("Resource_nhn3l") | ||||
| [sub_resource type="PhysicsMaterial" id="PhysicsMaterial_u134x"] | ||||
| bounce = 0.4 | ||||
| 
 | ||||
| [sub_resource type="SphereMesh" id="SphereMesh_y0d13"] | ||||
| material = ExtResource("3_rc7m1") | ||||
| @ -196,7 +134,7 @@ size = Vector2(0.2, 0.2) | ||||
| 
 | ||||
| [node name="PhysicsBall" type="RigidBody3D"] | ||||
| mass = 0.05 | ||||
| physics_material_override = ExtResource("1_l23pw") | ||||
| physics_material_override = SubResource("PhysicsMaterial_u134x") | ||||
| sleeping = true | ||||
| freeze = true | ||||
| continuous_cd = true | ||||
| @ -205,7 +143,7 @@ max_contacts_reported = 3 | ||||
| linear_damp_mode = 1 | ||||
| angular_damp_mode = 1 | ||||
| script = ExtResource("1_iwh2u") | ||||
| terrain_physics = SubResource("Resource_3ngau") | ||||
| terrain_physics = ExtResource("3_3gnie") | ||||
| 
 | ||||
| [node name="BallMesh" type="MeshInstance3D" parent="."] | ||||
| mesh = SubResource("SphereMesh_y0d13") | ||||
|  | ||||
| @ -1,5 +1,10 @@ | ||||
| class_name TerrainParameters extends Resource | ||||
| ## Physical parameters for an individual terrain type. | ||||
| 
 | ||||
| ## Linear damping applied while in contact with the terrain surface. | ||||
| @export var linear_damp := 0.0 | ||||
| ## Angular damping applied while in contact with the terrain surface. | ||||
| @export var angular_damp := 0.0 | ||||
| 
 | ||||
| ## Physical bounciness of the terrain. Use this instead of the physics material override. | ||||
| @export var bounce := 0.0 | ||||
|  | ||||
| @ -38,7 +38,7 @@ const BIG_POWER_THRESHOLD := 0.7 | ||||
| const WATER_DAMAGE := 10.0 | ||||
| 
 | ||||
| ## Angle of influence that shot curve has, in radians | ||||
| const CURVE_INFLUENCE := PI / 16 | ||||
| const CURVE_INFLUENCE := PI / 3 | ||||
| 
 | ||||
| ## Just enough to make things interesting! | ||||
| const SHOT_OFFSET_X_FACTOR := 20.0 | ||||
| @ -48,7 +48,7 @@ const SHOT_OFFSET_Z_FACTOR := 2.0 / 45.0 | ||||
| const CURVE_FACTOR := 0.002 | ||||
| 
 | ||||
| ## Maximum absolute curve for the "nice shot" animation to play | ||||
| const NICE_THRESHOLD := 0.2 | ||||
| const NICE_THRESHOLD := 0.05 | ||||
| 
 | ||||
| ## Force by which explosions knock the ball away | ||||
| const EXPLOSIVE_FORCE_FACTOR := 0.12 | ||||
| @ -292,7 +292,7 @@ func take_shot() -> void: | ||||
| 	print_debug("Shot impulse: ", impulse, "; ", impulse.length(), " N*s") | ||||
| 
 | ||||
| 	# Curve the curve | ||||
| 	var curve := shot_curve * absf(shot_curve) * CURVE_FACTOR | ||||
| 	var curve := shot_curve * CURVE_FACTOR | ||||
| 
 | ||||
| 	# Position where the ball is hit (imparts spin) | ||||
| 	var offset := ( | ||||
|  | ||||
| @ -426,7 +426,6 @@ stream_0/stream = ExtResource("15_fn6g1") | ||||
| 
 | ||||
| [node name="ShotSetup" type="Node3D"] | ||||
| script = ExtResource("1_r6ei4") | ||||
| perfect_aim = true | ||||
| 
 | ||||
| [node name="BallPoint" type="Node3D" parent="."] | ||||
| unique_name_in_owner = true | ||||
|  | ||||
							
								
								
									
										53
									
								
								src/world/effects/explosion/explosion_effect.tscn
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								src/world/effects/explosion/explosion_effect.tscn
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,53 @@ | ||||
| [gd_scene load_steps=8 format=3 uid="uid://c6k44l0mnq3o1"] | ||||
| 
 | ||||
| [sub_resource type="Gradient" id="Gradient_tuj3x"] | ||||
| offsets = PackedFloat32Array(0, 0.0850112, 0.693512, 0.760626) | ||||
| colors = PackedColorArray(3, 3, 3, 1, 2, 2, 0.6, 1, 1, 0.0623333, 0.03, 1, 0, 0, 0, 1) | ||||
| 
 | ||||
| [sub_resource type="GradientTexture1D" id="GradientTexture1D_d6li3"] | ||||
| gradient = SubResource("Gradient_tuj3x") | ||||
| 
 | ||||
| [sub_resource type="Curve" id="Curve_oo5uu"] | ||||
| _data = [Vector2(0, 0), 0.0, 0.0, 0, 0, Vector2(0.0842105, 1), 0.0, 0.0, 0, 0, Vector2(0.246316, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0] | ||||
| point_count = 4 | ||||
| 
 | ||||
| [sub_resource type="CurveTexture" id="CurveTexture_quj8c"] | ||||
| curve = SubResource("Curve_oo5uu") | ||||
| 
 | ||||
| [sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_hjkte"] | ||||
| lifetime_randomness = 0.52 | ||||
| emission_shape = 3 | ||||
| emission_box_extents = Vector3(1, 1, 1) | ||||
| direction = Vector3(0, 0, 0) | ||||
| spread = 180.0 | ||||
| initial_velocity_min = 4.0 | ||||
| initial_velocity_max = 4.0 | ||||
| gravity = Vector3(0, 0, 0) | ||||
| scale_min = 0.3 | ||||
| scale_curve = SubResource("CurveTexture_quj8c") | ||||
| color_ramp = SubResource("GradientTexture1D_d6li3") | ||||
| turbulence_enabled = true | ||||
| turbulence_noise_speed = Vector3(1, 1, 1) | ||||
| turbulence_noise_speed_random = 1.41 | ||||
| 
 | ||||
| [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_fliyi"] | ||||
| vertex_color_use_as_albedo = true | ||||
| emission_enabled = true | ||||
| billboard_mode = 3 | ||||
| billboard_keep_scale = true | ||||
| particles_anim_h_frames = 1 | ||||
| particles_anim_v_frames = 1 | ||||
| particles_anim_loop = false | ||||
| 
 | ||||
| [sub_resource type="SphereMesh" id="SphereMesh_ggspd"] | ||||
| material = SubResource("StandardMaterial3D_fliyi") | ||||
| radius = 1.0 | ||||
| height = 2.0 | ||||
| 
 | ||||
| [node name="ExplosionEffect" type="GPUParticles3D"] | ||||
| lifetime = 0.7 | ||||
| explosiveness = 0.92 | ||||
| fixed_fps = 60 | ||||
| interpolate = false | ||||
| process_material = SubResource("ParticleProcessMaterial_hjkte") | ||||
| draw_pass_1 = SubResource("SphereMesh_ggspd") | ||||
| @ -2,8 +2,8 @@ | ||||
| 
 | ||||
| [ext_resource type="Script" path="res://src/world/world.gd" id="1_ybjyx"] | ||||
| [ext_resource type="Script" path="res://src/player/world_player.gd" id="2_e743i"] | ||||
| [ext_resource type="PackedScene" uid="uid://cvs546kk7t7aw" path="res://levels/terrain_test/terrain_test.tscn" id="2_hbpi4"] | ||||
| [ext_resource type="Script" path="res://src/ui/world_ui.gd" id="2_imewa"] | ||||
| [ext_resource type="PackedScene" uid="uid://bm2o3mex10v11" path="res://levels/debug_level/debug_level.tscn" id="2_l08a0"] | ||||
| [ext_resource type="Resource" uid="uid://crock3revdn73" path="res://src/player/debug_player.tres" id="3_pyw81"] | ||||
| [ext_resource type="Script" path="res://src/world/play_manager/practice_manager.gd" id="5_yk526"] | ||||
| [ext_resource type="PackedScene" uid="uid://byvjsvavbg5xe" path="res://src/ui/menus/pause_menu/pause_menu.tscn" id="7_0gd42"] | ||||
| @ -155,7 +155,7 @@ _data = { | ||||
| 
 | ||||
| [node name="World" type="Node" groups=["WorldGroup"]] | ||||
| script = ExtResource("1_ybjyx") | ||||
| initial_level = ExtResource("2_l08a0") | ||||
| initial_level = ExtResource("2_hbpi4") | ||||
| manager = SubResource("Resource_hpydy") | ||||
| 
 | ||||
| [node name="Level" type="Node3D" parent="."] | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user