Files
pysatcalc/plus.py
2025-11-11 18:01:55 +00:00

911 lines
25 KiB
Python

from enum import Enum
from typing import Dict
from shared import Machine, Item
from pydantic import BaseModel, Field, ConfigDict
class Machines(Enum):
Miner = Machine(name="Miner")
Smelter = Machine(name="Smelter")
Constructor = Machine(name="Constructor")
Assembler = Machine(name="Assembler")
Sorter = Machine(name="Sorter")
Crusher = Machine(name="Crusher")
Foundry = Machine(name="Foundry")
FlexibleBlastFurnace = Machine(name="Flexible Blast Furnace")
Reformer = Machine(name="Reformer")
WetWasher = Machine(name="Wet Washer")
BoilerMk1 = Machine(name="Boiler Mk1")
class Items(Enum):
IronIngot = Item(name="Iron Ingot")
CopperIngot = Item(name="Copper Ingot")
Limestone = Item(name="Limestone")
IronOre = Item(name="Iron Ore")
CopperOre = Item(name="Copper Ore")
IronPlate = Item(name="Iron Plate")
IronRod = Item(name="Iron Rod")
Wire = Item(name="Wire")
Cable = Item(name="Cable")
Concrete = Item(name="Concrete")
ReinforcedIronPlate = Item(name="Reinforced Iron Plate")
ModularFrame = Item(name="Modular Frame")
BronzeBeam = Item(name="Bronze Beam")
TinPlate = Item(name="Tin Plate")
TinIngot = Item(name="Tin Ingot")
CrushedTin = Item(name="Crushed Tin")
CrushedIron = Item(name="Crushed Iron")
CrushedGangue = Item(name="Crushed Gangue")
CrushedSiterite = Item(name="Crushed Siterite")
SiteriteOre = Item(name="Siterite Ore")
Screws = Item(name="Screws")
BronzeIngot = Item(name="Bronze Ingot")
CrushedCopper = Item(name="Crushed Copper")
CrushedMagnesium = Item(name="Crushed Magnesium")
CrushedCallanite = Item(name="Crushed Callanite")
CallaniteOre = Item(name="Callanite Ore")
CrushedLarrussite = Item(name="Crushed Larrussite")
CrushedAurovite = Item(name="Crushed Aurovite")
AuroviteOre = Item(name="Aurovite Ore")
Sand = Item(name="Sand")
MagnesiumGranules = Item(name="Magnesium Granules")
CrushedZinc = Item(name="Crushed Zinc")
LarrussiteOre = Item(name="Larrussite Ore")
ZincIngot = Item(name="Zinc Ingot")
Glass = Item(name="Glass")
IronSheet = Item(name="Iron Sheet")
CopperRod = Item(name="Copper Rod")
CopperSheet = Item(name="Copper Sheet")
BronzePlates = Item(name="Bronze Plates")
CateriumRod = Item(name="Caterium Rod")
CateriumIngot = Item(name="Caterium Ingot")
CateriumPlate = Item(name="Caterium Plate")
TinRod = Item(name="Tin Rod")
ZincPlates = Item(name="Zinc Plates")
IronWire = Item(name="Iron Wire")
CopperBusbars = Item(name="Copper Busbars")
Quickwire = Item(name="Quickwire")
TinnedWire = Item(name="Tinned Wire")
SolarCell = Item(name="Solar Cell")
Silica = Item(name="Silica")
BronzePipes = Item(name="Bronze Pipes")
SmoothBeltDrive = Item(name="Smooth Belt Drive")
TinnedSheet = Item(name="Tinned Sheet")
Rotor = Item(name="Rotor")
BronzeFrame = Item(name="Bronze Frame")
AILimiter = Item(name="AI Limiter")
Water = Item(name="Water")
CrushedCaterium = Item(name="Crushed Caterium")
CateriumHeatsink = Item(name="Caterium Heatsink")
MoltenIron = Item(name="Molten Iron")
MoltenCopper = Item(name="Molten Copper")
MoltenTin = Item(name="Molten Tin")
Steam = Item(name="Steam")
MoltenBrass = Item(name="Molten Brass")
BrassIngot = Item(name="Brass Ingot")
BrassPlates = Item(name="Brass Plates")
BrassPipes = Item(name="Brass Pipes")
ColdSlag = Item(name="Cold Slag")
FanBlades = Item(name="Fan Blades")
TailingsSlurry = Item(name="Tailings Slurry")
CarbonPowder = Item(name="Carbon Powder")
Coal = Item(name="Coal")
MoltenSteel = Item(name="Molten Steel")
FlueGas = Item(name="Flue Gas")
SteelIngot = Item(name="Steel Ingot")
Air = Item(name="Air")
SteelBeam = Item(name="Steel Beam")
SteelPipe = Item(name="Steel Pipe")
SteelBolt = Item(name="Steel Bolt")
SteelRod = Item(name="Steel Rod")
Stator = Item(name="Stator")
Kyalite = Item(name="Kyalite")
Salt = Item(name="Salt")
Diamonds = Item(name="Diamonds")
QuartzCrystal = Item(name="Quartz Crystal")
BrassBeltDrive = Item(name="Brass Belt Drive")
class RawResources(Enum):
Water = Items.Water
SiteriteOre = Items.SiteriteOre
LarrussiteOre = Items.LarrussiteOre
CallaniteOre = Items.CallaniteOre
AuroviteOre = Items.AuroviteOre
Kyalite = Items.Kyalite
Coal = Items.Coal
Air = Items.Air
class Recipe(BaseModel):
model_config = ConfigDict(frozen=True)
name: str
building: Machines
outputs: Dict[Items, float]
inputs: Dict[Items, float] = Field(default_factory=dict)
byproducts: Dict[Items, float] = Field(default_factory=dict)
class Recipes(Enum):
# Crusher
# - Crushing Ores
CrushedSiterite = Recipe(
name="Crushed Siterite",
building=Machines.Crusher,
outputs={
Items.CrushedSiterite: 60.0,
Items.CrushedGangue: 25.0,
},
inputs={Items.SiteriteOre: 60.0},
)
CrushedLarrussite = Recipe(
name="Crushed Larrussite",
building=Machines.Crusher,
outputs={
Items.CrushedLarrussite: 40.0,
},
inputs={Items.LarrussiteOre: 60.0},
byproducts={Items.CrushedGangue: 20.0,}
)
CrushedCallanite = Recipe(
name="Crushed Callanite",
building=Machines.Crusher,
outputs={
Items.CrushedCallanite: 60.0,
Items.CrushedGangue: 25.0,
},
inputs={Items.CallaniteOre: 60.0},
)
CrushedAurovite = Recipe(
name="Crushed Aurovite",
building=Machines.Crusher,
outputs={
Items.CrushedAurovite: 60.0,
Items.CrushedGangue: 22.5,
},
inputs={Items.AuroviteOre: 60.0},
)
CrushedSilica = Recipe(
name="Crushed Silica",
building=Machines.Crusher,
outputs={
Items.Silica: 60.0,
Items.Sand: 40.0,
},
inputs={Items.Kyalite: 60.0},
)
# - Crushing Powders
CoarseSand = Recipe(
name="Coarse Sand",
building=Machines.Crusher,
outputs={
Items.Sand: 30.0
},
inputs={Items.CrushedGangue: 60.0},
)
MagnesiumGranules = Recipe(
name="Magnesium Granules",
building=Machines.Crusher,
outputs={
Items.MagnesiumGranules: 72.0
},
inputs={Items.CrushedMagnesium: 80.0},
)
CarbonPowder = Recipe(
name="Carbon Powder",
building=Machines.Crusher,
outputs={
Items.CarbonPowder: 40.0
},
inputs={Items.Coal: 80.0},
)
# Sorter
# - Simple Sorting
CrushedIron = Recipe(
name="Crushed Iron",
building=Machines.Sorter,
outputs={
Items.CrushedIron: 90.0,
Items.CrushedTin: 60.0,
Items.CrushedGangue: 40.0,
},
inputs={Items.CrushedSiterite: 120.0},
)
CrushedCopper = Recipe(
name="Crushed Copper",
building=Machines.Sorter,
outputs={
Items.CrushedCopper: 96.0,
Items.CrushedMagnesium: 80.0,
Items.CrushedGangue: 40.0,
},
inputs={Items.CrushedCallanite: 120.0},
)
CrushedZinc = Recipe(
name="Crushed Zinc",
building=Machines.Sorter,
outputs={
Items.CrushedZinc: 96.0,
Items.Sand: 48.0,
},
inputs={Items.CrushedLarrussite: 120.0},
byproducts={
Items.CrushedGangue: 60.0,
}
)
CrushedCaterium = Recipe(
name="Crushed Caterium",
building=Machines.Sorter,
outputs={
Items.CrushedCaterium: 80.0,
Items.CrushedCopper: 40.0,
Items.CrushedGangue: 30.0,
},
inputs={Items.CrushedAurovite: 120.0},
)
QuartzCrystal = Recipe(
name="Quartz Crystal",
building=Machines.Sorter,
outputs={
Items.QuartzCrystal: 100.0,
Items.Salt: 40.0,
Items.Sand: 40.0,
},
inputs={Items.Kyalite: 120.0},
)
# - Advanced Sorting
SaltKyalite = Recipe(
name="Salt (Kyalite)",
building=Machines.Sorter,
outputs={
Items.Salt: 90.0,
Items.Silica: 45.0,
Items.Sand: 30.0,
},
inputs={
Items.Kyalite: 120.0,
Items.Water: 45.0,
},
)
# Smelter
# - smelting
IronIngot = Recipe(
name="Iron Ingot",
building=Machines.Smelter,
outputs={Items.IronIngot: 30.0},
inputs={Items.CrushedIron: 30.0},
)
CopperIngot = Recipe(
name="Copper Ingot",
building=Machines.Smelter,
outputs={Items.CopperIngot: 48.0},
inputs={Items.CrushedCopper: 48.0},
)
TinIngot = Recipe(
name="Tin Ingot",
building=Machines.Smelter,
outputs={Items.TinIngot: 15.0},
inputs={Items.CrushedTin: 15.0},
)
CateriumIngot = Recipe(
name="Caterium Ingot",
building=Machines.Smelter,
outputs={Items.CateriumIngot: 40.0},
inputs={Items.CrushedCaterium: 40.0},
)
# - Ingots
ImpureIronIngot = Recipe(
name="Impure Iron Ingot",
building=Machines.Smelter,
outputs={Items.IronIngot: 30.0},
inputs={Items.CrushedSiterite: 30.0},
)
ImpureCopperIngot = Recipe(
name="Impure Copper Ingot",
building=Machines.Smelter,
inputs={Items.CrushedCallanite: 24.0},
outputs={Items.CopperIngot: 24.0},
)
ImpureTinIngot = Recipe(
name="Impure Tin Ingot",
building=Machines.Smelter,
inputs={Items.CrushedSiterite: 30.0},
outputs={Items.TinIngot: 15.0},
)
ImpureCateriumIngot = Recipe(
name="Impure Caterium Ingot",
building=Machines.Smelter,
outputs={Items.CateriumIngot: 24.0},
inputs={Items.CrushedAurovite: 40.0},
)
ZincIngot = Recipe(
name="Zinc Ingot",
building=Machines.Smelter,
outputs={Items.ZincIngot: 15.0},
inputs={Items.CrushedZinc: 24.0},
)
# - Standard Parts
SloppyGlass = Recipe(
name="Sloppy Glass",
building=Machines.Smelter,
outputs={Items.Glass: 20.0},
inputs={Items.Sand: 30.0},
)
CastIronScrew = Recipe(
name="Cast Iron Screw",
building=Machines.Smelter,
outputs={Items.Screws: 40.0},
inputs={Items.IronIngot: 20.0},
)
# Constructor
# - Standard Parts
IronPlate = Recipe(
name="Iron Plate",
building=Machines.Constructor,
outputs={Items.IronPlate: 20.0},
inputs={Items.IronIngot: 30.0},
)
Screws = Recipe(
name="Screws",
building=Machines.Constructor,
outputs={Items.Screws: 50.0},
inputs={Items.IronRod: 20.0},
)
IronRod = Recipe(
name="Iron Rod",
building=Machines.Constructor,
outputs={Items.IronRod: 15.0},
inputs={Items.IronIngot: 15.0},
)
IronSheet = Recipe(
name="Iron Sheet",
building=Machines.Constructor,
outputs={Items.IronSheet: 50.0},
inputs={Items.IronPlate: 40.0},
)
CopperRod = Recipe(
name="Copper Rod",
building=Machines.Constructor,
outputs={Items.CopperRod: 18.0},
inputs={Items.CopperIngot: 12.0},
)
CopperSheet = Recipe(
name="Copper Sheet",
building=Machines.Constructor,
outputs={Items.CopperSheet: 30.0},
inputs={Items.CopperIngot: 24.0},
)
BronzeBeam = Recipe(
name="Bronze Beam",
building=Machines.Constructor,
outputs={Items.BronzeBeam: 7.5},
inputs={Items.BronzeIngot: 22.5},
)
BronzePlates = Recipe(
name="Bronze Plates",
building=Machines.Constructor,
outputs={Items.BronzePlates: 24.0},
inputs={Items.BronzeIngot: 30.0},
)
CateriumRod = Recipe(
name="Caterium Rod",
building=Machines.Constructor,
outputs={Items.CateriumRod: 32.0},
inputs={Items.CateriumIngot: 16.0},
)
CateriumPlate = Recipe(
name="Caterium Plate",
building=Machines.Constructor,
outputs={Items.CateriumPlate: 36.0},
inputs={Items.CateriumIngot: 60.0},
)
TinRod = Recipe(
name="Tin Rod",
building=Machines.Constructor,
outputs={Items.TinRod: 15.0},
inputs={Items.TinIngot: 30.0},
)
ZincPlates = Recipe(
name="Zinc Plates",
building=Machines.Constructor,
outputs={Items.ZincPlates: 15.0},
inputs={Items.ZincIngot: 12.5},
)
RolledBronzePlate = Recipe(
name="Rolled Bronze Plate",
building=Machines.Constructor,
outputs={Items.BronzePipes: 16.0},
inputs={Items.BronzePlates: 8.0},
)
CompactedIronPlate = Recipe(
name="Compacted Iron Plate",
building=Machines.Constructor,
outputs={Items.ReinforcedIronPlate: 3.0},
inputs={Items.IronPlate: 20.0},
)
# - Electronics
IronWire = Recipe(
name="Iron Wire",
building=Machines.Constructor,
outputs={Items.IronWire: 30.0},
inputs={Items.IronRod: 20.0},
)
Wire = Recipe(
name="Wire",
building=Machines.Constructor,
outputs={Items.Wire: 30.0},
inputs={Items.CopperRod: 18.0},
)
CopperBusbars = Recipe(
name="Copper Busbars",
building=Machines.Constructor,
outputs={Items.CopperBusbars: 15.0},
inputs={Items.CopperRod: 24.0},
)
Cable = Recipe(
name="Cable",
building=Machines.Constructor,
outputs={Items.Cable: 30.0},
inputs={Items.Wire: 60.0},
)
Quickwire = Recipe(
name="Quickwire",
building=Machines.Constructor,
outputs={Items.Quickwire: 80.0},
inputs={Items.CateriumRod: 24.0},
)
PureTinWire = Recipe(
name="Pure Tin Wire",
building=Machines.Constructor,
outputs={Items.TinnedWire: 11.25},
inputs={Items.TinRod: 15.0},
)
# - Compounds
Concrete = Recipe(
name="Concrete",
building=Machines.Constructor,
outputs={Items.Concrete: 15.0},
inputs={Items.CrushedGangue: 45.0},
)
# - Industrial Parts
BrassPlates = Recipe(
name="Brass Plates",
building=Machines.Constructor,
outputs={Items.BrassPlates: 18.0},
inputs={Items.BrassIngot: 25.0},
)
SteelBolt = Recipe(
name="Steel Bolt",
building=Machines.Constructor,
outputs={Items.SteelBolt: 37.5},
inputs={Items.SteelRod: 12.5},
)
HighPressureDiamond = Recipe(
name="High Pressure Diamond",
building=Machines.Constructor,
outputs={Items.Diamonds: 1.0},
inputs={Items.CarbonPowder: 20.0},
)
# Foundry
# - Building Parts
SolarCell = Recipe(
name="Solar Cell",
building=Machines.Foundry,
outputs={Items.SolarCell: 11.25},
inputs={
Items.ZincPlates: 22.5,
Items.Silica: 67.5,
},
)
# - Alloys
BronzePipes = Recipe(
name="Bronze Pipes",
building=Machines.Foundry,
outputs={Items.BronzePipes: 36.0},
inputs={
Items.CopperIngot: 24.0,
Items.TinIngot: 15.0,
},
)
# - ingots
BronzeIngot = Recipe(
name="Bronze Ingot",
building=Machines.Foundry,
outputs={Items.BronzeIngot: 45.0},
inputs={
Items.CopperIngot: 36.0,
Items.TinIngot: 15.0,
},
)
# - Standard Parts
TemperedSteelRod = Recipe(
name="Tempered Steel Rod",
building=Machines.Foundry,
outputs={Items.SteelRod: 12.5},
inputs={
Items.IronRod: 30.0,
Items.CarbonPowder: 12.5
}
)
# - Industrial Parts
SteelBeam = Recipe(
name="Steel Beam",
building=Machines.Foundry,
outputs={Items.SteelBeam: 22.5},
inputs={
Items.SteelIngot: 60.0,
Items.ZincIngot: 20.0
},
)
CastSteelPipe = Recipe(
name="Cast Steel Pipe",
building=Machines.Foundry,
outputs={Items.SteelPipe: 45.0},
inputs={
Items.SteelIngot: 30.0,
Items.Sand: 24.0,
},
)
# - Other
ThermalSilica = Recipe(
name="Thermal Silica",
building=Machines.Foundry,
outputs={Items.Silica: 45.0},
inputs={
Items.Sand: 30.0,
Items.MagnesiumGranules: 27.0,
},
)
SaltySlag = Recipe(
name="Salty Slag",
building=Machines.Foundry,
outputs={Items.ColdSlag: 15.0},
inputs={
Items.Salt: 22.5,
Items.MagnesiumGranules: 30.0,
},
)
# Assembler
# - Building Parts
SmoothBeltDrive = Recipe(
name="Smooth Belt Drive",
building=Machines.Assembler,
outputs={Items.SmoothBeltDrive: 18.75},
inputs={
Items.TinnedSheet: 15.0,
Items.Rotor: 3.75,
},
)
SlagConcrete = Recipe(
name="Slag Concrete",
building=Machines.Assembler,
outputs={Items.Concrete: 22.5},
inputs={
Items.ColdSlag: 33.75,
Items.CrushedGangue: 11.25,
},
)
FanBlades = Recipe(
name="Fan Blades",
building=Machines.Assembler,
outputs={Items.FanBlades: 7.5},
inputs={
Items.BrassPlates: 8.0,
Items.IronRod: 22.5,
},
)
# - Standard Parts
TinPlate = Recipe(
name="Tin Plate",
building=Machines.Assembler,
outputs={Items.TinPlate: 40.0},
inputs={
Items.TinIngot: 30.0,
Items.IronPlate: 20.0,
},
)
TinnedWire = Recipe(
name="Tinned Wire",
building=Machines.Assembler,
outputs={Items.TinnedWire: 90},
inputs={
Items.Wire: 60.0,
Items.TinRod: 45.0,
},
)
TinnedSheet = Recipe(
name="Tinned Sheet",
building=Machines.Assembler,
outputs={Items.TinnedSheet: 40.0},
inputs={
Items.TinIngot: 20.0,
Items.CopperSheet: 20.0,
},
)
Rotor = Recipe(
name="Rotor",
building=Machines.Assembler,
outputs={Items.Rotor: 7.5},
inputs={
Items.CopperBusbars: 22.5,
Items.IronWire: 60.0,
},
)
ReinforcedIronPlate = Recipe(
name="Reinforced Iron Plate",
building=Machines.Assembler,
outputs={Items.ReinforcedIronPlate: 5.0},
inputs={
Items.TinPlate: 20.0,
Items.Screws: 37.5,
},
)
BronzeFrame = Recipe(
name="Bronze Frame",
building=Machines.Assembler,
outputs={Items.BronzeFrame: 5.0},
inputs={
Items.BronzeBeam: 10.0,
Items.BronzePipes: 24.0,
},
)
ModularFrame = Recipe(
name="Modular Frame",
building=Machines.Assembler,
outputs={Items.ModularFrame: 6.0},
inputs={
Items.ReinforcedIronPlate: 7.5,
Items.BronzeBeam: 7.5,
},
)
FastenedFrame = Recipe(
name="Fastened Frame",
building=Machines.Assembler,
outputs={Items.ModularFrame: 20.0},
inputs={
Items.ReinforcedIronPlate: 15,
Items.Screws: 150,
},
)
BrassPipes = Recipe(
name="Brass Pipes",
building=Machines.Assembler,
outputs={Items.BrassPipes: 12.5},
inputs={
Items.BrassPlates: 15.0,
Items.CopperRod: 7.5
},
)
# - Electronics
AILimiter = Recipe(
name="AI Limiter",
building=Machines.Assembler,
outputs={Items.AILimiter: 6.0},
inputs={
Items.CateriumPlate: 24.0,
Items.TinnedWire: 18.0,
},
)
# - Industrial
CateriumHeatsink = Recipe(
name="Caterium Heatsink",
building=Machines.Assembler,
outputs={Items.CateriumHeatsink: 10.0},
inputs={
Items.CateriumPlate: 28.0,
Items.CopperBusbars: 10.0,
},
)
Stator = Recipe(
name="Stator",
building=Machines.Assembler,
outputs={Items.Stator: 6.0},
inputs={
Items.SteelPipe: 18.0,
Items.TinnedWire: 36.0,
},
)
# Flexible Blast Furnace
# - Molten Metals
MoltenIron = Recipe(
name="Molten Iron",
building=Machines.FlexibleBlastFurnace,
outputs={Items.MoltenIron: 60.0},
inputs={
Items.CrushedIron: 120.0,
},
)
MoltenCopper = Recipe(
name="Molten Copper",
building=Machines.FlexibleBlastFurnace,
outputs={Items.MoltenCopper: 60.0},
inputs={
Items.CrushedCopper: 120.0,
},
)
MoltenTin = Recipe(
name="Molten Tin",
building=Machines.FlexibleBlastFurnace,
outputs={Items.MoltenTin: 60.0},
inputs={
Items.CrushedTin: 120.0,
},
)
# - Alloys
MoltenBrass = Recipe(
name="Molten Brass",
building=Machines.FlexibleBlastFurnace,
outputs={Items.MoltenBrass: 60.0},
inputs={
Items.CrushedZinc: 32.0,
Items.MoltenCopper: 20.0,
},
)
MoltenSteel = Recipe(
name="Molten Steel",
building=Machines.FlexibleBlastFurnace,
outputs={
Items.MoltenSteel: 40.0,
Items.FlueGas: 30.0
},
inputs={
Items.MoltenIron: 40.0,
Items.CarbonPowder: 40.0,
Items.Steam: 60.0
},
)
DirectSteel = Recipe(
name="Direct Steel",
building=Machines.FlexibleBlastFurnace,
outputs={
Items.MoltenSteel: 60.0,
Items.FlueGas: 10.0
},
inputs={
Items.IronIngot: 120.0,
Items.Steam: 40.0,
Items.Air: 75.0
}
)
# Reformer
# - Cooling
CastSteelRod = Recipe(
name="Cast Steel Rod",
building=Machines.Reformer,
outputs={
Items.SteelRod: 37.5,
},
inputs={
Items.MoltenSteel: 20.0,
Items.Water: 40.0,
},
byproducts={
Items.Steam: 40.0,
Items.ColdSlag: 15.0,
}
)
# - Ingots
CastIronIngot = Recipe(
name="Cast Iron Ingot",
building=Machines.Reformer,
outputs={
Items.IronIngot: 180.0,
Items.Steam: 60.0
},
inputs={
Items.MoltenIron: 60.0,
Items.Water: 60.0,
},
)
CastCopperIngot = Recipe(
name="Cast Copper Ingot",
building=Machines.Reformer,
outputs={
Items.CopperIngot: 144.0,
Items.Steam: 24.0
},
inputs={
Items.MoltenCopper: 48.0,
Items.Water: 24.0,
}
)
CastTinIngot = Recipe(
name="Cast Tin Ingot",
building=Machines.Reformer,
outputs={
Items.TinIngot: 180.0,
Items.Steam: 20.0
},
inputs={
Items.MoltenTin: 60.0,
Items.Water: 20.0,
}
)
CastBrassIngot = Recipe(
name="Cast Brass Ingot",
building=Machines.Reformer,
outputs={
Items.BrassIngot: 50.0,
Items.Steam: 15.0
},
inputs={
Items.MoltenBrass: 40.0,
Items.Water: 15.0,
}
)
CastSteelIngot = Recipe(
name="Cast Steel Ingot",
building=Machines.Reformer,
outputs={
Items.SteelIngot: 90.0,
Items.FlueGas: 30.0,
Items.ColdSlag: 37.5,
},
inputs={
Items.CrushedGangue: 37.5,
Items.MoltenSteel: 30.0,
Items.Air: 30.0
}
)
# - Other
BrassBeltDrive = Recipe(
name="Brass Belt Drive",
building=Machines.Reformer,
outputs={
Items.BrassBeltDrive: 20.0,
},
inputs={
Items.Stator: 8.0,
Items.MoltenBrass: 20.0,
Items.Air: 36.0,
}
)
# Wet Washer
# - Washing
WashedIron = Recipe(
name="Washed Iron",
building=Machines.WetWasher,
outputs={
Items.CrushedIron: 60.0,
Items.TailingsSlurry: 40.0
},
inputs={
Items.SiteriteOre: 40.0,
Items.Water: 40.0,
}
)
WashedCopper = Recipe(
name="Washed Copper",
building=Machines.WetWasher,
outputs={
Items.CrushedCopper: 36.0,
Items.TailingsSlurry: 24.0
},
inputs={
Items.CallaniteOre: 24.0,
Items.Water: 24.0,
}
)
WashedTin = Recipe(
name="Washed Tin",
building=Machines.WetWasher,
outputs={
Items.CrushedTin: 45.0,
Items.TailingsSlurry: 60.0
},
inputs={
Items.SiteriteOre: 60.0,
Items.Water: 30.0,
}
)
SteamMk1 = Recipe(
name="Steam Mk1",
building=Machines.BoilerMk1,
outputs={
Items.Steam: 30.0,
},
inputs={
Items.Water: 15.0,
}
)
Recipe.model_rebuild()