wip exchanging interaction label with outline

pull/14/head
kziolkowski 6 months ago
parent 5ee295256b
commit ad16b86171

Binary file not shown.

@ -0,0 +1,9 @@
[gd_resource type="ShaderMaterial" load_steps=2 format=3 uid="uid://blch5kdhkbj75"]
[ext_resource type="Shader" uid="uid://dsa3lv2as7q3b" path="res://shader/outline.gdshader" id="1_awyqf"]
[resource]
shader = ExtResource("1_awyqf")
shader_parameter/allow_out_of_bounds = true
shader_parameter/outline_thickness = 8.0
shader_parameter/outline_color = Color(0.88, 0.81664, 0.4576, 1)

@ -1,7 +1,8 @@
[gd_scene load_steps=15 format=3 uid="uid://sbf12hin4kes"] [gd_scene load_steps=16 format=3 uid="uid://sbf12hin4kes"]
[ext_resource type="Texture2D" uid="uid://bylgmr0skwtrs" path="res://art/farm/farming/farmobjekte/broken tools atlas.png" id="1_k4ca3"] [ext_resource type="Texture2D" uid="uid://bylgmr0skwtrs" path="res://art/farm/farming/farmobjekte/broken tools atlas.png" id="1_k4ca3"]
[ext_resource type="PackedScene" uid="uid://cqc72e4hq6bcd" path="res://prefabs/interactions/interaction_area_2d.tscn" id="2_gcgfd"] [ext_resource type="PackedScene" uid="uid://cqc72e4hq6bcd" path="res://prefabs/interactions/interaction_area_2d.tscn" id="2_gcgfd"]
[ext_resource type="Material" uid="uid://blch5kdhkbj75" path="res://art/materials/intaractable_outline.tres" id="3_ic616"]
[ext_resource type="AudioStream" uid="uid://be6g8b3v3u1ai" path="res://audio/sfx/Kitchen/SFX_Cooking_Knife_PickUp_01.wav" id="3_ktmp7"] [ext_resource type="AudioStream" uid="uid://be6g8b3v3u1ai" path="res://audio/sfx/Kitchen/SFX_Cooking_Knife_PickUp_01.wav" id="3_ktmp7"]
[ext_resource type="AudioStream" uid="uid://cgjsajsdrrn0j" path="res://audio/sfx/Kitchen/SFX_Cooking_Knife_PutDown_01.wav" id="4_ic616"] [ext_resource type="AudioStream" uid="uid://cgjsajsdrrn0j" path="res://audio/sfx/Kitchen/SFX_Cooking_Knife_PutDown_01.wav" id="4_ic616"]
[ext_resource type="AudioStream" uid="uid://br4drgupled6c" path="res://audio/sfx/Kitchen/SFX_Cooking_Pot_01.wav" id="5_dx175"] [ext_resource type="AudioStream" uid="uid://br4drgupled6c" path="res://audio/sfx/Kitchen/SFX_Cooking_Pot_01.wav" id="5_dx175"]
@ -33,10 +34,12 @@ y_sort_enabled = true
texture = ExtResource("1_k4ca3") texture = ExtResource("1_k4ca3")
offset = Vector2(1, -215) offset = Vector2(1, -215)
region_enabled = true region_enabled = true
region_rect = Rect2(57, 493, 334, 475) region_rect = Rect2(44, 479, 356, 503)
[node name="InteractionArea" parent="." instance=ExtResource("2_gcgfd")] [node name="InteractionArea" parent="." node_paths=PackedStringArray("_spriteToOutline") instance=ExtResource("2_gcgfd")]
position = Vector2(0, -172) position = Vector2(0, -172)
_outlineMaterial = ExtResource("3_ic616")
_spriteToOutline = NodePath("..")
[node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="."] [node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="."]
stream = SubResource("AudioStreamRandomizer_dich4") stream = SubResource("AudioStreamRandomizer_dich4")

