diff --git a/pkgs/default.nix b/pkgs/default.nix index 4c65ecb0..95aff76f 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -77,6 +77,10 @@ technic-launcher = pkgs.callPackage ./technic-launcher {}; + tmodloader = pkgs.callPackage ./tmodloader { + dotnet = pkgs.dotnet-runtime_6; + }; + viper = pkgs.callPackage ./titanfall/viper.nix {}; vkd3d-proton = pkgs.callPackage ./vkd3d-proton {inherit pins;}; diff --git a/pkgs/tmodloader/default.nix b/pkgs/tmodloader/default.nix new file mode 100644 index 00000000..5def4b80 --- /dev/null +++ b/pkgs/tmodloader/default.nix @@ -0,0 +1,76 @@ +{ + lib, + stdenv, + fetchzip, + steam-run, + dotnet, + runtimeDir ? "\\$HOME/.local/share/tmodloader", + ... +}: let + pname = "tModLoader"; + version = "2023.11.3.3"; +in + stdenv.mkDerivation { + inherit pname version; + + src = fetchzip { + url = "https://github.com/tModLoader/${pname}/releases/download/v${version}/tModLoader.zip"; + hash = "sha256-5sqSBGgsHcFQVAvwHFOUYz5UtVOjOP2mD1uqkGzOnL8="; + stripRoot = false; + }; + + installPhase = '' + mkdir -p $out/{bin,share} + + # move relevant files to $out/share + # removing any of those files causes the game + # to violently combust while launching + cp -r \ + $src/DedicatedServerUtils \ + $src/LaunchUtils \ + $src/Libraries \ + $src/tModPorter \ + $src/tModLoader.deps.json \ + $src/tModLoader.dll \ + $src/tModLoader.pdb \ + $src/tModLoader.runtimeconfig.dev.json \ + $src/tModLoader.runtimeconfig.json \ + $src/tModLoader.xml \ + $src/serverconfig.txt \ + $out/share + + # make dll file executable + chmod +x $out/share/tModLoader.dll + + # write a wrapper script that executes the correct file + cat > $out/bin/${pname} <