From 7266a417076eb7e69c8f4f235c640608ed8c624d Mon Sep 17 00:00:00 2001 From: Griffin Smith Date: Thu, 7 May 2020 23:48:21 -0400 Subject: Properly configured dwarf fortress The dwarf fortress packages built into nixpkgs are a little silly and a lot overbearing - do a bunch of hacky substitution to pound them into submission so that I can actually configure stuff like SHOW_FLOW_AMOUNTS and AUTOSAVE, which I feel like I need. --- home/modules/games.nix | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 home/modules/games.nix (limited to 'home/modules/games.nix') diff --git a/home/modules/games.nix b/home/modules/games.nix new file mode 100644 index 0000000000..14b2d1b4b3 --- /dev/null +++ b/home/modules/games.nix @@ -0,0 +1,46 @@ +{ config, lib, pkgs, ... }: + +with pkgs; + +let + + df-orig = dwarf-fortress-packages.dwarf-fortress-original; + + df-full = (dwarf-fortress-packages.dwarf-fortress-full.override { + theme = null; + enableIntro = false; + enableFPS = true; + }); + + init = runCommand "init.txt" {} '' + substitute "${df-orig}/data/init/init.txt" $out \ + --replace "[INTRO:YES]" "[INTRO:NO]" \ + --replace "[VOLUME:255]" "[VOLUME:0]" \ + --replace "[FPS:NO]" "[FPS:YES]" + ''; + + d_init = runCommand "d_init.txt" {} '' + substitute "${df-orig}/data/init/d_init.txt" $out \ + --replace "[AUTOSAVE:NONE]" "[AUTOSAVE:SEASONAL]" \ + --replace "[AUTOSAVE_PAUSE:NO]" "[AUTOSAVE_PAUSE:YES]" \ + --replace "[INITIAL_SAVE:NO]" "[INITIAL_SAVE:YES]" \ + --replace "[EMBARK_WARNING_ALWAYS:NO]" "[EMBARK_WARNING_ALWAYS:YES]" \ + --replace "[VARIED_GROUND_TILES:YES]" "[VARIED_GROUND_TILES:NO]" \ + --replace "[SHOW_FLOW_AMOUNTS:NO]" "[SHOW_FLOW_AMOUNTS:YES]" + ''; + + df = runCommand "dwarf-fortress" {} '' + mkdir -p $out/bin + sed \ + -e '4icp -f ${init} "$DF_DIR/data/init/init.txt"' \ + -e '4icp -f ${d_init} "$DF_DIR/data/init/d_init.txt"' \ + < "${df-full}/bin/dwarf-fortress" >"$out/bin/dwarf-fortress" + chmod +x $out/bin/dwarf-fortress + ''; + +in { + home.packages = [ + crawl + df + ]; +} -- cgit 1.4.1