diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7215853..0f50950 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -33,19 +33,19 @@ deploy:package: - mkdir out # package - cd build - mkdir -p applications - - cp ../resource/config/*.desktop applications + - cp ../resource/package/*.desktop applications - mkdir -p icons/hicolor/256x256/apps - cp ../univerxel.png icons/hicolor/256x256/apps - - cp ../resource/config/full.toml config.toml - - tar cfz ../out/full-nux64.tar.gz univerxel applications/fr.wadza.univerxel.desktop config.toml icons content - - cp ../resource/config/client.toml config.toml - - tar cfz ../out/client-nux64.tar.gz univerxel-client applications/fr.wadza.univerxel.client.desktop config.toml icons content/shaders content/textures - - cp ../resource/config/server.toml config.toml - - tar cfz ../out/server-nux64.tar.gz univerxel-server applications/fr.wadza.univerxel.server.desktop config.toml icons content/cert.pem content/key.pem content/zstd.dict + - cp ../resource/package/config.full.toml config.toml + - tar cfz ../out/full.tar.gz univerxel applications/fr.wadza.univerxel.desktop config.toml icons content + - cp ../resource/package/config.client.toml config.toml + - tar cfz ../out/client.tar.gz univerxel-client applications/fr.wadza.univerxel.client.desktop config.toml icons content/shaders content/textures + - cp ../resource/package/config.server.toml config.toml + - tar cfz ../out/server.tar.gz univerxel-server applications/fr.wadza.univerxel.server.desktop config.toml icons content/cert.pem content/key.pem content/zstd.dict - cd ../out # deploy - - 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file full-nux64.tar.gz ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/Univerxel/$CI_COMMIT_TAG/Univerxel-$CI_COMMIT_TAG-nux64.tar.gz' - - 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file client-nux64.tar.gz ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/Univerxel-client/$CI_COMMIT_TAG/Univerxel-client-$CI_COMMIT_TAG-nux64.tar.gz' - - 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file server-nux64.tar.gz ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/Univerxel-server/$CI_COMMIT_TAG/Univerxel-server-$CI_COMMIT_TAG-nux64.tar.gz' + - 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file full.tar.gz ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/Univerxel/$CI_COMMIT_TAG/Univerxel.tar.gz' + - 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file client.tar.gz ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/Univerxel/$CI_COMMIT_TAG/Univerxel-client.tar.gz' + - 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file server.tar.gz ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/Univerxel/$CI_COMMIT_TAG/Univerxel-server.tar.gz' dependencies: - build:linux artifacts: diff --git a/CMakeLists.txt b/CMakeLists.txt index 7487922..8ef407b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -77,7 +77,9 @@ else() endif() if (WIN32) - set(ICON univerxel.rc) + configure_file(resource/package/info.rc.in info.rc @ONLY) + set(ICON resource/package/icon.rc ${CMAKE_CURRENT_BINARY_DIR}/info.rc) + file(COPY resource/package/install.nsi DESTINATION ${CMAKE_BINARY_DIR}) elseif (APPLE) set(ICON univerxel.icns) endif() diff --git a/TODO.md b/TODO.md index 97321e3..3d4ba70 100644 --- a/TODO.md +++ b/TODO.md @@ -82,6 +82,7 @@ ## Hello darkness + - [ ] Launcher / Updater - [ ] Break area part to entity - [ ] Slash screen - [ ] Start/Pause menu @@ -115,3 +116,4 @@ - [ ] Avoid transparent back-face - [ ] Translucency - Back face Depth based + - [ ] I18L diff --git a/resource/config/Info.plist.in b/resource/package/Info.plist.in similarity index 100% rename from resource/config/Info.plist.in rename to resource/package/Info.plist.in diff --git a/resource/config/client.toml b/resource/package/config.client.toml old mode 100755 new mode 100644 similarity index 100% rename from resource/config/client.toml rename to resource/package/config.client.toml diff --git a/resource/config/full.toml b/resource/package/config.full.toml old mode 100755 new mode 100644 similarity index 100% rename from resource/config/full.toml rename to resource/package/config.full.toml diff --git a/resource/config/server.toml b/resource/package/config.server.toml old mode 100755 new mode 100644 similarity index 100% rename from resource/config/server.toml rename to resource/package/config.server.toml diff --git a/resource/config/fr.wadza.univerxel.client.desktop b/resource/package/fr.wadza.univerxel.client.desktop similarity index 100% rename from resource/config/fr.wadza.univerxel.client.desktop rename to resource/package/fr.wadza.univerxel.client.desktop diff --git a/resource/config/fr.wadza.univerxel.desktop b/resource/package/fr.wadza.univerxel.desktop similarity index 100% rename from resource/config/fr.wadza.univerxel.desktop rename to resource/package/fr.wadza.univerxel.desktop diff --git a/resource/config/fr.wadza.univerxel.server.desktop b/resource/package/fr.wadza.univerxel.server.desktop similarity index 100% rename from resource/config/fr.wadza.univerxel.server.desktop rename to resource/package/fr.wadza.univerxel.server.desktop diff --git a/resource/package/icon.rc b/resource/package/icon.rc new file mode 100644 index 0000000..104e016 --- /dev/null +++ b/resource/package/icon.rc @@ -0,0 +1,2 @@ + +UNIVERXEL ICON "univerxel.ico" diff --git a/resource/package/info.rc.in b/resource/package/info.rc.in new file mode 100644 index 0000000..67e9dcb --- /dev/null +++ b/resource/package/info.rc.in @@ -0,0 +1,53 @@ +// info.rc.in +#if defined(__MINGW64__) || defined(__MINGW32__) + // MinGW-w64, MinGW + #if defined(__has_include) && __has_include() + #include + #else + #include + #include + #endif +#else + // MSVC, Windows SDK + #include +#endif + +#define VER_VERSION @CMAKE_PROJECT_VERSION_MAJOR@,@CMAKE_PROJECT_VERSION_MINOR@,@CMAKE_PROJECT_VERSION_PATCH@,1 +#define VER_VERSION_STR "@CMAKE_PROJECT_VERSION_MAJOR@.@CMAKE_PROJECT_VERSION_MINOR@.@CMAKE_PROJECT_VERSION_PATCH@\0" +#define NAME_STR "Univerxel\0" + +#ifndef DEBUG +#define VER_DEBUG 0 +#else +#define VER_DEBUG VS_FF_DEBUG +#endif + +VS_VERSION_INFO VERSIONINFO +FILEVERSION VER_VERSION +PRODUCTVERSION VER_VERSION +FILEFLAGSMASK VS_FFI_FILEFLAGSMASK +FILEFLAGS (VS_FF_PRERELEASE|VER_DEBUG) +FILEOS VOS__WINDOWS32 +FILETYPE VFT_APP +FILESUBTYPE VFT2_UNKNOWN +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904E4" + BEGIN + VALUE "CompanyName", "Shu\0" + VALUE "FileDescription", NAME_STR + VALUE "FileVersion", VER_VERSION_STR + VALUE "InternalName", NAME_STR + VALUE "LegalCopyright", "MIT - Shu\0" + VALUE "ProductName", NAME_STR + VALUE "ProductVersion", VER_VERSION_STR + END + END + + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1252 + + END +END \ No newline at end of file diff --git a/resource/package/install.nsi b/resource/package/install.nsi new file mode 100644 index 0000000..79296e8 --- /dev/null +++ b/resource/package/install.nsi @@ -0,0 +1,126 @@ +!include "MUI2.nsh" + +;-------------------------------- + +; The name of the installer +Name "Univerxel" + +Icon "../resource/package/univerxel.ico" + +; Request application privileges for Windows Vista and higher +RequestExecutionLevel user + +; Build Unicode installer +Unicode True + +SetCompressor /SOLID LZMA + +; The default installation directory +InstallDir $LOCALAPPDATA\Univerxel + +; Registry key to check for directory (so if you install again, it will +; overwrite the old one automatically) +InstallDirRegKey HKLM "Software\Univerxel" "Install_Dir" + +VIAddVersionKey "CompanyName" "Shu" +VIAddVersionKey "FileDescription" "Univerxel installer" +VIAddVersionKey "ProductName" "Univerxel installer" +VIAddVersionKey "LegalCopyright" "MIT - Shu" +VIAddVersionKey "FileVersion" "0.0.1" +VIProductVersion "0.0.1.1" + +OutFile "Univerxel-installer.exe" + +;-------------------------------- + +; Pages + +!define MUI_ABORTWARNING + +!insertmacro MUI_PAGE_COMPONENTS +!insertmacro MUI_PAGE_DIRECTORY +!insertmacro MUI_PAGE_INSTFILES + +!insertmacro MUI_UNPAGE_CONFIRM +!insertmacro MUI_UNPAGE_INSTFILES + +!insertmacro MUI_LANGUAGE "English" + +;-------------------------------- + +; The stuff to install +Section "Dependencies" + SectionIn RO + SetOutPath $INSTDIR + File "package\libcrypto-1_1-x64.dll" + File "package\openssl-license.txt" + + ; Write the installation path into the registry + WriteRegStr HKLM SOFTWARE\Univerxel "Install_Dir" "$INSTDIR" + + ; Write the uninstall keys for Windows + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Univerxel" "DisplayName" "Univerxel" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Univerxel" "UninstallString" '"$INSTDIR\uninstall.exe"' + WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Univerxel" "NoModify" 1 + WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Univerxel" "NoRepair" 1 + WriteUninstaller "$INSTDIR\uninstall.exe" + CreateDirectory "$SMPROGRAMS\Univerxel" +SectionEnd +Section "All in one" + SetOutPath $INSTDIR + File "Release\univerxel.exe" + File /r content + SetOverwrite off + File /oname=config.toml "..\resource\package\config.full.toml" + SetOverwrite on + CreateShortcut "$SMPROGRAMS\Univerxel\Univerxel (Full).lnk" "$INSTDIR\univerxel.exe" +SectionEnd +Section /o "Client" + SetOutPath $INSTDIR + File "Release\univerxel-client.exe" + File /r /x *.pem /x *.dict content + SetOverwrite off + File /oname=config.toml "..\resource\package\config.client.toml" + SetOverwrite on + CreateShortcut "$SMPROGRAMS\Univerxel\Univerxel (Client).lnk" "$INSTDIR\univerxel-client.exe" +SectionEnd +Section /o "Server" + SetOutPath $INSTDIR + File "Release\univerxel-server.exe" + CreateDirectory "$INSTDIR\content" + File /oname=content\cert.pem content\cert.pem + File /oname=content\key.pem content\key.pem + File /oname=content\zstd.dict content\zstd.dict + SetOverwrite off + File /oname=config.toml "..\resource\package\config.server.toml" + SetOverwrite on + CreateShortcut "$SMPROGRAMS\Univerxel\Univerxel (Server).lnk" "$INSTDIR\univerxel-server.exe" +SectionEnd + +;-------------------------------- + +; Uninstaller + +Section "Uninstall" + + ; Remove registry keys + DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Univerxel" + DeleteRegKey HKLM SOFTWARE\Univerxel + + ; Remove files and uninstaller + Delete "$INSTDIR\libcrypto-1_1-x64.dll" + Delete "$INSTDIR\openssl-license.txt" + Delete "$INSTDIR\univerxel.exe" + Delete "$INSTDIR\univerxel-client.exe" + Delete "$INSTDIR\univerxel-server.exe" + RMDir /r "$INSTDIR\content" + Delete "$INSTDIR\uninstall.exe" + + ; Remove shortcuts, if any + Delete "$SMPROGRAMS\Univerxel\*.lnk" + + ; Remove directories + RMDir /r "$SMPROGRAMS\Univerxel" + RMDir /r "$INSTDIR" + +SectionEnd diff --git a/univerxel.icns b/resource/package/univerxel.icns similarity index 100% rename from univerxel.icns rename to resource/package/univerxel.icns diff --git a/univerxel.ico b/resource/package/univerxel.ico similarity index 100% rename from univerxel.ico rename to resource/package/univerxel.ico diff --git a/univerxel.png b/resource/package/univerxel.png similarity index 100% rename from univerxel.png rename to resource/package/univerxel.png diff --git a/src/server/world/generator.hpp b/src/server/world/generator.hpp index 437f9f6..7990276 100644 --- a/src/server/world/generator.hpp +++ b/src/server/world/generator.hpp @@ -118,7 +118,7 @@ namespace world::generator { const auto heightRatio = static_cast((getHeight(pos) - params.height) / params.height); const auto scale = params.height >> 7; const auto mass = scale * scale * scale; //FIXME: average material density - return -getSurfaceDir(pos) * std::max(0.f, 1.f - heightRatio * heightRatio) * glm::vec3(mass); + return -getSurfaceDir(pos) * std::max(0, 1.f - heightRatio * heightRatio) * glm::vec3(mass); } private: static constexpr PlanetShape shape = PS; diff --git a/univerxel.rc b/univerxel.rc deleted file mode 100644 index c91d121..0000000 --- a/univerxel.rc +++ /dev/null @@ -1,28 +0,0 @@ - -UNIVERXEL ICON "univerxel.ico" - -VS_VERSION_INFO VERSIONINFO -FILEVERSION 0,0,1,0 -PRODUCTVERSION 0,0,1,0 - -EGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904B0" /* LANG_ENGLISH/SUBLANG_ENGLISH_US, Unicode CP */ - BEGIN - VALUE "CompanyName", "Shu" - VALUE "FileVersion", "0,0,1,0" - VALUE "LegalCopyright", "MIT" - VALUE "ProductName", "Univerxel" - VALUE "ProductVersion", "0,0,1,0" - VER_SPECIAL_BUILD_LINE - VER_PRIVATE_BUILD_LINE - END - - END - - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x0409, 0x04B0 - END -END