summaryrefslogtreecommitdiff
path: root/ymir/factorio.nix
blob: 3e021e8dc6fe1da18b96ddff69057ebacf42a420 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
{ config, pkgs, ... }:

let
  modDrv = pkgs.factorio-utils.modDrv {
    allRecommendedMods = true;
    allOptionalMods = false;
  };
  modPortalDrv = { name, version, sha256, deps ? [], optionalDeps ? [], recommendedDeps ? [] }: modDrv {
    # src = pkgs.factorio-fetch {
    #   name = ''${name}_${version}.zip'';
    #   url = ''https://mods.factorio.com/api/downloads/data/mods/${id}_${version}.zip'';
    #   inherit sha256;
    #   loginUrl = "";
    # };
    name = ''${name}-${version}'';
    src = pkgs.fetchurl {
      url = ''https://f.141.li/${name}_${version}.zip'';
      inherit sha256;
    };
    inherit deps optionalDeps recommendedDeps;
  };

  availableMods = rec {
    autofill = modPortalDrv {
      name = "autofill";
      version = "1.4.5";
      sha256 = "1nmn12d7fpi6gk5i6dvzqnca1hs9icqssgvjc2qdi9hz2n07h265";
    };
    EvoGUI = modPortalDrv {
      name = "EvoGUI";
      version = "0.4.108";
      sha256 = "1z7cx8a4ybilccvxsmd85i7q2fy95as1mjs7gvbmnllp0r6p73pj";
    };
    factorio-reach = modPortalDrv {
      name = "factorio-reach";
      version = "2.1.1";
      sha256 = "1ll77ns2bvzsvypd27y545inb5489lsk2is4wv01q4i8zbvbviac";
    };
    FAIR = modPortalDrv {
      name = "FAIR";
      version = "0.0.1";
      sha256 = "0cwgidy3ycp90jy9qrll2gyvkmdxys5v8w6qrciifh3h77dx5ryg";
    };
    EvenMoreLight = modPortalDrv {
      name = "EvenMoreLight";
      version = "0.0.3";
      sha256 = "06j891nbcl07di2rs0zh87hczp2p1mbpai14w52myxag0ysy4zya";
    };
    RailTanker = modPortalDrv {
      name = "RailTanker";
      version = "1.4.0";
      sha256 = "1y9p6qiwrypyqk58rr3ahq11ikyk752fbap3n15mdplkc9i4gpfr";
    };
    rso-mod = modPortalDrv {
      name = "rso-mod";
      version = "2.2.2";
      sha256 = "0d46vz204bv220ifjaa8qcvnbzkalrqgppmzwk43kvy1jyp9xil4";
    };
    YARM = modPortalDrv {
      name = "YARM";
      version = "0.7.106";
      sha256 = "1qy7bylp79jfs9s81sc4g9qqwby2hsy3hcjz80cfha1sz0c048i7";
    };
  };
in {
  services.factorio = {
    enable = true;
    saveName = config.networking.hostName;
    mods = with availableMods; [
      autofill
      EvoGUI
      factorio-reach
      FAIR
      EvenMoreLight
      RailTanker
      rso-mod
      YARM
    ];
    autosave-interval = 10;
  };

  nixpkgs.config.allowUnfree = true;

  nixpkgs.config.packageOverrides = pkgs: {
    factorio-mkModDirDrv = pkgs.factorio-utils.mkModDirDrv;
  };
}