Lab data
This commit is contained in:
parent
a143c0291e
commit
e1e7c70147
39 changed files with 279 additions and 60 deletions
|
|
@ -33,6 +33,7 @@ var filtered_draggables: Array[DraggableObject]
|
|||
func _ready() -> void:
|
||||
area_entered.connect(on_area_entered)
|
||||
area_exited.connect(on_area_exited)
|
||||
GuiSignalBus.clear_table.connect(queue_free)
|
||||
|
||||
func _mouse_enter() -> void:
|
||||
mouse_in = true
|
||||
|
|
|
|||
|
|
@ -26,5 +26,5 @@ func snap_flask(flask: DraggableObject) -> void:
|
|||
|
||||
func unsnap_flask(flask: DraggableObject) -> void:
|
||||
held_flask = null
|
||||
flask.reparent(flask_parent)
|
||||
flask.reparent(get_tree().current_scene)
|
||||
flask.drag_ended_on.disconnect(unsnap_flask)
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ signal interaction_confirmed(data: Dictionary)
|
|||
signal log_pushed(log_data: String)
|
||||
signal clear_buttons
|
||||
signal add_buttons(buttons: Control)
|
||||
signal clear_table
|
||||
|
||||
func push(log_data: String):
|
||||
log_pushed.emit(log_data)
|
||||
|
|
|
|||
|
|
@ -4,6 +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 reactions: Array[Reaction]
|
||||
|
||||
func _ready() -> void:
|
||||
|
|
|
|||
|
|
@ -5,3 +5,4 @@ class_name Draggable
|
|||
|
||||
@export var scene_to_spawn: PackedScene
|
||||
@export var icon: Texture2D
|
||||
@export var text: String
|
||||
|
|
|
|||
|
|
@ -2,9 +2,9 @@ extends Resource
|
|||
|
||||
class_name Labwork
|
||||
|
||||
static var current_lab: Labwork
|
||||
|
||||
@export var lab_name: String
|
||||
@export_multiline() var tasks: String
|
||||
@export_multiline() var equipment: String
|
||||
@export var experiments: Array[LabExperiment]
|
||||
@export var tests: Array[LabTest]
|
||||
@export var reagents: Array[Reagent]
|
||||
|
|
|
|||
|
|
@ -2,5 +2,6 @@ extends Resource
|
|||
|
||||
class_name LabTest
|
||||
|
||||
@export var question: String
|
||||
@export var options: Array[String]
|
||||
@export var correct_anwser: int
|
||||
|
|
|
|||
13
src/ui/lab_tabs.gd
Normal file
13
src/ui/lab_tabs.gd
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
extends TabBar
|
||||
|
||||
|
||||
func _on_tab_clicked(tab: int) -> void:
|
||||
match tab:
|
||||
0:
|
||||
$Worktabs.visible = true
|
||||
1:
|
||||
$Questions.visible = true
|
||||
2:
|
||||
pass
|
||||
3:
|
||||
GuiSignalBus.clear_table.emit()
|
||||
1
src/ui/lab_tabs.gd.uid
Normal file
1
src/ui/lab_tabs.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://14snb0pu3b1t
|
||||
30
src/ui/questions_generator.gd
Normal file
30
src/ui/questions_generator.gd
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
extends Control
|
||||
|
||||
var current: int = -1
|
||||
|
||||
func _ready() -> void:
|
||||
for question in ReactionRegistry.current_lab.tests:
|
||||
var options = question.options.duplicate()
|
||||
options.shuffle()
|
||||
var vbox = VBoxContainer.new()
|
||||
var description = Label.new()
|
||||
description.text = question.question
|
||||
vbox.add_child(description)
|
||||
vbox.visible = false
|
||||
for option in options:
|
||||
var button = Button.new()
|
||||
button.text = option
|
||||
vbox.add_child(button)
|
||||
button.pressed.connect(next)
|
||||
add_child(vbox)
|
||||
next()
|
||||
|
||||
|
||||
func _on_close_button_pressed() -> void:
|
||||
get_parent().visible = false
|
||||
|
||||
func next() -> void:
|
||||
get_child(current).visible = false
|
||||
if current < get_child_count() - 1:
|
||||
current += 1
|
||||
get_child(current).visible = true
|
||||
1
src/ui/questions_generator.gd.uid
Normal file
1
src/ui/questions_generator.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://bosx1bhaka185
|
||||
|
|
@ -1,12 +1,11 @@
|
|||
extends Node
|
||||
|
||||
const dnd_button = preload("res://scenes/reactives_drag_and_drop.tscn")
|
||||
const reagent_dir = "res://assets/reagents/"
|
||||
|
||||
func _ready() -> void:
|
||||
for file in ResourceLoader.list_directory(reagent_dir):
|
||||
for reagent in ReactionRegistry.current_lab.reagents:
|
||||
var button = dnd_button.instantiate()
|
||||
button.reagent = load(reagent_dir+file)
|
||||
button.reagent = reagent
|
||||
get_parent().add_element.call_deferred(button)
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -3,14 +3,12 @@ extends Node
|
|||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready() -> void:
|
||||
for i in range(len(Labwork.current_lab.experiments)):
|
||||
var container: PanelContainer = PanelContainer.new()
|
||||
container.name = "Опыт " + str(i + 1)
|
||||
var scroll: ScrollContainer = ScrollContainer.new()
|
||||
scroll.horizontal_scroll_mode = ScrollContainer.SCROLL_MODE_DISABLED
|
||||
|
||||
var label: Label = Label.new()
|
||||
label.text = Labwork.current_lab.experiments[i].description
|
||||
scroll.add_child(label)
|
||||
container.add_child(scroll)
|
||||
add_child(container)
|
||||
for i in range(len(ReactionRegistry.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
|
||||
|
||||
|
||||
func _on_close_button_pressed() -> void:
|
||||
get_parent().visible = false
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue