diff --git a/currency/members/MemberSprite.tscn b/currency/members/MemberSprite.tscn index ca3969e..059c0b9 100644 --- a/currency/members/MemberSprite.tscn +++ b/currency/members/MemberSprite.tscn @@ -8,19 +8,11 @@ shader = ExtResource("1_tm326") [sub_resource type="CanvasTexture" id="CanvasTexture_wgite"] -[sub_resource type="RectangleShape2D" id="RectangleShape2D_4sc8i"] -resource_local_to_scene = true - [node name="MemberSprite" type="TextureRect" unique_id=283117283] material = SubResource("ShaderMaterial_tm326") +mouse_default_cursor_shape = 2 texture = SubResource("CanvasTexture_wgite") script = ExtResource("2_5ifiv") -[node name="Area2D" type="Area2D" parent="." unique_id=1371993311] - -[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D" unique_id=894062478] -unique_name_in_owner = true -shape = SubResource("RectangleShape2D_4sc8i") - -[connection signal="mouse_entered" from="Area2D" to="." method="_on_area_2d_mouse_entered"] -[connection signal="mouse_exited" from="Area2D" to="." method="_on_area_2d_mouse_exited"] +[connection signal="mouse_entered" from="." to="." method="_on_mouse_entered"] +[connection signal="mouse_exited" from="." to="." method="_on_mouse_exited"] diff --git a/currency/members/member_sprite.gd b/currency/members/member_sprite.gd index ca29cfe..49413e1 100644 --- a/currency/members/member_sprite.gd +++ b/currency/members/member_sprite.gd @@ -8,19 +8,17 @@ func _ready() -> void: sync() func sync(): - set_instance_shader_parameter("border_color", allegiance.color) - set_instance_shader_parameter("fill_color", currency.color) - %CollisionShape2D.shape.size = custom_minimum_size + if allegiance != null: + set_instance_shader_parameter("border_color", allegiance.color) + if currency != null: + set_instance_shader_parameter("fill_color", currency.color) - -func _on_area_2d_mouse_entered() -> void: +func _on_mouse_entered() -> void: UserContext.focus_member(self) - - -func _on_area_2d_mouse_exited() -> void: + +func _on_mouse_exited() -> void: UserContext.unfocus_member(self) -func _unhandled_input(event: InputEvent) -> void: +func _input(event: InputEvent) -> void: if event is InputEventMouseButton and event.pressed and event.button_index == MOUSE_BUTTON_LEFT: - pass - + UserContext.select_focused_member() diff --git a/letters/generator.gd b/letters/generator.gd new file mode 100644 index 0000000..4249efa --- /dev/null +++ b/letters/generator.gd @@ -0,0 +1 @@ +extends Resource diff --git a/letters/generator.gd.uid b/letters/generator.gd.uid new file mode 100644 index 0000000..bc39621 --- /dev/null +++ b/letters/generator.gd.uid @@ -0,0 +1 @@ +uid://7xeokq847s6t diff --git a/letters/generators/drunk.gd b/letters/generators/drunk.gd new file mode 100644 index 0000000..fae2c76 --- /dev/null +++ b/letters/generators/drunk.gd @@ -0,0 +1,11 @@ +extends Node + + +# Called when the node enters the scene tree for the first time. +func _ready() -> void: + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta: float) -> void: + pass diff --git a/letters/generators/drunk.gd.uid b/letters/generators/drunk.gd.uid new file mode 100644 index 0000000..705e0ea --- /dev/null +++ b/letters/generators/drunk.gd.uid @@ -0,0 +1 @@ +uid://du678iprs4rm2 diff --git a/member_inspector_panel.gd b/member_inspector_panel.gd new file mode 100644 index 0000000..c5cf846 --- /dev/null +++ b/member_inspector_panel.gd @@ -0,0 +1,10 @@ +extends "res://gui/currency_inspector_panel.gd" + +@export var member: CurrencyMemberSprite + +func _ready() -> void: + UserContext.member_inspect.connect(member_inspect) + +func member_inspect(m: CurrencyMemberSprite): + member = m + currency = m.currency diff --git a/member_inspector_panel.gd.uid b/member_inspector_panel.gd.uid new file mode 100644 index 0000000..572b413 --- /dev/null +++ b/member_inspector_panel.gd.uid @@ -0,0 +1 @@ +uid://cjhnvflx56hjj diff --git a/member_inspector_panel.tscn b/member_inspector_panel.tscn new file mode 100644 index 0000000..6b2ea77 --- /dev/null +++ b/member_inspector_panel.tscn @@ -0,0 +1,7 @@ +[gd_scene format=3 uid="uid://dsmh4uua1avgp"] + +[ext_resource type="PackedScene" uid="uid://75htlmk51oo" path="res://gui/currency_inspector_panel.tscn" id="1_x0sea"] +[ext_resource type="Script" uid="uid://cjhnvflx56hjj" path="res://member_inspector_panel.gd" id="2_yfo1o"] + +[node name="MemberInspectorPanel" unique_id=169191981 instance=ExtResource("1_x0sea")] +script = ExtResource("2_yfo1o") diff --git a/test/test_economy.tscn b/test/test_economy.tscn index 5015336..ec20e7e 100644 --- a/test/test_economy.tscn +++ b/test/test_economy.tscn @@ -75,7 +75,7 @@ layout_mode = 1 [node name="MemberSprite" parent="." unique_id=283117283 instance=ExtResource("6_vua3v")] instance_shader_parameters/border_color = Color(1, 0, 0, 1) instance_shader_parameters/border_width = 0.16 -instance_shader_parameters/fill_color = Color(0, 1, 0, 1) +instance_shader_parameters/fill_color = Color(1, 0.7529412, 0.79607844, 1) custom_minimum_size = Vector2(100, 100) layout_mode = 0 offset_left = 426.0 @@ -88,3 +88,5 @@ allegiance = ExtResource("8_i7808") [connection signal="pressed" from="Control/VBoxContainer/GetCow" to="." method="_on_get_cow_pressed"] [connection signal="pressed" from="Control/VBoxContainer/RunSimulate" to="." method="_on_run_simulate_pressed"] [connection signal="pressed" from="Control/VBoxContainer/OpenInbox" to="." method="_on_open_inbox_pressed"] + +[editable path="MemberSprite"] diff --git a/user_context.gd b/user_context.gd index aebb3c1..15e96e7 100644 --- a/user_context.gd +++ b/user_context.gd @@ -3,24 +3,33 @@ extends Node @warning_ignore("unused_signal") signal currency_inspect(c: Currency) +@warning_ignore("unused_signal") +signal member_inspect(c: CurrencyMemberSprite) + @warning_ignore("unused_signal") signal open_inbox +var selected_member: CurrencyMemberSprite = null var focused_members: Array[CurrencyMemberSprite] = [] -signal focused_member_change(current: CurrencyMemberSprite) +signal selected_member_change(current: CurrencyMemberSprite) -#func focused_member() -> Cur +func select_focused_member(): + var candidate := focused_member() + if candidate == null: + return + selected_member = candidate + selected_member_change.emit(selected_member) + +func focused_member() -> CurrencyMemberSprite: + if focused_members.size() == 0: + return null + return focused_members[focused_members.size()-1] func focus_member(member: CurrencyMemberSprite): focused_members.append(member) - focused_member_change.emit(member) func unfocus_member(member: CurrencyMemberSprite): var i := focused_members.find(member) if i == -1: return focused_members.remove_at(i) - if focused_members.size(): - focused_member_change.emit(focused_members[focused_members.size()-1]) - else: - focused_member_change.emit(null)