Save
This commit is contained in:
parent
e1e7c70147
commit
309bbcac5e
12 changed files with 57 additions and 9 deletions
|
|
@ -23,6 +23,7 @@ config/icon="res://icon.svg"
|
|||
|
||||
GuiSignalBus="*res://src/gui_signal_bus.gd"
|
||||
ReactionRegistry="*res://src/reaction_registry.gd"
|
||||
LabRuntime="*uid://b00hrs2a68cpp"
|
||||
|
||||
[global_group]
|
||||
|
||||
|
|
|
|||
9
scenes/lab_menu.tscn
Normal file
9
scenes/lab_menu.tscn
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
[gd_scene format=3 uid="uid://c2ciwyjf7au6l"]
|
||||
|
||||
[node name="LabMenu" type="Control" unique_id=198999369]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
|
@ -3,7 +3,7 @@ extends Node
|
|||
const dnd_button = preload("res://scenes/drag_and_drop.tscn")
|
||||
|
||||
func _ready() -> void:
|
||||
for tool in ReactionRegistry.current_lab.tools:
|
||||
for tool in LabRuntime.current_lab.tools:
|
||||
var button = dnd_button.instantiate()
|
||||
button.draggable = tool
|
||||
button.text = tool.text
|
||||
|
|
|
|||
26
src/lab_runtime.gd
Normal file
26
src/lab_runtime.gd
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
extends Node
|
||||
|
||||
var current_lab: Labwork = preload("res://labs/lab-electrolyte.tres")
|
||||
var anwsers: Array[int]
|
||||
|
||||
func save():
|
||||
var path: String = OS.get_system_dir(OS.SYSTEM_DIR_DESKTOP) + "/" + current_lab.lab_name + "-" + Time.get_datetime_string_from_system() + ".txt"
|
||||
var file = FileAccess.open(path,FileAccess.WRITE)
|
||||
file.store_line("Ответы:")
|
||||
for i in range(len(current_lab.tests)):
|
||||
file.store_string(("№"+str(i)).lpad(10))
|
||||
file.store_line("")
|
||||
for i in range(len(current_lab.tests)):
|
||||
if len(anwsers) <= i:
|
||||
file.store_string("Не дан".lpad(10))
|
||||
else:
|
||||
file.store_string(str(anwsers[i]).lpad(10))
|
||||
file.store_line("")
|
||||
for i in range(len(current_lab.tests)):
|
||||
if len(anwsers) <= i:
|
||||
file.store_string("-".lpad(10))
|
||||
else:
|
||||
file.store_string(("+" if anwsers[i] == current_lab.tests[i].correct_anwser else "-").lpad(10))
|
||||
file.store_line("")
|
||||
file.store_line("Ход работы:")
|
||||
file.store_string(LabLogger.instance.text)
|
||||
1
src/lab_runtime.gd.uid
Normal file
1
src/lab_runtime.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://b00hrs2a68cpp
|
||||
|
|
@ -4,7 +4,7 @@ const REACTIONS_DIRECTORY = "res://assets/reactions/"
|
|||
|
||||
@export var water_soluable: Array[Substance] = [preload("res://assets/substances/AgNO3.tres"),preload("res://assets/substances/CaCl.tres"),preload("res://assets/substances/CaCO3.tres"),preload("res://assets/substances/CH3COONa.tres"),preload("res://assets/substances/CuSO4.tres"),preload("res://assets/substances/FeSO4.tres"),preload("res://assets/substances/KCl.tres"),preload("res://assets/substances/KI.tres"),preload("res://assets/substances/KNO3.tres"),preload("res://assets/substances/LeadNitrate.tres"),preload("res://assets/substances/MethylOrange.tres"),preload("res://assets/substances/Na2CO3.tres"),preload("res://assets/substances/Na2S.tres"),preload("res://assets/substances/Na2SO4.tres"),preload("res://assets/substances/NaCl.tres"),preload("res://assets/substances/NaNO3.tres"),preload("res://assets/substances/NaOH.tres"),preload("res://assets/substances/NH4CL.tres"),preload("res://assets/substances/NH4OH.tres"),preload("res://assets/substances/Phenolphtalein.tres")]
|
||||
|
||||
var current_lab: Labwork = preload("res://labs/lab-electrolyte.tres")
|
||||
var current_lab: Labwork
|
||||
var reactions: Array[Reaction]
|
||||
|
||||
func _ready() -> void:
|
||||
|
|
|
|||
|
|
@ -9,3 +9,4 @@ class_name Labwork
|
|||
@export var tests: Array[LabTest]
|
||||
@export var reagents: Array[Reagent]
|
||||
@export var tools: Array[Draggable]
|
||||
|
||||
|
|
|
|||
|
|
@ -8,6 +8,6 @@ func _on_tab_clicked(tab: int) -> void:
|
|||
1:
|
||||
$Questions.visible = true
|
||||
2:
|
||||
pass
|
||||
LabRuntime.save()
|
||||
3:
|
||||
GuiSignalBus.clear_table.emit()
|
||||
|
|
|
|||
|
|
@ -1,8 +1,12 @@
|
|||
extends TextEdit
|
||||
|
||||
class_name LabLogger
|
||||
|
||||
static var instance: LabLogger
|
||||
|
||||
func _ready() -> void:
|
||||
GuiSignalBus.log_pushed.connect(on_log_pushed)
|
||||
instance = self
|
||||
|
||||
func on_log_pushed(log_data: String):
|
||||
text += "\n" + log_data
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ extends Control
|
|||
var current: int = -1
|
||||
|
||||
func _ready() -> void:
|
||||
for question in ReactionRegistry.current_lab.tests:
|
||||
for question in LabRuntime.current_lab.tests:
|
||||
var options = question.options.duplicate()
|
||||
options.shuffle()
|
||||
var vbox = VBoxContainer.new()
|
||||
|
|
@ -11,11 +11,12 @@ func _ready() -> void:
|
|||
description.text = question.question
|
||||
vbox.add_child(description)
|
||||
vbox.visible = false
|
||||
for option in options:
|
||||
for i in range(len(options)):
|
||||
var button = Button.new()
|
||||
button.text = option
|
||||
button.text = options[i]
|
||||
vbox.add_child(button)
|
||||
button.pressed.connect(next)
|
||||
button.pressed.connect(anwser.bind(i))
|
||||
add_child(vbox)
|
||||
next()
|
||||
|
||||
|
|
@ -28,3 +29,8 @@ func next() -> void:
|
|||
if current < get_child_count() - 1:
|
||||
current += 1
|
||||
get_child(current).visible = true
|
||||
else:
|
||||
get_parent().visible = false
|
||||
|
||||
func anwser(option: int):
|
||||
LabRuntime.anwsers.append(option)
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ extends Node
|
|||
const dnd_button = preload("res://scenes/reactives_drag_and_drop.tscn")
|
||||
|
||||
func _ready() -> void:
|
||||
for reagent in ReactionRegistry.current_lab.reagents:
|
||||
for reagent in LabRuntime.current_lab.reagents:
|
||||
var button = dnd_button.instantiate()
|
||||
button.reagent = reagent
|
||||
get_parent().add_element.call_deferred(button)
|
||||
|
|
|
|||
|
|
@ -3,11 +3,11 @@ extends Node
|
|||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready() -> void:
|
||||
for i in range(len(ReactionRegistry.current_lab.experiments)):
|
||||
for i in range(len(LabRuntime.current_lab.experiments)):
|
||||
var tab = preload("uid://ce4a3scprw3c7").instantiate()
|
||||
tab.name = "Опыт " + str(i + 1)
|
||||
add_child(tab)
|
||||
tab.get_node("Text").text = ReactionRegistry.current_lab.experiments[i].description
|
||||
tab.get_node("Text").text = LabRuntime.current_lab.experiments[i].description
|
||||
|
||||
|
||||
func _on_close_button_pressed() -> void:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue