bubbles
This commit is contained in:
parent
ed87752159
commit
49b09b9bb8
9 changed files with 77 additions and 12 deletions
|
|
@ -23,6 +23,7 @@ var total_amount: float:
|
|||
return result
|
||||
|
||||
signal inventory_changed(substances: Array[RuntimeSubstanceData], capacity: float)
|
||||
signal reacted_with_gasses(gasses: Array[RuntimeSubstanceData])
|
||||
signal temperature_changed(to: float)
|
||||
|
||||
func _ready() -> void:
|
||||
|
|
@ -179,15 +180,23 @@ func check_for_reactions() -> void:
|
|||
add_substance_no_callback(data)
|
||||
check_for_reactions()
|
||||
recalculate_temperature()
|
||||
|
||||
var gasses = find_gases()
|
||||
if gasses != []:
|
||||
reacted_with_gasses.emit(gasses)
|
||||
|
||||
update_solutions()
|
||||
inventory_changed.emit(inventory.values(),capacity)
|
||||
GuiSignalBus.push("Произошла реакция")
|
||||
if len(find_odor()) > 0:
|
||||
GuiSignalBus.push("Появился запах")
|
||||
|
||||
#func find_gases() -> Array[RuntimeSubstanceData]:
|
||||
# for key in inventory:
|
||||
# if inventory[key].substance in [preload("H")]
|
||||
func find_gases() -> Array[RuntimeSubstanceData]:
|
||||
var gasses: Array[RuntimeSubstanceData] = []
|
||||
for key in inventory:
|
||||
if inventory[key].substance.boiling_point < mean_temperature:
|
||||
gasses.append(inventory[key])
|
||||
return gasses
|
||||
|
||||
func find_odor() -> Array[RuntimeSubstanceData]:
|
||||
var result = []
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ enum DisplayType{
|
|||
var tween = create_tween()
|
||||
material_override.set_shader_parameter("wave_intensity",1.)
|
||||
tween.tween_property(material_override,"shader_parameter/wave_intensity",0.0,2.0)
|
||||
@export var particle_collision: GPUParticlesCollisionBox3D
|
||||
|
||||
func update_fluid_material(substances: Array[RuntimeSubstanceData],capacity: float) -> void:
|
||||
var mat: ShaderMaterial = material_override
|
||||
|
|
@ -53,6 +54,7 @@ func update_fluid_material(substances: Array[RuntimeSubstanceData],capacity: flo
|
|||
|
||||
mat.set_shader_parameter("albedo_color", color / total_color)
|
||||
mat.set_shader_parameter("fill",total_weight/capacity)
|
||||
particle_collision.position.y = + particle_collision.size.y/2 + position.y - 4 + 8 * total_weight/capacity
|
||||
|
||||
func update_solid_material(substances: Array[RuntimeSubstanceData]) -> void:
|
||||
var mat: StandardMaterial3D = material_override
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue