Bugbot now properly uses project settings to determine raycast length for marker placement.

This commit is contained in:
Jamie Greunbaum
2024-05-30 20:06:52 -04:00
parent cf1c6a3632
commit c7e78ba4ac
2 changed files with 20 additions and 17 deletions
+6 -3
View File
@@ -7,9 +7,6 @@ extends CharacterBody3D
## Scene to use as the bug marker.
@export_file("*.scn","*.tscn") var bug_marker : String
## Distance from camera to allow placing bug markers.
@export_range(0.0, 100.0, 0.01, "or_greater", "suffix:m") var ray_length : float = 10.0
#region InputEvent Exports
@export_group("Inputs")
@export_subgroup("Keyboard", "keyboard_")
@@ -66,6 +63,11 @@ extends CharacterBody3D
@onready var __camera : Camera3D = $CollisionShape3D/Camera3D
#endregion
#region Constants
const DEFAULT_PRECISE_PLACEMENT_DISTANCE : float = 10.0
const DEFAULT_ARBITRARY_PLACEMENT_DISTANCE : float = 2.5
#endregion
#region Private Properties
static var __bugbot_server : BugbotServerAPI
static var __bug_marker_root : Node
@@ -346,6 +348,7 @@ func __on_exit_placement_timer_timeout() -> void:
queue_free()
func __raycast_to_world() -> void:
var ray_length : float = ProjectSettings.get_setting("bugbot/bug_placement/precise_placement_distance", DEFAULT_PRECISE_PLACEMENT_DISTANCE)
var space : PhysicsDirectSpaceState3D = get_world_3d().direct_space_state
var query : PhysicsRayQueryParameters3D = PhysicsRayQueryParameters3D.create(global_position, global_position - global_transform.basis.z * ray_length)
query.collide_with_areas = true