{ description = "Westgate Urban Foundation MVP — Blender 4.0.2 tileset generator kit"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; # Reuse the machine's pinned Blender 4.0.2 + NWN toolchain via the repo overlay. theorem.url = "git+file:///nix/nixos"; }; outputs = { self, nixpkgs, theorem, }: let system = "x86_64-linux"; pkgs = import nixpkgs { inherit system; overlays = [ theorem.overlays.default ]; }; blender = pkgs.blender-402-bin; # /bin/blender-4.0.2 (NWN needs 4.0.x, not 5.x) py = pkgs.python3.withPackages (ps: [ ps.mcp ]); gen = ./generator; # whole dir so tiles.py sits beside each script for import build = pkgs.writeShellApplication { name = "wgt-build"; runtimeInputs = [ blender ]; text = '' out="''${1:-westgate_urban_foundation_mvp.blend}" exec blender-4.0.2 --background --python ${gen}/build.py -- "$out" ''; }; mkset = pkgs.writeShellApplication { name = "wgt-set"; runtimeInputs = [ py ]; text = ''exec python ${gen}/make_set.py "$@"''; }; mkwok = pkgs.writeShellApplication { name = "wgt-wok"; runtimeInputs = [ py ]; text = ''exec python ${gen}/make_wok.py "$@"''; }; # Real .mdl + .wok export via the Neverblender addon (must be enabled in # this Blender's user config — confirmed working headless). mkmdl = pkgs.writeShellApplication { name = "wgt-export"; runtimeInputs = [ blender ]; text = '' blend="''${1:?usage: wgt-export [CODE...]}" outdir="''${2:-mdl}" shift 2 || true exec blender-4.0.2 --background "$blend" --python ${gen}/export_mdl.py \ --python-exit-code 1 -- "$outdir" "$@" ''; }; in { packages.${system}.default = build; apps.${system} = { default = { type = "app"; program = "${build}/bin/wgt-build"; }; build = { type = "app"; program = "${build}/bin/wgt-build"; }; set = { type = "app"; program = "${mkset}/bin/wgt-set"; }; wok = { type = "app"; program = "${mkwok}/bin/wgt-wok"; }; export = { type = "app"; program = "${mkmdl}/bin/wgt-export"; }; }; devShells.${system}.default = pkgs.mkShell { packages = [ blender py pkgs.neverwinter-nim pkgs.cleanmodels ]; shellHook = '' export BLENDER_BIN=${blender}/bin/blender-4.0.2 echo "wgt01 dev shell — build: blender-4.0.2 --background --python generator/build.py -- out.blend" >&2 ''; }; }; }