@ -1,10 +1,11 @@
[gd_scene load_steps=48 format=3 uid="uid://dfvgp1my5rydh"] [gd_scene load_steps=49 format=3 uid="uid://dfvgp1my5rydh"]
[ext_resource type="Texture2D" uid="uid://c34012j5ukiuf" path="res://art/animation/Yeli2D/F01-Yeli_Idle/0001.png" id="1_03m0b"] [ext_resource type="Texture2D" uid="uid://c34012j5ukiuf" path="res://art/animation/Yeli2D/F01-Yeli_Idle/0001.png" id="1_03m0b"]
[ext_resource type="Script" uid="uid://d2486x6upmwqq" path="res://scripts/GdScript/dialogic_starter.gd" id="1_at1n1"] [ext_resource type="Script" uid="uid://d2486x6upmwqq" path="res://scripts/GdScript/dialogic_starter.gd" id="1_at1n1"]
[ext_resource type="Script" uid="uid://d0kgxh4ykuv23" path="res://scripts/CSharp/Common/NPC/TalkingCharacter.cs" id="1_hn8at"] [ext_resource type="Script" uid="uid://d0kgxh4ykuv23" path="res://scripts/CSharp/Common/NPC/TalkingCharacter.cs" id="1_hn8at"]
[ext_resource type="Texture2D" uid="uid://cksf38vypfsae" path="res://art/animation/Yeli2D/F01-Yeli_Idle/0002.png" id="2_hn8at"] [ext_resource type="Texture2D" uid="uid://cksf38vypfsae" path="res://art/animation/Yeli2D/F01-Yeli_Idle/0002.png" id="2_hn8at"]
[ext_resource type="Texture2D" uid="uid://e8dj27qcpuoo" path="res://art/animation/Yeli2D/F01-Yeli_Idle/0003.png" id="3_ahrat"] [ext_resource type="Texture2D" uid="uid://e8dj27qcpuoo" path="res://art/animation/Yeli2D/F01-Yeli_Idle/0003.png" id="3_ahrat"]
[ext_resource type="Material" uid="uid://blch5kdhkbj75" path="res://art/materials/intaractable_outline.tres" id="3_pfk7p"]
[ext_resource type="Texture2D" uid="uid://c5k63jgxqr0do" path="res://art/animation/Yeli2D/F01-Yeli_Idle/0004.png" id="4_at1n1"] [ext_resource type="Texture2D" uid="uid://c5k63jgxqr0do" path="res://art/animation/Yeli2D/F01-Yeli_Idle/0004.png" id="4_at1n1"]
[ext_resource type="Texture2D" uid="uid://b8lkbpi220b5h" path="res://art/animation/Yeli2D/F01-Yeli_Idle/0005.png" id="5_aqu1t"] [ext_resource type="Texture2D" uid="uid://b8lkbpi220b5h" path="res://art/animation/Yeli2D/F01-Yeli_Idle/0005.png" id="5_aqu1t"]
[ext_resource type="Texture2D" uid="uid://bv5bxpx6vf2h0" path="res://art/animation/Yeli2D/F01-Yeli_Idle/0006.png" id="6_pfk7p"] [ext_resource type="Texture2D" uid="uid://bv5bxpx6vf2h0" path="res://art/animation/Yeli2D/F01-Yeli_Idle/0006.png" id="6_pfk7p"]
@ -192,22 +193,15 @@ y_sort_enabled = true
script = ExtResource("1_hn8at") script = ExtResource("1_hn8at")
_sprite = NodePath("TalkingControl/AnimatedSprite") _sprite = NodePath("TalkingControl/AnimatedSprite")
[node name="InteractionArea" parent="." instance=ExtResource("42_ahrat")] [node name="InteractionArea" parent="." node_paths=PackedStringArray("_spriteToOutline") instance=ExtResource("42_ahrat")]
position = Vector2(0, -450) position = Vector2(0, -450)
scale = Vector2(2.805, 2.805) scale = Vector2(2.805, 2.805)
_outlineMaterial = ExtResource("3_pfk7p")
_spriteToOutline = NodePath("../TalkingControl/AnimatedSprite")
[node name="CollisionShape3D" parent="InteractionArea/Area2D" index="0"] [node name="CollisionShape3D" parent="InteractionArea/Area2D" index="0"]
shape = SubResource("CircleShape2D_at1n1") shape = SubResource("CircleShape2D_at1n1")
[node name="Label" parent="InteractionArea" index="1"]
custom_minimum_size = Vector2(10, 10)
offset_left = -127.273
offset_top = -245.633
offset_right = 119.727
offset_bottom = -142.633
theme_override_font_sizes/font_size = 60
text = "[E] talk"
[node name="TalkingControl" type="Node2D" parent="."] [node name="TalkingControl" type="Node2D" parent="."]
[node name="AnimatedSprite" type="AnimatedSprite2D" parent="TalkingControl"] [node name="AnimatedSprite" type="AnimatedSprite2D" parent="TalkingControl"]

