diff --git a/addons/cogito/DemoScenes/COGITO_3_Lobby.tscn b/addons/cogito/DemoScenes/COGITO_3_Lobby.tscn index ac94ac55..e7834394 100644 --- a/addons/cogito/DemoScenes/COGITO_3_Lobby.tscn +++ b/addons/cogito/DemoScenes/COGITO_3_Lobby.tscn @@ -131,7 +131,7 @@ volumetric_fog_temporal_reprojection_amount = 0.85 density = 0.04 albedo = Color(0.694118, 0.694118, 0.694118, 1) -[sub_resource type="Resource" id="Resource_eg74f"] +[sub_resource type="Resource" id="Resource_qccg1"] resource_local_to_scene = true script = ExtResource("4_0kggm") grid = true @@ -2425,7 +2425,7 @@ shadow_mesh = SubResource("ArrayMesh_3ecdw") [sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_upcaa"] data = PackedVector3Array(0.6928, 0.0903, -1.6, 0, 0.0903, -1.2, 0.6128, 0.0903, -0.88, 0.6128, 0.0903, -0.88, 0.7728, 0.0903, -0.88, 0.6928, 0.0903, -1.6, 0.7728, 0.0903, -0.88, 1.3856, 0.0903, -1.2, 0.6928, 0.0903, -1.6, 0.7728, 0.0903, -0.88, 0.7728, 0.0903, -0.72, 1.3856, 0.0903, -1.2, 0.6128, 0.0903, -0.72, 0.6128, 0.0903, -0.88, 0, 0.0903, -1.2, 0.6928, 0.0903, 0, 0.6128, 0.0903, -0.72, 0, 0.0903, -1.2, 0.6928, 0.0903, 0, 0.7728, 0.0903, -0.72, 0.6128, 0.0903, -0.72, 0, 0.0903, -0.4, 0.6928, 0.0903, 0, 0, 0.0903, -1.2, 0, 0.0903, -1.2, 0, 0.0903, -0.8, 0, 0.0903, -0.4, 0.6928, 0.0903, 0, 1.3856, 0.0903, -0.4, 0.7728, 0.0903, -0.72, 1.3856, 0.0903, -0.4, 1.3856, 0.0903, -1.2, 0.7728, 0.0903, -0.72, 1.3856, 0.0903, -0.4, 1.3856, 0.0903, -0.8, 1.3856, 0.0903, -1.2, 0.6928, 0.1935, 0, 0, 0.1935, -0.4, 0, 0.1935, -1.2, 0, 0.1935, -1.2, 0.6928, 0.1935, -1.6, 0.6928, 0.1935, 0, 0.6928, 0.1935, -1.6, 1.3856, 0.1935, -0.4, 0.6928, 0.1935, 0, 0.6928, 0.1935, -1.6, 1.3856, 0.1935, -1.2, 1.3856, 0.1935, -0.4, 0.6928, 0.1935, -1.6, 0.6928, 0.0903, -1.6, 1.3856, 0.0903, -1.2, 1.3856, 0.0903, -1.2, 1.3856, 0.1935, -1.2, 0.6928, 0.1935, -1.6, 1.3856, 0.0903, -0.8, 1.3856, 0.0903, -0.4, 1.3856, 0.1935, -0.4, 1.3856, 0.1935, -0.4, 1.3856, 0.1935, -1.2, 1.3856, 0.0903, -0.8, 1.3856, 0.1935, -1.2, 1.3856, 0.0903, -1.2, 1.3856, 0.0903, -0.8, 1.3856, 0.1935, -0.4, 1.3856, 0.0903, -0.4, 0.6928, 0.0903, 0, 0.6928, 0.0903, 0, 0.6928, 0.1935, 0, 1.3856, 0.1935, -0.4, 0.6928, 0.1935, 0, 0.6928, 0.0903, 0, 0, 0.0903, -0.4, 0, 0.0903, -0.4, 0, 0.1935, -0.4, 0.6928, 0.1935, 0, 0, 0.1935, -1.2, 0, 0.1935, -0.4, 0, 0.0903, -0.4, 0, 0.0903, -0.4, 0, 0.0903, -0.8, 0, 0.1935, -1.2, 0, 0.0903, -0.8, 0, 0.0903, -1.2, 0, 0.1935, -1.2, 0, 0.1935, -1.2, 0, 0.0903, -1.2, 0.6928, 0.0903, -1.6, 0.6928, 0.0903, -1.6, 0.6928, 0.1935, -1.6, 0, 0.1935, -1.2, 0.7728, 0.0903, -0.72, 0.7728, -0.4, -0.72, 0.6128, -0.4, -0.72, 0.6128, -0.4, -0.72, 0.6128, 0.0903, -0.72, 0.7728, 0.0903, -0.72, 0.6128, 0.0903, -0.88, 0.6128, 0.0903, -0.72, 0.6128, -0.4, -0.72, 0.6128, -0.4, -0.72, 0.6128, -0.4, -0.88, 0.6128, 0.0903, -0.88, 0.6128, 0.0903, -0.88, 0.6128, -0.4, -0.88, 0.7728, -0.4, -0.88, 0.7728, -0.4, -0.88, 0.7728, 0.0903, -0.88, 0.6128, 0.0903, -0.88, 0.7728, -0.4, -0.88, 0.7728, -0.4, -0.72, 0.7728, 0.0903, -0.72, 0.7728, 0.0903, -0.72, 0.7728, 0.0903, -0.88, 0.7728, -0.4, -0.88, 0.8128, -0.4, -0.68, 0.8128, -0.44, -0.68, 0.5728, -0.44, -0.68, 0.5728, -0.44, -0.68, 0.5728, -0.4, -0.68, 0.8128, -0.4, -0.68, 0.5728, -0.4, -0.92, 0.5728, -0.4, -0.68, 0.5728, -0.44, -0.68, 0.5728, -0.44, -0.68, 0.5728, -0.44, -0.92, 0.5728, -0.4, -0.92, 0.8128, -0.44, -0.92, 0.8128, -0.44, -0.68, 0.8128, -0.4, -0.68, 0.8128, -0.4, -0.68, 0.8128, -0.4, -0.92, 0.8128, -0.44, -0.92, 0.5728, -0.4, -0.68, 0.5728, -0.4, -0.92, 0.6128, -0.4, -0.72, 0.6128, -0.4, -0.72, 0.8128, -0.4, -0.68, 0.5728, -0.4, -0.68, 0.6128, -0.4, -0.72, 0.7728, -0.4, -0.72, 0.8128, -0.4, -0.68, 0.7728, -0.4, -0.72, 0.7728, -0.4, -0.88, 0.8128, -0.4, -0.68, 0.6128, -0.4, -0.88, 0.6128, -0.4, -0.72, 0.5728, -0.4, -0.92, 0.5728, -0.4, -0.92, 0.8128, -0.4, -0.92, 0.6128, -0.4, -0.88, 0.8128, -0.4, -0.92, 0.7728, -0.4, -0.88, 0.6128, -0.4, -0.88, 0.8128, -0.4, -0.92, 0.8128, -0.4, -0.68, 0.7728, -0.4, -0.88, 0.4928, -0.44, -1, 0.4928, -0.44, -0.6, 0.4928, -0.5, -0.6, 0.4928, -0.5, -0.6, 0.4928, -0.5, -1, 0.4928, -0.44, -1, 0.4928, -0.44, -1, 0.4928, -0.5, -1, 0.8928, -0.5, -1, 0.8928, -0.5, -1, 0.8928, -0.44, -1, 0.4928, -0.44, -1, 0.8928, -0.44, -0.6, 0.8928, -0.5, -0.6, 0.4928, -0.5, -0.6, 0.4928, -0.5, -0.6, 0.4928, -0.44, -0.6, 0.8928, -0.44, -0.6, 0.8928, -0.5, -1, 0.8928, -0.5, -0.6, 0.8928, -0.44, -0.6, 0.8928, -0.44, -0.6, 0.8928, -0.44, -1, 0.8928, -0.5, -1, 0.4928, -0.44, -0.6, 0.4928, -0.44, -1, 0.5728, -0.44, -0.68, 0.5728, -0.44, -0.68, 0.8928, -0.44, -0.6, 0.4928, -0.44, -0.6, 0.5728, -0.44, -0.68, 0.8128, -0.44, -0.68, 0.8928, -0.44, -0.6, 0.8128, -0.44, -0.68, 0.8128, -0.44, -0.92, 0.8928, -0.44, -0.6, 0.5728, -0.44, -0.92, 0.5728, -0.44, -0.68, 0.4928, -0.44, -1, 0.4928, -0.44, -1, 0.8928, -0.44, -1, 0.5728, -0.44, -0.92, 0.8928, -0.44, -1, 0.8128, -0.44, -0.92, 0.5728, -0.44, -0.92, 0.8928, -0.44, -1, 0.8928, -0.44, -0.6, 0.8128, -0.44, -0.92, 0.9128, -0.54, -1.02, 0.4728, -0.54, -1.02, 0.4728, -0.54, -0.58, 0.4728, -0.54, -0.58, 0.9128, -0.54, -0.58, 0.9128, -0.54, -1.02, 0.4928, -0.5, -1, 0.4728, -0.54, -1.02, 0.9128, -0.54, -1.02, 0.9128, -0.54, -1.02, 0.8928, -0.5, -1, 0.4928, -0.5, -1, 0.9128, -0.54, -1.02, 0.9128, -0.54, -0.58, 0.8928, -0.5, -0.6, 0.8928, -0.5, -0.6, 0.8928, -0.5, -1, 0.9128, -0.54, -1.02, 0.8928, -0.5, -0.6, 0.9128, -0.54, -0.58, 0.4728, -0.54, -0.58, 0.4728, -0.54, -0.58, 0.4928, -0.5, -0.6, 0.8928, -0.5, -0.6, 0.4928, -0.5, -0.6, 0.4728, -0.54, -0.58, 0.4728, -0.54, -1.02, 0.4728, -0.54, -1.02, 0.4928, -0.5, -1, 0.4928, -0.5, -0.6, 0.5728, -0.4, -0.92, 0.5728, -0.44, -0.92, 0.8128, -0.44, -0.92, 0.8128, -0.44, -0.92, 0.8128, -0.4, -0.92, 0.5728, -0.4, -0.92) -[sub_resource type="Resource" id="Resource_j7mjj"] +[sub_resource type="Resource" id="Resource_47vl1"] resource_local_to_scene = true script = ExtResource("4_0kggm") grid = true @@ -3167,7 +3167,7 @@ material = SubResource("FogMaterial_4avjx") [node name="Player" parent="." instance=ExtResource("3_mgle8")] transform = Transform3D(-1, 0, 7.45058e-07, 0, 1, 0, -7.45058e-07, 0, -1, 3.03073, 0.905039, -17.9321) -inventory_data = SubResource("Resource_eg74f") +inventory_data = SubResource("Resource_qccg1") step_height_camera_lerp = 1.5 [node name="QUESTS" type="Node3D" parent="."] @@ -6991,7 +6991,7 @@ shape = SubResource("ConcavePolygonShape3D_upcaa") [node name="kitchenFridgeContainer2" parent="BREAK_ROOM" instance=ExtResource("57_fdyfl")] transform = Transform3D(-1, 0, -1.50996e-07, 0, 1, 0, 1.50996e-07, 0, -1, 3.65301, -4.84288e-08, 6.17191) -inventory_data = SubResource("Resource_j7mjj") +inventory_data = SubResource("Resource_47vl1") [node name="kitchenMicrowave" parent="BREAK_ROOM" instance=ExtResource("43_rl17a")] transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 1.98491, 0.84, 6.39503) diff --git a/addons/cogito/DemoScenes/COGITO_4_Laboratory.tscn b/addons/cogito/DemoScenes/COGITO_4_Laboratory.tscn index 2e33e82d..786c49b9 100644 --- a/addons/cogito/DemoScenes/COGITO_4_Laboratory.tscn +++ b/addons/cogito/DemoScenes/COGITO_4_Laboratory.tscn @@ -86,7 +86,7 @@ volumetric_fog_ambient_inject = 0.1 volumetric_fog_sky_affect = 0.1 volumetric_fog_temporal_reprojection_amount = 0.85 -[sub_resource type="Resource" id="Resource_xv2ii"] +[sub_resource type="Resource" id="Resource_jsy0q"] resource_local_to_scene = true script = ExtResource("4_hlewe") grid = true @@ -899,7 +899,7 @@ environment = SubResource("Environment_obnk3") [node name="Player" parent="." instance=ExtResource("2_7qwrr")] transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 5.13854, 0.8, -5.43073) -inventory_data = SubResource("Resource_xv2ii") +inventory_data = SubResource("Resource_jsy0q") [node name="CONNECTOR_TO_LOBBY" type="Node3D" parent="."] diff --git a/addons/cogito/EasyMenus/Components/input_bindings.gd b/addons/cogito/EasyMenus/Components/input_bindings.gd deleted file mode 100644 index 3dcec077..00000000 --- a/addons/cogito/EasyMenus/Components/input_bindings.gd +++ /dev/null @@ -1,72 +0,0 @@ -extends Node - -@export var remap_entry: PackedScene -@export var separator_entry: PackedScene - -@onready var bindings_container: VBoxContainer = %BindingsContainer - -var config = ConfigFile.new() - - -var input_actions = { - "separator_movement": "MOVEMENT", - "forward": "Move forward", - "back": "Move back", - "left": "Move left", - "right": "Move right", - "jump": "Jump", - "crouch": "Crouch", - "separator_actions": "ACTIONS", - "action_primary": "Primary Action", - "action_secondary": "Secondary Action", - "interact": "Interact 1", - "interact2": "Interact 2", - "reload": "Reload", - "quickslot_1": "Quickslot 1", - "quickslot_2": "Quickslot 2", - "quickslot_3": "Quickslot 3", - "quickslot_4": "Quickslot 4", - "separator_inventory": "MENUS", - "menu": "Pause", - "inventory": "Inventory", - "inventory_drop_item": "Quick Drop Item", - "inventory_move_item": "Move Item", - "inventory_use_item": "Use Item", -} - -func _ready() -> void: - load_keybindings_from_config() - create_action_remap_items() - - -func load_keybindings_from_config(): - var err = config.load(OptionsConstants.config_file_name) - if err != 0: - print("Keybindings: Loading options config failed.") - #save_keybindings_to_config() - - var serialized_inputs = config.get_value(OptionsConstants.key_binds, OptionsConstants.input_helper_string) - if serialized_inputs: - InputHelper.deserialize_inputs_for_actions(serialized_inputs) - else: - print("Keybindings: No saved bindings found.") - - - -func save_keybindings_to_config(): - var serialized_inputs = InputHelper.serialize_inputs_for_actions() - config.set_value(OptionsConstants.key_binds, OptionsConstants.input_helper_string, serialized_inputs) - config.save(OptionsConstants.config_file_name) - - -func create_action_remap_items() -> void: - for action in input_actions: - if action.contains("separator"): - var separator = separator_entry.instantiate() - bindings_container.add_child(separator) - separator.separator_text = input_actions[action] - else: - var input_entry = remap_entry.instantiate() - input_entry.action = action - bindings_container.add_child(input_entry) - input_entry.label.text = input_actions[action] diff --git a/addons/cogito/EasyMenus/Nodes/slider_w_labels.tscn b/addons/cogito/EasyMenus/Nodes/slider_w_labels.tscn index c0d35673..1114aef2 100644 --- a/addons/cogito/EasyMenus/Nodes/slider_w_labels.tscn +++ b/addons/cogito/EasyMenus/Nodes/slider_w_labels.tscn @@ -14,23 +14,15 @@ title = "Slider" [node name="Title" type="Label" parent="."] layout_mode = 2 -offset_right = 800.0 -offset_bottom = 38.0 theme_override_font_sizes/font_size = 25 text = "Slider" horizontal_alignment = 1 [node name="HSlider" type="HSlider" parent="."] layout_mode = 2 -offset_top = 42.0 -offset_right = 800.0 -offset_bottom = 58.0 [node name="CurrentValue" type="Label" parent="."] layout_mode = 2 -offset_top = 62.0 -offset_right = 800.0 -offset_bottom = 93.0 theme_override_font_sizes/font_size = 20 text = "0 %" horizontal_alignment = 1 diff --git a/addons/cogito/EasyMenus/Scenes/OptionsTabMenu.tscn b/addons/cogito/EasyMenus/Scenes/OptionsTabMenu.tscn index 095cde6e..ed115b48 100644 --- a/addons/cogito/EasyMenus/Scenes/OptionsTabMenu.tscn +++ b/addons/cogito/EasyMenus/Scenes/OptionsTabMenu.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=13 format=3 uid="uid://bly6wti1q8bsu"] +[gd_scene load_steps=12 format=3 uid="uid://bly6wti1q8bsu"] [ext_resource type="Theme" uid="uid://by44nnjeu6u4n" path="res://addons/cogito/Theme/Cogito_Theme_A.tres" id="1_6plem"] [ext_resource type="Script" path="res://addons/cogito/EasyMenus/Scripts/OptionsTabMenu.gd" id="2_bufp8"] @@ -7,9 +7,8 @@ [ext_resource type="Script" path="res://addons/cogito/Theme/CogitoUiButton.gd" id="6_rlben"] [ext_resource type="Script" path="res://addons/cogito/EasyMenus/Scripts/follow_focus_center.gd" id="7_27vxg"] [ext_resource type="Script" path="res://addons/cogito/EasyMenus/Scripts/option_button_input_propagator.gd" id="8_7fii0"] -[ext_resource type="Script" path="res://addons/cogito/EasyMenus/Components/input_bindings.gd" id="9_fg0hk"] +[ext_resource type="Script" path="res://addons/cogito/EasyMenus/Scripts/slider_w_labels.gd" id="9_3avtv"] [ext_resource type="PackedScene" uid="uid://cqniig2ks0xs2" path="res://addons/cogito/EasyMenus/Nodes/gamepad_closable.tscn" id="9_wft0n"] -[ext_resource type="PackedScene" uid="uid://dyfwp0vhgfjd7" path="res://addons/cogito/EasyMenus/Nodes/slider_w_labels.tscn" id="10_45uhu"] [ext_resource type="PackedScene" uid="uid://yjrkuurlcylb" path="res://addons/cogito/EasyMenus/Components/RemapEntry.tscn" id="10_h6n2q"] [ext_resource type="PackedScene" uid="uid://cbv85ok0isnb3" path="res://addons/cogito/EasyMenus/Components/MenuSeparator.tscn" id="12_n7tcl"] @@ -19,6 +18,8 @@ offset_bottom = 500.0 size_flags_horizontal = 4 theme = ExtResource("1_6plem") script = ExtResource("2_bufp8") +remap_entry = ExtResource("10_h6n2q") +separator_entry = ExtResource("12_n7tcl") [node name="VBoxContainer" type="VBoxContainer" parent="."] layout_mode = 2 @@ -29,12 +30,11 @@ layout_mode = 2 size_flags_horizontal = 4 theme = ExtResource("1_6plem") theme_override_fonts/font = ExtResource("5_23wn5") -current_tab = 1 +current_tab = 0 script = ExtResource("4_h483w") -nodes_to_focus = [NodePath("Gameplay/ScrollContainer/VBoxContainer/HBoxContainer_Headbob/HeadbobOptionButton"), NodePath("Graphics/ScrollContainer/VBoxContainer/HBoxContainer_Resolution/ResolutionOptionButton"), NodePath("Audio/ScrollContainer/VBoxContainer/MarginContainer/VBoxContainer/SFXVolumeSlider/HSlider"), NodePath("Bindings")] +nodes_to_focus = [NodePath("Gameplay/ScrollContainer/VBoxContainer/HBoxContainer_Headbob/HeadbobOptionButton"), NodePath("Graphics/ScrollContainer/VBoxContainer/HBoxContainer_Resolution/ResolutionOptionButton"), null, NodePath("Bindings")] [node name="Gameplay" type="MarginContainer" parent="VBoxContainer/TabContainer"] -visible = false layout_mode = 2 focus_neighbor_bottom = NodePath("ScrollContainer/VBoxContainer/InvertYAxisCheckButton") theme_override_constants/margin_left = 0 @@ -167,6 +167,7 @@ horizontal_alignment = 1 [node name="Graphics" type="MarginContainer" parent="VBoxContainer/TabContainer"] unique_name_in_owner = true +visible = false layout_mode = 2 theme_override_constants/margin_left = 0 theme_override_constants/margin_top = 25 @@ -346,7 +347,6 @@ text = "V-Sync" [node name="Audio" type="MarginContainer" parent="VBoxContainer/TabContainer"] visible = false layout_mode = 2 -focus_neighbor_bottom = NodePath("ScrollContainer/VBoxContainer/MarginContainer/VBoxContainer/SFXVolumeSlider") theme_override_constants/margin_left = 0 theme_override_constants/margin_top = 25 theme_override_constants/margin_right = 0 @@ -370,33 +370,64 @@ layout_mode = 2 theme_override_constants/margin_left = 100 theme_override_constants/margin_right = 100 -[node name="VBoxContainer" type="VBoxContainer" parent="VBoxContainer/TabContainer/Audio/ScrollContainer/VBoxContainer/MarginContainer"] -layout_mode = 2 - -[node name="SFXVolumeSlider" parent="VBoxContainer/TabContainer/Audio/ScrollContainer/VBoxContainer/MarginContainer/VBoxContainer" instance=ExtResource("10_45uhu")] +[node name="HBoxContainer_SFXVolumeSlider" type="HBoxContainer" parent="VBoxContainer/TabContainer/Audio/ScrollContainer/VBoxContainer"] unique_name_in_owner = true +custom_minimum_size = Vector2(400, 40) layout_mode = 2 +script = ExtResource("9_3avtv") +show_percentage = true title = "SFX Volume" -[node name="Title" parent="VBoxContainer/TabContainer/Audio/ScrollContainer/VBoxContainer/MarginContainer/VBoxContainer/SFXVolumeSlider" index="0"] +[node name="Title" type="Label" parent="VBoxContainer/TabContainer/Audio/ScrollContainer/VBoxContainer/HBoxContainer_SFXVolumeSlider"] +custom_minimum_size = Vector2(200, 0) +layout_mode = 2 +size_flags_horizontal = 0 text = "SFX Volume" -[node name="HSlider" parent="VBoxContainer/TabContainer/Audio/ScrollContainer/VBoxContainer/MarginContainer/VBoxContainer/SFXVolumeSlider" index="1"] +[node name="HSlider" type="HSlider" parent="VBoxContainer/TabContainer/Audio/ScrollContainer/VBoxContainer/HBoxContainer_SFXVolumeSlider"] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 4 +mouse_force_pass_scroll_events = false max_value = 1.0 step = 0.1 -[node name="MusicVolumeSlider" parent="VBoxContainer/TabContainer/Audio/ScrollContainer/VBoxContainer/MarginContainer/VBoxContainer" instance=ExtResource("10_45uhu")] +[node name="CurrentValue" type="Label" parent="VBoxContainer/TabContainer/Audio/ScrollContainer/VBoxContainer/HBoxContainer_SFXVolumeSlider"] +custom_minimum_size = Vector2(50, 0) +layout_mode = 2 +theme_override_font_sizes/font_size = 20 +text = "0 %" +horizontal_alignment = 1 + +[node name="HBoxContainer_MusicVolumeSlider" type="HBoxContainer" parent="VBoxContainer/TabContainer/Audio/ScrollContainer/VBoxContainer"] unique_name_in_owner = true +custom_minimum_size = Vector2(400, 40) layout_mode = 2 +script = ExtResource("9_3avtv") +show_percentage = true title = "Music Volume" -[node name="Title" parent="VBoxContainer/TabContainer/Audio/ScrollContainer/VBoxContainer/MarginContainer/VBoxContainer/MusicVolumeSlider" index="0"] +[node name="Title" type="Label" parent="VBoxContainer/TabContainer/Audio/ScrollContainer/VBoxContainer/HBoxContainer_MusicVolumeSlider"] +custom_minimum_size = Vector2(200, 0) +layout_mode = 2 +size_flags_horizontal = 0 text = "Music Volume" -[node name="HSlider" parent="VBoxContainer/TabContainer/Audio/ScrollContainer/VBoxContainer/MarginContainer/VBoxContainer/MusicVolumeSlider" index="1"] +[node name="HSlider" type="HSlider" parent="VBoxContainer/TabContainer/Audio/ScrollContainer/VBoxContainer/HBoxContainer_MusicVolumeSlider"] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 4 +mouse_force_pass_scroll_events = false max_value = 1.0 step = 0.1 +[node name="CurrentValue" type="Label" parent="VBoxContainer/TabContainer/Audio/ScrollContainer/VBoxContainer/HBoxContainer_MusicVolumeSlider"] +custom_minimum_size = Vector2(50, 0) +layout_mode = 2 +theme_override_font_sizes/font_size = 20 +text = "0 %" +horizontal_alignment = 1 + [node name="Bindings" type="MarginContainer" parent="VBoxContainer/TabContainer"] visible = false layout_mode = 2 @@ -404,9 +435,6 @@ theme_override_constants/margin_left = 0 theme_override_constants/margin_top = 25 theme_override_constants/margin_right = 0 theme_override_constants/margin_bottom = 25 -script = ExtResource("9_fg0hk") -remap_entry = ExtResource("10_h6n2q") -separator_entry = ExtResource("12_n7tcl") metadata/_tab_index = 3 [node name="ScrollContainer" type="ScrollContainer" parent="VBoxContainer/TabContainer/Bindings"] @@ -416,17 +444,12 @@ size_flags_horizontal = 4 script = ExtResource("7_27vxg") transition_time = 0.15 -[node name="VBoxContainer" type="VBoxContainer" parent="VBoxContainer/TabContainer/Bindings/ScrollContainer"] +[node name="MarginContainer" type="MarginContainer" parent="VBoxContainer/TabContainer/Bindings/ScrollContainer"] layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 -theme_override_constants/separation = 15 -[node name="MarginContainer" type="MarginContainer" parent="VBoxContainer/TabContainer/Bindings/ScrollContainer/VBoxContainer"] -layout_mode = 2 -size_flags_vertical = 3 - -[node name="BindingsContainer" type="VBoxContainer" parent="VBoxContainer/TabContainer/Bindings/ScrollContainer/VBoxContainer/MarginContainer"] +[node name="BindingsContainer" type="VBoxContainer" parent="VBoxContainer/TabContainer/Bindings/ScrollContainer/MarginContainer"] unique_name_in_owner = true layout_mode = 2 theme_override_constants/separation = 3 @@ -463,8 +486,7 @@ theme_override_font_sizes/font_size = 25 text = "Apply changes" script = ExtResource("6_rlben") +[connection signal="value_changed" from="VBoxContainer/TabContainer/Audio/ScrollContainer/VBoxContainer/HBoxContainer_SFXVolumeSlider/HSlider" to="VBoxContainer/TabContainer/Audio/ScrollContainer/VBoxContainer/HBoxContainer_SFXVolumeSlider" method="_on_h_slider_value_changed"] +[connection signal="value_changed" from="VBoxContainer/TabContainer/Audio/ScrollContainer/VBoxContainer/HBoxContainer_MusicVolumeSlider/HSlider" to="VBoxContainer/TabContainer/Audio/ScrollContainer/VBoxContainer/HBoxContainer_MusicVolumeSlider" method="_on_h_slider_value_changed"] [connection signal="pressed" from="VBoxContainer/MarginContainer/HBoxContainer/ApplyChanges" to="." method="_on_apply_changes_pressed"] [connection signal="pressed" from="VBoxContainer/MarginContainer/HBoxContainer/ApplyChanges" to="VBoxContainer/TabContainer/Bindings" method="save_keybindings_to_config"] - -[editable path="VBoxContainer/TabContainer/Audio/ScrollContainer/VBoxContainer/MarginContainer/VBoxContainer/SFXVolumeSlider"] -[editable path="VBoxContainer/TabContainer/Audio/ScrollContainer/VBoxContainer/MarginContainer/VBoxContainer/MusicVolumeSlider"] diff --git a/addons/cogito/EasyMenus/Scripts/OptionsTabMenu.gd b/addons/cogito/EasyMenus/Scripts/OptionsTabMenu.gd index 01d95c06..744073b3 100644 --- a/addons/cogito/EasyMenus/Scripts/OptionsTabMenu.gd +++ b/addons/cogito/EasyMenus/Scripts/OptionsTabMenu.gd @@ -25,8 +25,8 @@ var mouse_sens : float var headbob_strength : int # AUDIO -@onready var sfx_volume_slider : HSliderWLabel = $%SFXVolumeSlider -@onready var music_volume_slider: HSliderWLabel = $%MusicVolumeSlider +@onready var sfx_volume_slider : HSliderWLabel = %HBoxContainer_SFXVolumeSlider +@onready var music_volume_slider: HSliderWLabel = %HBoxContainer_MusicVolumeSlider var sfx_bus_index var music_bus_index @@ -71,6 +71,38 @@ const RESOLUTION_DICTIONARY : Dictionary = { "3840x2160 (16:9)" : Vector2i(3840,2160), } +# INPUT BINDING +@export var remap_entry: PackedScene +@export var separator_entry: PackedScene + +@onready var bindings_container: VBoxContainer = %BindingsContainer + +var input_actions = { + "separator_movement": "MOVEMENT", + "forward": "Move forward", + "back": "Move back", + "left": "Move left", + "right": "Move right", + "jump": "Jump", + "crouch": "Crouch", + "separator_actions": "ACTIONS", + "action_primary": "Primary Action", + "action_secondary": "Secondary Action", + "interact": "Interact 1", + "interact2": "Interact 2", + "reload": "Reload", + "quickslot_1": "Quickslot 1", + "quickslot_2": "Quickslot 2", + "quickslot_3": "Quickslot 3", + "quickslot_4": "Quickslot 4", + "separator_inventory": "MENUS", + "menu": "Pause", + "inventory": "Inventory", + "inventory_drop_item": "Quick Drop Item", + "inventory_move_item": "Move Item", + "inventory_use_item": "Use Item", +} + func _ready() -> void: # GAMEPLAY @@ -94,6 +126,8 @@ func _ready() -> void: music_volume_slider.hslider.value_changed.connect(_on_music_volume_slider_value_changed) load_options() + load_keybindings_from_config() + create_action_remap_items() # Called from outside initializes the options menu @@ -152,6 +186,11 @@ func refresh_render(): get_window().size = render_resolution get_window().content_scale_size = render_resolution get_window().scaling_3d_scale = render_scale_val + + var msaa_2d = config.get_value(OptionsConstants.section_name, OptionsConstants.msaa_2d_key, 0) + var msaa_3d = config.get_value(OptionsConstants.section_name, OptionsConstants.msaa_3d_key, 0) + set_msaa("msaa_2d", msaa_2d) + set_msaa("msaa_3d", msaa_3d) # Function to change resolution. Hooked up to the resolution_option_button. @@ -172,7 +211,6 @@ func _on_music_volume_slider_value_changed(value): # Sets the volume for the given audio bus func set_volume(bus_index, value): - print("Setting volume on bus_index ", bus_index, " to ", value) AudioServer.set_bus_volume_db(bus_index, linear_to_db(value)) @@ -194,14 +232,17 @@ func save_options(): config.set_value(OptionsConstants.section_name, OptionsConstants.sfx_volume_key_name, sfx_volume_slider.hslider.value) config.set_value(OptionsConstants.section_name, OptionsConstants.music_volume_key_name, music_volume_slider.hslider.value) - config.save(OptionsConstants.config_file_name) + if config.save(OptionsConstants.config_file_name) != OK: + CogitoMain.debug_log(true, "OptionsTabMenu.gd", "Saving config file failed.") + else: + CogitoMain.debug_log(true, "OptionsTabMenu.gd","Saving config file OK") # Loads options and sets the controls values to loaded values. Uses default values if config file does not exist func load_options(skip_applying:bool = false): var err = config.load(OptionsConstants.config_file_name) if err != 0: - print("Loading options config failed. Assuming and saving defaults.") + CogitoMain.debug_log(true, "OptionsTabMenu.gd","Loading options config failed. Assuming and saving defaults.") var invert_y = config.get_value(OptionsConstants.section_name, OptionsConstants.invert_vertical_axis_key, true) var toggle_crouching = config.get_value(OptionsConstants.section_name, OptionsConstants.toggle_crouching_key, true) @@ -324,11 +365,46 @@ func set_msaa(mode, index): get_viewport().set(mode,Viewport.MSAA_8X) +func load_keybindings_from_config(): + var err = config.load(OptionsConstants.config_file_name) + if err != 0: + CogitoMain.debug_log(true, "OptionsTabMenu.gd","Keybindings: Loading options config failed.") + #save_keybindings_to_config() + + var serialized_inputs = config.get_value(OptionsConstants.key_binds, OptionsConstants.input_helper_string) + if serialized_inputs: + InputHelper.deserialize_inputs_for_actions(serialized_inputs) + else: + CogitoMain.debug_log(true, "OptionsTabMenu.gd","Keybindings: No saved bindings found.") + + + +func save_keybindings_to_config(): + var serialized_inputs = InputHelper.serialize_inputs_for_actions() + config.set_value(OptionsConstants.key_binds, OptionsConstants.input_helper_string, serialized_inputs) + config.save(OptionsConstants.config_file_name) + + +func create_action_remap_items() -> void: + for action in input_actions: + if action.contains("separator"): + var separator = separator_entry.instantiate() + bindings_container.add_child(separator) + separator.separator_text = input_actions[action] + else: + var input_entry = remap_entry.instantiate() + input_entry.action = action + bindings_container.add_child(input_entry) + input_entry.label.text = input_actions[action] + + + func _on_apply_changes_pressed() -> void: window_mode_option_button.item_selected.emit(window_mode_option_button.selected) + save_options() if have_options_changed: refresh_render() - save_options() + options_updated.emit() func _on_tab_menu_resume(): diff --git a/addons/cogito/EasyMenus/Scripts/options_constants.gd b/addons/cogito/EasyMenus/Scripts/options_constants.gd index d0059569..bc1e4f1d 100644 --- a/addons/cogito/EasyMenus/Scripts/options_constants.gd +++ b/addons/cogito/EasyMenus/Scripts/options_constants.gd @@ -3,7 +3,7 @@ class_name OptionsConstants const sfx_bus_name = "SFX" const music_bus_name = "Music" -const config_file_name = "user://options.cfg" +const config_file_name = "user://options_test.cfg" const section_name = "Options" # Auido options diff --git a/addons/cogito/EasyMenus/Scripts/slider_w_labels.gd b/addons/cogito/EasyMenus/Scripts/slider_w_labels.gd index d617b3dd..792639e2 100644 --- a/addons/cogito/EasyMenus/Scripts/slider_w_labels.gd +++ b/addons/cogito/EasyMenus/Scripts/slider_w_labels.gd @@ -1,5 +1,5 @@ @tool -extends VBoxContainer +extends BoxContainer signal value_changed(value: float) @onready var title_label : Label = $Title diff --git a/addons/cogito/Theme/Cogito_Theme_A.tres b/addons/cogito/Theme/Cogito_Theme_A.tres index ddab69e3..c04caa67 100644 --- a/addons/cogito/Theme/Cogito_Theme_A.tres +++ b/addons/cogito/Theme/Cogito_Theme_A.tres @@ -50,7 +50,7 @@ border_width_right = 1 border_width_bottom = 1 border_color = Color(0.0588235, 0.533333, 0.482353, 1) -[sub_resource type="Image" id="Image_0b77a"] +[sub_resource type="Image" id="Image_m6awm"] data = { "data": PackedByteArray("////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8S/f39ZP///5z+/v63/v7+t////5z9/f1j////Ef///wD///8A////AP///wD///8A////AP///wD///9B/v7+t/7+/r/+/v6//v7+v/7+/r/+/v6//v7+v/7+/rb///8/////AP///wD///8A////AP///wD///9B/v7+v/7+/r/+/v6//v7+v/7+/r/+/v6//v7+v/7+/r/+/v6//v7+v////z////8A////AP///wD///8S/v7+t/7+/r/+/v6//v7+v/7+/r/+/v6//v7+v/7+/r/+/v6//v7+v/7+/r/+/v61////EP///wD///8A/f39ZP7+/r/+/v6//v7+v/7+/r/+/v6//v7+v/7+/r/+/v6//v7+v/7+/r/+/v6//v7+v////2H///8A////AP///5z+/v6//v7+v/7+/r/+/v6//v7+v/7+/r/+/v6//v7+v/7+/r/+/v6//v7+v/7+/r/+/v6b////AP///wD+/v63/v7+v/7+/r/+/v6//v7+v/7+/r/+/v6//v7+v/7+/r/+/v6//v7+v/7+/r/+/v6//v7+tv///wD///8A/v7+t/7+/r/+/v6//v7+v/7+/r/+/v6//v7+v/7+/r/+/v6//v7+v/7+/r/+/v6//v7+v/7+/rX///8A////AP///5z+/v6//v7+v/7+/r/+/v6//v7+v/7+/r/+/v6//v7+v/7+/r/+/v6//v7+v/7+/r/+/v6a////AP///wD9/f1j/v7+v/7+/r/+/v6//v7+v/7+/r/+/v6//v7+v/7+/r/+/v6//v7+v/7+/r/+/v6//f39Yf///wD///8A////Ef7+/rb+/v6//v7+v/7+/r/+/v6//v7+v/7+/r/+/v6//v7+v/7+/r/+/v6//v7+tP///w////8A////AP///wD///8//v7+v/7+/r/+/v6//v7+v/7+/r/+/v6//v7+v/7+/r/+/v6//v7+v////z3///8A////AP///wD///8A////AP///z/+/v61/v7+v/7+/r/+/v6//v7+v/7+/r/+/v6//v7+tP///z3///8A////AP///wD///8A////AP///wD///8A////EP///2H+/v6b/v7+tv7+/rX+/v6a/f39Yf///w////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AA=="), "format": "RGBA8", @@ -60,9 +60,9 @@ data = { } [sub_resource type="ImageTexture" id="ImageTexture_lu7pj"] -image = SubResource("Image_0b77a") +image = SubResource("Image_m6awm") -[sub_resource type="Image" id="Image_r8w40"] +[sub_resource type="Image" id="Image_yu3it"] data = { "data": PackedByteArray("////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8J////Mf///03///9a////Wv///03///8x////Cf///wD///8A////AP///wD///8A////AP///wD///8g////Wv///17///9e////Xv///17///9e////Xv///1r///8f////AP///wD///8A////AP///wD///8g////Xv///17///9e////Xv///17///9e////Xv///17///9e////Xv///x////8A////AP///wD///8J////Wv///17///9e////Xv///17///9e////Xv///17///9e////Xv///17///9Z////CP///wD///8A////Mf///17///9e////Xv///17///9e////Xv///17///9e////Xv///17///9e////Xv///zD///8A////AP///03///9e////Xv///17///9e////Xv///17///9e////Xv///17///9e////Xv///17///9N////AP///wD///9a////Xv///17///9e////Xv///17///9e////Xv///17///9e////Xv///17///9e////Wv///wD///8A////Wv///17///9e////Xv///17///9e////Xv///17///9e////Xv///17///9e////Xv///1n///8A////AP///03///9e////Xv///17///9e////Xv///17///9e////Xv///17///9e////Xv///17///9M////AP///wD///8x////Xv///17///9e////Xv///17///9e////Xv///17///9e////Xv///17///9e////MP///wD///8A////Cf///1r///9e////Xv///17///9e////Xv///17///9e////Xv///17///9e////Wf///wj///8A////AP///wD///8f////Xv///17///9e////Xv///17///9e////Xv///17///9e////Xv///x7///8A////AP///wD///8A////AP///x////9Z////Xv///17///9e////Xv///17///9e////Wf///x7///8A////AP///wD///8A////AP///wD///8A////CP///zD///9N////Wv///1n///9M////MP///wj///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AA=="), "format": "RGBA8", @@ -72,9 +72,9 @@ data = { } [sub_resource type="ImageTexture" id="ImageTexture_cosox"] -image = SubResource("Image_r8w40") +image = SubResource("Image_yu3it") -[sub_resource type="Image" id="Image_ovy4l"] +[sub_resource type="Image" id="Image_cliut"] data = { "data": PackedByteArray("////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8X/v7+hf7+/tH+/v70/v7+9P7+/tH+/v6E////Fv///wD///8A////AP///wD///8A////AP///wD///9X/v7+9P7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/vP///9U////AP///wD///8A////AP///wD///9X/v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+/////1T///8A////AP///wD///8X/v7+9P7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7y////Ff///wD///8A/v7+hf7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/oL///8A////AP7+/tH+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7P////AP///wD+/v70/v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+8////wD///8A/v7+9P7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/vL///8A////AP7+/tH+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7O////AP///wD+/v6E/v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+gf///wD///8A////Fv7+/vP+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+8f///xT///8A////AP///wD///9U/v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+/////1H///8A////AP///wD///8A////AP///1T+/v7y/v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+8f///1H///8A////AP///wD///8A////AP///wD///8A////Ff7+/oL+/v7P/v7+8/7+/vL+/v7O/v7+gf///xT///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AA=="), "format": "RGBA8", @@ -84,9 +84,9 @@ data = { } [sub_resource type="ImageTexture" id="ImageTexture_ixgl8"] -image = SubResource("Image_ovy4l") +image = SubResource("Image_cliut") -[sub_resource type="Image" id="Image_f5r61"] +[sub_resource type="Image" id="Image_syfbe"] data = { "data": PackedByteArray("////AP///0D///9A////AP///wD///9A////QP///wD///8A////QP///0D///8A////AP///0D///9A////AP///wD///9A////QP///wD///8A////QP///0D///8A////AP///0D///9A////AP///wD///9A////QP///wD///8A////QP///0D///8A////AP///0D///9A////AP///wD///9A////QP///wD///8A////QP///0D///8A////AP///0D///9A////AP///wD///9A////QP///wD///8A////QP///0D///8A////AP///0D///9A////AA=="), "format": "RGBA8", @@ -96,7 +96,7 @@ data = { } [sub_resource type="ImageTexture" id="ImageTexture_c0nbj"] -image = SubResource("Image_f5r61") +image = SubResource("Image_syfbe") [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_3w7he"] content_margin_left = 4.0 @@ -136,7 +136,7 @@ border_color = Color(0.8, 0.8, 0.8, 0.498039) [sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_24uu1"] -[sub_resource type="Image" id="Image_bx6vr"] +[sub_resource type="Image" id="Image_g5125"] data = { "data": PackedByteArray("////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////ALOzs5mysrKmuLi4Ev///wD///8A////AP///wC4uLgSsrKyprKyspf///8A////ALKysqaysrLZsrKys7i4uBL///8A////AK+vrxOysrKzsrKy2bKysqX///8A////ALi4uBKxsbGzsrKy2bOzs7Svr68Tr6+vE7Ozs7SysrLZsbGxs7S0tBH///8A////AP///wC4uLgSsbGxs7KystmysrK1srKytbKystmxsbGztLS0Ef///wD///8A////AP///wD///8AuLi4ErGxsbOysrLZsrKy2bGxsbO0tLQR////AP///wD///8A////AP///wD///8A////ALi4uBKysrKlsrKypbS0tBH///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A"), "format": "RGBA8", @@ -146,7 +146,7 @@ data = { } [sub_resource type="ImageTexture" id="ImageTexture_e4hcg"] -image = SubResource("Image_bx6vr") +image = SubResource("Image_g5125") [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_02utr"] content_margin_left = 8.0 @@ -2361,7 +2361,7 @@ cache/0/25/0/kerning_overrides/48/12 = Vector2(0, 0) cache/0/25/0/kerning_overrides/24/12 = Vector2(0, 0) cache/0/25/0/kerning_overrides/25/0 = Vector2(0, 0) -[sub_resource type="Image" id="Image_85df2"] +[sub_resource type="Image" id="Image_qupbr"] data = { "data": PackedByteArray("////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8a////kv///73///+/////v////7////+/////v////7////+/////v////73///+Q////Gf///wD///8A////kv///7////+/////v////7////+/////v////7////+/////v////7////+/////v////5D///8A////AP///73///+/////v////7////+/////v////7////+/////v////7/t7e3D////v////7////+9////AP///wD///+/////v////7////+/////v////7////+/////v////7+xsbHRJSUl/LKystH///+/////v////wD///8A////v////7////+/////v////7////+/////v////7+wsLDRICAg/hoaGv9UVFTr////v////7////8A////AP///7////+/////v////7////+/////v////7+wsLDRICAg/hoaGv9OTk7t+Pj4wf///7////+/////AP///wD///+/////v/39/cDe3t7G////v////7+vr6/SICAg/hoaGv9PT0/t+Pj4wf///7////+/////v////wD///8A////v/39/cBaWlrqLS0t+dTU1Miurq7SICAg/hoaGv9PT0/t+Pj4wf///7////+/////v////7////8A////AP///7/o6OjENjY29hoaGv8rKyv6ICAg/hoaGv9RUVHt+Pj4wf///7////+/////v////7////+/////AP///wD///+/////v+Li4sU2Njb2Ghoa/xoaGv9RUVHt+Pj4wf///7////+/////v////7////+/////v////wD///8A////v////7////+/4uLixTY2NvZRUVHs+Pj4wf///7////+/////v////7////+/////v////7////8A////AP///73///+/////v////7/m5ubF+Pj4wf///7////+/////v////7////+/////v////7////+9////AP///wD///+Q////v////7////+/////v////7////+/////v////7////+/////v////7////+/////j////wD///8A////Gf///5D///+9////v////7////+/////v////7////+/////v////7////+9////j////xj///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AA=="), "format": "RGBA8", @@ -2371,9 +2371,9 @@ data = { } [sub_resource type="ImageTexture" id="ImageTexture_6kuxv"] -image = SubResource("Image_85df2") +image = SubResource("Image_qupbr") -[sub_resource type="Image" id="Image_60mtk"] +[sub_resource type="Image" id="Image_fck1o"] data = { "data": PackedByteArray("////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8N////YP///4j///+t////rf///4j///9f////C////wD///8A////AP///wD///8A////AP///wD///84////q8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/////6j///8z////AP///wD///8A////AP///wD///84////v8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/////vv///zL///8A////AP///wD///8M////q8bGxv/Gxsb/sLCw/1FRUf8rKyv/Kysr/1NTU/+xsbH/xsbG/8bGxv////+o////Cv///wD///8A////YcbGxv/Gxsb/sLCw/yUlJf8aGhr/Ghoa/xoaGv8aGhr/Jycn/7Ozs//Gxsb/xsbG/////2D///8A////AP///4nGxsb/xsbG/1FRUf8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv9WVlb/xsbG/8bGxv////+a////AP///wD///+uxsbG/8bGxv8rKyv/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Kysr/8bGxv/Gxsb/////tP///wD///8A////rcbGxv/Gxsb/Kysr/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/ywsLP/Gxsb/xsbG/////7T///8A////AP///4jGxsb/xsbG/1NTU/8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv9YWFj/xsbG/8bGxv////+Y////AP///wD///9fxsbG/8bGxv+ysrL/Jycn/xoaGv8aGhr/Ghoa/xoaGv8qKir/tbW1/8bGxv/Gxsb/////Xv///wD///8A////C////6nGxsb/xsbG/7Ozs/9WVlb/Kysr/ywsLP9YWFj/tbW1/8bGxv/Gxsb/////pf///wn///8A////AP///wD///80////vsbGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/////vf///y7///8A////AP///wD///8A////AP///zL///+oxsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/////pf///y7///8A////AP///wD///8A////AP///wD///8A////Cv///2D///+a////tP///7T///+Y////Xv///wn///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AA=="), "format": "RGBA8", @@ -2383,9 +2383,9 @@ data = { } [sub_resource type="ImageTexture" id="ImageTexture_88pq6"] -image = SubResource("Image_60mtk") +image = SubResource("Image_fck1o") -[sub_resource type="Image" id="Image_bwcpk"] +[sub_resource type="Image" id="Image_n1vg5"] data = { "data": PackedByteArray("////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wAqKioMGhoaQxoaGmkbGxt6GxsbehoaGmkbGxtCLi4uC////wD///8A////AP///wD///8A////AP///wAdHR0sGxsbehoaGoAaGhqAGhoagBoaGoAaGhqAGhoagBsbG3oeHh4q////AP///wD///8A////AP///wAdHR0sGhoagBoaGoAaGhqAGhoagBoaGoAaGhqAGhoagBoaGoAaGhqAGhoagB4eHir///8A////AP///wAqKioMGxsbehoaGoAaGhqAGhoagBoaGoAaGhqAGhoagBoaGoAaGhqAGhoagBoaGoAbGxt5Li4uC////wD///8AGhoaQxoaGoAaGhqAGhoagBoaGoAaGhqAGhoagBoaGoAaGhqAGhoagBoaGoAaGhqAGhoagBsbG0H///8A////ABoaGmkaGhqAGhoagBoaGoAaGhqAGhoagBoaGoAaGhqAGhoagBoaGoAaGhqAGhoagBoaGoAbGxto////AP///wAbGxt6GhoagBoaGoAaGhqAGhoagBoaGoAaGhqAGhoagBoaGoAaGhqAGhoagBoaGoAaGhqAGxsbev///wD///8AGxsbehoaGoAaGhqAGhoagBoaGoAaGhqAGhoagBoaGoAaGhqAGhoagBoaGoAaGhqAGhoagBsbG3n///8A////ABoaGmkaGhqAGhoagBoaGoAaGhqAGhoagBoaGoAaGhqAGhoagBoaGoAaGhqAGhoagBoaGoAbGxtn////AP///wAbGxtCGhoagBoaGoAaGhqAGhoagBoaGoAaGhqAGhoagBoaGoAaGhqAGhoagBoaGoAaGhqAGxsbQf///wD///8ALi4uCxsbG3oaGhqAGhoagBoaGoAaGhqAGhoagBoaGoAaGhqAGhoagBoaGoAaGhqAGxsbeTMzMwr///8A////AP///wAeHh4qGhoagBoaGoAaGhqAGhoagBoaGoAaGhqAGhoagBoaGoAaGhqAGhoagB8fHyn///8A////AP///wD///8A////AB4eHiobGxt5GhoagBoaGoAaGhqAGhoagBoaGoAaGhqAGxsbeR8fHyn///8A////AP///wD///8A////AP///wD///8ALi4uCxsbG0EbGxtoGxsbehsbG3kbGxtnGxsbQTMzMwr///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AA=="), "format": "RGBA8", @@ -2395,9 +2395,9 @@ data = { } [sub_resource type="ImageTexture" id="ImageTexture_6w8po"] -image = SubResource("Image_bwcpk") +image = SubResource("Image_n1vg5") -[sub_resource type="Image" id="Image_aw33v"] +[sub_resource type="Image" id="Image_qblxd"] data = { "data": PackedByteArray("////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8As7OzHrKysmeysrIu////AP///wD///8A////AP///wC1tbUfsrKyc7KysnOwsLAw////AP///wD///8A////AP///wC1tbUwsrKyc7KysnOwsLAw////AP///wD///8A////AP///wCxsbExsrKyc7KysnOtra0f////AP///wD///8A////ALGxsTGysrJzsrKyc7W1tR////8A////AP///wC1tbUwsrKyc7KysnOzs7Mv////AP///wD///8AtbW1H7KysnOysrJzs7OzL////wD///8A////AP///wCzs7MesrKyZ7Kysi7///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wA="), "format": "RGBA8", @@ -2407,9 +2407,9 @@ data = { } [sub_resource type="ImageTexture" id="ImageTexture_b84f3"] -image = SubResource("Image_aw33v") +image = SubResource("Image_qblxd") -[sub_resource type="Image" id="Image_wncmi"] +[sub_resource type="Image" id="Image_k3fou"] data = { "data": PackedByteArray("////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AsrKyLrKysmewsLAd////AP///wD///8A////ALW1tTCysrJzsrKyc7W1tR////8A////AP///wC1tbUwsrKyc7KysnO1tbUw////AP///wD///8AtbW1H7KysnOysrJzsbGxMf///wD///8A////AP///wC1tbUfsrKyc7KysnOxsbEx////AP///wD///8A////AP///wCwsLAwsrKyc7KysnO1tbUw////AP///wD///8A////AP///wCwsLAwsrKyc7KysnOtra0f////AP///wD///8A////AP///wCysrIusrKyZ7Ozsx7///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wA="), "format": "RGBA8", @@ -2419,9 +2419,9 @@ data = { } [sub_resource type="ImageTexture" id="ImageTexture_tplxy"] -image = SubResource("Image_wncmi") +image = SubResource("Image_k3fou") -[sub_resource type="Image" id="Image_tqtbr"] +[sub_resource type="Image" id="Image_h4rkm"] data = { "data": PackedByteArray("////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wAeHh4RGhoaYhoaGn8aGhqAGhoagBoaGoAaGhqAGhoagBoaGoAaGhqAGhoagBoaGn8aGhphHh4eEf///wD///8AGhoaYhoaGoAaGhqAGhoagBoaGoAaGhqAGhoagBoaGoAaGhqAGhoagBoaGoAaGhqAGhoagBoaGmH///8A////ABoaGn8aGhqAGhoagBoaGoAaGhqAGhoagBoaGoAaGhqAGhoagBoaGoAaGhqAGhoagBoaGoAaGhp/////AP///wAaGhqAGhoagBoaGoAaGhqAGhoagBoaGoAaGhqAGhoagBoaGoAaGhqAGhoagBoaGoAaGhqAGhoagP///wD///8AGhoagBoaGoAaGhqAGhoagBoaGoAaGhqAGhoagBoaGoAaGhqAGhoagBoaGoAaGhqAGhoagBoaGoD///8A////ABoaGoAaGhqAGhoagBoaGoAaGhqAGhoagBoaGoAaGhqAGhoagBoaGoAaGhqAGhoagBoaGoAaGhqA////AP///wAaGhqAGhoagBoaGoAaGhqAGhoagBoaGoAaGhqAGhoagBoaGoAaGhqAGhoagBoaGoAaGhqAGhoagP///wD///8AGhoagBoaGoAaGhqAGhoagBoaGoAaGhqAGhoagBoaGoAaGhqAGhoagBoaGoAaGhqAGhoagBoaGoD///8A////ABoaGoAaGhqAGhoagBoaGoAaGhqAGhoagBoaGoAaGhqAGhoagBoaGoAaGhqAGhoagBoaGoAaGhqA////AP///wAaGhqAGhoagBoaGoAaGhqAGhoagBoaGoAaGhqAGhoagBoaGoAaGhqAGhoagBoaGoAaGhqAGhoagP///wD///8AGhoagBoaGoAaGhqAGhoagBoaGoAaGhqAGhoagBoaGoAaGhqAGhoagBoaGoAaGhqAGhoagBoaGoD///8A////ABoaGn8aGhqAGhoagBoaGoAaGhqAGhoagBoaGoAaGhqAGhoagBoaGoAaGhqAGhoagBoaGoAaGhp/////AP///wAaGhphGhoagBoaGoAaGhqAGhoagBoaGoAaGhqAGhoagBoaGoAaGhqAGhoagBoaGoAaGhqAGhoaYP///wD///8AHh4eERoaGmEaGhp/GhoagBoaGoAaGhqAGhoagBoaGoAaGhqAGhoagBoaGoAaGhp/GhoaYCAgIBD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AA=="), "format": "RGBA8", @@ -2431,7 +2431,7 @@ data = { } [sub_resource type="ImageTexture" id="ImageTexture_7exbn"] -image = SubResource("Image_tqtbr") +image = SubResource("Image_h4rkm") [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_rdd64"] content_margin_left = 4.0 @@ -4779,7 +4779,7 @@ content_margin_top = 0.0 content_margin_right = 0.0 content_margin_bottom = 0.0 -[sub_resource type="Image" id="Image_m33xj"] +[sub_resource type="Image" id="Image_seuat"] data = { "data": PackedByteArray("////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////YP///2H///8A////AP///wD///8A////AP///wD///8A////AP///2D///9h////AP///wD///8A////YP///7////+/////Yf///wD///8A////AP///wD///8A////AP///2D///+/////v////2H///8A////AP///2H///+/////v////7////9h////AP///wD///8A////AP///2D///+/////v////7////9g////AP///wD///8A////Yf///7////+/////v////2H///8A////AP///2D///+/////v////7////9g////AP///wD///8A////AP///wD///9h////v////7////+/////Yf///2D///+/////v////7////9g////AP///wD///8A////AP///wD///8A////AP///2H///+/////v////7////+/////v////7////9g////AP///wD///8A////AP///wD///8A////AP///wD///8A////Yf///7////+/////v////7////9g////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///2D///+/////v////7////+/////Yf///wD///8A////AP///wD///8A////AP///wD///8A////AP///2D///+/////v////7////+/////v////7////9h////AP///wD///8A////AP///wD///8A////AP///2D///+/////v////7////9g////Yf///7////+/////v////2H///8A////AP///wD///8A////AP///2D///+/////v////7////9g////AP///wD///9h////v////7////+/////Yf///wD///8A////AP///2D///+/////v////7////9g////AP///wD///8A////AP///2H///+/////v////7////9h////AP///wD///9h////v////7////9g////AP///wD///8A////AP///wD///8A////Yf///7////+/////YP///wD///8A////AP///2H///9g////AP///wD///8A////AP///wD///8A////AP///wD///9h////YP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AA=="), "format": "RGBA8", @@ -4789,9 +4789,9 @@ data = { } [sub_resource type="ImageTexture" id="ImageTexture_4kr6m"] -image = SubResource("Image_m33xj") +image = SubResource("Image_seuat") -[sub_resource type="Image" id="Image_6hmmv"] +[sub_resource type="Image" id="Image_dyv80"] data = { "data": PackedByteArray("////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////Av///07+//6I/v/+rf7//q3+//6H/P/8Tf///wL///8A////AP///wD///8A////AP///wD///8A////Ff///5D+//6//v/+v/7//r/+//6//v/+v/7//r/+//6P////FP///wD///8A////AP///wD///8A////Av///5D+//6//v/+v/7//r/u8O7Ce31734aGhtz+//6//v/+v/7//o////8C////AP///wD///8A////AP///07+//6//v/+v/7//r/u8O7CdHV04lxcXOl7fXvf/v/+v/7//r/+//6//P/8TP///wD///8A////AP///wD+//6I/v/+v/7//r/u8O7CdHV04lxcXOl0dXTi7vDuwv7//r/+//6//v/+v////4X///8A////AP///wD///8A/v/+rf7//r/+//6/e31731xcXOlzdHPi7vDuwv7//r/+//6//v/+v/7//r/+//6t////AP///wD///8A////AP7//q3+//6//v/+v3t9e99cXFzpc3Rz4u3u7cP+//6//v/+v/7//r/+//6//v/+rP///wD///8A////AP///wD+//6H/v/+v/7//r/u8O7Cc3Rz4lxcXOlzdHPi7vDuwv7//r/+//6//v/+v////4X///8A////AP///wD///8A/P/8Tf7//r/+//6//v/+v+7w7sJzdHPiXFxc6X1+fd/+//6//v/+v/7//r////9L////AP///wD///8A////AP///wL+//6P/v/+v/7//r/+//6/7vDuwn1+fd+FhYXc/v/+v/7//r/+//6O////Av///wD///8A////AP///wD///8A////FP7//o/+//6//v/+v/7//r/+//6//v/+v/7//r/+//6O////E////wD///8A////AP///wD///8A////AP///wD///8C/P/8TP///4X+//6t/v/+rP///4X///9L////Av///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AA=="), "format": "RGBA8", @@ -4801,9 +4801,9 @@ data = { } [sub_resource type="ImageTexture" id="ImageTexture_u0wr7"] -image = SubResource("Image_6hmmv") +image = SubResource("Image_dyv80") -[sub_resource type="Image" id="Image_bb2o8"] +[sub_resource type="Image" id="Image_r4ba1"] data = { "data": PackedByteArray("////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////Av///2j+//61/v/+5/7//uf+//60////Zv///wL///8A////AP///wD///8A////AP///wD///8A////G/7//sH+//7//v/+//7//v/+//7//v/+//7//v/+//6/////Gv///wD///8A////AP///wD///8A////Av7//sH+//7//v/+//7//v/s7ez/UFBQ/2BgYP/+//7//v/+//7//r////8C////AP///wD///8A////AP///2j+//7//v/+//7//v/s7ez/QkJC/xoaGv9QUFD//v/+//7//v/+//7/////Zf///wD///8A////AP///wD+//61/v/+//7//v/s7ez/QkJC/xoaGv9CQkL/7O3s//7//v/+//7//v/+//7//rL///8A////AP///wD///8A/v/+5/7//v/+//7/UFBQ/xoaGv9BQUH/7O3s//7//v/+//7//v/+//7//v/+//7n////AP///wD///8A////AP7//uf+//7//v/+/1BQUP8aGhr/QUFB/+vs6//+//7//v/+//7//v/+//7//v/+5v///wD///8A////AP///wD+//60/v/+//7//v/s7ez/Q0ND/xoaGv9BQUH/7O3s//7//v/+//7//v/+//7//rL///8A////AP///wD///8A////Zv7//v/+//7//v/+/+zt7P9DQ0P/Ghoa/1FRUf/+//7//v/+//7//v////9k////AP///wD///8A////AP///wL+//6//v/+//7//v/+//7/7O3s/1FRUf9fX1///v/+//7//v/+//69////Av///wD///8A////AP///wD///8A////Gv7//r/+//7//v/+//7//v/+//7//v/+//7//v/+//69////Gf///wD///8A////AP///wD///8A////AP///wD///8C////Zf7//rL+//7n/v/+5v7//rL///9k////Av///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AA=="), "format": "RGBA8", @@ -4813,9 +4813,9 @@ data = { } [sub_resource type="ImageTexture" id="ImageTexture_w35dj"] -image = SubResource("Image_bb2o8") +image = SubResource("Image_r4ba1") -[sub_resource type="Image" id="Image_mtnt7"] +[sub_resource type="Image" id="Image_kivkl"] data = { "data": PackedByteArray("////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A09PT/9PT0//T09P/09PT/9PT0//T09P/////AP///wD///8A////AP///wD///8A////AP///wD///8A////ANPT0//T09P/09PT/9PT0//T09P/09PT/////wD///8A////AP///wD///8A////AP///wD///8A////AP///wDT09P/09PT/9PT0//T09P/09PT/9PT0/////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A09PT/9PT0//T09P/09PT/9PT0//T09P/////AP///wD///8A////AP///wD///8A////AP///wD///8A////ANPT0//T09P/09PT/9PT0//T09P/09PT/////wD///8A////AP///wD///8A////AP///wD///8A////AP///wDT09P/09PT/9PT0//T09P/09PT/9PT0/////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A09PT/9PT0//T09P/09PT/9PT0//T09P/////AP///wD///8A////AP///wD///8A////AP///wD///8A////ANPT0//T09P/09PT/9PT0//T09P/09PT/////wD///8A////AP///wD///8A////AP///wD///8A////AP///wDT09P/09PT/9PT0//T09P/09PT/9PT0/////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A09PT/9PT0//T09P/09PT/9PT0//T09P/////AP///wD///8A////AP///wD///8A////AP///wD///8A////ANPT0//T09P/09PT/9PT0//T09P/09PT/////wD///8A////AP///wD///8A////AP///wD///8A////AP///wDT09P/09PT/9PT0//T09P/09PT/9PT0/////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A09PT/9PT0//T09P/09PT/9PT0//T09P/////AP///wD///8A////AP///wD///8A////AP///wD///8A////ANPT0//T09P/09PT/9PT0//T09P/09PT/////wD///8A////AP///wD///8A////AP///wD///8A////AP///wDT09P/09PT/9PT0//T09P/09PT/9PT0/////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A09PT/9PT0//T09P/09PT/9PT0//T09P/////AP///wD///8A////AP///wD///8A////AP///wD///8A////ANPT0//T09P/09PT/9PT0//T09P/09PT/////wD///8A////AP///wD///8A////AP///wD///8A////AP///wDT09P/09PT/9PT0//T09P/09PT/9PT0/////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A09PT/9PT0//T09P/09PT/9PT0//T09P/////AP///wD///8A////AP///wD///8A////AP///wD///8A////ANPT0//T09P/09PT/9PT0//T09P/09PT/////wD///8A////AP///wD///8A////AP///wD///8A////AP///wDT09P/09PT/9PT0//T09P/09PT/9PT0/////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A09PT/9PT0//T09P/09PT/9PT0//T09P/////AP///wD///8A////AP///wD///8A////AP///wD///8A////ANPT0//T09P/09PT/9PT0//T09P/09PT/////wD///8A////AP///wD///8A////AP///wD///8A////AP///wDT09P/09PT/9PT0//T09P/09PT/9PT0/////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A09PT/9PT0//T09P/09PT/9PT0//T09P/////AP///wD///8A////AP///wD///8A////AP///wD///8A////ANPT0//T09P/09PT/9PT0//T09P/09PT/////wD///8A////AP///wD///8A////AP///wD///8A////AP///wDT09P/09PT/9PT0//T09P/09PT/9PT0/////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A09PT/9PT0//T09P/09PT/9PT0//T09P/////AP///wD///8A////AP///wD///8A////AP///wD///8A////ANPT0//T09P/09PT/9PT0//T09P/09PT/////wD///8A////AP///wD///8A////AP///wD///8A////AP///wDT09P/09PT/9PT0//T09P/09PT/9PT0/////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wA="), "format": "RGBA8", @@ -4825,9 +4825,9 @@ data = { } [sub_resource type="ImageTexture" id="ImageTexture_2mlmu"] -image = SubResource("Image_mtnt7") +image = SubResource("Image_kivkl") -[sub_resource type="Image" id="Image_1p4h3"] +[sub_resource type="Image" id="Image_o6nws"] data = { "data": PackedByteArray("////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////Av///07+//6I/v/+rf7//q3+//6H/P/8Tf///wL///8A////AP///wD///8A////AP///wD///8A////Ff///5D+//6//v/+v/7//r/+//6//v/+v/7//r/+//6P////FP///wD///8A////AP///wD///8A////Av///5D+//6//v/+v4WFhdx7fXvf7vDuwv7//r/+//6//v/+v/7//o////8C////AP///wD///8A////AP///07+//6//v/+v/7//r97fXvfXFxc6XN0c+Lu8O7C/v/+v/7//r/+//6//P/8TP///wD///8A////AP///wD+//6I/v/+v/7//r/+//6/7vDuwnN0c+JcXFzpc3Rz4u7w7sL+//6//v/+v////4X///8A////AP///wD///8A/v/+rf7//r/+//6//v/+v/7//r/t7u3Dc3Rz4lxcXOl9fn3f/v/+v/7//r/+//6t////AP///wD///8A////AP7//q3+//6//v/+v/7//r/+//6/7e7tw3N0c+JcXFzpfX593/7//r/+//6//v/+rP///wD///8A////AP///wD+//6H/v/+v/7//r/+//6/7vDuwnN0c+JcXFzpc3Rz4vDx8ML+//6//v/+v////4X///8A////AP///wD///8A/P/8Tf7//r/+//6//v/+v3t9e99cXFzpc3Rz4vDx8ML+//6//v/+v/7//r////9L////AP///wD///8A////AP///wL+//6P/v/+v/7//r+GhobcfX593/Dx8ML+//6//v/+v/7//r/+//6O////Av///wD///8A////AP///wD///8A////FP7//o/+//6//v/+v/7//r/+//6//v/+v/7//r/+//6O////E////wD///8A////AP///wD///8A////AP///wD///8C/P/8TP///4X+//6t/v/+rP///4X///9L////Av///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AA=="), "format": "RGBA8", @@ -4837,9 +4837,9 @@ data = { } [sub_resource type="ImageTexture" id="ImageTexture_5ar1i"] -image = SubResource("Image_1p4h3") +image = SubResource("Image_o6nws") -[sub_resource type="Image" id="Image_60776"] +[sub_resource type="Image" id="Image_bcdra"] data = { "data": PackedByteArray("////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////Av///2j+//61/v/+5/7//uf+//60////Zv///wL///8A////AP///wD///8A////AP///wD///8A////G/7//sH+//7//v/+//7//v/+//7//v/+//7//v/+//6/////Gv///wD///8A////AP///wD///8A////Av7//sH+//7//v/+/15eXv9QUFD/7O3s//7//v/+//7//v/+//7//r////8C////AP///wD///8A////AP///2j+//7//v/+//7//v9QUFD/Ghoa/0NDQ//s7ez//v/+//7//v/+//7/////Zf///wD///8A////AP///wD+//61/v/+//7//v/+//7/7O3s/0FBQf8aGhr/Q0ND/+zt7P/+//7//v/+//7//rL///8A////AP///wD///8A/v/+5/7//v/+//7//v/+//7//v/r7Ov/QUFB/xoaGv9RUVH//v/+//7//v/+//7n////AP///wD///8A////AP7//uf+//7//v/+//7//v/+//7/6+zr/0FBQf8aGhr/UVFR//7//v/+//7//v/+5v///wD///8A////AP///wD+//60/v/+//7//v/+//7/7O3s/0FBQf8aGhr/Q0ND/+3u7f/+//7//v/+//7//rL///8A////AP///wD///8A////Zv7//v/+//7//v/+/1BQUP8aGhr/Q0ND/+3u7f/+//7//v/+//7//v////9k////AP///wD///8A////AP///wL+//6//v/+//7//v9gYGD/UVFR/+3u7f/+//7//v/+//7//v/+//69////Av///wD///8A////AP///wD///8A////Gv7//r/+//7//v/+//7//v/+//7//v/+//7//v/+//69////Gf///wD///8A////AP///wD///8A////AP///wD///8C////Zf7//rL+//7n/v/+5v7//rL///9k////Av///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AA=="), "format": "RGBA8", @@ -4849,7 +4849,7 @@ data = { } [sub_resource type="ImageTexture" id="ImageTexture_rb2rd"] -image = SubResource("Image_60776") +image = SubResource("Image_bcdra") [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_fuhfi"] content_margin_left = 4.0 @@ -4926,7 +4926,7 @@ border_width_right = 1 border_color = Color(0.175, 0.175, 0.175, 1) corner_detail = 1 -[sub_resource type="Image" id="Image_4cae0"] +[sub_resource type="Image" id="Image_4gkaw"] data = { "data": PackedByteArray("////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////Av///07+//6I/v/+rf7//q3+//6H/P/8Tf///wL///8A////AP///wD///8A////AP///wD///8A////Ff///5D+//6//v/+v/7//r/+//6//v/+v/7//r/+//6P////FP///wD///8A////AP///wD///8A////Av///5D+//6//v/+v/7//r/u8O7Ce31734aGhtz+//6//v/+v/7//o////8C////AP///wD///8A////AP///07+//6//v/+v/7//r/u8O7CdHV04lxcXOl7fXvf/v/+v/7//r/+//6//P/8TP///wD///8A////AP///wD+//6I/v/+v/7//r/u8O7CdHV04lxcXOl0dXTi7vDuwv7//r/+//6//v/+v////4X///8A////AP///wD///8A/v/+rf7//r/+//6/e31731xcXOlzdHPi7vDuwv7//r/+//6//v/+v/7//r/+//6t////AP///wD///8A////AP7//q3+//6//v/+v3t9e99cXFzpc3Rz4u3u7cP+//6//v/+v/7//r/+//6//v/+rP///wD///8A////AP///wD+//6H/v/+v/7//r/u8O7Cc3Rz4lxcXOlzdHPi7vDuwv7//r/+//6//v/+v////4X///8A////AP///wD///8A/P/8Tf7//r/+//6//v/+v+7w7sJzdHPiXFxc6X1+fd/+//6//v/+v/7//r////9L////AP///wD///8A////AP///wL+//6P/v/+v/7//r/+//6/7vDuwn1+fd+FhYXc/v/+v/7//r/+//6O////Av///wD///8A////AP///wD///8A////FP7//o/+//6//v/+v/7//r/+//6//v/+v/7//r/+//6O////E////wD///8A////AP///wD///8A////AP///wD///8C/P/8TP///4X+//6t/v/+rP///4X///9L////Av///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AA=="), "format": "RGBA8", @@ -4936,9 +4936,9 @@ data = { } [sub_resource type="ImageTexture" id="ImageTexture_yjlqb"] -image = SubResource("Image_4cae0") +image = SubResource("Image_4gkaw") -[sub_resource type="Image" id="Image_1n2lh"] +[sub_resource type="Image" id="Image_k7a2k"] data = { "data": PackedByteArray("////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////Av///2j+//61/v/+5/7//uf+//60////Zv///wL///8A////AP///wD///8A////AP///wD///8A////G/7//sH+//7//v/+//7//v/+//7//v/+//7//v/+//6/////Gv///wD///8A////AP///wD///8A////Av7//sH+//7//v/+//7//v/s7ez/UFBQ/2BgYP/+//7//v/+//7//r////8C////AP///wD///8A////AP///2j+//7//v/+//7//v/s7ez/QkJC/xoaGv9QUFD//v/+//7//v/+//7/////Zf///wD///8A////AP///wD+//61/v/+//7//v/s7ez/QkJC/xoaGv9CQkL/7O3s//7//v/+//7//v/+//7//rL///8A////AP///wD///8A/v/+5/7//v/+//7/UFBQ/xoaGv9BQUH/7O3s//7//v/+//7//v/+//7//v/+//7n////AP///wD///8A////AP7//uf+//7//v/+/1BQUP8aGhr/QUFB/+vs6//+//7//v/+//7//v/+//7//v/+5v///wD///8A////AP///wD+//60/v/+//7//v/s7ez/Q0ND/xoaGv9BQUH/7O3s//7//v/+//7//v/+//7//rL///8A////AP///wD///8A////Zv7//v/+//7//v/+/+zt7P9DQ0P/Ghoa/1FRUf/+//7//v/+//7//v////9k////AP///wD///8A////AP///wL+//6//v/+//7//v/+//7/7O3s/1FRUf9fX1///v/+//7//v/+//69////Av///wD///8A////AP///wD///8A////Gv7//r/+//7//v/+//7//v/+//7//v/+//7//v/+//69////Gf///wD///8A////AP///wD///8A////AP///wD///8C////Zf7//rL+//7n/v/+5v7//rL///9k////Av///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AA=="), "format": "RGBA8", @@ -4948,9 +4948,9 @@ data = { } [sub_resource type="ImageTexture" id="ImageTexture_8rhry"] -image = SubResource("Image_1n2lh") +image = SubResource("Image_k7a2k") -[sub_resource type="Image" id="Image_dd8ow"] +[sub_resource type="Image" id="Image_4srxl"] data = { "data": PackedByteArray("////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A09PT/9PT0//T09P/09PT/9PT0//T09P/////AP///wD///8A////AP///wD///8A////AP///wD///8A////ANPT0//T09P/09PT/9PT0//T09P/09PT/////wD///8A////AP///wD///8A////AP///wD///8A////AP///wDT09P/09PT/9PT0//T09P/09PT/9PT0/////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A09PT/9PT0//T09P/09PT/9PT0//T09P/////AP///wD///8A////AP///wD///8A////AP///wD///8A////ANPT0//T09P/09PT/9PT0//T09P/09PT/////wD///8A////AP///wD///8A////AP///wD///8A////AP///wDT09P/09PT/9PT0//T09P/09PT/9PT0/////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A09PT/9PT0//T09P/09PT/9PT0//T09P/////AP///wD///8A////AP///wD///8A////AP///wD///8A////ANPT0//T09P/09PT/9PT0//T09P/09PT/////wD///8A////AP///wD///8A////AP///wD///8A////AP///wDT09P/09PT/9PT0//T09P/09PT/9PT0/////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A09PT/9PT0//T09P/09PT/9PT0//T09P/////AP///wD///8A////AP///wD///8A////AP///wD///8A////ANPT0//T09P/09PT/9PT0//T09P/09PT/////wD///8A////AP///wD///8A////AP///wD///8A////AP///wDT09P/09PT/9PT0//T09P/09PT/9PT0/////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A09PT/9PT0//T09P/09PT/9PT0//T09P/////AP///wD///8A////AP///wD///8A////AP///wD///8A////ANPT0//T09P/09PT/9PT0//T09P/09PT/////wD///8A////AP///wD///8A////AP///wD///8A////AP///wDT09P/09PT/9PT0//T09P/09PT/9PT0/////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A09PT/9PT0//T09P/09PT/9PT0//T09P/////AP///wD///8A////AP///wD///8A////AP///wD///8A////ANPT0//T09P/09PT/9PT0//T09P/09PT/////wD///8A////AP///wD///8A////AP///wD///8A////AP///wDT09P/09PT/9PT0//T09P/09PT/9PT0/////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A09PT/9PT0//T09P/09PT/9PT0//T09P/////AP///wD///8A////AP///wD///8A////AP///wD///8A////ANPT0//T09P/09PT/9PT0//T09P/09PT/////wD///8A////AP///wD///8A////AP///wD///8A////AP///wDT09P/09PT/9PT0//T09P/09PT/9PT0/////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A09PT/9PT0//T09P/09PT/9PT0//T09P/////AP///wD///8A////AP///wD///8A////AP///wD///8A////ANPT0//T09P/09PT/9PT0//T09P/09PT/////wD///8A////AP///wD///8A////AP///wD///8A////AP///wDT09P/09PT/9PT0//T09P/09PT/9PT0/////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A09PT/9PT0//T09P/09PT/9PT0//T09P/////AP///wD///8A////AP///wD///8A////AP///wD///8A////ANPT0//T09P/09PT/9PT0//T09P/09PT/////wD///8A////AP///wD///8A////AP///wD///8A////AP///wDT09P/09PT/9PT0//T09P/09PT/9PT0/////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A09PT/9PT0//T09P/09PT/9PT0//T09P/////AP///wD///8A////AP///wD///8A////AP///wD///8A////ANPT0//T09P/09PT/9PT0//T09P/09PT/////wD///8A////AP///wD///8A////AP///wD///8A////AP///wDT09P/09PT/9PT0//T09P/09PT/9PT0/////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wA="), "format": "RGBA8", @@ -4960,9 +4960,9 @@ data = { } [sub_resource type="ImageTexture" id="ImageTexture_jlpcd"] -image = SubResource("Image_dd8ow") +image = SubResource("Image_4srxl") -[sub_resource type="Image" id="Image_q3lde"] +[sub_resource type="Image" id="Image_doq6u"] data = { "data": PackedByteArray("////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////Av///07+//6I/v/+rf7//q3+//6H/P/8Tf///wL///8A////AP///wD///8A////AP///wD///8A////Ff///5D+//6//v/+v/7//r/+//6//v/+v/7//r/+//6P////FP///wD///8A////AP///wD///8A////Av///5D+//6//v/+v4WFhdx7fXvf7vDuwv7//r/+//6//v/+v/7//o////8C////AP///wD///8A////AP///07+//6//v/+v/7//r97fXvfXFxc6XN0c+Lu8O7C/v/+v/7//r/+//6//P/8TP///wD///8A////AP///wD+//6I/v/+v/7//r/+//6/7vDuwnN0c+JcXFzpc3Rz4u7w7sL+//6//v/+v////4X///8A////AP///wD///8A/v/+rf7//r/+//6//v/+v/7//r/t7u3Dc3Rz4lxcXOl9fn3f/v/+v/7//r/+//6t////AP///wD///8A////AP7//q3+//6//v/+v/7//r/+//6/7e7tw3N0c+JcXFzpfX593/7//r/+//6//v/+rP///wD///8A////AP///wD+//6H/v/+v/7//r/+//6/7vDuwnN0c+JcXFzpc3Rz4vDx8ML+//6//v/+v////4X///8A////AP///wD///8A/P/8Tf7//r/+//6//v/+v3t9e99cXFzpc3Rz4vDx8ML+//6//v/+v/7//r////9L////AP///wD///8A////AP///wL+//6P/v/+v/7//r+GhobcfX593/Dx8ML+//6//v/+v/7//r/+//6O////Av///wD///8A////AP///wD///8A////FP7//o/+//6//v/+v/7//r/+//6//v/+v/7//r/+//6O////E////wD///8A////AP///wD///8A////AP///wD///8C/P/8TP///4X+//6t/v/+rP///4X///9L////Av///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AA=="), "format": "RGBA8", @@ -4972,9 +4972,9 @@ data = { } [sub_resource type="ImageTexture" id="ImageTexture_bv4we"] -image = SubResource("Image_q3lde") +image = SubResource("Image_doq6u") -[sub_resource type="Image" id="Image_hoes6"] +[sub_resource type="Image" id="Image_sx3et"] data = { "data": PackedByteArray("////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////Av///2j+//61/v/+5/7//uf+//60////Zv///wL///8A////AP///wD///8A////AP///wD///8A////G/7//sH+//7//v/+//7//v/+//7//v/+//7//v/+//6/////Gv///wD///8A////AP///wD///8A////Av7//sH+//7//v/+/15eXv9QUFD/7O3s//7//v/+//7//v/+//7//r////8C////AP///wD///8A////AP///2j+//7//v/+//7//v9QUFD/Ghoa/0NDQ//s7ez//v/+//7//v/+//7/////Zf///wD///8A////AP///wD+//61/v/+//7//v/+//7/7O3s/0FBQf8aGhr/Q0ND/+zt7P/+//7//v/+//7//rL///8A////AP///wD///8A/v/+5/7//v/+//7//v/+//7//v/r7Ov/QUFB/xoaGv9RUVH//v/+//7//v/+//7n////AP///wD///8A////AP7//uf+//7//v/+//7//v/+//7/6+zr/0FBQf8aGhr/UVFR//7//v/+//7//v/+5v///wD///8A////AP///wD+//60/v/+//7//v/+//7/7O3s/0FBQf8aGhr/Q0ND/+3u7f/+//7//v/+//7//rL///8A////AP///wD///8A////Zv7//v/+//7//v/+/1BQUP8aGhr/Q0ND/+3u7f/+//7//v/+//7//v////9k////AP///wD///8A////AP///wL+//6//v/+//7//v9gYGD/UVFR/+3u7f/+//7//v/+//7//v/+//69////Av///wD///8A////AP///wD///8A////Gv7//r/+//7//v/+//7//v/+//7//v/+//7//v/+//69////Gf///wD///8A////AP///wD///8A////AP///wD///8C////Zf7//rL+//7n/v/+5v7//rL///9k////Av///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AA=="), "format": "RGBA8", @@ -4984,9 +4984,9 @@ data = { } [sub_resource type="ImageTexture" id="ImageTexture_mh47j"] -image = SubResource("Image_hoes6") +image = SubResource("Image_sx3et") -[sub_resource type="Image" id="Image_s2g8h"] +[sub_resource type="Image" id="Image_dagf6"] data = { "data": PackedByteArray("////AP///wD///8A////AP///wD///8AtbW1H7Ozs2Szs7NktbW1H////wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////ALOzs2SysrJzsrKyc7KysmP///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wCzs7NksrKyc7KysnOxsbFi////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AtbW1H7KysmOysrJjsLCwHf///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AtbW1H7Ozs2Szs7NktbW1H////wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////ALOzs2SysrJzsrKyc7KysmP///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wCzs7NksrKyc7KysnOxsbFi////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AtbW1H7KysmOysrJjs7OzHv///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AtbW1H7Ozs2SysrJjs7OzHv///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////ALOzs2SysrJzsrKyc7S0tGL///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wCzs7NksrKyc7KysnOxsbFi////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AtbW1H7KysmOysrJjs7OzHv///wD///8A////AP///wD///8A////AA=="), "format": "RGBA8", @@ -4996,9 +4996,9 @@ data = { } [sub_resource type="ImageTexture" id="ImageTexture_xdpx5"] -image = SubResource("Image_s2g8h") +image = SubResource("Image_dagf6") -[sub_resource type="Image" id="Image_26qyk"] +[sub_resource type="Image" id="Image_t61ev"] data = { "data": PackedByteArray("////AP///wD///8A////AP///wD///8Atra2LbOzs5Czs7OQsLCwLf///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////ALOzs5CysrKmsrKyprOzs4////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wCzs7OQsrKyprKysqazs7ON////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AsLCwLbOzs4+zs7OPtbW1Kf///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8Atra2LbOzs5Czs7OQsLCwLf///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////ALOzs5CysrKmsrKyprOzs4////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wCzs7OQsrKyprKysqazs7ON////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AsLCwLbOzs4+zs7OPsrKyK////wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8Atra2LbOzs5Czs7OPsrKyK////wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////ALOzs5CysrKmsrKyprKyso7///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wCzs7OQsrKyprKysqazs7ON////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AsLCwLbOzs4+zs7OPsrKyK////wD///8A////AP///wD///8A////AA=="), "format": "RGBA8", @@ -5008,7 +5008,7 @@ data = { } [sub_resource type="ImageTexture" id="ImageTexture_npt66"] -image = SubResource("Image_26qyk") +image = SubResource("Image_t61ev") [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_daxga"] bg_color = Color(0, 0, 0, 0.235294) diff --git a/addons/cogito/cogito_main.gd b/addons/cogito/cogito_main.gd index f22cf7fa..7b62274d 100644 --- a/addons/cogito/cogito_main.gd +++ b/addons/cogito/cogito_main.gd @@ -2,7 +2,7 @@ extends Node @export var entered_string : String = "This is a test string." -@export var is_logging: bool = false +@export var is_logging: bool ### Save Game Settings @export var scene_state_prefix : String = "COGITO_scene_state_" @@ -59,6 +59,10 @@ func _on_btn_documentation_pressed() -> void: OS.shell_open("https://cogito.readthedocs.io/en/latest/index.html") +func _on_btn_video_tutorials_pressed() -> void: + OS.shell_open("https://cogito.readthedocs.io/en/latest/tutorials.html") + + func _on_btn_reset_input_map_pressed() -> void: var keyboard_key = InputEventKey.new() diff --git a/addons/cogito/cogito_main_panel.tscn b/addons/cogito/cogito_main_panel.tscn index df862696..089aba0d 100644 --- a/addons/cogito/cogito_main_panel.tscn +++ b/addons/cogito/cogito_main_panel.tscn @@ -45,6 +45,7 @@ layout_mode = 2 [node name="CheckBox_PrintLogs" type="CheckBox" parent="TabContainer/General Settings/HBoxContainer/VBoxContainer"] layout_mode = 2 +tooltip_text = "When active, Cogito will log debugging info in the output." text = "Print logs" [node name="SaveSystem" type="PanelContainer" parent="TabContainer/General Settings/HBoxContainer/VBoxContainer"] @@ -61,6 +62,7 @@ horizontal_alignment = 1 [node name="HBoxContainer2" type="HBoxContainer" parent="TabContainer/General Settings/HBoxContainer/VBoxContainer/SaveSystem/VBoxContainer"] layout_mode = 2 +tooltip_text = "This string is added to player state save files before the slot name." [node name="Label" type="Label" parent="TabContainer/General Settings/HBoxContainer/VBoxContainer/SaveSystem/VBoxContainer/HBoxContainer2"] layout_mode = 2 @@ -75,6 +77,7 @@ max_length = 20 [node name="HBoxContainer" type="HBoxContainer" parent="TabContainer/General Settings/HBoxContainer/VBoxContainer/SaveSystem/VBoxContainer"] layout_mode = 2 +tooltip_text = "This string is added to scene state save files before the slot name." [node name="Label" type="Label" parent="TabContainer/General Settings/HBoxContainer/VBoxContainer/SaveSystem/VBoxContainer/HBoxContainer"] layout_mode = 2 @@ -101,6 +104,7 @@ horizontal_alignment = 1 [node name="HBoxContainer" type="HBoxContainer" parent="TabContainer/General Settings/HBoxContainer/VBoxContainer/SceneSettings/VBoxContainer"] layout_mode = 2 +tooltip_text = "The length of fade-out when activating a scene transition, in seconds." [node name="Label" type="Label" parent="TabContainer/General Settings/HBoxContainer/VBoxContainer/SceneSettings/VBoxContainer/HBoxContainer"] layout_mode = 2 @@ -127,13 +131,14 @@ horizontal_alignment = 1 [node name="Warning" type="RichTextLabel" parent="TabContainer/General Settings/HBoxContainer/VBoxContainer/InputSettings/VBoxContainer"] layout_mode = 2 theme_override_colors/default_color = Color(1, 0, 0, 1) -text = "Warning: This will reset any changes to the Cogito InputMap and restart the editor! -(WORK IN PROGRESS)" +text = "Warning: This will reset any changes to the project's InputMap and restart the editor! +" fit_content = true shortcut_keys_enabled = false [node name="Btn_ResetInputMap" type="Button" parent="TabContainer/General Settings/HBoxContainer/VBoxContainer/InputSettings/VBoxContainer"] layout_mode = 2 +tooltip_text = "Resets the projects input map to Cogito defaults." text = "Reset Input Map" [node name="About" type="PanelContainer" parent="TabContainer"] @@ -145,6 +150,11 @@ metadata/_tab_index = 1 [node name="VBoxContainer" type="VBoxContainer" parent="TabContainer/About"] layout_mode = 2 +[node name="Label" type="Label" parent="TabContainer/About/VBoxContainer"] +layout_mode = 2 +text = "Links" +horizontal_alignment = 1 + [node name="Btn_GitHub" type="Button" parent="TabContainer/About/VBoxContainer"] layout_mode = 2 text = "GitHub Repo" @@ -153,6 +163,10 @@ text = "GitHub Repo" layout_mode = 2 text = "Documentation" +[node name="Btn_VideoTutorials" type="Button" parent="TabContainer/About/VBoxContainer"] +layout_mode = 2 +text = "Video Tutorials" + [connection signal="toggled" from="TabContainer/General Settings/HBoxContainer/VBoxContainer/CheckBox_PrintLogs" to="." method="_on_check_box_print_logs_toggled"] [connection signal="text_submitted" from="TabContainer/General Settings/HBoxContainer/VBoxContainer/SaveSystem/VBoxContainer/HBoxContainer2/lineedit_player_state" to="." method="_on_lineedit_player_state_text_submitted"] [connection signal="text_submitted" from="TabContainer/General Settings/HBoxContainer/VBoxContainer/SaveSystem/VBoxContainer/HBoxContainer/lineedit_scene_state" to="." method="_on_lineedit_scene_state_text_submitted"] @@ -160,3 +174,4 @@ text = "Documentation" [connection signal="pressed" from="TabContainer/General Settings/HBoxContainer/VBoxContainer/InputSettings/VBoxContainer/Btn_ResetInputMap" to="." method="_on_btn_reset_input_map_pressed"] [connection signal="pressed" from="TabContainer/About/VBoxContainer/Btn_GitHub" to="." method="_on_btn_git_hub_pressed"] [connection signal="pressed" from="TabContainer/About/VBoxContainer/Btn_Documentation" to="." method="_on_btn_documentation_pressed"] +[connection signal="pressed" from="TabContainer/About/VBoxContainer/Btn_VideoTutorials" to="." method="_on_btn_video_tutorials_pressed"] diff --git a/docs/about.rst b/docs/about.rst index cb988c8d..0bbda598 100644 --- a/docs/about.rst +++ b/docs/about.rst @@ -17,6 +17,7 @@ The structure of this template always tries to adhere to the following principle * **Modular:** Don't want to use a feature? You will be able to hide it, ignore it or strip it out without breaking COGITO. At the same time, COGITO is designed to be extendable with your own custom features or other add-ons. * **Approachable:** While there will always be a learning curve, we strive to make COGTIO approachable and intuitive to use, so it doesn't get in your way of making your game. + Current Features ---------------- * First person player controller with: @@ -29,19 +30,25 @@ Current Features * Inventory UI separate from inventory logic * Examples for multiple item types (consumables, keys, ammo, weapons, combinable Items) * Base class to easily add your custom item types + * Basic currency systems + vendors to buy items from * Interaction System * Component-based interactions makes it easy to turn your own objects interactive quickly and customize existing ones - * Examples for interactive objects like doors, drawers, carryables, turn-wheels, elevators, readable objects, keypads -* Systemic Properties + * Examples for interactive objects like doors, drawers, carryable boxes, turn-wheels, elevators, readable objects, keypads, etc. +* Wieldable System + * System for the player holding and using items, traditionally used for weapons. + * Examples for projectile weapon, raycast weapon, throwable weapon, flashlight and animated consumable. +* Basic Enemy with a simple state machine +* Basic Quest System +* Systemic Properties (WIP) * Give objects properties like "FLAMMABLE" or "WET" and they will interact with each other depending on their state and properties. * For example FLAMMABLE objects can be ignited by objects that are actively on fire. Can be extinguished by objects that are WET. * Straight forward system to add your own properties and behaviors, all handled in one script. Also, easy to just ignore. * Fully featured Demo Scene * Set up like a game level including a variety of objects, weapons, and quests * In-game helper documents that explain how objects in the scene were set up -* Quest System -* Save and Load System as well as scene persistency -* Full game pad support! +* Options menu + rebindable inputs +* Save slot-based save and load system + level scene persistency +* Full gamepad support! Contributors @@ -54,6 +61,7 @@ Contributors * `PeterD23 `_: added Grid Inventory * `niefia `_: added Sitting feature, improvements to enemy behavior, interaction components, audio, physics and more * `mrezai `_: improvements and bugfixes to scene transitions, wieldables, player physics and raycasts +* `OvercastInteractive `_: added vendor feature, various improvements and fixes | diff --git a/docs/faq.rst b/docs/faq.rst index e6e75d75..6aa1506b 100644 --- a/docs/faq.rst +++ b/docs/faq.rst @@ -16,9 +16,9 @@ Open the ``main_menu.tscn`` and find the ``MainMenu_SaveSlotManager`` node. Ther .. image:: cog_ChangeGameScene.JPG :alt: COGITO Change Game Scene + My own objects aren't working! ------------------------------ - There are a few reasons for them to not be working, so here's a checklist: * Make sure your interactive object has a ``CollisionShape3D`` and is set to the right layers. @@ -35,7 +35,6 @@ COGITO uses this to identify which node is the parent to spawned objects (like d How do I get a reference to the player? --------------------------------------- - There are multiple ways to get a reference to the player node. * Pass the player node directly with your signal/method. For example, if you use a node that has body_entered / body_exited signals, then these signals pass a ``body`` argument which references the node. You can then easily check if it's in the group "Player" to make sure you have the player node. * Find the node that's in the "Player" group. diff --git a/docs/gettingstarted.rst b/docs/gettingstarted.rst index 92169536..1e48b060 100644 --- a/docs/gettingstarted.rst +++ b/docs/gettingstarted.rst @@ -5,7 +5,7 @@ Installation ------------ .. tip:: - It is strongly recommended to use the COGITO Project as your base Godot project, as it comes with a few pre-configured settings like Input Maps and Autoloads. After installation, you can import your own assets and get started making your game. + It is strongly recommended to use the COGITO Project as your base Godot project, as it comes with a few pre-configured settings like Input Maps and Globals/Autoloads. After installation, you can import your own assets and get started making your game. Installation steps: @@ -19,11 +19,12 @@ Setup If you've used the COGITO Project as the base for your own project, you shouldn't have to do much else to get it running. But just in case here's some how it should be set up: Make sure the following plugins are activated: +* Cogito * Quick Audio (currently v1.0) * Input Helper (currently v4.4.0) -* Cogito -Make sure that the Main Scene is set to ``res://COGITO/DemoScenes/COGITO_0_MainMenu.tscn``. This is not strictly necessary, but will make sure the Demo project runs as expected. + +Make sure that the Main Scene is set to ``res://addons/cogito/DemoScenes/COGITO_0_MainMenu.tscn``. This is not strictly necessary, but will make sure the Demo project runs as expected. Running the Demo scenes @@ -50,6 +51,7 @@ Components ~~~~~~~~~~ A lot of parts of COGITO heavily applies the component design pattern. This means that most functions are organized in a way where you will have a root node of an object, and can add or remove several child nodes as *Components* to change the object's behavior. For example: + * Player scene has Attributes as child nodes. * Cogito Objects have InteractionComponents as child nodes. @@ -59,6 +61,7 @@ Common object types ~~~~~~~~~~~~~~~~~~~ COGITO includes a number of common object scripts which define an objects behavior. When you create your game, a common workflow would look like this: + #. Create a new scene (usually a Node3D) #. Create / import an asset (like a door mesh) #. Add the imported mesh to your new scene. (MeshInstance of the door + collider) @@ -68,4 +71,4 @@ When you create your game, a common workflow would look like this: #. Save packed scene. VoilĂ , you can now place the door in your level scenes and it should work. -You can read more about them in the manual under *Cogito Objects*. +You can read more about this and other objects in the manual under *Cogito Objects*. diff --git a/docs/index.rst b/docs/index.rst index 230f5634..0d57ef23 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -22,22 +22,15 @@ COGITO .. image:: Cogito_capsule_202402_jpg.jpg :alt: Cogito Banner -.. image:: https://img.shields.io/badge/Godot_4.2.1_stable-blue?logo=godotengine&logoColor=white - :alt: Godot 4.2.1 stable - :target: https://godotengine.org/ - -.. image:: https://img.shields.io/badge/beta_202404-35A1D7?label=COGITO&labelColor=0E887A - :alt: COGITO beta 202405 - :target: https://github.com/Phazorknight/Cogito - - COGITO is a first Person Immersive Sim Template Project for Godot Engine 4. In comparison to other first person assets out there, which focus mostly on shooter mechanics, COGITO focuses on providing a framework for creating interactable objects and environments. COGITO is made by `Philip Drobar `_ with help from `these contributors `_. ------------- +.. note:: + No GenerativeAI was used in the making of this project. Made by humans for humans. + .. caution:: COGITO is still under active development. While some features are pretty much set, others might change soon. Use at your own risk and check Issues and Discussion pages for more information. \ No newline at end of file diff --git a/docs/manual.rst b/docs/manual.rst index 1f43c18f..2efba614 100644 --- a/docs/manual.rst +++ b/docs/manual.rst @@ -10,10 +10,16 @@ Manual +Cogito Editor Tab +================= +When active as a plugin, Cogito will add an editor tab at the top of your Godot editor window. This tab gives you access to some general settings as well as links to the documentation and Github repo. +The settings have tooltips that explains their use. + + + Player Controller ================= COGITO includes a first person player controller that has a variety of parameters and settings built-in. We recommend just reading through the descriptions and tweaking the parameters to your liking. Most common adjustments needed are walking, running and sprinting speeds, stair handling, and ladder handling. Be aware that a few of the player controller parameters will be controlled by the game options and are thus user controlled (for example Invert Y Axis). -The controls are currently not rebindable in-game, but you can adjust them to your liking with the input map settings in the Godot project. **Default controls:** diff --git a/docs/tutorials.rst b/docs/tutorials.rst index e86e4099..addbe58a 100644 --- a/docs/tutorials.rst +++ b/docs/tutorials.rst @@ -85,4 +85,18 @@ Tutorial Series .. image:: https://img.youtube.com/vi/i19e_mAZFN4/maxresdefault.jpg :alt: COGITO Tutorial 6b - Ammo - :target: https://www.youtube.com/watch?v=i19e_mAZFN4 \ No newline at end of file + :target: https://www.youtube.com/watch?v=i19e_mAZFN4 + + +**6b - Customize wieldables** + +.. image:: https://img.youtube.com/vi/4Gfei0GdgLU/maxresdefault.jpg + :alt: COGITO Tutorial 6c - Customize Weapon + :target: https://www.youtube.com/watch?v=4Gfei0GdgLU + + +**7 - Puzzles & Destructables** + +.. image:: https://img.youtube.com/vi/4jD5ndRwIP0/maxresdefault.jpg + :alt: COGITO Tutorial 7 - Puzzles & Destructables + :target: https://www.youtube.com/watch?v=4jD5ndRwIP0 \ No newline at end of file