From 36fb39c38b81394ccb63b7771fc7ec83c4a58419 Mon Sep 17 00:00:00 2001 From: Madeleine Sydney Date: Thu, 17 Apr 2025 03:57:16 -0600 Subject: [PATCH] feat: Fix improved-crosshairs and allow customisation of alternatives --- tf2/packages/default.nix | 4 ++- tf2/packages/misc.nix | 14 ---------- tf2/packages/misc/default.nix | 10 +++++++ tf2/packages/misc/improved-crosshairs.nix | 34 +++++++++++++++++++++++ 4 files changed, 47 insertions(+), 15 deletions(-) delete mode 100644 tf2/packages/misc.nix create mode 100644 tf2/packages/misc/default.nix create mode 100644 tf2/packages/misc/improved-crosshairs.nix diff --git a/tf2/packages/default.nix b/tf2/packages/default.nix index 65a7c54..3b35ffe 100644 --- a/tf2/packages/default.nix +++ b/tf2/packages/default.nix @@ -41,6 +41,8 @@ in lib.mergeAttrsList [ { mastercomfig = callPackage ./mastercomfig.nix {}; } { huds = callPackage ./huds {}; } { maps = callPackage ./maps {}; } - (callPackage ./misc.nix {}) + (builtins.mapAttrs + (_: v: callPackage v {}) + (import ./misc {inherit lib;})) (callPackage ./scripts.nix {}) ] diff --git a/tf2/packages/misc.nix b/tf2/packages/misc.nix deleted file mode 100644 index 4f58fbd..0000000 --- a/tf2/packages/misc.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ fetchFromGameBanana, mkTf2Config, ... }: - -{ - improved-crosshairs = mkTf2Config { - pname = "improved-crosshairs"; - custom = [ - (fetchFromGameBanana { - name = "improved-crosshairs"; - id = "1047153"; - hash = "sha256-ULcSfxuiGY1YCE1zQ693183F7ZRC11tYhvDMJKyzL1A="; - }) - ]; - }; -} diff --git a/tf2/packages/misc/default.nix b/tf2/packages/misc/default.nix new file mode 100644 index 0000000..4ba9188 --- /dev/null +++ b/tf2/packages/misc/default.nix @@ -0,0 +1,10 @@ +{ lib, ... }: + +lib.mapAttrs' + (file: _: + lib.nameValuePair + (lib.removeSuffix ".nix" file) + (import ./${file})) + (lib.filterAttrs + (file: _: lib.hasSuffix ".nix" file && file != "default.nix") + (builtins.readDir ./.)) diff --git a/tf2/packages/misc/improved-crosshairs.nix b/tf2/packages/misc/improved-crosshairs.nix new file mode 100644 index 0000000..20e8a4e --- /dev/null +++ b/tf2/packages/misc/improved-crosshairs.nix @@ -0,0 +1,34 @@ +{ fetchFromGameBanana +, stdenv +, lib +# Alternate crosshairs to use. See their README. +, alternates ? [] +}: + +stdenv.mkDerivation { + pname = "improved-crosshairs"; + version = "2.0"; + src = fetchFromGameBanana { + name = "improved-crosshairs"; + id = "1047153"; + hash = "sha256-ULcSfxuiGY1YCE1zQ693183F7ZRC11tYhvDMJKyzL1A="; + }; + buildPhase = '' + ${lib.toShellVar "alternates" alternates} + dest_dir="Crosshairs/materials/vgui/replay/thumbnails/" + for alt in "''${alternates[@]}"; do + dest="$dest_dir/$(sed -e 's/\(.*\) \[.*\]$/\1/' <<< "$alt").vtf" + src="Alternates/$alt.vtf" + if [ ! -e "$src" ]; then + echo "Alternate '$alt' does not exist!" + exit 1 + else + mv "$src" "$dest" + fi + done + ''; + installPhase = '' + mkdir -p $out/custom + mv Crosshairs "$out/custom/improved-crosshairs" + ''; +}