diff --git a/src/util/editor_arrow/editor_arrow.gd b/src/util/editor_arrow/editor_arrow.gd deleted file mode 100644 index 9d3a0de..0000000 --- a/src/util/editor_arrow/editor_arrow.gd +++ /dev/null @@ -1,23 +0,0 @@ -@tool -class_name EditorArrow extends MeshInstance3D - -const SCALE_BUFFER := 0.1 - -@export var target: Node3D - -var cached_target_position: Vector3 -var cached_position: Vector3 - - -func _process(_delta: float) -> void: - if ( - is_instance_valid(target) - and (global_position != cached_position or target.global_position != cached_target_position) - ): - var up := global_basis.y - if up.cross(target.global_position).length_squared() < 0.001: - up = global_basis.x - look_at(target.global_position, up) - scale.z = max(0.001, global_position.distance_to(target.global_position) - SCALE_BUFFER) - cached_target_position = target.global_position - cached_position = global_position diff --git a/src/util/editor_arrow/editor_arrow.gd.uid b/src/util/editor_arrow/editor_arrow.gd.uid deleted file mode 100644 index 77c8aa5..0000000 --- a/src/util/editor_arrow/editor_arrow.gd.uid +++ /dev/null @@ -1 +0,0 @@ -uid://civv6xocvw6gp diff --git a/src/util/editor_arrow/editor_arrow.gd~ b/src/util/editor_arrow/editor_arrow.gd~ deleted file mode 100644 index 1a13ca9..0000000 --- a/src/util/editor_arrow/editor_arrow.gd~ +++ /dev/null @@ -1,12 +0,0 @@ -@tool -class_name EditorArrow extends MeshInstance3D - -@export var target: Node3D - - -func _process(_delta: float) -> void: - if is_instance_valid(target): - look_at(target.global_position, global_basis.y) - scale.z = global_position.distance_to(target.global_position) - else: - queue_free() diff --git a/src/util/editor_arrow/editor_arrow.tscn b/src/util/editor_arrow/editor_arrow.tscn deleted file mode 100644 index cb30921..0000000 --- a/src/util/editor_arrow/editor_arrow.tscn +++ /dev/null @@ -1,14 +0,0 @@ -[gd_scene load_steps=4 format=3 uid="uid://ghdsr1b4hpr8"] - -[ext_resource type="ArrayMesh" uid="uid://bgrutdse8bl8b" path="res://assets/props/arrow/arrow.obj" id="1_a3lat"] -[ext_resource type="Script" uid="uid://civv6xocvw6gp" path="res://src/util/editor_arrow/editor_arrow.gd" id="2_yk3bx"] - -[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_yk3bx"] -transparency = 1 -shading_mode = 0 -albedo_color = Color(0, 1, 1, 0.501961) - -[node name="EditorArrow" type="MeshInstance3D"] -mesh = ExtResource("1_a3lat") -surface_material_override/0 = SubResource("StandardMaterial3D_yk3bx") -script = ExtResource("2_yk3bx") diff --git a/src/world/mechanics/relay/gunk_relay.gd b/src/world/mechanics/relay/gunk_relay.gd index 1918fec..2c38f65 100644 --- a/src/world/mechanics/relay/gunk_relay.gd +++ b/src/world/mechanics/relay/gunk_relay.gd @@ -11,24 +11,21 @@ signal pulsed const MAX_RUMBLE := 0.01 const MAX_QUAKE := 0.2 +const EDITOR_ARROW_COLOR := Color.CYAN +const EDITOR_ARROW_SIZE := 0.05 + @export_category("Editor Tools") @export var quick_connect_to: SignalNode: set = _editor_connect -@export_category("Game Scenes") -@export var editor_arrow_scene: PackedScene - var _busy := false -var _editor_arrows: Dictionary[SignalNode, EditorArrow] = {} - @onready var rumbler_3d: Rumbler3D = %Rumbler3D @onready var quaker: Quaker = %Quaker @onready var animation_player: AnimationPlayer = %AnimationPlayer @onready var trigger_delay: Timer = %TriggerDelay @onready var pulse_delay: Timer = %PulseDelay -@onready var editor_connections: Node3D = %EditorConnections ## Trigger this relay. @@ -97,15 +94,13 @@ func _process(delta: float) -> void: # Check connections for conn: Dictionary in triggered.get_connections(): var callable: Callable = conn.get("callable") - if callable and callable.get_object() is SignalNode: - var target: SignalNode = callable.get_object() - if target != self and not target in _editor_arrows: - var instance: EditorArrow = editor_arrow_scene.instantiate() - instance.target = target - editor_connections.add_child(instance) - _editor_arrows[target] = instance - - for target: SignalNode in _editor_arrows.keys(): - if not is_instance_valid(target): - _editor_arrows[target].queue_free() - _editor_arrows.erase(target) + if callable: + var target := callable.get_object() as SignalNode + if target and target != self: + DebugDraw3D.draw_arrow( + global_position, + target.global_position.move_toward(global_position, 0.1), + EDITOR_ARROW_COLOR, + EDITOR_ARROW_SIZE, + true + ) diff --git a/src/world/mechanics/relay/gunk_relay.tscn b/src/world/mechanics/relay/gunk_relay.tscn index 3053cf1..fe31919 100644 --- a/src/world/mechanics/relay/gunk_relay.tscn +++ b/src/world/mechanics/relay/gunk_relay.tscn @@ -1,8 +1,7 @@ -[gd_scene load_steps=13 format=3 uid="uid://bttust5ohud8e"] +[gd_scene load_steps=12 format=3 uid="uid://bttust5ohud8e"] [ext_resource type="Script" uid="uid://1oup50bp0pwd" path="res://src/world/mechanics/relay/gunk_relay.gd" id="1_rdv5j"] [ext_resource type="Script" uid="uid://bukihqt1lybnx" path="res://src/util/frame_skipper.gd" id="2_ipm58"] -[ext_resource type="PackedScene" uid="uid://ghdsr1b4hpr8" path="res://src/util/editor_arrow/editor_arrow.tscn" id="2_nfkbq"] [ext_resource type="Script" uid="uid://b274q7uvn0cvp" path="res://src/ui/rumbler_3d.gd" id="3_mb114"] [ext_resource type="Script" uid="uid://ccs67guidw4w4" path="res://src/ui/quaker.gd" id="5_peqs8"] @@ -115,7 +114,6 @@ _data = { collision_layer = 36 collision_mask = 0 script = ExtResource("1_rdv5j") -editor_arrow_scene = ExtResource("2_nfkbq") value = 800.0 splatter_scale = 0.2 @@ -160,8 +158,5 @@ libraries = { } speed_scale = 4.0 -[node name="EditorConnections" type="Node3D" parent="."] -unique_name_in_owner = true - [connection signal="timeout" from="TriggerDelay" to="." method="_on_trigger_delay_timeout"] [connection signal="timeout" from="PulseDelay" to="." method="_on_pulse_delay_timeout"]