- Added underscores to private properties.
- Added more code regions.
This commit is contained in:
parent
366d882583
commit
af88ced103
@ -7,6 +7,7 @@ extends CharacterBody3D
|
|||||||
## Distance from camera to allow placing bug markers.
|
## 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
|
@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_group("Inputs")
|
||||||
@export_subgroup("Keyboard", "keyboard_")
|
@export_subgroup("Keyboard", "keyboard_")
|
||||||
@export var keyboard_move_forward : InputEventKey
|
@export var keyboard_move_forward : InputEventKey
|
||||||
@ -52,19 +53,24 @@ extends CharacterBody3D
|
|||||||
|
|
||||||
@export var joypad_place_marker : InputEventJoypadButton
|
@export var joypad_place_marker : InputEventJoypadButton
|
||||||
@export var joypad_exit_placement : InputEventJoypadButton
|
@export var joypad_exit_placement : InputEventJoypadButton
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Onready
|
||||||
@onready var laser_beam : Node3D = $LaserBeamRoot as Node3D
|
@onready var laser_beam : Node3D = $LaserBeamRoot as Node3D
|
||||||
@onready var bug_marker : Node3D = $BugMarker as Node3D
|
@onready var bug_marker : Node3D = $BugMarker as Node3D
|
||||||
@onready var movement_speed_change_timer : Timer = $MovementSpeedChangeTimer as Timer
|
@onready var movement_speed_change_timer : Timer = $MovementSpeedChangeTimer as Timer
|
||||||
@onready var exit_placement_timer : Timer = $ExitPlacementTimer as Timer
|
@onready var exit_placement_timer : Timer = $ExitPlacementTimer as Timer
|
||||||
@onready var camera : Camera3D = $CollisionShape3D/Camera3D
|
@onready var camera : Camera3D = $CollisionShape3D/Camera3D
|
||||||
|
#endregion
|
||||||
|
|
||||||
var movement_speed : float = 5.0
|
#region Private Properties
|
||||||
|
var _movement_speed : float = 5.0
|
||||||
|
|
||||||
var stored_camera : Camera3D
|
var _stored_camera : Camera3D
|
||||||
var stored_mouse_mode : int = Input.MOUSE_MODE_CAPTURED
|
var _stored_mouse_mode : int = Input.MOUSE_MODE_CAPTURED
|
||||||
var stored_pause_status : bool = false
|
var _stored_pause_status : bool = false
|
||||||
var raycast_collision : Dictionary
|
var _raycast_collision : Dictionary
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
static func instantiate(tree:SceneTree) -> void:
|
static func instantiate(tree:SceneTree) -> void:
|
||||||
@ -73,10 +79,10 @@ static func instantiate(tree:SceneTree) -> void:
|
|||||||
|
|
||||||
#region Initialisation
|
#region Initialisation
|
||||||
func _enter_tree() -> void:
|
func _enter_tree() -> void:
|
||||||
stored_camera = get_viewport().get_camera_3d()
|
_stored_camera = get_viewport().get_camera_3d()
|
||||||
stored_pause_status = get_tree().paused
|
_stored_pause_status = get_tree().paused
|
||||||
get_tree().paused = true
|
get_tree().paused = true
|
||||||
stored_mouse_mode = Input.mouse_mode
|
_stored_mouse_mode = Input.mouse_mode
|
||||||
Input.mouse_mode = Input.MOUSE_MODE_CAPTURED
|
Input.mouse_mode = Input.MOUSE_MODE_CAPTURED
|
||||||
|
|
||||||
#region Movement Configuration
|
#region Movement Configuration
|
||||||
@ -201,16 +207,16 @@ func _exit_tree() -> void:
|
|||||||
InputMap.erase_action(&"bugbot_exit_placement")
|
InputMap.erase_action(&"bugbot_exit_placement")
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
Input.mouse_mode = stored_mouse_mode
|
Input.mouse_mode = _stored_mouse_mode
|
||||||
get_tree().paused = stored_pause_status
|
get_tree().paused = _stored_pause_status
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
camera.current = true
|
camera.current = true
|
||||||
if stored_camera:
|
if _stored_camera:
|
||||||
global_transform = stored_camera.global_transform
|
global_transform = _stored_camera.global_transform
|
||||||
camera.fov = stored_camera.fov
|
camera.fov = _stored_camera.fov
|
||||||
camera.near = stored_camera.near
|
camera.near = _stored_camera.near
|
||||||
camera.far = stored_camera.far
|
camera.far = _stored_camera.far
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
func _process(_delta:float) -> void:
|
func _process(_delta:float) -> void:
|
||||||
@ -228,15 +234,15 @@ func _physics_process(_delta:float) -> void:
|
|||||||
func _calculate_movement_speed() -> void:
|
func _calculate_movement_speed() -> void:
|
||||||
if Input.is_action_pressed(&"bugbot_movement_speed_down") or Input.is_action_just_pressed(&"bugbot_movement_speed_down"):
|
if Input.is_action_pressed(&"bugbot_movement_speed_down") or Input.is_action_just_pressed(&"bugbot_movement_speed_down"):
|
||||||
if movement_speed_change_timer.is_stopped():
|
if movement_speed_change_timer.is_stopped():
|
||||||
movement_speed /= 1.25
|
_movement_speed /= 1.25
|
||||||
movement_speed_change_timer.start()
|
movement_speed_change_timer.start()
|
||||||
elif Input.is_action_pressed(&"bugbot_movement_speed_up") or Input.is_action_just_pressed(&"bugbot_movement_speed_up"):
|
elif Input.is_action_pressed(&"bugbot_movement_speed_up") or Input.is_action_just_pressed(&"bugbot_movement_speed_up"):
|
||||||
if movement_speed_change_timer.is_stopped():
|
if movement_speed_change_timer.is_stopped():
|
||||||
movement_speed *= 1.25
|
_movement_speed *= 1.25
|
||||||
movement_speed_change_timer.start()
|
movement_speed_change_timer.start()
|
||||||
else:
|
else:
|
||||||
movement_speed_change_timer.stop()
|
movement_speed_change_timer.stop()
|
||||||
movement_speed = clampf(movement_speed, 0.25, 100.0)
|
_movement_speed = clampf(_movement_speed, 0.25, 100.0)
|
||||||
|
|
||||||
func _calculate_rotation(_delta:float) -> void:
|
func _calculate_rotation(_delta:float) -> void:
|
||||||
var rotation_velocity : Vector2 = Vector2(
|
var rotation_velocity : Vector2 = Vector2(
|
||||||
@ -251,11 +257,11 @@ func _calculate_rotation(_delta:float) -> void:
|
|||||||
func _calculate_movement() -> void:
|
func _calculate_movement() -> void:
|
||||||
var movement_vector_lateral : Vector2 = Input.get_vector(&"bugbot_move_left", &"bugbot_move_right", &"bugbot_move_forward", &"bugbot_move_backward")
|
var movement_vector_lateral : Vector2 = Input.get_vector(&"bugbot_move_left", &"bugbot_move_right", &"bugbot_move_forward", &"bugbot_move_backward")
|
||||||
var movement_azimuth : float = Input.get_axis(&"bugbot_move_down", &"bugbot_move_up")
|
var movement_azimuth : float = Input.get_axis(&"bugbot_move_down", &"bugbot_move_up")
|
||||||
velocity = transform.basis * Vector3(movement_vector_lateral.x, movement_azimuth, movement_vector_lateral.y) * movement_speed
|
velocity = transform.basis * Vector3(movement_vector_lateral.x, movement_azimuth, movement_vector_lateral.y) * _movement_speed
|
||||||
|
|
||||||
func _calculate_button_presses() -> void:
|
func _calculate_button_presses() -> void:
|
||||||
if Input.is_action_just_pressed(&"bugbot_place_marker") and raycast_collision:
|
if Input.is_action_just_pressed(&"bugbot_place_marker") and _raycast_collision:
|
||||||
print("Marker placed at ", raycast_collision["position"])
|
print("Marker placed at ", _raycast_collision["position"])
|
||||||
|
|
||||||
if Input.is_action_just_released(&"bugbot_exit_placement"):
|
if Input.is_action_just_released(&"bugbot_exit_placement"):
|
||||||
exit_placement_timer.stop()
|
exit_placement_timer.stop()
|
||||||
@ -270,9 +276,9 @@ func _raycast_to_world():
|
|||||||
query.collide_with_areas = false
|
query.collide_with_areas = false
|
||||||
query.collide_with_bodies = true
|
query.collide_with_bodies = true
|
||||||
query.exclude = [get_rid()]
|
query.exclude = [get_rid()]
|
||||||
raycast_collision = space.intersect_ray(query)
|
_raycast_collision = space.intersect_ray(query)
|
||||||
if raycast_collision:
|
if _raycast_collision:
|
||||||
var collision_point : Vector3 = raycast_collision["position"]
|
var collision_point : Vector3 = _raycast_collision["position"]
|
||||||
var distance_to_collision : float = laser_beam.global_position.distance_to(collision_point)
|
var distance_to_collision : float = laser_beam.global_position.distance_to(collision_point)
|
||||||
laser_beam.scale.z = distance_to_collision
|
laser_beam.scale.z = distance_to_collision
|
||||||
laser_beam.look_at(collision_point)
|
laser_beam.look_at(collision_point)
|
||||||
@ -281,8 +287,8 @@ func _raycast_to_world():
|
|||||||
laser_beam.visible = false
|
laser_beam.visible = false
|
||||||
|
|
||||||
func _place_dummy_marker():
|
func _place_dummy_marker():
|
||||||
if raycast_collision:
|
if _raycast_collision:
|
||||||
bug_marker.set_rotation_to_normal(raycast_collision["normal"])
|
bug_marker.set_rotation_to_normal(_raycast_collision["normal"])
|
||||||
bug_marker.visible = true
|
bug_marker.visible = true
|
||||||
else:
|
else:
|
||||||
bug_marker.visible = false
|
bug_marker.visible = false
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user