]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Reorder electronics recipe file, add filter categories (#35713)
authorāda <ss.adasts@gmail.com>
Sun, 20 Apr 2025 22:27:49 +0000 (17:27 -0500)
committerGitHub <noreply@github.com>
Sun, 20 Apr 2025 22:27:49 +0000 (18:27 -0400)
* electronics split

* split base recipe and category

* all but machines

* machine shuffle

* reorder

* delete unused recipes

* rename cargo to supply

* git weirdness

* git weirdness 2

Resources/Locale/en-US/lathe/lathe-categories.ftl
Resources/Prototypes/Recipes/Lathes/base_electronics.yml [new file with mode: 0644]
Resources/Prototypes/Recipes/Lathes/categories.yml
Resources/Prototypes/Recipes/Lathes/circuitry.yml [new file with mode: 0644]
Resources/Prototypes/Recipes/Lathes/computer_boards.yml [new file with mode: 0644]
Resources/Prototypes/Recipes/Lathes/machine_boards.yml [moved from Resources/Prototypes/Recipes/Lathes/electronics.yml with 52% similarity]

index 8c118e51adf1e059e68c2a7d3016edc4f490a3af..fde710bd78ff2133c2b86aa4b11f1e9461af8f17 100644 (file)
@@ -2,7 +2,7 @@
 lathe-category-circuitry = Circuitry
 lathe-category-clothing = Clothing
 lathe-category-lights = Lights
-lathe-category-mechs = Mechs
+lathe-category-machines = Machines
 lathe-category-parts = Parts
 lathe-category-robotics = Robotics
 lathe-category-tools = Tools
@@ -13,6 +13,19 @@ lathe-category-food = Food
 lathe-category-chemicals = Chemicals
 lathe-category-materials = Materials
 
+# Circuit imprinter
+lathe-category-computers = Computers
+lathe-category-engineering = Engineering
+lathe-category-general = General
+lathe-category-medical = Medical
+lathe-category-research = Research
+lathe-category-security = Security
+lathe-category-service = Service
+lathe-category-supply = Supply
+
+# Science
+lathe-category-mechs = Mechs
+
 # Sec
 lathe-category-ammo = Ammo
 lathe-category-boxes = Boxes
diff --git a/Resources/Prototypes/Recipes/Lathes/base_electronics.yml b/Resources/Prototypes/Recipes/Lathes/base_electronics.yml
new file mode 100644 (file)
index 0000000..e37d7c2
--- /dev/null
@@ -0,0 +1,61 @@
+# Costs for computer boards, machine boards, and circuitry
+
+- type: latheRecipe
+  abstract: true
+  id: BaseElectronicsRecipe
+  completetime: 2
+  materials:
+    Steel: 100
+    Plastic: 300
+
+- type: latheRecipe
+  parent: BaseElectronicsRecipe
+  abstract: true
+  id: BaseCheapElectronicsRecipe
+  materials:
+    Steel: 50
+    Plastic: 50
+
+- type: latheRecipe
+  parent: BaseElectronicsRecipe
+  abstract: true
+  id: BaseCheapCircuitboardRecipe
+  materials:
+     Steel: 50
+     Glass: 250
+
+- type: latheRecipe
+  parent: BaseElectronicsRecipe
+  abstract: true
+  id: BaseCircuitboardRecipe
+  completetime: 4
+  materials:
+    Steel: 100
+    Glass: 500
+
+- type: latheRecipe
+  parent: BaseCircuitboardRecipe
+  abstract: true
+  id: BaseGoldCircuitboardRecipe
+  materials:
+    Steel: 100
+    Glass: 500
+    Gold: 100
+
+- type: latheRecipe
+  parent: BaseCircuitboardRecipe
+  abstract: true
+  id: BaseSilverCircuitboardRecipe
+  materials:
+    Steel: 100
+    Glass: 500
+    Silver: 100
+
+- type: latheRecipe
+  parent: BaseCircuitboardRecipe
+  abstract: true
+  id: BaseBananiumCircuitboardRecipe
+  materials:
+    Steel: 100
+    Glass: 500
+    Bananium: 100
index b0b607adb5d0049ce20b7efcd9b3d5cca08f04b8..7becbb58e4603dc251b17060d73131f6a28ea39a 100644 (file)
@@ -12,8 +12,8 @@
   name: lathe-category-lights
 
 - type: latheCategory
-  id: Mech
-  name: lathe-category-mechs
+  id: Machines
+  name: lathe-category-machines
 
 - type: latheCategory
   id: Parts
   id: Materials
   name: lathe-category-materials
 
+# Circuit imprinter
+- type: latheCategory
+  id: Computers
+  name: lathe-category-computers
+
+- type: latheCategory
+  id: Engineering
+  name: lathe-category-engineering
+
+- type: latheCategory
+  id: General
+  name: lathe-category-general
+
+- type: latheCategory
+  id: Medical
+  name: lathe-category-medical
+
+- type: latheCategory
+  id: Research
+  name: lathe-category-research
+
+- type: latheCategory
+  id: Security
+  name: lathe-category-security
+
+- type: latheCategory
+  id: Service
+  name: lathe-category-service
+
+- type: latheCategory
+  id: Supply
+  name: lathe-category-supply
+
+# Science
+- type: latheCategory
+  id: Mech
+  name: lathe-category-mechs
+
 # Sec
 - type: latheCategory
   id: Ammo
diff --git a/Resources/Prototypes/Recipes/Lathes/circuitry.yml b/Resources/Prototypes/Recipes/Lathes/circuitry.yml
new file mode 100644 (file)
index 0000000..2b37baf
--- /dev/null
@@ -0,0 +1,117 @@
+# Non-machine boards, non-computer boards
+# Base categories
+
+- type: latheRecipe
+  abstract: true
+  id: BaseCircuitryRecipeCategory
+  categories:
+  - Circuitry
+
+- type: latheRecipe
+  abstract: true
+  id: BaseMechRecipeCategory
+  categories:
+  - Mech
+
+## Recipes
+
+# Misc
+- type: latheRecipe
+  parent: [ BaseCheapElectronicsRecipe, BaseCircuitryRecipeCategory ]
+  id: FreezerElectronics
+  result: FreezerElectronics
+
+- type: latheRecipe
+  parent: [ BaseElectronicsRecipe, BaseCircuitryRecipeCategory ]
+  id: MailingUnitElectronics
+  result: MailingUnitElectronics
+
+# Airtight
+- type: latheRecipe
+  parent: [ BaseCheapElectronicsRecipe, BaseCircuitryRecipeCategory ]
+  id: FirelockElectronics
+  result: FirelockElectronics
+
+- type: latheRecipe
+  parent: [ BaseCheapElectronicsRecipe, BaseCircuitryRecipeCategory ]
+  id: DoorElectronics
+  result: DoorElectronics
+
+# Power
+- type: latheRecipe
+  parent: [ BaseCheapCircuitboardRecipe, BaseCircuitryRecipeCategory ]
+  id: APCElectronics
+  result: APCElectronics
+
+- type: latheRecipe
+  parent: [ BaseCircuitboardRecipe, BaseCircuitryRecipeCategory ]
+  id: SolarTrackerElectronics
+  result: SolarTrackerElectronics
+
+# Wallmount power
+- type: latheRecipe
+  parent: [ BaseCircuitboardRecipe, BaseCircuitryRecipeCategory ]
+  id: WallmountSubstationElectronics
+  result: WallmountSubstationElectronics
+
+# Wallmount
+- type: latheRecipe
+  parent: [ BaseCheapElectronicsRecipe, BaseCircuitryRecipeCategory ]
+  id: StationMapElectronics
+  result: StationMapCircuitboard
+
+- type: latheRecipe
+  parent: [ BaseCheapElectronicsRecipe, BaseCircuitryRecipeCategory ]
+  id: SignalTimerElectronics
+  result: SignalTimerElectronics
+
+- type: latheRecipe
+  parent: [ BaseElectronicsRecipe, BaseCircuitryRecipeCategory ]
+  id: AirAlarmElectronics
+  result: AirAlarmElectronics
+
+- type: latheRecipe
+  parent: [ BaseElectronicsRecipe, BaseCircuitryRecipeCategory ]
+  id: IntercomElectronics
+  result: IntercomElectronics
+
+- type: latheRecipe
+  parent: [ BaseElectronicsRecipe, BaseCircuitryRecipeCategory ]
+  id: FireAlarmElectronics
+  result: FireAlarmElectronics
+
+# Mechs
+- type: latheRecipe
+  parent: [ BaseGoldCircuitboardRecipe, BaseMechRecipeCategory ]
+  id: RipleyCentralElectronics
+  result: RipleyCentralElectronics
+
+- type: latheRecipe
+  parent: RipleyCentralElectronics
+  id: RipleyPeripheralsElectronics
+  result: RipleyPeripheralsElectronics
+
+- type: latheRecipe
+  parent: [ BaseBananiumCircuitboardRecipe, BaseMechRecipeCategory ]
+  id: HonkerCentralElectronics
+  result: HonkerCentralElectronics
+
+- type: latheRecipe
+  parent: HonkerCentralElectronics
+  id: HonkerPeripheralsElectronics
+  result: HonkerPeripheralsElectronics
+
+- type: latheRecipe
+  parent: HonkerCentralElectronics
+  id: HonkerTargetingElectronics
+  result: HonkerTargetingElectronics
+
+- type: latheRecipe
+  parent: [ BaseGoldCircuitboardRecipe, BaseMechRecipeCategory]
+  id: HamtrCentralElectronics
+  result: HamtrCentralElectronics
+
+- type: latheRecipe
+  parent: HamtrCentralElectronics
+  id: HamtrPeripheralsElectronics
+  result: HamtrPeripheralsElectronics
diff --git a/Resources/Prototypes/Recipes/Lathes/computer_boards.yml b/Resources/Prototypes/Recipes/Lathes/computer_boards.yml
new file mode 100644 (file)
index 0000000..2bf3bb3
--- /dev/null
@@ -0,0 +1,105 @@
+# Base categories
+
+- type: latheRecipe
+  abstract: true
+  id: BaseEngineeringComputerRecipeCategory
+  categories:
+  - Computers
+  - Engineering
+
+- type: latheRecipe
+  abstract: true
+  id: BaseMedicalComputerRecipeCategory
+  categories:
+  - Computers
+  - Medical
+
+- type: latheRecipe
+  abstract: true
+  id: BaseResearchComputerRecipeCategory
+  categories:
+  - Computers
+  - Research
+
+- type: latheRecipe
+  abstract: true
+  id: BaseSecurityComputerRecipeCategory
+  categories:
+  - Computers
+  - Security
+
+- type: latheRecipe
+  abstract: true
+  id: BaseServiceComputerRecipeCategory
+  categories:
+  - Computers
+  - Service
+
+- type: latheRecipe
+  abstract: true
+  id: BaseSupplyComputerRecipeCategory
+  categories:
+  - Computers
+  - Supply
+
+- type: latheRecipe
+  abstract: true
+  id: BaseGeneralComputerRecipeCategory
+  categories:
+  - Computers
+  - General
+
+## Recipes
+
+# Engineering
+- type: latheRecipe
+  parent: [ BaseCircuitboardRecipe, BaseEngineeringComputerRecipeCategory ]
+  id: SolarControlComputerCircuitboard
+  result: SolarControlComputerCircuitboard
+
+# Medical
+
+# Science
+- type: latheRecipe
+  parent: [ BaseGoldCircuitboardRecipe, BaseResearchComputerRecipeCategory ]
+  id: AnalysisComputerCircuitboard
+  result: AnalysisComputerCircuitboard
+
+- type: latheRecipe
+  parent: [ BaseGoldCircuitboardRecipe, BaseResearchComputerRecipeCategory ]
+  id: TechDiskComputerCircuitboard
+  result: TechDiskComputerCircuitboard
+
+# Cameras
+- type: latheRecipe
+  parent: [ BaseCircuitboardRecipe, BaseSecurityComputerRecipeCategory ]
+  id: SurveillanceCameraMonitorCircuitboard
+  result: SurveillanceCameraMonitorCircuitboard
+
+- type: latheRecipe
+  parent: [ BaseCircuitboardRecipe, BaseServiceComputerRecipeCategory ]
+  id: SurveillanceWirelessCameraMonitorCircuitboard
+  result: SurveillanceWirelessCameraMonitorCircuitboard
+
+# Service
+- type: latheRecipe
+  parent: [ BaseCircuitboardRecipe, BaseServiceComputerRecipeCategory ]
+  id: MassMediaCircuitboard
+  result: ComputerMassMediaCircuitboard
+
+# Shuttle
+- type: latheRecipe
+  parent: [ BaseGoldCircuitboardRecipe, BaseSupplyComputerRecipeCategory ]
+  id: ShuttleConsoleCircuitboard
+  result: ShuttleConsoleCircuitboard
+
+- type: latheRecipe
+  parent: [ BaseCircuitboardRecipe, BaseSupplyComputerRecipeCategory ]
+  id: RadarConsoleCircuitboard
+  result: RadarConsoleCircuitboard
+
+# Civilian
+- type: latheRecipe
+  parent: [ BaseCircuitboardRecipe, BaseGeneralComputerRecipeCategory ]
+  id: ComputerTelevisionCircuitboard
+  result: ComputerTelevisionCircuitboard
similarity index 52%
rename from Resources/Prototypes/Recipes/Lathes/electronics.yml
rename to Resources/Prototypes/Recipes/Lathes/machine_boards.yml
index f6f56ab282dfe431a88d5a169afdd1521668928f..23eb3bfbb7e10bce77a675c166fa8c1919152048 100644 (file)
-# Base protoypes
+# Base categories
 
 - type: latheRecipe
   abstract: true
-  id: BaseElectronicsRecipe
+  id: BaseMachineRecipeCategory
   categories:
-  - Circuitry
-  completetime: 2
-  materials:
-    Steel: 100
-    Plastic: 300
+  - Machines
 
 - type: latheRecipe
   abstract: true
-  parent: BaseElectronicsRecipe
-  id: BaseCheapElectronicsRecipe
-  materials:
-    Steel: 50
-    Plastic: 50
+  id: BaseEngineeringMachineRecipeCategory
+  categories:
+  - Machines
+  - Engineering
 
 - type: latheRecipe
   abstract: true
-  parent: BaseElectronicsRecipe
-  id: BaseCheapCircuitboardRecipe
-  materials:
-     Steel: 50
-     Glass: 250
+  id: BaseMedicalMachineRecipeCategory
+  categories:
+  - Machines
+  - Medical
 
 - type: latheRecipe
   abstract: true
-  parent: BaseElectronicsRecipe
-  id: BaseCircuitboardRecipe
-  completetime: 4
-  materials:
-    Steel: 100
-    Glass: 500
+  id: BaseResearchMachineRecipeCategory
+  categories:
+  - Machines
+  - Research
 
 - type: latheRecipe
   abstract: true
-  parent: BaseCircuitboardRecipe
-  id: BaseGoldCircuitboardRecipe
-  materials:
-    Steel: 100
-    Glass: 500
-    Gold: 100
+  id: BaseSecurityMachineRecipeCategory
+  categories:
+  - Machines
+  - Security
 
 - type: latheRecipe
   abstract: true
-  parent: BaseCircuitboardRecipe
-  id: BaseSilverCircuitboardRecipe
-  materials:
-    Steel: 100
-    Glass: 500
-    Silver: 100
+  id: BaseServiceMachineRecipeCategory
+  categories:
+  - Machines
+  - Service
 
 - type: latheRecipe
   abstract: true
-  parent: BaseCircuitboardRecipe
-  id: BaseBananiumCircuitboardRecipe
-  materials:
-    Steel: 100
-    Glass: 500
-    Bananium: 100
-
-# Recipes
+  id: BaseSupplyMachineRecipeCategory
+  categories:
+  - Machines
+  - Supply
 
 - type: latheRecipe
-  parent: BaseCheapElectronicsRecipe
-  id: FirelockElectronics
-  result: FirelockElectronics
+  abstract: true
+  id: BaseGeneralMachineRecipeCategory
+  categories:
+  - Machines
+  - General
 
-- type: latheRecipe
-  parent: BaseElectronicsRecipe
-  id: MailingUnitElectronics
-  result: MailingUnitElectronics
+## Recipes
 
+## Non-circuit imprinter (no second category)
+
+# Autolathe
 - type: latheRecipe
-  parent: BaseCheapElectronicsRecipe
+  parent: [ BaseCheapElectronicsRecipe, BaseMachineRecipeCategory ]
   id: CellRechargerCircuitboard
   result: CellRechargerCircuitboard
 
 - type: latheRecipe
-  parent: CellRechargerCircuitboard
-  id: BorgChargerCircuitboard
-  result: BorgChargerCircuitboard
-
-- type: latheRecipe
-  parent: CellRechargerCircuitboard
+  parent: [ BaseCheapElectronicsRecipe, BaseMachineRecipeCategory ]
   id: WeaponCapacitorRechargerCircuitboard
   result: WeaponCapacitorRechargerCircuitboard
 
 - type: latheRecipe
-  parent: BaseGoldCircuitboardRecipe
-  id: TurboItemRechargerCircuitboard
-  result: TurboItemRechargerCircuitboard
+  parent: [ BaseCircuitboardRecipe, BaseMachineRecipeCategory ]
+  id: SubstationMachineCircuitboard
+  result: SubstationMachineCircuitboard
 
 - type: latheRecipe
-  parent: BaseCheapElectronicsRecipe
-  id: DoorElectronics
-  result: DoorElectronics
+  parent: [ BaseCircuitboardRecipe, BaseMachineRecipeCategory ]
+  id: SMESMachineCircuitboard
+  result: SMESMachineCircuitboard
 
+# Security techfab
 - type: latheRecipe
-  parent: BaseCheapElectronicsRecipe
-  id: FreezerElectronics
-  result: FreezerElectronics
+  parent: [ BaseCircuitboardRecipe, BaseMachineRecipeCategory ]
+  id: ShuttleGunSvalinnMachineGunCircuitboard
+  result: ShuttleGunSvalinnMachineGunCircuitboard
+  completetime: 6
 
 - type: latheRecipe
-  parent: BaseElectronicsRecipe
-  id: AirAlarmElectronics
-  result: AirAlarmElectronics
+  parent: [ BaseGoldCircuitboardRecipe, BaseMachineRecipeCategory ]
+  id: ShuttleGunPerforatorCircuitboard
+  result: ShuttleGunPerforatorCircuitboard
+  completetime: 10
 
 - type: latheRecipe
-  parent: BaseCheapElectronicsRecipe
-  id: StationMapElectronics
-  result: StationMapCircuitboard
+  parent: [ BaseGoldCircuitboardRecipe, BaseMachineRecipeCategory ]
+  id: ShuttleGunFriendshipCircuitboard
+  result: ShuttleGunFriendshipCircuitboard
+  completetime: 8
 
 - type: latheRecipe
-  parent: BaseElectronicsRecipe
-  id: IntercomElectronics
-  result: IntercomElectronics
+  parent: [ BaseGoldCircuitboardRecipe, BaseMachineRecipeCategory ]
+  id: ShuttleGunDusterCircuitboard
+  result: ShuttleGunDusterCircuitboard
+  completetime: 12
 
-- type: latheRecipe
-  parent: BaseElectronicsRecipe
-  id: FireAlarmElectronics
-  result: FireAlarmElectronics
+## Circuit imprinter
 
-- type: latheRecipe
-  parent: BaseCheapElectronicsRecipe
-  id: SignalTimerElectronics
-  result: SignalTimerElectronics
+## Engineering
 
 - type: latheRecipe
-  parent: BaseGoldCircuitboardRecipe
-  id: CloningPodMachineCircuitboard
-  result: CloningPodMachineCircuitboard
+  parent: [ BaseCircuitboardRecipe, BaseEngineeringMachineRecipeCategory ]
+  id: EmitterCircuitboard
+  result: EmitterCircuitboard
 
+# Atmos
 - type: latheRecipe
-  parent: BaseGoldCircuitboardRecipe
+  parent: [ BaseGoldCircuitboardRecipe, BaseEngineeringMachineRecipeCategory ]
   id: ThermomachineFreezerMachineCircuitBoard
   result: ThermomachineFreezerMachineCircuitBoard
 
 - type: latheRecipe
-  parent: BaseSilverCircuitboardRecipe
+  parent: [ BaseSilverCircuitboardRecipe, BaseEngineeringMachineRecipeCategory ]
   id: HellfireFreezerMachineCircuitBoard
   result: HellfireFreezerMachineCircuitBoard
 
 - type: latheRecipe
-  parent: BaseCircuitboardRecipe
-  id: CondenserMachineCircuitBoard
-  result: CondenserMachineCircuitBoard
-
-- type: latheRecipe
-  parent: BaseCircuitboardRecipe
-  id: PortableScrubberMachineCircuitBoard
-  result: PortableScrubberMachineCircuitBoard
-
-- type: latheRecipe
-  parent: BaseGoldCircuitboardRecipe
+  parent: [ BaseGoldCircuitboardRecipe, BaseEngineeringMachineRecipeCategory ]
   id: SpaceHeaterMachineCircuitBoard
   result: SpaceHeaterMachineCircuitBoard
 
 - type: latheRecipe
-  parent: BaseCircuitboardRecipe
-  id: MedicalScannerMachineCircuitboard
-  result: MedicalScannerMachineCircuitboard
+  parent: [ BaseCircuitboardRecipe, BaseEngineeringMachineRecipeCategory ]
+  id: PortableScrubberMachineCircuitBoard
+  result: PortableScrubberMachineCircuitBoard
 
 - type: latheRecipe
-  parent: BaseGoldCircuitboardRecipe
-  id: CryoPodMachineCircuitboard
-  result: CryoPodMachineCircuitboard
+  parent: [ BaseCircuitboardRecipe, BaseEngineeringMachineRecipeCategory ]
+  id: CondenserMachineCircuitBoard
+  result: CondenserMachineCircuitBoard
 
 - type: latheRecipe
-  parent: BaseGoldCircuitboardRecipe
-  id: ChemMasterMachineCircuitboard
-  result: ChemMasterMachineCircuitboard
+  parent: [ BaseCircuitboardRecipe, BaseEngineeringMachineRecipeCategory ]
+  id: GasRecyclerMachineCircuitboard
+  result: GasRecyclerMachineCircuitboard
 
+# Power
 - type: latheRecipe
-  parent: BaseGoldCircuitboardRecipe
-  id: ChemDispenserMachineCircuitboard
-  result: ChemDispenserMachineCircuitboard
+  parent: [ BaseGoldCircuitboardRecipe, BaseEngineeringMachineRecipeCategory ]
+  id: SMESAdvancedMachineCircuitboard
+  result: SMESAdvancedMachineCircuitboard
 
 - type: latheRecipe
-  parent: BaseGoldCircuitboardRecipe
-  id: BiomassReclaimerMachineCircuitboard
-  result: BiomassReclaimerMachineCircuitboard
+  parent: [ BaseCircuitboardRecipe, BaseEngineeringMachineRecipeCategory ]
+  id: PortableGeneratorPacmanMachineCircuitboard
+  result: PortableGeneratorPacmanMachineCircuitboard
 
 - type: latheRecipe
-  parent: BaseGoldCircuitboardRecipe
-  id: BiofabricatorMachineCircuitboard
-  result: BiofabricatorMachineCircuitboard
+  parent: PortableGeneratorPacmanMachineCircuitboard
+  id: PortableGeneratorSuperPacmanMachineCircuitboard
+  result: PortableGeneratorSuperPacmanMachineCircuitboard
 
 - type: latheRecipe
-  parent: BaseCircuitboardRecipe
-  id: HydroponicsTrayMachineCircuitboard
-  result: HydroponicsTrayMachineCircuitboard
+  parent: PortableGeneratorPacmanMachineCircuitboard
+  id: PortableGeneratorJrPacmanMachineCircuitboard
+  result: PortableGeneratorJrPacmanMachineCircuitboard
 
-- type: latheRecipe
-  parent: BaseCircuitboardRecipe
-  id: AutolatheMachineCircuitboard
-  result: AutolatheMachineCircuitboard
+## Medical
 
 - type: latheRecipe
-  parent: BaseCircuitboardRecipe
-  id: ProtolatheMachineCircuitboard
-  result: ProtolatheMachineCircuitboard
-
-- type: latheRecipe
-  parent: BaseGoldCircuitboardRecipe
-  id: AutolatheHyperConvectionMachineCircuitboard
-  result: AutolatheHyperConvectionMachineCircuitboard
+  parent: [ BaseGoldCircuitboardRecipe, BaseMedicalMachineRecipeCategory ]
+  id: BiomassReclaimerMachineCircuitboard
+  result: BiomassReclaimerMachineCircuitboard
 
+# Chemistry
 - type: latheRecipe
-  parent: BaseGoldCircuitboardRecipe
-  id: ProtolatheHyperConvectionMachineCircuitboard
-  result: ProtolatheHyperConvectionMachineCircuitboard
+  parent: [ BaseCircuitboardRecipe, BaseMedicalMachineRecipeCategory ]
+  id: HotplateMachineCircuitboard
+  result: HotplateMachineCircuitboard
 
 - type: latheRecipe
-  parent: BaseCircuitboardRecipe
-  id: CircuitImprinterMachineCircuitboard
-  result: CircuitImprinterMachineCircuitboard
+  parent: [ BaseCircuitboardRecipe, BaseMedicalMachineRecipeCategory ]
+  id: ElectrolysisUnitMachineCircuitboard
+  result: ElectrolysisUnitMachineCircuitboard
 
 - type: latheRecipe
-  parent: BaseGoldCircuitboardRecipe
-  id: CircuitImprinterHyperConvectionMachineCircuitboard
-  result: CircuitImprinterHyperConvectionMachineCircuitboard
+  parent: [ BaseCircuitboardRecipe, BaseMedicalMachineRecipeCategory ]
+  id: CentrifugeMachineCircuitboard
+  result: CentrifugeMachineCircuitboard
 
 - type: latheRecipe
-  parent: BaseCircuitboardRecipe
-  id: ExosuitFabricatorMachineCircuitboard
-  result: ExosuitFabricatorMachineCircuitboard
+  parent: [ BaseGoldCircuitboardRecipe, BaseMedicalMachineRecipeCategory ]
+  id: ChemMasterMachineCircuitboard
+  result: ChemMasterMachineCircuitboard
 
 - type: latheRecipe
-  parent: BaseCircuitboardRecipe
-  id: UniformPrinterMachineCircuitboard
-  result: UniformPrinterMachineCircuitboard
+  parent: [ BaseGoldCircuitboardRecipe, BaseMedicalMachineRecipeCategory ]
+  id: ChemDispenserMachineCircuitboard
+  result: ChemDispenserMachineCircuitboard
 
+# Treatment
 - type: latheRecipe
-  parent: BaseCircuitboardRecipe
-  id: BiogeneratorMachineCircuitboard
-  result: BiogeneratorMachineCircuitboard
+  parent: [ BaseGoldCircuitboardRecipe, BaseMedicalMachineRecipeCategory ]
+  id: CryoPodMachineCircuitboard
+  result: CryoPodMachineCircuitboard
 
 - type: latheRecipe
-  parent: BaseGoldCircuitboardRecipe
-  id: VaccinatorMachineCircuitboard
-  result: VaccinatorMachineCircuitboard
+  parent: [ BaseGoldCircuitboardRecipe, BaseMedicalMachineRecipeCategory ]
+  id: StasisBedMachineCircuitboard
+  result: StasisBedMachineCircuitboard
 
-- type: latheRecipe
-  parent: BaseGoldCircuitboardRecipe
-  id: DiagnoserMachineCircuitboard
-  result: DiagnoserMachineCircuitboard
+## Science
 
+# Artifact
 - type: latheRecipe
-  parent: BaseGoldCircuitboardRecipe
+  parent: [ BaseGoldCircuitboardRecipe, BaseResearchMachineRecipeCategory ]
   id: ArtifactAnalyzerMachineCircuitboard
   result: ArtifactAnalyzerMachineCircuitboard
 
 - type: latheRecipe
-  parent: BaseGoldCircuitboardRecipe
+  parent: [ BaseGoldCircuitboardRecipe, BaseResearchMachineRecipeCategory ]
   id: ArtifactCrusherMachineCircuitboard
   result: ArtifactCrusherMachineCircuitboard
 
+# Anomaly
 - type: latheRecipe
-  parent: BaseCircuitboardRecipe
+  parent: [ BaseCircuitboardRecipe, BaseResearchMachineRecipeCategory ]
   id: AnomalyVesselCircuitboard
   result: AnomalyVesselCircuitboard
 
 - type: latheRecipe
-  parent: BaseGoldCircuitboardRecipe
+  parent: [ BaseGoldCircuitboardRecipe, BaseResearchMachineRecipeCategory ]
   id: AnomalyVesselExperimentalCircuitboard
   result: AnomalyVesselExperimentalCircuitboard
 
 - type: latheRecipe
-  parent: BaseSilverCircuitboardRecipe
+  parent: [ BaseSilverCircuitboardRecipe, BaseResearchMachineRecipeCategory ]
   id: AnomalySynchronizerCircuitboard
   result: AnomalySynchronizerCircuitboard
 
 - type: latheRecipe
-  parent: BaseCircuitboardRecipe
+  parent: [ BaseCircuitboardRecipe, BaseResearchMachineRecipeCategory ]
   id: APECircuitboard
   result: APECircuitboard
 
-- type: latheRecipe
-  parent: BaseCircuitboardRecipe
-  id: ReagentGrinderMachineCircuitboard
-  result: ReagentGrinderMachineCircuitboard
-
-- type: latheRecipe
-  parent: BaseCircuitboardRecipe
-  id: HotplateMachineCircuitboard
-  result: HotplateMachineCircuitboard
+## Service
 
 - type: latheRecipe
-  parent: BaseGoldCircuitboardRecipe
-  id: AnalysisComputerCircuitboard
-  result: AnalysisComputerCircuitboard
-
-- type: latheRecipe
-  parent: BaseGoldCircuitboardRecipe
-  id: TechDiskComputerCircuitboard
-  result: TechDiskComputerCircuitboard
-
-- type: latheRecipe
-  parent: BaseGoldCircuitboardRecipe
-  id: ShuttleConsoleCircuitboard
-  result: ShuttleConsoleCircuitboard
-
-- type: latheRecipe
-  parent: BaseCircuitboardRecipe
-  id: RadarConsoleCircuitboard
-  result: RadarConsoleCircuitboard
-
-- type: latheRecipe
-  parent: BaseCircuitboardRecipe
+  parent: [ BaseCircuitboardRecipe, BaseServiceMachineRecipeCategory ]
   id: DawInstrumentMachineCircuitboard
   result: DawInstrumentMachineCircuitboard
 
+# Bar
 - type: latheRecipe
-  parent: BaseGoldCircuitboardRecipe
-  id: StasisBedMachineCircuitboard
-  result: StasisBedMachineCircuitboard
-
-- type: latheRecipe
-  parent: BaseCircuitboardRecipe
-  id: ElectrolysisUnitMachineCircuitboard
-  result: ElectrolysisUnitMachineCircuitboard
-
-- type: latheRecipe
-  parent: BaseCircuitboardRecipe
-  id: CentrifugeMachineCircuitboard
-  result: CentrifugeMachineCircuitboard
-
-- type: latheRecipe
-  parent: BaseCircuitboardRecipe
-  id: OreProcessorMachineCircuitboard
-  result: OreProcessorMachineCircuitboard
-
-- type: latheRecipe
-  parent: BaseGoldCircuitboardRecipe
-  id: OreProcessorIndustrialMachineCircuitboard
-  result: OreProcessorIndustrialMachineCircuitboard
-
-- type: latheRecipe
-  parent: BaseGoldCircuitboardRecipe
-  id: SalvageMagnetMachineCircuitboard
-  result: SalvageMagnetMachineCircuitboard
-
-- type: latheRecipe
-  parent: BaseGoldCircuitboardRecipe
-  id: RipleyCentralElectronics
-  result: RipleyCentralElectronics
-
-- type: latheRecipe
-  parent: BaseGoldCircuitboardRecipe
-  id: RipleyPeripheralsElectronics
-  result: RipleyPeripheralsElectronics
-
-- type: latheRecipe
-  parent: BaseBananiumCircuitboardRecipe
-  id: HonkerCentralElectronics
-  result: HonkerCentralElectronics
+  parent: [ BaseCircuitboardRecipe, BaseServiceMachineRecipeCategory ]
+  id: JukeboxCircuitBoard
+  result: JukeboxCircuitBoard
 
 - type: latheRecipe
-  parent: BaseBananiumCircuitboardRecipe
-  id: HonkerPeripheralsElectronics
-  result: HonkerPeripheralsElectronics
+  parent: [ BaseCircuitboardRecipe, BaseServiceMachineRecipeCategory ]
+  id: BoozeDispenserMachineCircuitboard
+  result: BoozeDispenserMachineCircuitboard
 
 - type: latheRecipe
-  parent: BaseBananiumCircuitboardRecipe
-  id: HonkerTargetingElectronics
-  result: HonkerTargetingElectronics
+  parent: [ BaseCircuitboardRecipe, BaseServiceMachineRecipeCategory ]
+  id: SodaDispenserMachineCircuitboard
+  result: SodaDispenserMachineCircuitboard
 
+# Hydroponics
 - type: latheRecipe
-  parent: BaseGoldCircuitboardRecipe
-  id: HamtrCentralElectronics
-  result: HamtrCentralElectronics
+  parent: [ BaseCircuitboardRecipe, BaseServiceMachineRecipeCategory ]
+  id: HydroponicsTrayMachineCircuitboard
+  result: HydroponicsTrayMachineCircuitboard
 
 - type: latheRecipe
-  parent: BaseGoldCircuitboardRecipe
-  id: HamtrPeripheralsElectronics
-  result: HamtrPeripheralsElectronics
+  parent: [ BaseCircuitboardRecipe, BaseServiceMachineRecipeCategory ]
+  id: SeedExtractorMachineCircuitboard
+  result: SeedExtractorMachineCircuitboard
 
-# Power
+# Kitchen
 - type: latheRecipe
-  parent: BaseCheapCircuitboardRecipe
-  id: APCElectronics
-  result: APCElectronics
+  parent: [ BaseCircuitboardRecipe, BaseServiceMachineRecipeCategory ]
+  id: ElectricGrillMachineCircuitboard
+  result: ElectricGrillMachineCircuitboard
 
 - type: latheRecipe
-  parent: BaseCircuitboardRecipe
-  id: SubstationMachineCircuitboard
-  result: SubstationMachineCircuitboard
+  parent: [ BaseCircuitboardRecipe, BaseServiceMachineRecipeCategory ]
+  id: MicrowaveMachineCircuitboard
+  result: MicrowaveMachineCircuitboard
 
 - type: latheRecipe
-  parent: BaseCircuitboardRecipe
-  id: WallmountSubstationElectronics
-  result: WallmountSubstationElectronics
+  parent: [ BaseCircuitboardRecipe, BaseServiceMachineRecipeCategory ]
+  id: FatExtractorMachineCircuitboard
+  result: FatExtractorMachineCircuitboard
 
-- type: latheRecipe
-  parent: BaseCircuitboardRecipe
-  id: SMESMachineCircuitboard
-  result: SMESMachineCircuitboard
+## Supply
 
 - type: latheRecipe
-  parent: BaseGoldCircuitboardRecipe
-  id: SMESAdvancedMachineCircuitboard
-  result: SMESAdvancedMachineCircuitboard
+  parent: [ BaseGoldCircuitboardRecipe, BaseSupplyMachineRecipeCategory ]
+  id: CargoTelepadMachineCircuitboard
+  result: CargoTelepadMachineCircuitboard
 
 - type: latheRecipe
-  parent: BaseCircuitboardRecipe
-  id: PortableGeneratorPacmanMachineCircuitboard
-  result: PortableGeneratorPacmanMachineCircuitboard
+  parent: [ BaseGoldCircuitboardRecipe, BaseSupplyMachineRecipeCategory ]
+  id: SalvageMagnetMachineCircuitboard
+  result: SalvageMagnetMachineCircuitboard
 
+# Shuttle
 - type: latheRecipe
-  parent: PortableGeneratorPacmanMachineCircuitboard
-  id: PortableGeneratorSuperPacmanMachineCircuitboard
-  result: PortableGeneratorSuperPacmanMachineCircuitboard
+  parent: [ BaseCircuitboardRecipe, BaseSupplyMachineRecipeCategory ]
+  id: ThrusterMachineCircuitboard
+  result: ThrusterMachineCircuitboard
 
 - type: latheRecipe
-  parent: PortableGeneratorPacmanMachineCircuitboard
-  id: PortableGeneratorJrPacmanMachineCircuitboard
-  result: PortableGeneratorJrPacmanMachineCircuitboard
+  parent: [ BaseCircuitboardRecipe, BaseSupplyMachineRecipeCategory ]
+  id: GyroscopeMachineCircuitboard
+  result: GyroscopeMachineCircuitboard
 
 - type: latheRecipe
-  parent: BaseCircuitboardRecipe
-  id: SolarControlComputerCircuitboard
-  result: SolarControlComputerCircuitboard
+  parent: [ BaseGoldCircuitboardRecipe, BaseSupplyMachineRecipeCategory ]
+  id: MiniGravityGeneratorCircuitboard
+  result: MiniGravityGeneratorCircuitboard
 
 - type: latheRecipe
-  parent: BaseCircuitboardRecipe
-  id: SolarTrackerElectronics
-  result: SolarTrackerElectronics
+  parent: [ BaseCircuitboardRecipe, BaseSecurityMachineRecipeCategory ]
+  id: PowerCageRechargerCircuitboard
+  result: PowerCageRechargerCircuitboard
 
 - type: latheRecipe
-  parent: BaseCircuitboardRecipe
-  id: CloningConsoleComputerCircuitboard
-  result: CloningConsoleComputerCircuitboard
+  parent: [ BaseCircuitboardRecipe, BaseSecurityMachineRecipeCategory ]
+  id: ShuttleGunKineticCircuitboard
+  result: ShuttleGunKineticCircuitboard
+  completetime: 6
 
-- type: latheRecipe
-  parent: BaseCircuitboardRecipe
-  id: MicrowaveMachineCircuitboard
-  result: MicrowaveMachineCircuitboard
+## Miscellaneous
 
 - type: latheRecipe
-  parent: BaseCircuitboardRecipe
-  id: ElectricGrillMachineCircuitboard
-  result: ElectricGrillMachineCircuitboard
+  parent: [ BaseCircuitboardRecipe, BaseGeneralMachineRecipeCategory ]
+  id: ReagentGrinderMachineCircuitboard
+  result: ReagentGrinderMachineCircuitboard
 
 - type: latheRecipe
-  parent: BaseCircuitboardRecipe
-  id: FatExtractorMachineCircuitboard
-  result: FatExtractorMachineCircuitboard
+  parent: [ BaseGoldCircuitboardRecipe, BaseGeneralMachineRecipeCategory ]
+  id: ReagentGrinderIndustrialMachineCircuitboard
+  result: ReagentGrinderIndustrialMachineCircuitboard
 
 - type: latheRecipe
-  parent: BaseGoldCircuitboardRecipe
+  parent: [ BaseGoldCircuitboardRecipe, BaseGeneralMachineRecipeCategory ]
   id: FlatpackerMachineCircuitboard
   result: FlatpackerMachineCircuitboard
 
+# Lathes
 - type: latheRecipe
-  parent: BaseCircuitboardRecipe
-  id: SheetifierMachineCircuitboard
-  result: SheetifierMachineCircuitboard
+  parent: [ BaseCircuitboardRecipe, BaseResearchMachineRecipeCategory ]
+  id: ProtolatheMachineCircuitboard
+  result: ProtolatheMachineCircuitboard
 
 - type: latheRecipe
-  parent: BaseCircuitboardRecipe
-  id: SurveillanceCameraRouterCircuitboard
-  result: SurveillanceCameraRouterCircuitboard
+  parent: [ BaseGoldCircuitboardRecipe, BaseResearchMachineRecipeCategory ]
+  id: ProtolatheHyperConvectionMachineCircuitboard
+  result: ProtolatheHyperConvectionMachineCircuitboard
 
 - type: latheRecipe
-  parent: BaseCircuitboardRecipe
-  id: SurveillanceCameraWirelessRouterCircuitboard
-  result: SurveillanceCameraWirelessRouterCircuitboard
+  parent: [ BaseCircuitboardRecipe, BaseResearchMachineRecipeCategory ]
+  id: CircuitImprinterMachineCircuitboard
+  result: CircuitImprinterMachineCircuitboard
 
 - type: latheRecipe
-  parent: BaseCircuitboardRecipe
-  id: SurveillanceWirelessCameraAnchoredCircuitboard
-  result: SurveillanceWirelessCameraAnchoredCircuitboard
+  parent: [ BaseGoldCircuitboardRecipe, BaseResearchMachineRecipeCategory ]
+  id: CircuitImprinterHyperConvectionMachineCircuitboard
+  result: CircuitImprinterHyperConvectionMachineCircuitboard
 
 - type: latheRecipe
-  parent: BaseCircuitboardRecipe
-  id: SurveillanceWirelessCameraMovableCircuitboard
-  result: SurveillanceWirelessCameraMovableCircuitboard
+  parent: [ BaseCircuitboardRecipe, BaseResearchMachineRecipeCategory ]
+  id: ExosuitFabricatorMachineCircuitboard
+  result: ExosuitFabricatorMachineCircuitboard
 
 - type: latheRecipe
-  parent: BaseCircuitboardRecipe
-  id: SurveillanceCameraMonitorCircuitboard
-  result: SurveillanceCameraMonitorCircuitboard
+  parent: [ BaseCircuitboardRecipe, BaseServiceMachineRecipeCategory ]
+  id: BiogeneratorMachineCircuitboard
+  result: BiogeneratorMachineCircuitboard
 
 - type: latheRecipe
-  parent: BaseCircuitboardRecipe
-  id: SurveillanceWirelessCameraMonitorCircuitboard
-  result: SurveillanceWirelessCameraMonitorCircuitboard
+  parent: [ BaseGoldCircuitboardRecipe, BaseServiceMachineRecipeCategory ]
+  id: BiofabricatorMachineCircuitboard
+  result: BiofabricatorMachineCircuitboard
 
 - type: latheRecipe
-  parent: BaseCircuitboardRecipe
-  id: ComputerTelevisionCircuitboard
-  result: ComputerTelevisionCircuitboard
+  parent: [ BaseCircuitboardRecipe, BaseSupplyMachineRecipeCategory ]
+  id: OreProcessorMachineCircuitboard
+  result: OreProcessorMachineCircuitboard
 
 - type: latheRecipe
-  parent: BaseCircuitboardRecipe
-  id: EmitterCircuitboard
-  result: EmitterCircuitboard
+  parent: [ BaseGoldCircuitboardRecipe, BaseSupplyMachineRecipeCategory ]
+  id: OreProcessorIndustrialMachineCircuitboard
+  result: OreProcessorIndustrialMachineCircuitboard
 
 - type: latheRecipe
-  parent: BaseCircuitboardRecipe
-  id: ThrusterMachineCircuitboard
-  result: ThrusterMachineCircuitboard
+  parent: [ BaseCircuitboardRecipe, BaseGeneralMachineRecipeCategory ]
+  id: AutolatheMachineCircuitboard
+  result: AutolatheMachineCircuitboard
 
 - type: latheRecipe
-  parent: BaseCircuitboardRecipe
-  id: GyroscopeMachineCircuitboard
-  result: GyroscopeMachineCircuitboard
+  parent: [ BaseGoldCircuitboardRecipe, BaseGeneralMachineRecipeCategory ]
+  id: AutolatheHyperConvectionMachineCircuitboard
+  result: AutolatheHyperConvectionMachineCircuitboard
 
 - type: latheRecipe
-  parent: BaseCircuitboardRecipe
-  id: GasRecyclerMachineCircuitboard
-  result: GasRecyclerMachineCircuitboard
+  parent: [ BaseCircuitboardRecipe, BaseGeneralMachineRecipeCategory ]
+  id: UniformPrinterMachineCircuitboard
+  result: UniformPrinterMachineCircuitboard
 
 - type: latheRecipe
-  parent: BaseCircuitboardRecipe
-  id: SeedExtractorMachineCircuitboard
-  result: SeedExtractorMachineCircuitboard
+  parent: [ BaseCircuitboardRecipe, BaseGeneralMachineRecipeCategory ]
+  id: SheetifierMachineCircuitboard
+  result: SheetifierMachineCircuitboard
 
 - type: latheRecipe
-  parent: BaseCircuitboardRecipe
-  id: BoozeDispenserMachineCircuitboard
-  result: BoozeDispenserMachineCircuitboard
+  parent: [ BaseCircuitboardRecipe, BaseGeneralMachineRecipeCategory ]
+  id: CutterMachineCircuitboard
+  result: CutterMachineCircuitboard
 
+# Cell chargers
 - type: latheRecipe
-  parent: BaseGoldCircuitboardRecipe
-  id: CargoTelepadMachineCircuitboard
-  result: CargoTelepadMachineCircuitboard
+  parent: [ BaseCheapElectronicsRecipe, BaseGeneralMachineRecipeCategory ]
+  id: BorgChargerCircuitboard
+  result: BorgChargerCircuitboard
 
 - type: latheRecipe
-  parent: BaseCircuitboardRecipe
-  id: SodaDispenserMachineCircuitboard
-  result: SodaDispenserMachineCircuitboard
+  parent: [ BaseGoldCircuitboardRecipe, BaseGeneralMachineRecipeCategory ]
+  id: TurboItemRechargerCircuitboard
+  result: TurboItemRechargerCircuitboard
 
+# Comms and Cameras
 - type: latheRecipe
-  parent: BaseCircuitboardRecipe
+  parent: [ BaseCircuitboardRecipe, BaseEngineeringMachineRecipeCategory ]
   id: TelecomServerCircuitboard
   result: TelecomServerCircuitboard
 
 - type: latheRecipe
-  parent: BaseCircuitboardRecipe
-  id: MassMediaCircuitboard
-  result: ComputerMassMediaCircuitboard
-
-- type: latheRecipe
-  parent: BaseGoldCircuitboardRecipe
-  id: MiniGravityGeneratorCircuitboard
-  result: MiniGravityGeneratorCircuitboard
-
-- type: latheRecipe
-  parent: BaseCircuitboardRecipe
-  id: PowerCageRechargerCircuitboard
-  result: PowerCageRechargerCircuitboard
-
-- type: latheRecipe
-  parent: BaseCircuitboardRecipe
-  id: ShuttleGunSvalinnMachineGunCircuitboard
-  result: ShuttleGunSvalinnMachineGunCircuitboard
-  completetime: 6
-
-- type: latheRecipe
-  parent: BaseGoldCircuitboardRecipe
-  id: ShuttleGunPerforatorCircuitboard
-  result: ShuttleGunPerforatorCircuitboard
-  completetime: 10
-
-- type: latheRecipe
-  parent: BaseCircuitboardRecipe
-  id: ShuttleGunKineticCircuitboard
-  result: ShuttleGunKineticCircuitboard
-  completetime: 6
-
-- type: latheRecipe
-  parent: BaseGoldCircuitboardRecipe
-  id: ShuttleGunFriendshipCircuitboard
-  result: ShuttleGunFriendshipCircuitboard
-  completetime: 8
-
-- type: latheRecipe
-  parent: BaseGoldCircuitboardRecipe
-  id: ShuttleGunDusterCircuitboard
-  result: ShuttleGunDusterCircuitboard
-  completetime: 12
+  parent: [ BaseCircuitboardRecipe, BaseSecurityMachineRecipeCategory ]
+  id: SurveillanceCameraRouterCircuitboard
+  result: SurveillanceCameraRouterCircuitboard
 
 - type: latheRecipe
-  parent: BaseGoldCircuitboardRecipe
-  id: ReagentGrinderIndustrialMachineCircuitboard
-  result: ReagentGrinderIndustrialMachineCircuitboard
+  parent: [ BaseCircuitboardRecipe, BaseServiceMachineRecipeCategory ]
+  id: SurveillanceCameraWirelessRouterCircuitboard
+  result: SurveillanceCameraWirelessRouterCircuitboard
 
 - type: latheRecipe
-  parent: BaseCircuitboardRecipe
-  id: JukeboxCircuitBoard
-  result: JukeboxCircuitBoard
+  parent: [ BaseCircuitboardRecipe, BaseServiceMachineRecipeCategory ]
+  id: SurveillanceWirelessCameraAnchoredCircuitboard
+  result: SurveillanceWirelessCameraAnchoredCircuitboard
 
 - type: latheRecipe
-  parent: BaseCircuitboardRecipe
-  id: CutterMachineCircuitboard
-  result: CutterMachineCircuitboard
+  parent: [ BaseCircuitboardRecipe, BaseServiceMachineRecipeCategory ]
+  id: SurveillanceWirelessCameraMovableCircuitboard
+  result: SurveillanceWirelessCameraMovableCircuitboard
 
 - type: latheRecipe
-  parent: BaseCircuitboardRecipe
+  parent: [ BaseCircuitboardRecipe, BaseGeneralMachineRecipeCategory ]
   id: HolopadMachineCircuitboard
   result: HolopadMachineCircuitboard