From 95254eef4454bc644df2a9532214deb0afc13360 Mon Sep 17 00:00:00 2001 From: Anuken Date: Mon, 9 May 2022 23:11:52 -0400 Subject: [PATCH] Duct router distribution fixes --- .../blocks/payload/payload-conveyor-top.png | Bin 513 -> 529 bytes .../reinforced-payload-conveyor-top.png | Bin 518 -> 536 bytes .../world/blocks/distribution/DuctRouter.java | 19 ++++++++++-------- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/core/assets-raw/sprites/blocks/payload/payload-conveyor-top.png b/core/assets-raw/sprites/blocks/payload/payload-conveyor-top.png index 8ecc636e9e6690c1d7fb2e0a4c3313b23c548009..1ca1586c59e243622d60710dc948be87692a958c 100644 GIT binary patch delta 490 zcmZoQ2Ci(^Q|oVRyQ2elXov_5>%bbM(=i%rv0?$=tOk2wyh)Sf)}KYFLt zgm+RqO#-g1)nnCMVatF3JJxT%*igDU{_Xqo{Z@09PsvQoaF-Lm+N0;EdfDr{-y7Xk zFJtF;EmQsMYPudIc58R|hp9*Jn|>C}dFdR)ZQ5H z<+E@Wt~1_$!qQo|&ggcB*TJ;xrk89XTxP+-XAXyQnRyGxG=*}RISb#hS{=0EjoOZX z^}(7EX~K8kimPkCFh(&xt`r*xjylUWWToe)H7;Z89nkEPBq*u&N%OAq4-&F`ND%U z&+ic6K6B^r+KvThl<)L#pZLSQeeqo5^9B& z`HY;+tc)o)yW5L-jod#}{7QJH5qCl2#1?}sic_7=M*Rt@@JwE>eL3hlTPT-l^+)eQ zInPx*Cyeh;E6;B5TDZwR^g$8NjF*R{w*QH6U;HUkvfoF0*>%RS?x2$_hzMXfu&{Ks g_cyyg;jhD{=jT7uec^pFdksk5)78&qol`;+08$R$c>n+a delta 474 zcmbQp(#SHwuzt6vi(^Q|oVRxz^9~#ExCCxx=c{UwS$Lv#_S6QG(kyqWNm7sZhlW4y zaCvoN%Uvl3B%tu!P`cpfu76+l=ik5n(q_3&>q`DlJ67bC73$5@IxL@*9eDS}qZp&9 zPr6^-i=E@W>{fcnhlxk$n|_u}BuFi0})pver!cAX~z3(0dZ8)R0B>r!)W<;2<*D^;v*3%hI zH!aRBO}OZ*Q9rkRmx#_L&V|Y+Z3V5pr=MB3g;67~;dFy-QO0@C9SWZX?VTqZ&)+EM zedf-gr5#Jogzu1;KH;alo;!Q`yF>-y8I>%`Cl{PqEOBanp~m~56|Wv`Kh_(0>5Sl= zSsJHgj-K7wbVl;dJiD2e-Rvf6Mxx93o&>E3?Y=L?|B^RVi&yqS@X~KR2-L5LxvrlvVM0!_>Gng{P*MmgudY)_Edi;ydP$?xK?{Na4>QR?2>wLnGqJ R{s3W+u&1k^%Q~loCIDJa*irxh diff --git a/core/assets-raw/sprites/blocks/payload/reinforced-payload-conveyor-top.png b/core/assets-raw/sprites/blocks/payload/reinforced-payload-conveyor-top.png index 0a4f8fd597e7290613c2c2515c9f48a5bb419af7..5c802b5f1376fe50027decb6f6c091efc87a4ff2 100644 GIT binary patch delta 497 zcmZo;nZYu_u>O*#i(^Q|oVRyki<%91+yb|2CoGlIKj{6U`5zY|rz~ zclSH^kzaHAE|nPzzA+$y|3xd;$Gqy6k&IWa|8wuc{rOg3e)^xayewPsMR#Ie$(A|O z)@``9e?`dR#ZSLvuzkHJ|K7|h%5VMU2^ZThUv;Z@KP_1(QBayGxy^;eiK z>7Jxq#eGZa=QEenl8WC1?mgaUanH&zMWX6ha-mIW({4BS)0u&io=cu=wve+*{GoKQ zEBP*`mVL%H8?ob?g!Sqzq6*hoIi|*?_8)%~QF7>Qb;OoO8RboQXJ9|BjUOW*P`9|*HN((8=%VN?>BJRrRud>cx?p{1md7o07 z;hm1BPClR&vmg%HqX(WrZTno-bRh}Gd8#9 zYWm-rCbU-L+EM?`wVjuXqi)QxHeAkr`?C7eFOM3IwagK07w-+r66rtcpLwWj#< zG%OcwS9pKiUB1+(RP-&w*TsBU>lf{HdJwo?E5fz9vn|Z;^xBmjk-fdsl(nWu=m%Xo p#fTISKMZzWIl7B?zSi_ze;BP5ywVuv$*ls(d%F6$taD0e0s!8(=IQ_d delta 479 zcmbQi(#A5uu>OFji(^Q|oVRzP^O_9=S`)W(yXiElhTJXq)zYHGBqwp6XZio{cM8@N za`owNVPil7Pi8-RYI^o`w~T!JH2b>z7w^v}{rXdX*7B0-XHw*g7Y!UGZA`<*RP1pGMU1?5MXg+F%x?d;Hby-%WweR#RoJM_-us zboSzD$q&B?+zZ}lani(7)8n_JmOohAuSC7Y=e^v@h&d?kyPno*X z{pcf?Cp*sP)@z8WE2*b!yuB!>P^qX**Gxl1T`B!V*7?ib!V@3wQ(}|Ob3AEj(=xeO zqD}4j2WK72_LUt^WYiuD6-OmoS?Q)9ZSrwCC+0orpym6BDg0+{9^N)ZJ=Z%>+pFwj zbaM8i4|9xj&dJWW-2C=sb5T{HL$X8P(c|5#M3*LgjF#S@Bod~hiZbJt11;}nV#qC+LN^=s&94XwW^6hA$&-&z##B~-!IZ- T9gAq397x#H)z4*}Q$iB}J|Wja diff --git a/core/src/mindustry/world/blocks/distribution/DuctRouter.java b/core/src/mindustry/world/blocks/distribution/DuctRouter.java index 1a52a0db7b..73c5b0f4d0 100644 --- a/core/src/mindustry/world/blocks/distribution/DuctRouter.java +++ b/core/src/mindustry/world/blocks/distribution/DuctRouter.java @@ -1,7 +1,6 @@ package mindustry.world.blocks.distribution; import arc.graphics.g2d.*; -import arc.math.*; import arc.scene.ui.layout.*; import arc.util.*; import arc.util.io.*; @@ -99,8 +98,6 @@ public class DuctRouter extends Block{ var target = target(); if(target != null){ target.handleItem(this, current); - int mod = sortItem != null && current != sortItem ? 2 : 3; - cdump = ((cdump + 1) % mod); items.remove(current, 1); current = null; progress %= (1f - 1f/speed); @@ -124,14 +121,20 @@ public class DuctRouter extends Block{ public Building target(){ if(current == null) return null; - for(int i = -1; i <= 1; i++){ - int dir = Mathf.mod(rotation + (((i + cdump + 1) % 3) - 1), 4); - if(sortItem != null && (current == sortItem) != (dir == rotation)) continue; - Building other = nearby(dir); - if(other != null && other.team == team && other.acceptItem(this, current)){ + int dump = cdump; + + for(int i = 0; i < proximity.size; i++){ + Building other = proximity.get((i + dump) % proximity.size); + int rel = relativeTo(other); + + if(!(sortItem != null && (current == sortItem) != (rel == rotation)) && !(rel == (rotation + 2) % 4) && other.team == team && other.acceptItem(this, current)){ + incrementDump(proximity.size); return other; } + + incrementDump(proximity.size); } + return null; }