From e47758f30a3962b312afefd0dc17496ed17bf863 Mon Sep 17 00:00:00 2001 From: Nic0Nic0Nii Date: Mon, 27 Sep 2021 03:51:54 +0000 Subject: [PATCH] Removal of empty block clumps. --- Meteo_Engine.jar | Bin 13369 -> 13812 bytes src/sig/Board.java | 10 ++++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Meteo_Engine.jar b/Meteo_Engine.jar index a6f70356f2805ec02f20b45bc9d06c0f81f63c8f..1c280b0aeb9ffa8e85b9a6a3a132219d363615ae 100644 GIT binary patch delta 5112 zcmZvgcQhQ#`o~w74Ut3(f)Ks4dU*xWd+%-azE&q}BKoUjEuss8D7$(Py+m2P_voUt zTGY5n?!D*U`#ZmxGiTb53U5K?*ad621goK0uuBQ@kVsV_`lgbwy z&ZiOxX>y8cPNGqqKgJyiHG)Rqel-`?Ch+%0wJ&Km)}O^4iT6KUq{$gz#`mrCHj;l1 zHMt8kggrzky?!m*X3O#rH#Xgo=^-5)kdDirw`wcEgo8*EO#`$b!IjRFCZ)2$AN2Fh z=Q+}GA+;peTGPm2!|STXDW6?m`nmUvi6P&=Nu)J>Xv}!$b=Pw_4Ey$dp}$m-q?ynv zdJpqFqNuu(c=*Z8VdQ)^OtN%Y4DS|*Pe#Nc`eFG)s2nic@F)Rjp>>oOTF!Y9L3ytE z=8XsSg@G_nr)tP6nk7s=;nLY!kpFDmX@vXzo&?#Z#JA&^l291B-OXRUUHV#i`xVjnP`t6%LJ>Xrz%v}~qJHeM5#jKyo9#_@zKl9jN`bW7M(gKi~;Kh*< zE#Zy}(Tr7E?U5W3%6RH0V|{=$(s!Xz9!}ZFv{&_C)sI(4)p@t06G}**)6?~xbNi6> za(3l#i-E5&%xNE=!3?KabPE#SbL%oKB?OAKzr$YS)Qgdi$W(H-EeQqVjgzSv^2y0W zho(gg2&^+5Pg1Cc)lEj~FvwV}O^uvu*?DkKm%7HDe{`;2e7YYMsngsSWp$pqUrim9 zN1NP#dUI^#Vd$sMP2%tOa$YwJ+v(wj`18^Dp`^AgrHIdpx-dgXgN0SMY%>P(ee<9z zUMX=LH8M2V=csAxrRmoQT6`Syb#FTfl2^)Yz2@$&+7%Rpi&Fo{C~>J6BbEZl$Z}B+ zN@Gk4 zl(-UOKFz!wgmF#R*3G-LROewFOAPoL%G$4rzYiB)9pA^z-iY=s@qpS0(iu2vL}wQK=yP)P`kYow zXLNas(mQ%*4_0_eSP588GBAKQJVRG_Dx-VoET*~#90%dJ8ut`Ado_f1Yzj_oo?ScO zqCXsSpuIy^vML-NcW-zrnN*>eD+dyxv9jIs5iw@8F?Btzoq|v{wx@om_T%Kf!Np2P zj_Lszp{r(uFPCaqqNM(M1>GFH#4MS}$4{YCDh2bMu&`U!+-*O1j2~C!y%CSt*ip@l zH$gztiVEd@`*@MXt+nmO?hD0jMwv^@P&@;up8-@!nUc-H=E=tb3>yolDC*H`^^u=4 zUP&cQ{ki$lL*S_~)#S*DDYf~Bvh@0UIU=4gsZ?@}-Xn|mY7roi#DQ1T@2WfWOn|OSt}wIMY!Q|~ zKvXPTpfDuhNhzOPT`-m8Wn0YdBW_-pzoFxS1{(KqRB*wSv=?&^YT*JzZHBne3Fk3W?2p z33~{OQg+Hd7G0i{xI#18!VR5SR~VS&JiVUaM>;gk)qbw_Q;#er9*xg}i6_L!j@hdi z%_)_cvyax`QL&`3f-99o$<@2mXBlaoTP?u89QG4Q$iVNylNWzYZWKXqL~Opy+Nqd5 zj_}TaHXNnXeaILv znizc$2lQpHS8gvN-!p(z*Az5&#Q$iD?b@CHtn+wtF4miv%Qjap)P46`O)\j1|8 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 { List removedBlocks = blocks.getBlocks().stream().filter((block)->block.y*block_height+blocks.y>block_height*height).collect(Collectors.toList()); - blocks.removeBlock(removedBlocks.toArray(new Block[removedBlocks.size()])); + RemoveBlocks(blocks,removedBlocks.toArray(new Block[removedBlocks.size()])); } } } } + private void RemoveBlocks(BlockClump bc,Block...blocks) { + bc.removeBlock(blocks); + if (bc.getBlocks().size()==0) { + blockClumpDeleteList.add(bc); + } + } private void MergeAllGroundedClumps() { List groundedClumps = blockData.stream().filter((cl)->cl.y==0).collect(Collectors.toList()); if (groundedClumps.size()>1) { @@ -144,7 +150,7 @@ public class Board { minY=Math.min(minY,b.y); } //For now just get rid of them. - blocks.removeBlock(newClumpBlocks.toArray(new Block[newClumpBlocks.size()])); + RemoveBlocks(blocks,newClumpBlocks.toArray(new Block[newClumpBlocks.size()])); for (Block b : newClumpBlocks) { b.y-=minY; }