diff --git a/assets/meshes/big_flask.res b/assets/meshes/big_flask.res index bc11be8..d06a05d 100644 Binary files a/assets/meshes/big_flask.res and b/assets/meshes/big_flask.res differ diff --git a/assets/meshes/big_flask_fill.res b/assets/meshes/big_flask_fill.res index 47c8621..4ed9f92 100644 Binary files a/assets/meshes/big_flask_fill.res and b/assets/meshes/big_flask_fill.res differ diff --git a/assets/meshes/jar.res b/assets/meshes/jar.res index c6ca6a6..be21305 100644 Binary files a/assets/meshes/jar.res and b/assets/meshes/jar.res differ diff --git a/assets/meshes/jar_fill.res b/assets/meshes/jar_fill.res index 66a9553..a4665cc 100644 Binary files a/assets/meshes/jar_fill.res and b/assets/meshes/jar_fill.res differ diff --git a/assets/meshes/spoon.res b/assets/meshes/spoon.res index 0cb4bd3..f9c0e49 100644 Binary files a/assets/meshes/spoon.res and b/assets/meshes/spoon.res differ diff --git a/assets/meshes/spoon_fill.res b/assets/meshes/spoon_fill.res index dbe22f0..cc590af 100644 Binary files a/assets/meshes/spoon_fill.res and b/assets/meshes/spoon_fill.res differ diff --git a/assets/models/Chemistry.glb.import b/assets/models/Chemistry.glb.import index d2bffdb..33b7fae 100644 --- a/assets/models/Chemistry.glb.import +++ b/assets/models/Chemistry.glb.import @@ -83,7 +83,7 @@ _subresources={ "generate/shadow_meshes": 0, "lods/normal_merge_angle": 20.0, "save_to_file/enabled": true, -"save_to_file/fallback_path": "res://assets/meshes/Chemistry_Sphere_003.res", +"save_to_file/fallback_path": "res://assets/meshes/big_flask_fill.res", "save_to_file/path": "uid://q71x8vx4dkis" }, "Chemistry_Sphere_004": { @@ -92,7 +92,7 @@ _subresources={ "generate/shadow_meshes": 0, "lods/normal_merge_angle": 20.0, "save_to_file/enabled": true, -"save_to_file/fallback_path": "res://assets/meshes/Chemistry_Sphere_004.res", +"save_to_file/fallback_path": "res://assets/meshes/big_flask.res", "save_to_file/path": "uid://bsigmbc20m6pn" }, "Chemistry_Sphere_005": { @@ -101,7 +101,7 @@ _subresources={ "generate/shadow_meshes": 0, "lods/normal_merge_angle": 20.0, "save_to_file/enabled": true, -"save_to_file/fallback_path": "res://assets/meshes/Chemistry_Sphere_005.res", +"save_to_file/fallback_path": "res://assets/meshes/spoon_fill.res", "save_to_file/path": "uid://n4ibk6y8t7h3" } } diff --git a/src/inventory.gd b/src/inventory.gd index 59bef4f..d8c1651 100644 --- a/src/inventory.gd +++ b/src/inventory.gd @@ -108,4 +108,7 @@ func recalculate_temperature() -> void: mean_temperature = temperature_sum / len(inventory) func check_for_reactions() -> void: - pass + print(ReactionRegistry.find_appropriate_reaction(inventory.values().map(runtime_to_substance),mean_temperature)) + +func runtime_to_substance(sub: RuntimeSubstanceData) -> Substance: + return sub.substance diff --git a/src/reaction_registry.gd b/src/reaction_registry.gd index fd89583..da28d9f 100644 --- a/src/reaction_registry.gd +++ b/src/reaction_registry.gd @@ -8,7 +8,7 @@ func _ready() -> void: for file in ResourceLoader.list_directory(REACTIONS_DIRECTORY): reactions.append(load(REACTIONS_DIRECTORY + file)) -func react(input_substances: Array[Substance], temperature: float) -> Array[Substance]: +func find_appropriate_reaction(input_substances: Array[Substance], temperature: float) -> Reaction: var filter_func: Callable = func(reaction: Reaction) -> bool: if reaction.reaction_temperature != -1: return (reaction.input_substances == input_substances) and temperature >= reaction.reaction_temperature @@ -18,6 +18,6 @@ func react(input_substances: Array[Substance], temperature: float) -> Array[Subs var filtered: Array[Reaction] = reactions.filter(filter_func) if len(filtered) > 0: - return filtered[0].output_substances.duplicate() + return filtered[0] else: - return [] + return null diff --git a/src/resources/reaction.gd b/src/resources/reaction.gd index ec6ab32..88d8bf9 100644 --- a/src/resources/reaction.gd +++ b/src/resources/reaction.gd @@ -5,3 +5,11 @@ class_name Reaction @export var input_substances: Array[ReactionSubstance] @export var output_substances: Array[ReactionSubstance] @export var reaction_temperature: float = -1 + +func input_substances_dict() -> Dictionary[StringName, ReactionSubstance]: + var result = {} + + for el in input_substances: + result[el.substance.scientific_name] = el + + return result