From 85275727488cad8df93b13849089bbb5d23fa57d Mon Sep 17 00:00:00 2001 From: Jamie Greunbaum Date: Wed, 15 May 2024 19:09:47 -0400 Subject: [PATCH] - Added an icon to the bug marker. - Bug marker position now updates on every process frame. - Updated licence document to include CC4 icons for bug reports. --- LICENSE | 9 ------- LICENSE.md | 26 ++++++++++++++++++++ Materials/bug.dds | Bin 0 -> 87509 bytes Materials/bug_marker.gdshader | 25 +++++++++++++++++++ Materials/bug_marker_arrow.material | Bin 0 -> 379 bytes Materials/bug_marker_arrow.material.depren | Bin 0 -> 372 bytes Materials/bug_marker_icon.material | Bin 0 -> 398 bytes Materials/bug_marker_icon.material.depren | Bin 0 -> 393 bytes {Textures => Materials}/laser_glare.dds | Bin Materials/laser_glare.material | Bin 0 -> 865 bytes Materials/laser_glare.material.depren | Bin 0 -> 872 bytes {Textures => Materials}/laser_glow.material | Bin Meshes/arrow.res | Bin 1975 -> 1297 bytes Meshes/laser_beam.res.depren | Bin 0 -> 383 bytes Scenes/bug_marker.tscn | 10 +++----- Scenes/bug_marker_dummy.gd | 21 ++++++++++++++++ Scenes/bugbot_player.gd | 18 ++++++-------- Scenes/bugbot_player.tscn | 20 +++++++++------ Textures/laser_glare.material | Bin 866 -> 0 bytes 19 files changed, 96 insertions(+), 33 deletions(-) delete mode 100644 LICENSE create mode 100644 LICENSE.md create mode 100644 Materials/bug.dds create mode 100644 Materials/bug_marker.gdshader create mode 100644 Materials/bug_marker_arrow.material create mode 100644 Materials/bug_marker_arrow.material.depren create mode 100644 Materials/bug_marker_icon.material create mode 100644 Materials/bug_marker_icon.material.depren rename {Textures => Materials}/laser_glare.dds (100%) create mode 100644 Materials/laser_glare.material create mode 100644 Materials/laser_glare.material.depren rename {Textures => Materials}/laser_glow.material (100%) create mode 100644 Meshes/laser_beam.res.depren create mode 100644 Scenes/bug_marker_dummy.gd delete mode 100644 Textures/laser_glare.material diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 6e69b95..0000000 --- a/LICENSE +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) 2024 BattyBovine - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..7b8a48d --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,26 @@ +All code within this repository is licenced under the MIT licence: + +MIT License + +Copyright (c) 2024 Jamie Greunbaum + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +-------------------------------------------------------------------------------- + +Bug icon licenced from the [CoreUI](https://coreui.io/icons/) icon set under the [Creative Commons Attribution 4.0 International](https://creativecommons.org/licenses/by/4.0/) licence. \ No newline at end of file diff --git a/Materials/bug.dds b/Materials/bug.dds new file mode 100644 index 0000000000000000000000000000000000000000..fe40bcc24757d29c5e89611a30513112d2fc66aa GIT binary patch literal 87509 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 0.5f) { discard; } + ALBEDO = (step(shape_thickness-line_thickness, albedo_tex.r) > 0.5f) ? pow(line_colour, vec3(0.4545454545)) : pow(colour.rgb, vec3(0.4545454545)); +} diff --git a/Materials/bug_marker_arrow.material b/Materials/bug_marker_arrow.material new file mode 100644 index 0000000000000000000000000000000000000000..3c66caabbe18a73cc6e9b36f52ee61343f6d9d66 GIT binary patch literal 379 zcmV->0fhciQ$s@n000005C8zt0ssJG0RR9fwJ-f((E-g00EUn`GH`3s0sQ~}zv@9i z4+#Kx|7WtvLH4Fiw>HYXrN@=eh>C+=z~~rwK1RgANO-RQH_<6504M+}08K)+jVsy9 z|Dpd0Z@7Fs77>q*|B^#}yi+lFoo+J!7yb+UfBpyj0Z_KZJ9ko6iuHejcPqu_#>W2# z=a`S>V~X**$nc#sDtzO%W^yv90n#~L%hD770Y0h6Ez0&-hU>|(N(sUzIY6+D4?etm zBd5L1WJ~F$BhHl!7MKhM!Jr`OOrow-2BOXdB;?}%1cD@w#6;1M%*rT6?lcr$4(r4; zm9%d+MRrq)xC{mx+yblQ!GVh-&gGSINgc-28hE<5*HtLqqTht{wmY literal 0 HcmV?d00001 diff --git a/Materials/bug_marker_arrow.material.depren b/Materials/bug_marker_arrow.material.depren new file mode 100644 index 0000000000000000000000000000000000000000..5aacd4c320cc6ddd8e4b2a75378be52a43fe5b5c GIT binary patch literal 372 zcmV-)0gL`pQ$s@n000005C8zC0ssJ90RR9fwJ-f(rU8`-07j5FGH`3s0kEp7`m1{Z zARGWtI69L}4zf2jx=E1SO}=c~f~Yv?1&p5XxdIUbi;6`0H)~TU04D${0Bs#xvX}oq z|0h?#Y(y>|8X5m3*T*M?yi+N7pGunl2>%2ANB#r+0laf5WvyEOA9%M`ZC-5rZ*YtW zSwgNF?~4gvO5?#duInaeo7BlE5v-$pPZ_)P!+*$U1=&UEV5@jdEi|-^aAJ7(MvjBh zY+I?+4rfbF(yki3MN#=LNaTExUTCjs_=4HsTNrq z)@;g6WCbiBU;>$6LL?fS_735n~tPNUlQkl#a*K`)gwgDgY_~F94H4Z4$C= zT*+SkAN@c0)Bt%rFp-b{lS6&HQ#E*hHFc=yImdz{IZ3Ktno#vmdXz{2 zJ%#y*H>r_Cf)mF#2jK sha*((=pn-(6~Oc+adk9$eN4kb^U^|8C9iUo{J96r|Ic9s3sO@?f?J) literal 0 HcmV?d00001 diff --git a/Materials/bug_marker_icon.material.depren b/Materials/bug_marker_icon.material.depren new file mode 100644 index 0000000000000000000000000000000000000000..be5d88a3e0babcb7591c3cb64ae3074b5686e5d3 GIT binary patch literal 393 zcmV;40e1dUQ$s@n000005C8z}0ssJU0RR9fwJ-f(?EyUt09KJZGjMCt7_jQEs;YY- zsH*EOF$1zoMfRpf?d+zJ8kmDF7+}G60pEV%2n7 zEK1!!`VY1kC>{My?#SI-SPqbDqtg@K1h#U*H20;>BVWCuw!6<*m-7S`nvLd{L<0hK(qWarl$ zooze}Ge#7^t!r{jLC3=NFv4hV6qtdTL=Vx($K*4Qd2`iF+Q*$ literal 0 HcmV?d00001 diff --git a/Textures/laser_glare.dds b/Materials/laser_glare.dds similarity index 100% rename from Textures/laser_glare.dds rename to Materials/laser_glare.dds diff --git a/Materials/laser_glare.material b/Materials/laser_glare.material new file mode 100644 index 0000000000000000000000000000000000000000..1af3916bd6acf3058baddfe5d87d413437c5a875 GIT binary patch literal 865 zcmV-n1D^a+Q$s@n000005C8zk2LJ#`0{{RhwJ-f($Oiox0LCYEIZ$nq4lpxIG^Cj3 zW@cJd6=9>_S|gG?dvEBo8zFKN8Peia;SOnnoMFH8s!BKy+Q1$7_LHB$A1Pk|U;t$R z=_uVYsYXpE23=aI%>RpzG%FVyFWmm0ab|4Smt6lXKGJHL+IE|1X*?lZ2%ak&KGvt$ zFuiOxVx0TG$r|lsXQ6 zK~-FA*D_NoHk?*oLntZ#7u-n<-3D{+!E>X&WG6WDEFUY5vy_bDG2Sv|&0VrLEB`(I zFbCsJd6ZtSR1Acd${;sb)TqhE$&urz^emN-!p+&omIXHuo`vnx7}E+TgzFsTAhqx~ zwNbs;KyWNFMpZElHfCXLVJRyrn_SG6o2|;3OeT|wMbc#!=3H%&!ne3ko7(PV$6+9q zXmbShDv<^VMhHU{b|%fWkkXuog2hxfxK6Gjv}`FR89I3Apn<{!2@ya#EQt6oK=?B- zE)E#@D+rW06q4ec(nl`pbDNARVM#OQi7-fbv6N6EslXo>nSA&Gyqnslzy)t9k6cPS zV)-oG)4Zs5*(_{UsUs6QH_{4H7q*R6;r4CxQmkbN#h3D;oL&(NfT^f)wK2#Hk&GlM zNR}~B0wKnT$O95!bTy3{2n|iiEKH%azX8t?Ob*GrxnNbbxaR)%IDsn)rnCQe%({*p zAk$P5^kj$XcGg=sT?tUOPvV}s0xOHg7$Fsa4RH~phJ=CVIpV^YdQwb}>qrw&%*z#A z7AWe&2%`o^LFC=;5ZaM3#cvJifZHdp?7V8hGpC)sp~;e86lGsj%0EXP!KD0)x@SeR?;=0+Ux9&;Z+%%x2RY}^9VTUuV3k=^#*HR$!SXAEVd<86aQd2`iai)nO literal 0 HcmV?d00001 diff --git a/Materials/laser_glare.material.depren b/Materials/laser_glare.material.depren new file mode 100644 index 0000000000000000000000000000000000000000..538cfc01bdf25981b90c8a00cbc27abc1cf0bfb1 GIT binary patch literal 872 zcmV-u1DE_#Q$s@n000005C8zj2LJ$20{{RhwJ-f(#|AYT0LEu^IZ$nq4lpxIG$1!^ zW@a>*nPMBZwMHa)_TJEEH$vnlGNi?;!X45CIm3SGRh4iaw1GSD?I%BhKT==-U;t$R zlx~?+qb3uBF0EAN|HVg|m5YrRZvW3XGq&qXuKyMvX|+skyUnyTo)9hs&y@`y>r-r) zUN##s&i&ufN*xEk zpeio5Yndq(8%`^)A(WK=3+^O_Zi6}Z;JHy>vJ;$nmX8(3SxQFn7;l-f<}TTrmH!@p zn1k`AJW8)uDh9$!Wsn;zYSd)oN~8gT5yDV~ok?>oq%`NDU@_GVu9K?>EnAA|6&X5s=%9hZ1PKvBKsqdl_%A^C zGcYa=82Bqrpv0j`igQXIxv0-=GOC0n&6p>`AmPPQLW!gTe_Ukpp_|&Kzy)t9k6cPS zV)-oG)4Zs5*(_{UsUs6QH_{4H7q*R6;r4CxQmkbN#h3D;oL&)wFo3J5VYxBL43Uf^ zDM*$vPy!*Sh}Z!VAcQqe8VC(h$t+BSXQly8wjR>$m{$S3-Qz#z!CT-J|;gDlDSfPI+sE$yVn9;Na|rSd6@^4rjuomK$phXjo(}dg$ZO z$xC}SO5H0NA5_g*3!pnD-vaa=fNAaiB~Rqw1DXC3ALJlmM08kXQQJ0B#+FE=HuOLj yF^DdNG;68dVL{&s%n<%xk5FArPGi%t|OcBoQ6f?DolMoa~y|+ z2AZgPvL@1N_6b#cGQlz`^_jnw$1}|`n6m4z_s@L#(%@h7diKmFb-0%6llfaqpYR0o zN>+&e%F_k9mQQAo{W+n)Kf!0v6e9Q(p1rk9*%D~>Qeb)Z)M2`wvY)_EQ8A9t;37l) z0sLD}q!y;C68#1K06)wh^8q|pSL!OsXjGusgh~`^TvSFiE~*(b9h(h=TO4<4aoimN zS#eR7HnS5}TvV|VSb${REk&WE*v}U#MPgPxCOeXhJ72B0mBUHhEVgkMqgZUWU_~Jc z6(zEh0oBF#wAnXOlI3 zC5w|)PpA_LWzit2J`H$S&`+B+gKFAj;BPP^Dv?Z-Kg|or>#2_G`CHEkHMkrBC(!Jz zCDibC)WW#swqQa2f0D#Oh?BA0t|b?=Ksi!Gu8GMAkz_E1v$aH9OwI`6O{*P;foU9; z){tq}PV!7m>bfR>+>I%wlO6Iy`Ri!KItFGL8buW4E zmAY6o_ui`{Ya+wp5nzT1K zPi|;B#dfBuOX);Jk1H)lF+oc?0lFj;N&m}-sv&$pHC6g!vJ^8wbJ%F3iw63_M3Y~b zyuv%*uDx?@oppa$XrVi-J9mbC&h0a9+Z68EcF#k5IOo|Oo*lG?H~h1Pe;%ieVGGl? zFwYU5u!JKlVVogcU;sP#!LMaE_!rDzm=%0;%&~12Fzf^mnC6-Zd|(92Y~UFoJ|X(g z0f8o{@gYJcA|jHcASrAdfdzy)$I!F`5?};12RF!ABQsJ^RDKl{jse=MpoP2VUJQQJ zfv!ZAS<~o`!u1qSimPzsqxEj2#m(ZZS;O$q)t{XCJ^-w#?d1Z_f zJqYK0oG=on<?`IrCo4ih(-NHQM5Fb3Q-ycQU&LJ9lq0R4#*~O=`5j zF&k@>I?90xRgL=}*xv)~=B{U~9%*D)$riAR`m4<30nYLp96l;9UD!1cI8R~jMD^?} z%<{X@QAm_VyhFY8U2+8*BA-!-&KE77HRvg8GZ2|d>QswWLCBR>@Xzc2JA)Y1{V%u) HQd2`i2HS1S 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 diff --git a/Meshes/laser_beam.res.depren b/Meshes/laser_beam.res.depren new file mode 100644 index 0000000000000000000000000000000000000000..176e9c32d1c2d524052828951db6c77f321d423e GIT binary patch literal 383 zcmV-_0f7EeQ$s@n000005C8x*0ssJK0RR9fwJ-f(H397k0Cv(oHegkg#xPJWK3KpZ z0B|Q8gCP1@QL&Ld^2y#W+eDh&L=G0Y`~kNM5d~#i}?Z=vvc?T{_pLbFtR+KUi*=&Bf*!Dmva$p#TYBnJf`-24_M}_Bc$92Vg5615u0G`_qCgykbUz{x?dos?#}S?Z0-H$zhqHas0(b)g dS5+M}USj}3a6UP;Cr^$f^CxzL!va!MLqqKro<#rv literal 0 HcmV?d00001 diff --git a/Scenes/bug_marker.tscn b/Scenes/bug_marker.tscn index e39d460..12afd88 100644 --- a/Scenes/bug_marker.tscn +++ b/Scenes/bug_marker.tscn @@ -1,22 +1,20 @@ [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 +[ext_resource type="Material" uid="uid://dkaq0ok73o5d4" path="res://addons/Bugbot/Materials/bug_marker_icon.material" id="3_px2dp"] [sub_resource type="QuadMesh" id="QuadMesh_dd1nc"] -material = SubResource("StandardMaterial3D_v6jy1") +material = ExtResource("3_px2dp") 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="."] +cast_shadow = 0 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) +cast_shadow = 0 mesh = SubResource("QuadMesh_dd1nc") diff --git a/Scenes/bug_marker_dummy.gd b/Scenes/bug_marker_dummy.gd new file mode 100644 index 0000000..88d6c73 --- /dev/null +++ b/Scenes/bug_marker_dummy.gd @@ -0,0 +1,21 @@ +extends Node3D + +enum BugStatus { UNRESOLVED, IN_PROGRESS, RESOLVED } +@export var marker_status : BugStatus +const UNRESOLVED_COLOUR = Color(0.1, 0.0, 0.0) +const IN_PROGRESS_COLOUR = Color(0.5, 0.5, 0.0) +const RESOLVED_COLOUR = Color(0.0, 0.1, 0.0) + +@export var follow_node : Node3D + + +func _process(_delta:float) -> void: + if not visible: + position = Vector3(0.0, 0.0, 0.0) + elif follow_node: + global_position = follow_node.global_position + +func set_rotation_to_normal(_normal:Vector3): + global_transform.basis.y = _normal + global_transform.basis.x = global_transform.basis.z.cross(_normal) + global_transform.basis = global_transform.basis.orthonormalized() diff --git a/Scenes/bugbot_player.gd b/Scenes/bugbot_player.gd index dc2e612..5a95723 100644 --- a/Scenes/bugbot_player.gd +++ b/Scenes/bugbot_player.gd @@ -1,6 +1,12 @@ class_name Bugbot extends CharacterBody3D +## A controllable bot that marks the location of a bug, and allows writing a bug +## report for it. + +## 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_group("Inputs") @export_subgroup("Keyboard") @export var keyboard_move_forward : InputEventKey @@ -60,8 +66,6 @@ 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) @@ -262,7 +266,7 @@ func _on_exit_placement_timer_timeout() -> void: func _raycast_to_world(): var space : PhysicsDirectSpaceState3D = get_world_3d().direct_space_state - var query : PhysicsRayQueryParameters3D = PhysicsRayQueryParameters3D.create(global_position, global_position - global_transform.basis.z * 25.0) + var query : PhysicsRayQueryParameters3D = PhysicsRayQueryParameters3D.create(global_position, global_position - global_transform.basis.z * ray_length) query.collide_with_areas = false query.collide_with_bodies = true query.exclude = [get_rid()] @@ -278,13 +282,7 @@ func _raycast_to_world(): 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.set_rotation_to_normal(raycast_collision["normal"]) bug_marker.visible = true else: bug_marker.visible = false diff --git a/Scenes/bugbot_player.tscn b/Scenes/bugbot_player.tscn index ea447a3..18aef6f 100644 --- a/Scenes/bugbot_player.tscn +++ b/Scenes/bugbot_player.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=40 format=3 uid="uid://dvgain3s4xa4r"] +[gd_scene load_steps=41 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"] @@ -33,26 +33,28 @@ [ext_resource type="InputEventJoypadButton" uid="uid://biuae513qxxf2" path="res://addons/Bugbot/Inputs/Joystick/speed_down.res" id="31_t01c7"] [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"] +[ext_resource type="Script" path="res://addons/Bugbot/Scenes/bug_marker_dummy.gd" id="35_ibing"] +[ext_resource type="Material" uid="uid://c8b630nfapp8l" path="res://addons/Bugbot/Materials/laser_glow.material" id="35_xqv41"] +[ext_resource type="Material" uid="uid://dewbda2gd8bgv" path="res://addons/Bugbot/Materials/laser_glare.material" id="36_e4bro"] [sub_resource type="CylinderMesh" id="CylinderMesh_ts4fq"] -material = ExtResource("34_18wde") +material = ExtResource("35_xqv41") top_radius = 0.005 bottom_radius = 0.005 height = 1.0 [sub_resource type="QuadMesh" id="QuadMesh_kvipo"] -material = ExtResource("35_f65w0") +material = ExtResource("36_e4bro") size = Vector2(0.25, 0.25) [sub_resource type="SphereShape3D" id="SphereShape3D_6gwao"] +radius = 0.25 [node name="BugbotPlayer" type="CharacterBody3D"] process_mode = 3 -collision_layer = 4294967295 -collision_mask = 0 +collision_layer = 0 +collision_mask = 4294967295 input_ray_pickable = false motion_mode = 1 platform_on_leave = 2 @@ -91,7 +93,9 @@ 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="BugMarker" parent="." node_paths=PackedStringArray("follow_node") instance=ExtResource("34_jyjbc")] +script = ExtResource("35_ibing") +follow_node = NodePath("../LaserBeamRoot/LaserGlare") [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) diff --git a/Textures/laser_glare.material b/Textures/laser_glare.material deleted file mode 100644 index 1c73cbcfbc8c0c636edc5dc41c6784d2de8b3701..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 866 zcmV-o1D*U*Q$s@n000005C8zi2LJ#{0{{RhwJ-f(#s&o%0M@5*8AL<2wMHa)_TJEEH$vnlGNi?;!X45CIm3Qi1c7lzw1GSD?I%BhKT==-VE|?T zn~u^glWNptV$h|P%KXRpNV9UW@xtx@8fV6KeaZFz;v=n=scpBJ*2WXUh2Xie;bVP@ z4b#hJBgVP^J^pw2qasC{Xedhj4{(tXMYY-JAuXnb4dOq8{{#M8{1@;Cis_Zl!oH@| zaqtVO;$pj&nNqRgwDKB4N%_CvPGaadm~#)F8}%hS!I@|ISaqDGWE79_mMLrQlD%2^ z|M7=88E?v?^m?UYAiPutxxu1FO*T%B97m;Rse}}6&OWv*7%O5Bo`vnx7}E+TgzFsT zAhqx~wNbs;M06}NMpZElHfCXLVJRyrn_SG6o2|;3OeT}bMbc#!=3H%&!ne3ko7(PV z$6+9qXmbShD$#}rMkqrSb|%fWkkZ_Tg2hxfxK6Gjv}^?%K7jbZ!9oQJ6GA{dFp&5& zK=?H>Fb){_EeM=AG+A*@NkT5_bDNARVM#OQi8M%fv6N6Exxf)FG70emcsI38feYSJ zAGwrv#PV6Vr+HEBvRT-yl1COiF;D^_#)!xR5@2*SP8tXeP01`wp|rmN&oRs$)?B@ySG>r8Q{Qq=auQS1k2{=cWnlP5x|RZ&$D;B^XRBke15#5%L;Detwg3PC