From c0c68c86620483f60c7b9bc687d36858cc18d9f0 Mon Sep 17 00:00:00 2001 From: 2ndbeam <166764593+2ndbeam@users.noreply.github.com> Date: Sun, 19 May 2024 17:14:52 +0300 Subject: [PATCH] Working dialogue system --- icon.png | Bin 0 -> 54491 bytes icon.svg.import => icon.png.import | 11 +- icon.svg | 1 - menus/Base Menu/test_menu_1.tres | 14 +- project.godot | 6 +- scenes/Base/bas42D5.tmp | 182 ++++++++++++++++++++++ scenes/Base/base_menu.tscn | 39 ++--- scripts/Base/Menu/dialogue.gd | 7 + scripts/Base/Menu/send_message.gd | 12 ++ scripts/Base/actions_menu.gd | 5 +- scripts/Classes/message.gd | 4 +- test.tscn | 68 -------- translations/base_dialogue.csv | 4 + translations/base_dialogue.csv.import | 17 ++ translations/base_dialogue.en.translation | Bin 0 -> 554 bytes translations/base_dialogue.ru.translation | Bin 0 -> 677 bytes 16 files changed, 267 insertions(+), 103 deletions(-) create mode 100644 icon.png rename icon.svg.import => icon.png.import (63%) delete mode 100644 icon.svg create mode 100644 scenes/Base/bas42D5.tmp create mode 100644 scripts/Base/Menu/dialogue.gd delete mode 100644 test.tscn create mode 100644 translations/base_dialogue.csv create mode 100644 translations/base_dialogue.csv.import create mode 100644 translations/base_dialogue.en.translation create mode 100644 translations/base_dialogue.ru.translation diff --git a/icon.png b/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..a0d7aef6cde67d31c5cf0f6cb737255cfbe130e0 GIT binary patch literal 54491 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 T0Mb*F00000NkvXXu0mjfQ8R+e literal 0 HcmV?d00001 diff --git a/icon.svg.import b/icon.png.import similarity index 63% rename from icon.svg.import rename to icon.png.import index edf3c9d..74744fd 100644 --- a/icon.svg.import +++ b/icon.png.import @@ -2,16 +2,16 @@ importer="texture" type="CompressedTexture2D" -uid="uid://i71ylgba55nf" -path="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex" +uid="uid://nxj6c7esqect" +path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://icon.svg" -dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"] +source_file="res://icon.png" +dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"] [params] @@ -32,6 +32,3 @@ process/hdr_as_srgb=false process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 -svg/scale=1.0 -editor/scale_with_editor_scale=false -editor/convert_colors_with_editor_theme=false diff --git a/icon.svg b/icon.svg deleted file mode 100644 index b370ceb..0000000 --- a/icon.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/menus/Base Menu/test_menu_1.tres b/menus/Base Menu/test_menu_1.tres index 8cdbfd3..63576a4 100644 --- a/menus/Base Menu/test_menu_1.tres +++ b/menus/Base Menu/test_menu_1.tres @@ -1,6 +1,7 @@ -[gd_resource type="Resource" script_class="Menu" load_steps=6 format=3 uid="uid://c4jg3vwtxskjm"] +[gd_resource type="Resource" script_class="Menu" load_steps=8 format=3 uid="uid://c4jg3vwtxskjm"] [ext_resource type="Script" path="res://scripts/Classes/Menu/menu_menu_resource.gd" id="1_idjuj"] +[ext_resource type="Script" path="res://scripts/Classes/Menu/combo_menu_resource.gd" id="2_23hxw"] [ext_resource type="Script" path="res://scripts/Classes/Menu/script_menu_resource.gd" id="3_6o5so"] [ext_resource type="Script" path="res://scripts/Classes/Menu/menu.gd" id="3_ow6va"] @@ -8,12 +9,17 @@ script = ExtResource("1_idjuj") item = &"res://menus/Base Menu/test_menu_2.tres" +[sub_resource type="Resource" id="Resource_yrsmw"] +script = ExtResource("2_23hxw") +item_script = &"res://scripts/Base/Menu/send_message.gd" +item_menu = &"res://menus/Base Menu/test_menu_2.tres" + [sub_resource type="Resource" id="Resource_b58fs"] script = ExtResource("3_6o5so") item = &"res://scripts/Base/Menu/test.gd" [resource] script = ExtResource("3_ow6va") -item_ids = Array[String](["BASE_TEST_TRANSIT", "BASE_TEST_BLANK", "BASE_TEST_BLANK", "BASE_TEST_BLANK", "BASE_TEST_BUTTON", "BASE_TEST_BLANK", "BASE_TEST_BLANK", "BASE_TEST_BLANK"]) -item_actions = Array[int]([1, 0, 0, 0, 2, 0, 0, 0]) -item_data = Array[Resource("res://scripts/Classes/Menu/menu_resource.gd")]([SubResource("Resource_jjcgb"), null, null, null, SubResource("Resource_b58fs"), null, null, null]) +item_ids = Array[String](["BASE_TEST_TRANSIT", "BASE_TEST_BLANK", "BASE_TEST_BLANK", "BASE_TEST_MESSAGE", "BASE_TEST_BUTTON", "BASE_TEST_BLANK", "BASE_TEST_BLANK", "BASE_TEST_BLANK"]) +item_actions = Array[int]([1, 0, 0, 3, 2, 0, 0, 0]) +item_data = Array[Resource("res://scripts/Classes/Menu/menu_resource.gd")]([SubResource("Resource_jjcgb"), null, null, SubResource("Resource_yrsmw"), SubResource("Resource_b58fs"), null, null, null]) diff --git a/project.godot b/project.godot index ac4dff3..5a89d26 100644 --- a/project.godot +++ b/project.godot @@ -11,10 +11,12 @@ config_version=5 [application] config/name="GammaCosmicRays" +config/version="Ifre 1.0" config/tags=PackedStringArray("main_project") run/main_scene="res://scenes/MainMenu.tscn" +config/use_custom_user_dir=true config/features=PackedStringArray("4.2", "Forward Plus") -config/icon="res://icon.svg" +config/icon="res://icon.png" [debug] @@ -92,7 +94,7 @@ dock={ [internationalization] -locale/translations=PackedStringArray("res://translations/gui.en.translation", "res://translations/gui.ru.translation") +locale/translations=PackedStringArray("res://translations/gui.en.translation", "res://translations/gui.ru.translation", "res://translations/base_dialogue.en.translation", "res://translations/base_dialogue.ru.translation") [layer_names] diff --git a/scenes/Base/bas42D5.tmp b/scenes/Base/bas42D5.tmp new file mode 100644 index 0000000..df5aa77 --- /dev/null +++ b/scenes/Base/bas42D5.tmp @@ -0,0 +1,182 @@ +[gd_scene load_steps=8 format=3 uid="uid://crq284yed2if5"] + +[ext_resource type="Script" path="res://scripts/Base/base_menu.gd" id="1_3hgu4"] +[ext_resource type="Theme" uid="uid://dmb8bcdghdjd" path="res://main_theme.tres" id="1_p1gsn"] +[ext_resource type="Texture2D" uid="uid://db4euprxhape0" path="res://sprites/9s.png" id="1_uf5rv"] +[ext_resource type="Texture2D" uid="uid://hxrx87gda3uf" path="res://sprites/Bases/Menu/end_communications.png" id="2_ceeiv"] +[ext_resource type="Script" path="res://scripts/Base/actions_menu.gd" id="4_3gtyd"] +[ext_resource type="Script" path="res://scripts/Base/close_button.gd" id="4_68ool"] +[ext_resource type="Resource" uid="uid://c4jg3vwtxskjm" path="res://menus/Base Menu/test_menu_1.tres" id="5_rkret"] + +[node name="BaseMenu" type="Control"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme = ExtResource("1_p1gsn") +script = ExtResource("1_3hgu4") + +[node name="MenuBackground" type="NinePatchRect" parent="."] +layout_mode = 0 +offset_left = 40.0 +offset_top = 40.0 +offset_right = 1240.0 +offset_bottom = 640.0 +texture = ExtResource("1_uf5rv") +region_rect = Rect2(0, 0, 5, 5) +patch_margin_left = 2 +patch_margin_top = 2 +patch_margin_right = 2 +patch_margin_bottom = 2 + +[node name="HeaderBackground" type="NinePatchRect" parent="MenuBackground"] +layout_mode = 0 +offset_left = 2.0 +offset_top = 2.0 +offset_right = 1198.0 +offset_bottom = 76.0 +texture = ExtResource("1_uf5rv") +region_rect = Rect2(0, 0, 5, 5) +patch_margin_left = 2 +patch_margin_top = 2 +patch_margin_right = 2 +patch_margin_bottom = 2 + +[node name="PortraitBackground" type="NinePatchRect" parent="MenuBackground"] +layout_mode = 0 +offset_left = 2.0 +offset_top = 77.0 +offset_right = 324.0 +offset_bottom = 598.0 +texture = ExtResource("1_uf5rv") +region_rect = Rect2(0, 0, 5, 5) +patch_margin_left = 2 +patch_margin_top = 2 +patch_margin_right = 2 +patch_margin_bottom = 2 + +[node name="DialogueBackground" type="NinePatchRect" parent="MenuBackground"] +layout_mode = 0 +offset_left = 325.0 +offset_top = 77.0 +offset_right = 1198.0 +offset_bottom = 399.0 +texture = ExtResource("1_uf5rv") +region_rect = Rect2(0, 0, 5, 5) +patch_margin_left = 2 +patch_margin_top = 2 +patch_margin_right = 2 +patch_margin_bottom = 2 + +[node name="RichTextLabel" type="RichTextLabel" parent="MenuBackground/DialogueBackground"] +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.001 +anchor_top = 0.003 +anchor_right = 0.999 +anchor_bottom = 0.997 +offset_left = 0.127 +offset_top = 0.034 +offset_right = -0.127075 +offset_bottom = -0.0340271 +grow_horizontal = 2 +grow_vertical = 2 +size_flags_horizontal = 4 +size_flags_vertical = 8 +focus_mode = 2 +bbcode_enabled = true +scroll_following = true +selection_enabled = true + +[node name="ActionsBackground" type="NinePatchRect" parent="MenuBackground"] +layout_mode = 0 +offset_left = 325.0 +offset_top = 400.0 +offset_right = 1198.0 +offset_bottom = 598.0 +texture = ExtResource("1_uf5rv") +region_rect = Rect2(0, 0, 5, 5) +patch_margin_left = 2 +patch_margin_top = 2 +patch_margin_right = 2 +patch_margin_bottom = 2 + +[node name="ActionsMenu" type="GridContainer" parent="MenuBackground/ActionsBackground"] +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.00114548 +anchor_top = 0.00505051 +anchor_right = 1.0 +anchor_bottom = 0.99495 +grow_horizontal = 2 +grow_vertical = 2 +columns = 2 +script = ExtResource("4_3gtyd") +menu = ExtResource("5_rkret") +metadata/_edit_use_anchors_ = true + +[node name="Action1" type="Button" parent="MenuBackground/ActionsBackground/ActionsMenu"] +clip_contents = true +custom_minimum_size = Vector2(434, 46) +layout_mode = 2 + +[node name="Action5" type="Button" parent="MenuBackground/ActionsBackground/ActionsMenu"] +clip_contents = true +custom_minimum_size = Vector2(434, 46) +layout_mode = 2 + +[node name="Action2" type="Button" parent="MenuBackground/ActionsBackground/ActionsMenu"] +clip_contents = true +custom_minimum_size = Vector2(434, 46) +layout_mode = 2 + +[node name="Action6" type="Button" parent="MenuBackground/ActionsBackground/ActionsMenu"] +clip_contents = true +custom_minimum_size = Vector2(434, 46) +layout_mode = 2 + +[node name="Action3" type="Button" parent="MenuBackground/ActionsBackground/ActionsMenu"] +clip_contents = true +custom_minimum_size = Vector2(434, 46) +layout_mode = 2 + +[node name="Action7" type="Button" parent="MenuBackground/ActionsBackground/ActionsMenu"] +clip_contents = true +custom_minimum_size = Vector2(434, 46) +layout_mode = 2 + +[node name="Action4" type="Button" parent="MenuBackground/ActionsBackground/ActionsMenu"] +clip_contents = true +custom_minimum_size = Vector2(434, 46) +layout_mode = 2 + +[node name="Action8" type="Button" parent="MenuBackground/ActionsBackground/ActionsMenu"] +clip_contents = true +custom_minimum_size = Vector2(434, 46) +layout_mode = 2 + +[node name="CloseButtonBackground" type="NinePatchRect" parent="MenuBackground"] +layout_mode = 0 +offset_left = 1124.0 +offset_top = 2.0 +offset_right = 1198.0 +offset_bottom = 76.0 +texture = ExtResource("1_uf5rv") +region_rect = Rect2(0, 0, 5, 5) +patch_margin_left = 2 +patch_margin_top = 2 +patch_margin_right = 2 +patch_margin_bottom = 2 + +[node name="CloseButton" type="Button" parent="MenuBackground/CloseButtonBackground"] +layout_mode = 0 +offset_left = 1.0 +offset_top = 1.0 +offset_right = 73.0 +offset_bottom = 73.0 +icon = ExtResource("2_ceeiv") +script = ExtResource("4_68ool") + +[connection signal="button_up" from="MenuBackground/CloseButtonBackground/CloseButton" to="MenuBackground/CloseButtonBackground/CloseButton" method="_on_button_up"] diff --git a/scenes/Base/base_menu.tscn b/scenes/Base/base_menu.tscn index df5aa77..f8a4db2 100644 --- a/scenes/Base/base_menu.tscn +++ b/scenes/Base/base_menu.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=8 format=3 uid="uid://crq284yed2if5"] +[gd_scene load_steps=9 format=3 uid="uid://crq284yed2if5"] [ext_resource type="Script" path="res://scripts/Base/base_menu.gd" id="1_3hgu4"] [ext_resource type="Theme" uid="uid://dmb8bcdghdjd" path="res://main_theme.tres" id="1_p1gsn"] @@ -6,6 +6,7 @@ [ext_resource type="Texture2D" uid="uid://hxrx87gda3uf" path="res://sprites/Bases/Menu/end_communications.png" id="2_ceeiv"] [ext_resource type="Script" path="res://scripts/Base/actions_menu.gd" id="4_3gtyd"] [ext_resource type="Script" path="res://scripts/Base/close_button.gd" id="4_68ool"] +[ext_resource type="Script" path="res://scripts/Base/Menu/dialogue.gd" id="4_swpa1"] [ext_resource type="Resource" uid="uid://c4jg3vwtxskjm" path="res://menus/Base Menu/test_menu_1.tres" id="5_rkret"] [node name="BaseMenu" type="Control"] @@ -31,7 +32,7 @@ patch_margin_top = 2 patch_margin_right = 2 patch_margin_bottom = 2 -[node name="HeaderBackground" type="NinePatchRect" parent="MenuBackground"] +[node name="Header" type="NinePatchRect" parent="MenuBackground"] layout_mode = 0 offset_left = 2.0 offset_top = 2.0 @@ -44,7 +45,7 @@ patch_margin_top = 2 patch_margin_right = 2 patch_margin_bottom = 2 -[node name="PortraitBackground" type="NinePatchRect" parent="MenuBackground"] +[node name="Portrait" type="NinePatchRect" parent="MenuBackground"] layout_mode = 0 offset_left = 2.0 offset_top = 77.0 @@ -57,7 +58,7 @@ patch_margin_top = 2 patch_margin_right = 2 patch_margin_bottom = 2 -[node name="DialogueBackground" type="NinePatchRect" parent="MenuBackground"] +[node name="Dialogue" type="NinePatchRect" parent="MenuBackground"] layout_mode = 0 offset_left = 325.0 offset_top = 77.0 @@ -69,8 +70,9 @@ patch_margin_left = 2 patch_margin_top = 2 patch_margin_right = 2 patch_margin_bottom = 2 +script = ExtResource("4_swpa1") -[node name="RichTextLabel" type="RichTextLabel" parent="MenuBackground/DialogueBackground"] +[node name="DialogueView" type="RichTextLabel" parent="MenuBackground/Dialogue"] layout_mode = 1 anchors_preset = -1 anchor_left = 0.001 @@ -87,10 +89,11 @@ size_flags_horizontal = 4 size_flags_vertical = 8 focus_mode = 2 bbcode_enabled = true +text = "DIALOGUE_ENTRY_POINT" scroll_following = true selection_enabled = true -[node name="ActionsBackground" type="NinePatchRect" parent="MenuBackground"] +[node name="Actions" type="NinePatchRect" parent="MenuBackground"] layout_mode = 0 offset_left = 325.0 offset_top = 400.0 @@ -103,7 +106,7 @@ patch_margin_top = 2 patch_margin_right = 2 patch_margin_bottom = 2 -[node name="ActionsMenu" type="GridContainer" parent="MenuBackground/ActionsBackground"] +[node name="ActionsMenu" type="GridContainer" parent="MenuBackground/Actions"] layout_mode = 1 anchors_preset = -1 anchor_left = 0.00114548 @@ -117,47 +120,47 @@ script = ExtResource("4_3gtyd") menu = ExtResource("5_rkret") metadata/_edit_use_anchors_ = true -[node name="Action1" type="Button" parent="MenuBackground/ActionsBackground/ActionsMenu"] +[node name="Action1" type="Button" parent="MenuBackground/Actions/ActionsMenu"] clip_contents = true custom_minimum_size = Vector2(434, 46) layout_mode = 2 -[node name="Action5" type="Button" parent="MenuBackground/ActionsBackground/ActionsMenu"] +[node name="Action5" type="Button" parent="MenuBackground/Actions/ActionsMenu"] clip_contents = true custom_minimum_size = Vector2(434, 46) layout_mode = 2 -[node name="Action2" type="Button" parent="MenuBackground/ActionsBackground/ActionsMenu"] +[node name="Action2" type="Button" parent="MenuBackground/Actions/ActionsMenu"] clip_contents = true custom_minimum_size = Vector2(434, 46) layout_mode = 2 -[node name="Action6" type="Button" parent="MenuBackground/ActionsBackground/ActionsMenu"] +[node name="Action6" type="Button" parent="MenuBackground/Actions/ActionsMenu"] clip_contents = true custom_minimum_size = Vector2(434, 46) layout_mode = 2 -[node name="Action3" type="Button" parent="MenuBackground/ActionsBackground/ActionsMenu"] +[node name="Action3" type="Button" parent="MenuBackground/Actions/ActionsMenu"] clip_contents = true custom_minimum_size = Vector2(434, 46) layout_mode = 2 -[node name="Action7" type="Button" parent="MenuBackground/ActionsBackground/ActionsMenu"] +[node name="Action7" type="Button" parent="MenuBackground/Actions/ActionsMenu"] clip_contents = true custom_minimum_size = Vector2(434, 46) layout_mode = 2 -[node name="Action4" type="Button" parent="MenuBackground/ActionsBackground/ActionsMenu"] +[node name="Action4" type="Button" parent="MenuBackground/Actions/ActionsMenu"] clip_contents = true custom_minimum_size = Vector2(434, 46) layout_mode = 2 -[node name="Action8" type="Button" parent="MenuBackground/ActionsBackground/ActionsMenu"] +[node name="Action8" type="Button" parent="MenuBackground/Actions/ActionsMenu"] clip_contents = true custom_minimum_size = Vector2(434, 46) layout_mode = 2 -[node name="CloseButtonBackground" type="NinePatchRect" parent="MenuBackground"] +[node name="CloseButtonBack" type="NinePatchRect" parent="MenuBackground"] layout_mode = 0 offset_left = 1124.0 offset_top = 2.0 @@ -170,7 +173,7 @@ patch_margin_top = 2 patch_margin_right = 2 patch_margin_bottom = 2 -[node name="CloseButton" type="Button" parent="MenuBackground/CloseButtonBackground"] +[node name="CloseButton" type="Button" parent="MenuBackground/CloseButtonBack"] layout_mode = 0 offset_left = 1.0 offset_top = 1.0 @@ -179,4 +182,4 @@ offset_bottom = 73.0 icon = ExtResource("2_ceeiv") script = ExtResource("4_68ool") -[connection signal="button_up" from="MenuBackground/CloseButtonBackground/CloseButton" to="MenuBackground/CloseButtonBackground/CloseButton" method="_on_button_up"] +[connection signal="button_up" from="MenuBackground/CloseButtonBack/CloseButton" to="MenuBackground/CloseButtonBack/CloseButton" method="_on_button_up"] diff --git a/scripts/Base/Menu/dialogue.gd b/scripts/Base/Menu/dialogue.gd new file mode 100644 index 0000000..e4fbe8e --- /dev/null +++ b/scripts/Base/Menu/dialogue.gd @@ -0,0 +1,7 @@ +extends NinePatchRect + +@onready var dialogue = $DialogueView + +func send_message(msg: Message): + var new_msg = tr(msg.fact + "_RECEIVED") + dialogue.append_text(new_msg) diff --git a/scripts/Base/Menu/send_message.gd b/scripts/Base/Menu/send_message.gd index 2176a5b..d6f3dd4 100644 --- a/scripts/Base/Menu/send_message.gd +++ b/scripts/Base/Menu/send_message.gd @@ -1,7 +1,19 @@ extends MenuAction +class_name MessageSenderAction + +var dialogue ## Message which will be send on click var msg: Message +## Gets message and translates it on display. +## Shown message should end with _LOCAL +func _ready(): + var item_id = get_parent().menu.item_ids[id] + msg = Message.create(item_id, tr(item_id + "_LOCAL")) + text = msg.shown + super._ready() + func action(): + dialogue.send_message(msg) get_parent().transit_menu(id) diff --git a/scripts/Base/actions_menu.gd b/scripts/Base/actions_menu.gd index d779464..9739a8b 100644 --- a/scripts/Base/actions_menu.gd +++ b/scripts/Base/actions_menu.gd @@ -40,7 +40,10 @@ func load_menu(): actions[i].set_script(menu.item_data[i].load_script()) Menu.Action.ComboAction: actions[i].set_script(menu.item_data[i].load_script()) - actions[i].id = i + if "id" in actions[i]: + actions[i].id = i + if "dialogue" in actions[i]: + actions[i].dialogue = $"../../Dialogue" ## Called with transit_button, changes current menu func transit_menu(id: int): diff --git a/scripts/Classes/message.gd b/scripts/Classes/message.gd index 5376727..db0204c 100644 --- a/scripts/Classes/message.gd +++ b/scripts/Classes/message.gd @@ -2,9 +2,9 @@ class_name Message ## Fact value -var fact: String +@export var fact: String ## Display value -var shown: String +@export var shown: String ## Returns message with set fact and shown strings static func create(fact: String, shown: String) -> Message: diff --git a/test.tscn b/test.tscn deleted file mode 100644 index 3650451..0000000 --- a/test.tscn +++ /dev/null @@ -1,68 +0,0 @@ -[gd_scene load_steps=6 format=3 uid="uid://dhh12jepm10m7"] - -[ext_resource type="Shader" path="res://shaders/ship.gdshader" id="1_0kl5j"] -[ext_resource type="Texture2D" uid="uid://dbwvej0c5bl52" path="res://sprites/ship mk1.png" id="2_bxhdx"] - -[sub_resource type="ShaderMaterial" id="ShaderMaterial_j0js1"] -shader = ExtResource("1_0kl5j") -shader_parameter/wave_centers = null -shader_parameter/wave_distances = null -shader_parameter/color = Color(1, 1, 1, 1) -shader_parameter/max_distance = 20.0 -shader_parameter/bublic_size = 15.0 - -[sub_resource type="GDScript" id="GDScript_cl2gl"] -resource_name = "perdej" -script/source = "extends Sprite2D - -var tween - -func wave(pos): - var pos_arr = [pos] - if tween: - tween.kill() - tween = create_tween() - tween.tween_method(set_wave,0,20,1.5) - material.set_shader_parameter(\"wave_centers\",pos_arr) - -func set_wave(val): - material.set_shader_parameter(\"wave_distances\",[val]) -" - -[sub_resource type="GDScript" id="GDScript_lydqv"] -resource_name = "Testicles" -script/source = "extends RayCast2D - - -func _process(delta): - global_position = get_global_mouse_position().normalized()*target_position.x - look_at(Vector2.ZERO) - -func _input(event): - if event is InputEventMouseButton: - if event.button_index == MOUSE_BUTTON_LEFT and event.pressed: - $\"../Icon\".wave(get_collision_point()) - print(\"test\") -" - -[node name="Node2D" type="Node2D"] - -[node name="Icon" type="Sprite2D" parent="."] -material = SubResource("ShaderMaterial_j0js1") -position = Vector2(-48, 22) -texture = ExtResource("2_bxhdx") -script = SubResource("GDScript_cl2gl") - -[node name="Area2D" type="Area2D" parent="Icon"] - -[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Icon/Area2D"] -polygon = PackedVector2Array(16, -5.2, 16, 5, 14.6, 5, -5.8, 16, -16, 16, -16, -16, -7.6, -16) - -[node name="RayCast2D" type="RayCast2D" parent="."] -position = Vector2(0, -112) -target_position = Vector2(112, 0) -collide_with_areas = true -script = SubResource("GDScript_lydqv") - -[node name="Camera2D" type="Camera2D" parent="."] -zoom = Vector2(1.475, 1.475) diff --git a/translations/base_dialogue.csv b/translations/base_dialogue.csv new file mode 100644 index 0000000..3a7b810 --- /dev/null +++ b/translations/base_dialogue.csv @@ -0,0 +1,4 @@ +,en,ru +DIALOGUE_ENTRY_POINT,Entering chat with {race}...\nLogged in as {profile_name}.\n> ,Осуществление связи с {race}...\nВы вошли в систему как {profile_name}\n> +BASE_TEST_MESSAGE_LOCAL,Greet,Поприветствовать +BASE_TEST_MESSAGE_RECEIVED,"Hello, gryadki!\n\tBye, ponos!\n> ","Хеллоу, грядки!\n\tБай, понос!\n> " \ No newline at end of file diff --git a/translations/base_dialogue.csv.import b/translations/base_dialogue.csv.import new file mode 100644 index 0000000..1767a24 --- /dev/null +++ b/translations/base_dialogue.csv.import @@ -0,0 +1,17 @@ +[remap] + +importer="csv_translation" +type="Translation" +uid="uid://cgcykk8j7h7yc" + +[deps] + +files=["res://translations/base_dialogue.en.translation", "res://translations/base_dialogue.ru.translation"] + +source_file="res://translations/base_dialogue.csv" +dest_files=["res://translations/base_dialogue.en.translation", "res://translations/base_dialogue.ru.translation"] + +[params] + +compress=true +delimiter=0 diff --git a/translations/base_dialogue.en.translation b/translations/base_dialogue.en.translation new file mode 100644 index 0000000000000000000000000000000000000000..961cd2c332adb3713665e2c94cc02d4c9954bf7d GIT binary patch literal 554 zcma))Jxc>Y5Qf(nqlq7dAVdOsK`g{T2*gH>h2j?oO4Rz;T!!SxWjEYzkQi)iwD1Qg zSX=oU{0DY|osEU9AR;!W?CwQG$97>&( z;uTVC5JhK#*f5S&uBx`?C6CxB%2Ly*kq!m(lG45_D%~;V_-;c(WULR&fX=4HZ1%S= zwM%80&#^hvi}=$JulzhO6Yujd9NO8G8EU!~D?#YAd9t zzh7S8Ltfo-YH)aM8`ns#!e|$5FdH`QYFXvmra6HR&jKDLbC0xNee!g?fj9@Kb zGD1o-EhK9~Qt1$^72%R8myEznIfAt#P35d*5k!QZBm>`e)8B2<^6hK@lCc_K0H`QU zjE??xQo~IxrpMTju7&-%5WOwEjH>r@OfQm0)F%ufYXo%M7V#Xu6VUP+Cq3_%db{xm zRlfIacx4~lc!VndaeVp;is>E=t=|v40CcAEs-SkL1iwW^dY}?LQAj1O@>Ep&bW0&Z zzUG^jSWhGpF*;Ja9F=9Yjp`7gE)6UFC3;i^PWN<0_k1nudyBRs41G82u}RM8oXYg9 zHlbg{#I0y%8QB%GJw_K8|A42g3L~7Z)h52+26|yU)RM4~l literal 0 HcmV?d00001