{ stdenvNoCC , lib , buildEnv , df-games , themes , latestVersion , versionToName , dfVersion ? latestVersion # This package should, at any given time, provide an opinionated "optimal" # DF experience. It's the equivalent of the Lazy Newbie Pack, that is, and # should contain every utility available unless you disable them. , enableDFHack ? stdenvNoCC.hostPlatform.isLinux , enableTWBT ? enableDFHack , enableSoundSense ? true , enableStoneSense ? true , enableDwarfTherapist ? true , enableLegendsBrowser ? true , legends-browser , theme ? themes.phoebus # General config options: , enableIntro ? true , enableTruetype ? null # defaults to 24, see init.txt , enableFPS ? false , enableTextMode ? false , enableSound ? true }: let inherit (lib) getAttr hasAttr licenses maintainers optional platforms ; dfGame = versionToName dfVersion; dwarf-fortress = if hasAttr dfGame df-games then getAttr dfGame df-games else throw "Unknown Dwarf Fortress version: ${dfVersion}"; dwarf-therapist = dwarf-fortress.dwarf-therapist; mainProgram = if enableDFHack then "dfhack" else "dwarf-fortress"; in buildEnv { name = "dwarf-fortress-full"; paths = [ (dwarf-fortress.override { inherit enableDFHack enableTWBT enableSoundSense enableStoneSense theme enableIntro enableTruetype enableFPS enableTextMode enableSound; }) ] ++ optional enableDwarfTherapist dwarf-therapist ++ optional enableLegendsBrowser legends-browser; meta = { inherit mainProgram; description = "Opinionated wrapper for Dwarf Fortress"; maintainers = with maintainers; [ Baughn numinit ]; license = licenses.mit; platforms = platforms.all; homepage = "https://github.com/NixOS/nixpkgs/"; }; }