nixpkgs/pkgs/games/cataclysm-dda
2020-07-18 14:23:24 +09:00
..
pkgs cataclysmDDA: make pkgs extensible 2020-07-18 14:23:22 +09:00
builder.nix cataclysmDDA: add very basic framework for packaging mods 2020-07-18 14:23:19 +09:00
common.nix cataclysm-dda{,-git}: support build with USE_XDG_DIR flag 2020-07-18 14:23:23 +09:00
default.nix cataclysmDDA: add very basic framework for packaging mods 2020-07-18 14:23:19 +09:00
git.nix cataclysm-dda-git: make it overridable with git revision 2020-07-18 14:23:23 +09:00
lib.nix cataclysmDDA: add very basic framework for packaging mods 2020-07-18 14:23:19 +09:00
README.md cataclysmDDA: add README 2020-07-18 14:23:23 +09:00
stable.nix cataclysm-dda{,-git}: support build with USE_XDG_DIR flag 2020-07-18 14:23:23 +09:00
wrapper.nix cataclysmDDA: launch the wrapped program 2020-07-18 14:23:24 +09:00

Cataclysm: Dark Days Ahead

Installation

To install the latest stable release of Cataclysm DDA, run nix-env -f "<nixpkgs>" -iA cataclysm-dda. For the curses build (build without tiles), install cataclysmDDA.stable.curses. Note: cataclysm-dda is an alias to cataclysmDDA.stable.tiles.

If you like access to a development build of your favorite git revision, override cataclysm-dda-git (or cataclysmDDA.git.curses if you like no tiles):

cataclysm-dda-git.override {
  version = "YYYY-MM-DD";
  rev = "YOUR_FAVORITE_REVISION";
  sha256 = "CHECKSUM_OF_THE_REVISION";
}

The sha256 checksum can be obtained by

nix-prefetch-url --unpack "https://github.com/CleverRaven/Cataclysm-DDA/archive/${YOUR_FAVORITE_REVISION}.tar.gz"

Customizing with mods

To install the game with mods of your choice, you can use withMods attribute:

cataclysm-dda.withMods (mods: with mods; [
  tileset.UndeadPeople
])

All mods, soundpacks, and tilesets available in nixpkgs are found in cataclysmDDA.pkgs.

To modify existing mods and/or add more mods not available in nixpkgs, you can do it like this way:

let
  customMods = self: super: lib.recursiveUpdate super {
    # Modify existing mod
    tileset.UndeadPeople = super.tileset.UndeadPeople.overrideAttrs (old: {
      # If you like to apply a patch to the tileset for example
      patches = [ ./path/to/your.patch ];
    });

    # Add another mod
    mod.Awesome = cataclysmDDA.buildMod {
      modName = "Awesome";
      version = "0.x";
      src = fetchFromGitHub {
        owner = "Someone";
        repo = "AwesomeMod";
        rev = "...";
        sha256 = "...";
      };
      # Path to be installed in the unpacked source (default: ".")
      modRoot = "contents/under/this/path/will/be/installed";
    };

    # Add another soundpack
    soundpack.Fantastic = cataclysmDDA.buildSoundPack {
      # ditto
    };

    # Add another tileset
    tileset.SuperDuper = cataclysmDDA.buildTileSet {
      # ditto
    };
  };
in
cataclysm-dda.withMods (mods: with mods.extend customMods; [
  tileset.UndeadPeople
  mod.Awesome
  soundpack.Fantastic
  tileset.SuperDuper
])