lab menu
This commit is contained in:
parent
309bbcac5e
commit
c7788ed121
8 changed files with 100 additions and 32 deletions
|
|
@ -1,5 +1,7 @@
|
|||
[gd_scene format=3 uid="uid://c2ciwyjf7au6l"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://cbytg16bl0hsc" path="res://ui/lab_menu.gd" id="1_sjdrh"]
|
||||
|
||||
[node name="LabMenu" type="Control" unique_id=198999369]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
|
|
@ -7,3 +9,25 @@ anchor_right = 1.0
|
|||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="Panel" type="Panel" parent="." unique_id=978863524]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="Panel" unique_id=1649245052]
|
||||
layout_mode = 1
|
||||
anchors_preset = 13
|
||||
anchor_left = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
script = ExtResource("1_sjdrh")
|
||||
|
||||
[node name="Label" type="Label" parent="Panel/VBoxContainer" unique_id=1904569453]
|
||||
layout_mode = 2
|
||||
text = "Выберите лабораторную работу"
|
||||
|
|
|
|||
|
|
@ -3,10 +3,8 @@
|
|||
[ext_resource type="Script" uid="uid://cqdtgvrotvjhb" path="res://src/ui/logger.gd" id="1_8dubc"]
|
||||
[ext_resource type="Script" uid="uid://457xdl1tsmde" path="res://src/ui/control_buttons_holder.gd" id="1_ktti3"]
|
||||
[ext_resource type="PackedScene" uid="uid://bcj0mesdlfsfj" path="res://scenes/popup_container.tscn" id="1_nt7q6"]
|
||||
[ext_resource type="Script" uid="uid://14snb0pu3b1t" path="res://src/ui/lab_tabs.gd" id="1_p7vwb"]
|
||||
[ext_resource type="PackedScene" uid="uid://opfal5aq2p5e" path="res://scenes/worktabs.tscn" id="2_p7vwb"]
|
||||
[ext_resource type="PackedScene" uid="uid://dfn58nti8uxf0" path="res://ui/tab_bar.tscn" id="1_p7vwb"]
|
||||
[ext_resource type="Script" uid="uid://c5pv2idedy1oy" path="res://src/ui/reagents_gen.gd" id="2_x4jx1"]
|
||||
[ext_resource type="PackedScene" uid="uid://be746nxgkc5ay" path="res://scenes/questions.tscn" id="3_ktti3"]
|
||||
[ext_resource type="Script" uid="uid://cfl3n0ihnpd2v" path="res://scenes/tool_generator.gd" id="11_vdcm2"]
|
||||
|
||||
[node name="UserInterface" type="Control" unique_id=1780432093]
|
||||
|
|
@ -27,28 +25,8 @@ anchor_bottom = 1.0
|
|||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="TabBar" type="TabBar" parent="HSplitContainer" unique_id=723713577]
|
||||
[node name="TabBar" parent="HSplitContainer" unique_id=877427232 instance=ExtResource("1_p7vwb")]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 0
|
||||
size_flags_stretch_ratio = 4.0
|
||||
deselect_enabled = true
|
||||
tab_count = 4
|
||||
tab_0/title = "Ход работы"
|
||||
tab_1/title = "Вопросы для самопроверки"
|
||||
tab_2/title = "Отчёт"
|
||||
tab_3/title = "Очистить"
|
||||
script = ExtResource("1_p7vwb")
|
||||
|
||||
[node name="Worktabs" parent="HSplitContainer/TabBar" unique_id=468314618 instance=ExtResource("2_p7vwb")]
|
||||
visible = false
|
||||
top_level = true
|
||||
layout_mode = 1
|
||||
|
||||
[node name="Questions" parent="HSplitContainer/TabBar" unique_id=2060279649 instance=ExtResource("3_ktti3")]
|
||||
visible = false
|
||||
top_level = true
|
||||
layout_mode = 1
|
||||
|
||||
[node name="InspectorPanel" type="PanelContainer" parent="HSplitContainer" unique_id=918152974]
|
||||
layout_mode = 2
|
||||
|
|
@ -123,7 +101,5 @@ offset_bottom = 49.03595
|
|||
[node name="Generator" type="Node" parent="Intruments" unique_id=1693437228]
|
||||
script = ExtResource("11_vdcm2")
|
||||
|
||||
[connection signal="tab_clicked" from="HSplitContainer/TabBar" to="HSplitContainer/TabBar" method="_on_tab_clicked"]
|
||||
|
||||
[editable path="Reagents"]
|
||||
[editable path="Intruments"]
|
||||
|
|
|
|||
|
|
@ -1,7 +1,11 @@
|
|||
extends Node
|
||||
|
||||
const LAB_PREFAB: PackedScene = preload("uid://c7r4rhgj3ucao")
|
||||
const MENU_PREFAB: PackedScene = preload("uid://c7r4rhgj3ucao")
|
||||
|
||||
var current_lab: Labwork = preload("res://labs/lab-electrolyte.tres")
|
||||
var anwsers: Array[int]
|
||||
var correctness: Array[bool]
|
||||
|
||||
func save():
|
||||
var path: String = OS.get_system_dir(OS.SYSTEM_DIR_DESKTOP) + "/" + current_lab.lab_name + "-" + Time.get_datetime_string_from_system() + ".txt"
|
||||
|
|
@ -17,10 +21,18 @@ func save():
|
|||
file.store_string(str(anwsers[i]).lpad(10))
|
||||
file.store_line("")
|
||||
for i in range(len(current_lab.tests)):
|
||||
if len(anwsers) <= i:
|
||||
if len(correctness) <= i:
|
||||
file.store_string("-".lpad(10))
|
||||
else:
|
||||
file.store_string(("+" if anwsers[i] == current_lab.tests[i].correct_anwser else "-").lpad(10))
|
||||
file.store_string(("+" if correctness[i] else "-").lpad(10))
|
||||
file.store_line("")
|
||||
file.store_line("Ход работы:")
|
||||
file.store_string(LabLogger.instance.text)
|
||||
|
||||
func start_lab(lab: Labwork):
|
||||
current_lab = lab
|
||||
anwsers.clear()
|
||||
get_tree().change_scene_to_packed(LAB_PREFAB)
|
||||
|
||||
func end_lab():
|
||||
get_tree().change_scene_to_packed(MENU_PREFAB)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,8 @@
|
|||
extends TabBar
|
||||
|
||||
func _ready() -> void:
|
||||
$ConfirmationDialog.confirmed.connect(LabRuntime.save)
|
||||
$ConfirmationDialog.confirmed.connect(LabRuntime.end_lab)
|
||||
|
||||
func _on_tab_clicked(tab: int) -> void:
|
||||
match tab:
|
||||
|
|
@ -8,6 +11,6 @@ func _on_tab_clicked(tab: int) -> void:
|
|||
1:
|
||||
$Questions.visible = true
|
||||
2:
|
||||
LabRuntime.save()
|
||||
$ConfirmationDialog.popup_centered()
|
||||
3:
|
||||
GuiSignalBus.clear_table.emit()
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ func _ready() -> void:
|
|||
button.text = options[i]
|
||||
vbox.add_child(button)
|
||||
button.pressed.connect(next)
|
||||
button.pressed.connect(anwser.bind(i))
|
||||
button.pressed.connect(anwser.bind(i,question.options.find(options[i]) == question.correct_anwser))
|
||||
add_child(vbox)
|
||||
next()
|
||||
|
||||
|
|
@ -32,5 +32,7 @@ func next() -> void:
|
|||
else:
|
||||
get_parent().visible = false
|
||||
|
||||
func anwser(option: int):
|
||||
LabRuntime.anwsers.append(option)
|
||||
func anwser(option_number: int,correctness: bool):
|
||||
LabRuntime.anwsers.append(option_number)
|
||||
LabRuntime.correctness.append(correctness)
|
||||
|
||||
|
|
|
|||
14
ui/lab_menu.gd
Normal file
14
ui/lab_menu.gd
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
extends Node
|
||||
|
||||
const LAB_DIR = "res://labs/"
|
||||
|
||||
func _ready() -> void:
|
||||
for lab_file in ResourceLoader.list_directory(LAB_DIR):
|
||||
if lab_file.ends_with("/"):
|
||||
continue
|
||||
|
||||
var lab: Labwork = load(LAB_DIR + lab_file)
|
||||
var button: Button = Button.new()
|
||||
button.pressed.connect(LabRuntime.start_lab.bind(lab))
|
||||
add_child(button)
|
||||
button.text = lab.lab_name
|
||||
1
ui/lab_menu.gd.uid
Normal file
1
ui/lab_menu.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://cbytg16bl0hsc
|
||||
36
ui/tab_bar.tscn
Normal file
36
ui/tab_bar.tscn
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
[gd_scene format=3 uid="uid://dfn58nti8uxf0"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://14snb0pu3b1t" path="res://src/ui/lab_tabs.gd" id="1_ieq68"]
|
||||
[ext_resource type="PackedScene" uid="uid://opfal5aq2p5e" path="res://scenes/worktabs.tscn" id="2_hyo0h"]
|
||||
[ext_resource type="PackedScene" uid="uid://be746nxgkc5ay" path="res://scenes/questions.tscn" id="3_lhsfi"]
|
||||
|
||||
[node name="TabBar" type="TabBar" unique_id=877427232]
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 0
|
||||
size_flags_stretch_ratio = 4.0
|
||||
deselect_enabled = true
|
||||
tab_count = 4
|
||||
tab_0/title = "Ход работы"
|
||||
tab_1/title = "Вопросы для самопроверки"
|
||||
tab_2/title = "Отчёт"
|
||||
tab_3/title = "Очистить"
|
||||
script = ExtResource("1_ieq68")
|
||||
|
||||
[node name="Worktabs" parent="." unique_id=666307058 instance=ExtResource("2_hyo0h")]
|
||||
visible = false
|
||||
top_level = true
|
||||
layout_mode = 1
|
||||
|
||||
[node name="Questions" parent="." unique_id=2060279649 instance=ExtResource("3_lhsfi")]
|
||||
visible = false
|
||||
top_level = true
|
||||
layout_mode = 1
|
||||
|
||||
[node name="ConfirmationDialog" type="ConfirmationDialog" parent="." unique_id=2026035561]
|
||||
oversampling_override = 1.0
|
||||
size = Vector2i(1008, 100)
|
||||
ok_button_text = "Составить отчёт"
|
||||
dialog_text = "Вы уверены, что хотите закончить лабораторную работу и составить отчёт? Отчёт будет отправлен на ваш рабочий стол"
|
||||
cancel_button_text = "Отменить"
|
||||
|
||||
[connection signal="tab_clicked" from="." to="." method="_on_tab_clicked"]
|
||||
Loading…
Add table
Add a link
Reference in a new issue