diff --git a/flake.nix b/flake.nix index d3a540f..a2a51bc 100644 --- a/flake.nix +++ b/flake.nix @@ -49,6 +49,8 @@ project-untamed = callPackage ./games/project-untamed.nix { }; + uranium = callPackage ./games/uranium.nix { wine = winePackages.full; wineArch = "win32"; }; + clockwork = callPackage ./games/clockwork.nix { wine = winePackages.full; wineArch = "win32"; }; }; diff --git a/games/uranium.nix b/games/uranium.nix new file mode 100644 index 0000000..497254d --- /dev/null +++ b/games/uranium.nix @@ -0,0 +1,71 @@ +{ lib +, fetchFromMega +, fetchurl +, mkWindowsApp +, wine +, wineArch +, unzip +, makeDesktopItem +, makeDesktopIcon +, copyDesktopItems +, copyDesktopIcons +}: +let uid = "pkmn-uranium"; +in mkWindowsApp rec { + pname = "Pokemon Uranium"; + version = "1.2.5"; + meta.homepage = "https://pokemonuranium.co/"; + meta.description = "Welcome to Tandor region, where an explosion in a nuclear power plant causes a lot of devastation."; + + dontUnpack = true; + src = fetchFromMega rec { + name = "Pokemon Uranium ${version}.zip"; + url = "https://mega.nz/file/gh82ST6S#makZr_hsZAcMOIKSEPUwejVJ_N4OW7Mk9wEBlWIoIG0"; + hash = "sha256-AESWN70qOvbucuGzY8g5HT5aJSZi8FPV2qyPEpK9m5s="; + assert_exists = [ name ]; + }; + + inherit wine wineArch; + nativeBuildInputs = [ copyDesktopItems copyDesktopIcons ]; + + installPhase = '' + runHook preInstall + ln -s $out/bin/.launcher $out/bin/${lib.escapeShellArg pname} + runHook postInstall + ''; + + winAppInstall = '' + #winetricks -q directplay directmusic dsound devenum dmsynth quartz #d3dx9_36 + ${unzip}/bin/unzip ${src} -d "$WINEPREFIX/drive_c" + mv -v "$WINEPREFIX/drive_c/Pokemon Uranium ${version}" "$WINEPREFIX/drive_c/${uid}" + mkdir -vp "$WINEPREFIX/drive_c/windows/fonts" + cp -v "$WINEPREFIX/drive_c/${uid}/Fonts/"* "$WINEPREFIX/drive_c/windows/fonts/" + ''; + + fileMap."$HOME/.local/share/${uid}/Saved Games" + = "drive_c/users/$USER/Saved Games"; + + winAppRun = '' + $WINE start /unix "$WINEPREFIX"/drive_c/${uid}/Uranium.exe "$ARGS" + ''; + + desktopItems = [ + (makeDesktopItem { + name = pname; + exec = pname; + icon = uid; + desktopName = pname; + categories = ["Game"]; + }) + ]; + + desktopIcon = makeDesktopIcon { + name = uid; + icoIndex = 0; + src = fetchurl { + url = "https://pokemonuranium.co/img/logos/xuraniumlogocalc.png.pagespeed.ic.j2M-X6L-RW.png"; + hash = "sha256-qwY3KiroXFaIb/UXw9xxejYaRzpuIjPFZ2Vi2NNZnKw="; + }; + }; + +}