From f65634796b10fb4242c6c4547b673e9de9de1ada Mon Sep 17 00:00:00 2001 From: magenoxx Date: Sun, 17 Jul 2011 21:02:09 +0400 Subject: [PATCH] Added an option to display non land cards in one pile. Fixed Issue 166. --- Mage.Client/plugins/mage-card-plugin.jar | Bin 318268 -> 318604 bytes Mage.Client/pom.xml | 2 +- .../mage/client/dialog/PreferencesDialog.java | 40 +++++++++++++++--- .../mage/client/plugins/impl/Plugins.java | 10 ++--- .../mage/interfaces/plugin/CardPlugin.java | 5 ++- Mage.Plugins/Mage.Card.Plugin/pom.xml | 2 +- .../org/mage/plugins/card/CardPluginImpl.java | 27 +++++++++--- 7 files changed, 67 insertions(+), 19 deletions(-) diff --git a/Mage.Client/plugins/mage-card-plugin.jar b/Mage.Client/plugins/mage-card-plugin.jar index 69201b2f75d02e91a147267a75d3279fdc0704c4..d46415592f3c759d60bc44ed14e07eadb5ada2e6 100644 GIT binary patch delta 26947 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 z zgO&H@0ot*2dPxw#`j4NjBKn$;P&A+t$XmvoY@eHvfzF&WEYzR98J+ z=ggTi)7@1a(Sq9EhzhSL0|pKQ^4|+b_8=CX3=I3PV5=biD+KgRLImT-OnEuHK0Np>?24MatF9E#&Bt0nGKWPHW^H1i0ivN=*pkn`| z9~fV}9T?*Ou*^R>3C8(Pwt-W|GlHZ4!xG?J$p8NcagzlhJ)!<+L=fn3u z4$5RA4N%Dc&*}ab?qAA(Y7|Rb2b=%r)V_dV$sW`>Lm+~I{Re`+oCE$NsdI(71N{eV z;D3Vs0}n_upPDh$Yw&-XF024>=>H-U5p@ZVi+@9+sdK?E`ZOXS3jTB}BIWzEKA^<= z*OUiA1M$!O3#0U>tr|1?Cx~P<|6gAm?$G~i9EDClHTqv$|6Tn$JWCvCg#S7%7{w$B zL<9kWCW!Zg!Hw5 ziKFOd=kc@yL_B#v(}n?$+!NF{#%{__AwSYX*3?4gRpD$NtmNOB%F)~xa&IoGHdM# z_D;7fdYNKMda=NX0i9gO61)T{MF#3`!=i}+>aCVg-^nz{mrB|6&I`}m6*IN+92?SX z+P_`#^qi8n3fHa_J4SA4ak@HYfTxiaCy%AAw+G?YdeU;5IiqsQRLfnt_0T)DsMRiS zA8^=Vp1C?hxx-wbc-L*&^$4^SNH|pOb+E!J-?cnpTqFaR8G70vE|I;o#&`JD7c6`;h+&L9s5p@Sn#Db%!mow1iAl zukhGFmSX|u&hFn1i04>w5QF*joWaL5I}M0z1|{+^=2A<_Ttf|q;h^|BJ=m}i<|)j^ z`y8WlHM9|72El(!S}-BOr4biuGSg=MvKByz7)V+C0Mw@i^nK&PhzLY~do5;1VR=is zJh~DhLpx>Jb)>~fl2%ZR&;p$Pq-+UfMW_yG^=t#0*BUx4K=k!^@JFaCx1xT>CH;}a zCdXvs8i9bQF+<=?6o{S2zr!iYJ7J+16(1k!xR)grSHUcl2|yCd{VPMl!#!uunQ9tk1odIh6#4K3P0FDtg0mCh-=Zvx*gaJtA?17sPNq z3@C(%H=-3Tqjc(q>64n#Lc^LTh`cmQ1(QP=+hEH{AUUz&H4-csR9$tVJ4b7%Lyxr{ zBxNynE<*KNHwHWQ%lc}5YQe--T-$D7RZf5}HE>#M+0R0z$FDj%_ef9(KW94C%$o-k z04+R{=@;{*P$%(#DWq`HXA+p7-L*BRnRGBv7iX9hHM2m|;x_Ix`(ilOMiJYv!xB$9 zY&R@)pDN6esIZYgvgoiTouI6ab{|P9iT7QtKb!|hr76AEIcza+Z>xg+i?;->JR#7< zD?lLR={P;Rn}$!#!C`?08m&<)paBI~-bW(d4ynLSAX}TR9c>Pl8R^kzw7YnY;$ln| zd)|R^XBddB-IRWkL`s-Rz~|JWPH>t?S#5M0pC`b*xkP?QzDy(B1ilJzSVDe~=?fXh z@-A1XWR|_HL{7o!(m(uuTtE464JFhAwpy_!h%)`;>kIO28!;Deyj<34Uz7(3{6#qZ zNXi3D5G=eNa`lZNoP9*)0mcz7KC18lQwe8|;{$v0c!0qQ-S*ftdGgWIeLOx%1WQlM z)T8E4j*qpqj{A~a*>h#DfsJ4}HT-Bp0pJ$>Jq%LQ)A zF(WG(gI74(@-<-6*gLbNh=B`_DopGxEzI<|3L83d=Q)zRGU^wlW;8#II^S4nQbkfB zBLj=*wcLP{hE6`sQ(Pm8s%NK zDm6ln@sAkx13oZ$po>;2#)LWcgH49dD&_+;`^oIK++cclL86HHh699Bn}VI=DtdDRy-M zYKgVIg?&slu9V&8!Wv+CX^G;&eU!gbzKW0h6wx3tP@8#O~hp z-i?#v^4#jka^=+a$YS}_*3RlY=#|0Qq#q{FzqH*AH}-l1?OL)FZHj)x1Kp&3!ob2@ zD!1)dWO$V!5e9VRAU#`lapWzFR|h6%Hi4wuK*e-S$!lsa!F4|Z)c$(>Z#syP=9p&B zc)0|nxExch#1-J+ENV^3o9Qgw&l>=HM!uFBONPZM8Ar;?{LZ*+yk&tK`)E~S;9D!| zn|++V`$(J0)cmNPdUiT>7U9qJ*qO(A3}WPt23B)vbNQYzmA;v!wYsH4TMLQJ?b0SHFcDBwoLlE;5{%`nyF$%Jrr7Rh zi6u+WATjGn9YU0rVVBzXil>Nc#&^BO$h+X;kn7FN`Wy9zpxcx&y;~o|%pm51N{JFR=h9r^ zjogKl**JiPe^Rx?XYHJXCbw1d*lyF%1A`~HP)K-)-`Mflj+;3hi#fnd?ZYy8u~Fb_ zjoti{s0C+lSRt^=V_(zq@wh5Bf6)si>ek=OoNg>S3cH01JrlkYn|b;oAV?=rLK^fmmV53C#;2AzlF z%w_`C0_x!Kr)~E@%y8>KT#Y#lqGDmW#(sfutulc)NAh)Z59$c@4MUBy!hjs&+=ARj z;)1|Nh;(}ndUxYSK==g>igZ5>l5|518g&N^M*4+EkaQ0WqIBa%7Wjz`%K6DenEJ^? z?)!0K(}E;p5BQBmqI9E+QybJML24K!y!-}^{vNBcsa;~!dL)ZXWYp5#ZT^b>mRwx> z!B@d2lgX@QstQ2kA#21jh*(T7I>9+4*MbdluA7=`#Zk|3j#$*shBvOS5vQF`$1ErjVOvB)f#Aj*>?an8z6h-%6xpx+3i{d4acojgisL1`GWA~H&{)A=g6QM(CX#lecIWkMF$x)~|+Cd#$DS{cTG{+;?k+vip zZ5x!`)*+}rhIv?GDuS})gCOa2iCycA|Kdrwa4Y%<=NWZk%c0$1%fAq>J7AoE0g5qm z>Vj%rAHiRrep>uXyCl$Enfj#!uV@VD@ss9}SZhQfCL}9|Mp0{^$l(B@^nh?$>z%n` zH*3!89o@EmrFfAe{KN*Lexwl#ugnsb%dXKj-)hzDcd5}wNCG0k?eW+h`fN9Ki2Upv zS$D`$*&WA9OJAe zPe^*3H0F_~ftzH#$c(da<-iTCKbxdFksz|9P$M`ZWGYAYj46CBXh*NTBC4J} zN|)56<6b*z8kJAwPo0ys{dpx|E~f=0Lc17W)M$@W6CFO|9A})XIe$WuDLK@PrdzC* zt;UL@m)4tQrYg`W;SX7?{cID;*Jj9i_HlU9=idaRLn%&q>sL`q65pR7PHeiq>b~s{ zP8^oB4H7%|y9cE1w+#u1cd*N+=uM(oV>fI{lt*`IeLK=>{^H+OXP*-Ryx}-hA#+;) zxv2AYFGo4VI7*W8Wz-cZtT++;JezwSlCoh=`9>Mrbz18rpW>v~iqq`71?8V!IbQ0o zKGG!^UpkXY6P4x9bTS=URf9X_Hi?y&-D^f+UNT`&Lw)pH(Y=2kMIS|Pe>)zhaSC-W zR?JhcR4#E^N3`?b*L=QJ05T=Xdy+FpZ*6VvXkffizhO&Co9loILv6s1;Ms>rJpXD( z$2`Uu{G$YtpJhm)E#XP-)Oor0Xm4=CKFDBdYux0>s%Km;!84p=V@ws$W{|cX zhzoj#V~}08WQpXcAKS;x{84d;edSy^9gQQNp~%aT75mX7GSC|rW+aereM!>|%kAukCYWsJB6K(c0bphToEtK@Nl^R8!Opeh$ zhxV*(RGBJ~4=aKf0`RyvFe_$k_ItefR%4S;XTp1uZ_>OIxNQD@7-o9*TAhpa3f8*W z8GhcXLNazCGf|@a#Phz5R#u>MFre?t8uEP859#*+aPH@pI4z^DZ2f>0G1s`m?!m5H zead)+(*6Eke$x#YV~2=x)IFAaPo*E?8nbxZgKj_9uV!!grdJp6949CjUhza1N|7V3 z^&r6#b9V5muST6hz>s+OX464GskF5`D;nyvOSPL7hXX=Ca=s+FMt2L0*K3Y(iX*}~ zpLy#Ou9m??>Y+>WN&0=sr(L>qfvEE-;#8ZS=JbCQ9z|Eii7nV*Qi zzh_atfc!VH03U$yIijZs8v7je--Qf+&N+02o_}hpBC28j4gZajhd(v+sqmj({23>o z#xz+npBj(cLb!j%#8s}J#wj%-pHl?I>!4UK01yxq@MPow0A9S{03wi?!Pv&o**Q{W z)oxA*i9ao$*;N;XioQui#`mNQ{Hb()XSe&IDf>+TU+)FoNwf7t7%Ws7!-e6*0FO7+1HKK@xNP%{ zad2d%)Q-cjF>=&AR}zp19*QrtS2BokT$Q#jPu=(_Feej#WPY=wIal;RmtdJNDxt!I zreQpjx!pFAmRh2~r(5y#mn0Kgt8zH!uAx5JrKi5qp4AduGtX9N{R@dk-8^>p*10u( zT-1&w4V7|K@<&W+N|rQ!ilsz~s@1G*!NOZNCEwm09U5v*-4&2YVY%)!oir~#`6ID^ z>wcUI`)BfOtqvFPB&s4GtbXw!II#3$m^)!U zFWbZIS%lW8_6d-_LSLBjH2PtK?=~xtlakDw7Dn3)$?F@gL1VzPM}MW`5HU(^RrKo# zZ2PzV8LW<5dLLaz0S1$sD?aC!?65S?3Hmh({XUip1L7+DqM>B-9nAmZo)oy&nMi>I z1p!G&MhXDn|96|jYj>ane?21`H^f#xRkN2toc~Y`oEBlS97uScE*iOrvB@|K9K#qL}0Va5uQ){CIVz^zVJDXp&xL>Y4{dpOp_JikR*ygYjLvtvSw9uSuqqwlF z&6Qj4_d(_8E9B?9CUs}oV&zpe{ysX?n>pff2IaiEKU&vjqDL78+;E{d=iDB74@of? z#=FOYVbnQ>@~t0;v28%aim*GHIWXEp?6>2?hi;gXh~rE2J#zBwPON%LVI|#QrF)2e zWOgS*9GtY{idY|sV$5%PIsJV0Z$EO#Euz{+C zJM?8D_-TRSMM3ZjXrW<|W1AC5i$P#C(aS@?JpZ1xDIx(pFo?_%esgpIrq{i5wF*uO zzO5L5{8)em&1sFBIy9P86qu^!!s820Gq9)hN$&d}XRHrC~ZZ@J8=%hyYLwv8MTIf{Gh%lBM z+{PD*_f7LTY#j5=q^pPNUZBS#ahh*tjhj960QEVgH@rDYdpIXdjm^S#HpoNT8Y7%6 zed)#q*0k64M$NJ#7-q#REVICZTKK7n!V*DQ)R5DH^ha947bcWgH80vdT8nQC)8u8j zPqp_@|J@&m|4kMDduRzzHqc5d$A9nQ1!_B^nqv8OrZ>tZqh#a#4$D@RoJ*=#M6AyV zK$a$>4>20cp;|SOYTWBL1FHx-6!cf$V4if?jZmJ(9)hiU#pQ_t3PTMXuIF3&xlp*W zJl*rQU)~B_9h^U9JS3Was6tlr}m?pmx=TwnyCCA3$c6eBDYH{d-{Nfu%efnTt;>CDT zCvdS@wMNxgzUAP_VY~6*96BtnOYX_EI9m0W2kgsI-GykY9A~Lr4TM{&7&_0={F+OA z4Y1T_!f;w!Nu?`{SSvTwuC26v1_mYsJa}I>24qs9$?|5hj+(}&#U@4EE4k|QsSPaxS&3G^;v#La?(M2@be2ZuifRZW9;Dj;jAwI{SP#REAUh9e6 zhTT%}-!-H62ualnBiFU*p_3@$;%}3-^A4~$XZ==az=fU$QgStj%t4Uh2aJ^`oZ3gD zNK1PmjCrp$&bPbbR`Ee-gxr>9g?vZpAkNABgRgd_;RB-!AAuTWi7P*IutI@pIZD-% zGVSogwsg893i!sSLXBZTV~xgQmP&h(Zb9(kAK6R-&EFu8!uf@aY?Y;u)x02sj+bRE z%OKlMT|Mm9jUbbyLUz$m8d%pLH7!{%?$mNQ&BU0Lv-o@RTtoPQ4!(*Q42?=aNm@TP(A%sHFaNdaaWN2Fcm)e#5%Y8MddZiTG>MBQyb6@kw*iF5m zeF9|4!4fda*$RBr%F!Q5e~8k4`I6KGIK``(M716q_)YuWl@6E^G^4-&;|rt*&$0n? z1aT(5%Zk{Oslp=Nhtvp2Rygw}Gn`}XKEP};+aC5XiO-#-y2c%ZCvw#%aujs?0j|(_CoD!MFgsQR zlnZK0vCyf617^VY2;877Lxf$mc5yg(`yJQz?N)A0cjsAGl@?aVxw)-_{L{i-PU%x!cN5_L^BYACy zlvJ9{m4iRbR9cJ&b2j% z_RT{gro_9oq}EC}#iT4$-e}ZEeh%JoX{^j76MuXABg*qka8b0w6EFBs@c;ZtF1X@L z+5-at*@prFVfo*3oUNgGJktO@5U7G{isZYoH%va1s7ysfO^;R;BP0VdK$F8p1|cRY z3`#XnI<${dsmG8qR=xnJ>l=y-X_ z+WY`#3Y7+hDP%Wc&NEURC=VvPs2wI}3TYQ#g@Auxnlcg|IHc*E&NgNSMlosv2Xcpv zq(o^ih8%-@lCa&$qkI?jhnTy))WoEO9ObI$vMU!eE8moxAnwGb>fQpZIdI%W4azlc zX;VryYgk>IG#%T;2U*^n3Wbcs80fy8RwB2WL+m8krwPwd7AI*{8^3_t*^Hwv9a3wV zowhsFP!_J5kf4^_wPYj$MJiQ z?1t&wBbM8j$|uvSsOkbM6RqSnYccVHFZe9E29J0uozoCcH2PX$MlTLL1CFo;IeF}M zlEUm=`MQ&$F0T{^9(a7a^P>ovr63*|qZbM>xzxVDn~zmO$xomjaqGT$&pD1YP8IKh zo}X?YtRpTlAcCU-9lV4>LTxdUqF8J=zLQ}eH3wMpJZr*jr3$T%+|1Zkucb-^HK$7x z(w^Vk8?WxO#f`O?)`PPTeHivP}GIRk|rF7)9&4g?Ch%6$e){7u>2QM{_a-(5nVY9ddV$O zEY)dTHe9j^L0e2C#8}RsogkRsf0{%*^s}uXlA`}sASU70;?0R@7azl=Iz!^#jw!71 zwFpLz81=Cd2gboM`%}FETutij32Txs9n_fz*J5KicI!EWH}ga(7^!x@9EY?8)`vVU z+p{3c%Dl%AKOeQoPfZ_LlV!$FYmjB;L=H`5({zc13J40F9suqpd~}X1R{O*PtT+1# zd|Y11{eS6jq9Yh#1P>F_-(aCW#9+e4**p-(#?VCz0DFhN8ifr)_rr;`B#=rwdXqRe z6U(7l^0EK&vrm*w+X3h=%RRYa81U|Kd^n7#%A#P`1(Nmbb-MGOi9fK+!2XP7tn#}wRV&&pu10{YRWWL zQYu#B9r+>1t{;IXC(pK6;F%=l>{+aD|Rtl$yx)WZN z7dZ8^X;m1i#@Y=olN|#foa9JrPV>FA0BZBp)I@gG)kO=>T+-D*nL^(;s~Re%IN*32 zTxESCC7PYpH!*hhIZfFPvMQW`;O^-aQ&8lFZ*$|h;$8t>a9Z;Lq_-{C^rsu}U?SGtVz9gMwo(<$~RPPEv$q>CxEI5J*MQrOo^PxQ!eP-BA}x zG~LCO@VJH-axXBI@wVoaYbCX2Edg!KkI#H69T>G2TGgf(T?C>!f&7%3^1bXj$uS08 z(R$E6&5VXvoV^-}S0I|uh)*k|QHxjvtmUkGG3Z!)V_9nA;Cquz3iypH#JYJVQI~qT zs09bFW*)xyo3=RK-HV9z6u_jXp%EQxmd#W;huHZft%W3&S+0uKb_Q4k~^IL-=8SZEMDoJ{tPA4$#tKx+2p z29hB~Adwp)hR=MFTn>PR8;OCFH`^KS7oxXqFtV<=w`@SKSS(;4(4wW1iYYDj`ThI% zw^e~M-TFkkso!ea1x6bmYkyN9h-0t+bli|Ww5@7ha35ywQ%rR}3>$w{t;pqefz_vp zycoz2m6;<4PMFTRd_VfOLEWJ{>rEBHc!+p-W%vFQPLO6|NVc1Wi`u(Eea){q%3+9+S0~+_tWAYEaHf6p>)NHY0PBLMb$(><>e^3WzCQZDERZdCTXR&R@1=)`!nFn3C zgO9lvJfuUBbsgq#zxr(7)zv;}t~`MGd+2#F4zCd(`^cpF%)Tn75_&!kz3NkRS==b_ zp`qLAj54OY)`qk`-s`+mU$Q=#vphL#z6Xs|0X>eKI@kBq<=zX@fcrV?uc>Sja_>!lo|Lmk4tDtj1uU)rh=10LujWJ>N618Xxm2aDP->-`@so3yW$_gpUlu z`&;lW?;!f0n2oyzzqTcP1@rBI*C87;hYGMgcPvaNL!gMhLxmOd&$uq`B4Cw6QeawZ z93kdzXMY~Ztqa3#e#4pxT2b$?{MRd*fukyAQoK!>1o$Of_6`|hER7M3Dt0`%oe~*Ppp?v;OYhaonM)6G%hZ+O}Y~XH9DI^i9VIbH#2fBmuV)4qC z;9dVCH=qpBfq~R+f&663`mvDg1c=}9_;^dLAr9&LqEOjdm`6S}L6C^ynJKG{Zja<@ z>6zvkl?`nF6d0m4=nMi7i|dyg?@%)x)={POqT$HBXB0d}|U z;5b@PX*CBZwU&;LhN(_YnSa({8R5%+f;(zDi^Mqm0O=`jTvY+>fPBr-Pi2v^4ST0D z0Bck>g{t0%G)w?E;2`>S@BxRcU99HBRRE{{#>dI6>n4ZaSo8ocsLPW z$ZKliSmKdq#6L??p-rncyqOQ!DCno8G)?ycq^9l-*f88p_%7Z&4v2hvN%kG!2pWmk zaQw#9dMu@6W^CBEen0IZhY~V0^A_HWuP0mJWooWv_cJ)YJ(@}EoCE!-c*x(+h4iwP zw;i@Z{k5`PE8HrQ_%+UjJn9vdahZ#wT}H@<0roPa*B<#`MZHGfis(UCO{+rt0~~#z zYyZ3!eua`>%j1Pk_uAT0)fINE|G`f2eU^>K%L9INgcLsm`6W1NA12sQ z`Ip+gMyp~Y2^ASM$*({krz$Anf~0L-&ku+egI=&PM z%5`Z-;_+*2q^BW1i^-k>1>&!;7~<9Ani8xPCKmm5^;+SUUp&CEcZdrCF6(C&C?1|& zBz>usX;ni=WgOB#0*sIY=zWri8Bt*qEm2pAw+va>F_x}q(NNBDA)KQqia#l+;Vxp@ zpw|1T$=wVj>uwkI&n$r(G2>oZt+`6+GP4S?`%xeKe-INOE#)W9dlV&Em+l$yc$_6? z*33WTpk57h_KAU4p+98v8~c{g_Y&7H=ooo=f(5=<2hen}&*IBNx-^Gb9#f@(Ubmt$ z#xl|PO2iC8@+t%Tm?79}*?ns|cD7lnsDBtjuCof4tq-J_Qf{*IxkH4iu%DkSV?g^$ z*{@vj>hhATip%F|i>i&`$sT@f3@x)6v$!3tG{^{COPB&KxVR3lo4x4lv2XNjSZGd1 zw^lM}s>6X|OVx;Sp@lrq6bjwrg5aBDGLi<#*H%<`fqWPY?D`1xM6VA z*qE3v6Xos+?MQOG@AGPdX2?&oX|Y9>V?cLPB_dalY&ZBv4V%hGse`x`EFoToUZ3?kdxFLL; z=O{{PF$=E~+FqEFrj8AZ_WaABQ7c^LPC4QPGn6e5hgHNW6;wfjvGyWLyw|qC(Im7k1|>S7 zJXdm*jU!aDh8$r2McddQzz>D?PhRDh<1Kzbns4>i8+0 zj9M8h9eao#(}Ir7LNP0SX3u^SkIY0oq=&UyMm6WAGVHVp>;g$RLKyKwSZEtv!>>#r z%L0lFz1p87t-?|I%mFpfS{)|Y`sU!N`gs`cX=&HS0-Sm7Bp!9I$bb*NhEe6R1)T6h z$BKeU355#uTg@_gPPO=g#gab`dntiLg(Z~h6z+#o5SRSl`zzcou*$TKldVXQT#ZVj zSSSy{ltz?s7bv*-!fI1e;-Mw6zp=;ye|}wzb2*{S{Y{TfKAh+VsqF$F8~SZi0z2>Y z^(=yJ%LULft&CX`jyxQPmL#4Vg967ri{3Pk(V!;3(=^ZFLB5bHO|Lg5S7_Cs>c^>J z)n>)2)>aT;CDB_29~GR``jto&E=L`1N&`u_nuZ?-23Qy%3Uj-N93=3_l@wMCoD5W% z!z*V$QHOr?UpL4VaK@+qw26qm-XI#wicJ67kt z^3#6BU`1ZDz+~UIur_`cvXq7eU}?N2E8a4;eT<|*!g24(+Jh&zOh=sU>zzS5k-z^kr4$r<0sUNiWle;oc=#{cA6mZ>E zTTAwRqX(2A6Zs1`SSEi2f)Ww4s;&-fb(QeX>Rv_<f%MG;rsxML zZ&$o#S%!=9hbZA`t(FJ?$hQ4>w=y;7>h?|5E_?X`MhWR&jO-XifvA!gOWRIRjeHbQ z*Fn|v5yq%X1XfQyEa}Akg4wj>2QXinYnvLNL*LCR z*!^9WXP=dAznFnsLYDFD;irjw?cfOVnfjguA9HkEsg1)#$y|7Agx=Rtah~pM8``JQ z_*A1*1XFX+7l93vVO~E)ZhE<^<3mYvowk-52mdk9)i>Q74<9NN*zyZB`@D{q6WL2q zaRm~Q@-NBm#z^~WO~ADSA&p5v@<^4pw)WB zQ!`a688JRO`X#PPCI&*Y1U9Y&B86R55T|RodMscs@L!`<-htmhtx432Wuq0JFX2wi z+NU;=_7J18*;4Fsv_p?MZf3bkIzzACSk}W^2=35*Aa;E$cV8^%d=f7dqLz%`tSxup zu>@l{Hhx|&%?+kq-4b0%0lRMbx4a2+L;gHuvtGD%`b;)$J`p%|MsscUO+MgGJ}4c& zVDTfgO1OMLUjch=zWLv${j#LQ^!mEL@3Y6?PMDv5(|ht`k6KWu1u@<==4MnEin{BS z37zdhXbK zIYW<9#AA!7W3wPD0PjW3x2Vh)2L3~$7Nl}oZ<&{pM-X5lUZK*~wDycl-giscYYn!) zU*-ZwYMduBAfgk;Z^+cIhZb6Sws;8i$3D@Wh&<4xg43#5MVNU06aDJV&gfY;TSy1$ z1#^E1d5iFfXjiWeLPuecU4-WNP)VvBPpbwn@WJ|d;-lp2C`;0?*rOhte3KA~ zc25x@$_hvBSKk-=_~FZ=heoACfiF6{KO;D4GjrPe*z#JiFza@%!*)hR*;KYsrnJ^a*Ubd<#0Ewgjm|K7B9@F61h>t z4?iOTGY0CDeHl7DcfML#J9~4#sW!Q9E!|{vCD(q3)ceLxpe|QAbyfhup2WFiy)H+1 zowBi}r{xidv2gHoqtj8Zk$vm))KQE;X3w~ASx~Ug(or6rv?)zsZx>k4N3ZfR9iC72<_O3c`fUotqerPbp{hrj7B zU{|uNI-++4i>`(gw zGU6NFDVPeGI;VNC*05(YVu~I)Rntn3Xvda8Qx)_#=#ODGC?Q8i{VY^EXt|ach1ucW zVhDF%kGZD@_B;7jc4;s2==s6AkXr25fiihMN$&@+g%w6(X!H;0MBR@t`$V49Q6HC7 zXi1!+&EmAGzi&6fdINCA)Z&vx5LaEMUkVPh866hTTCJUQ*<*hEO)_g5*7oL{xIy;_ z$9rM8#_*!omlAwxx}R%I6|t{`(`sDY(^CWg?!BS?Q#B5|NS(|^@LJ@C;X0T`W? zeuFqi-KXk9KDmEVu-KsrTVA%_n6t3w6>cTI(yez%RrO%U1JRD|A+fTxRfEnK1sW}( zyQ~qQowVFMs!pE9Zu1_!M+0fw82F`=knI{1<4Jpb7rGPFH58P zmo201Qu9Msmj{g)AO9u1WHv{?Ht=@Nh5FeRtD#RDavRxw+NBkofc>j;3D^d2getMf zp)w`kV}T?@?$wrKxtmf%t0kvyl+H!p@U$B#>cWn2FhoRuqlV-ge-Gy{2H_ZcKecXIDvE9#ZJFz}leXgQC!)}*o9XPq}0(F_g z`^3{4ZlBxsv>*)CqJ`5VqWI1_!*YJa3gP>AT~VqUZFM?z`=ksON}ZpdLy0T(DiJkKJ;Y%A6U6V|s_1m*i_*p1+Abarb=} z#hbBUDU$XWaq!Pw@U`c2yd&b<$|KL)!cjpN@lLxPpM*WOU|tt)7Z4C7IK4WUb&S7j z?;=Z5Mw7=%{6O@^*&**4^FD9~DJl4_Cvu$NHDuw3g9W1lWlbQ~YevbdArm9{Uu zT+A6_{eAKPCe?R+`$WNSzFo2~cGxq5lRMm%B0O`%&V+0?BAGjcf7r7Scgm5$3o!i6f70J6^WiOU*K=z)yXB;g+$aC2kk_jDR3}UZ_SV+ z6wHF=D^n>B+}|E*9C3b#+;>TM`-!OKogrpp7V`!q57W)aRI0zZ)fyRBM@kN) zrbbF+N78s_rE&FZ>orx=RES$#u%Iuj`N0(AB#%#w0w}fu!ne7GoG~T>^3tI&TYfoP zkOB{t{phViR9?Rv&Y?SmHg)4~z(2SX-V1z@SVF{n;HrPZOJA{eFdp(CiQbpu!#rp} z)~XcZ5EMQv0nQm;eqm4%P(i{IjN^#G4N z{ymen|T zh-E6<=`l2=dF$38XKCx1WBW!A+|@2fs~-s?V1~I~q)bf@<5j9@OMwc(IcjGbRc&mW zVVc4)pBo;S+6pt`fmz;8Yv_DZ0vxLD!+u&CKUqLzrt3#+tby#qBZrqulswS5$6gfLa2YQ zNz@30Wx4-qO{IN4Vu>~3e2v>?#f!}(;isR=XwXdTsF(5H3h{#U_58(v8G{HUidmoV z4ir#+RZ=JPktM2j2tt(q0FIi~tVKV}sKEdmamsiSW{f>3#dJyQzJi zA&j-gn$#Z0%efi*&yP;Zc1^n|j1jU?J>yv=$6SWDiw^!Jt~1^1#+j z2ra%}Ot^ddf$<}L)9?284Fr3`g7Sif@OVH@jn%t?D|pAc5rf1M2A*wl{z82m($D1cAT zCMZlm$UoMmSSCnCoIIDeuvTtMBYhY}$`5A0h`_eq;cc|8+tM_$+L1dY}Oyf9hZv0JxuFQL_NZ|3}RZ*!lG3-~z;dqH!L8 z)F;B?2aJ4r>$GNfIFaiFRcGub}^S4CqGR%?te-pwr)k3BBZN8GvGw zkOCn8lkQLn!1(EatpHxsN{*eT$+56l5C4v6GNraOl`oR&Ks`UY( zpSFBPfaXu82UCCr_&={%^E}qnzp3{}f4zAA>zY1k2pp-Y!U~Z8c|lce03x3##TGF1 ziHz+5{GXJ0jsVqvyBah-djg<85o7=W>9Z9(5Fq@Cbb|pzkpE@>H~B>XFh7GxjRwqq ze)RT<0PKH-1Wn;te>ZRV_n`%mPG0u^Jsp3D|7rp#oAz=6E1z851%SLy2D1`?4B(&j zj*DyP!Qb>V6+p716ewOYQaJ!A`C}X$Hu=63aP_a_<1#?!CqZc?01WD%uDSsr1PcG( zE(PDO2lOug5+o-(lmLj54O#$Sn#h|02!MaBPc=i;IA1_O@REgE0DM4A4>V2m_p-M5 zR!f*K5QfX<8gRtKmW_roU&xLFO^)c?CL1RSdG{hR69 zx9r(>Srer!C0nBGB9Vkrls%%-WC>Zb_=`{9zLF zLTp&z>xLk$+y*FTaB?HzkGOgH?^W01sKwe-zH{}Dc;r`vG$(SWtoEZWVX`JaNua~e zel$y;u}3?ycxbhM;9b@cxeEui%pxex;HNtpbCvGMdf~tj<-Mnw2qtHXd)x66Iwb8Z5i5;@aM8?Z` zmLwJOi*hHW7 z{`phy6?!q!V@yT`S(6(|FkByz(=Ns7dx|^+c*EJt-Q^ zI{xaRX{_xTtD0holugtM7`n4*D&<-eVe#d?mJO^@_V2=Cb;2G%ug1ho4!DMFvXV@W zxV~GBMqA2d*vqo=RlKn|r(bNIbcw`(C_IL0bfQu4T1L6BImP{$vE**5cSSj=qY|&} zLr&)=G%R#{3$+nf;Oz4@V2Rto-2d45{kyC2L?HZ-<}Fh{uiD#ow?D!_}xyysXcO2yz_Hs zfoFSbCWRFyG?%T9QP=a)fZ>eZw`JQSON^CsD$373qfQ_G6r&fg{VQ@x-tLLJ4As;d ze<{uGsRJou5lYlv(h_Im{W0Q~Ge44+HH{PfNo7l2(l7P5Y-DwJcD*@wI^1X5#%e6C z)PVfm;Iitkz&i`%x()NU3>xfznaHm*P)n`f+!S%J-DG|6@|jBpIdOnG$HB@|jA!ri z$|RI@Gx%OoJ#nPHS?8cZMk1w~<`cHzPoHVz#oz6FRFQAprhqHO?(H8yUk?ccqWc27jb!D{UXTw+RKByD?ka^~m$PhT#?OBuG&&FDU8cMxr_&g6Yf#HDrMiDHQE=5Rgp((s^LCf` zi`YDk&`_C;9igX5Un!?zi>(ij@n_uHNL$?bV$j{qEVY)o*g23;4) zoNJE6wHcRJ%%*46kHIcu=L>`nRz^igWo?q4q=}bnnW9a8sws9Ok#3elg5~`)&&+W=@%Z1B`!Gh{B|TR* z26Jk|eqVDd5$m|^MnAw5eb^)s51;d3M1zv=pqG?Jvz)$v_oeOFN^L}>zdnEIEs+O0sBN1m3SK*q|=N3ir1flBdW$((E z1w#}(sD5ggF0FZW1L z>#2@O%$E+0*Jm?=X4qnMr>c{jb0^=opEEf>X?!w#fbLslwg26vu96Au%Oe=>f9fkz z3~W5hq@6f7hAdk4MVVmS)Mb`rn>J?xa@B={J;QfmSljWqxr);QB${7VU1L?i zV~{?Fu`i|(o#)L}ri{;g+QfjdDJ(9^l`lx1e~LPx=dt8K6na@9&vG>J`KaR1dy37= zDiVp;T-zKadqzpi+f4?X&)<{W9)o=yqSS{S#+SrQmA^WyoRGFxv32jD2% zU`NrXb48VI{}wX~`GpjB5@Cj{L$dnilO)EpKfhND>nVL;V;6n5V68fP7o&PhV?ec# zH^niS+9+mWRMW_dG`sgsr14y(hVPbdA$jx#J7V_A^w5)Un=jj1Cl?o5jNG_wf3*A< zP1&(Hb9Pd5_5cl*If>#l?UbiUrP^1B7Ysi<56DmP(tD-wJRg`tsA1~P-8XgS9|A30!6`@N&p$?< z#Ey9l-#Wy02)`Fwnp1~rCPsEEiKo)z8i^<+56Lnvcbu2456Zkk!>4=>V1|?upxO*M?`cIMwOui;KSo6E)1m!;}FwMfcZbp z7f)Y!oGSD(T$raIP@S5LPLH3YE=Z+6?Q4O8IDbR8jg4`wqG8lAuk>&5yqK+N)N9*N z_2^!qAL;g6TBGZ~HIi)&N7u*GO0@qdR4yLsFnBlDGFJXMX*=0<$91W^DE!ywx&Wg7 zj~|ZcJ&eEhroCk)kXFG7qt+~;$T$^fQf_qOa^9p2g@ai0%@uj#{0qw@#E$2kDt(TN zcog}R3VXcpDHZXk^tmJKk?C_s#G}+_Ls&Lvl7{%3(Xt}(H+Tib?NeV%>Sf~3PqD-} zZBC&m&|K-Yd05dP#JcQEU6tZ}M((wb(`C9R6jLUn6ggUcHx2tSNMm%mYxl{fU+E8! zk^S1h8q(&WS64=~744(DUBE?49?l)(Y}|ZZ%_Es9o_s^@{^d7b%5M@4ohAa*@9WpW zjhlf!lK0G}9@1LWUAT5%yLm`Z_-?0rzllkd-jIW7U+*)v0TpL{x>*(BT+;}>MzZ%d z^%OVVv!1RUOX-`XU=v`(jK*0XXRolk`Pwh?hwm3&nP{im{KbZ$uH#~Z*~|k8uZz>& zW|?|gVoC=>Zqx^Iy_2W+t%@r-^HoMT_Wf+uM--b@SMafUsd3xLNs;`ynEf}7H{|r? znO2zS%zGq0NDMRgvORNmy&;v{N7Zz75>Pgs}4F{|)KRtKhV-K02$FF4$N z+`UZm?av|gAwC(LU2rl9R;XZ|P8EMRm;KBtC_ERXz}dK%O=EE^wkl#1@)dKreO$ZA z!EW-Wb!f%YEo#>ASJi@;&bhbGr3N%jp!b^`CLNTEZ@J%z5A^+5a=6Y{IpXkf+9b##?n2$5AL+eLl*H>H>D89COI3l{zE>NqgVnmM z>}9z5WEZqgX|0T{E^3cb88Wr42nIXHAEJLHj7c91w0}@+o#{v2gDD#MJ*OV-Cl}jz z>%!LuNwTNhQ{IKs+X{!p%5Rk&;F)mZ z}!`qk4ZTM7Gimqkzr>Y5d_H^Air*fQ+&E9eGP6BwMee~$j z^G9Z0-5m1ks(Z4a)k=OwHD`9tQuT%Y*Ue>_hEQLfex~h}1JwE9k=frju zH>TE*q2LgUEgAXKlQC`MY8cBzg}7^^+gf5-v=wCY&sqBU(ch$gMZC|ZA7GvF-k<7l zLXht#18vL9juM4S+r~7J!;_Wkr**P8W#?7f4=48dyAh5bApj) zLJza2drF%YVqCn!hr^DwQfCNbygNf{f|Y1K9(B_jqZF{sv>6qz$~8<%Z^&(I>I|GU zNpyOpka=wNyrF}A?i;@c6SvnC(8n!jN_>0G;Tfm!{_T{%XxLE9En3s} zuPck=>Dg-J*fXL&6R)qR4!A6Gjn60hbACz__t8TV(Tf!icB1W=;H9Jy7n3FM^BI+nZ`U5Ar0obUHIGDp2=mY9w&qx%2g- zEAz_3pJSCoMTPtC$*n2HY44u^ySQwVz%nPtSz8aW7JZGhRKq8Rjt5f`9@76qw;Y-> z?8_y!LTY0pRD>3cZCk8O=oHwG`6oWMlQP;y2qyk?U5FBWEw-(`HnsDr^WvS<|N82>TV$0J&gD+Q@9Mt6;&JZst2`<&y zUFsR%xw<@jM%%k%!CP0klbPO7?R~4P&sD4WZfEi7vJ(YXj2B*hvbZA1{T%FqNM^0G zp7iQ-W^puqxto98%hJ{|_70=b9ZP4U*wSJr#sTj*eZOWsvxiA$6zSGIiVvvj!WgpR zmCVl-e9_N6XB9S;lQVr=+cN3L8fo$nby?&!RKK2S$Kk7Ds6w#G-!CaD_+yf8@2JwP+0!87+sL8`_yWTN#zocZ|OZ&Jl&uimF$te4Igi(`@VjfuX_ z>fP$KpqBKSY_@h#|CU0~tH(SqXLE#!QuqeLD>L858-ZTfl%h(MID`6|C=P7F!Ixo0(mz96#!rRU;>W1deGPRpO;73+{pO?pgqS&hN4Vun?ew({kn#p2GhKK(&a;!dn?t&z(d;UyxH(1exCQ5^7< zw-8II^ggsIFLKu8A%NbGJ9P>cLtmjpWJ|};EjZIGT@y!VyPxI?aj`#>F5*faqWMH&GK&=I6j zl>n)cJw4E;c#P6(9VSnN&Y{&yON|quF_gOb^YWoPACwpQ7i$CT_1%ryMf?<3KJ_Zf zYUK4?a$8uX9yL0S&s)KsdVbuQQ=8M?{< zyem?g>n+%W13D-0J`T?5CP$$|Fy}LfSD4hL>Z~gxRVO2rcwR_ot`;@peP46N5GpEa z&+>MI;GiRGYqzM^wLD>)XOKJ+w@wPg4p%>eSh0D4N1j2akOoHzB#ATtj+BIjAEiKY zh@>tBQbHO~Ds%#AsHQ^7NFyK>LTbXo1F4W2BH?%rokbe9&mm)^QU4q=LK%7P4$MspUP&X$c2*(Dnf zwPxcXjvTziB?m8Q-fghGz)KunK&FVnju((F(%{U+L(aK)NkcBAgB-8!m57D8@}M(3 z*z?%FF7>r;aQyoV%z6nh94pOuyeB1#`u&&!QR2pibMTi1qaCO- z@tm26NQ}To47@)dpG56^U_%p*a)t%r@O-?xB&?7z4hT8n;e3c5@%9xf6i5U@c37|g zFO)9;Lb_xiWP{OJ5ChV=uFKg84piXenT?2ulfbb>DqylkJxe7K*E@$oGw%Dh3JD>vwuYq6BQ+ zPCT0i#uP#H2)j>|xTXT!K=MI)vA=iUeWiKx&%=d9kP^a@ZyCSA0&)=udMUX}0e{oH zB^F@1V(282eEnjO{D>vsgclAkhWHWHx{dD_n*dcAI3Y~Vhh;1?N^6xCJc=V2aG0(H zSXy2|@ZL?nD9jouT%L_j-XoEQo(T{PIhY_u1i{d+;WfmgUaV8V+a>rpOYs_*v);gi zO8=UwGK{}z0Zd&1rpyUUjc?=GvM_ZiK3CM7!q#)(mI{ID&*ur)rGKz&_)00HjC2}x zjk!|`Fblzquq0s85yN$*kR!r66z0u*2zdWPPDEruz#1dRvdrKYW%z5UwhZ(jfEuiX|!GT`O~<$nXxqr+0I5I0+`apzb;_GQ5k8xpu_XTrKU1Dms;z?7)N z=T}DF?1KQ{I|04{0slM;mahtDRzRGH>Fa4F_9TG%3A_oZa|dwLgOzw{a&`%o0qE>9 zH4%|Ifz``wSgHz~QHk$tWhLk=BNtZ6i+#9B4^zH@7;xA38vwcS>_H-M;2Ve$fs(P1 zD*qlN2~$p3Q2=_Er3Q9u#hyo1RVUUm5hZlmG&TR zL}7m&kdmokrAn}U9sd3ihLv7CgO%#STXp!g#oBps&L6~SLqbGkMi6JlSuE8Sv6xs7 zbkntQy5PYt9bDOj&$LJbfO7P3(9;Hp4Vgx)$~0-yAjuVA9_tdA9W%sI&%tbs`20#X z0t4bESg8{Bd9Vm#K;mt4!xIpfH;BuGzyPh;9+ei(xrCyGC3j;{Yyzg3F8_stN6UZ3 z+K$ElT-n1ZVb41JO5ppz^c5wz@W#RQtwP|h;wqLe4nJvz1dz}O9!L{V1#J;3cs|X6 zq>Z};_+z=bD-wQc;hbH(9E#3>`3vIC1sB7OF8m5)B)C7Smjz;-vPy;DZEnFJ3{S7eM8`d(c6|?N_6~C^_JE3hWzB z5xC_W#8KmhP+b3Zi{SAF0l#b%%g24-a_j@XC}&~kcMv!Hq7T0~{`(Q1h)9M&H*+3K zJq$Cw#ZM)%x4^)U1)S7lR~m+uimc$Iqr1`-taM}zCsllhpK&oQk&%jE8Zd&pv=V`{ zuNzpZ4$}SCXwA0;;A(IODIjD$-oY89?Z@9o4)+5$Fbbv{fes)i2=M)W{8Ao)h1mJ` zAX2z%S8E9i9TFvkDBz<5cvZ~-fJeyS@DFlm7Fhf^nhZ`Hz)#FvEN&*dhjYR^yAbst zfTBGiXxSVi2$DfW^r*_HZV+Y!L6Y3k#9x;2>~h!SnA9LTU&=pAE4P7kq07 z5=Qc*bT`-69OP*W+$soXXM*t_l?nblgde}(SSz|0|ALlG(M)hwGd?!wVSw|P;qcsH zNC@!~R{dte7;I0t7(jU%f-$>dfurt!5Ah(>cwQ^@Xh10eZ^F$uWQ(IZyx;u*`5yS1 z*_GZzv;WVvoy^ClOaXf50M>s(zgHcx#uO2k3#9+lVE{uD+;j+CzH!E~MB&&GkYDU) z{FfuZWq=#pF#@rfW6wzb>I@OsbK_t8!M8Vm$3aBer_U=(XzHj-+FQC`a{&KYX7@7$ z@^5wsln?Cc5@D4^ ${project.groupId} Mage-Card-Plugin - 0.5 + 0.6 runtime diff --git a/Mage.Client/src/main/java/mage/client/dialog/PreferencesDialog.java b/Mage.Client/src/main/java/mage/client/dialog/PreferencesDialog.java index 677a6e9827b..316b61ecb8f 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/PreferencesDialog.java +++ b/Mage.Client/src/main/java/mage/client/dialog/PreferencesDialog.java @@ -55,6 +55,7 @@ public class PreferencesDialog extends javax.swing.JDialog { public static final String KEY_HAND_USE_BIG_CARDS = "handUseBigCards"; public static final String KEY_HAND_SHOW_TOOLTIPS = "handShowTooltips"; + public static final String KEY_PERMANENTS_IN_ONE_PILE = "nonLandPermanentsInOnePile"; public static final String KEY_CARD_IMAGES_USE_DEFAULT = "cardImagesUseDefault"; public static final String KEY_CARD_IMAGES_PATH = "cardImagesPath"; @@ -86,7 +87,9 @@ public class PreferencesDialog extends javax.swing.JDialog { jTabbedPane1 = new javax.swing.JTabbedPane(); jPanel1 = new javax.swing.JPanel(); jPanel3 = new javax.swing.JPanel(); + jPanel6 = new javax.swing.JPanel(); showToolTipsInHand = new javax.swing.JCheckBox(); + nonLandPermanentsInOnePile = new javax.swing.JCheckBox(); displayBigCardsInHand = new javax.swing.JCheckBox(); jPanel2 = new javax.swing.JPanel(); jLabel1 = new javax.swing.JLabel(); @@ -141,6 +144,11 @@ public class PreferencesDialog extends javax.swing.JDialog { } }); + jPanel6.setBorder(javax.swing.BorderFactory.createTitledBorder("Battlefield")); + + nonLandPermanentsInOnePile.setSelected(false); + nonLandPermanentsInOnePile.setText("Put non-land permanents in one pile."); + javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3); jPanel3.setLayout(jPanel3Layout); jPanel3Layout.setHorizontalGroup( @@ -165,19 +173,37 @@ public class PreferencesDialog extends javax.swing.JDialog { jPanel1.setLayout(jPanel1Layout); jPanel1Layout.setHorizontalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanel1Layout.createSequentialGroup() - .addContainerGap() - .addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addContainerGap()) - ); + .addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(jPanel6, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + ); jPanel1Layout.setVerticalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addContainerGap() .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addContainerGap() + .addComponent(jPanel6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(173, Short.MAX_VALUE)) ); + javax.swing.GroupLayout jPanel6Layout = new javax.swing.GroupLayout(jPanel6); + jPanel6.setLayout(jPanel6Layout); + jPanel6Layout.setHorizontalGroup( + jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel6Layout.createSequentialGroup() + .addContainerGap() + .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(nonLandPermanentsInOnePile) + ) + .addContainerGap(170, Short.MAX_VALUE)) + ); + jPanel6Layout.setVerticalGroup( + jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel6Layout.createSequentialGroup() + .addComponent(nonLandPermanentsInOnePile) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + ); + jTabbedPane1.addTab("Main", jPanel1); jLabel1.setText("Choose phases MAGE will stop on:"); @@ -430,6 +456,7 @@ public class PreferencesDialog extends javax.swing.JDialog { save(prefs, dialog.checkBoxEndTurnOthers, END_OF_TURN_OTHERS); save(prefs, dialog.displayBigCardsInHand, KEY_HAND_USE_BIG_CARDS, "true", "false", UPDATE_CACHE_POLICY); save(prefs, dialog.showToolTipsInHand, KEY_HAND_SHOW_TOOLTIPS, "true", "false", UPDATE_CACHE_POLICY); + save(prefs, dialog.nonLandPermanentsInOnePile, KEY_PERMANENTS_IN_ONE_PILE, "true", "false", UPDATE_CACHE_POLICY); saveImagesPath(prefs); try { prefs.flush(); @@ -507,6 +534,7 @@ public class PreferencesDialog extends javax.swing.JDialog { load(prefs, dialog.checkBoxEndTurnOthers, END_OF_TURN_OTHERS); load(prefs, dialog.displayBigCardsInHand, KEY_HAND_USE_BIG_CARDS, "true"); load(prefs, dialog.showToolTipsInHand, KEY_HAND_SHOW_TOOLTIPS, "true"); + load(prefs, dialog.nonLandPermanentsInOnePile, KEY_PERMANENTS_IN_ONE_PILE, "true"); loadImagesPath(prefs); dialog.setLocation(300, 200); dialog.reset(); @@ -619,10 +647,12 @@ public class PreferencesDialog extends javax.swing.JDialog { private javax.swing.JPanel jPanel3; private javax.swing.JPanel jPanel4; private javax.swing.JPanel jPanel5; + private javax.swing.JPanel jPanel6; private javax.swing.JTabbedPane jTabbedPane1; private javax.swing.JButton saveButton; private javax.swing.JCheckBox showToolTipsInHand; private javax.swing.JCheckBox useDefaultImageFolder; + private javax.swing.JCheckBox nonLandPermanentsInOnePile; // End of variables declaration//GEN-END:variables private static final PreferencesDialog dialog = new PreferencesDialog(new javax.swing.JFrame(), true); diff --git a/Mage.Client/src/main/java/mage/client/plugins/impl/Plugins.java b/Mage.Client/src/main/java/mage/client/plugins/impl/Plugins.java index 7e10bf51ff5..633e84a9e1d 100644 --- a/Mage.Client/src/main/java/mage/client/plugins/impl/Plugins.java +++ b/Mage.Client/src/main/java/mage/client/plugins/impl/Plugins.java @@ -11,6 +11,7 @@ import mage.client.dialog.PreferencesDialog; import mage.client.plugins.MagePlugins; import mage.client.plugins.adapters.MageActionCallback; import mage.client.util.Config; +import mage.client.util.SettingsManager; import mage.constants.Constants; import mage.interfaces.PluginException; import mage.interfaces.plugin.CardPlugin; @@ -26,10 +27,7 @@ import javax.swing.*; import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; -import java.util.Collection; -import java.util.Map; -import java.util.Set; -import java.util.UUID; +import java.util.*; public class Plugins implements MagePlugins { @@ -42,6 +40,7 @@ public class Plugins implements MagePlugins { private CardPlugin cardPlugin = null; private CounterPlugin counterPlugin = null; private static final MageActionCallback mageActionCallback = new MageActionCallback(); + private Map sortingOptions = new HashMap(); public static MagePlugins getInstance() { return fINSTANCE; @@ -104,7 +103,8 @@ public class Plugins implements MagePlugins { @Override public void sortPermanents(Map ui, Collection permanents) { - if (this.cardPlugin != null) this.cardPlugin.sortPermanents(ui, permanents); + sortingOptions.put("nonLandPermanentsInOnePile", PreferencesDialog.getCachedValue("nonLandPermanentsInOnePile", "false")); + if (this.cardPlugin != null) this.cardPlugin.sortPermanents(ui, permanents, sortingOptions); } @Override diff --git a/Mage.Common/src/mage/interfaces/plugin/CardPlugin.java b/Mage.Common/src/mage/interfaces/plugin/CardPlugin.java index 36369a98651..7aa2985b9c3 100644 --- a/Mage.Common/src/mage/interfaces/plugin/CardPlugin.java +++ b/Mage.Common/src/mage/interfaces/plugin/CardPlugin.java @@ -19,7 +19,8 @@ import net.xeoh.plugins.base.Plugin; /** * Interface for card plugins - * + * + * @version 0.6 17,07.2011 added options to #sortPermanents * @version 0.3 21.11.2010 #getMageCard * @version 0.2 07.11.2010 #downloadImages * @version 0.1 31.10.2010 #getMagePermanent, #sortPermanents @@ -28,7 +29,7 @@ import net.xeoh.plugins.base.Plugin; public interface CardPlugin extends Plugin { MagePermanent getMagePermanent(PermanentView permanent, Dimension dimension, UUID gameId, ActionCallback callback, boolean canBeFoil, boolean loadImage); MagePermanent getMageCard(CardView permanent, Dimension dimension, UUID gameId, ActionCallback callback, boolean canBeFoil, boolean loadImage); - void sortPermanents(Map ui, Collection cards); + void sortPermanents(Map ui, Collection cards, Map options); /** * Download images. diff --git a/Mage.Plugins/Mage.Card.Plugin/pom.xml b/Mage.Plugins/Mage.Card.Plugin/pom.xml index 97c5e369a3c..e905c82823f 100644 --- a/Mage.Plugins/Mage.Card.Plugin/pom.xml +++ b/Mage.Plugins/Mage.Card.Plugin/pom.xml @@ -76,7 +76,7 @@ - 0.5 + 0.6 0.9.1 diff --git a/Mage.Plugins/Mage.Card.Plugin/src/main/java/org/mage/plugins/card/CardPluginImpl.java b/Mage.Plugins/Mage.Card.Plugin/src/main/java/org/mage/plugins/card/CardPluginImpl.java index aa851df5e0f..2c11513da2a 100644 --- a/Mage.Plugins/Mage.Card.Plugin/src/main/java/org/mage/plugins/card/CardPluginImpl.java +++ b/Mage.Plugins/Mage.Card.Plugin/src/main/java/org/mage/plugins/card/CardPluginImpl.java @@ -38,6 +38,7 @@ import java.util.List; * * @author nantuko * @version 0.1 01.11.2010 Mage permanents. Sorting card layout. + * @version 0.6 17,07.2011 #sortPermanents got option to display non-land permanents in one pile */ @PluginImplementation @Author(name = "nantuko") @@ -75,7 +76,7 @@ public class CardPluginImpl implements CardPlugin { @Override public String toString() { - return "[Card plugin, version 0.5]"; + return "[Card plugin, version 0.6]"; } @Override @@ -99,8 +100,12 @@ public class CardPluginImpl implements CardPlugin { } @Override - public void sortPermanents(Map ui, Collection permanents) { - if (ui == null) + public void sortPermanents(Map ui, Collection permanents, Map options) { + //TODO: add caching + //requires to find out is position have been changed that includes: + //adding/removing permanents, type change + + if (ui == null) throw new RuntimeException("Error: no components"); JComponent component = ui.get("jScrollPane"); JComponent component2 = ui.get("battlefieldPanel"); @@ -157,6 +162,16 @@ public class CardPluginImpl implements CardPlugin { Row allCreatures = new Row(permanents, RowType.creature); Row allOthers = new Row(permanents, RowType.other); + boolean othersOnTheRight = true; + if (options != null && options.containsKey("nonLandPermanentsInOnePile")) { + if (options.get("nonLandPermanentsInOnePile").equals("true")) { + System.out.println("in one pile"); + othersOnTheRight = false; + allCreatures.addAll(allOthers); + allOthers.clear(); + } + } + cardWidth = cardWidthMax; Rectangle rect = jScrollPane.getVisibleRect(); playAreaWidth = rect.width; @@ -198,6 +213,7 @@ public class CardPluginImpl implements CardPlugin { if (creatures.isEmpty() && lands.isEmpty() && others.isEmpty()) break; //cardWidth = (int)(cardWidth / 1.2); + //FIXME: -1 is too slow. why not binary search? cardWidth--; } @@ -227,7 +243,7 @@ public class CardPluginImpl implements CardPlugin { for (int stackIndex = 0, stackCount = row.size(); stackIndex < stackCount; stackIndex++) { Stack stack = row.get(stackIndex); // Align others to the right. - if (RowType.other.isType(stack.get(0))) { + if (othersOnTheRight && RowType.other.isType(stack.get(0))) { x = playAreaWidth - GUTTER_X + extraCardSpacingX; for (int i = stackIndex, n = row.size(); i < n; i++) x -= row.get(i).getWidth(); @@ -340,8 +356,9 @@ public class CardPluginImpl implements CardPlugin { private void addAll(Collection permanents, RowType type) { for (MagePermanent panel : permanents) { - if (!type.isType(panel)) + if (!type.isType(panel)) { continue; + } Stack stack = new Stack(); stack.add(panel); add(stack);