From ec886bf6baf59dc8bf04abe01ce0b3005354c73c Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Wed, 31 Aug 2022 12:02:06 +0700 Subject: [PATCH] Display forward slash when research is already blocked by another research --- .../mc/otm/android/AndroidResearch.kt | 22 ++++++++++++++---- .../mc/otm/client/render/Widgets18.kt | 1 + .../otm/client/screen/AndroidStationScreen.kt | 6 ++++- .../textures/gui/widgets_18.png | Bin 1277 -> 1298 bytes .../textures/gui/widgets_18.xcf | 4 ++-- 5 files changed, 25 insertions(+), 8 deletions(-) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/android/AndroidResearch.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/android/AndroidResearch.kt index 048993df4..d8af845b1 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/android/AndroidResearch.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/android/AndroidResearch.kt @@ -69,14 +69,26 @@ abstract class AndroidResearch(val type: AndroidResearchType<*>, val capability: return false } - for (research in prerequisites) { - if (!capability.getResearch(research).isResearched) { - return false + if (!allPrerequisitesResearched || anyBlockerResearched) { + return false + } + + return true + } + + val anyBlockerResearched: Boolean get() { + for (research in blockedBy) { + if (capability.getResearch(research).isResearched) { + return true } } - for (research in blockedBy) { - if (capability.getResearch(research).isResearched) { + return false + } + + val allPrerequisitesResearched: Boolean get() { + for (research in prerequisites) { + if (!capability.getResearch(research).isResearched) { return false } } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/Widgets18.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/Widgets18.kt index edd637bad..a630c4ddd 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/Widgets18.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/Widgets18.kt @@ -12,4 +12,5 @@ object Widgets18 { val COLON = GRID.next() val C = GRID.next() val CROSS = GRID.next() + val FORWARD_SLASH = GRID.next() } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/AndroidStationScreen.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/AndroidStationScreen.kt index b03bbc9e6..67aaa490b 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/AndroidStationScreen.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/AndroidStationScreen.kt @@ -77,7 +77,7 @@ private fun isTree(root: AndroidResearchType<*>): Boolean { return true } -typealias LinePos = Pair, Pair> +private typealias LinePos = Pair, Pair> private class Tree(val node: AndroidResearchType<*>) : Iterable { val subtrees = ArrayList() @@ -309,6 +309,10 @@ private open class AndroidResearchButton( RGBAColor.RED.setSystemColor() Widgets18.CROSS.render(stack) + } else if (node.anyBlockerResearched) { + RGBAColor.RED.setSystemColor() + + Widgets18.FORWARD_SLASH.render(stack) } val text = node.iconText diff --git a/src/main/resources/assets/overdrive_that_matters/textures/gui/widgets_18.png b/src/main/resources/assets/overdrive_that_matters/textures/gui/widgets_18.png index 3ae0818c48e85df9386f47bd8a4999a5ddaa2558..7cbc2444df4367296564829fcda078bbe92d8f9b 100644 GIT binary patch delta 921 zcmV;K17`gF36ctsL4QA_MJfgDAfk|=I$01Eag-_+!9r;(wCZ4T=@&Ft2{{*0@rk+m3g{CzsL+NnOV%jb$s2!!`HhQ&vHNa=jf9Q1_L|-@qZlCbdz|4cxKboIPVij zSXq>b&xyx%x*+i**CmJFIG1ep^2~^yP0tfYh=o!YOI^&$x=}@5x^nDyS-*TUS|@<-8MsnA{#p~5{Up87(V|B{ zcpJF5?r72;aJd5vK53#Z+LDi^w^#(;&*+=-z`!lgyXN%P-pAn`sOcK7!0nRb6aNPKdZ0@`+a00006VoOIv000000F%A}C4V0U0W2BI!F~V$0}n|= zK~#9!?c7a{f-o2c;C3?i@D#=kTjQCHTQnA?$X$MV*|_=MX{&`~7}VKc~~F4Uex1!*AF8KjCvjKeyeZ z`r$!sRpy|Nu ztEQ$5+_r6dY`R_Q+~&6Lww-!TV<9Ab5I_aOr!Oq}27m2Zr(=B~BzzD+1;eKeoh21R z8d81RIaSP(>Zw$p-4N5ABOx0j(NvaRTa~p-0(s8 zu(As1UO+7U%qAy%9x(-b$IwWBm%CU|_^5zBS~|rU3WB8rzFk{1b&XM4MGbA|p2M@N z$9thMcWs@J@KFJMZ3uM-=$!EBJ7(xxFw>>m(3rYTNcae#RfN!3u)Lx=D{(F*+UGt$ zW1;cv#fk`^w+|teOPLUx8XC`9tcU>mxC&SYEAoK>)V-@cSNE>=T<&WBJaa;$ vZ=I0vS>byo_=jY(!2=}$lh6YR7ck%tme#6nT2)}200000NkvXXu0mjf4dAk< delta 900 zcmV-~1AF|E3jGO?L4Q-FMOr#oP{bia?PNhz#8IkP1Pi6D(5i#U^%I&jBq=VAf@{IS zkHxBki?gl{u7V)=0pjT7r060g{x2!Ci1FaKAMfrx?%n}HtHu9bfnG@bxanv)s@9If8|v!2pj)Jb%YD-6Y;1p4l`t&ilk+ zR*?$C=fvYWU6A;Z>$1adoXa)~JTt6k)APh(VzJ!Aau2hLt`JWXM+%Bc`9jX&0_QEx zO0B^<_v9}O6xEds*J+L-fh8o7f(RK6R8fP87_BNP2GX=2ckz$d{uH@na#g{|v4A=h zNVXsR4}N!Rlz*lsouoh<=zp=Sk1@cv3$&Y-^?htv?GwQJ3|y&Qf4v3Fev;noYLO!# zv<+NbcQttrxZDATpEOCAY{^SgD3yTsGy0}HFn9|LtU0}P_Hp_EWT~s=8{ps&h?XgP z-R0f>-roK_)9LRAfxB|8FOpKn00006VoOIv000000F%A}C4UzWDC8?lGz#6%c$2=k9)0Rg)o+Qc7*GJgS6*4+5yr0PPOUp=xT*z-`;M$9A_% zo!ip({kC(@X)1(-4+5w__zZ=`(4gJwbZjVugbxC!V1M|up|hr9=!VqLc1{(urg|#X zXFr7czw=2#02R7EGG_`iHLy!g!Je@a5B@jJj3S*mmwY{C4#?7C!0IqhLY>w3!g< z56~syGg)-Z*j=!#8oS#ycbyOdXcHkc6)b;Ios~G3676%}pQ&5zLWs==P=AoAT*`#l z+;u)eh|LF(;Q5_tmk?rh0QH}0&((jbJ(s82|DPp6GPF*J4Sr_AKO_UQ(E}<08UO$Q afDs>|&~9!{g6Vbu0000