From 767e84aa6628ae15c7bfa08f19a9e79e273affe9 Mon Sep 17 00:00:00 2001 From: Robert Goldmann <deadlocker@gmx.de> Date: Wed, 7 Dec 2016 23:43:35 +0100 Subject: [PATCH] added TilePacks and tilePack selection ui (Fixed #7 , Fixed #8 ) --- bin/de/deadlocker8/roadgame/logic/Board.class | Bin 5471 -> 5080 bytes bin/de/deadlocker8/roadgame/logic/Game.class | Bin 1588 -> 1974 bytes .../roadgame/tilepacks/TilePack.class | Bin 0 -> 2629 bytes .../roadgame/tilepacks/TilePackDefault.class | Bin 0 -> 2632 bytes .../roadgame/tilepacks/TilePackTest.class | Bin 0 -> 840 bytes .../roadgame/ui/Controller$1.class | Bin 1263 -> 1263 bytes .../roadgame/ui/Controller$2.class | Bin 1401 -> 1401 bytes .../deadlocker8/roadgame/ui/Controller.class | Bin 12099 -> 13210 bytes bin/de/deadlocker8/roadgame/ui/GUI.fxml | 2 +- .../roadgame/ui/PossibleTilesController.class | Bin 2068 -> 3150 bytes .../ui/SelectTilePackController$1.class | Bin 0 -> 3323 bytes .../ui/SelectTilePackController$2.class | Bin 0 -> 1892 bytes .../ui/SelectTilePackController.class | Bin 0 -> 4825 bytes .../roadgame/ui/SelectTilePackGUI.fxml | 22 ++++ src/de/deadlocker8/roadgame/logic/Board.java | 34 ++--- src/de/deadlocker8/roadgame/logic/Game.java | 15 ++- .../roadgame/tilepacks/TilePack.java | 73 +++++++++++ .../roadgame/tilepacks/TilePackDefault.java | 50 +++++++ .../roadgame/tilepacks/TilePackTest.java | 18 +++ .../deadlocker8/roadgame/ui/Controller.java | 72 ++++++++--- src/de/deadlocker8/roadgame/ui/GUI.fxml | 2 +- .../roadgame/ui/PossibleTilesController.java | 24 +++- .../roadgame/ui/SelectTilePackController.java | 122 ++++++++++++++++++ .../roadgame/ui/SelectTilePackGUI.fxml | 22 ++++ 24 files changed, 407 insertions(+), 49 deletions(-) create mode 100644 bin/de/deadlocker8/roadgame/tilepacks/TilePack.class create mode 100644 bin/de/deadlocker8/roadgame/tilepacks/TilePackDefault.class create mode 100644 bin/de/deadlocker8/roadgame/tilepacks/TilePackTest.class create mode 100644 bin/de/deadlocker8/roadgame/ui/SelectTilePackController$1.class create mode 100644 bin/de/deadlocker8/roadgame/ui/SelectTilePackController$2.class create mode 100644 bin/de/deadlocker8/roadgame/ui/SelectTilePackController.class create mode 100644 bin/de/deadlocker8/roadgame/ui/SelectTilePackGUI.fxml create mode 100644 src/de/deadlocker8/roadgame/tilepacks/TilePack.java create mode 100644 src/de/deadlocker8/roadgame/tilepacks/TilePackDefault.java create mode 100644 src/de/deadlocker8/roadgame/tilepacks/TilePackTest.java create mode 100644 src/de/deadlocker8/roadgame/ui/SelectTilePackController.java create mode 100644 src/de/deadlocker8/roadgame/ui/SelectTilePackGUI.fxml diff --git a/bin/de/deadlocker8/roadgame/logic/Board.class b/bin/de/deadlocker8/roadgame/logic/Board.class index 5002354fa788d9ad2cb7e0a118b34a1e59f12279..77923361b15e8e4cda50856b9180924b288ff65d 100644 GIT binary patch literal 5080 zcmX^0Z`VEs1_l#`P3#Ozj10;tsro6Yi77ex$=Rtz7Wzf`i7DxcxvBa&`RSR-`cC<Y zMJenIEQ|~SS&3zd`Z<Yt>H7XjS*gh-j0_wlnK`KeiOJcF3_3oz%mJw>NKDQy)(?TI zwq|5t1&J0jGKl(sO)V|S%+Yr&DoU*M$t*6hW@O+D&P>lsEGaEYWn{3%rp5-ReGqqp z?6S7AW@KQq$;`_vv14S=*TAU-<QOz3YKAc~usG+Zq;fGZGw|~;a5D%nGB9gshH)}5 zG6?Z7urjc*Gl(!U2xD<S7lSYZKS-T84+A>`2Nwe)gCq}w6vzZlkYm7M%E-X)lbM(5 zSDKrYS`?C)l#|NHAmo#uoR|}qSd<CkLj_q%GBS%98B}q)9^zrJq1GU~6nGdE8I%|q zc+*o$f)evm@^e9f!N{Pcp-I3Dkh+k{f>djE1{FpIC0sEIu@Iz~i$R$|4HP))j11bi z!xy0eY`SI`JA)=8gE%PY(kk@RQ}c6EONuJ>1M)NTN{n2%7&I8PL5AuuGO%j6xM+rf ztkL6P&}T4UWZ*7NEeXgk&Me8y&tqhe(Euk7ET&k4v<Wj9@h})Om@qOhC#Iw@GKfNy zBd20(%_wL>2Dy!qfoNYaGH@1`Bo>u`!hw-Ng@~ZFW@O+EE=f$z_Dw7RM=m>qH6w!> z;b4Zij3Yf2Y*{fQgSdt!*x&jX8OIj84AI$z9cl?9gNBBuCou`e8kF3fco>`+To@TR zGD}j65=-)n7#YM+T;d58x8`PWWAI>SaA#x?0>wYX2QXP422TbrMh2F=)QS>D1`(JE zNQI6yC@uK#F!(a~F*0zcBc}yvsB&zH0hFc!co+g1f*2WC(o;(!z?m7G)IxX|LSe#@ zAlHTSFhnp!GBU7dBo_OD9m1>uN+gUGj0}vPj0}vGj11h#rA0-ldEofqVu)u@U}s2R zWYEGDm6!z#BZF9SeqKppW?nHU0XZV2X;x6cM=>(+q^Fj+6{V)SrlhA9Gcv>zlQOM| zNrt%6P8Dr!umLAoY_VepF1ONo7!nzhKqXiv4?`A1HY0;zX0dZoesQsLMrv|)SYl3Q z3L}FiQI7QV1jQH&DBKwtxC(L-D^rU=;mpXunT7~bG1T(5vLF?lEg2aMz)ppvO?b70 z-~GxAMLZ0}3?-2C<ws0$3yN4!)&~2&jEBLV!GViGnW2J*p%P|JFc(8LLoGW)4Z(5( zW*84c9jLrxOD!x-%qa$$*TBQj2s6(WB+$&m&;k<(XJin8<f7utq?}YxfPhNYVnzmQ zq5>LMS_&gyH~w&DWa#8!NM=X@l{(!#3_T3Jj0|jvDJhOQIgAXF(DEHzEIQ}s<fJBp zd;>1y1q<?v(ftU@VlJ7vsd>fV+C-aR4GC9l&CW21kwG0-hKJO6aMfH46B(v}s<f$$ z4D1@7o}QlI_C;=HUIZfpOKxHXn99tHgz!LxPhv_6B*Cf^7m{J1S}Z@fq$o2l9lhv; zh+4BV%!k&xkO~kY>{ObWlagA*!LX2#ffwA0P>2TQn_^oohItH&L9SkcR&zo$f@|1$ z49j>JmNTpXMM6PAYF-K>gDx}@kV|c7G64%gbVIGR=3rRG$iNs2vTF^<q_t=UKvY}f zHUOk^JrBbihPjLkT*3LJMaijdnV{Ab7uYj;pjw7Ok%5tcnSp_UiGc~!bOW>488{di z892dgE(RV3Mh0#$$;-gN5X->Kz{J47AgQ&Tflo_&D}$icZU*7V?F^z@8N{@<Ge~R% zYm;VRU=U+qWnf_7Wnf|8XW(QIU=U#tWRPGGVvqsLfem4hWsqY40ZFjsj0{Ym)*u5T z1IVgQ26nL1G_|%d$ops?V^G@7pd6{aok7)CXE%dJBp=^)2CZ!jx>{Qp#B{bX7>0wa zW@Z3cEychFwuF^IoPm=;l0k?;ib0-1hCzct4s5*w#9*lPtPCm)rVM7F_A7%JgE@l* z0~3QK0|O`&{xE2;GgvV>1QKGB82I#18B{eFjDbMg|53R*?N0;J#)93o3!F0R<fc z11r=TMo>8h_1ijda5FI2f;4YqaI|7s&Y&U5vXjA;k>LP?vY+lY2JdYQ{(aI57z82g z;69lJ46M2vK#IZ`8D{;z!U(by;$KKmt22l*Xfo(CXfqfxs54kI=z|@h#lXVAz+ek? z1c(*I5Dj*uEkg`LGy@ZZID-^JEQ19DGuYR{3{3wSco<mO85kKE8Q2-z7#LI-7(p#( zsN0R89_P^7!XUVfAr9mWCUCGr{B8oa7UFjfsI`os8VstRT)(rdLHM0{4FdxMvfnKk z#KAtcWiVv0WUyv%1UrICeotmdfk%ESDDoMnGq8h`*ez({_tS<(m>CO%72IdWswK)I z%F2?mjUjCogQ}Jegtwg`V<v;RE+_$uvb2Nb+ri1$FkDNNg(X3h6`>r&Ls8C>&@Re~ zq+FDhB>|xv#6wXIGCcuFIZFzP=_#VDD9Tw<kWAMF#VQLpR-G6G7#JAb7&sU_7=#!+ z8DtoI7&ICD7|a<07`z!m86p_M8PXUc8LAlK7}^;U7^X5LF|1@rXV}J&$#8@ro8bmS zJ~%S$ARz`#5ey8s7;+dazzOjdLoPVeaWGtB$YbDOU}g|vIKco)rYsCH4Ew;zl$9Z$ zfdO0$K~xn$lPfO+%RdHhb_QWaMm;?}1}0Dg36jtl`50KiX}?QLMiv|mGa00`w=on# zxux3}%C|98&0=6>UZW+$k|4W{Aq}FU9?C7<#?XXNAqx&{h>CKM8424MO1Ci-B2=)X zAk1jek^yr|w=vYiRIngYtr;j8F_bcJGn6wZFjO)qG1M{WGBhwaF*Gr_FtjuHGjuYf zFmyAdF-%}6WSGRz#xRAUgJA|ZAR(!`3m%YN@PO<B2O6ko?E(iHBuBF`uqY`if=c>U zhBkOYZU?(yF9Qp>m^OnZWM8BLNfMObpaqhSmag_ThK_9vUEv^6a0&ES2a!l1CD2?3 z4u<&*@(c?Zv>4_ym@q6sa<3WOy=GANaxmyI^f7QSFfqt8a6?NVL?nac3ZNyiIH*h# z0hdYa49e^b!jN)Fl!1|<pJ4(tx^o!V7}yyY7^X4XFxxWQF`Kc#{KB@JAy<+OR=8TR zO0q(8tMnoUUO2}F&XQSzBy0;64(^jhs1EM4gA0qYEMee-^UPR4Hi5&Ze>cO#NNE{a zQI_otlR-fRDX{Dq_!$@&Rx&U#tYTncSk1u3u!ez?VI6}a!v+RDhD{6>3|kpo8MZU{ zGwfoBVc5fv#;~8EgyA4VJ;OSNPKKl4Acf?mY0w~LVwl1(4P2<RFic{Y4ldN$7$z{x zV2Ea5X5eJ#Wthnj&A`H-$Pfn(W>#=PZ^OX)pFxy?9bC}Eiu(TyN^lWyP`fcOh>87Y zkbsLqf}VkqVHU$|NXRodftwEu3|yc9*M?QakUD`2+*~-tz{zkL>~b+Mp9|`81_mx@ zVqgR{RG{WLGcbe81<BnE^CE>7Y-d;mGI$%qQlXXG7*=m%SO*GBi1Cmr=K|PhNR=ZA LHJXtDqG}@m*`}x$ literal 5471 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 IaMR)l0Ic~Ia{vGU diff --git a/bin/de/deadlocker8/roadgame/logic/Game.class b/bin/de/deadlocker8/roadgame/logic/Game.class index 20a792026f1a3a7feb2fbf39d3855e87f54a0d37..dc3bfe85233eb41d5d7b319ec476fd8804810208 100644 GIT binary patch delta 893 zcmdnOvyGqY)W2Q(7#J8#7~Cdutz*=m9Ka-{Uy_-VT9BBWU92CHnUfljn4E2`8OF%K z;+&t7%EiFUz{|tH$-u|Rz^tJe#?Bxx@qz{~KZ6iRkc*RnkwIh<V=Onw43JJn2A#=) zOp-z%KB}3MBN_9h`56>=7!(<l7#VoeQ%iyp^HTD2L6$NyXiZ+gsLByiS&(YY&Y&`p zS8;Ly6ALdFgEE5}$R>402JOiKOez9k6=3I;R2HN%GJpi7!Geqoyul@j$=SY%1tEz^ zIjQUnI*bfz69wczCNYOp7EHd+=)h<&S%K*i2S0;34}%ed@#J4j5gf`4HarZr40e;7 znDsgM860>R92xW`?_@5n_hn#VU}9ik5Y*bvz@xRBfj?4vJA>d>2H}ki3=B*Rq6`cS zd<@JC3=F&sEDZb%0t^BSVhjunVh~LX;tUcDARx#f$sonR$iT=T%^<_T$iU6Oz@QK2 zGcd4fZDA1J05^_}fsuiMK?H0JPd%8!3N?q3L6$)dsymf|8El6*NcT1dc^~cL46KYB zb~7l0T&M~%j~VPdAqEx(1_nt64hAU(9tIf(J_dQP*$^j+LyhKO;AhZa&}3j_&|+X< z;9y|<!@$SRpbfHLmq8C|ryT<m*iJSr?X3*@h!Efci>ffNGN>XM%?34^fq{*I9b_Z} zBZDE_{m8!82e}p!m=ND<f{o!}V610gU_kiZh{2eFiNORMRHooCw1v8e6BG*C+ZfEy zP0|CK1o0~;+(DcS7ElLSGFU-97s9{<jz~Ujoox)(Q1iU(5x#`PvoQlJg9!sKgDKcx b1&9{7!F*7IL8-!t!I^=Hfsw%l>|R#@C|+^e delta 670 zcmdnSzlDeQ)W2Q(7#J8#7%bTtm?k$eDNfYul4jP>3}a+qan4Uk<zirF;N@Z9WZ+_F z;Adn|o+u#4@06cdl)}Zp$H2?Uz{nsp*_<(U@;SzAaXtna9tK$kDMkj~^wg4|#JrUJ z+>p$i$==KkjEa+cm@jegF=+5GC^M)`PGgB+(`C?SXV9D6$fU~3!(hN*IQbZhJ_jFz zF%N?YgZ$*bEXDOs49pCS3=9kcTH6_Tw01M_MQ&#h*vcTdk%57Mi9wiwfq{>KnSp_U zhk=EGkAa_opFsr71M6WBWe{UvU|?hrXOLiEWZ-6CV9;k^1e?dIwS_@&1Kbccu%IxK zW>&D~dXR2O1}Ug+BdBf;knU{^(&z?AAQ`{`HUOkwjzJ!(-;RNafr){EflW($D}w^U z4_shTSq4@HIj{+0U_KjzXg$~i3=C`x><k=W%a!1cLH3FQx=WP6=J0^M1@Q{VCCUsc z3``8FU~j8|!^0NpB2JKxw6`&+qZ*{jz@QE`3F0D7sGk@ZI2kmd4$@-Ko*cj~5~Kq) u!3g0kNYv;surlZ}@G|Iu4N?F{7a!apKBz&Uh%{v|V_;%nWH1Li&;kJeU_a&n diff --git a/bin/de/deadlocker8/roadgame/tilepacks/TilePack.class b/bin/de/deadlocker8/roadgame/tilepacks/TilePack.class new file mode 100644 index 0000000000000000000000000000000000000000..b6062949311ba9b6e03b21dc6006417329ed37e3 GIT binary patch literal 2629 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 literal 0 HcmV?d00001 diff --git a/bin/de/deadlocker8/roadgame/tilepacks/TilePackDefault.class b/bin/de/deadlocker8/roadgame/tilepacks/TilePackDefault.class new file mode 100644 index 0000000000000000000000000000000000000000..7c1427b4892c3b626dcc421e0966f879a5d01d83 GIT binary patch literal 2632 zcmX^0Z`VEs1_l#`iR=taj0}b;sro6Yi77ex$=Rtz7Wzf`i7DxcxvBaknK`KiiOJc; z`XQM)sR4<}*)FMRiKRIu><lc73|ho%V`N~n$;`_vv14Rl*3b-NWMFa5Pf6uq;ACWA zhZ@Pnz|6qS!@$bG!^j}2;ggkEmZ+bTn3t{}TvC*omu{^Y#?HXU$RG%oC@sm%(f3F! z&hSkv;9}rq5CCap<78lD5aMAFW)NXyU<J9on2|vkViK|jYfc6+1_^csaYhC;Twch@ zPtQyS`#PkuAeDzfl0k}*fg{M@(Iwv1&xMge!-qJX)?5rS407xYvM`r}z2uo!lA4}c z#KR!Zpuot$UY3|sn(Cj%$RMWSsR?l}vNCIs50!Wrlo?bQ8JG)7OBfj}kORm+DJwO( z#2QH>R0P>9s1V5OYCH_;An)*ky%QV~<ml<{5dxCY<YCYP$#8*XoI``cTtUJ*JPf)Z zVScc1NW535pL2+(zaL0WpNGK!As2xnXT-x`jF5BnbBTBM2n}-f0O>R3VK4*9iGa<7 zIRZ(61rLKINP!?&0oW}_verBdHXvCsuq?t!NJ{K@80-;B5H3Sf;>g3`1X9B5>=+#4 z;~F3A>F4eP_Oc5PgDXfz3Mvy4?hloX_YVm05B3ZJD|6>z@W7$W&(+i2!^uAg<XJBs z25*ouVVG$iL9WQQ`SLLMf#ijt@^1d2K~U>J+5>nP0zuOJQ0b5$Pe+(TgLxQ2KyutL zxlkvt%ffgV!jZ+@LVbKdW<~NaM1jOPpz1?Gf-yV{u^>Tds30U9;=y4HiyDx+cpioX zkUBXm>L4)`1WQUuJPgSorLs7c`nbA*6J06~LmDoXh=>JQpTWbB2~w$m#Y|A@^7M;` z$bb}Q^DyLq6zf2Qpuq|86Ovm&**P9XV;&DfK1icBPK_X!W9lp9VJHIW(}3#3l4KyZ zBZp`S4?`(PlPabrSOS7*0y`PxuW}xS3Xl#Nm=2`01X1eh=K@k##luhyQV37N&{P9a z1UIjihoKI)GI)G8@Gvxjlu5#@MKKK&A|N}Pc^FzyRE0XZLhSSR10{GDaN2C+VQ9y$ z3KC`zRh>KxT_9D0P#Z%b27!xTexJ;|RKL>Pq|~C2#H5^5Mg}3D{N%)(u*9NF5FaYY zQj(Eb%*bGjv#<tL5?CuZYeojH;QZ2}<W#pzkntjD6`&rd8e&jnU}Rus00Bk@Mg~>} zHU>rpb_NEfy9~?>j0_A+@>)V1+ZnjDb~ErsZfD@%${?t<g+Xu=gDA@m2I*}Kis2Bh zDk@h4m8*@))kEbPqH;}8x#p-`D^#v6D%Sy(>x{~EL*;s+a(z&_{;1p_RBk9LHv*L# zjmnKf<tCzXQ&73-sN5`6ZZ0af0F_&e$}L0XR-$riP`UM}+$L0RD=N1G#@)!kz`(@N z&A`Agi$RTnfq|QWje(azkb#dufq|bvpFx1ZjzN&YmqCajhC!Gin?Z!3ib0g2lR=DO z27@@mas~;8Z48nOM;W9Tt}sY5JZ6w#_{1Q~$jBhaD8L}k2x?pCF(@+HGAJ?nFeo!d zGpI0TF{m<DGN>_jFsL(5XV73=#-Pc#l|hT~2!l4`Wd<F_M+~}*9~tzR7#Q@K_!$hC d<QNPYdKefOcp%A{p_ieLfq{XMp&#t>2>|8(c5MIv literal 0 HcmV?d00001 diff --git a/bin/de/deadlocker8/roadgame/tilepacks/TilePackTest.class b/bin/de/deadlocker8/roadgame/tilepacks/TilePackTest.class new file mode 100644 index 0000000000000000000000000000000000000000..b4da84bd8b356f00fda881df6ae9c538b92c1cdd GIT binary patch literal 840 zcmX^0Z`VEs1_l!bLv{uxMh3l<RQ;6H#FU);<m}WU3;m+}#FX^J+*JLN%$(GM#N_N^ z{gBL@)PTg~?2y#r5_Sd_Mg}e7^)NE9*<|Krme?^eFl%UrF*2|?=clA{FmN(5uz<|t zVqj+A=3!uE;9+DC)$qwmEKAhSNz6;v4=yRn%uBb{3}a{DV`LBnOO%#m=IDDQ7H9Y- z7H~1}G6;Y)vT-snG6?Z72s4N<GO&VNUChWJ3^55=gEc3E7=r{mgE%9D8ZP(e<fmsQ zgZ&#)S&+)ZAju%b$iNZg@8}Zm>gU49py5NDPHQd(83s9a23eTP!CvyrD@jdHE#hI2 zXHZ~dU@uF|DNXfHV`LE1@YIC37g?D#$cIWi49W~Dj10^Lr6r6E7RUkQpOlrFTw;x+ z5h{Xg7E}o2bu}Iab&z*>!QKfD33Bvw_Xq*WX!0;<fn>PAGR~nvVXlk}{63j^seYxo zNvTC4iAg!Bj0{3P`N@enVTnbVAU;%(r6eP>n32H%XTX3W1Tz^~Gcs@m=a&{Gr@Cc= z%oapWV|t*-W>92cWMF0h0Y(N!237_(21W*U1_p*&24)6E1_lOuEg_EW3|v~f8F(YN zGw^R^5Y*bjAh?M^lw}8l^fm^?a0piwm8-!9mEFj|z`(?y&A`AQ#lXhEz`)JG#=y%U o$iT;-z`)O-&mh2H#~{d{!@$761F?=lmqCw#fq{`hAFR^=0M+f%OaK4? literal 0 HcmV?d00001 diff --git a/bin/de/deadlocker8/roadgame/ui/Controller$1.class b/bin/de/deadlocker8/roadgame/ui/Controller$1.class index ec7c6013bcdcb9d922c7a1cb2a9b98d89f319267..6f25679d13703a2bd3e5d1e2f2263eca6fb93cae 100644 GIT binary patch delta 27 icmaFQ`JQuwAPb}YWFZzGP8SAV1~&!~29L?<EFA!4{040R delta 27 icmaFQ`JQuwAPb|-WFZzGPDch_24@Bl2G_~yEFA!4at2`l diff --git a/bin/de/deadlocker8/roadgame/ui/Controller$2.class b/bin/de/deadlocker8/roadgame/ui/Controller$2.class index 4cc8ad6e254350d45905509b71d3928a0b3a6d4f..fbe577013de6ba25a8f7dccf22368c68e3f615ae 100644 GIT binary patch delta 27 jcmey#^^<GEWERGylc%tRaIRwDWmv-?!?14hN0tr%kfsT_ delta 27 jcmey#^^<GEWERG`lc%tRa4urtWmv)>!?0}fN0tr%k2VRJ diff --git a/bin/de/deadlocker8/roadgame/ui/Controller.class b/bin/de/deadlocker8/roadgame/ui/Controller.class index dcd66c72351bac9ad3c637bee436fa64b380acce..5cfb47e5e37c56fb953c13b3aa1a0facd10988d5 100644 GIT binary patch delta 7614 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%0A)xYc!u<0cvugvDMT5x87sgw zg))OIV<otLFl69otYWx>Tt9$~dkRhEk_=4$891TU!*fv0z{tSPm=9|4FoDL8AnBgr z0RtO2tCWE&0mf<{?c)q8AU5MR#yYJn^$fw=7+S#X5iOADHpV8#?Tl?3L2PZX3M2(v zz-)**hWC(a9a8#1#27&hIaqD8jj;n{5WFzdW8h|BVAN*dVANsYVbo&~Vbo_(V5~P} z&|x%U&}B4bFl97naAdS#h+(v1C}p$;hbJVPmqEjmgCURMFT-PK0B|rc{$bE%XL!lL z2pV>P`gbV<8>nJthynTF7`QR{b{oTcPy=QQ1BkVau@}^kh5EXl0m^~+fMj1uF|aW( zFxoQ+GCDFyGdeM-GdeRkF}gBDGrEI40BLZ?Ks^9T?5qrozZs$#7#aH+6c`xmK`EEP zoB>poGB9w0T;aTpaRQ=Z<^shYqc;NwqYsjSoKOQ987F~E0U5%m%fJFIFza?RPL9;t z#yC}&appG0+1nWxf-=OC1B}akcQdYx+|Ib#PgiRTgY!1VHM*PX88>WW+@>qcxN95Z z9^KuH`y+L>GalT=ctm#_;|Z-T4BC+R)n(qscv^cK<GBNj7p+(%SwIG8Yi(n^th<fz z+HwXypG}N6wRbSy-@*8FBRKf;8H&I~E~qo~=Hz!=0J#2CyV#Tde%#2Ct;#Tdq5 z$QaI0Z^0PB;KCTm5X2b85Y8CQkiZzjkj)s&kk1&;P{f$PP|TRbP|KJC_PZS@uo>#0 zeivehWqi#DYVb%ggfhNme8<4Vpv2(I_?|(4ftewJfuHdM<3|P-hGGUT#!rl&p{a(G zf$2L#5j*2c(D2k3#`>?&bTf~E1r*W@o}m5;^EQSO<X#BlHztOe3?e8(KS4c}-3%Wh zwYM|=*~;)16m@T**+&c7wt_SRAO%MT0|#R!gEV6{gAQXJg9T#&g9~F3L%j!MG1zaA zl<o=j8v}zU<3C1Fkq1gL%nXb=42(<+u&8GE1nsL$+0DclxrvE+I}@jm_HHJgNMR<v z?Mwn%TNtc`nFO~n32$Q(-^L`pjY%HVmw<~YK-DU5XR3!PR)r`QW>VkABo5K92@}$W znWC$`jmcmelgTzFs{@QHeRWWhh|V@9JMC>uj^T*3s|G5L8Os^C87mkx87mpg8LJrb z7^@j-7;6~17;72&80+d8CNtK90|3(4oB|C1ZiY@KS0*<GMur*&2_|<20R|=k4kiyq zK4^5QGcbc&tn6CSGTWIv5q3gy{}iy1ObiSH9H1d#sHT|=%;3anyNSs=@)!flhVUKr zOuqZ}aCvKiYifHo|K$uU;aZ!R0=F^Rv%okZ+ZgRxA)Ls~Ox~d8jsSxsgA7wRgDis@ zgC<irgBF7^gBepewA}}B1Ej|dD)B*aD96C=!Oj%<pFx;`k)0_LM1(VVv)40$NTzU* zL**Flpbk9?b!hk|rYNXGnPMRBWQyO$7zB0ACZ?oqj6rZmr*2~mVu!eM6H~@E#vr&4 zvbQk?aX@4uH#0?TU|?l{`k)@e3+4<C49-m93@!}53;}q(q`|<A%}X#Jd9%Y<3`|V9 lpx!W39#cL81A`O;GeahL6rX{SAJk(2$+0joG8H&T0syo1*$e;x delta 6618 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 diff --git a/bin/de/deadlocker8/roadgame/ui/GUI.fxml b/bin/de/deadlocker8/roadgame/ui/GUI.fxml index 563b3ab..22974c0 100644 --- a/bin/de/deadlocker8/roadgame/ui/GUI.fxml +++ b/bin/de/deadlocker8/roadgame/ui/GUI.fxml @@ -39,7 +39,7 @@ <Menu mnemonicParsing="false" text="Menu"> <items> <MenuItem mnemonicParsing="false" onAction="#reset" text="Reset" /> - <MenuItem mnemonicParsing="false" onAction="#showPossibleTiles" text="Show possible Tiles" /> + <MenuItem mnemonicParsing="false" onAction="#selectTilePack" text="Select Tilepack" /> <MenuItem mnemonicParsing="false" onAction="#about" text="About" /> </items> </Menu> diff --git a/bin/de/deadlocker8/roadgame/ui/PossibleTilesController.class b/bin/de/deadlocker8/roadgame/ui/PossibleTilesController.class index ea711209c766124b319448d080ffd7c51f0a6883..b731ce80406763fbbf987bec49d038ff13f35890 100644 GIT binary patch delta 1800 zcmbOta85$t)W2Q(7#J8#7}l~gFflS1O@7ECy-_=ckuhs>2cym82P~38C7C&?1&PVo z#rh$cIjI4O$=Q<+GdA*Zh4=@=JG=UYxCSvYh)!-`5}lmPWXGsA`5}u$J*FNW1|tSz zMh1@b)Dn;}#f%K18k#;?iDilUr6rj;`W}hJ8NP`H)?5sx4Cd?%W{eDi7?L~;77Uh* z3~bq{mBFbcj0}P(CIqLJSaUO2GuW~-)Y~vJ@FKJar<U+A*fH2MGH_&;q!uNX<QFkA zh@oiqgo;~pGdMChvokm`G6*3IfXVVOxG=afGO*;OR+KO@h`>z9Nz6;v_fN`7O)jx! zXK-g^n7oilosFHrlaWDUvLK6yx`$JK1s8({gCHk^DuWLXgD-<7BLf>G@Id0)><j^n z3`(G&n|z*`i;s)JpCO2cftMkekwIGn6bm5X$^V&Hc{Rhh7(yAs*%`tZ8B`}fWKm`1 zVTfReoIH~`pDmUlo}D3XG9QaleFB3rBLjDFYKd=RMR;aPNd`MZ5+j2Y$V+Jz`o+nq zd8zuz`FSNp`8oPNiAkwB><lT44B{YpeXw_eONuh{(w#~(b5c@^I2h6x85k?L7?K$> zK+ehp#U3Q`kQ7^k+-Ay<&BKsW&ydT=z?=?>BsC2rh0s8PMm$(AR0w2tJ`Y0yLm?vr zTVg>$YF-K>gDwHRD2}uS8Bxr`P{L5kSkJ&wk`IwZk0*$zH5Wr7Lk0&!1tWu|Zd!$I zT7F)MZh2~EdPa$rLQ;NCinRh<xHz*a)k?w00Ia8qhoPDwlaYa=IJG3Wq%tQJ6o0im z40R0kj11iAsU^-CnK>zw!&r1V8yT9}8JZXw6eq{CDAw~Zv@o<XGB78mq@aZ!Gz2uG z*csXx8N@(wkXE6eo|>PVT2fT0@0nMeT2jpBV95XmTnudt-JnS5VPs&}aB*>Q0R_7U zLmv-AKf?q@22OCK7o}(BF*4{u!VeVVj^HTw%TGzQ2FC}c4dCdLXQ&0`fXO@zQy8W) zGO%YP7W;t{JF~{*b1c?89H5*HDgzi9bU^7+2E<1#9jqA{n6pzW85vL#E(;?AOUA?) zX%<jkm~79Ql*p9>N_Qcdxv9mB3^FiBVM&_Sj10WNC5g$|zKI1PiAg!B><r7G*%Rcm zlEm~>{a_Hu$iR}6n4HbUu#{mX55ua-tZZ}Y1sH@G7#MgM7#SECSQ$hZL>U+u7#YME z#2FYF_!$@&*E4W4a4|42T-MUw${?Y&g+WS$L1r6+9Ei1vL1i0*mhLtNy=@F8I~lAP z8LU{BGc1&3-O1p<$Z&wc&5C6=gGc0c1}`f%Nw!T4-rE@bb~E@#O0sNc2()6?kz{AC zXJ+2U5Msq4$sxiJwT&TWH$!6NZieJYq15dR=^&FOS++4`ZDYvW#!$4Kq0EX?l2fRB z8$+ce+ct(8NsgTi4NMH-5Dq7l!?~NGEs~FqPlTakJ44qFhF*|Uw=qnVWP>VT-N`VC zkzv;V=#2~v^$g4mLJSNHZVZA93=EPCtPIi&{0uS-k_>VTW(*1p_6&*)?hMKdK@2Jk zu?(sVsSN52Z44R=y$o6mvlz4)mNV!u>}1eoIKd#taEU=59GEc-oS*=M1||c;Wd?3& z0AFU9#xR|M2`oE<VI~7JL%kWpB!*cGvl&<z>=`;4<}l1<U}FekC}Wt%FrR^)A(kPV zVFANJ1`dWc1}BC^42u~!8I~|GFvu`4{b$f(U}I-sWM^2)&JfDZpwGb0;K;!6n_(^k zBg1kAK1lpAm@zPd<Ca5f3xmWqh7}tb7#NtqUgiQhM2W$eft|qw>~2UR;DEZDkzqAh G=^6kNd%M>F delta 659 zcmX>nF-1V&)W2Q(7#J8#7?Rl;m>3z1CO5K3Y}ANnWVD;y!Duu217iaho3pE5h-(ld zgXrW9Ornz~Gubh!O>SgS6X9VnVlZZ8U@J?^DNQYAWYE^ojGi3GAvt+I2R|D-gDE3} z(&R=KB|a_&69#i023`gWkQ$f@Ud=Er1}g>|b_Q!k233%~lh3m7GutxQO}@{P&*sG7 z!p`74IfPY7+Lb|>k%7B7wZu2EB0MvtB!i1Vp23}m!Gpnb@(VT#PHzTZb_O3t2F1yL z*c4fL82lLgC;PL@P3GaS<mXN<Eh<XQD+#GANM&TufLbmz`6@@8Aa8I<Vsf@`VnIk^ zQcfy6L)7E~PEmGth8RW$xJQI|k`j}%xfmiD;&~VnCQsp<!^kt)kW0Rvg@KiUlYxOD zRZDv-gM`)=1}PB+nQaVmAl4=Zm2C`KI~epLt=RUNu`-*nEN8HgWD{jE^4rZ|5~;hL z!OV(XN0ObHnRy$7r4@%HhX{lHHU>wK-fawSk{ml3yqFlmTUZ!HSwvYE{y)Bvfq{XU zL5P8YL5qQlfq_Akp`MjNoPnP~f<cl&ib0P-hQWeCmcf}pj=`Hjo*{}siXnwTkwKV& zfx(V}4dhA&5e88P5J+X<X5e991d9bQ1Tru&=rQOp1Th3NFf&*%C^3XEgfg%*I5UVd zgfWCOa4<wLFfd3mF#TuHU|?rwU}R^AWM{BqU<_qsXNU%+8%Bm$20jKx27U$x1~Udm wu*n=+TNos^F~otK%>;Hf7XuRm1A{69JA)e7RS*|&KwZVikjTKmz{HRQ0G@1gXaE2J diff --git a/bin/de/deadlocker8/roadgame/ui/SelectTilePackController$1.class b/bin/de/deadlocker8/roadgame/ui/SelectTilePackController$1.class new file mode 100644 index 0000000000000000000000000000000000000000..c1af4747b200597f3f0485cb0d6f4c16ee33ed4e GIT binary patch literal 3323 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 RhD8iZz;Vb3*1^EQ001+bqSXKZ literal 0 HcmV?d00001 diff --git a/bin/de/deadlocker8/roadgame/ui/SelectTilePackController$2.class b/bin/de/deadlocker8/roadgame/ui/SelectTilePackController$2.class new file mode 100644 index 0000000000000000000000000000000000000000..be74b4de64a6fdebf063304046ebd578eb8bd2c3 GIT binary patch literal 1892 zcmX^0Z`VEs1_l!be|82YMh4TARQ;6H#FU);<m}WU3;m+}#FX^J+*JM2O#R^0oYdr! zkj$LafW+i%=lr~qqWqkk)FKrlb_Nzk27#=^vPAuy#JqHU|D>$c<PvrUHbw?XkZ4+k zerj22UWvXdi1bLzOUX$sVq{<|$;d2LF<@jc^&!JrYeojXvcw#fWVk~Z8PxF^gmAGn zBLhEJYiUtYYF-J*JB$oEIQ5of=A;%RCTADx!#r=z$iN9QptvM4J(ZC`#0Tn2Fke3y zBx=pbz-E(~msw)R$S_|6r`dSI)f%5BB+uYfhQ;039I6?{$iU*9pOVVSz{nuX!@$nK z0b+^rFmN((fmq@^4BQMnAeJN#11|#~7XvecG!FwmgA5}Bvj#{zzfWdfs$XetQfg61 zVp2{jBZH7nesW??SYlBohz}KH0Yx|?gE>wY;|UEFBT$HDfYS~mgOUc^C&{UKsrs3D z1*IkWzWJraso*qbtr^C}pu(WW&Y;T3APb8ftV($p)EP7w8938ZOPoqeO7inSrfcFf z9-_vYlR=9?hn+#2kwFfZ=@6AX47v<@j124nL7u*jL6M9M3WSX2V$fnR;9)RiFk)n2 zOD!x-%qeDM5QTUcIe%GeMsYEiFqpA3m@+b`;>kgXw8Fz+&S1gFz+IdQ&&P}m`nXdk zmJ|dESStn_b_Q!k1|gW&K?xp`?0Fb$LCJzOIVZn3m63rJobMSK<Z*f$5?zc8yul@j z$=SY%1<<r24)HK*(E*NDMh0gd21N!XMh33n{L-T2RJTk}ij&1vKIws6$;iMNoSB}N zSW;S)%E;gcb`DBlf<;hmgBDaaFsWj!>Brg*RGhfxfqa~qm+qTdl98Xn&fvw!V2meD za5<KT!H2<@k%0wNaxgMPzykrfWI=OJZen_>z9)zzw!{EsSsu^4ywoD+oW$bd)M5q& z21W*E21W)}1{MJUPzk`mARq+F|6rP%fd@?UGVn1lFfcPPFz_=7FfcL*GB7ZBFfcK& zGB7YmX=!g|5Yp1w${?bpyOlvqOOj<PgM`+02C0n<3=B*RvJ4CiTntPM3=E76q73N_ zatsU%JPeE=oec5}3Se<X1|_JenG8%|wF=tX7?d|LXl`TBpUEJqwS_@MYYT(eHU?v@ zEesOd7%V|%GlR_*VqjrlV8~(MWyoWYV8~~XXD9^QAqFuAY6k;@0)ricJp&_y1K1~w z@&b+wiVTiWYc-+Pa%yQGU{Kk{-~=)s;&wK$TN%M-f_%Zk-~#rSD}x)Dc4zQlU|?Wj S@MQ32@B{mm5v+rOfdK&Z;sv_^ literal 0 HcmV?d00001 diff --git a/bin/de/deadlocker8/roadgame/ui/SelectTilePackController.class b/bin/de/deadlocker8/roadgame/ui/SelectTilePackController.class new file mode 100644 index 0000000000000000000000000000000000000000..3cdb96bb020372702b45494abf8dafcb6f5488b9 GIT binary patch literal 4825 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 literal 0 HcmV?d00001 diff --git a/bin/de/deadlocker8/roadgame/ui/SelectTilePackGUI.fxml b/bin/de/deadlocker8/roadgame/ui/SelectTilePackGUI.fxml new file mode 100644 index 0000000..b13ba0a --- /dev/null +++ b/bin/de/deadlocker8/roadgame/ui/SelectTilePackGUI.fxml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<?import javafx.scene.control.Button?> +<?import javafx.scene.control.ScrollPane?> +<?import javafx.scene.layout.AnchorPane?> +<?import javafx.scene.layout.VBox?> +<?import javafx.scene.text.Font?> + +<AnchorPane prefHeight="400.0" prefWidth="400.0" xmlns="http://javafx.com/javafx/8.0.60" xmlns:fx="http://javafx.com/fxml/1" fx:controller="de.deadlocker8.roadgame.ui.SelectTilePackController"> + <children> + <ScrollPane fx:id="scrollPane" layoutX="14.0" layoutY="14.0" AnchorPane.bottomAnchor="56.0" AnchorPane.leftAnchor="14.0" AnchorPane.rightAnchor="14.0" AnchorPane.topAnchor="14.0"> + <content> + <VBox fx:id="vbox" prefHeight="231.0" prefWidth="272.0" /> + </content> + </ScrollPane> + <Button fx:id="buttonBack" layoutX="119.0" layoutY="256.0" mnemonicParsing="false" onAction="#back" prefHeight="30.0" prefWidth="63.0" text="Back" AnchorPane.bottomAnchor="14.0"> + <font> + <Font name="System Bold" size="14.0" /> + </font> + </Button> + </children> +</AnchorPane> diff --git a/src/de/deadlocker8/roadgame/logic/Board.java b/src/de/deadlocker8/roadgame/logic/Board.java index dc18b3c..dd774fb 100644 --- a/src/de/deadlocker8/roadgame/logic/Board.java +++ b/src/de/deadlocker8/roadgame/logic/Board.java @@ -1,26 +1,32 @@ package de.deadlocker8.roadgame.logic; import java.util.ArrayList; -import java.util.Random; +import de.deadlocker8.roadgame.tilepacks.TilePack; import javafx.geometry.Point2D; public class Board { + private TilePack tilePack; private ArrayList<Tile> tiles; - public Board() + public Board(TilePack tilePack) { + this.tilePack = tilePack; this.tiles = new ArrayList<>(); initBoard(); } private void initBoard() { - Tile startTile = getRandomTile(); - startTile.setPosition(new Point2D(0, 0)); - - tiles.add(startTile); + TileType tileType = getRandomTile(); + if(tileType != null) + { + Tile startTile = new Tile(tileType); + startTile.setPosition(new Point2D(0, 0)); + + tiles.add(startTile); + } } public ArrayList<Tile> getTiles() @@ -41,21 +47,9 @@ public class Board return null; } - public Tile getRandomTile() + public TileType getRandomTile() { - Random random = new Random(); - int index = random.nextInt(TileType.values().length); - TileType tileType = TileType.values()[index]; - Tile tile = new Tile(tileType.getN(), tileType.getE(), tileType.getS(), tileType.getW(), tileType.getC()); - - //random rotation - int rotate = random.nextInt(3); - for(int i = 0; i < rotate; i++) - { - tile.rotateRight(); - } - - return tile; + return tilePack.getRandomTile(); } public boolean containsTileAtPosition(int x, int y) diff --git a/src/de/deadlocker8/roadgame/logic/Game.java b/src/de/deadlocker8/roadgame/logic/Game.java index 9900520..1d51cbe 100644 --- a/src/de/deadlocker8/roadgame/logic/Game.java +++ b/src/de/deadlocker8/roadgame/logic/Game.java @@ -2,16 +2,17 @@ package de.deadlocker8.roadgame.logic; import java.util.ArrayList; +import de.deadlocker8.roadgame.tilepacks.TilePack; import javafx.geometry.Point2D; public class Game -{ +{ private Board board; private Tile currentTile; - public Game() + public Game(TilePack tilePack) { - board = new Board(); + board = new Board(tilePack); } public Board getBoard() @@ -21,7 +22,13 @@ public class Game public Tile getNextTile() { - return board.getRandomTile(); + TileType type = board.getRandomTile(); + if(type == null) + { + return null; + } + + return new Tile(type); } public void setCurrentTile(Tile currentTile) diff --git a/src/de/deadlocker8/roadgame/tilepacks/TilePack.java b/src/de/deadlocker8/roadgame/tilepacks/TilePack.java new file mode 100644 index 0000000..6ca06dd --- /dev/null +++ b/src/de/deadlocker8/roadgame/tilepacks/TilePack.java @@ -0,0 +1,73 @@ +package de.deadlocker8.roadgame.tilepacks; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Random; + +import de.deadlocker8.roadgame.logic.Tile; +import de.deadlocker8.roadgame.logic.TileType; + +public abstract class TilePack +{ + protected String name; + protected HashMap<TileType, Integer> tiles; + + public TilePack(String name) + { + this.name = name; + } + + public String getName() + { + return name; + } + + public HashMap<TileType, Integer> getTiles() + { + return tiles; + } + + public int getNumberOfTiles() + { + int numberOfTiles = 0; + for(TileType key : tiles.keySet()) + { + numberOfTiles += tiles.get(key); + } + + return numberOfTiles; + } + + public TileType getRandomTile() + { + if(tiles.size() > 0) + { + Random random = new Random(); + int index = random.nextInt(tiles.size()); + List<TileType> keysAsArray = new ArrayList<>(tiles.keySet()); + TileType tileType = keysAsArray.get(index); + + tiles.put(tileType, tiles.get(tileType) -1); + if(tiles.get(tileType) <= 0) + { + tiles.remove(tileType); + } + + Tile tile = new Tile(tileType); + + //random rotation + int rotate = random.nextInt(3); + for(int i = 0; i < rotate; i++) + { + tile.rotateRight(); + } + + return tileType; + } + else + { + return null; + } + } +} \ No newline at end of file diff --git a/src/de/deadlocker8/roadgame/tilepacks/TilePackDefault.java b/src/de/deadlocker8/roadgame/tilepacks/TilePackDefault.java new file mode 100644 index 0000000..66399cb --- /dev/null +++ b/src/de/deadlocker8/roadgame/tilepacks/TilePackDefault.java @@ -0,0 +1,50 @@ +package de.deadlocker8.roadgame.tilepacks; + +import java.util.HashMap; + +import de.deadlocker8.roadgame.logic.TileType; + +public class TilePackDefault extends TilePack +{ + public TilePackDefault() + { + super("Default"); + + tiles = new HashMap<>(); + tiles.put(TileType.ROAD_END, 1); + tiles.put(TileType.ROAD_STRAIGHT, 1); + tiles.put(TileType.ROAD_CURVE, 1); + tiles.put(TileType.ROAD_T_JUNCTION, 1); + tiles.put(TileType.ROAD_X_JUNCTION, 1); + tiles.put(TileType.ROAD_END_CHURCH, 1); + tiles.put(TileType.ROAD_STRAIGHT_CHURCH, 1); + tiles.put(TileType.ROAD_CURVE_CHURCH, 1); + tiles.put(TileType.ROAD_T_JUNCTION_CHURCH, 1); + tiles.put(TileType.ROAD_X_JUNCTION_CHURCH, 1); + tiles.put(TileType.CASTLE_SINGLE, 1); + tiles.put(TileType.CASTLE_TWO_SINGLE_OPPOSITE, 1); + tiles.put(TileType.CASTLE_TWO_SINGLE_NEIGHBOR, 1); + tiles.put(TileType.CASTLE_THREE_SINGLE, 1); + tiles.put(TileType.CASTLE_FOUR_SINGLE, 1); + tiles.put(TileType.CASTLE_TRIANGLE, 1); + tiles.put(TileType.CASTLE_TUBE, 1); + tiles.put(TileType.CASTLE_FULL, 1); + tiles.put(TileType.CASTLE_U, 1); + tiles.put(TileType.CASTLE_SINGLE_ROAD_STRAIGHT, 1); + tiles.put(TileType.CASTLE_SINGLE_ROAD_CURVE_RIGHT, 1); + tiles.put(TileType.CASTLE_SINGLE_ROAD_CURVE_LEFT, 1); + tiles.put(TileType.CASTLE_SINGLE_ROAD_T_JUNCTION, 1); + tiles.put(TileType.CASTLE_SINGLE_ROAD_END_IN_CASTLE, 1); + tiles.put(TileType.CASTLE_SINGLE_ROAD_CURVE_RIGHT_END_IN_CASTLE, 1); + tiles.put(TileType.CASTLE_SINGLE_ROAD_CURVE_LEFT_END_IN_CASTLE, 1); + tiles.put(TileType.CASTLE_TWO_SINGLE_OPPOSITE_ROAD_STRAIGHT, 1); + tiles.put(TileType.CASTLE_TWO_SINGLE_NEIGHBOR_ROAD_CURVE, 1); + tiles.put(TileType.CASTLE_THREE_SINGLE_ROAD_END, 1); + tiles.put(TileType.CASTLE_TRIANGLE_ROAD_CURVE, 1); + tiles.put(TileType.CASTLE_TRIANGLE_ROAD_RIGHT, 1); + tiles.put(TileType.CASTLE_TRIANGLE_ROAD_LEFT, 1); + tiles.put(TileType.CASTLE_TUBE_ROAD_ONE_SIDE, 1); + tiles.put(TileType.CASTLE_TUBE_ROAD_TWO_SIDE, 1); + tiles.put(TileType.CASTLE_U_ROAD_END, 1); + } +} \ No newline at end of file diff --git a/src/de/deadlocker8/roadgame/tilepacks/TilePackTest.java b/src/de/deadlocker8/roadgame/tilepacks/TilePackTest.java new file mode 100644 index 0000000..6e396e2 --- /dev/null +++ b/src/de/deadlocker8/roadgame/tilepacks/TilePackTest.java @@ -0,0 +1,18 @@ +package de.deadlocker8.roadgame.tilepacks; + +import java.util.HashMap; + +import de.deadlocker8.roadgame.logic.TileType; + +public class TilePackTest extends TilePack +{ + public TilePackTest() + { + super("Test"); + + tiles = new HashMap<>(); + tiles.put(TileType.ROAD_END, 1); + tiles.put(TileType.ROAD_STRAIGHT, 1); + tiles.put(TileType.ROAD_CURVE, 3); + } +} \ No newline at end of file diff --git a/src/de/deadlocker8/roadgame/ui/Controller.java b/src/de/deadlocker8/roadgame/ui/Controller.java index bed5339..6986277 100644 --- a/src/de/deadlocker8/roadgame/ui/Controller.java +++ b/src/de/deadlocker8/roadgame/ui/Controller.java @@ -10,6 +10,7 @@ import de.deadlocker8.roadgame.logic.EdgeType; import de.deadlocker8.roadgame.logic.Game; import de.deadlocker8.roadgame.logic.Textures; import de.deadlocker8.roadgame.logic.Tile; +import de.deadlocker8.roadgame.tilepacks.TilePack; import javafx.event.EventHandler; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; @@ -19,6 +20,7 @@ import javafx.scene.Scene; import javafx.scene.control.Alert; import javafx.scene.control.Alert.AlertType; import javafx.scene.control.Button; +import javafx.scene.control.Label; import javafx.scene.control.ScrollPane; import javafx.scene.image.Image; import javafx.scene.image.ImageView; @@ -45,7 +47,8 @@ public class Controller private GridPane grid; private Game game; private Textures textures; - + private StackPane stackPanePlaceHolder; + public void init(Stage stage) { this.stage = stage; @@ -68,12 +71,17 @@ public class Controller } } }); - - game = new Game(); - - updateGrid(game.getBoard(), null); - - nextTile(); + + buttonRotate.setDisable(true); + Label labelPlaceHolder = new Label("Please select Tilepack first."); + labelPlaceHolder.setStyle("-fx-font-weight: bold; -fx-font-size: 16;"); + stackPanePlaceHolder = new StackPane(); + stackPanePlaceHolder.getChildren().add(labelPlaceHolder); + anchorPaneGame.getChildren().add(stackPanePlaceHolder); + AnchorPane.setTopAnchor(stackPanePlaceHolder, 0.0); + AnchorPane.setRightAnchor(stackPanePlaceHolder, 0.0); + AnchorPane.setBottomAnchor(stackPanePlaceHolder, 0.0); + AnchorPane.setLeftAnchor(stackPanePlaceHolder, 0.0); } private void updateGrid(Board board, ArrayList<Point2D> possibleLocations) @@ -288,7 +296,17 @@ public class Controller private void nextTile() { - game.setCurrentTile(game.getNextTile()); + Tile nextTile = game.getNextTile(); + if(nextTile == null) + { + game.setCurrentTile(null); + stackPaneCurrentTile.getChildren().clear(); + //TODO + updateGrid(game.getBoard(), null); + return; + } + + game.setCurrentTile(nextTile); stackPaneCurrentTile.getChildren().clear(); stackPaneCurrentTile.getChildren().add(createStackPaneForTile(game.getCurrentTile(), false, 0, 0)); @@ -298,11 +316,14 @@ public class Controller public void rotateRight() { - game.getCurrentTile().rotateRight(); - stackPaneCurrentTile.getChildren().clear(); - stackPaneCurrentTile.getChildren().add(createStackPaneForTile(game.getCurrentTile(), false, 0, 0)); - - updateGrid(game.getBoard(), game.getPossibleLocations(game.getCurrentTile())); + if(game != null && game.getCurrentTile() != null) + { + game.getCurrentTile().rotateRight(); + stackPaneCurrentTile.getChildren().clear(); + stackPaneCurrentTile.getChildren().add(createStackPaneForTile(game.getCurrentTile(), false, 0, 0)); + + updateGrid(game.getBoard(), game.getPossibleLocations(game.getCurrentTile())); + } } public void reset() @@ -310,21 +331,21 @@ public class Controller init(stage); } - public void showPossibleTiles() + public void selectTilePack() { try { - FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("/de/deadlocker8/roadgame/ui/PossibleTilesGUI.fxml")); + FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("/de/deadlocker8/roadgame/ui/SelectTilePackGUI.fxml")); Parent root = (Parent)fxmlLoader.load(); Stage newStage = new Stage(); newStage.initOwner(stage); newStage.initModality(Modality.APPLICATION_MODAL); - newStage.setTitle("Possible Tiles"); + newStage.setTitle("Select Tilepack"); newStage.setScene(new Scene(root)); newStage.getIcons().add(icon); newStage.setResizable(false); - PossibleTilesController newController = fxmlLoader.getController(); - newController.init(newStage, this); + SelectTilePackController newController = fxmlLoader.getController(); + newController.init(newStage, icon, this); newStage.show(); } @@ -333,6 +354,21 @@ public class Controller Logger.log(LogLevel.ERROR, Logger.exceptionToString(io)); } } + + public void setTilePack(TilePack tilePack) + { + buttonRotate.setDisable(false); + if(anchorPaneGame.getChildren().contains(stackPanePlaceHolder)) + { + anchorPaneGame.getChildren().remove(stackPanePlaceHolder); + } + + game = new Game(tilePack); + + updateGrid(game.getBoard(), null); + + nextTile(); + } public void about() { diff --git a/src/de/deadlocker8/roadgame/ui/GUI.fxml b/src/de/deadlocker8/roadgame/ui/GUI.fxml index 563b3ab..22974c0 100644 --- a/src/de/deadlocker8/roadgame/ui/GUI.fxml +++ b/src/de/deadlocker8/roadgame/ui/GUI.fxml @@ -39,7 +39,7 @@ <Menu mnemonicParsing="false" text="Menu"> <items> <MenuItem mnemonicParsing="false" onAction="#reset" text="Reset" /> - <MenuItem mnemonicParsing="false" onAction="#showPossibleTiles" text="Show possible Tiles" /> + <MenuItem mnemonicParsing="false" onAction="#selectTilePack" text="Select Tilepack" /> <MenuItem mnemonicParsing="false" onAction="#about" text="About" /> </items> </Menu> diff --git a/src/de/deadlocker8/roadgame/ui/PossibleTilesController.java b/src/de/deadlocker8/roadgame/ui/PossibleTilesController.java index c3f7c2a..971691e 100644 --- a/src/de/deadlocker8/roadgame/ui/PossibleTilesController.java +++ b/src/de/deadlocker8/roadgame/ui/PossibleTilesController.java @@ -2,9 +2,13 @@ package de.deadlocker8.roadgame.ui; import de.deadlocker8.roadgame.logic.Tile; import de.deadlocker8.roadgame.logic.TileType; +import de.deadlocker8.roadgame.tilepacks.TilePack; import javafx.fxml.FXML; +import javafx.geometry.Insets; import javafx.geometry.Pos; import javafx.scene.control.Button; +import javafx.scene.control.Label; +import javafx.scene.layout.HBox; import javafx.scene.layout.StackPane; import javafx.scene.layout.VBox; import javafx.stage.Stage; @@ -16,19 +20,29 @@ public class PossibleTilesController private Stage stage; - public void init(Stage stage, Controller controller) + public void init(Stage stage, Controller controller, TilePack tilePack) { this.stage = stage; vbox.setSpacing(10.0); - vbox.setAlignment(Pos.CENTER); + vbox.setAlignment(Pos.TOP_CENTER); - for(TileType currentType : TileType.values()) + for(TileType key : tilePack.getTiles().keySet()) { - Tile tile = new Tile(currentType); + HBox hbox = new HBox(); + hbox.setAlignment(Pos.CENTER); + + Tile tile = new Tile(key); StackPane currentStack = controller.createStackPaneForTile(tile, false, 0, 0); currentStack.setMaxWidth(100.0); - vbox.getChildren().add(currentStack); + + Label labelTimes = new Label("x" + tilePack.getTiles().get(key)); + labelTimes.setStyle("-fx-font-weight: bold; -fx-font-size: 20;"); + + hbox.getChildren().add(currentStack); + hbox.getChildren().add(labelTimes); + HBox.setMargin(labelTimes, new Insets(0, 0, 0, 25)); + vbox.getChildren().add(hbox); } } diff --git a/src/de/deadlocker8/roadgame/ui/SelectTilePackController.java b/src/de/deadlocker8/roadgame/ui/SelectTilePackController.java new file mode 100644 index 0000000..d74acae --- /dev/null +++ b/src/de/deadlocker8/roadgame/ui/SelectTilePackController.java @@ -0,0 +1,122 @@ +package de.deadlocker8.roadgame.ui; + +import java.io.IOException; +import java.util.ArrayList; + +import de.deadlocker8.roadgame.tilepacks.TilePack; +import de.deadlocker8.roadgame.tilepacks.TilePackDefault; +import de.deadlocker8.roadgame.tilepacks.TilePackTest; +import javafx.event.ActionEvent; +import javafx.event.EventHandler; +import javafx.fxml.FXML; +import javafx.fxml.FXMLLoader; +import javafx.geometry.Insets; +import javafx.geometry.Pos; +import javafx.scene.Parent; +import javafx.scene.Scene; +import javafx.scene.control.Button; +import javafx.scene.control.Label; +import javafx.scene.control.ScrollPane; +import javafx.scene.image.Image; +import javafx.scene.input.MouseButton; +import javafx.scene.input.MouseEvent; +import javafx.scene.layout.HBox; +import javafx.scene.layout.Priority; +import javafx.scene.layout.Region; +import javafx.scene.layout.VBox; +import javafx.stage.Modality; +import javafx.stage.Stage; +import logger.LogLevel; +import logger.Logger; + +public class SelectTilePackController +{ + @FXML private ScrollPane scrollPane; + @FXML private VBox vbox; + @FXML private Button buttonBack; + + private Stage stage; + + public void init(Stage stage, Image icon, Controller controller) + { + this.stage = stage; + + vbox.setSpacing(10.0); + vbox.prefWidthProperty().bind(scrollPane.widthProperty().subtract(5.0)); + vbox.setAlignment(Pos.TOP_CENTER); + + ArrayList<TilePack> possibleTilePacks = new ArrayList<>(); + possibleTilePacks.add(new TilePackDefault()); + possibleTilePacks.add(new TilePackTest()); + + for(TilePack currentPack : possibleTilePacks) + { + HBox hbox = new HBox(); + Label labelName = new Label(currentPack.getName()); + labelName.setStyle("-fx-font-weight: bold; -fx-font-size: 16;"); + + Label labelTiles = new Label("(" + currentPack.getNumberOfTiles() + " Tiles)"); + labelTiles.setStyle("-fx-font-size: 16;"); + + Button buttonShowTiles = new Button("Show Tiles"); + buttonShowTiles.setStyle("-fx-font-weight: bold; -fx-font-size: 12;"); + buttonShowTiles.setOnAction(new EventHandler<ActionEvent>() + { + @Override + public void handle(ActionEvent event) + { + try + { + FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("/de/deadlocker8/roadgame/ui/PossibleTilesGUI.fxml")); + Parent root = (Parent)fxmlLoader.load(); + Stage newStage = new Stage(); + newStage.initOwner(stage); + newStage.initModality(Modality.APPLICATION_MODAL); + newStage.setTitle("Possible Tiles"); + newStage.setScene(new Scene(root)); + newStage.getIcons().add(icon); + newStage.setResizable(false); + PossibleTilesController newController = fxmlLoader.getController(); + newController.init(newStage, controller, currentPack); + newStage.show(); + + } + catch(IOException io) + { + Logger.log(LogLevel.ERROR, Logger.exceptionToString(io)); + } + + } + }); + + hbox.getChildren().add(labelName); + Region r = new Region(); + hbox.getChildren().add(r); + HBox.setHgrow(r, Priority.ALWAYS); + hbox.getChildren().add(labelTiles); + hbox.getChildren().add(buttonShowTiles); + HBox.setMargin(buttonShowTiles, new Insets(0, 0, 0, 25)); + hbox.setStyle("-fx-border-color: #212121; -fx-border-width: 1; -fx-background-color: #CCCCCC"); + hbox.setPadding(new Insets(5)); + vbox.getChildren().add(hbox); + + hbox.setOnMouseClicked(new EventHandler<MouseEvent>() + { + @Override + public void handle(MouseEvent event) + { + if(event.getButton().equals(MouseButton.PRIMARY)) + { + controller.setTilePack(currentPack); + stage.close(); + } + } + }); + } + } + + public void back() + { + stage.close(); + } +} \ No newline at end of file diff --git a/src/de/deadlocker8/roadgame/ui/SelectTilePackGUI.fxml b/src/de/deadlocker8/roadgame/ui/SelectTilePackGUI.fxml new file mode 100644 index 0000000..b13ba0a --- /dev/null +++ b/src/de/deadlocker8/roadgame/ui/SelectTilePackGUI.fxml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<?import javafx.scene.control.Button?> +<?import javafx.scene.control.ScrollPane?> +<?import javafx.scene.layout.AnchorPane?> +<?import javafx.scene.layout.VBox?> +<?import javafx.scene.text.Font?> + +<AnchorPane prefHeight="400.0" prefWidth="400.0" xmlns="http://javafx.com/javafx/8.0.60" xmlns:fx="http://javafx.com/fxml/1" fx:controller="de.deadlocker8.roadgame.ui.SelectTilePackController"> + <children> + <ScrollPane fx:id="scrollPane" layoutX="14.0" layoutY="14.0" AnchorPane.bottomAnchor="56.0" AnchorPane.leftAnchor="14.0" AnchorPane.rightAnchor="14.0" AnchorPane.topAnchor="14.0"> + <content> + <VBox fx:id="vbox" prefHeight="231.0" prefWidth="272.0" /> + </content> + </ScrollPane> + <Button fx:id="buttonBack" layoutX="119.0" layoutY="256.0" mnemonicParsing="false" onAction="#back" prefHeight="30.0" prefWidth="63.0" text="Back" AnchorPane.bottomAnchor="14.0"> + <font> + <Font name="System Bold" size="14.0" /> + </font> + </Button> + </children> +</AnchorPane> -- GitLab