| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- import type { Beacon, Machine, Module } from "../../scripts/factorio-dump/process-data.models";
- export interface InserterConfig {
- /** Used to group items onto mixed belts (e.g., assigning "in-1" to both Iron and Copper) */
- inserterId?: string;
- presetId: string;
- swingTicks: number;
- stackSize: number;
- }
- export interface ClockConfig {
- /** Configurations for inputs, keyed by the item's name */
- inputs: Record<string, InserterConfig>;
- /** Configurations for outputs, keyed by the item's name */
- outputs: Record<string, InserterConfig>;
- /** Target number of machines to scale the final inserter blueprint */
- machineCount?: number;
- }
- export interface BeaconGroup {
- id?: string;
- beacon: Beacon;
- beaconQualityLevel?: number;
- count: number;
- modules: Array<{ module: Module; qualityLevel: number }>;
- }
- export interface MachineSetup {
- machine: Machine;
- machineQualityLevel?: number; // 0 = Normal, 1 = Uncommon, 2 = Rare, 3 = Epic, 5 = Legendary
- machineModules: Array<{ module: Module; qualityLevel: number }>;
- beacons: Array<BeaconGroup>;
- }
- export interface CalculatedTimings {
- actualCraftingSpeed: number;
- productivityBonus: number;
- singleCraftTicks: number;
- craftsPerSecond: number;
- /** The maximum multiplier of a recipe's base ingredients an assembler will buffer before stalling input inserters */
- overloadMultiplier: number;
- }
- export interface BatchPlan {
- craftsPerCycle: number;
- durationTicks: number;
- timings: CalculatedTimings;
- inputs: Record<string, { totalAmount: number; baseAmount: number }>;
- outputs: Record<string, { totalAmount: number; baseAmount: number; yieldPerCraft: number; outputBlockLimit: number }>;
- }
|