unfinished business

This commit is contained in:
Rendo 2026-05-29 15:40:11 +05:00
commit af649746fd
3 changed files with 13 additions and 12 deletions

View file

@ -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"]

View file

@ -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("Появился запах")

View file

@ -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)