OOKNET                             [ /  search the index  ]  
──────────────────────────────────────────────────────────────────────────────────────
══════════════════════════════════════════════════════════════════════════════════════
OOKNET   [ /  search  ]  
────────────────────────────────────────────────
════════════════════════════════════════════════
 
HASH      2f229818fa97
DATE      2025-07-19
SUBJECT   nix: components init
FILES     6 CHANGED
HASH      2f229818fa97
DATE      2025-07-19
SUBJECT   nix: components init
FILES     6 CHANGED
 

diff --git a/nix/components/classes/default.nix b/nix/components/classes/default.n
ix
new file mode 100644
index 0000000..57897c3
--- /dev/null
+++ b/nix/components/classes/default.nix
@@ -0,0 +1,19 @@
+{
+  lib,
+  ...
+}: {
+  # Import class-specific component modules
+  monk = import ./monk {inherit lib;};
+  
+  # Future class imports
+  # warrior = import ./warrior {inherit lib;};
+  # paladin = import ./paladin {inherit lib;};
+  # hunter = import ./hunter {inherit lib;};
+  # rogue = import ./rogue {inherit lib;};
+  # priest = import ./priest {inherit lib;};
+  # shaman = import ./shaman {inherit lib;};
+  # mage = import ./mage {inherit lib;};
+  # warlock = import ./warlock {inherit lib;};
+  # druid = import ./druid {inherit lib;};
+  # deathknight = import ./deathknight {inherit lib;};
+}
\ No newline at end of file

diff --git a/nix/components/classes/default.
nix b/nix/components/classes/default.nix
new file mode 100644
index 0000000..57897c3
--- /dev/null
+++ b/nix/components/classes/default.nix
@@ -0,0 +1,19 @@
+{
+  lib,
+  ...
+}: {
+  # Import class-specific component modules
+  monk = import ./monk {inherit lib;};
+  
+  # Future class imports
+  # warrior = import ./warrior {inherit lib
;};
+  # paladin = import ./paladin {inherit lib
;};
+  # hunter = import ./hunter {inherit lib;}
;
+  # rogue = import ./rogue {inherit lib;};
+  # priest = import ./priest {inherit lib;}
;
+  # shaman = import ./shaman {inherit lib;}
;
+  # mage = import ./mage {inherit lib;};
+  # warlock = import ./warlock {inherit lib
;};
+  # druid = import ./druid {inherit lib;};
+  # deathknight = import ./deathknight {inh
erit lib;};
+}
\ No newline at end of file
 

diff --git a/nix/components/classes/monk/default.nix b/nix/components/classes/monk
/default.nix
new file mode 100644
index 0000000..d8b0360
--- /dev/null
+++ b/nix/components/classes/monk/default.nix
@@ -0,0 +1,11 @@
+{
+  lib,
+  ...
+}: {
+  # Monk specs
+  windwalker = import ./windwalker.nix {inherit lib;};
+  
+  # Future monk specs
+  # brewmaster = import ./brewmaster.nix {inherit lib;};
+  # mistweaver = import ./mistweaver.nix {inherit lib;};
+}
\ No newline at end of file

diff --git a/nix/components/classes/monk/def
ault.nix b/nix/components/classes/monk/defau
lt.nix
new file mode 100644
index 0000000..d8b0360
--- /dev/null
+++ b/nix/components/classes/monk/default.ni
x
@@ -0,0 +1,11 @@
+{
+  lib,
+  ...
+}: {
+  # Monk specs
+  windwalker = import ./windwalker.nix {inh
erit lib;};
+  
+  # Future monk specs
+  # brewmaster = import ./brewmaster.nix {i
nherit lib;};
+  # mistweaver = import ./mistweaver.nix {i
nherit lib;};
+}
\ No newline at end of file
 

diff --git a/nix/components/classes/monk/windwalker.nix b/nix/components/classes/m
onk/windwalker.nix
new file mode 100644
index 0000000..aaa05af
--- /dev/null
+++ b/nix/components/classes/monk/windwalker.nix
@@ -0,0 +1,55 @@
+{
+  lib,
+  components,
+  ...
+}: let
+  inherit (lib.sim.player) mkPlayer;
+  inherit (components.consumables.preset) agility;
+
+  mkWindwalker = {
+    race,
+    apl,
+    gearset,
+    talents,
+    consumables ? agility,
+  }:
+    mkPlayer {
+      class = "monk";
+      spec = "windwalker";
+      glyphs = windwalker.glyphs.default;
+      inherit race gearset talents apl consumables;
+    };
+
+  windwalker = {
+    # Talent configurations
+    talents = {
+      xuen = "213322"; # Single target build with Xuen
+      rjw = "233321"; # AoE build with RJW
+    };
+
+    glyphs = {
+      default = {
+        major1 = 85697;
+        major2 = 87900;
+        minor1 = 90715;
+      };
+    };
+
+    # Phase 1 configurations
+    p1 = {
+      singleTarget = mkWindwalker {
+        race = "orc";
+        apl = "default";
+        gearset = "dw_p1_bis";
+        talents = windwalker.talents.xuen;
+      };
+      aoe = mkWindwalker {
+        race = "orc";
+        apl = "default";
+        gearset = "dw_p1_bis";
+        talents = windwalker.talents.rjw;
+      };
+    };
+  };
+in
+  windwalker

