From af649746fd7fa105bd7b3df0f32a9016aca55eb0 Mon Sep 17 00:00:00 2001 From: Rendo Date: Fri, 29 May 2026 15:40:11 +0500 Subject: [PATCH] unfinished business --- scenes/flask.tscn | 2 +- src/inventory.gd | 16 ++++++++-------- src/substance_display.gd | 7 ++++--- 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/scenes/flask.tscn b/scenes/flask.tscn index e1ee251..19ccb78 100644 --- a/scenes/flask.tscn +++ b/scenes/flask.tscn @@ -52,7 +52,7 @@ resource_local_to_scene = true render_priority = 0 shader = ExtResource("4_ailwx") shader_parameter/albedo_color = Color(0, 0, 0, 1) -shader_parameter/fill = 0.8999999798832 +shader_parameter/fill = 0.0 shader_parameter/wave_intensity = 0.0 [sub_resource type="CylinderMesh" id="CylinderMesh_h7awq"] diff --git a/src/inventory.gd b/src/inventory.gd index 70c109b..897c283 100644 --- a/src/inventory.gd +++ b/src/inventory.gd @@ -22,11 +22,11 @@ var total_amount: float: result += inventory[sub].amount return result -signal inventory_changed(substances: Array[RuntimeSubstanceData]) +signal inventory_changed(substances: Array[RuntimeSubstanceData], capacity: float) signal temperature_changed(to: float) func _ready() -> void: - inventory_changed.emit(inventory.values()) + inventory_changed.emit(inventory.values(),capacity) func update_solutions(): var has_water = inventory.has("Вода") @@ -42,7 +42,7 @@ func add_substance(data: RuntimeSubstanceData) -> void: check_for_reactions() recalculate_temperature() update_solutions() - inventory_changed.emit(inventory.values()) + inventory_changed.emit(inventory.values(),capacity) func add_substance_no_callback(data: RuntimeSubstanceData) -> void: if data.substance.scientific_name in inventory: @@ -57,7 +57,7 @@ func add_inventory(substances: Array[RuntimeSubstanceData]) -> void: check_for_reactions() recalculate_temperature() update_solutions() - inventory_changed.emit(inventory.values()) + inventory_changed.emit(inventory.values(),capacity) func extract(amount: float) -> Array[RuntimeSubstanceData]: if len(inventory) == 0: @@ -80,7 +80,7 @@ func extract(amount: float) -> Array[RuntimeSubstanceData]: inventory.erase(result_substance.substance.scientific_name) update_solutions() - inventory_changed.emit(inventory.values()) + inventory_changed.emit(inventory.values(),capacity) return result @@ -106,7 +106,7 @@ func extract_solid(amount: float) -> Array[RuntimeSubstanceData]: inventory.erase(result_substance.substance.scientific_name) update_solutions() - inventory_changed.emit(inventory.values()) + inventory_changed.emit(inventory.values(),capacity) return result func extract_substance(key: String, extract_amount: float) -> RuntimeSubstanceData: @@ -121,7 +121,7 @@ func extract_substance(key: String, extract_amount: float) -> RuntimeSubstanceDa inventory.erase(result_substance.substance.scientific_name) update_solutions() - inventory_changed.emit(inventory.values()) + inventory_changed.emit(inventory.values(),capacity) return result_substance @@ -180,7 +180,7 @@ func check_for_reactions() -> void: check_for_reactions() recalculate_temperature() update_solutions() - inventory_changed.emit(inventory.values()) + inventory_changed.emit(inventory.values(),capacity) GuiSignalBus.push("Произошла реакция") if len(find_odor()) > 0: GuiSignalBus.push("Появился запах") diff --git a/src/substance_display.gd b/src/substance_display.gd index 5ef296f..51805bc 100644 --- a/src/substance_display.gd +++ b/src/substance_display.gd @@ -12,7 +12,7 @@ enum DisplayType{ material_override.set_shader_parameter("wave_intensity",1.) tween.tween_property(material_override,"shader_parameter/wave_intensity",0.0,2.0) -func update_fluid_material(substances: Array[RuntimeSubstanceData]) -> void: +func update_fluid_material(substances: Array[RuntimeSubstanceData],capacity: float) -> void: var mat: ShaderMaterial = material_override if len(substances) == 0: visible = false @@ -52,6 +52,7 @@ func update_fluid_material(substances: Array[RuntimeSubstanceData]) -> void: mat.set_shader_parameter("albedo_color", color / total_color) + mat.set_shader_parameter("fill",total_weight/capacity) func update_solid_material(substances: Array[RuntimeSubstanceData]) -> void: var mat: StandardMaterial3D = material_override @@ -94,11 +95,11 @@ func update_solid_material(substances: Array[RuntimeSubstanceData]) -> void: mat.albedo_color = color / total_color -func update_material_unfiltered(substances: Array[RuntimeSubstanceData]): +func update_material_unfiltered(substances: Array[RuntimeSubstanceData],capacity: float): match display_type: DisplayType.Fluid: var fluids = substances.filter(filter_liquids) - update_fluid_material(fluids) + update_fluid_material(fluids,capacity) DisplayType.Solid: var solids = substances.filter(filter_solids) update_solid_material(solids)