Small fixes
This commit is contained in:
parent
1c7e6cf814
commit
1e3ed6a55d
11 changed files with 92 additions and 12 deletions
|
|
@ -1,4 +1,4 @@
|
|||
[gd_resource type="Resource" script_class="Reaction" load_steps=11 format=3 uid="uid://b4x586j255rh7"]
|
||||
[gd_resource type="Resource" script_class="Reaction" format=3 uid="uid://b4x586j255rh7"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://bb8o8l6u6fiai" path="res://src/resources/reaction_substance.gd" id="1_q3co2"]
|
||||
[ext_resource type="Script" uid="uid://dwks86y6383p4" path="res://src/resources/reaction.gd" id="2_bwaxw"]
|
||||
|
|
|
|||
45
assets/reactions/na2co3_p_hcl.tres
Normal file
45
assets/reactions/na2co3_p_hcl.tres
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
[gd_resource type="Resource" script_class="Reaction" format=3 uid="uid://bpkydu1iy7ps"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://bb8o8l6u6fiai" path="res://src/resources/reaction_substance.gd" id="1_lk0fm"]
|
||||
[ext_resource type="Resource" uid="uid://df17c818irsju" path="res://assets/substances/Na2CO3.tres" id="2_xd3oy"]
|
||||
[ext_resource type="Resource" uid="uid://bj3cdfwvgksee" path="res://assets/substances/HCl.tres" id="3_lk0fm"]
|
||||
[ext_resource type="Resource" uid="uid://chdrv5i45chwe" path="res://assets/substances/NaCl.tres" id="5_x63nk"]
|
||||
[ext_resource type="Resource" uid="uid://dp0e62nxlnaeg" path="res://assets/substances/H2O.tres" id="5_xd3oy"]
|
||||
[ext_resource type="Resource" uid="uid://dk604b5skdxn1" path="res://assets/substances/CO2.tres" id="6_xd3oy"]
|
||||
[ext_resource type="Script" uid="uid://dwks86y6383p4" path="res://src/resources/reaction.gd" id="6_yn22r"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_qs4v7"]
|
||||
script = ExtResource("1_lk0fm")
|
||||
coefficient = 1
|
||||
substance = ExtResource("2_xd3oy")
|
||||
metadata/_custom_type_script = "uid://bb8o8l6u6fiai"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_5wjtx"]
|
||||
script = ExtResource("1_lk0fm")
|
||||
coefficient = 2
|
||||
substance = ExtResource("3_lk0fm")
|
||||
metadata/_custom_type_script = "uid://bb8o8l6u6fiai"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_i3fna"]
|
||||
script = ExtResource("1_lk0fm")
|
||||
coefficient = 2
|
||||
substance = ExtResource("5_x63nk")
|
||||
metadata/_custom_type_script = "uid://bb8o8l6u6fiai"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_b2l6v"]
|
||||
script = ExtResource("1_lk0fm")
|
||||
coefficient = 1
|
||||
substance = ExtResource("5_xd3oy")
|
||||
metadata/_custom_type_script = "uid://bb8o8l6u6fiai"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_nnkfn"]
|
||||
script = ExtResource("1_lk0fm")
|
||||
coefficient = 1
|
||||
substance = ExtResource("6_xd3oy")
|
||||
metadata/_custom_type_script = "uid://bb8o8l6u6fiai"
|
||||
|
||||
[resource]
|
||||
script = ExtResource("6_yn22r")
|
||||
input_substances = Array[ExtResource("1_lk0fm")]([SubResource("Resource_qs4v7"), SubResource("Resource_5wjtx")])
|
||||
output_substances = Array[ExtResource("1_lk0fm")]([SubResource("Resource_i3fna"), SubResource("Resource_b2l6v"), SubResource("Resource_nnkfn")])
|
||||
metadata/_custom_type_script = "uid://dwks86y6383p4"
|
||||
13
assets/substances/CO2.tres
Normal file
13
assets/substances/CO2.tres
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
[gd_resource type="Resource" script_class="Substance" format=3 uid="uid://dk604b5skdxn1"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://b8q5buwgvppyh" path="res://src/resources/substance.gd" id="1_qyshc"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_qyshc")
|
||||
formula = &"CO2"
|
||||
scientific_name = &"Углекислый газ"
|
||||
melting_point = -79.0
|
||||
boiling_point = -79.0
|
||||
prefer_scientific_name = true
|
||||
is_solution = false
|
||||
metadata/_custom_type_script = "uid://b8q5buwgvppyh"
|
||||
|
|
@ -2,17 +2,16 @@ extends GPUParticles3D
|
|||
|
||||
|
||||
@export var inventory: Inventory
|
||||
@export var particles: GPUParticles3D
|
||||
var tween: Tween
|
||||
|
||||
func _on_inventory_reacted_with_gasses(gasses: Array[RuntimeSubstanceData]) -> void:
|
||||
if tween:
|
||||
tween.kill()
|
||||
tween = create_tween()
|
||||
particles.emitting = true
|
||||
emitting = true
|
||||
tween.tween_interval(2.)
|
||||
tween.tween_callback(func():
|
||||
particles.emitting = false
|
||||
emitting = false
|
||||
for gas in gasses:
|
||||
inventory.extract_substance(gas.substance.get_formula(),gas.amount)
|
||||
)
|
||||
|
|
|
|||
|
|
@ -76,17 +76,26 @@ bottom_radius = 0.772
|
|||
radial_segments = 16
|
||||
rings = 0
|
||||
|
||||
[sub_resource type="Curve" id="Curve_tvmew"]
|
||||
_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(0.8611111, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0]
|
||||
point_count = 3
|
||||
|
||||
[sub_resource type="CurveTexture" id="CurveTexture_aukgj"]
|
||||
curve = SubResource("Curve_tvmew")
|
||||
|
||||
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_u7u8q"]
|
||||
emission_shape_scale = Vector3(0.755, 0.93, 0.755)
|
||||
emission_shape = 1
|
||||
emission_sphere_radius = 1.0
|
||||
gravity = Vector3(0, 1, 0)
|
||||
alpha_curve = SubResource("CurveTexture_aukgj")
|
||||
collision_mode = 1
|
||||
collision_friction = 0.0
|
||||
collision_bounce = 0.0
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_t5c10"]
|
||||
transparency = 1
|
||||
vertex_color_use_as_albedo = true
|
||||
albedo_texture = ExtResource("6_rqua0")
|
||||
billboard_mode = 1
|
||||
|
||||
|
|
@ -127,16 +136,19 @@ script = ExtResource("3_0xufn")
|
|||
display_type = 1
|
||||
|
||||
[node name="GPUParticlesCollisionBox3D" type="GPUParticlesCollisionBox3D" parent="Flash" unique_id=330053589]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5932534, 0)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.593, 0)
|
||||
size = Vector3(2.7734375, 1.1738281, 3.2333984)
|
||||
|
||||
[node name="GPUParticles3D" type="GPUParticles3D" parent="Flash" unique_id=2054685714]
|
||||
[node name="GPUParticles3D" type="GPUParticles3D" parent="Flash" unique_id=2054685714 node_paths=PackedStringArray("inventory")]
|
||||
emitting = false
|
||||
amount = 16
|
||||
lifetime = 3.0
|
||||
speed_scale = 3.0
|
||||
local_coords = true
|
||||
process_material = SubResource("ParticleProcessMaterial_u7u8q")
|
||||
draw_pass_1 = SubResource("QuadMesh_iuc1c")
|
||||
script = ExtResource("7_wadb5")
|
||||
inventory = NodePath("../../Inventory")
|
||||
|
||||
[node name="Inventory" type="Node" parent="." unique_id=1748297338]
|
||||
unique_name_in_owner = true
|
||||
|
|
|
|||
|
|
@ -50,10 +50,14 @@ offset_bottom = 40.0
|
|||
[node name="ProgressBar" type="HSlider" parent="Interaction/HBoxContainer" unique_id=1037338095]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
max_value = 10.0
|
||||
step = 0.5
|
||||
allow_greater = true
|
||||
|
||||
[node name="SpinBox" type="SpinBox" parent="Interaction/HBoxContainer" unique_id=194740698]
|
||||
layout_mode = 2
|
||||
max_value = 10.0
|
||||
step = 0.5
|
||||
allow_greater = true
|
||||
suffix = "мл."
|
||||
|
||||
|
|
|
|||
|
|
@ -27,8 +27,8 @@ grow_vertical = 2
|
|||
|
||||
[node name="TabBar" parent="HSplitContainer" unique_id=877427232 instance=ExtResource("1_p7vwb")]
|
||||
layout_mode = 2
|
||||
tab_count = 3
|
||||
tab_2/title = "Завершить отчёт"
|
||||
tab_3/title = "Очистить стол"
|
||||
|
||||
[node name="InspectorPanel" type="PanelContainer" parent="HSplitContainer" unique_id=918152974]
|
||||
layout_mode = 2
|
||||
|
|
|
|||
|
|
@ -199,7 +199,7 @@ func find_gases() -> Array[RuntimeSubstanceData]:
|
|||
return gasses
|
||||
|
||||
func find_odor() -> Array[RuntimeSubstanceData]:
|
||||
var result = []
|
||||
var result: Array[RuntimeSubstanceData] = []
|
||||
for key in inventory:
|
||||
if inventory[key].substance in [preload("res://assets/substances/CH3COOH.tres")]:
|
||||
result.push_back(inventory[key])
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
@tool
|
||||
extends Node
|
||||
|
||||
const LAB_PREFAB: PackedScene = preload("uid://c7r4rhgj3ucao")
|
||||
|
|
@ -7,12 +8,18 @@ var current_lab: Labwork
|
|||
var anwsers: Array[int]
|
||||
var correctness: Array[bool]
|
||||
var tries: int
|
||||
var debug_correct: bool
|
||||
|
||||
@export_tool_button("Complete test") var complete_test = force_correct
|
||||
|
||||
func questions_anwsered() -> bool:
|
||||
return float(correctness.count(true))/len(correctness) >= 0.6
|
||||
return float(correctness.count(true))/len(correctness) >= 0.6 or debug_correct
|
||||
|
||||
func test_failed() -> bool:
|
||||
return float(correctness.count(true))/len(correctness) < 0.6
|
||||
return float(correctness.count(true))/len(correctness) < 0.6 and not debug_correct
|
||||
|
||||
func force_correct() -> void:
|
||||
debug_correct = true
|
||||
|
||||
func save():
|
||||
var path: String = OS.get_system_dir(OS.SYSTEM_DIR_DESKTOP) + "/" + current_lab.lab_name + "-" + Time.get_datetime_string_from_system() + ".txt"
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ class_name Substance
|
|||
@export var color: Color
|
||||
@export var pHColor: Gradient
|
||||
@export var prefer_scientific_name: bool
|
||||
@export var is_solution: bool
|
||||
@export var is_solution: bool = true
|
||||
|
||||
func get_formula() -> StringName:
|
||||
return scientific_name if prefer_scientific_name else formula
|
||||
|
|
|
|||
|
|
@ -106,5 +106,5 @@ func update_material_unfiltered(substances: Array[RuntimeSubstanceData],capacity
|
|||
var solids = substances.filter(filter_solids)
|
||||
update_solid_material(solids)
|
||||
|
||||
func filter_liquids(sub: RuntimeSubstanceData): return sub.substance.melting_point < sub.temperature or sub.is_solution
|
||||
func filter_liquids(sub: RuntimeSubstanceData): return sub.substance.melting_point < sub.temperature and sub.substance.boiling_point > sub.temperature or sub.is_solution
|
||||
func filter_solids(sub: RuntimeSubstanceData): return sub.substance.melting_point > sub.temperature and not sub.is_solution
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue