From 1f5fab576154d84f0146f5882d4ad6f2399d5c67 Mon Sep 17 00:00:00 2001 From: deltanedas <39013340+deltanedas@users.noreply.github.com> Date: Fri, 7 Feb 2025 18:22:49 +0000 Subject: [PATCH] move lathe recipes into packs (easier for forks and maintaining) (#33095) * add LatheRecipePackPrototype * change Lathe and EmagLathe to use packs * add AddRecipesFromPacks helper to SharedLatheSystem * update lathe logic to work with packs and clean up some stuff * migrate individual recipes to recipe packs * update client * remove node/artifact scanner from techs * :trollface: * fix test and make it include emag recipes * add test that every dynamic recipe must be researched * pro * fix * fix * fix all tests, genuinely good test i wonder who made it * add unused uranium and incendiary drozd mags to tech and lathe * add recipes * add incendiary prototype * undo some changes * troll * :trollface: * true Co-authored-by: pathetic meowmeow * shitmed real Co-authored-by: pathetic meowmeow * update funny test * :trollface: * :trollface: --------- Co-authored-by: deltanedas <@deltanedas:kde.org> Co-authored-by: pathetic meowmeow --- Content.Client/Lathe/UI/LatheMenu.xaml.cs | 2 +- .../Tests/Lathe/LatheTest.cs | 13 +- .../Tests/ResearchTest.cs | 30 +- Content.Server/Lathe/LatheSystem.cs | 52 +- Content.Shared/Lathe/EmagLatheComponent.cs | 10 +- Content.Shared/Lathe/LatheComponent.cs | 9 +- .../Prototypes/LatheRecipePackPrototype.cs | 31 + Content.Shared/Lathe/SharedLatheSystem.cs | 13 + .../Guns/Ammunition/Magazines/pistol.yml | 8 + .../Entities/Structures/Machines/lathe.yml | 945 +++--------------- .../Recipes/Lathes/Packs/animal_cubes.yml | 19 + .../Recipes/Lathes/Packs/bedsheets.yml | 23 + .../Recipes/Lathes/Packs/biogen.yml | 30 + .../Prototypes/Recipes/Lathes/Packs/cargo.yml | 31 + .../Recipes/Lathes/Packs/clothing.yml | 227 +++++ .../Recipes/Lathes/Packs/engineering.yml | 87 ++ .../Recipes/Lathes/Packs/medical.yml | 101 ++ .../Prototypes/Recipes/Lathes/Packs/ore.yml | 27 + .../Recipes/Lathes/Packs/robotics.yml | 74 ++ .../Recipes/Lathes/Packs/science.yml | 127 +++ .../Recipes/Lathes/Packs/security.yml | 131 +++ .../Recipes/Lathes/Packs/service.yml | 62 ++ .../Recipes/Lathes/Packs/shared.yml | 51 + .../Recipes/Lathes/Packs/sheetifier.yml | 7 + .../Prototypes/Recipes/Lathes/Packs/tiles.yml | 49 + .../Prototypes/Recipes/Lathes/security.yml | 17 + Resources/Prototypes/Research/arsenal.yml | 2 + .../Prototypes/Research/experimental.yml | 1 - 28 files changed, 1304 insertions(+), 875 deletions(-) create mode 100644 Content.Shared/Lathe/Prototypes/LatheRecipePackPrototype.cs create mode 100644 Resources/Prototypes/Recipes/Lathes/Packs/animal_cubes.yml create mode 100644 Resources/Prototypes/Recipes/Lathes/Packs/bedsheets.yml create mode 100644 Resources/Prototypes/Recipes/Lathes/Packs/biogen.yml create mode 100644 Resources/Prototypes/Recipes/Lathes/Packs/cargo.yml create mode 100644 Resources/Prototypes/Recipes/Lathes/Packs/clothing.yml create mode 100644 Resources/Prototypes/Recipes/Lathes/Packs/engineering.yml create mode 100644 Resources/Prototypes/Recipes/Lathes/Packs/medical.yml create mode 100644 Resources/Prototypes/Recipes/Lathes/Packs/ore.yml create mode 100644 Resources/Prototypes/Recipes/Lathes/Packs/robotics.yml create mode 100644 Resources/Prototypes/Recipes/Lathes/Packs/science.yml create mode 100644 Resources/Prototypes/Recipes/Lathes/Packs/security.yml create mode 100644 Resources/Prototypes/Recipes/Lathes/Packs/service.yml create mode 100644 Resources/Prototypes/Recipes/Lathes/Packs/shared.yml create mode 100644 Resources/Prototypes/Recipes/Lathes/Packs/sheetifier.yml create mode 100644 Resources/Prototypes/Recipes/Lathes/Packs/tiles.yml diff --git a/Content.Client/Lathe/UI/LatheMenu.xaml.cs b/Content.Client/Lathe/UI/LatheMenu.xaml.cs index 02464d22e1..fa99a9dd8e 100644 --- a/Content.Client/Lathe/UI/LatheMenu.xaml.cs +++ b/Content.Client/Lathe/UI/LatheMenu.xaml.cs @@ -64,7 +64,7 @@ public sealed partial class LatheMenu : DefaultWindow if (_entityManager.TryGetComponent(Entity, out var latheComponent)) { - if (!latheComponent.DynamicRecipes.Any()) + if (!latheComponent.DynamicPacks.Any()) { ServerListButton.Visible = false; } diff --git a/Content.IntegrationTests/Tests/Lathe/LatheTest.cs b/Content.IntegrationTests/Tests/Lathe/LatheTest.cs index 88aece967b..2fe347f636 100644 --- a/Content.IntegrationTests/Tests/Lathe/LatheTest.cs +++ b/Content.IntegrationTests/Tests/Lathe/LatheTest.cs @@ -26,6 +26,7 @@ public sealed class LatheTest var compFactory = server.ResolveDependency(); var materialStorageSystem = server.System(); var whitelistSystem = server.System(); + var latheSystem = server.System(); await server.WaitAssertion(() => { @@ -74,14 +75,14 @@ public sealed class LatheTest } } - // Collect all the recipes assigned to this lathe - var recipes = new List>(); - recipes.AddRange(latheComp.StaticRecipes); - recipes.AddRange(latheComp.DynamicRecipes); + // Collect all possible recipes assigned to this lathe + var recipes = new HashSet>(); + latheSystem.AddRecipesFromPacks(recipes, latheComp.StaticPacks); + latheSystem.AddRecipesFromPacks(recipes, latheComp.DynamicPacks); if (latheProto.TryGetComponent(out var emagRecipesComp, compFactory)) { - recipes.AddRange(emagRecipesComp.EmagStaticRecipes); - recipes.AddRange(emagRecipesComp.EmagDynamicRecipes); + latheSystem.AddRecipesFromPacks(recipes, emagRecipesComp.EmagStaticPacks); + latheSystem.AddRecipesFromPacks(recipes, emagRecipesComp.EmagDynamicPacks); } // Check each recipe assigned to this lathe diff --git a/Content.IntegrationTests/Tests/ResearchTest.cs b/Content.IntegrationTests/Tests/ResearchTest.cs index 7ae29a79ff..4661a1ea9e 100644 --- a/Content.IntegrationTests/Tests/ResearchTest.cs +++ b/Content.IntegrationTests/Tests/ResearchTest.cs @@ -52,13 +52,16 @@ public sealed class ResearchTest await using var pair = await PoolManager.GetServerClient(); var server = pair.Server; + var entMan = server.ResolveDependency(); var protoManager = server.ResolveDependency(); var compFact = server.ResolveDependency(); + var latheSys = entMan.System(); + await server.WaitAssertion(() => { var allEnts = protoManager.EnumeratePrototypes(); - var allLathes = new HashSet(); + var latheTechs = new HashSet>(); foreach (var proto in allEnts) { if (proto.Abstract) @@ -69,30 +72,31 @@ public sealed class ResearchTest if (!proto.TryGetComponent(out var lathe, compFact)) continue; - allLathes.Add(lathe); - } - var latheTechs = new HashSet(); - foreach (var lathe in allLathes) - { - if (lathe.DynamicRecipes == null) - continue; + latheSys.AddRecipesFromPacks(latheTechs, lathe.DynamicPacks); - foreach (var recipe in lathe.DynamicRecipes) - { - latheTechs.Add(recipe); - } + if (proto.TryGetComponent(out var emag, compFact)) + latheSys.AddRecipesFromPacks(latheTechs, emag.EmagDynamicPacks); } Assert.Multiple(() => { + // check that every recipe a tech adds can be made on some lathe + var unlockedTechs = new HashSet>(); foreach (var tech in protoManager.EnumeratePrototypes()) { + unlockedTechs.UnionWith(tech.RecipeUnlocks); foreach (var recipe in tech.RecipeUnlocks) { - Assert.That(latheTechs, Does.Contain(recipe), $"Recipe \"{recipe}\" cannot be unlocked on any lathes."); + Assert.That(latheTechs, Does.Contain(recipe), $"Recipe '{recipe}' from tech '{tech.ID}' cannot be unlocked on any lathes."); } } + + // now check that every dynamic recipe a lathe lists can be unlocked + foreach (var recipe in latheTechs) + { + Assert.That(unlockedTechs, Does.Contain(recipe), $"Recipe '{recipe}' is dynamic on a lathe but cannot be unlocked by research."); + } }); }); diff --git a/Content.Server/Lathe/LatheSystem.cs b/Content.Server/Lathe/LatheSystem.cs index ba82e65aa7..68a5228bdf 100644 --- a/Content.Server/Lathe/LatheSystem.cs +++ b/Content.Server/Lathe/LatheSystem.cs @@ -19,6 +19,7 @@ using Content.Shared.Emag.Components; using Content.Shared.Emag.Systems; using Content.Shared.Examine; using Content.Shared.Lathe; +using Content.Shared.Lathe.Prototypes; using Content.Shared.Materials; using Content.Shared.Power; using Content.Shared.ReagentSpeed; @@ -57,6 +58,7 @@ namespace Content.Server.Lathe /// Per-tick cache /// private readonly List _environments = new(); + private readonly HashSet> _availableRecipes = new(); public override void Initialize() { @@ -156,19 +158,16 @@ namespace Content.Server.Lathe public List> GetAvailableRecipes(EntityUid uid, LatheComponent component, bool getUnavailable = false) { + _availableRecipes.Clear(); + AddRecipesFromPacks(_availableRecipes, component.StaticPacks); var ev = new LatheGetRecipesEvent(uid, getUnavailable) { - Recipes = new HashSet>(component.StaticRecipes) + Recipes = _availableRecipes }; RaiseLocalEvent(uid, ev); return ev.Recipes.ToList(); } - public static List> GetAllBaseRecipes(LatheComponent component) - { - return component.StaticRecipes.Union(component.DynamicRecipes).ToList(); - } - public bool TryAddToQueue(EntityUid uid, LatheRecipePrototype recipe, LatheComponent? component = null) { if (!Resolve(uid, ref component)) @@ -277,35 +276,42 @@ namespace Content.Server.Lathe _uiSys.SetUiState(uid, LatheUiKey.Key, state); } + /// + /// Adds every unlocked recipe from each pack to the recipes list. + /// + public void AddRecipesFromDynamicPacks(ref LatheGetRecipesEvent args, TechnologyDatabaseComponent database, IEnumerable> packs) + { + foreach (var id in packs) + { + var pack = _proto.Index(id); + foreach (var recipe in pack.Recipes) + { + if (args.getUnavailable || database.UnlockedRecipes.Contains(recipe)) + args.Recipes.Add(recipe); + } + } + } + private void OnGetRecipes(EntityUid uid, TechnologyDatabaseComponent component, LatheGetRecipesEvent args) { if (uid != args.Lathe || !TryComp(uid, out var latheComponent)) return; - foreach (var recipe in latheComponent.DynamicRecipes) - { - if (!(args.getUnavailable || component.UnlockedRecipes.Contains(recipe)) || args.Recipes.Contains(recipe)) - continue; - args.Recipes.Add(recipe); - } + AddRecipesFromDynamicPacks(ref args, component, latheComponent.DynamicPacks); } private void GetEmagLatheRecipes(EntityUid uid, EmagLatheRecipesComponent component, LatheGetRecipesEvent args) { - if (uid != args.Lathe || !TryComp(uid, out var technologyDatabase)) + if (uid != args.Lathe) return; + if (!args.getUnavailable && !_emag.CheckFlag(uid, EmagType.Interaction)) return; - foreach (var recipe in component.EmagDynamicRecipes) - { - if (!(args.getUnavailable || technologyDatabase.UnlockedRecipes.Contains(recipe)) || args.Recipes.Contains(recipe)) - continue; - args.Recipes.Add(recipe); - } - foreach (var recipe in component.EmagStaticRecipes) - { - args.Recipes.Add(recipe); - } + + AddRecipesFromPacks(args.Recipes, component.EmagStaticPacks); + + if (TryComp(uid, out var database)) + AddRecipesFromDynamicPacks(ref args, database, component.EmagDynamicPacks); } private void OnHeatStartPrinting(EntityUid uid, LatheHeatProducingComponent component, LatheStartPrintingEvent args) diff --git a/Content.Shared/Lathe/EmagLatheComponent.cs b/Content.Shared/Lathe/EmagLatheComponent.cs index 9fe53c8d49..672748308c 100644 --- a/Content.Shared/Lathe/EmagLatheComponent.cs +++ b/Content.Shared/Lathe/EmagLatheComponent.cs @@ -1,4 +1,4 @@ -using Content.Shared.Research.Prototypes; +using Content.Shared.Lathe.Prototypes; using Robust.Shared.GameStates; using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List; @@ -9,15 +9,15 @@ namespace Content.Shared.Lathe public sealed partial class EmagLatheRecipesComponent : Component { /// - /// All of the dynamic recipes that the lathe is capable to get using EMAG + /// All of the dynamic recipe packs that the lathe is capable to get using EMAG /// [DataField, AutoNetworkedField] - public List> EmagDynamicRecipes = new(); + public List> EmagDynamicPacks = new(); /// - /// All of the static recipes that the lathe is capable to get using EMAG + /// All of the static recipe packs that the lathe is capable to get using EMAG /// [DataField, AutoNetworkedField] - public List> EmagStaticRecipes = new(); + public List> EmagStaticPacks = new(); } } diff --git a/Content.Shared/Lathe/LatheComponent.cs b/Content.Shared/Lathe/LatheComponent.cs index de4311e559..aaf273e0fe 100644 --- a/Content.Shared/Lathe/LatheComponent.cs +++ b/Content.Shared/Lathe/LatheComponent.cs @@ -1,4 +1,5 @@ using Content.Shared.Construction.Prototypes; +using Content.Shared.Lathe.Prototypes; using Content.Shared.Research.Prototypes; using Robust.Shared.Audio; using Robust.Shared.GameStates; @@ -10,16 +11,16 @@ namespace Content.Shared.Lathe public sealed partial class LatheComponent : Component { /// - /// All of the recipes that the lathe has by default + /// All of the recipe packs that the lathe has by default /// [DataField] - public List> StaticRecipes = new(); + public List> StaticPacks = new(); /// - /// All of the recipes that the lathe is capable of researching + /// All of the recipe packs that the lathe is capable of researching /// [DataField] - public List> DynamicRecipes = new(); + public List> DynamicPacks = new(); /// /// The lathe's construction queue diff --git a/Content.Shared/Lathe/Prototypes/LatheRecipePackPrototype.cs b/Content.Shared/Lathe/Prototypes/LatheRecipePackPrototype.cs new file mode 100644 index 0000000000..ada880f459 --- /dev/null +++ b/Content.Shared/Lathe/Prototypes/LatheRecipePackPrototype.cs @@ -0,0 +1,31 @@ +using Content.Shared.Research.Prototypes; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.Array; + +namespace Content.Shared.Lathe.Prototypes; + +/// +/// A pack of lathe recipes that one or more lathes can use. +/// Packs will inherit the parents recipes when using inheritance, so you don't need to copy paste them. +/// +[Prototype] +public sealed partial class LatheRecipePackPrototype : IPrototype, IInheritingPrototype +{ + [ViewVariables] + [IdDataField] + public string ID { get; private set; } = default!; + + [ParentDataField(typeof(AbstractPrototypeIdArraySerializer))] + public string[]? Parents { get; } + + [NeverPushInheritance] + [AbstractDataField] + public bool Abstract { get; } + + /// + /// The lathe recipes contained by this pack. + /// + [DataField(required: true)] + [AlwaysPushInheritance] + public HashSet> Recipes = new(); +} diff --git a/Content.Shared/Lathe/SharedLatheSystem.cs b/Content.Shared/Lathe/SharedLatheSystem.cs index 7328787f25..ae5519d16c 100644 --- a/Content.Shared/Lathe/SharedLatheSystem.cs +++ b/Content.Shared/Lathe/SharedLatheSystem.cs @@ -2,6 +2,7 @@ using System.Diagnostics.CodeAnalysis; using System.Linq; using Content.Shared.Emag.Systems; using Content.Shared.Examine; +using Content.Shared.Lathe.Prototypes; using Content.Shared.Localizations; using Content.Shared.Materials; using Content.Shared.Research.Prototypes; @@ -33,6 +34,18 @@ public abstract class SharedLatheSystem : EntitySystem BuildInverseRecipeDictionary(); } + /// + /// Add every recipe in the list of recipe packs to a single hashset. + /// + public void AddRecipesFromPacks(HashSet> recipes, IEnumerable> packs) + { + foreach (var id in packs) + { + var pack = _proto.Index(id); + recipes.UnionWith(pack.Recipes); + } + } + private void OnExamined(Entity ent, ref ExaminedEvent args) { if (!args.IsInDetailsRange) diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/pistol.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/pistol.yml index 1853962544..b554a15a98 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/pistol.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/pistol.yml @@ -301,3 +301,11 @@ map: ["enum.GunVisualLayers.Base"] - state: mag-1 map: ["enum.GunVisualLayers.Mag"] + +- type: entity + parent: BaseMagazinePistolSubMachineGun + id: MagazinePistolSubMachineGunIncendiary + name: SMG magazine (.35 auto incendiary) + components: + - type: BallisticAmmoProvider + proto: CartridgePistolIncendiary diff --git a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml index a3cb8c014c..2616effd47 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml @@ -117,115 +117,23 @@ runningState: building unlitIdleState: unlit unlitRunningState: unlit-building - staticRecipes: - - Wirecutter - - Igniter - - Signaller - - Screwdriver - - Welder - - Wrench - - CrowbarGreen - - Multitool - - NetworkConfigurator - - SprayPainter - - FlashlightLantern - - CableStack - - CableMVStack - - CableHVStack - - HandheldGPSBasic - - TRayScanner - - AirTank - - GasAnalyzer - - UtilityBelt - - Pickaxe - - ModularReceiver - - AppraisalTool - - SheetRGlass - - Beaker - - Syringe - - HandLabeler - - LightTube - - LedLightTube - - SodiumLightTube - - ExteriorLightTube - - LightBulb - - LedLightBulb - - DimLightBulb - - WarmLightBulb - - Bucket - - DrinkMug - - DrinkMugMetal - - DrinkGlass - - DrinkShotGlass - - DrinkGlassCoupeShaped - - CustomDrinkJug - - FoodPlate - - FoodPlateSmall - - FoodPlatePlastic - - FoodPlateSmallPlastic - - FoodBowlBig - - FoodPlateTin - - FoodPlateMuffinTin - - FoodKebabSkewer - - SprayBottle - - MopItem - - Holoprojector - - Mousetrap - - LightReplacer - - TrashBag - - PowerCellSmall - - PowerCellMedium - - RollerBedSpawnFolded - - CheapRollerBedSpawnFolded - - EmergencyRollerBedSpawnFolded - - MicroManipulatorStockPart - - MatterBinStockPart - - CapacitorStockPart - - ConveyorBeltAssembly - - IntercomElectronics - - FirelockElectronics - - DoorElectronics - - AirAlarmElectronics - - StationMapElectronics - - FireAlarmElectronics - - MailingUnitElectronics - - SignalTimerElectronics - - APCElectronics - - SMESMachineCircuitboard - - SubstationMachineCircuitboard - - WallmountSubstationElectronics - - CellRechargerCircuitboard - - WeaponCapacitorRechargerCircuitboard - - HandheldStationMap - - ClothingHeadHatWelding - - WetFloorSign - - ClothingHeadHatCone - - FreezerElectronics + staticPacks: + - ToolsStatic + - PartsStatic + - AtmosStatic + - CablesStatic + - CargoStatic + - MaterialsStatic + - BasicChemistryStatic + - RollerBedsStatic + - LightsStatic + - ServiceStatic + - PowerCellsStatic + - ElectronicsStatic - type: EmagLatheRecipes - emagStaticRecipes: - - BoxLethalshot - - BoxShotgunSlug - - CombatKnife - - MagazineBoxLightRifle - - MagazineBoxMagnum - - MagazineBoxPistol - - MagazineBoxRifle - - MagazineLightRifle - - MagazineLightRifleEmpty - - MagazinePistol - - MagazinePistolEmpty - - MagazinePistolSubMachineGun - - MagazinePistolSubMachineGunEmpty - - MagazinePistolSubMachineGunTopMounted - - MagazinePistolSubMachineGunTopMountedEmpty - - MagazineRifle - - MagazineRifleEmpty - - MagazineShotgun - - MagazineShotgunEmpty - - MagazineShotgunSlug - - RiotShield - - SpeedLoaderMagnum - - SpeedLoaderMagnumEmpty + emagStaticPacks: + - SecurityAmmoStatic + - SecurityWeaponsStatic - type: BlueprintReceiver whitelist: tags: @@ -282,117 +190,29 @@ runningState: building unlitIdleState: unlit unlitRunningState: unlit-building - staticRecipes: - - LargeBeaker - - Dropper - - ClothingEyesGlassesChemical - dynamicRecipes: - - PowerDrill - - MiningDrill - - MiningDrillDiamond - - AnomalyScanner - - AnomalyLocator - - AnomalyLocatorWide - - Scalpel - - Retractor - - Cautery - - Drill - - WeaponParticleDecelerator - - HoloprojectorField - - Saw - - Hemostat - - CryostasisBeaker - - SyringeCryostasis - - Syringe - - Implanter - - PillCanister - - ChemistryEmptyBottle01 - - AdvMopItem - - WeaponSprayNozzle - - ClothingBackpackWaterTank - - MegaSprayBottle - - TimerTrigger - - ChemicalPayload - - FlashPayload - - Signaller - - SignallerAdvanced - - SignalTrigger - - VoiceTrigger - - Igniter - - HandHeldMassScanner - - PowerCellMicroreactor - - PowerCellHigh - - WeaponPistolCHIMP - - ClothingMaskWeldingGas - - MineralScannerEmpty - - AdvancedMineralScannerEmpty - - WeaponGauntletGorilla - - SynthesizerInstrument - - ClothingShoesBootsMagSci - - ClothingShoesBootsMoon - - ClothingShoesBootsSpeed - - NodeScanner - - HolofanProjector - - BluespaceBeaker - - SyringeBluespace - - WeaponForceGun - - WeaponLaserSvalinn - - WeaponProtoKineticAccelerator - - WeaponTetherGun - - ClothingBackpackHolding - - ClothingBackpackSatchelHolding - - ClothingBackpackDuffelHolding - - WelderExperimental - - JawsOfLife - - FauxTileAstroGrass - - FauxTileMowedAstroGrass - - FauxTileJungleAstroGrass - - FauxTileAstroIce - - FauxTileAstroSnow - - FauxTileAstroAsteroidSand - - OreBagOfHolding - - DeviceQuantumSpinInverter + staticPacks: + - ChemistryStatic + - SurgeryStatic + dynamicPacks: + - AdvancedTools + - ScienceEquipment + - ScienceClothing + - PowerCells + - ScienceWeapons + - Mining + - AtmosTools + - EngineeringWeapons + - Chemistry + - Janitor + - Instruments + - Equipment + - FauxTiles - type: EmagLatheRecipes - emagDynamicRecipes: - - BoxBeanbag - - BoxShotgunIncendiary - - BoxShotgunUranium - - BoxShellTranquilizer - - ExplosivePayload - - GrenadeBlast - - GrenadeEMP - - GrenadeFlash - - HoloprojectorSecurity - - MagazineBoxLightRifleIncendiary - - MagazineBoxLightRifleUranium - - MagazineBoxMagnumIncendiary - - MagazineBoxMagnumUranium - - MagazineBoxPistolIncendiary - - MagazineBoxPistolUranium - - MagazineBoxRifleIncendiary - - MagazineBoxRifleUranium - - MagazineGrenadeEmpty - - MagazineLightRifleIncendiary - - MagazineLightRifleUranium - - MagazinePistolIncendiary - - MagazinePistolUranium - - MagazineRifleIncendiary - - MagazineRifleUranium - - MagazineShotgunBeanbag - - MagazineShotgunIncendiary - - MagazineShotgunIncendiary - - PortableRecharger - - PowerCageHigh - - PowerCageMedium - - PowerCageSmall - - SpeedLoaderMagnumIncendiary - - SpeedLoaderMagnumUranium - - TelescopicShield - - Truncheon - - WeaponAdvancedLaser - - WeaponLaserCannon - - WeaponLaserCarbine - - WeaponXrayCannon + emagDynamicPacks: + - SecurityAmmo + - SecurityExplosives + - SecurityEquipment + - SecurityWeapons - type: entity id: ProtolatheHyperConvection @@ -428,106 +248,25 @@ producingSound: /Audio/Machines/circuitprinter.ogg idleState: icon runningState: building - staticRecipes: - - ProtolatheMachineCircuitboard - - AutolatheMachineCircuitboard - - CircuitImprinterMachineCircuitboard - - BiogeneratorMachineCircuitboard - - OreProcessorMachineCircuitboard - - ElectrolysisUnitMachineCircuitboard - - CentrifugeMachineCircuitboard - - ChemDispenserMachineCircuitboard - - ChemMasterMachineCircuitboard - - CondenserMachineCircuitBoard - - HotplateMachineCircuitboard - - UniformPrinterMachineCircuitboard - - FloorGreenCircuit - - FloorBlueCircuit - - FloorRedCircuit - - MicrowaveMachineCircuitboard - - ReagentGrinderMachineCircuitboard - - ElectricGrillMachineCircuitboard - - BoozeDispenserMachineCircuitboard - - SodaDispenserMachineCircuitboard - - SpaceHeaterMachineCircuitBoard - - CutterMachineCircuitboard - - SalvageMagnetMachineCircuitboard - - BorgChargerCircuitboard - dynamicRecipes: - - ThermomachineFreezerMachineCircuitBoard - - HellfireFreezerMachineCircuitBoard - - PortableScrubberMachineCircuitBoard - - CloningPodMachineCircuitboard - - MedicalScannerMachineCircuitboard - - CryoPodMachineCircuitboard - - VaccinatorMachineCircuitboard - - DiagnoserMachineCircuitboard - - BiomassReclaimerMachineCircuitboard - - BiofabricatorMachineCircuitboard - - SurveillanceCameraRouterCircuitboard - - SurveillanceCameraMonitorCircuitboard - - SurveillanceWirelessCameraMonitorCircuitboard - - SurveillanceCameraWirelessRouterCircuitboard - - ComputerTelevisionCircuitboard - - SurveillanceWirelessCameraMovableCircuitboard - - SurveillanceWirelessCameraAnchoredCircuitboard - - HydroponicsTrayMachineCircuitboard - - SolarControlComputerCircuitboard - - SolarTrackerElectronics - - TurboItemRechargerCircuitboard - - AutolatheHyperConvectionMachineCircuitboard - - ProtolatheHyperConvectionMachineCircuitboard - - CircuitImprinterHyperConvectionMachineCircuitboard - - FatExtractorMachineCircuitboard - - FlatpackerMachineCircuitboard - - SheetifierMachineCircuitboard - - ShuttleConsoleCircuitboard - - RadarConsoleCircuitboard - - TechDiskComputerCircuitboard - - DawInstrumentMachineCircuitboard - - CloningConsoleComputerCircuitboard - - StasisBedMachineCircuitboard - - OreProcessorIndustrialMachineCircuitboard - - CargoTelepadMachineCircuitboard - - RipleyCentralElectronics - - RipleyPeripheralsElectronics - - HonkerCentralElectronics - - HonkerPeripheralsElectronics - - HonkerTargetingElectronics - - HamtrCentralElectronics - - HamtrPeripheralsElectronics - - PortableGeneratorPacmanMachineCircuitboard - - PortableGeneratorSuperPacmanMachineCircuitboard - - PortableGeneratorJrPacmanMachineCircuitboard - - WallmountSubstationElectronics - - PowerCageRechargerCircuitboard - - EmitterCircuitboard - - ThrusterMachineCircuitboard - - GyroscopeMachineCircuitboard - - MiniGravityGeneratorCircuitboard - - ShuttleGunKineticCircuitboard - - GasRecyclerMachineCircuitboard - - SeedExtractorMachineCircuitboard - - AnalysisComputerCircuitboard - - ExosuitFabricatorMachineCircuitboard - - AnomalyVesselCircuitboard - - AnomalyVesselExperimentalCircuitboard - - AnomalySynchronizerCircuitboard - - APECircuitboard - - ArtifactAnalyzerMachineCircuitboard - - ArtifactCrusherMachineCircuitboard - - TelecomServerCircuitboard - - MassMediaCircuitboard - - ReagentGrinderIndustrialMachineCircuitboard - - JukeboxCircuitBoard - - SMESAdvancedMachineCircuitboard - - HolopadMachineCircuitboard + staticPacks: + - ScienceBoardsStatic + - ServiceBoardsStatic + - CargoBoardsStatic + - MedicalBoardsStatic + - EngineeringBoardsStatic + - CircuitFloorsStatic + dynamicPacks: + - EngineeringBoards + - CargoBoards + - MedicalBoards + - ServiceBoards + - ScienceBoards + - CameraBoards + - MechBoards + - ShuttleBoards - type: EmagLatheRecipes - emagDynamicRecipes: - - ShuttleGunDusterCircuitboard - - ShuttleGunFriendshipCircuitboard - - ShuttleGunPerforatorCircuitboard - - ShuttleGunSvalinnMachineGunCircuitboard + emagDynamicPacks: + - SecurityBoards - type: MaterialStorage whitelist: tags: @@ -567,51 +306,15 @@ - type: Lathe idleState: fab-idle runningState: fab-active - staticRecipes: - - MMI - - PositronicBrain - - SciFlash - - BorgModuleCable - - BorgModuleFireExtinguisher - - BorgModuleRadiationDetection - - BorgModuleTool - - CyborgEndoskeleton - - LeftArmBorg - - RightArmBorg - - LeftLegBorg - - RightLegBorg - - LightHeadBorg - - TorsoBorg - dynamicRecipes: - - ProximitySensor - - BorgModuleAdvancedCleaning - - BorgModuleAdvancedTool - - BorgModuleGPS - - BorgModuleArtifact - - BorgModuleAnomaly - - BorgModuleGardening - - BorgModuleHarvesting - - BorgModuleDefibrillator - - BorgModuleAdvancedTreatment - - RipleyHarness - - RipleyLArm - - RipleyRArm - - RipleyLLeg - - RipleyRLeg - - MechEquipmentGrabber - - HonkerHarness - - HonkerLArm - - HonkerRArm - - HonkerLLeg - - HonkerRLeg - - MechEquipmentHorn - - MechEquipmentGrabberSmall - - HamtrHarness - - HamtrLArm - - HamtrRArm - - HamtrLLeg - - HamtrRLeg - - VimHarness + staticPacks: + - RoboticsStatic + - BorgModulesStatic + - BorgLimbsStatic + dynamicPacks: + - Robotics + - BorgModules + - MechParts + - MechEquipment - type: MaterialStorage whitelist: tags: @@ -655,19 +358,11 @@ - type: Lathe idleState: icon runningState: building - staticRecipes: - - MonkeyCube - - KoboldCube - - CowCube - - GoatCube - - MothroachCube - - MouseCube - - CockroachCube + staticPacks: + - FriendlyCubesStatic - type: EmagLatheRecipes - emagStaticRecipes: - - AbominationCube - - SpaceCarpCube - - SpaceTickCube + emagStaticPacks: + - HostileCubesStatic - type: entity id: SecurityTechFab @@ -693,98 +388,17 @@ - type: Lathe idleState: icon runningState: icon - staticRecipes: - - BoxLethalshot - - BoxShotgunPractice - - BoxShotgunSlug - - ClothingEyesHudSecurity - - CombatKnife - - Flash - - ForensicPad - - Handcuffs - - MagazineBoxLightRifle - - MagazineBoxLightRiflePractice - - MagazineBoxMagnum - - MagazineBoxMagnumPractice - - MagazineBoxPistol - - MagazineBoxPistolPractice - - MagazineBoxRifle - - MagazineBoxRiflePractice - - MagazineLightRifle - - MagazineLightRifleEmpty - - MagazinePistol - - MagazinePistolEmpty - - MagazinePistolSubMachineGun - - MagazinePistolSubMachineGunEmpty - - MagazinePistolSubMachineGunTopMounted - - MagazinePistolSubMachineGunTopMountedEmpty - - MagazineRifle - - MagazineRifleEmpty - - MagazineShotgun - - MagazineShotgunEmpty - - MagazineShotgunSlug - - RiotShield - - SpeedLoaderMagnum - - SpeedLoaderMagnumEmpty - - Stunbaton - - TargetClown - - TargetHuman - - TargetSyndicate - - WeaponDisablerPractice - - WeaponFlareGunSecurity - - WeaponLaserCarbinePractice - - Zipties - dynamicRecipes: - - BoxBeanbag - - BoxShotgunIncendiary - - BoxShotgunUranium - - BoxShellTranquilizer - - ClothingBackpackElectropack - - ExplosivePayload - - FlashPayload - - GrenadeBlast - - GrenadeEMP - - GrenadeFlash - - HoloprojectorSecurity - - MagazineBoxLightRifleIncendiary - - MagazineBoxLightRifleUranium - - MagazineBoxMagnumIncendiary - - MagazineBoxMagnumUranium - - MagazineBoxPistolIncendiary - - MagazineBoxPistolUranium - - MagazineBoxRifleIncendiary - - MagazineBoxRifleUranium - - MagazineGrenadeEmpty - - MagazineLightRifleIncendiary - - MagazineLightRifleUranium - - MagazinePistolIncendiary - - MagazinePistolUranium - - MagazineRifleIncendiary - - MagazineRifleUranium - - MagazineShotgunBeanbag - - MagazineShotgunIncendiary - - PortableRecharger - - PowerCageHigh - - PowerCageMedium - - PowerCageSmall - - ShuttleGunDusterCircuitboard - - ShuttleGunFriendshipCircuitboard - - ShuttleGunPerforatorCircuitboard - - ShuttleGunSvalinnMachineGunCircuitboard - - Signaller - - SignalTrigger - - SpeedLoaderMagnumIncendiary - - SpeedLoaderMagnumUranium - - TelescopicShield - - TimerTrigger - - Truncheon - - VoiceTrigger - - WeaponAdvancedLaser - - WeaponDisabler - - WeaponDisablerSMG - - WeaponLaserCannon - - WeaponLaserCarbine - - WeaponXrayCannon + staticPacks: + - SecurityEquipmentStatic + - SecurityPracticeStatic + - SecurityAmmoStatic + - SecurityWeaponsStatic + dynamicPacks: + - SecurityEquipment + - SecurityBoards + - SecurityExplosives + - SecurityAmmo + - SecurityWeapons - type: MaterialStorage whitelist: tags: @@ -816,25 +430,8 @@ - type: Lathe idleState: icon runningState: icon - staticRecipes: - - BoxLethalshot - - BoxShotgunSlug - - BoxShellTranquilizer - - MagazineBoxLightRifle - - MagazineBoxMagnum - - MagazineBoxPistol - - MagazineBoxRifle - - MagazineLightRifle - - MagazineLightRifleEmpty - - MagazinePistol - - MagazinePistolEmpty - - MagazineRifle - - MagazineRifleEmpty - - MagazineShotgun - - MagazineShotgunEmpty - - MagazineShotgunSlug - - SpeedLoaderMagnum - - SpeedLoaderMagnumEmpty + staticPacks: + - SecurityAmmoStatic - type: MaterialStorage whitelist: tags: @@ -864,51 +461,16 @@ - type: Lathe idleState: icon runningState: icon - staticRecipes: - - Brutepack - - Ointment - - Gauze - - HandLabeler - - Defibrillator - - HandheldHealthAnalyzer - - ClothingHandsGlovesLatex - - ClothingHandsGlovesNitrile - - ClothingMaskSterile - - DiseaseSwab - - Beaker - - LargeBeaker - - Dropper - - Jug - - Syringe - - Implanter - - PillCanister - - BodyBag - - ChemistryEmptyBottle01 - - RollerBedSpawnFolded - - CheapRollerBedSpawnFolded - - EmergencyRollerBedSpawnFolded - - Medkit - - MedkitBurn - - MedkitToxin - - MedkitO2 - - MedkitBrute - - MedkitAdvanced - - MedkitRadiation - - MedkitCombat - - Scalpel - - Retractor - - Cautery - - Drill - - Saw - - Hemostat - - ClothingEyesGlassesChemical - - WhiteCane - dynamicRecipes: - - ChemicalPayload - - CryostasisBeaker - - BluespaceBeaker - - SyringeBluespace - - SyringeCryostasis + staticPacks: + - TopicalsStatic + - ChemistryStatic + - MedicalStatic + - RollerBedsStatic + - MedicalClothingStatic + - EmptyMedkitsStatic + - SurgeryStatic + dynamicPacks: + - Chemistry - type: Machine board: MedicalTechFabCircuitboard - type: StealTarget @@ -934,202 +496,24 @@ producingSound: /Audio/Machines/uniformprinter.ogg idleState: icon runningState: building - staticRecipes: - - ClothingUniformJumpsuitColorGrey - - ClothingUniformJumpskirtColorGrey - - ClothingUniformJumpsuitBartender - - ClothingUniformJumpskirtBartender - - ClothingHeadHatCapcap - - ClothingHeadHatCaptain - - ClothingUniformJumpsuitCaptain - - ClothingUniformJumpskirtCaptain - - ClothingUniformJumpsuitCapFormal - - ClothingUniformJumpskirtCapFormalDress - - ClothingUniformJumpsuitCargo - - ClothingUniformJumpskirtCargo - - ClothingUniformJumpsuitSalvageSpecialist - - ClothingHeadHatBeretEngineering - - ClothingUniformJumpsuitChiefEngineer - - ClothingUniformJumpskirtChiefEngineer - - ClothingUniformJumpsuitChiefEngineerTurtle - - ClothingUniformJumpskirtChiefEngineerTurtle - - ClothingUniformJumpsuitChaplain - - ClothingUniformJumpskirtChaplain - - ClothingUniformJumpsuitChef - - ClothingUniformJumpskirtChef - - ClothingUniformJumpsuitChemistry - - ClothingUniformJumpskirtChemistry - - ClothingUniformJumpsuitClown - - ClothingHeadHatBeretCmo - - ClothingUniformJumpsuitCMO - - ClothingUniformJumpskirtCMO - - ClothingUniformJumpsuitCMOTurtle - - ClothingUniformJumpskirtCMOTurtle - - ClothingUniformJumpsuitDetective - - ClothingUniformJumpskirtDetective - - ClothingUniformJumpsuitEngineering - - ClothingUniformJumpskirtEngineering - - ClothingUniformJumpsuitSeniorEngineer - - ClothingUniformJumpskirtSeniorEngineer - - ClothingHeadHatHopcap - - ClothingUniformJumpsuitHoP - - ClothingUniformJumpskirtHoP - - ClothingHeadHatBeretHoS - - ClothingHeadHatHoshat - - ClothingUniformJumpsuitHoS - - ClothingUniformJumpskirtHoS - - ClothingUniformJumpsuitHosFormal - - ClothingUniformJumpskirtHosFormal - - ClothingUniformJumpsuitHoSAlt - - ClothingUniformJumpskirtHoSAlt - - ClothingUniformJumpsuitHoSBlue - - ClothingUniformJumpsuitHoSGrey - - ClothingUniformJumpsuitHoSParadeMale - - ClothingUniformJumpskirtHoSParadeMale - - ClothingUniformJumpsuitHydroponics - - ClothingUniformJumpskirtHydroponics - - ClothingUniformJumpsuitJanitor - - ClothingUniformJumpskirtJanitor - - ClothingUniformJumpsuitLawyerBlack - - ClothingUniformJumpsuitLibrarian - - ClothingUniformJumpskirtColorLightBrown - - ClothingHeadHatBeretSeniorPhysician - - ClothingUniformJumpsuitMedicalDoctor - - ClothingUniformJumpskirtMedicalDoctor - - ClothingUniformJumpsuitSeniorPhysician - - ClothingUniformJumpskirtSeniorPhysician - - ClothingUniformJumpsuitMime - - ClothingUniformJumpskirtMime - - ClothingUniformJumpsuitMusician - - ClothingUniformJumpsuitParamedic - - ClothingUniformJumpskirtParamedic - - ClothingUniformJumpsuitSeniorOfficer - - ClothingUniformJumpskirtSeniorOfficer - - ClothingUniformJumpsuitPrisoner - - ClothingUniformJumpskirtPrisoner - - ClothingHeadHatQMsoft - - ClothingHeadHatBeretQM - - ClothingUniformJumpsuitQM - - ClothingUniformJumpskirtQM - - ClothingUniformJumpsuitQMTurtleneck - - ClothingUniformJumpskirtQMTurtleneck - - ClothingUniformJumpsuitQMFormal - - ClothingHeadHatBeretRND - - ClothingUniformJumpsuitResearchDirector - - ClothingUniformJumpskirtResearchDirector - - ClothingUniformJumpsuitScientist - - ClothingUniformJumpskirtScientist - - ClothingUniformJumpsuitSeniorResearcher - - ClothingUniformJumpskirtSeniorResearcher - - ClothingHeadHatBeretSecurity - - ClothingUniformJumpsuitSec - - ClothingUniformJumpskirtSec - - ClothingHeadHatBeretBrigmedic - - ClothingUniformJumpsuitBrigmedic - - ClothingUniformJumpskirtBrigmedic - - ClothingHeadHatBeretWarden - - ClothingHeadHatWarden - - ClothingUniformJumpsuitWarden - - ClothingUniformJumpskirtWarden - - ClothingHeadHatParamedicsoft - # Winter outfits - - ClothingOuterWinterCap - - ClothingOuterWinterCE - - ClothingOuterWinterCMO - - ClothingOuterWinterHoP - - ClothingOuterWinterHoSUnarmored - - ClothingOuterWinterWardenUnarmored - - ClothingOuterWinterQM - - ClothingOuterWinterRD - - ClothingOuterWinterMusician - - ClothingOuterWinterClown - - ClothingOuterWinterMime - - ClothingOuterWinterCoat - - ClothingOuterWinterJani - - ClothingOuterWinterBar - - ClothingOuterWinterChef - - ClothingOuterWinterHydro - - ClothingOuterWinterAtmos - - ClothingOuterWinterEngi - - ClothingOuterWinterCargo - - ClothingOuterWinterMiner - - ClothingOuterWinterMed - - ClothingOuterWinterPara - - ClothingOuterWinterChem - - ClothingOuterWinterGen - - ClothingOuterWinterViro - - ClothingOuterWinterSci - - ClothingOuterWinterRobo - - ClothingOuterWinterSec - # Ties - - ClothingNeckTieRed - - ClothingNeckTieDet - - ClothingNeckTieSci - # Scarfs - All scarfs avaible in winterdrobe - - ClothingNeckScarfStripedGreen - - ClothingNeckScarfStripedBlue - - ClothingNeckScarfStripedRed - - ClothingNeckScarfStripedBrown - - ClothingNeckScarfStripedLightBlue - - ClothingNeckScarfStripedOrange - - ClothingNeckScarfStripedBlack - - ClothingNeckScarfStripedPurple - # Carpets - - Carpet - - CarpetBlack - - CarpetPink - - CarpetBlue - - CarpetGreen - - CarpetOrange - - CarpetPurple - - CarpetCyan - - CarpetWhite - # Bedsheets - - BedsheetBlack - - BedsheetBlue - - BedsheetBrown - - BedsheetGreen - - BedsheetGrey - - BedsheetOrange - - BedsheetPurple - - BedsheetRed - - BedsheetWhite - - BedsheetYellow - - BedsheetClown - - BedsheetCosmos - - BedsheetIan - - BedsheetMedical - - BedsheetMime - - BedsheetNT - - BedsheetRainbow - - BedsheetBrigmedic + staticPacks: + - ClothingCivilian + - ClothingCargo + - ClothingCommand + - ClothingEngineering + - ClothingMedical + - ClothingScience + - ClothingSecurity + - ClothingService + - WinterCoats + - Ties + - Scarves + - Carpets + - Bedsheets - type: EmagLatheRecipes - emagStaticRecipes: - # Clothing - - ClothingHeadHatCentcomcap - - ClothingHeadHatCentcom - - ClothingUniformJumpsuitCentcomAgent - - ClothingUniformJumpsuitCentcomFormal - - ClothingUniformJumpskirtCentcomFormalDress - - ClothingUniformJumpsuitCentcomOfficer - - ClothingUniformJumpsuitCentcomOfficial - - ClothingHeadHatSyndieMAA - - ClothingHeadHatSyndie - - ClothingUniformJumpsuitOperative - - ClothingUniformJumpskirtOperative - - ClothingUniformJumpsuitSyndieFormal - - ClothingUniformJumpskirtSyndieFormalDress - - ClothingHeadPyjamaSyndicateBlack - - ClothingUniformJumpsuitPyjamaSyndicateBlack - - ClothingHeadPyjamaSyndicatePink - - ClothingUniformJumpsuitPyjamaSyndicatePink - - ClothingHeadPyjamaSyndicateRed - - ClothingUniformJumpsuitPyjamaSyndicateRed - - ClothingOuterWinterCentcom - - ClothingOuterWinterSyndie - - ClothingOuterWinterSyndieCap - # Bedsheets - - BedsheetSyndie + emagStaticPacks: + - ClothingCentComm + - ClothingSyndie - type: MaterialStorage whitelist: tags: @@ -1176,28 +560,9 @@ reagentOutputSlotId: beaker_slot idleState: icon runningState: building - staticRecipes: - - BioGenMilk - - BioGenMilkSoy - - BioGenEthanol - - BioGenCream - - BioGenBlackpepper - - BioGenEnzyme - - BioGenFlour - - BioGenSugar - - BioGenMonkeyCube - - BioGenKoboldCube - - BioGenMaterialCloth1 - - BioGenMaterialCardboard1 - - BioGenPaper - - BioGenPaperRolling1 - - BioGenCandle - - BioGenPlantBGone - - BioGenWeedKiller - - BioGenPestKiller - - BioGenLeft4Zed - - BioGenEZNutrient - - BioGenRobustHarvest + staticPacks: + - BioGenIngredientsStatic + - BioGenMaterialsStatic - type: entity parent: BaseLathe @@ -1228,18 +593,9 @@ idleState: icon runningState: building defaultProductionAmount: 10 - staticRecipes: - - SheetSteel - - SheetGlass1 - - SheetRGlassRaw - - SheetPlasma1 - - SheetPGlass1 - - SheetRPGlass1 - - SheetUranium1 - - IngotGold1 - - IngotSilver1 - - MaterialBananium1 - - MaterialDiamond + staticPacks: + - OreSmelting + - RGlassSmelting - type: entity parent: OreProcessor @@ -1254,21 +610,10 @@ - type: Lathe materialUseMultiplier: 0.75 timeMultiplier: 0.5 - staticRecipes: - - SheetSteel - - SheetGlass1 - - SheetRGlassRaw - - SheetPlasma1 - - SheetPGlass1 - - SheetRPGlass1 - - SheetPlasteel1 - - SheetUranium1 - - SheetUGlass1 - - SheetRUGlass1 - - IngotGold1 - - IngotSilver1 - - MaterialBananium1 - - MaterialDiamond + staticPacks: + - OreSmelting + - RGlassSmelting + - AdvancedSmelting - type: entity parent: BaseLathe @@ -1297,9 +642,8 @@ - type: Lathe idleState: base_machine runningState: base_machine_processing - staticRecipes: - - MaterialSheetMeat - - SheetPaper + staticPacks: + - SheetifierStatic - type: entity parent: BaseLathe @@ -1326,51 +670,8 @@ producingSound: /Audio/Machines/cutter.ogg idleState: icon runningState: building - staticRecipes: - - FloorTileItemDark - - FloorTileItemDarkDiagonalMini - - FloorTileItemDarkDiagonal - - FloorTileItemDarkHerringbone - - FloorTileItemDarkMini - - FloorTileItemDarkMono - - FloorTileItemDarkPavement - - FloorTileItemDarkPavementVertical - - FloorTileItemDarkOffset - - FloorTileItemSteelCheckerDark - - FloorTileItemSteel - - FloorTileItemSteelOffset - - FloorTileItemSteelDiagonalMini - - FloorTileItemSteelDiagonal - - FloorTileItemSteelHerringbone - - FloorTileItemSteelMini - - FloorTileItemSteelMono - - FloorTileItemSteelPavement - - FloorTileItemSteelPavementVertical - - FloorTileItemWhite - - FloorTileItemWhiteOffset - - FloorTileItemWhiteDiagonalMini - - FloorTileItemWhiteDiagonal - - FloorTileItemWhiteHerringbone - - FloorTileItemWhiteMini - - FloorTileItemWhiteMono - - FloorTileItemWhitePavement - - FloorTileItemWhitePavementVertical - - FloorTileItemSteelCheckerLight - - FloorTileItemGratingMaint - - FloorTileItemTechmaint - - FloorTileItemSteelMaint - - FloorTileItemWood - - FloorTileItemWoodLarge - - FloorTileItemWoodPattern - - FloorTileItemConcrete - - FloorTileItemConcreteMono - - FloorTileItemConcreteSmooth - - FloorTileItemGrayConcrete - - FloorTileItemGrayConcreteMono - - FloorTileItemGrayConcreteSmooth - - FloorTileItemOldConcrete - - FloorTileItemOldConcreteMono - - FloorTileItemOldConcreteSmooth + staticPacks: + - FloorTilesStatic - type: MaterialStorage whitelist: tags: diff --git a/Resources/Prototypes/Recipes/Lathes/Packs/animal_cubes.yml b/Resources/Prototypes/Recipes/Lathes/Packs/animal_cubes.yml new file mode 100644 index 0000000000..1a1cd50ae7 --- /dev/null +++ b/Resources/Prototypes/Recipes/Lathes/Packs/animal_cubes.yml @@ -0,0 +1,19 @@ +## Static + +- type: latheRecipePack + id: FriendlyCubesStatic + recipes: + - MonkeyCube + - KoboldCube + - CowCube + - GoatCube + - MothroachCube + - MouseCube + - CockroachCube + +- type: latheRecipePack + id: HostileCubesStatic + recipes: + - AbominationCube + - SpaceCarpCube + - SpaceTickCube diff --git a/Resources/Prototypes/Recipes/Lathes/Packs/bedsheets.yml b/Resources/Prototypes/Recipes/Lathes/Packs/bedsheets.yml new file mode 100644 index 0000000000..7d55c710c6 --- /dev/null +++ b/Resources/Prototypes/Recipes/Lathes/Packs/bedsheets.yml @@ -0,0 +1,23 @@ +## Static + +- type: latheRecipePack + id: Bedsheets + recipes: + - BedsheetBlack + - BedsheetBlue + - BedsheetBrown + - BedsheetGreen + - BedsheetGrey + - BedsheetOrange + - BedsheetPurple + - BedsheetRed + - BedsheetWhite + - BedsheetYellow + - BedsheetClown + - BedsheetCosmos + - BedsheetIan + - BedsheetMedical + - BedsheetMime + - BedsheetNT + - BedsheetRainbow + - BedsheetBrigmedic diff --git a/Resources/Prototypes/Recipes/Lathes/Packs/biogen.yml b/Resources/Prototypes/Recipes/Lathes/Packs/biogen.yml new file mode 100644 index 0000000000..49ac26c52b --- /dev/null +++ b/Resources/Prototypes/Recipes/Lathes/Packs/biogen.yml @@ -0,0 +1,30 @@ +## Static + +- type: latheRecipePack + id: BioGenIngredientsStatic + recipes: + - BioGenMilk + - BioGenMilkSoy + - BioGenEthanol + - BioGenCream + - BioGenBlackpepper + - BioGenEnzyme + - BioGenFlour + - BioGenSugar + - BioGenMonkeyCube + - BioGenKoboldCube + - BioGenCandle + - BioGenPlantBGone + - BioGenWeedKiller + - BioGenPestKiller + - BioGenLeft4Zed + - BioGenEZNutrient + - BioGenRobustHarvest + +- type: latheRecipePack + id: BioGenMaterialsStatic + recipes: + - BioGenMaterialCloth1 + - BioGenMaterialCardboard1 + - BioGenPaper + - BioGenPaperRolling1 diff --git a/Resources/Prototypes/Recipes/Lathes/Packs/cargo.yml b/Resources/Prototypes/Recipes/Lathes/Packs/cargo.yml new file mode 100644 index 0000000000..6ca2ef8566 --- /dev/null +++ b/Resources/Prototypes/Recipes/Lathes/Packs/cargo.yml @@ -0,0 +1,31 @@ +## Static + +- type: latheRecipePack + id: CargoStatic + recipes: + - AppraisalTool + - Pickaxe + +- type: latheRecipePack + id: CargoBoardsStatic + recipes: + - OreProcessorMachineCircuitboard + - SalvageMagnetMachineCircuitboard + +## Dynamic + +- type: latheRecipePack + id: Mining + recipes: + - MiningDrill + - MiningDrillDiamond + - MineralScannerEmpty + - AdvancedMineralScannerEmpty + - OreBagOfHolding + +- type: latheRecipePack + id: CargoBoards + recipes: + - OreProcessorIndustrialMachineCircuitboard + - CargoTelepadMachineCircuitboard + - ShuttleGunKineticCircuitboard diff --git a/Resources/Prototypes/Recipes/Lathes/Packs/clothing.yml b/Resources/Prototypes/Recipes/Lathes/Packs/clothing.yml new file mode 100644 index 0000000000..15ba04b88c --- /dev/null +++ b/Resources/Prototypes/Recipes/Lathes/Packs/clothing.yml @@ -0,0 +1,227 @@ +## Static + +- type: latheRecipePack + id: ClothingCivilian + recipes: + - ClothingUniformJumpsuitColorGrey + - ClothingUniformJumpskirtColorGrey + +- type: latheRecipePack + id: ClothingCargo + recipes: + - ClothingUniformJumpsuitCargo + - ClothingUniformJumpskirtCargo + - ClothingUniformJumpsuitSalvageSpecialist + - ClothingHeadHatQMsoft + - ClothingHeadHatBeretQM + - ClothingUniformJumpsuitQM + - ClothingUniformJumpskirtQM + - ClothingUniformJumpsuitQMTurtleneck + - ClothingUniformJumpskirtQMTurtleneck + - ClothingUniformJumpsuitQMFormal + +- type: latheRecipePack + id: ClothingCommand + recipes: + # Captain + - ClothingHeadHatCapcap + - ClothingHeadHatCaptain + - ClothingUniformJumpsuitCaptain + - ClothingUniformJumpskirtCaptain + - ClothingUniformJumpsuitCapFormal + - ClothingUniformJumpskirtCapFormalDress + # HoP + - ClothingHeadHatHopcap + - ClothingUniformJumpsuitHoP + - ClothingUniformJumpskirtHoP + +- type: latheRecipePack + id: ClothingEngineering + recipes: + - ClothingHeadHatBeretEngineering + - ClothingUniformJumpsuitChiefEngineer + - ClothingUniformJumpskirtChiefEngineer + - ClothingUniformJumpsuitChiefEngineerTurtle + - ClothingUniformJumpskirtChiefEngineerTurtle + - ClothingUniformJumpsuitEngineering + - ClothingUniformJumpskirtEngineering + - ClothingUniformJumpsuitSeniorEngineer + - ClothingUniformJumpskirtSeniorEngineer + +- type: latheRecipePack + id: ClothingMedical + recipes: + - ClothingUniformJumpsuitChemistry + - ClothingUniformJumpskirtChemistry + - ClothingHeadHatBeretCmo + - ClothingUniformJumpsuitCMO + - ClothingUniformJumpskirtCMO + - ClothingUniformJumpsuitCMOTurtle + - ClothingUniformJumpskirtCMOTurtle + - ClothingHeadHatBeretSeniorPhysician + - ClothingUniformJumpsuitMedicalDoctor + - ClothingUniformJumpskirtMedicalDoctor + - ClothingUniformJumpsuitSeniorPhysician + - ClothingUniformJumpskirtSeniorPhysician + - ClothingUniformJumpsuitParamedic + - ClothingUniformJumpskirtParamedic + - ClothingHeadHatParamedicsoft + +- type: latheRecipePack + id: ClothingScience + recipes: + - ClothingHeadHatBeretRND + - ClothingUniformJumpsuitResearchDirector + - ClothingUniformJumpskirtResearchDirector + - ClothingUniformJumpsuitScientist + - ClothingUniformJumpskirtScientist + - ClothingUniformJumpsuitSeniorResearcher + - ClothingUniformJumpskirtSeniorResearcher + +- type: latheRecipePack + id: ClothingSecurity + recipes: + - ClothingUniformJumpsuitDetective + - ClothingUniformJumpskirtDetective + - ClothingHeadHatBeretHoS + - ClothingHeadHatHoshat + - ClothingUniformJumpsuitHoS + - ClothingUniformJumpskirtHoS + - ClothingUniformJumpsuitHosFormal + - ClothingUniformJumpskirtHosFormal + - ClothingUniformJumpsuitHoSAlt + - ClothingUniformJumpskirtHoSAlt + - ClothingUniformJumpsuitHoSBlue + - ClothingUniformJumpsuitHoSGrey + - ClothingUniformJumpsuitHoSParadeMale + - ClothingUniformJumpskirtHoSParadeMale + - ClothingUniformJumpsuitSeniorOfficer + - ClothingUniformJumpskirtSeniorOfficer + - ClothingUniformJumpsuitPrisoner + - ClothingUniformJumpskirtPrisoner + - ClothingHeadHatBeretSecurity + - ClothingUniformJumpsuitSec + - ClothingUniformJumpskirtSec + - ClothingHeadHatBeretBrigmedic + - ClothingUniformJumpsuitBrigmedic + - ClothingUniformJumpskirtBrigmedic + - ClothingHeadHatBeretWarden + - ClothingHeadHatWarden + - ClothingUniformJumpsuitWarden + - ClothingUniformJumpskirtWarden + +- type: latheRecipePack + id: ClothingService + recipes: + - ClothingUniformJumpsuitBartender + - ClothingUniformJumpskirtBartender + - ClothingUniformJumpsuitChaplain + - ClothingUniformJumpskirtChaplain + - ClothingUniformJumpsuitChef + - ClothingUniformJumpskirtChef + - ClothingUniformJumpsuitClown + - ClothingUniformJumpsuitHydroponics + - ClothingUniformJumpskirtHydroponics + - ClothingUniformJumpsuitJanitor + - ClothingUniformJumpskirtJanitor + - ClothingUniformJumpsuitLawyerBlack + - ClothingUniformJumpsuitLibrarian + - ClothingUniformJumpskirtColorLightBrown + - ClothingUniformJumpsuitMime + - ClothingUniformJumpskirtMime + - ClothingUniformJumpsuitMusician + +- type: latheRecipePack + id: WinterCoats + recipes: + - ClothingOuterWinterCap + - ClothingOuterWinterCE + - ClothingOuterWinterCMO + - ClothingOuterWinterHoP + - ClothingOuterWinterHoSUnarmored + - ClothingOuterWinterWardenUnarmored + - ClothingOuterWinterQM + - ClothingOuterWinterRD + - ClothingOuterWinterMusician + - ClothingOuterWinterClown + - ClothingOuterWinterMime + - ClothingOuterWinterCoat + - ClothingOuterWinterJani + - ClothingOuterWinterBar + - ClothingOuterWinterChef + - ClothingOuterWinterHydro + - ClothingOuterWinterAtmos + - ClothingOuterWinterEngi + - ClothingOuterWinterCargo + - ClothingOuterWinterMiner + - ClothingOuterWinterMed + - ClothingOuterWinterPara + - ClothingOuterWinterChem + - ClothingOuterWinterGen + - ClothingOuterWinterViro + - ClothingOuterWinterSci + - ClothingOuterWinterRobo + - ClothingOuterWinterSec + +- type: latheRecipePack + id: Ties + recipes: + - ClothingNeckTieRed + - ClothingNeckTieDet + - ClothingNeckTieSci + +- type: latheRecipePack + id: Scarves + recipes: + - ClothingNeckScarfStripedGreen + - ClothingNeckScarfStripedBlue + - ClothingNeckScarfStripedRed + - ClothingNeckScarfStripedBrown + - ClothingNeckScarfStripedLightBlue + - ClothingNeckScarfStripedOrange + - ClothingNeckScarfStripedBlack + - ClothingNeckScarfStripedPurple + +- type: latheRecipePack + id: Carpets + recipes: + - Carpet + - CarpetBlack + - CarpetPink + - CarpetBlue + - CarpetGreen + - CarpetOrange + - CarpetPurple + - CarpetCyan + - CarpetWhite + +- type: latheRecipePack + id: ClothingCentComm + recipes: + - ClothingHeadHatCentcomcap + - ClothingHeadHatCentcom + - ClothingUniformJumpsuitCentcomAgent + - ClothingUniformJumpsuitCentcomFormal + - ClothingUniformJumpskirtCentcomFormalDress + - ClothingUniformJumpsuitCentcomOfficer + - ClothingUniformJumpsuitCentcomOfficial + +- type: latheRecipePack + id: ClothingSyndie + recipes: + - ClothingHeadHatSyndieMAA + - ClothingHeadHatSyndie + - ClothingUniformJumpsuitOperative + - ClothingUniformJumpskirtOperative + - ClothingUniformJumpsuitSyndieFormal + - ClothingUniformJumpskirtSyndieFormalDress + - ClothingHeadPyjamaSyndicateBlack + - ClothingUniformJumpsuitPyjamaSyndicateBlack + - ClothingHeadPyjamaSyndicatePink + - ClothingUniformJumpsuitPyjamaSyndicatePink + - ClothingHeadPyjamaSyndicateRed + - ClothingUniformJumpsuitPyjamaSyndicateRed + - ClothingOuterWinterCentcom + - ClothingOuterWinterSyndie + - ClothingOuterWinterSyndieCap + - BedsheetSyndie diff --git a/Resources/Prototypes/Recipes/Lathes/Packs/engineering.yml b/Resources/Prototypes/Recipes/Lathes/Packs/engineering.yml new file mode 100644 index 0000000000..63d529fe4c --- /dev/null +++ b/Resources/Prototypes/Recipes/Lathes/Packs/engineering.yml @@ -0,0 +1,87 @@ +## Static + +- type: latheRecipePack + id: ToolsStatic + recipes: + - Wirecutter + - Screwdriver + - Welder + - Wrench + - CrowbarGreen + - Multitool + - NetworkConfigurator + - Signaller + - SprayPainter + - FlashlightLantern + - HandheldGPSBasic + - TRayScanner + - UtilityBelt + - HandheldStationMap + - ClothingHeadHatWelding + - ClothingHeadHatCone + +- type: latheRecipePack + id: AtmosStatic + recipes: + - AirTank + - GasAnalyzer + +- type: latheRecipePack + id: ElectronicsStatic + recipes: + - IntercomElectronics + - FirelockElectronics + - DoorElectronics + - AirAlarmElectronics + - StationMapElectronics + - FireAlarmElectronics + - MailingUnitElectronics + - SignalTimerElectronics + - APCElectronics + - SMESMachineCircuitboard + - SubstationMachineCircuitboard + - WallmountSubstationElectronics + - CellRechargerCircuitboard + - WeaponCapacitorRechargerCircuitboard + - FreezerElectronics + +- type: latheRecipePack + id: EngineeringBoardsStatic + recipes: + - SpaceHeaterMachineCircuitBoard + +## Dynamic + +- type: latheRecipePack + id: AdvancedTools + recipes: + - PowerDrill + - WelderExperimental + - JawsOfLife + +- type: latheRecipePack + id: AtmosTools + recipes: + - HolofanProjector + +- type: latheRecipePack + id: EngineeringWeapons + recipes: + - WeaponParticleDecelerator + +- type: latheRecipePack + id: EngineeringBoards + recipes: + - ThermomachineFreezerMachineCircuitBoard + - HellfireFreezerMachineCircuitBoard + - PortableScrubberMachineCircuitBoard + - SolarControlComputerCircuitboard + - SolarTrackerElectronics + - GasRecyclerMachineCircuitboard + - PortableGeneratorPacmanMachineCircuitboard + - PortableGeneratorSuperPacmanMachineCircuitboard + - PortableGeneratorJrPacmanMachineCircuitboard + - EmitterCircuitboard + - TelecomServerCircuitboard + - SMESAdvancedMachineCircuitboard + - HolopadMachineCircuitboard diff --git a/Resources/Prototypes/Recipes/Lathes/Packs/medical.yml b/Resources/Prototypes/Recipes/Lathes/Packs/medical.yml new file mode 100644 index 0000000000..c92cb13820 --- /dev/null +++ b/Resources/Prototypes/Recipes/Lathes/Packs/medical.yml @@ -0,0 +1,101 @@ +## Static + +- type: latheRecipePack + id: TopicalsStatic + recipes: + - Brutepack + - Ointment + - Gauze + +- type: latheRecipePack + id: BasicChemistryStatic + recipes: + - Beaker + - LargeBeaker + - Syringe + - PillCanister + - HandLabeler + +- type: latheRecipePack + parent: BasicChemistryStatic + id: ChemistryStatic + recipes: + - Jug + - ChemistryEmptyBottle01 + - ClothingEyesGlassesChemical + +- type: latheRecipePack + id: SurgeryStatic + recipes: + - Scalpel + - Retractor + - Cautery + - Drill + - Saw + - Hemostat + +- type: latheRecipePack + id: MedicalStatic + recipes: + - Implanter + - Defibrillator + - HandheldHealthAnalyzer + - DiseaseSwab + - BodyBag + - WhiteCane + +- type: latheRecipePack + id: RollerBedsStatic + recipes: + - RollerBedSpawnFolded + - CheapRollerBedSpawnFolded + - EmergencyRollerBedSpawnFolded + +- type: latheRecipePack + id: MedicalClothingStatic + recipes: + - ClothingHandsGlovesLatex + - ClothingHandsGlovesNitrile + - ClothingMaskSterile + +# These are all empty +- type: latheRecipePack + id: EmptyMedkitsStatic + recipes: + - Medkit + - MedkitBurn + - MedkitToxin + - MedkitO2 + - MedkitBrute + - MedkitAdvanced + - MedkitRadiation + - MedkitCombat + +- type: latheRecipePack + id: MedicalBoardsStatic + recipes: + - ElectrolysisUnitMachineCircuitboard + - CentrifugeMachineCircuitboard + - ChemDispenserMachineCircuitboard + - ChemMasterMachineCircuitboard + - CondenserMachineCircuitBoard + - HotplateMachineCircuitboard + +## Dynamic + +# Shared with protolathe +- type: latheRecipePack + id: Chemistry + recipes: + - ChemicalPayload + - CryostasisBeaker + - SyringeCryostasis + - BluespaceBeaker + - SyringeBluespace + +- type: latheRecipePack + id: MedicalBoards + recipes: + - StasisBedMachineCircuitboard + - CryoPodMachineCircuitboard + - BiomassReclaimerMachineCircuitboard diff --git a/Resources/Prototypes/Recipes/Lathes/Packs/ore.yml b/Resources/Prototypes/Recipes/Lathes/Packs/ore.yml new file mode 100644 index 0000000000..c84436c0bd --- /dev/null +++ b/Resources/Prototypes/Recipes/Lathes/Packs/ore.yml @@ -0,0 +1,27 @@ +## Static + +- type: latheRecipePack + id: OreSmelting + recipes: + - SheetSteel + - SheetGlass1 + - SheetPlasma1 + - SheetUranium1 + - IngotGold1 + - IngotSilver1 + - MaterialBananium1 + - MaterialDiamond + +- type: latheRecipePack + id: RGlassSmelting + recipes: + - SheetRGlassRaw + - SheetPGlass1 + - SheetRPGlass1 + +- type: latheRecipePack + id: AdvancedSmelting + recipes: + - SheetPlasteel1 + - SheetUGlass1 + - SheetRUGlass1 diff --git a/Resources/Prototypes/Recipes/Lathes/Packs/robotics.yml b/Resources/Prototypes/Recipes/Lathes/Packs/robotics.yml new file mode 100644 index 0000000000..19bff4a94e --- /dev/null +++ b/Resources/Prototypes/Recipes/Lathes/Packs/robotics.yml @@ -0,0 +1,74 @@ +## Static + +- type: latheRecipePack + id: RoboticsStatic + recipes: + - MMI + - PositronicBrain + - SciFlash + - CyborgEndoskeleton + +- type: latheRecipePack + id: BorgModulesStatic + recipes: + - BorgModuleCable + - BorgModuleFireExtinguisher + - BorgModuleRadiationDetection + - BorgModuleTool + +- type: latheRecipePack + id: BorgLimbsStatic + recipes: + - LeftArmBorg + - RightArmBorg + - LeftLegBorg + - RightLegBorg + - LightHeadBorg + - TorsoBorg + +## Dynamic + +- type: latheRecipePack + id: Robotics + recipes: + - ProximitySensor + +- type: latheRecipePack + id: BorgModules + recipes: + - BorgModuleAdvancedCleaning + - BorgModuleAdvancedTool + - BorgModuleGPS + - BorgModuleArtifact + - BorgModuleAnomaly + - BorgModuleGardening + - BorgModuleHarvesting + - BorgModuleDefibrillator + - BorgModuleAdvancedTreatment + +- type: latheRecipePack + id: MechParts + recipes: + - RipleyHarness + - RipleyLArm + - RipleyRArm + - RipleyLLeg + - RipleyRLeg + - HonkerHarness + - HonkerLArm + - HonkerRArm + - HonkerLLeg + - HonkerRLeg + - HamtrHarness + - HamtrLArm + - HamtrRArm + - HamtrLLeg + - HamtrRLeg + - VimHarness + +- type: latheRecipePack + id: MechEquipment + recipes: + - MechEquipmentGrabber + - MechEquipmentHorn + - MechEquipmentGrabberSmall diff --git a/Resources/Prototypes/Recipes/Lathes/Packs/science.yml b/Resources/Prototypes/Recipes/Lathes/Packs/science.yml new file mode 100644 index 0000000000..42786937a7 --- /dev/null +++ b/Resources/Prototypes/Recipes/Lathes/Packs/science.yml @@ -0,0 +1,127 @@ +## Static + +- type: latheRecipePack + id: ScienceBoardsStatic + recipes: + - ProtolatheMachineCircuitboard + - AutolatheMachineCircuitboard + - CircuitImprinterMachineCircuitboard + - ExosuitFabricatorMachineCircuitboard + - CutterMachineCircuitboard + - BorgChargerCircuitboard + +- type: latheRecipePack + id: CircuitFloorsStatic + recipes: + - FloorGreenCircuit + - FloorBlueCircuit + - FloorRedCircuit + +## Dynamic + +- type: latheRecipePack + id: ScienceEquipment + recipes: + - AnomalyScanner + - NodeScanner + - AnomalyLocator + - AnomalyLocatorWide + - HoloprojectorField + - SignallerAdvanced + - DeviceQuantumSpinInverter + +- type: latheRecipePack + id: ScienceClothing + recipes: + - ClothingShoesBootsMagSci + - ClothingShoesBootsMoon + - ClothingShoesBootsSpeed + - ClothingBackpackHolding + - ClothingBackpackSatchelHolding + - ClothingBackpackDuffelHolding + +- type: latheRecipePack + id: PowerCells + recipes: + - PowerCellMicroreactor + - PowerCellHigh + +- type: latheRecipePack + id: ScienceWeapons + recipes: + - WeaponPistolCHIMP + - WeaponForceGun + - WeaponLaserSvalinn + - WeaponProtoKineticAccelerator + - WeaponTetherGun + - WeaponGauntletGorilla + +- type: latheRecipePack + id: FauxTiles + recipes: + - FauxTileAstroGrass + - FauxTileMowedAstroGrass + - FauxTileJungleAstroGrass + - FauxTileAstroIce + - FauxTileAstroSnow + - FauxTileAstroAsteroidSand + +# Only contains parts for making basic modular grenades, no actual explosives +- type: latheRecipePack + id: ScienceExplosives + recipes: + - ChemicalPayload + - FlashPayload + - TimerTrigger + - SignalTrigger + - VoiceTrigger + +- type: latheRecipePack + id: ScienceBoards + recipes: + - TurboItemRechargerCircuitboard + - AutolatheHyperConvectionMachineCircuitboard + - ProtolatheHyperConvectionMachineCircuitboard + - CircuitImprinterHyperConvectionMachineCircuitboard + - TechDiskComputerCircuitboard + - FlatpackerMachineCircuitboard + - SheetifierMachineCircuitboard + - PowerCageRechargerCircuitboard + - AnalysisComputerCircuitboard + - AnomalyVesselCircuitboard + - AnomalyVesselExperimentalCircuitboard + - AnomalySynchronizerCircuitboard + - APECircuitboard + - ArtifactAnalyzerMachineCircuitboard + - ArtifactCrusherMachineCircuitboard + +- type: latheRecipePack + id: CameraBoards + recipes: + - SurveillanceCameraRouterCircuitboard + - SurveillanceCameraMonitorCircuitboard + - SurveillanceWirelessCameraMonitorCircuitboard + - SurveillanceCameraWirelessRouterCircuitboard + - ComputerTelevisionCircuitboard + - SurveillanceWirelessCameraMovableCircuitboard + - SurveillanceWirelessCameraAnchoredCircuitboard + +- type: latheRecipePack + id: MechBoards + recipes: + - RipleyCentralElectronics + - RipleyPeripheralsElectronics + - HonkerCentralElectronics + - HonkerPeripheralsElectronics + - HonkerTargetingElectronics + - HamtrCentralElectronics + - HamtrPeripheralsElectronics + +- type: latheRecipePack + id: ShuttleBoards + recipes: + - ShuttleConsoleCircuitboard + - RadarConsoleCircuitboard + - ThrusterMachineCircuitboard + - GyroscopeMachineCircuitboard + - MiniGravityGeneratorCircuitboard diff --git a/Resources/Prototypes/Recipes/Lathes/Packs/security.yml b/Resources/Prototypes/Recipes/Lathes/Packs/security.yml new file mode 100644 index 0000000000..77f2131e71 --- /dev/null +++ b/Resources/Prototypes/Recipes/Lathes/Packs/security.yml @@ -0,0 +1,131 @@ +## Static recipes + +- type: latheRecipePack + id: SecurityEquipmentStatic + recipes: + - ClothingEyesHudSecurity + - ForensicPad + - Handcuffs + - TargetClown + - TargetHuman + - TargetSyndicate + - Zipties + +# Practice ammo/mags and practice weapons +- type: latheRecipePack + id: SecurityPracticeStatic + recipes: + - BoxShotgunPractice + - MagazineBoxLightRiflePractice + - MagazineBoxMagnumPractice + - MagazineBoxPistolPractice + - MagazineBoxRiflePractice + - WeaponDisablerPractice + - WeaponLaserCarbinePractice + - WeaponFlareGunSecurity + +# Shared between secfab and emagged autolathe +- type: latheRecipePack + id: SecurityAmmoStatic + recipes: + - BoxLethalshot + - BoxShotgunSlug + - MagazineBoxLightRifle + - MagazineBoxMagnum + - MagazineBoxPistol + - MagazineBoxRifle + - MagazineLightRifle + - MagazineLightRifleEmpty + - MagazinePistol + - MagazinePistolEmpty + - MagazinePistolSubMachineGun + - MagazinePistolSubMachineGunEmpty + - MagazinePistolSubMachineGunTopMounted + - MagazinePistolSubMachineGunTopMountedEmpty + - MagazineRifle + - MagazineRifleEmpty + - MagazineShotgun + - MagazineShotgunEmpty + - MagazineShotgunSlug + - SpeedLoaderMagnum + - SpeedLoaderMagnumEmpty + +- type: latheRecipePack + id: SecurityWeaponsStatic + recipes: + - Flash + - Stunbaton + - CombatKnife + - RiotShield + +## Dynamic recipes + +- type: latheRecipePack + id: SecurityEquipment + recipes: + - ClothingBackpackElectropack + - HoloprojectorSecurity + - PortableRecharger + - PowerCageHigh + - PowerCageMedium + - PowerCageSmall + - TelescopicShield + +- type: latheRecipePack + id: SecurityBoards + recipes: + - ShuttleGunDusterCircuitboard + - ShuttleGunFriendshipCircuitboard + - ShuttleGunPerforatorCircuitboard + - ShuttleGunSvalinnMachineGunCircuitboard + +- type: latheRecipePack + parent: + - ScienceExplosives # sec gets everything for modular grenade making that sci does + id: SecurityExplosives + recipes: + - ExplosivePayload + - GrenadeBlast + - GrenadeEMP + - GrenadeFlash + - MagazineGrenadeEmpty + +# Shared between secfab and emagged protolathe +- type: latheRecipePack + id: SecurityAmmo + recipes: + - BoxBeanbag + - BoxShotgunIncendiary + - BoxShotgunUranium + - BoxShellTranquilizer + - MagazineBoxLightRifleIncendiary + - MagazineBoxLightRifleUranium + - MagazineBoxMagnumIncendiary + - MagazineBoxMagnumUranium + - MagazineBoxPistolIncendiary + - MagazineBoxPistolUranium + - MagazineBoxRifleIncendiary + - MagazineBoxRifleUranium + - MagazineLightRifleIncendiary + - MagazineLightRifleUranium + - MagazinePistolIncendiary + - MagazinePistolUranium + - MagazinePistolSubMachineGunIncendiary + - MagazinePistolSubMachineGunUranium + - MagazineRifleIncendiary + - MagazineRifleUranium + - MagazineShotgunBeanbag + - MagazineShotgunIncendiary + - SpeedLoaderMagnumIncendiary + - SpeedLoaderMagnumUranium + +- type: latheRecipePack + id: SecurityWeapons + recipes: + - Truncheon + - WeaponAdvancedLaser + - WeaponDisabler + - WeaponDisablerSMG + - WeaponLaserCannon + - WeaponLaserCarbine + - WeaponXrayCannon diff --git a/Resources/Prototypes/Recipes/Lathes/Packs/service.yml b/Resources/Prototypes/Recipes/Lathes/Packs/service.yml new file mode 100644 index 0000000000..bbf5ec0eb1 --- /dev/null +++ b/Resources/Prototypes/Recipes/Lathes/Packs/service.yml @@ -0,0 +1,62 @@ +## Static + +- type: latheRecipePack + id: ServiceStatic + recipes: + - Bucket + - DrinkMug + - DrinkMugMetal + - DrinkGlass + - DrinkShotGlass + - DrinkGlassCoupeShaped + - CustomDrinkJug + - FoodPlate + - FoodPlateSmall + - FoodPlatePlastic + - FoodPlateSmallPlastic + - FoodBowlBig + - FoodPlateTin + - FoodPlateMuffinTin + - FoodKebabSkewer + - SprayBottle + - MopItem + - Holoprojector + - WetFloorSign + +- type: latheRecipePack + id: ServiceBoardsStatic + recipes: + - BiogeneratorMachineCircuitboard + - UniformPrinterMachineCircuitboard + - MicrowaveMachineCircuitboard + - ReagentGrinderMachineCircuitboard + - ElectricGrillMachineCircuitboard + - BoozeDispenserMachineCircuitboard + - SodaDispenserMachineCircuitboard + +## Dynamic + +- type: latheRecipePack + id: Janitor + recipes: + - AdvMopItem + - WeaponSprayNozzle + - ClothingBackpackWaterTank + - MegaSprayBottle + +- type: latheRecipePack + id: Instruments + recipes: + - SynthesizerInstrument + +- type: latheRecipePack + id: ServiceBoards + recipes: + - BiofabricatorMachineCircuitboard + - FatExtractorMachineCircuitboard + - HydroponicsTrayMachineCircuitboard # roundstart gear being unlocked roundstart when + - SeedExtractorMachineCircuitboard # ^ + - MassMediaCircuitboard + - ReagentGrinderIndustrialMachineCircuitboard + - JukeboxCircuitBoard + - DawInstrumentMachineCircuitboard diff --git a/Resources/Prototypes/Recipes/Lathes/Packs/shared.yml b/Resources/Prototypes/Recipes/Lathes/Packs/shared.yml new file mode 100644 index 0000000000..44ba33cf8b --- /dev/null +++ b/Resources/Prototypes/Recipes/Lathes/Packs/shared.yml @@ -0,0 +1,51 @@ +## Static + +- type: latheRecipePack + id: MaterialsStatic + recipes: + - SheetRGlass + +- type: latheRecipePack + id: PartsStatic + recipes: + - Igniter + - ModularReceiver + - MicroManipulatorStockPart + - MatterBinStockPart + - CapacitorStockPart + - ConveyorBeltAssembly + +- type: latheRecipePack + id: LightsStatic + recipes: + - LightTube + - LedLightTube + - SodiumLightTube + - ExteriorLightTube + - LightBulb + - LedLightBulb + - DimLightBulb + - WarmLightBulb + +- type: latheRecipePack + id: PowerCellsStatic + recipes: + - PowerCellSmall + - PowerCellMedium + +- type: latheRecipePack + id: CablesStatic + recipes: + - CableStack + - CableMVStack + - CableHVStack + +## Dynamic + +# Things you'd expect sci salv and engi to make use of +- type: latheRecipePack + id: Equipment + recipes: + - HandHeldMassScanner + - ClothingMaskWeldingGas + - SignallerAdvanced diff --git a/Resources/Prototypes/Recipes/Lathes/Packs/sheetifier.yml b/Resources/Prototypes/Recipes/Lathes/Packs/sheetifier.yml new file mode 100644 index 0000000000..18aaef55c6 --- /dev/null +++ b/Resources/Prototypes/Recipes/Lathes/Packs/sheetifier.yml @@ -0,0 +1,7 @@ +## Static + +- type: latheRecipePack + id: SheetifierStatic + recipes: + - MaterialSheetMeat + - SheetPaper diff --git a/Resources/Prototypes/Recipes/Lathes/Packs/tiles.yml b/Resources/Prototypes/Recipes/Lathes/Packs/tiles.yml new file mode 100644 index 0000000000..51db1dc861 --- /dev/null +++ b/Resources/Prototypes/Recipes/Lathes/Packs/tiles.yml @@ -0,0 +1,49 @@ +## Static + +- type: latheRecipePack + id: FloorTilesStatic + recipes: + - FloorTileItemDark + - FloorTileItemDarkDiagonalMini + - FloorTileItemDarkDiagonal + - FloorTileItemDarkHerringbone + - FloorTileItemDarkMini + - FloorTileItemDarkMono + - FloorTileItemDarkPavement + - FloorTileItemDarkPavementVertical + - FloorTileItemDarkOffset + - FloorTileItemSteelCheckerDark + - FloorTileItemSteel + - FloorTileItemSteelOffset + - FloorTileItemSteelDiagonalMini + - FloorTileItemSteelDiagonal + - FloorTileItemSteelHerringbone + - FloorTileItemSteelMini + - FloorTileItemSteelMono + - FloorTileItemSteelPavement + - FloorTileItemSteelPavementVertical + - FloorTileItemWhite + - FloorTileItemWhiteOffset + - FloorTileItemWhiteDiagonalMini + - FloorTileItemWhiteDiagonal + - FloorTileItemWhiteHerringbone + - FloorTileItemWhiteMini + - FloorTileItemWhiteMono + - FloorTileItemWhitePavement + - FloorTileItemWhitePavementVertical + - FloorTileItemSteelCheckerLight + - FloorTileItemGratingMaint + - FloorTileItemTechmaint + - FloorTileItemSteelMaint + - FloorTileItemWood + - FloorTileItemWoodLarge + - FloorTileItemWoodPattern + - FloorTileItemConcrete + - FloorTileItemConcreteMono + - FloorTileItemConcreteSmooth + - FloorTileItemGrayConcrete + - FloorTileItemGrayConcreteMono + - FloorTileItemGrayConcreteSmooth + - FloorTileItemOldConcrete + - FloorTileItemOldConcreteMono + - FloorTileItemOldConcreteSmooth diff --git a/Resources/Prototypes/Recipes/Lathes/security.yml b/Resources/Prototypes/Recipes/Lathes/security.yml index f6f303e5e3..c72701711b 100644 --- a/Resources/Prototypes/Recipes/Lathes/security.yml +++ b/Resources/Prototypes/Recipes/Lathes/security.yml @@ -245,6 +245,23 @@ materials: Steel: 300 +- type: latheRecipe + parent: BaseAmmoRecipe + id: MagazinePistolSubMachineGunUranium + result: MagazinePistolSubMachineGunUranium + materials: + Steel: 25 + Plastic: 250 + Uranium: 250 + +- type: latheRecipe + parent: BaseAmmoRecipe + id: MagazinePistolSubMachineGunIncendiary + result: MagazinePistolSubMachineGunIncendiary + materials: + Steel: 25 + Plastic: 275 + - type: latheRecipe parent: BaseEmptyAmmoRecipe id: MagazinePistolSubMachineGunTopMountedEmpty diff --git a/Resources/Prototypes/Research/arsenal.yml b/Resources/Prototypes/Research/arsenal.yml index 553258fdb3..6cecc49035 100644 --- a/Resources/Prototypes/Research/arsenal.yml +++ b/Resources/Prototypes/Research/arsenal.yml @@ -27,6 +27,7 @@ - BoxShotgunIncendiary - MagazineRifleIncendiary - MagazinePistolIncendiary + - MagazinePistolSubMachineGunIncendiary - MagazineLightRifleIncendiary - SpeedLoaderMagnumIncendiary - MagazineShotgunIncendiary @@ -74,6 +75,7 @@ recipeUnlocks: - MagazineRifleUranium - MagazinePistolUranium + - MagazinePistolSubMachineGunUranium - MagazineLightRifleUranium - SpeedLoaderMagnumUranium - MagazineBoxPistolUranium diff --git a/Resources/Prototypes/Research/experimental.yml b/Resources/Prototypes/Research/experimental.yml index 34443e78f0..be19a11702 100644 --- a/Resources/Prototypes/Research/experimental.yml +++ b/Resources/Prototypes/Research/experimental.yml @@ -11,7 +11,6 @@ cost: 5000 recipeUnlocks: - ProximitySensor - - ExosuitFabricatorMachineCircuitboard - type: technology id: BasicAnomalousResearch -- 2.51.2