Skip to content

Commit 43da4a2

Browse files
committed
fix: Fix module export in labs and miners.
1 parent dae03ff commit 43da4a2

File tree

5 files changed

+17
-3
lines changed

5 files changed

+17
-3
lines changed

Yafc.Model/Blueprints/Blueprint.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,6 @@ public class BlueprintItemInventory {
239239

240240
[Serializable]
241241
public class BlueprintInventoryItem {
242-
public int inventory { get; } = 4; // unknown magic number (probably 'modules', needs more investigating)
242+
public int inventory { get; set; }
243243
public int stack { get; set; }
244244
}

Yafc.Model/Blueprints/BlueprintUtilities.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ public static string ExportRecipiesAsBlueprint(string name, IEnumerable<RecipeRo
185185
count = count,
186186
id = { name = module.target.name, quality = module.quality.name }
187187
};
188-
item.items.inInventory.AddRange(Enumerable.Range(idx, count).Select(i => new BlueprintInventoryItem { stack = i }));
188+
item.items.inInventory.AddRange(Enumerable.Range(idx, count).Select(i => new BlueprintInventoryItem { inventory = recipe.entity.target.BlueprintModuleInventory, stack = i }));
189189
entity.items.Add(item);
190190
idx += count;
191191
}

Yafc.Model/Data/DataClasses.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -678,6 +678,11 @@ public static bool CanAcceptModule(ModuleSpecification module, AllowedEffects ef
678678
return true;
679679
}
680680

681+
/// <summary>
682+
/// Gets the index of this entity's module inventory, as if from defines.inventory.{something}_modules
683+
/// </summary>
684+
public abstract int BlueprintModuleInventory { get; }
685+
681686
public bool CanAcceptModule<T>(IObjectWithQuality<T> module) where T : Module => CanAcceptModule(module.target.moduleSpecification);
682687
public bool CanAcceptModule(ModuleSpecification module) => CanAcceptModule(module, allowedEffects, allowedModuleCategories);
683688
}
@@ -699,6 +704,12 @@ public virtual float baseCraftingSpeed {
699704
}
700705
public virtual float CraftingSpeed(Quality quality) => factorioType is "agricultural-tower" or "electric-energy-interface" ? baseCraftingSpeed : quality.ApplyStandardBonus(baseCraftingSpeed);
701706
public EffectReceiver effectReceiver { get; internal set; } = null!;
707+
708+
public override int BlueprintModuleInventory => factorioType switch {
709+
"mining-drill" => 2, /* defines.inventory.mining_drill_modules */
710+
"lab" => 3, /* defines.inventory.lab_modules */
711+
_ => 4 /* defines.inventory.crafter_modules */
712+
};
702713
}
703714

704715
public class EntityAttractor : EntityCrafter {
@@ -948,6 +959,8 @@ public float GetProfile(int numberOfBeacons) {
948959

949960
return profile[Math.Min(numberOfBeacons, profile.Length) - 1];
950961
}
962+
963+
public override int BlueprintModuleInventory => 1 /*defines.inventory.beacon_modules*/;
951964
}
952965

953966
public class EntityContainer : Entity {

Yafc/Workspace/ProductionTable/ProductionTableView.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -567,7 +567,7 @@ private static void ShowEntityDropdown(ImGui gui, RecipeRow recipe) {
567567
count = count,
568568
id = { name = module.target.name, quality = module.quality.name }
569569
};
570-
item.items.inInventory.AddRange(Enumerable.Range(idx, count).Select(i => new BlueprintInventoryItem { stack = i }));
570+
item.items.inInventory.AddRange(Enumerable.Range(idx, count).Select(i => new BlueprintInventoryItem { inventory = recipe.entity.target.BlueprintModuleInventory, stack = i }));
571571
entity.items.Add(item);
572572
idx += count;
573573
}

changelog.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ Date:
2626
Fixes:
2727
- Fix rendering of multi-icon technologies (e.g. shooting speed techs)
2828
- Add simplified support for debug.getinfo(), only returns short_src. Fixes #455, #504.
29+
- Modules were not exported correctly in labs or mining drills.
2930
----------------------------------------------------------------------------------------------------------------------
3031
Version: 2.15.0
3132
Date: September 1st 2025

0 commit comments

Comments
 (0)