From de4bd6e3dbf87fa0e0f7e2d1657ff609d66dd772 Mon Sep 17 00:00:00 2001 From: Jamie Greunbaum Date: Wed, 15 May 2024 14:45:31 -0400 Subject: [PATCH] Added a marker for bug placement. --- Meshes/arrow.res | Bin 0 -> 1975 bytes Meshes/laser_beam.res | Bin 912 -> 386 bytes Scenes/bug_marker.tscn | 22 ++++++++++++++++++++++ Scenes/bugbot_player.gd | 17 +++++++++++++++++ Scenes/bugbot_player.tscn | 5 ++++- 5 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 Meshes/arrow.res create mode 100644 Scenes/bug_marker.tscn diff --git a/Meshes/arrow.res b/Meshes/arrow.res new file mode 100644 index 0000000000000000000000000000000000000000..7a0b3bc72206a7c31b8a93ec7e9c5bc17d23635e GIT binary patch literal 1975 zcmV;o2T1r*Q$s@n000005C8ym6951<1^@tM0RR9fwJ-f(01ss`0H(gxNWfT4I$+xz zxBp!KiUG}yE#$F^A_3E?(QA(%@AGk)KX)lnS} zA6Y4Q($4~7)kx7#3a0?B0L%ce=)ih0!ux_*)_K7<*ToUfo7=88DkGNhT57o{>wJ6Z zzs_COqj`S0CXKoF++Z>`-6Vc+B?YCJmoZ|^ zShL^2=N-`kz#nwnSHp*hv?9jry;6l+mF?yNja0bWu9GTN5Y|8-$zyEUf)T_ImGgF% zNZplPm3f6q6+{8HZBj;<%^2ixbJDvYj`))=T<0s&{LRbF$YiWjr|YBvD;b`zWO)An zXQ8-|*;zJ4ts3h=?Wc%EqR3M^GGjsLLA0vPRx&&%Wc9nRNR}!}{vlh!5Go8=VHh@rQ47K_3|r(t z$;lxmv=XBbNxA~yIzUNOrkZ34nIs+EzyQSN8*qB27(rpFVj=111*L{FK?+V!1zL?} zNSGLfgbye$CS-t;crHMNO<{|i9xPK<9#YVRrkp?sO*z%rsj#|{5YkkwOH;K>{5(xL z#hV=#Pg71dDYyht5(a^SsL>@tB_bmtNeWWPFa{9?L`mnUG7l0!R5eF63_&w9vmhlU z^(qW=2$A;WIh{pNDsDi8%4&!6gb`IGRln~-zUtw7$v}nWu<+UTMy4= z1U%#c=Sgw(Fjt4G`&@tLEG>*NmvN-Ex22{~mz-0;rW!vK-(`8f{3BG z_&f)+ZRT zc0!?OAxOO(VadI|a5Z?W7`I4k#zm3-+@c|{+>qTFsY2g71`od2&N`%Ug5?x@AV;^< zEv`uv^)18oF8$0tu;m(mE}YY*h(U@K8Yahpiuorls}|3}&GHR4pot~MV@Zv0FdKz( zJ{$BU6c(8bbG;f92X(P-Y-mU;GlU8AraVlk;5f`&e@t~jrd8aM^}JBtKJLqHk>5*CogfP@94As~&JH+DBH JpaoJ>Lql8Bq6z>2 literal 0 HcmV?d00001 diff --git a/Meshes/laser_beam.res b/Meshes/laser_beam.res index be516eed9e34725af3006ed1d0e2f71317ef80fd..f9020f09b248bfa5a3f99cbcea621be6cbc9f958 100644 GIT binary patch literal 386 zcmV-|0e${bQ$s@n000005C8x)0ssJN0RR9fwJ-f(Gyw$*00z@QH(*th#xPJWOPl~D z0C3!Ro&f-;Hgo-U@9j_ae%U6{z zXs$@tV^Mr-BU$5I`Ahr|cO+O)HxvQ|{>jr^job#^3(5Qq|G{tYQ$DZo+=y{j z7=jpERHU;;Kf{kXxs*|VWeVN2R>aL!F^W!-dw;}BG3XGOxfYt2Oe-g&Sw*@k7D><{ zJSkjC+PNOv=}({$n$S~Q0na#%LA2LSXQo#^#z%p5aU=Pm4 zr0aPw6Hpuwz<>e@02LqcNlWfz@0lwr1zC=VMo6j}&xElx_B;V4AYg()C3YUkg!U3kKzIfSY$iPpXZzFw gm95y*J~Ngb=wmvXUjW>Gx=5FpWoVEcfUjfdmprAdOOL0Bitm0Q@YA zCT3~EhMTjGEf3suO}9)+Jtz}%F0E9`e+BUyOr4qhq+xx%7) zP&UrG$iM_|=|(P9{jg*f?x~z;yF?3{HC@Pr%YC#uI$_&bDQ;gXq`f$ym$H^ElrQB( zmtGHZ@I2TuEGR58MJZJfHs-T>K+4{67E%|B7=i2M1HRO-2Rbgfvr_hXjNd zO9>$m5S$zS(|9xVp~G=}=tzrcVW)sVKxklQX@PUEbeQB*$d4vmW@$>;E+Tm%lIK!7 za888FHC2j&cn)iRkV4&TMDSkPoaz>UtEh3QF$ftVnVF;@mBugvLYS(m9ugqcHA#&_ zLo>65+1cNRy8Q8Wym;}C^(Nld4*Ao2Mo+q9qv^lxyRJ+e#0*5RL2!H@F*H8kstv$Z zfd_Fw0vCkzt2qga?N7Wg497jbd8ROOgg2z*v7`(e;Nn{CI2&t-@WX}DLyCy}$Nd~Z zy<*XS1W7Q0Q|Zn?4(|)D3K$g3V}8MregMjYpq#72(LtgvD!m1b;?NLFc`DB`Hj*KqjSkz-3zgOOlB=mjZ;Q(q4vxa zXpzYV0Zfl-wTbjpZ@u6MDg1&Gk~tU+{Xei!q3v`r)TX^nf5;*VWWo6vTnl&-iaC3Q m^)*qk8T*$S6wSlu#tCzwnT@Abrjy63$~DU2%WfS~Q$s@>uCE3F diff --git a/Scenes/bug_marker.tscn b/Scenes/bug_marker.tscn new file mode 100644 index 0000000..e39d460 --- /dev/null +++ b/Scenes/bug_marker.tscn @@ -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") diff --git a/Scenes/bugbot_player.gd b/Scenes/bugbot_player.gd index 85f948c..dc2e612 100644 --- a/Scenes/bugbot_player.gd +++ b/Scenes/bugbot_player.gd @@ -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 diff --git a/Scenes/bugbot_player.tscn b/Scenes/bugbot_player.tscn index 5809c51..ea447a3 100644 --- a/Scenes/bugbot_player.tscn +++ b/Scenes/bugbot_player.tscn @@ -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)