refactor: data/modpack_rules → data/rules; auto-apply on resort path
The directory was misnamed — these are wsid-triggered sorting-rule
overlays, not modpack-specific. HellDrinx happens to be a modpack but
RV Interior Expansion isn't; both use the same generic mechanism.
Renames:
data/modpack_rules/ → data/rules/
_MODPACK_RULES_* → _RULES_*
_modpack_rules_for → _auto_rules_for
_parse_rules_with_modpacks → _parse_rules_combined
_emit_modpack_rules_warnings → _emit_rules_applied_warnings
warning tag "modpack-rules-applied" → "rules-applied"
Bug fix: /api/resort was passing {} rules to sort_mods, silently
dropping every auto-injected rule. The frontend runs an automatic
resort after each /api/sort (driven by localStorage branchSelections),
so the user always saw the resort output — where rv_expansion.txt's
loadAfter chain wasn't taking effect. Now resort goes through
_parse_rules_combined and emits rules-applied warnings the same way
/api/sort does.
This commit is contained in:
71
data/rules/helldrinx.txt
Normal file
71
data/rules/helldrinx.txt
Normal file
@@ -0,0 +1,71 @@
|
||||
; HellDrinx modpack — bundled sorting rules
|
||||
; Triggers: HellDrinx FULL (3672556207), HellDrinx LITE (3662909244).
|
||||
; Auto-injected by app.py:_auto_rules_for() when either trigger wsid is in
|
||||
; the user's input. User-supplied rules are appended afterward and override
|
||||
; these on conflicting keys.
|
||||
;
|
||||
; Source: HellDrinx FULL/LITE — keep this file in sync with the modpack's
|
||||
; upstream sorting_rules.txt when it updates.
|
||||
|
||||
[PROJECTRVInterior42]
|
||||
loadFirst=on
|
||||
[TombBody]
|
||||
loadAfter=SPNCC,SPNCCDetails,SPNCCDetailsHD,SpnHairAPI,SpnCloth,SpnOpenCloth,SPNCCFaces,SpnHair,FH,KATTAJ1_ClothesCore,KATTAJ1_Military,[J&G] Black Multicam Uniform,[J&G] British DPM Uniform,[J&G] Caution Pack,[J&G] Firefighter Uniform,[J&G] Neon Vandals Uniform,[J&G] SWAT Uniform,[J&G] Trauma Responder Uniform,[J&G] Umbrella Corp Uniform,[J&G] Alpine Multicam Uniform,[J&G] Desert Multicam Uniform,[J&G] Flecktarn Uniform,[J&G] Forest Multicam Uniform,[J&G] Jordan's Tailoring Buff,[J&G] MARPAT Camo Uniform,[J&G] XKU Uniform,AliceGear,CamisetasSeleccion,CerberusPack,DarkWpnSlings,EFTBP,GanydeBielovzki's Frockin Shirts n Ties,GanydeBielovzki's Frockin Splendor!,GanydeBielovzki's Frockin Splendor! Vol.2,GanydeBielovzki's Frockin Splendor! Vol.3,GanydeBielovzki's Frockin Splendor! Vol.4,GanydeBielovzki's Frockin Splendor! Vol.5,GanydeBielovzki's Frockin Wiseguys,H_E_C_U,HardwoodsTurnoutGear,KITTYOWO,LynxPack,MilitaryPonchosRELOADED,newclothesmodels,TwoWeaponsB,VanillaGearExpanded,zReApoPonchosB42,zReArmorPackBYKB42,ArmoredVests,ArmoredVestsPatch
|
||||
loadLast=on
|
||||
[TombBodyCustom]
|
||||
loadAfter=TombBody
|
||||
loadLast=on
|
||||
[TombBodyTexDOLL]
|
||||
loadAfter=TombBodyCustom
|
||||
incompatibleMods=TombBodyTexNUDE,TombBodyTex
|
||||
loadLast=on
|
||||
[TombGothTexDOLL]
|
||||
loadAfter=TombBodyTexDOLL
|
||||
incompatibleMods=TombGothTexNUDE,TombBodyTexNUDE,TombBodyTex
|
||||
loadLast=on
|
||||
[TombGothHair]
|
||||
loadAfter=TombBody,FH
|
||||
[TombBodyCompat]
|
||||
loadAfter=TombBody
|
||||
loadLast=on
|
||||
[TombWardrobeALT]
|
||||
loadAfter=TombBody
|
||||
loadLast=on
|
||||
[Optimal]
|
||||
loadLast=on
|
||||
[Performance]
|
||||
loadLast=on
|
||||
[ProjectSummerCar]
|
||||
loadAfter=VehicleRepairOverhaul,VehicleSalvageOverhaulB42
|
||||
incompatibleMods=Ivmakk_RestoreEngineQuality
|
||||
loadLast=on
|
||||
category=undefined
|
||||
[ItemretexturePSC]
|
||||
loadLast=on
|
||||
category=undefined
|
||||
[VehicleRepairOverhaul]
|
||||
loadBefore=ProjectSummerCar,Ivmakk_RestoreEngineQuality
|
||||
incompatibleMods=SimpleAutoParts
|
||||
loadLast=on
|
||||
[VehicleSalvageOverhaulB42]
|
||||
loadBefore=ProjectSummerCar,Ivmakk_RestoreEngineQuality
|
||||
loadLast=on
|
||||
[MoreDescriptionForTraits4213]
|
||||
loadBefore=FIX_DetailedDescriptionsForOccupationsAndTraits
|
||||
[HellDrinxJSONFix]
|
||||
loadAfter=ItemretexturePSC,TombBodyCompat
|
||||
loadLast=on
|
||||
[HellDrinxTranslations]
|
||||
loadAfter=ItemretexturePSC
|
||||
loadLast=on
|
||||
[HellDrinxBugFixes]
|
||||
loadAfter=ItemretexturePSC,TombBodyCompat,TombWardrobeALT,HellDrinxStrangers,SpnCloth
|
||||
loadLast=on
|
||||
[HellDrinxEssentials]
|
||||
loadLast=on
|
||||
[HellDrinxBugFixesFirst]
|
||||
loadFirst=on
|
||||
[TACPDM2]
|
||||
loadLast=on
|
||||
[damnlib]
|
||||
loadFirst=on
|
||||
19
data/rules/rv_expansion.txt
Normal file
19
data/rules/rv_expansion.txt
Normal file
@@ -0,0 +1,19 @@
|
||||
; RV Interior Expansion (B42) — sorting rules
|
||||
; Triggers:
|
||||
; - 3618427553 (RVInteriorExpansion, map folder rvupdate)
|
||||
; - 3622163276 (RVInteriorExpansionPart2, map folder rv2)
|
||||
; Auto-injected by app.py:_auto_rules_for() when either trigger wsid is
|
||||
; in the user's input. User-supplied rules are appended afterward and
|
||||
; override these on conflicting keys.
|
||||
;
|
||||
; Authored ordering: PROJECTRVInterior42 → RVInteriorExpansion → RVInteriorExpansionPart2.
|
||||
; The expansion mods don't declare these loadAfter relationships in their own
|
||||
; mod.info, so without these rules sortof has nothing to base the cluster
|
||||
; ordering on (PROJECTRVInterior42 is in PREORDER slot 7 already; expansions
|
||||
; just need to chain off of it).
|
||||
|
||||
[RVInteriorExpansion]
|
||||
loadAfter=PROJECTRVInterior42
|
||||
|
||||
[RVInteriorExpansionPart2]
|
||||
loadAfter=RVInteriorExpansion
|
||||
Reference in New Issue
Block a user