@ -1,4 +1,4 @@
[gd_scene load_steps=23 format=3 uid="uid://muuxxgvx33fp"] [gd_scene load_steps=25 format=3 uid="uid://muuxxgvx33fp"]
[ext_resource type="Script" uid="uid://7m1rt7agb6rm" path="res://scripts/CSharp/Common/Temp/MVPDuck.cs" id="1_54k4r"] [ext_resource type="Script" uid="uid://7m1rt7agb6rm" path="res://scripts/CSharp/Common/Temp/MVPDuck.cs" id="1_54k4r"]
[ext_resource type="Texture2D" uid="uid://hvchk6t0xe7j" path="res://art/animals/Ente.png" id="1_cgxhx"] [ext_resource type="Texture2D" uid="uid://hvchk6t0xe7j" path="res://art/animals/Ente.png" id="1_cgxhx"]
@ -16,6 +16,7 @@
[ext_resource type="Animation" uid="uid://b3dwd88uvfk1k" path="res://art/animals/duck_flapFlap.res" id="14_uo3dh"] [ext_resource type="Animation" uid="uid://b3dwd88uvfk1k" path="res://art/animals/duck_flapFlap.res" id="14_uo3dh"]
[ext_resource type="AudioStream" uid="uid://bsr5m8u2sle5k" path="res://audio/sfx/Animals/SFX_Duck_Wings_07.wav" id="14_xhefb"] [ext_resource type="AudioStream" uid="uid://bsr5m8u2sle5k" path="res://audio/sfx/Animals/SFX_Duck_Wings_07.wav" id="14_xhefb"]
[ext_resource type="PackedScene" uid="uid://cqc72e4hq6bcd" path="res://prefabs/interactions/interaction_area_2d.tscn" id="15_uo3dh"] [ext_resource type="PackedScene" uid="uid://cqc72e4hq6bcd" path="res://prefabs/interactions/interaction_area_2d.tscn" id="15_uo3dh"]
[ext_resource type="Material" uid="uid://blch5kdhkbj75" path="res://art/materials/intaractable_outline.tres" id="16_nxoeu"]
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_sot7i"] [sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_sot7i"]
streams_count = 4 streams_count = 4
@ -39,7 +40,7 @@ length = 0.001
tracks/0/type = "value" tracks/0/type = "value"
tracks/0/imported = false tracks/0/imported = false
tracks/0/enabled = true tracks/0/enabled = true
tracks/0/path = NodePath("bodyLookingRight/wingR:rotation") tracks/0/path = NodePath("SubViewport/bodyLookingRight/wingR:rotation")
tracks/0/interp = 1 tracks/0/interp = 1
tracks/0/loop_wrap = true tracks/0/loop_wrap = true
tracks/0/keys = { tracks/0/keys = {
@ -51,7 +52,7 @@ tracks/0/keys = {
tracks/1/type = "value" tracks/1/type = "value"
tracks/1/imported = false tracks/1/imported = false
tracks/1/enabled = true tracks/1/enabled = true
tracks/1/path = NodePath("bodyLookingRight/wingL:rotation") tracks/1/path = NodePath("SubViewport/bodyLookingRight/wingL:rotation")
tracks/1/interp = 1 tracks/1/interp = 1
tracks/1/loop_wrap = true tracks/1/loop_wrap = true
tracks/1/keys = { tracks/1/keys = {
@ -63,7 +64,7 @@ tracks/1/keys = {
tracks/2/type = "value" tracks/2/type = "value"
tracks/2/imported = false tracks/2/imported = false
tracks/2/enabled = true tracks/2/enabled = true
tracks/2/path = NodePath("bodyLookingRight/head:rotation") tracks/2/path = NodePath("SubViewport/bodyLookingRight/head:rotation")
tracks/2/interp = 1 tracks/2/interp = 1
tracks/2/loop_wrap = true tracks/2/loop_wrap = true
tracks/2/keys = { tracks/2/keys = {
@ -75,7 +76,7 @@ tracks/2/keys = {
tracks/3/type = "value" tracks/3/type = "value"
tracks/3/imported = false tracks/3/imported = false
tracks/3/enabled = true tracks/3/enabled = true
tracks/3/path = NodePath("bodyLookingRight/head/beak upper:rotation") tracks/3/path = NodePath("SubViewport/bodyLookingRight/head/beak upper:rotation")
tracks/3/interp = 1 tracks/3/interp = 1
tracks/3/loop_wrap = true tracks/3/loop_wrap = true
tracks/3/keys = { tracks/3/keys = {
@ -87,7 +88,7 @@ tracks/3/keys = {
tracks/4/type = "value" tracks/4/type = "value"
tracks/4/imported = false tracks/4/imported = false
tracks/4/enabled = true tracks/4/enabled = true
tracks/4/path = NodePath("bodyLookingRight/head/beak lower:rotation") tracks/4/path = NodePath("SubViewport/bodyLookingRight/head/beak lower:rotation")
tracks/4/interp = 1 tracks/4/interp = 1
tracks/4/loop_wrap = true tracks/4/loop_wrap = true
tracks/4/keys = { tracks/4/keys = {
@ -135,6 +136,9 @@ _data = {
resource_local_to_scene = true resource_local_to_scene = true
radius = 443.041 radius = 443.041
[sub_resource type="ViewportTexture" id="ViewportTexture_4830j"]
viewport_path = NodePath("SubViewport")
[node name="Duck" type="Node2D" node_paths=PackedStringArray("_animationPlayer")] [node name="Duck" type="Node2D" node_paths=PackedStringArray("_animationPlayer")]
z_index = 1 z_index = 1
y_sort_enabled = true y_sort_enabled = true
@ -157,11 +161,28 @@ libraries = {
&"": SubResource("AnimationLibrary_54k4r") &"": SubResource("AnimationLibrary_54k4r")
} }
[node name="bodyLookingRight" type="Node2D" parent="."] [node name="InteractionArea" parent="." node_paths=PackedStringArray("_spriteToOutline") instance=ExtResource("15_uo3dh")]
position = Vector2(9.53674e-07, 0) position = Vector2(18, -250)
_outlineMaterial = ExtResource("16_nxoeu")
_spriteToOutline = NodePath("../Duck rendered")
[node name="CollisionShape3D" parent="InteractionArea/Area2D" index="0"]
shape = SubResource("CircleShape2D_uo3dh")
[node name="Duck rendered" type="Sprite2D" parent="."]
position = Vector2(0, -250)
texture = SubResource("ViewportTexture_4830j")
[node name="SubViewport" type="SubViewport" parent="."]
transparent_bg = true
size = Vector2i(400, 600)
[node name="bodyLookingRight" type="Node2D" parent="SubViewport"]
position = Vector2(200, 550)
rotation = 0.0135349 rotation = 0.0135349
scale = Vector2(1, 1)
[node name="head" type="Sprite2D" parent="bodyLookingRight"] [node name="head" type="Sprite2D" parent="SubViewport/bodyLookingRight"]
position = Vector2(45.706, -451.714) position = Vector2(45.706, -451.714)
rotation = 0.284615 rotation = 0.284615
scale = Vector2(1, 0.997) scale = Vector2(1, 0.997)
@ -171,7 +192,8 @@ offset = Vector2(25.2328, -23.0689)
region_enabled = true region_enabled = true
region_rect = Rect2(45, 24, 87, 82) region_rect = Rect2(45, 24, 87, 82)
[node name="beak upper" type="Sprite2D" parent="bodyLookingRight/head"] [node name="beak upper" type="Sprite2D" parent="SubViewport/bodyLookingRight/head"]
z_index = 1
position = Vector2(50.669, -7.16257) position = Vector2(50.669, -7.16257)
rotation = -0.0427724 rotation = -0.0427724
scale = Vector2(0.62715, 0.62715) scale = Vector2(0.62715, 0.62715)
@ -180,7 +202,7 @@ offset = Vector2(57.1263, -7.47815)
region_enabled = true region_enabled = true
region_rect = Rect2(292, 37, 152, 98) region_rect = Rect2(292, 37, 152, 98)
[node name="beak lower" type="Sprite2D" parent="bodyLookingRight/head"] [node name="beak lower" type="Sprite2D" parent="SubViewport/bodyLookingRight/head"]
position = Vector2(47.9076, -15.7341) position = Vector2(47.9076, -15.7341)
rotation = 0.0364142 rotation = 0.0364142
scale = Vector2(0.58615, 0.58615) scale = Vector2(0.58615, 0.58615)
@ -189,7 +211,7 @@ offset = Vector2(60.4601, 37.8134)
region_enabled = true region_enabled = true
region_rect = Rect2(295, 170, 145, 39) region_rect = Rect2(295, 170, 145, 39)
[node name="torso" type="Sprite2D" parent="bodyLookingRight"] [node name="torso" type="Sprite2D" parent="SubViewport/bodyLookingRight"]
position = Vector2(4.65357, -172.523) position = Vector2(4.65357, -172.523)
scale = Vector2(1.07526, 1.01724) scale = Vector2(1.07526, 1.01724)
texture = ExtResource("1_cgxhx") texture = ExtResource("1_cgxhx")
@ -197,7 +219,7 @@ offset = Vector2(2.87376, -131.092)
region_enabled = true region_enabled = true
region_rect = Rect2(30, 168, 125, 326) region_rect = Rect2(30, 168, 125, 326)
[node name="wingR" type="Sprite2D" parent="bodyLookingRight"] [node name="wingR" type="Sprite2D" parent="SubViewport/bodyLookingRight"]
position = Vector2(-29.2564, -265.875) position = Vector2(-29.2564, -265.875)
rotation = -0.371117 rotation = -0.371117
texture = ExtResource("1_cgxhx") texture = ExtResource("1_cgxhx")
@ -205,7 +227,7 @@ offset = Vector2(-50, 50)
region_enabled = true region_enabled = true
region_rect = Rect2(196, 231, 180, 164) region_rect = Rect2(196, 231, 180, 164)
[node name="wingL" type="Sprite2D" parent="bodyLookingRight"] [node name="wingL" type="Sprite2D" parent="SubViewport/bodyLookingRight"]
position = Vector2(45.8131, -281.97) position = Vector2(45.8131, -281.97)
rotation = -0.0925884 rotation = -0.0925884
skew = -0.0345086 skew = -0.0345086
@ -214,7 +236,7 @@ offset = Vector2(-59.5924, 55.37)
region_enabled = true region_enabled = true
region_rect = Rect2(196, 231, 180, 164) region_rect = Rect2(196, 231, 180, 164)
[node name="underbelly" type="Sprite2D" parent="bodyLookingRight"] [node name="underbelly" type="Sprite2D" parent="SubViewport/bodyLookingRight"]
position = Vector2(-12.6602, -88.6718) position = Vector2(-12.6602, -88.6718)
rotation = -2.98225 rotation = -2.98225
scale = Vector2(0.672245, 0.955267) scale = Vector2(0.672245, 0.955267)
@ -224,7 +246,7 @@ offset = Vector2(26.4135, 70.6083)
region_enabled = true region_enabled = true
region_rect = Rect2(196, 231, 180, 164) region_rect = Rect2(196, 231, 180, 164)
[node name="leg left" type="Sprite2D" parent="bodyLookingRight"] [node name="leg left" type="Sprite2D" parent="SubViewport/bodyLookingRight"]
position = Vector2(35.0323, -227.23) position = Vector2(35.0323, -227.23)
rotation = 2.42655 rotation = 2.42655
scale = Vector2(1.05221, 1.04106) scale = Vector2(1.05221, 1.04106)
@ -233,7 +255,7 @@ texture = ExtResource("1_cgxhx")
region_enabled = true region_enabled = true
region_rect = Rect2(196, 231, 177, 161) region_rect = Rect2(196, 231, 177, 161)
[node name="left thigh" type="Sprite2D" parent="bodyLookingRight/leg left"] [node name="left thigh" type="Sprite2D" parent="SubViewport/bodyLookingRight/leg left"]
z_index = 1 z_index = 1
y_sort_enabled = true y_sort_enabled = true
position = Vector2(73.353, -69.771) position = Vector2(73.353, -69.771)
@ -243,7 +265,7 @@ texture = ExtResource("1_cgxhx")
region_enabled = true region_enabled = true
region_rect = Rect2(368, 263, 81, 89) region_rect = Rect2(368, 263, 81, 89)
[node name="left shin" type="Sprite2D" parent="bodyLookingRight/leg left/left thigh"] [node name="left shin" type="Sprite2D" parent="SubViewport/bodyLookingRight/leg left/left thigh"]
z_index = 1 z_index = 1
y_sort_enabled = true y_sort_enabled = true
position = Vector2(-5.71882, 19.9984) position = Vector2(-5.71882, 19.9984)
@ -255,7 +277,7 @@ offset = Vector2(10, -50)
region_enabled = true region_enabled = true
region_rect = Rect2(360, 361, 68, 126) region_rect = Rect2(360, 361, 68, 126)
[node name="left foot" type="Sprite2D" parent="bodyLookingRight/leg left/left thigh/left shin"] [node name="left foot" type="Sprite2D" parent="SubViewport/bodyLookingRight/leg left/left thigh/left shin"]
z_index = 1 z_index = 1
y_sort_enabled = true y_sort_enabled = true
position = Vector2(15.1289, -77.6075) position = Vector2(15.1289, -77.6075)
@ -266,7 +288,7 @@ offset = Vector2(40, 40)
region_enabled = true region_enabled = true
region_rect = Rect2(246, 393, 111, 111) region_rect = Rect2(246, 393, 111, 111)
[node name="right leg" type="Sprite2D" parent="bodyLookingRight"] [node name="right leg" type="Sprite2D" parent="SubViewport/bodyLookingRight"]
position = Vector2(-25.2564, -163.875) position = Vector2(-25.2564, -163.875)
rotation = -0.463741 rotation = -0.463741
scale = Vector2(1.07492, 1.01762) scale = Vector2(1.07492, 1.01762)
@ -274,7 +296,7 @@ texture = ExtResource("1_cgxhx")
region_enabled = true region_enabled = true
region_rect = Rect2(196, 231, 177, 161) region_rect = Rect2(196, 231, 177, 161)
[node name="right thigh" type="Sprite2D" parent="bodyLookingRight/right leg"] [node name="right thigh" type="Sprite2D" parent="SubViewport/bodyLookingRight/right leg"]
position = Vector2(-29.7603, 44.2374) position = Vector2(-29.7603, 44.2374)
rotation = 0.249342 rotation = 0.249342
scale = Vector2(0.625107, 0.655894) scale = Vector2(0.625107, 0.655894)
@ -283,7 +305,7 @@ texture = ExtResource("1_cgxhx")
region_enabled = true region_enabled = true
region_rect = Rect2(368, 263, 81, 89) region_rect = Rect2(368, 263, 81, 89)
[node name="right shin" type="Sprite2D" parent="bodyLookingRight/right leg/right thigh"] [node name="right shin" type="Sprite2D" parent="SubViewport/bodyLookingRight/right leg/right thigh"]
position = Vector2(-2.78734, 11.5692) position = Vector2(-2.78734, 11.5692)
rotation = 0.0689206 rotation = 0.0689206
scale = Vector2(1.12016, 1.07128) scale = Vector2(1.12016, 1.07128)
@ -293,7 +315,7 @@ offset = Vector2(-14.163, 37.0936)
region_enabled = true region_enabled = true
region_rect = Rect2(360, 361, 68, 126) region_rect = Rect2(360, 361, 68, 126)
[node name="right foot" type="Sprite2D" parent="bodyLookingRight/right leg/right thigh/right shin"] [node name="right foot" type="Sprite2D" parent="SubViewport/bodyLookingRight/right leg/right thigh/right shin"]
position = Vector2(-20.0986, 67.7507) position = Vector2(-20.0986, 67.7507)
rotation = 0.14855 rotation = 0.14855
scale = Vector2(1.212, 1.212) scale = Vector2(1.212, 1.212)
@ -302,17 +324,6 @@ offset = Vector2(40, 40)
region_enabled = true region_enabled = true
region_rect = Rect2(246, 393, 111, 111) region_rect = Rect2(246, 393, 111, 111)
[node name="InteractionArea" parent="." instance=ExtResource("15_uo3dh")]
position = Vector2(18, -205)
[node name="CollisionShape3D" parent="InteractionArea/Area2D" index="0"]
shape = SubResource("CircleShape2D_uo3dh")
[node name="Label" parent="InteractionArea" index="1"]
modulate = Color(0, 0, 0, 1)
z_index = 1
y_sort_enabled = true
[connection signal="Interacted" from="InteractionArea" to="." method="TransferToTargetAfterDelay"] [connection signal="Interacted" from="InteractionArea" to="." method="TransferToTargetAfterDelay"]
[connection signal="Interacted" from="InteractionArea" to="Audio/NakNak" method="PlayOneShot"] [connection signal="Interacted" from="InteractionArea" to="Audio/NakNak" method="PlayOneShot"]

@ -2,6 +2,7 @@
[ext_resource type="Script" uid="uid://btusf04xnywhm" path="res://scripts/CSharp/Common/Inventory/ItemOnGround2D.cs" id="1_tlhp6"] [ext_resource type="Script" uid="uid://btusf04xnywhm" path="res://scripts/CSharp/Common/Inventory/ItemOnGround2D.cs" id="1_tlhp6"]
[ext_resource type="Script" uid="uid://c8suoi3i6kqai" path="res://scripts/CSharp/Common/Inventory/ItemOnGroundSpawnWith.cs" id="3_xu8me"] [ext_resource type="Script" uid="uid://c8suoi3i6kqai" path="res://scripts/CSharp/Common/Inventory/ItemOnGroundSpawnWith.cs" id="3_xu8me"]
[ext_resource type="Material" uid="uid://blch5kdhkbj75" path="res://art/materials/intaractable_outline.tres" id="4_harr4"]
[ext_resource type="PackedScene" uid="uid://cqc72e4hq6bcd" path="res://prefabs/interactions/interaction_area_2d.tscn" id="4_xu8me"] [ext_resource type="PackedScene" uid="uid://cqc72e4hq6bcd" path="res://prefabs/interactions/interaction_area_2d.tscn" id="4_xu8me"]
[ext_resource type="Texture2D" uid="uid://cfxibry711o16" path="res://art/ui/UI/icons/icon-scythe.png" id="5_harr4"] [ext_resource type="Texture2D" uid="uid://cfxibry711o16" path="res://art/ui/UI/icons/icon-scythe.png" id="5_harr4"]
@ -15,9 +16,6 @@ default_font_size = 40
resource_local_to_scene = true resource_local_to_scene = true
radius = 300.0 radius = 300.0
[sub_resource type="Theme" id="Theme_xu8me"]
default_font_size = 75
[node name="GenericItemOnGround" type="Node2D"] [node name="GenericItemOnGround" type="Node2D"]
script = ExtResource("1_tlhp6") script = ExtResource("1_tlhp6")
@ -43,20 +41,13 @@ theme = SubResource("Theme_harr4")
text = "thewe waf a pwoblem wiph picking up te item UWU" text = "thewe waf a pwoblem wiph picking up te item UWU"
autowrap_mode = 3 autowrap_mode = 3
[node name="PickupInteractionArea" parent="." instance=ExtResource("4_xu8me")] [node name="PickupInteractionArea" parent="." node_paths=PackedStringArray("_spriteToOutline") instance=ExtResource("4_xu8me")]
_outlineMaterial = ExtResource("4_harr4")
_spriteToOutline = NodePath("../Icon")
[node name="CollisionShape3D" parent="PickupInteractionArea/Area2D" index="0"] [node name="CollisionShape3D" parent="PickupInteractionArea/Area2D" index="0"]
shape = SubResource("CircleShape2D_tlhp6") shape = SubResource("CircleShape2D_tlhp6")
[node name="Label" parent="PickupInteractionArea" index="1"]
z_index = 5
offset_left = -68.0
offset_top = -111.0
offset_right = 75.0
offset_bottom = -3.0
theme = SubResource("Theme_xu8me")
vertical_alignment = 1
[node name="Icon" type="Sprite2D" parent="."] [node name="Icon" type="Sprite2D" parent="."]
position = Vector2(5, -300) position = Vector2(5, -300)
scale = Vector2(0.868852, 0.868852) scale = Vector2(0.868852, 0.868852)

@ -7,12 +7,12 @@ resource_local_to_scene = true
radius = 300.0 radius = 300.0
[sub_resource type="Theme" id="Theme_5ajrf"] [sub_resource type="Theme" id="Theme_5ajrf"]
default_font_size = 75 default_font_size = 30
[node name="InteractionArea" type="Node2D" node_paths=PackedStringArray("_area", "_label")] [node name="InteractionArea" type="Node2D" node_paths=PackedStringArray("_area", "_label")]
script = ExtResource("1_5ajrf") script = ExtResource("1_5ajrf")
_area = NodePath("Area2D") _area = NodePath("Area2D")
_label = NodePath("Label") _label = NodePath("Area2D/CanvasLayer/MarginContainer/Label")
[node name="Area2D" type="Area2D" parent="."] [node name="Area2D" type="Area2D" parent="."]
collision_mask = 4 collision_mask = 4
@ -20,15 +20,32 @@ collision_mask = 4
[node name="CollisionShape3D" type="CollisionShape2D" parent="Area2D"] [node name="CollisionShape3D" type="CollisionShape2D" parent="Area2D"]
shape = SubResource("CircleShape2D_npluf") shape = SubResource("CircleShape2D_npluf")
[node name="Label" type="Label" parent="."] [node name="CanvasLayer" type="CanvasLayer" parent="Area2D"]
[node name="MarginContainer" type="MarginContainer" parent="Area2D/CanvasLayer"]
anchors_preset = 3
anchor_left = 1.0
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -88.0
offset_top = -100.0
offset_right = 3.0
offset_bottom = 3.0
grow_horizontal = 0
grow_vertical = 0
theme_override_constants/margin_right = 20
theme_override_constants/margin_bottom = 20
[node name="Label" type="Label" parent="Area2D/CanvasLayer/MarginContainer"]
visible = false visible = false
offset_left = -46.0 layout_mode = 2
offset_top = -55.0 size_flags_horizontal = 8
offset_right = 45.0 size_flags_vertical = 8
offset_bottom = 48.0
theme = SubResource("Theme_5ajrf") theme = SubResource("Theme_5ajrf")
text = "[E]" text = "[E]"
horizontal_alignment = 1 horizontal_alignment = 2
vertical_alignment = 2
[connection signal="body_entered" from="Area2D" to="." method="OnPlayerEntered"] [connection signal="body_entered" from="Area2D" to="." method="OnPlayerEntered"]
[connection signal="body_exited" from="Area2D" to="." method="OnPlayerExited"] [connection signal="body_exited" from="Area2D" to="." method="OnPlayerExited"]

@ -1127,6 +1127,8 @@ polygon = PackedVector2Array(247.227, 43.5123, 44.7822, 43.5123, -87.2178, 45.12
[node name="EnterHouseInteraction" parent="YSorted/Farm visuals/Static" instance=ExtResource("27_klb81")] [node name="EnterHouseInteraction" parent="YSorted/Farm visuals/Static" instance=ExtResource("27_klb81")]
position = Vector2(5839, 2349) position = Vector2(5839, 2349)
scale = Vector2(2.425, 2.425) scale = Vector2(2.425, 2.425)
_useOutline = false
_useSprite = false
_id = 0 _id = 0
[node name="greenery" type="Node2D" parent="YSorted/Farm visuals/Static"] [node name="greenery" type="Node2D" parent="YSorted/Farm visuals/Static"]
@ -2221,30 +2223,35 @@ position = Vector2(1269, 3170)
z_index = 0 z_index = 0
y_sort_enabled = false y_sort_enabled = false
position = Vector2(3183, 2369) position = Vector2(3183, 2369)
offset = Vector2(1, -50)
region_rect = Rect2(207, 1184, 149, 142) region_rect = Rect2(207, 1184, 149, 142)
[node name="trashObject3" parent="YSorted/trash" instance=ExtResource("53_ycj14")] [node name="trashObject3" parent="YSorted/trash" instance=ExtResource("53_ycj14")]
z_index = 0 z_index = 0
y_sort_enabled = false y_sort_enabled = false
position = Vector2(4724, 3519) position = Vector2(4724, 3519)
offset = Vector2(1, -50)
region_rect = Rect2(400, 1053, 163, 141) region_rect = Rect2(400, 1053, 163, 141)
[node name="trashObject4" parent="YSorted/trash" instance=ExtResource("53_ycj14")] [node name="trashObject4" parent="YSorted/trash" instance=ExtResource("53_ycj14")]
z_index = 0 z_index = 0
y_sort_enabled = false y_sort_enabled = false
position = Vector2(5385, 3391) position = Vector2(5385, 3391)
offset = Vector2(1, -50)
region_rect = Rect2(1048, 1092, 348, 106) region_rect = Rect2(1048, 1092, 348, 106)
[node name="trashObject5" parent="YSorted/trash" instance=ExtResource("53_ycj14")] [node name="trashObject5" parent="YSorted/trash" instance=ExtResource("53_ycj14")]
z_index = 0 z_index = 0
y_sort_enabled = false y_sort_enabled = false
position = Vector2(8051, 2541) position = Vector2(8051, 2541)
offset = Vector2(1, -50)
region_rect = Rect2(531, 1207, 176, 167) region_rect = Rect2(531, 1207, 176, 167)
[node name="trashObject6" parent="YSorted/trash" instance=ExtResource("53_ycj14")] [node name="trashObject6" parent="YSorted/trash" instance=ExtResource("53_ycj14")]
z_index = 0 z_index = 0
y_sort_enabled = false y_sort_enabled = false
position = Vector2(9629, 3312) position = Vector2(9629, 3312)
offset = Vector2(1, -50)
region_rect = Rect2(207, 1184, 149, 142) region_rect = Rect2(207, 1184, 149, 142)
[node name="trashObject7" parent="YSorted/trash" instance=ExtResource("53_ycj14")] [node name="trashObject7" parent="YSorted/trash" instance=ExtResource("53_ycj14")]
@ -2257,15 +2264,14 @@ z_index = 0
y_sort_enabled = false y_sort_enabled = false
position = Vector2(14589, 2505) position = Vector2(14589, 2505)
rotation = 1.77025 rotation = 1.77025
scale = Vector2(1, 1)
region_rect = Rect2(629, 81, 227, 829) region_rect = Rect2(629, 81, 227, 829)
[node name="trashObject9" parent="YSorted/trash" instance=ExtResource("53_ycj14")] [node name="trashObject9" parent="YSorted/trash" instance=ExtResource("53_ycj14")]
z_index = 0 z_index = 0
y_sort_enabled = false y_sort_enabled = false
position = Vector2(15197, 3447) position = Vector2(15322, 3472)
rotation = 1.77025 rotation = 1.77025
scale = Vector2(1, 1) offset = Vector2(0, 0)
region_rect = Rect2(1048, 1092, 348, 106) region_rect = Rect2(1048, 1092, 348, 106)
[node name="CanvasLayer" parent="." instance=ExtResource("32_2nee2")] [node name="CanvasLayer" parent="." instance=ExtResource("32_2nee2")]

@ -529,12 +529,6 @@ _timelinesToPlay = PackedStringArray("yeli_intro_05")
position = Vector2(-207.487, 136.185) position = Vector2(-207.487, 136.185)
shape = SubResource("CircleShape2D_wuntg") shape = SubResource("CircleShape2D_wuntg")
[node name="Label" parent="Yeli/InteractionArea" index="1"]
offset_left = -332.62
offset_top = -99.8217
offset_right = -85.6204
offset_bottom = 3.17825
[node name="AnimatedSprite" parent="Yeli/TalkingControl" index="0"] [node name="AnimatedSprite" parent="Yeli/TalkingControl" index="0"]
position = Vector2(-576, 368) position = Vector2(-576, 368)

@ -6,15 +6,25 @@ public partial class InteractionArea2D : Node2D
{ {
[Export] private Area2D _area; [Export] private Area2D _area;
[Export] private Label _label; [Export] private Label _label;
[Export] private SpriteSwitcher2D _sprites; // TODO: remove [Export] private bool _useOutline = true;
[Export] private ShaderMaterial _outlineMaterial;
[Export] private bool _useSprite = true;
[Export] private CanvasItem _spriteToOutline;
[Export] private bool _showLabel = true; [Export] private bool _showLabel = true;
[Export] private int _id = -1; // TODO: remove [Export] private int _id = -1; // TODO: remove
private Material _backupMaterial;
[Signal] public delegate void InteractedToolEventHandler(int id); // TODO: remove [Signal] public delegate void InteractedToolEventHandler(int id); // TODO: remove
[Signal] public delegate void InteractedEventHandler(); [Signal] public delegate void InteractedEventHandler();
public bool IsActive { get; set; } = true; public bool IsActive { get; set; } = true;
public override void _Ready()
{
if(_useSprite && _useOutline)
_backupMaterial = _spriteToOutline.Material;
}
public void OnPlayerEntered(Node2D player) public void OnPlayerEntered(Node2D player)
{ {
if (!IsActive) if (!IsActive)
@ -22,6 +32,11 @@ public partial class InteractionArea2D : Node2D
if(_showLabel) if(_showLabel)
_label.Show(); _label.Show();
if (!_useSprite || !_useOutline)
return;
_spriteToOutline.Material = _outlineMaterial;
} }
public void OnPlayerExited(Node2D player) public void OnPlayerExited(Node2D player)
@ -30,6 +45,11 @@ public partial class InteractionArea2D : Node2D
return; return;
_label.Hide(); _label.Hide();
if (!_useSprite || !_useOutline)
return;
_spriteToOutline.Material = _backupMaterial;
} }
public override void _Input(InputEvent @event) public override void _Input(InputEvent @event)
@ -40,6 +60,10 @@ public partial class InteractionArea2D : Node2D
if (@event.IsAction("interact") && @event.IsPressed() && _area.HasOverlappingBodies()) if (@event.IsAction("interact") && @event.IsPressed() && _area.HasOverlappingBodies())
{ {
_label.Hide(); _label.Hide();
if (_useSprite && _useOutline)
_spriteToOutline.Material = _backupMaterial;
EmitSignal(SignalName.InteractedTool, _id); EmitSignal(SignalName.InteractedTool, _id);
EmitSignal(SignalName.Interacted); EmitSignal(SignalName.Interacted);
} }
@ -47,13 +71,9 @@ public partial class InteractionArea2D : Node2D
public void SetSpriteActiveState(bool success, int id) // TODO: remove public void SetSpriteActiveState(bool success, int id) // TODO: remove
{ {
GD.PrintErr("SetSpriteActiveState is being called.");
if(!IsActive) if(!IsActive)
return; return;
if (_id == id)
{
_sprites.SwitchState(!success);
}
} }
public void ToggleActive() public void ToggleActive()

@ -0,0 +1,73 @@
shader_type canvas_item;
uniform bool allow_out_of_bounds = true;
uniform float outline_thickness: hint_range(0.0, 16.0, 1.0) = 1.0;
uniform vec4 outline_color: source_color = vec4(1.0);
bool is_inside_usquare(vec2 x) {
return x == clamp(x, vec2(0.0), vec2(1.0));
}
vec4 blend(vec4 bottom, vec4 top) {
float alpha = top.a + bottom.a * (1.0 - top.a);
if (alpha < 0.0001) return vec4(0.0);
vec3 color = mix(bottom.rgb * bottom.a, top.rgb, top.a) / alpha;
return vec4(color, alpha);
}
void vertex() {
if (allow_out_of_bounds) VERTEX += (UV * 2.0 - 1.0) * outline_thickness;
}
void fragment() {
if (outline_thickness > 0.0 && outline_color.a > 0.0) {
vec2 uv = UV;
vec4 texture_color = texture(TEXTURE, UV);
if (allow_out_of_bounds) {
vec2 texture_pixel_size = vec2(1.0) / (vec2(1.0) / TEXTURE_PIXEL_SIZE + vec2(outline_thickness * 2.0));
uv = (uv - texture_pixel_size * outline_thickness) * TEXTURE_PIXEL_SIZE / texture_pixel_size;
if (is_inside_usquare(uv)) {
texture_color = texture(TEXTURE, uv);
} else {
texture_color = vec4(0.0);
}
}
float alpha = 0.0;
for (float y = 1.0; y <= outline_thickness; y++) {
for (float x = 0.0; x <= y; x++) {
if (length(vec2(x, y - 0.5)) > outline_thickness) break;
float look_at_alpha;
vec2 look_at_uv[8] = {
uv + vec2(x, y) * TEXTURE_PIXEL_SIZE,
uv + vec2(-x, y) * TEXTURE_PIXEL_SIZE,
uv + vec2(x, -y) * TEXTURE_PIXEL_SIZE,
uv + vec2(-x, -y) * TEXTURE_PIXEL_SIZE,
uv + vec2(y, x) * TEXTURE_PIXEL_SIZE,
uv + vec2(-y, x) * TEXTURE_PIXEL_SIZE,
uv + vec2(y, -x) * TEXTURE_PIXEL_SIZE,
uv + vec2(-y, -x) * TEXTURE_PIXEL_SIZE
};
for (int i = 0; i < 8; i++) {
if (is_inside_usquare(look_at_uv[i])) {
look_at_alpha = texture(TEXTURE, look_at_uv[i]).a;
if (look_at_alpha > alpha) alpha = look_at_alpha;
if (1.0 - alpha < 0.0001) break;
}
}
if (1.0 - alpha < 0.0001) break;
}
if (1.0 - alpha < 0.0001) break;
}
COLOR = blend(vec4(outline_color.rgb, alpha * outline_color.a), texture_color);
}
}

@ -0,0 +1 @@
uid://dsa3lv2as7q3b
Loading…
Cancel
Save