Added a marker for bug placement.

This commit is contained in:
Jamie Greunbaum 2024-05-15 14:45:31 -04:00
parent 6c00b0ff62
commit de4bd6e3db
5 changed files with 43 additions and 1 deletions

BIN
Meshes/arrow.res Normal file

Binary file not shown.

Binary file not shown.

22
Scenes/bug_marker.tscn Normal file
View File

@ -0,0 +1,22 @@
[gd_scene load_steps=4 format=3 uid="uid://crr6cjploetps"]
[ext_resource type="ArrayMesh" uid="uid://dtvea38mlpfla" path="res://addons/Bugbot/Meshes/arrow.res" id="1_65xos"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_v6jy1"]
shading_mode = 0
billboard_mode = 1
billboard_keep_scale = true
[sub_resource type="QuadMesh" id="QuadMesh_dd1nc"]
material = SubResource("StandardMaterial3D_v6jy1")
custom_aabb = AABB(-0.25, -0.25, -0.25, 0.5, 0.5, 0.5)
size = Vector2(0.25, 0.25)
[node name="BugMarker" type="Node3D"]
[node name="Arrow" type="MeshInstance3D" parent="."]
mesh = ExtResource("1_65xos")
[node name="Billboard" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.4, 0)
mesh = SubResource("QuadMesh_dd1nc")

View File

@ -48,6 +48,7 @@ extends CharacterBody3D
@export var joypad_exit_placement : InputEventJoypadButton
@onready var laser_beam : Node3D = $LaserBeamRoot as Node3D
@onready var bug_marker : Node3D = $BugMarker as Node3D
@onready var movement_speed_change_timer : Timer = $MovementSpeedChangeTimer as Timer
@onready var exit_placement_timer : Timer = $ExitPlacementTimer as Timer
@onready var camera : Camera3D = $CollisionShape3D/Camera3D
@ -59,6 +60,8 @@ var stored_mouse_mode : int = Input.MOUSE_MODE_CAPTURED
var stored_pause_status : bool = false
var raycast_collision : Dictionary
var _previous_bug_marker_position : Vector3
static func instantiate(tree:SceneTree) -> void:
tree.root.add_child(load("res://addons/Bugbot/Scenes/bugbot_player.tscn").instantiate() as CharacterBody3D)
@ -210,6 +213,7 @@ func _process(_delta:float) -> void:
_calculate_movement_speed()
_calculate_rotation(_delta)
_calculate_movement()
_place_dummy_marker()
func _physics_process(_delta:float) -> void:
_raycast_to_world()
@ -271,3 +275,16 @@ func _raycast_to_world():
laser_beam.visible = true
else:
laser_beam.visible = false
func _place_dummy_marker():
if raycast_collision:
var collision_point : Vector3 = raycast_collision["position"]
var collision_normal : Vector3 = raycast_collision["normal"]
bug_marker.global_position = collision_point
_previous_bug_marker_position = bug_marker.global_position
bug_marker.global_transform.basis.y = collision_normal
bug_marker.global_transform.basis.x = bug_marker.global_transform.basis.z.cross(collision_normal)
bug_marker.global_transform.basis = bug_marker.global_transform.basis.orthonormalized()
bug_marker.visible = true
else:
bug_marker.visible = false

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=39 format=3 uid="uid://dvgain3s4xa4r"]
[gd_scene load_steps=40 format=3 uid="uid://dvgain3s4xa4r"]
[ext_resource type="Script" path="res://addons/Bugbot/Scenes/bugbot_player.gd" id="1_kdrpa"]
[ext_resource type="InputEventKey" uid="uid://di5q6d4wt12et" path="res://addons/Bugbot/Inputs/Keyboard/move_forward.res" id="2_jfhdw"]
@ -34,6 +34,7 @@
[ext_resource type="InputEventJoypadButton" uid="uid://bc2q8kry856bq" path="res://addons/Bugbot/Inputs/Joystick/place_marker.res" id="32_q7vmk"]
[ext_resource type="InputEventJoypadButton" uid="uid://8tu5a8nlxgsj" path="res://addons/Bugbot/Inputs/Joystick/exit_placement.res" id="33_lwr38"]
[ext_resource type="Material" uid="uid://c8b630nfapp8l" path="res://addons/Bugbot/Textures/laser_glow.material" id="34_18wde"]
[ext_resource type="PackedScene" uid="uid://crr6cjploetps" path="res://addons/Bugbot/Scenes/bug_marker.tscn" id="34_jyjbc"]
[ext_resource type="Material" uid="uid://dewbda2gd8bgv" path="res://addons/Bugbot/Textures/laser_glare.material" id="35_f65w0"]
[sub_resource type="CylinderMesh" id="CylinderMesh_ts4fq"]
@ -90,6 +91,8 @@ joypad_movement_speed_down = ExtResource("31_t01c7")
joypad_place_marker = ExtResource("32_q7vmk")
joypad_exit_placement = ExtResource("33_lwr38")
[node name="BugMarker" parent="." instance=ExtResource("34_jyjbc")]
[node name="LaserBeamRoot" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.5, -0.5, 0)