From 44e39ded342526f30dbc37e10055a5eb27764e80 Mon Sep 17 00:00:00 2001 From: rendo Date: Wed, 14 Jan 2026 20:53:23 +0500 Subject: [PATCH] unpushed changes --- assets/meshes/big_flask.res | Bin 31934 -> 31934 bytes assets/meshes/big_flask_fill.res | Bin 14288 -> 14288 bytes assets/meshes/jar.res | Bin 20242 -> 20238 bytes assets/meshes/jar_fill.res | Bin 6780 -> 6771 bytes assets/meshes/spoon.res | Bin 30516 -> 30510 bytes assets/meshes/spoon_fill.res | Bin 1763 -> 4337 bytes assets/models/Chemistry.glb.import | 6 +++--- src/inventory.gd | 5 ++++- src/reaction_registry.gd | 6 +++--- src/resources/reaction.gd | 8 ++++++++ 10 files changed, 18 insertions(+), 7 deletions(-) diff --git a/assets/meshes/big_flask.res b/assets/meshes/big_flask.res index bc11be891fedb4360dd571a2b4bc0b1bc05172f5..d06a05d367c42e138c87ca145bbb472e7476d4d5 100644 GIT binary patch delta 30 mcmdn@lX2fq#tnsxtQICkWhIl#80A?F%Z>AmHqT;IsRjVO_zL#` delta 30 mcmdn@lX2fq#tnsxta+I!1?7{=80A^Ba!riNH_u{JsRjVX$P0-8 diff --git a/assets/meshes/big_flask_fill.res b/assets/meshes/big_flask_fill.res index 47c86215fa7f0044d436fcbc5cf9ae8953124547..4ed9f9260222e00d5641a99ff57ead09441d62d9 100644 GIT binary patch delta 41 xcmcbRe<6QEA2&x{dSbc-!xQewySQaoP0}+e5+`rxmS;6HH_A!ee4G2LHULuD4~GB% delta 41 xcmcbRe<6QEA2&yCiLp^4!xQewySQao(@Jwv(56J)k diff --git a/assets/meshes/jar.res b/assets/meshes/jar.res index c6ca6a6d19d12af53e8d693f306afa0c3ce8abb8..be213055141cd09610ddeed915cb4258f4010b7d 100644 GIT binary patch delta 52 zcmbONDo delta 56 zcmeC1$2e&o?U?2k|i&BfN^z{>qi&IOA^>b5;Gg6E7vl5H+fZ_})o98eV G`2qmE7Z9`n diff --git a/assets/meshes/jar_fill.res b/assets/meshes/jar_fill.res index 66a95532ce9e739c52a8c0fc58fa7b91afa7e2af..a4665cc6a5d04095d096647d5b8a7aad32a99c14 100644 GIT binary patch delta 56 zcmexk^4Vm=6mG^Rlc#bktNQUUfPn;%%*jtq%(2qfcPuJOtn^JS&WJZIPN_6wh}is$ Hdm0}A>^Ko% delta 72 zcmext^2cPu6mF)s+>>{4%a|CX78hhPg!3?ffg+GBN-eh1*H0`iPAw_c&rL1PNG;aS WN-T;`%go8q14=R^ZobPsjSm1sP#0kU diff --git a/assets/meshes/spoon.res b/assets/meshes/spoon.res index 0cb4bd33a79c7ce291039fb1543127f9be1eb638..f9c0e49c3fcc6ef9597da50a9a3133eb7ff37084 100644 GIT binary patch delta 58 zcmdn;j&a>P#tl=r8J|p^%B`&G&%*!)5E-o-6rn3h_USHTd(`7U>0HULeO7n}e9 diff --git a/assets/meshes/spoon_fill.res b/assets/meshes/spoon_fill.res index dbe22f0e2f066fe3910f3b03dc477c60312b9ad9..cc590af7b3cfec425ea5681316ad5dcd7053f0e7 100644 GIT binary patch literal 4337 zcmdT|&2Jqw5O-)pKlo~awtNUE5(?Z}f}jYYMyOoNq3sdLcz3<;ne47twl~SEkf`8} zI7PW~NBj#_4qW&P+H*Pggg78oVSeNFzI`tdE!^13+4anLW<37QcwTSZym3wR&vAOM z(s-K2X&Rq7r)Jl+pVD`Hj?v5gbn%xT-njEzqCLs`dlGsDYqhtX%eAa*t|}R<^to=d zcz(=lRISAsrZk0ivUSEf6K3pFqj!RAmG=S;1g9F`DyN%#CY~WeR_UgYwJkJD=Ur9B z8T1vp4O3Y-wH;}&+E^LMLHoceMpKyZQ&pH|5?6pwn6m7=o~!V!COgVS%6S&?iae33 z&Wvt?tjuH@#Iqw#X(!_K(R|Qh^StW3u?@4gvSVY2|XO!mt#{Jx~P<4l_B#nZq)tCpTUq zY1J5SgR|{yP>JN5lf{x$S=sGcwVYqd4vUbKH0AV=sw{OLQ;=xM99*R-oh;(dY6s?k z0PJ$Akz{0KLHnE<&jCefPAjx-shBuIwAv9D7IRQ^;5RO1qGkSfbOAE>@f!j!Z25OdQsvG5$FHhHslgj%khwF$IG zO8n%&JCBv*Vk91~G1-2+My|Nx@p759RHJd&naVdKYLef;$v|C_NuB^bPM1#QVO%Ou zKStyTlqK1u0yTRi+mi<%q7)QVA*LMZDHs_>G6o42zG(Hn&xA~gJ2i@MbqufVOOS7X3>CNp} z$#E06mg;RJL1HxJKte*fV5opnCB}>SZ9c zKtOqEo!v2%z%yB@VxGY`fF%}1jk7#n&vcc`mNryL>YgT=5sCX<+AdV4p`c=)NPx61 z8sM&~Z(3r}V7oOHpd^@jnlW4L%-Pt757ezug0MOuIuXiBO*~(_iIUqI%^iD~Xq0^# z{a$Pu6Ezkk^a+WQHWQ{M-(-NF05_*x2)sG2AGj~DT{*?=i9O4hl?0|%OSGb%TNH_M zt#X>-fW|Vs4`g}X`Cx0QRF*M_dOVVb*g&IsewzmOzMovWbd#b~5HPPR0=!Yx2cJvh zuedGoI{-xwPBIA(y|{E=w;z8bzJNt~j+SZLg37@aM3)|H>##9y^;d`mkZ1JtPd`FsS7u zo8mqCTsb2yp6pprLOnkrn=+i0z!faQp8KA+P(g{eX#N$Adk=*;*q{Mx^c>t3VvWuT zgXzS>H_H+4;2_FEp1+9(9?OHj5$CLnWMCW69r|t51vmwVz{KEl=Zfc#zeV-spr|9o#`aVSpp%%_YwK*3yYyd|C9tQvJO7=%!xI;Y1;yL=Du_z%41@_t$ zO>%HEd9$5Tw#v(wKNJ+l1tegXSh$3Q3;!7jKa#SDgj?q$66j4Qv3B;>`G^FXZ^U^- z0?iMAgeZS-5asVZ?B(x9dCW;Q%l-A+pXdI~zy|*jIRFf`fX-xH(DU=YOyozCa&32i zdUa*5T-&?9vbT31lt+{4Rs7rCFV|M~B6aWn?*8sRY+?Mbfylox`+~^D4J8Oq+TD|& T^gEJAVZ>VCGNJYc{b$GD%cHu( literal 1763 zcmV<91|0cPQ$s@n000005C8!95C8xz1^@t>0000ewJ-f(01q880GdE33_u`rk`5uF z*WdyL0BE%-5C+L;V~Pnu7_ZSib<=l5>H}l?< z{l4$_Ed`|jr~s@0ANeFri!F!~gYf06KidZ$Q9Rjn3?8M8p0cTo>3q!YvXuC{XSyr#)X6m*hSv*$L8(4#D|s^v=WU2UakF$wOA z{+Aro;IhgImHTt5Wc^tPYRA#BWV{kI`C1AMeBrjqVzZ|$KDLdoIM=~{7%%WbLW~*} zX7GQIS94E*l$peTlK%q!hx`xl2MYB`$K5-pDR$^wydZt7bD5w_wFo%vl_DVMraUc^ zpfrto#u#DP2DRH+C(xl(O~K`!yxkLDGrFdW8ZHI3nRIVz@Q=QytdhxH$$?aBtN#h2 zYTId27EPj5%M;&J0+NwCP6ri`w8qA|uR+(AW6N>$w9NufEsjvrxftZw$}1zUd(!p0 zEC!-@;W7y>o6cGYb1tl?EAm?iwQB4Ef+u)$?`f~~2btMBr)DxC=3e-p;;%VgrsEw3 zFE;i=eiXV03*GB0E(Mj@+mDlMI!V%rf!bN_6In`*c{`DH;?x+6`P{zdnsq@#7v-{W zlS%t=6TG6O%oCZCyC@7;WAvVjn#$;jo+xd{ZClor%iGUQ8jVJyA(0+Ok7TVT<18sG zDLGVBE+-R9%7}{kkwZo0l0)TWQn`$%SW-?V>c@W$+gIec`v8L;H+*0?EaG{&A!bN6k1J73;s$cq`DJK(v38U_5qu zK8@Okd&=jsc~B7Uj%t$Gyk8b{W;%o?7(bDcoCv6xSe%4OT^iwtX7dT$Tf!Z94$IPp zRpeF-qr~wzyF+hOw}*y0v3czgW_}l%-Ri!6%x?_EXu(7wjU!T}%({e8LCdB|2&71wAH&ta+%E@3%m>z9OgSwk zD77#BAoz_00FntB9dJ!r4x)e77N%uNgKV<5r0jxR{VyDYAXqFG?Gy_L19HU86H8=D zW4M;QwXkKm4K7x5U~er~A3WD+P!t^1lVGZ<={XQh(@*qN;Ap_pG|vH=3P-r!QW6NJ zxc1{{Lbg~6M)J^j4*)hJ^jD=2fnqm-Owk@-h5$SOHeC3siK;@iP%N9e9k6f@C;?Ja FLqnDDJLUiY 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