diff --git a/nix/components/classes/monk/win
dwalker.nix b/nix/components/classes/monk/wi
ndwalker.nix
new file mode 100644
index 0000000..aaa05af
--- /dev/null
+++ b/nix/components/classes/monk/windwalker
.nix
@@ -0,0 +1,55 @@
+{
+  lib,
+  components,
+  ...
+}: let
+  inherit (lib.sim.player) mkPlayer;
+  inherit (components.consumables.preset) a
gility;
+
+  mkWindwalker = {
+    race,
+    apl,
+    gearset,
+    talents,
+    consumables ? agility,
+  }:
+    mkPlayer {
+      class = "monk";
+      spec = "windwalker";
+      glyphs = windwalker.glyphs.default;
+      inherit race gearset talents apl cons
umables;
+    };
+
+  windwalker = {
+    # Talent configurations
+    talents = {
+      xuen = "213322"; # Single target buil
d with Xuen
+      rjw = "233321"; # AoE build with RJW
+    };
+
+    glyphs = {
+      default = {
+        major1 = 85697;
+        major2 = 87900;
+        minor1 = 90715;
+      };
+    };
+
+    # Phase 1 configurations
+    p1 = {
+      singleTarget = mkWindwalker {
+        race = "orc";
+        apl = "default";
+        gearset = "dw_p1_bis";
+        talents = windwalker.talents.xuen;
+      };
+      aoe = mkWindwalker {
+        race = "orc";
+        apl = "default";
+        gearset = "dw_p1_bis";
+        talents = windwalker.talents.rjw;
+      };
+    };
+  };
+in
+  windwalker
 

diff --git a/nix/components/consumables.nix b/nix/components/consumables.nix
new file mode 100644
index 0000000..359ddb0
--- /dev/null
+++ b/nix/components/consumables.nix
@@ -0,0 +1,93 @@
+{lib, ...}: let
+  # TODO: implement a system for elixirs.
+  consumable = {
+    potion = {
+      verminsBite = 76089;
+      agility = consumable.potion.verminsBite;
+
+      jadeSerpent = 76093;
+      intellect = consumable.potion.jadeSerpent;
+
+      moguPower = 76095;
+      strength = consumable.potion.moguPower;
+
+      mightyRage = 13442;
+      rage = consumable.potion.mightyRage;
+
+      snapRootTuber = 91803;
+      haste = consumable.potion.snapRootTuber;
+
+      mountains = 76090;
+      armor = consumable.potion.mountains;
+    };
+
+    flask = {
+      springBlossom = 76084;
+      agility = consumable.flask.springBlossom;
+
+      wintersBite = 76088;
+      strength = consumable.flask.wintersBite;
+
+      warmSun = 76085;
+      intellect = consumable.flask.warmSun;
+
+      earth = 76087;
+      stamina = consumable.flask.earth;
+    };
+
+    food = {
+      seaMistRiceNoodles = 74648;
+      agility = consumable.food.seaMistRiceNoodles;
+
+      moguFishStew = 74650;
+      intellect = consumable.food.moguFishStew;
+
+      blackPepperRibsAndShrimp = 74646;
+      strength = consumable.food.blackPepperRibsAndShrimp;
+
+      greenFishCurry = 81410;
+      crit = consumable.food.greenFishCurry;
+
+      spicySalmon = 86073;
+      hit = consumable.food.spicySalmon;
+
+      spicyVegetableChips = 86074;
+      expertise = consumable.food.spicyVegetableChips;
+
+      mangoIce = 101745;
+      mastery = consumable.food.mangoIce;
+
+      chunTianSpringRolls = 74656;
+      stamina = consumable.food.chunTianSpringRolls;
+    };
+
+    preset = {
+      agility = {
+        prepotId = consumable.potion.agility;
+        potId = consumable.potion.agility;
+        flaskId = consumable.flask.agility;
+        foodId = consumable.food.agility;
+      };
+      strength = {
+        prepotId = consumable.potion.strength;
+        potId = consumable.potion.strength;
+        flaskId = consumable.flask.strength;
+        foodId = consumable.food.strength;
+      };
+      intellect = {
+        prepotId = consumable.potion.intellect;
+        potId = consumable.potion.intellect;
+        flaskId = consumable.flask.intellect;
+        foodId = consumable.food.intellect;
+      };
+      tank = {
+        prepotId = consumable.potion.armor;
+        potId = consumable.potion.armor;
+        flaskId = consumable.flask.stamina;
+        foodId = consumable.food.stamina;
+      };
+    };
+  };
+in
+  consumable
+

