From 67b48eeb0be4415a0ce3e959b45346527b0df2ef Mon Sep 17 00:00:00 2001 From: adrienmalin <41926238+adrienmalin@users.noreply.github.com> Date: Fri, 28 Sep 2018 15:11:21 +0200 Subject: [PATCH] Project reorganization to use with fbs --- .gitignore | 5 +- TETRIS2000.py | 22 ---- TETRIS2000.spec | 43 ------- src/main/NSIS/Installer.nsi | 101 ++++++++++++++++ src/main/NSIS/ShellExecAsUser.dll | Bin 0 -> 7168 bytes icons/icon.ico => src/main/icons/Icon.ico | Bin src/main/icons/README.md | 11 ++ {icons => src/main/icons/base}/16.png | Bin {icons => src/main/icons/base}/32.png | Bin {icons => src/main/icons/base}/48.png | Bin src/main/icons/linux/16.png | Bin 0 -> 183 bytes src/main/icons/linux/32.png | Bin 0 -> 802 bytes src/main/icons/linux/48.png | Bin 0 -> 1331 bytes src/main/icons/mac/16.png | Bin 0 -> 183 bytes src/main/icons/mac/32.png | Bin 0 -> 802 bytes src/main/icons/mac/48.png | Bin 0 -> 1331 bytes {source => src/main/python}/__version__.py | 0 {source => src/main/python}/consts.py | 21 ++-- {source => src/main/python}/game_gui.py | 96 ++++++++-------- src/main/python/main.py | 25 ++++ {source => src/main/python}/point.py | 4 +- {source => src/main/python}/tetromino.py | 8 +- .../base/backgrounds}/01-spacefield_a-000.png | Bin .../base/backgrounds}/02-ez_space_lite_01.png | Bin .../03-PIXNIO-1761261-1200x800.jpg | Bin ...-way-starry-sky-night-sky-star-956981.jpeg | Bin .../05-patrick-fore-562330-unsplash.jpg | Bin .../backgrounds}/06-pexels-photo-176851.jpeg | Bin .../07-ilnur-kalimullin-153166-unsplash.jpg | Bin .../base/backgrounds}/08-sky-828648_1920.jpg | Bin .../09-jose-ignacio-pompe-744075-unsplash.jpg | Bin .../10-nature-night-sky-stars-974471.jpeg | Bin .../backgrounds}/11-pexels-photo-755726.jpeg | Bin .../12-PIXNIO-1727359-1920x1280.jpg | Bin .../backgrounds}/13-cosmos-1845140_1920.jpg | Bin .../backgrounds}/14-StockSnap_CDFFE6C72E.jpg | Bin .../backgrounds}/15-nebula-668783_1920.jpg | Bin .../base/fonts}/Creative Commons Lizenz.txt | 108 +++++++++--------- .../resources/base/fonts}/Maass readme.txt | 36 +++--- .../main/resources/base/fonts}/PixelCaps!.otf | Bin .../main/resources/base/fonts}/Preview.png | Bin .../main/resources/base/fonts}/ReadMe.png | Bin .../base/fonts}/maass slicer Italic.ttf | Bin .../base/fonts}/markus-designs.com.url | 4 +- .../base/fonts}/markuskoellmann.com.url | 4 +- .../main/resources/base/locale}/Tetris2000.ts | 0 .../main/resources/base/locale}/fr.qm | Bin .../main/resources/base/locale}/fr.ts | 0 .../main/resources/base/locale}/update_ts.bat | 6 +- .../base/locale}/update_ts_noobsolete.bat | 6 +- .../base/mac-frozen/Contents/Info.plist | 29 +++++ ...1_Tetris_McVaffeQuasi_Ultimix_OC_ReMix.mp3 | Bin .../base/musics}/Tetris_CheDDer_OC_ReMix.mp3 | Bin .../musics}/Tetris_Crimea_River_OC_ReMix.mp3 | Bin .../musics}/Tetris_Slavic_Roots_OC_ReMix.mp3 | Bin .../Tetris_Thirty-Plus_Mix_OC_ReMix.mp3 | Bin .../main/resources/base/sfx}/hard_drop.wav | Bin .../main/resources/base/sfx}/line_clear.wav | Bin .../main/resources/base/sfx}/rotate.wav | Bin .../main/resources/base/sfx}/tetris.wav | Bin .../main/resources/base/sfx}/tetris.xt | Bin {sfx => src/main/resources/base/sfx}/wall.wav | Bin .../base/splashscreen/splashscreen.png | Bin 63 files changed, 316 insertions(+), 213 deletions(-) delete mode 100644 TETRIS2000.py delete mode 100644 TETRIS2000.spec create mode 100644 src/main/NSIS/Installer.nsi create mode 100644 src/main/NSIS/ShellExecAsUser.dll rename icons/icon.ico => src/main/icons/Icon.ico (100%) create mode 100644 src/main/icons/README.md rename {icons => src/main/icons/base}/16.png (100%) rename {icons => src/main/icons/base}/32.png (100%) rename {icons => src/main/icons/base}/48.png (100%) create mode 100644 src/main/icons/linux/16.png create mode 100644 src/main/icons/linux/32.png create mode 100644 src/main/icons/linux/48.png create mode 100644 src/main/icons/mac/16.png create mode 100644 src/main/icons/mac/32.png create mode 100644 src/main/icons/mac/48.png rename {source => src/main/python}/__version__.py (100%) rename {source => src/main/python}/consts.py (84%) rename {source => src/main/python}/game_gui.py (95%) create mode 100644 src/main/python/main.py rename {source => src/main/python}/point.py (95%) rename {source => src/main/python}/tetromino.py (99%) rename {backgrounds => src/main/resources/base/backgrounds}/01-spacefield_a-000.png (100%) rename {backgrounds => src/main/resources/base/backgrounds}/02-ez_space_lite_01.png (100%) rename {backgrounds => src/main/resources/base/backgrounds}/03-PIXNIO-1761261-1200x800.jpg (100%) rename {backgrounds => src/main/resources/base/backgrounds}/04-milky-way-starry-sky-night-sky-star-956981.jpeg (100%) rename {backgrounds => src/main/resources/base/backgrounds}/05-patrick-fore-562330-unsplash.jpg (100%) rename {backgrounds => src/main/resources/base/backgrounds}/06-pexels-photo-176851.jpeg (100%) rename {backgrounds => src/main/resources/base/backgrounds}/07-ilnur-kalimullin-153166-unsplash.jpg (100%) rename {backgrounds => src/main/resources/base/backgrounds}/08-sky-828648_1920.jpg (100%) rename {backgrounds => src/main/resources/base/backgrounds}/09-jose-ignacio-pompe-744075-unsplash.jpg (100%) rename {backgrounds => src/main/resources/base/backgrounds}/10-nature-night-sky-stars-974471.jpeg (100%) rename {backgrounds => src/main/resources/base/backgrounds}/11-pexels-photo-755726.jpeg (100%) rename {backgrounds => src/main/resources/base/backgrounds}/12-PIXNIO-1727359-1920x1280.jpg (100%) rename {backgrounds => src/main/resources/base/backgrounds}/13-cosmos-1845140_1920.jpg (100%) rename {backgrounds => src/main/resources/base/backgrounds}/14-StockSnap_CDFFE6C72E.jpg (100%) rename {backgrounds => src/main/resources/base/backgrounds}/15-nebula-668783_1920.jpg (100%) rename {fonts => src/main/resources/base/fonts}/Creative Commons Lizenz.txt (99%) rename {fonts => src/main/resources/base/fonts}/Maass readme.txt (98%) rename {fonts => src/main/resources/base/fonts}/PixelCaps!.otf (100%) rename {fonts => src/main/resources/base/fonts}/Preview.png (100%) rename {fonts => src/main/resources/base/fonts}/ReadMe.png (100%) rename {fonts => src/main/resources/base/fonts}/maass slicer Italic.ttf (100%) rename {fonts => src/main/resources/base/fonts}/markus-designs.com.url (96%) rename {fonts => src/main/resources/base/fonts}/markuskoellmann.com.url (96%) rename {locale => src/main/resources/base/locale}/Tetris2000.ts (100%) rename {locale => src/main/resources/base/locale}/fr.qm (100%) rename {locale => src/main/resources/base/locale}/fr.ts (100%) rename {locale => src/main/resources/base/locale}/update_ts.bat (98%) rename {locale => src/main/resources/base/locale}/update_ts_noobsolete.bat (98%) create mode 100644 src/main/resources/base/mac-frozen/Contents/Info.plist rename {musics => src/main/resources/base/musics}/01_Tetris_McVaffeQuasi_Ultimix_OC_ReMix.mp3 (100%) rename {musics => src/main/resources/base/musics}/Tetris_CheDDer_OC_ReMix.mp3 (100%) rename {musics => src/main/resources/base/musics}/Tetris_Crimea_River_OC_ReMix.mp3 (100%) rename {musics => src/main/resources/base/musics}/Tetris_Slavic_Roots_OC_ReMix.mp3 (100%) rename {musics => src/main/resources/base/musics}/Tetris_Thirty-Plus_Mix_OC_ReMix.mp3 (100%) rename {sfx => src/main/resources/base/sfx}/hard_drop.wav (100%) rename {sfx => src/main/resources/base/sfx}/line_clear.wav (100%) rename {sfx => src/main/resources/base/sfx}/rotate.wav (100%) rename {sfx => src/main/resources/base/sfx}/tetris.wav (100%) rename {sfx => src/main/resources/base/sfx}/tetris.xt (100%) rename {sfx => src/main/resources/base/sfx}/wall.wav (100%) rename icons/splash_screen.png => src/main/resources/base/splashscreen/splashscreen.png (100%) diff --git a/.gitignore b/.gitignore index be68ce8..d387b77 100644 --- a/.gitignore +++ b/.gitignore @@ -18,8 +18,7 @@ lib/ lib64/ parts/ sdist/ -Tetris2000.build/ -Tetris2000.build/ +target/ var/ wheels/ *.egg-info/ @@ -31,7 +30,7 @@ MANIFEST # Usually these files are written by a python script from a template # before PyInstaller builds the exe, so as to inject date/other infos into it. *.manifest -#*.spec +*.spec # Installer logs pip-log.txt diff --git a/TETRIS2000.py b/TETRIS2000.py deleted file mode 100644 index 58556ac..0000000 --- a/TETRIS2000.py +++ /dev/null @@ -1,22 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- - - -""" -Another TETRIS® clone -Tetris Game Design by Alexey Pajitnov. -Parts of comments issued from 2009 Tetris Design Guideline -""" - - -import sys -from qtpy import QtWidgets - -from source.game_gui import Window - - -app = QtWidgets.QApplication.instance() or QtWidgets.QApplication(sys.argv) -win = Window() -win.show() -win.frames.new_game() -sys.exit(app.exec_()) diff --git a/TETRIS2000.spec b/TETRIS2000.spec deleted file mode 100644 index bf4d054..0000000 --- a/TETRIS2000.spec +++ /dev/null @@ -1,43 +0,0 @@ -# -*- mode: python -*- - -block_cipher = None - - -a = Analysis(['TETRIS2000.py'], - pathex=[], - binaries=[], - datas=[ - ("backgrounds/*", "backgrounds"), - ("fonts/*.ttf", "fonts"), - ("fonts/*.otf", "fonts"), - ("icons/*.ico", "icons"), - ("icons/splash_screen.png", "icons"), - ("locale/*.qm", "locale"), - ("musics/*.mp3", "musics"), - ("sfx/*.wav", "sfx") - ], - hiddenimports=[], - hookspath=[], - runtime_hooks=[], - excludes=["PyQt4", "PySide", "PySide2"], - win_no_prefer_redirects=False, - win_private_assemblies=False, - cipher=block_cipher) -pyz = PYZ(a.pure, a.zipped_data, - cipher=block_cipher) -exe = EXE(pyz, - a.scripts, - exclude_binaries=True, - name='TETRIS2000', - debug=False, - strip=False, - upx=False, - console=False, - icon='icons\icon.ico') -coll = COLLECT(exe, - a.binaries, - a.zipfiles, - a.datas, - strip=False, - upx=False, - name='TETRIS2000') \ No newline at end of file diff --git a/src/main/NSIS/Installer.nsi b/src/main/NSIS/Installer.nsi new file mode 100644 index 0000000..945a542 --- /dev/null +++ b/src/main/NSIS/Installer.nsi @@ -0,0 +1,101 @@ +!include MUI2.nsh +!include FileFunc.nsh + +;-------------------------------- +;Perform Machine-level install, if possible + +!define MULTIUSER_EXECUTIONLEVEL Highest +;Add support for command-line args that let uninstaller know whether to +;uninstall machine- or user installation: +!define MULTIUSER_INSTALLMODE_COMMANDLINE +!include MultiUser.nsh +!include LogicLib.nsh + +Function .onInit + !insertmacro MULTIUSER_INIT + ;Do not use InstallDir at all so we can detect empty $InstDir! + ${If} $InstDir == "" ; /D not used + ${If} $MultiUser.InstallMode == "AllUsers" + StrCpy $InstDir "$PROGRAMFILES\%{app_name}" + ${Else} + StrCpy $InstDir "$LOCALAPPDATA\%{app_name}" + ${EndIf} + ${EndIf} +FunctionEnd + +Function un.onInit + !insertmacro MULTIUSER_UNINIT +FunctionEnd + +;-------------------------------- +;General + + Name "%{app_name}" + OutFile "..\%{app_name}Setup.exe" + +;-------------------------------- +;Interface Settings + + !define MUI_ABORTWARNING + +;-------------------------------- +;Pages + + !define MUI_WELCOMEPAGE_TEXT "This wizard will guide you through the installation of %{app_name}.$\r$\n$\r$\n$\r$\nClick Next to continue." + !insertmacro MUI_PAGE_WELCOME + !insertmacro MUI_PAGE_DIRECTORY + !insertmacro MUI_PAGE_INSTFILES + !define MUI_FINISHPAGE_NOAUTOCLOSE + !define MUI_FINISHPAGE_RUN + !define MUI_FINISHPAGE_RUN_CHECKED + !define MUI_FINISHPAGE_RUN_TEXT "Run %{app_name}" + !define MUI_FINISHPAGE_RUN_FUNCTION "LaunchLink" + !insertmacro MUI_PAGE_FINISH + + !insertmacro MUI_UNPAGE_CONFIRM + !insertmacro MUI_UNPAGE_INSTFILES + +;-------------------------------- +;Languages + + !insertmacro MUI_LANGUAGE "English" + +;-------------------------------- +;Installer Sections + +!define UNINST_KEY \ + "Software\Microsoft\Windows\CurrentVersion\Uninstall\%{app_name}" +Section + SetOutPath "$InstDir" + File /r "..\%{app_name}\*" + WriteRegStr SHCTX "Software\%{app_name}" "" $InstDir + WriteUninstaller "$InstDir\uninstall.exe" + CreateShortCut "$SMPROGRAMS\%{app_name}.lnk" "$InstDir\%{app_name}.exe" + WriteRegStr SHCTX "${UNINST_KEY}" "DisplayName" "%{app_name}" + WriteRegStr SHCTX "${UNINST_KEY}" "UninstallString" \ + "$\"$InstDir\uninstall.exe$\" /$MultiUser.InstallMode" + WriteRegStr SHCTX "${UNINST_KEY}" "QuietUninstallString" \ + "$\"$InstDir\uninstall.exe$\" /$MultiUser.InstallMode /S" + WriteRegStr SHCTX "${UNINST_KEY}" "Publisher" "%{author}" + ${GetSize} "$InstDir" "/S=0K" $0 $1 $2 + IntFmt $0 "0x%08X" $0 + WriteRegDWORD SHCTX "${UNINST_KEY}" "EstimatedSize" "$0" + +SectionEnd + +;-------------------------------- +;Uninstaller Section + +Section "Uninstall" + + RMDir /r "$InstDir" + Delete "$SMPROGRAMS\%{app_name}.lnk" + DeleteRegKey /ifempty SHCTX "Software\%{app_name}" + DeleteRegKey SHCTX "${UNINST_KEY}" + +SectionEnd + +Function LaunchLink + !addplugindir "." + ShellExecAsUser::ShellExecAsUser "open" "$SMPROGRAMS\%{app_name}.lnk" +FunctionEnd \ No newline at end of file diff --git a/src/main/NSIS/ShellExecAsUser.dll b/src/main/NSIS/ShellExecAsUser.dll new file mode 100644 index 0000000000000000000000000000000000000000..01a8c85af4ae8311806c916f7bfb3e4905afcfd7 GIT binary patch literal 7168 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 O|5u^@*9Y+b$M)YjU(sa% literal 0 HcmV?d00001 diff --git a/icons/icon.ico b/src/main/icons/Icon.ico similarity index 100% rename from icons/icon.ico rename to src/main/icons/Icon.ico diff --git a/src/main/icons/README.md b/src/main/icons/README.md new file mode 100644 index 0000000..c6c4194 --- /dev/null +++ b/src/main/icons/README.md @@ -0,0 +1,11 @@ +![Sample app icon](linux/128.png) + +This directory contains the icons that are displayed for your app. Feel free to +change them. + +The difference between the icons on Mac and the other platforms is that on Mac, +they contain a ~5% transparent margin. This is because otherwise they look too +big (eg. in the Dock or in the app switcher). + +You can create Icon.ico from the .png files with +[an online tool](http://icoconvert.com/Multi_Image_to_one_icon/). \ No newline at end of file diff --git a/icons/16.png b/src/main/icons/base/16.png similarity index 100% rename from icons/16.png rename to src/main/icons/base/16.png diff --git a/icons/32.png b/src/main/icons/base/32.png similarity index 100% rename from icons/32.png rename to src/main/icons/base/32.png diff --git a/icons/48.png b/src/main/icons/base/48.png similarity index 100% rename from icons/48.png rename to src/main/icons/base/48.png diff --git a/src/main/icons/linux/16.png b/src/main/icons/linux/16.png new file mode 100644 index 0000000000000000000000000000000000000000..fef8a1c79dd1fe57595a7cd305c93881989cc807 GIT binary patch literal 183 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;>1s;*b z3=DjSK$uZf!>a)(C|TkfQ4*Y=R#Ki=l*&+$n3-3imzP?iV4`QBXJ~ol+NKnsA`?#+ z#}EtuWC=Eh6Z&86RV8v5x>xXUsk!FtkZ|B^JI1QT;F++sH^RV&=Rn)SOU+yc1`G_o X6LwYJ+WB-JP(OpGtDnm{r-UW|oBA^C literal 0 HcmV?d00001 diff --git a/src/main/icons/linux/32.png b/src/main/icons/linux/32.png new file mode 100644 index 0000000000000000000000000000000000000000..34bd9ff2da03749281b841074fa121deee1ee718 GIT binary patch literal 802 zcmeAS@N?(olHy`uVBq!ia0vp^ia@Nu!3HGf><~N!q!^2X+?^QKos)S9a~60+7BevL9R^{>Eaj?;eK@L*?gfuk)!SUjzM+r)uKUY=N9y~(`Nu2!nbu#fc8@5D`7`O{$(`ouY4_$_WcX9=aWNN;OfH*D z+*2#R^BsrVZ;q|sc8z4o7Zm2vi3>q-hPkwbxE~xFV}kIulvl``CR$l^r(4N zrk@{h8#Qmf`KVjbGQlv;hHv8?>&AbNm|q7wr#bt5 zy|S!Y_E^6TEwD3fu`u6w&G6-JA*Jh*iZ^X1DypsA>7J7#uY65zlim7H9l>9nb*{#L zw2Q5jb&J*!>p#ooxFpQE(wI`4#j&?+fyzAIGePH_RJ8tTckBP0 zBJgN4Pwu-^uDXionJ>odN%4{#`Pw z>6iKt)gB;o#4xloZ1cY7OZqa_bvQhq^09aQ@_RXq_pWu^Q7_l3HoX|J$e?L;w2^4* zt)@%f6>4W*^RAti-s@Rv*)B0-`?j~6{U#{2uX&rlKSkJ0I$xk}TmOT}e37@mMXGyD zOrCgb%XuruE}3qVWwqBhgPuezF$8NkuGE`3zqCojQY_Qw_Zs0PCpLN{-%6jW;M%t| zNSN{Bnr#f1_b&=M3O2+!WaDzfmhh58_N#8#y=KuY>QL)h&J(%wQJ&_yy@u<#gG!`f dNIavS@%?4*$x5EbZvc}pgQu&X%Q~loCID6yV9Wpj literal 0 HcmV?d00001 diff --git a/src/main/icons/linux/48.png b/src/main/icons/linux/48.png new file mode 100644 index 0000000000000000000000000000000000000000..f9bad54465c257f6d2a9532e6e0c15636f6b8ac4 GIT binary patch literal 1331 zcmV-31Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02y>eSaefwW^{L9 za%BK;VQFr3E^cLXAT%y8E-^XO*0N*(00g5+L_t(&L)DjAQyWJVg@?_OFd!kc3&~2# zc}Nx5fy5-nY(i|p2()1q8AE`8ZQ{g#(>Cy}H@D<{g z&Y63AMm?tu0KP_9^b^XWpHLS4gtF)-ltn+GEcyv$(N8Fge!|G*a)@U0$k#5BYraFK zdWm%942g0JvGoIt7wZTw?qc+L84sVWBQ&#u(A0B`#S$PbF`mgGyL-m9sU5dAB58w9 zm)iB|Nu)LoyIzxYHlp63=D+;wKcwn!kv{r}hBQUy+FA91|#c77+%>&aG{E! z?_Q$+n+^0&FTq%Tg|Ue^AO4F!|3!j*KhgXVvFbIVl?z0ec69x?P1`rShCV@0&F6pp z8_~@c#w+I?ugP^b(~FMY`0Vfo>HQl#Nai@9bOE7E0fAH=Ly1WY5^pS zf>ZN&)VxNrer@U#Ij*74q<_FYa&6jvL7%OhBDQ_XbvB)@Njj4Z(=Twn@%hOoOuqTu z8GxFgzqf|;xxI?2gGY{J?pqu9KdYgm$nt;MuJ(V26FrF zkv#ZGODpQrdl#6fUU}AWtvCSfJgNq`nPsFhb5^i^g+${B0g~G%h`c=Wtm6Yr2m_=m-@9%h|M3Y%E;GT%9w4=I z>Rv$)T2pT}5Z^pPc#W*a27T8M17ub`_5Nh|Im6Kk*d z`@*wM9w4^CR)D=c#OCidx*dStoMW4>HJZ0p(bCgf_u=Y+cO5m)Fzf-MtIf6*xXVaf z!Dz98k*N6<%T){)_j_t!c)6*k6&``H`E3MV?0MHw^Wp&Expf4- zEw^7>X(Zf676m9&jn1(j^RrDot*HOHh@sh%cO8QdVCju;Jc&U09D~ecaBd3&6xLW^ z>SwzQ?KEymCM<^-OJbqrd0L(ua$O(vlyFA(@@ znctSXpb$l3I}VdRI6bfYu8KB2`%E>}cU6db6zRP}FQ<_;%Jt2z=Kd7p#^V8>~G zf@1@i&07O>YMxT%eHnoAd~jipKSIIuWA@j&18vP)kB%LS@5=xqvnxE$+XD!lvI6;>1s;*b z3=DjSK$uZf!>a)(C|TkfQ4*Y=R#Ki=l*&+$n3-3imzP?iV4`QBXJ~ol+NKnsA`?#+ z#}EtuWC=Eh6Z&86RV8v5x>xXUsk!FtkZ|B^JI1QT;F++sH^RV&=Rn)SOU+yc1`G_o X6LwYJ+WB-JP(OpGtDnm{r-UW|oBA^C literal 0 HcmV?d00001 diff --git a/src/main/icons/mac/32.png b/src/main/icons/mac/32.png new file mode 100644 index 0000000000000000000000000000000000000000..34bd9ff2da03749281b841074fa121deee1ee718 GIT binary patch literal 802 zcmeAS@N?(olHy`uVBq!ia0vp^ia@Nu!3HGf><~N!q!^2X+?^QKos)S9a~60+7BevL9R^{>Eaj?;eK@L*?gfuk)!SUjzM+r)uKUY=N9y~(`Nu2!nbu#fc8@5D`7`O{$(`ouY4_$_WcX9=aWNN;OfH*D z+*2#R^BsrVZ;q|sc8z4o7Zm2vi3>q-hPkwbxE~xFV}kIulvl``CR$l^r(4N zrk@{h8#Qmf`KVjbGQlv;hHv8?>&AbNm|q7wr#bt5 zy|S!Y_E^6TEwD3fu`u6w&G6-JA*Jh*iZ^X1DypsA>7J7#uY65zlim7H9l>9nb*{#L zw2Q5jb&J*!>p#ooxFpQE(wI`4#j&?+fyzAIGePH_RJ8tTckBP0 zBJgN4Pwu-^uDXionJ>odN%4{#`Pw z>6iKt)gB;o#4xloZ1cY7OZqa_bvQhq^09aQ@_RXq_pWu^Q7_l3HoX|J$e?L;w2^4* zt)@%f6>4W*^RAti-s@Rv*)B0-`?j~6{U#{2uX&rlKSkJ0I$xk}TmOT}e37@mMXGyD zOrCgb%XuruE}3qVWwqBhgPuezF$8NkuGE`3zqCojQY_Qw_Zs0PCpLN{-%6jW;M%t| zNSN{Bnr#f1_b&=M3O2+!WaDzfmhh58_N#8#y=KuY>QL)h&J(%wQJ&_yy@u<#gG!`f dNIavS@%?4*$x5EbZvc}pgQu&X%Q~loCID6yV9Wpj literal 0 HcmV?d00001 diff --git a/src/main/icons/mac/48.png b/src/main/icons/mac/48.png new file mode 100644 index 0000000000000000000000000000000000000000..f9bad54465c257f6d2a9532e6e0c15636f6b8ac4 GIT binary patch literal 1331 zcmV-31Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02y>eSaefwW^{L9 za%BK;VQFr3E^cLXAT%y8E-^XO*0N*(00g5+L_t(&L)DjAQyWJVg@?_OFd!kc3&~2# zc}Nx5fy5-nY(i|p2()1q8AE`8ZQ{g#(>Cy}H@D<{g z&Y63AMm?tu0KP_9^b^XWpHLS4gtF)-ltn+GEcyv$(N8Fge!|G*a)@U0$k#5BYraFK zdWm%942g0JvGoIt7wZTw?qc+L84sVWBQ&#u(A0B`#S$PbF`mgGyL-m9sU5dAB58w9 zm)iB|Nu)LoyIzxYHlp63=D+;wKcwn!kv{r}hBQUy+FA91|#c77+%>&aG{E! z?_Q$+n+^0&FTq%Tg|Ue^AO4F!|3!j*KhgXVvFbIVl?z0ec69x?P1`rShCV@0&F6pp z8_~@c#w+I?ugP^b(~FMY`0Vfo>HQl#Nai@9bOE7E0fAH=Ly1WY5^pS zf>ZN&)VxNrer@U#Ij*74q<_FYa&6jvL7%OhBDQ_XbvB)@Njj4Z(=Twn@%hOoOuqTu z8GxFgzqf|;xxI?2gGY{J?pqu9KdYgm$nt;MuJ(V26FrF zkv#ZGODpQrdl#6fUU}AWtvCSfJgNq`nPsFhb5^i^g+${B0g~G%h`c=Wtm6Yr2m_=m-@9%h|M3Y%E;GT%9w4=I z>Rv$)T2pT}5Z^pPc#W*a27T8M17ub`_5Nh|Im6Kk*d z`@*wM9w4^CR)D=c#OCidx*dStoMW4>HJZ0p(bCgf_u=Y+cO5m)Fzf-MtIf6*xXVaf z!Dz98k*N6<%T){)_j_t!c)6*k6&``H`E3MV?0MHw^Wp&Expf4- zEw^7>X(Zf676m9&jn1(j^RrDot*HOHh@sh%cO8QdVCju;Jc&U09D~ecaBd3&6xLW^ z>SwzQ?KEymCM<^-OJbqrd0L(ua$O(vlyFA(@@ znctSXpb$l3I}VdRI6bfYu8KB2`%E>}cU6db6zRP}FQ<_;%Jt2z=Kd7p#^V8>~G zf@1@i&07O>YMxT%eHnoAd~jipKSIIuWA@j&18vP)kB%LS@5=xqvnxE$+XD + + + + CFBundleExecutable + ${app_name} + CFBundleDisplayName + ${app_name} + CFBundlePackageType + APPL + CFBundleInfoDictionaryVersion + 6.0 + CFBundleIconFile + Icon.icns + CFBundleIdentifier + ${mac_bundle_identifier} + LSBackgroundOnly + 0 + CFBundleShortVersionString + ${version} + CFBundleVersion + ${version} + CFBundleName + ${app_name} + + NSPrincipalClass + NSApplication + + \ No newline at end of file diff --git a/musics/01_Tetris_McVaffeQuasi_Ultimix_OC_ReMix.mp3 b/src/main/resources/base/musics/01_Tetris_McVaffeQuasi_Ultimix_OC_ReMix.mp3 similarity index 100% rename from musics/01_Tetris_McVaffeQuasi_Ultimix_OC_ReMix.mp3 rename to src/main/resources/base/musics/01_Tetris_McVaffeQuasi_Ultimix_OC_ReMix.mp3 diff --git a/musics/Tetris_CheDDer_OC_ReMix.mp3 b/src/main/resources/base/musics/Tetris_CheDDer_OC_ReMix.mp3 similarity index 100% rename from musics/Tetris_CheDDer_OC_ReMix.mp3 rename to src/main/resources/base/musics/Tetris_CheDDer_OC_ReMix.mp3 diff --git a/musics/Tetris_Crimea_River_OC_ReMix.mp3 b/src/main/resources/base/musics/Tetris_Crimea_River_OC_ReMix.mp3 similarity index 100% rename from musics/Tetris_Crimea_River_OC_ReMix.mp3 rename to src/main/resources/base/musics/Tetris_Crimea_River_OC_ReMix.mp3 diff --git a/musics/Tetris_Slavic_Roots_OC_ReMix.mp3 b/src/main/resources/base/musics/Tetris_Slavic_Roots_OC_ReMix.mp3 similarity index 100% rename from musics/Tetris_Slavic_Roots_OC_ReMix.mp3 rename to src/main/resources/base/musics/Tetris_Slavic_Roots_OC_ReMix.mp3 diff --git a/musics/Tetris_Thirty-Plus_Mix_OC_ReMix.mp3 b/src/main/resources/base/musics/Tetris_Thirty-Plus_Mix_OC_ReMix.mp3 similarity index 100% rename from musics/Tetris_Thirty-Plus_Mix_OC_ReMix.mp3 rename to src/main/resources/base/musics/Tetris_Thirty-Plus_Mix_OC_ReMix.mp3 diff --git a/sfx/hard_drop.wav b/src/main/resources/base/sfx/hard_drop.wav similarity index 100% rename from sfx/hard_drop.wav rename to src/main/resources/base/sfx/hard_drop.wav diff --git a/sfx/line_clear.wav b/src/main/resources/base/sfx/line_clear.wav similarity index 100% rename from sfx/line_clear.wav rename to src/main/resources/base/sfx/line_clear.wav diff --git a/sfx/rotate.wav b/src/main/resources/base/sfx/rotate.wav similarity index 100% rename from sfx/rotate.wav rename to src/main/resources/base/sfx/rotate.wav diff --git a/sfx/tetris.wav b/src/main/resources/base/sfx/tetris.wav similarity index 100% rename from sfx/tetris.wav rename to src/main/resources/base/sfx/tetris.wav diff --git a/sfx/tetris.xt b/src/main/resources/base/sfx/tetris.xt similarity index 100% rename from sfx/tetris.xt rename to src/main/resources/base/sfx/tetris.xt diff --git a/sfx/wall.wav b/src/main/resources/base/sfx/wall.wav similarity index 100% rename from sfx/wall.wav rename to src/main/resources/base/sfx/wall.wav diff --git a/icons/splash_screen.png b/src/main/resources/base/splashscreen/splashscreen.png similarity index 100% rename from icons/splash_screen.png rename to src/main/resources/base/splashscreen/splashscreen.png