diff --git a/nix/components/consumables.nix 
b/nix/components/consumables.nix
new file mode 100644
index 0000000..359ddb0
--- /dev/null
+++ b/nix/components/consumables.nix
@@ -0,0 +1,93 @@
+{lib, ...}: let
+  # TODO: implement a system for elixirs.
+  consumable = {
+    potion = {
+      verminsBite = 76089;
+      agility = consumable.potion.verminsBi
te;
+
+      jadeSerpent = 76093;
+      intellect = consumable.potion.jadeSer
pent;
+
+      moguPower = 76095;
+      strength = consumable.potion.moguPowe
r;
+
+      mightyRage = 13442;
+      rage = consumable.potion.mightyRage;
+
+      snapRootTuber = 91803;
+      haste = consumable.potion.snapRootTub
er;
+
+      mountains = 76090;
+      armor = consumable.potion.mountains;
+    };
+
+    flask = {
+      springBlossom = 76084;
+      agility = consumable.flask.springBlos
som;
+
+      wintersBite = 76088;
+      strength = consumable.flask.wintersBi
te;
+
+      warmSun = 76085;
+      intellect = consumable.flask.warmSun;
+
+      earth = 76087;
+      stamina = consumable.flask.earth;
+    };
+
+    food = {
+      seaMistRiceNoodles = 74648;
+      agility = consumable.food.seaMistRice
Noodles;
+
+      moguFishStew = 74650;
+      intellect = consumable.food.moguFishS
tew;
+
+      blackPepperRibsAndShrimp = 74646;
+      strength = consumable.food.blackPeppe
rRibsAndShrimp;
+
+      greenFishCurry = 81410;
+      crit = consumable.food.greenFishCurry
;
+
+      spicySalmon = 86073;
+      hit = consumable.food.spicySalmon;
+
+      spicyVegetableChips = 86074;
+      expertise = consumable.food.spicyVege
tableChips;
+
+      mangoIce = 101745;
+      mastery = consumable.food.mangoIce;
+
+      chunTianSpringRolls = 74656;
+      stamina = consumable.food.chunTianSpr
ingRolls;
+    };
+
+    preset = {
+      agility = {
+        prepotId = consumable.potion.agilit
y;
+        potId = consumable.potion.agility;
+        flaskId = consumable.flask.agility;
+        foodId = consumable.food.agility;
+      };
+      strength = {
+        prepotId = consumable.potion.streng
th;
+        potId = consumable.potion.strength;
+        flaskId = consumable.flask.strength
;
+        foodId = consumable.food.strength;
+      };
+      intellect = {
+        prepotId = consumable.potion.intell
ect;
+        potId = consumable.potion.intellect
;
+        flaskId = consumable.flask.intellec
t;
+        foodId = consumable.food.intellect;
+      };
+      tank = {
+        prepotId = consumable.potion.armor;
+        potId = consumable.potion.armor;
+        flaskId = consumable.flask.stamina;
+        foodId = consumable.food.stamina;
+      };
+    };
+  };
+in
+  consumable
+
 

diff --git a/nix/components/default.nix b/nix/components/default.nix
new file mode 100644
index 0000000..1d915db
--- /dev/null
+++ b/nix/components/default.nix
@@ -0,0 +1,13 @@
+{lib, ...}: let
+  components = {
+    # Consumable sets organized by role/stat priority
+    consumables = import ./consumables.nix {inherit lib;};
+
+    # Class-specific configurations
+    classes = import ./classes {inherit lib;};
+  };
+in {
+  flake.components = components;
+  _module.args.components = components;
+}
+

diff --git a/nix/components/default.nix b/ni
x/components/default.nix
new file mode 100644
index 0000000..1d915db
--- /dev/null
+++ b/nix/components/default.nix
@@ -0,0 +1,13 @@
+{lib, ...}: let
+  components = {
+    # Consumable sets organized by role/sta
t priority
+    consumables = import ./consumables.nix 
{inherit lib;};
+
+    # Class-specific configurations
+    classes = import ./classes {inherit lib
;};
+  };
+in {
+  flake.components = components;
+  _module.args.components = components;
+}
+
 

diff --git a/nix/default.nix b/nix/default.nix
index 96696e7..3efdc8d 100644
--- a/nix/default.nix
+++ b/nix/default.nix
@@ -1,5 +1,6 @@
 {
   imports = [
     ./shell.nix
+    ./components
   ];
 }

diff --git a/nix/default.nix b/nix/default.n
ix
index 96696e7..3efdc8d 100644
--- a/nix/default.nix
+++ b/nix/default.nix
@@ -1,5 +1,6 @@
 {
   imports = [
     ./shell.nix
+    ./components
   ];
 }
 
[ BACK TO LOG ]
──────────────────────────────────────────────────────────────────────────────────────
OOKNET
────────────────────────────────────────────────
OOKNET