case LatheUpdateState msg:
if (_menu != null)
_menu.Recipes = msg.Recipes;
- _menu?.PopulateRecipes(Owner);
+ _menu?.PopulateRecipes();
+ _menu?.UpdateCategories();
_menu?.PopulateQueueList(msg.Queue);
_menu?.SetQueueInfo(msg.CurrentlyProducing);
break;
PlaceHolder="{Loc 'lathe-menu-search-designs'}"
HorizontalExpand="True">
</LineEdit>
- <Button
- Name="FilterButton"
- Text="{Loc 'lathe-menu-search-filter'}"
- TextAlign="Center"
- Margin="5 0 0 0"
- Disabled="True"
- StyleClasses="ButtonSquare">
- </Button>
+ <OptionButton
+ Name="FilterOption"
+ MinWidth="100"
+ StyleClasses="ButtonSquare"/>
</BoxContainer>
<BoxContainer Orientation="Vertical"
MinHeight="225"
using System.Text;
using Content.Client.Materials;
using Content.Shared.Lathe;
+using Content.Shared.Lathe.Prototypes;
using Content.Shared.Materials;
using Content.Shared.Research.Prototypes;
using Robust.Client.AutoGenerated;
{
[Dependency] private readonly IEntityManager _entityManager = default!;
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
+ private EntityUid _owner;
private readonly SpriteSystem _spriteSystem;
private readonly LatheSystem _lathe;
private readonly MaterialStorageSystem _materialStorage;
public List<ProtoId<LatheRecipePrototype>> Recipes = new();
+ public List<ProtoId<LatheCategoryPrototype>>? Categories;
+
+ public ProtoId<LatheCategoryPrototype>? CurrentCategory;
+
public LatheMenu(LatheBoundUserInterface owner)
{
+ _owner = owner.Owner;
RobustXamlLoader.Load(this);
IoCManager.InjectDependencies(this);
SearchBar.OnTextChanged += _ =>
{
- PopulateRecipes(owner.Owner);
+ PopulateRecipes();
};
AmountLineEdit.OnTextChanged += _ =>
{
- PopulateRecipes(owner.Owner);
+ PopulateRecipes();
};
+ FilterOption.OnItemSelected += OnItemSelected;
+
ServerListButton.OnPressed += a => OnServerListButtonPressed?.Invoke(a);
if (_entityManager.TryGetComponent<LatheComponent>(owner.Owner, out var latheComponent))
/// <summary>
/// Populates the list of all the recipes
/// </summary>
- /// <param name="lathe"></param>
- public void PopulateRecipes(EntityUid lathe)
+ public void PopulateRecipes()
{
- if (!_entityManager.TryGetComponent<LatheComponent>(lathe, out var component))
+ if (!_entityManager.TryGetComponent<LatheComponent>(_owner, out var component))
return;
var recipesToShow = new List<LatheRecipePrototype>();
if (!_prototypeManager.TryIndex(recipe, out var proto))
continue;
+ if (CurrentCategory != null && proto.Category != CurrentCategory)
+ continue;
+
if (SearchBar.Text.Trim().Length != 0)
{
if (proto.Name.ToLowerInvariant().Contains(SearchBar.Text.Trim().ToLowerInvariant()))
if (!int.TryParse(AmountLineEdit.Text, out var quantity) || quantity <= 0)
quantity = 1;
+ var sortedRecipesToShow = recipesToShow.OrderBy(p => p.Name);
RecipeList.Children.Clear();
- foreach (var prototype in recipesToShow)
+ foreach (var prototype in sortedRecipesToShow)
{
StringBuilder sb = new();
var first = true;
sb.Append(Loc.GetString("lathe-menu-tooltip-display", ("material", name), ("amount", amountText)));
}
- sb.Append('\n');
- sb.Append(Loc.GetString("lathe-menu-description-display", ("description", prototype.Description)));
+ if (!string.IsNullOrWhiteSpace(prototype.Description))
+ {
+ sb.Append('\n');
+ sb.Append(Loc.GetString("lathe-menu-description-display", ("description", prototype.Description)));
+ }
var icon = prototype.Icon == null
? _spriteSystem.GetPrototypeIcon(prototype.Result).Default
: _spriteSystem.Frame0(prototype.Icon);
- var canProduce = _lathe.CanProduce(lathe, prototype, quantity);
+ var canProduce = _lathe.CanProduce(_owner, prototype, quantity);
var control = new RecipeControl(prototype, sb.ToString(), canProduce, icon);
control.OnButtonPressed += s =>
}
}
+ public void UpdateCategories()
+ {
+ var currentCategories = new List<ProtoId<LatheCategoryPrototype>>();
+ foreach (var recipeId in Recipes)
+ {
+ var recipe = _prototypeManager.Index(recipeId);
+
+ if (recipe.Category == null)
+ continue;
+
+ if (currentCategories.Contains(recipe.Category.Value))
+ continue;
+
+ currentCategories.Add(recipe.Category.Value);
+ }
+
+ if (Categories != null && (Categories.Count == currentCategories.Count || !Categories.All(currentCategories.Contains)))
+ return;
+
+ Categories = currentCategories;
+ var sortedCategories = currentCategories
+ .Select(p => _prototypeManager.Index(p))
+ .OrderBy(p => Loc.GetString(p.Name))
+ .ToList();
+
+ FilterOption.Clear();
+ FilterOption.AddItem(Loc.GetString("lathe-menu-category-all"), -1);
+ foreach (var category in sortedCategories)
+ {
+ FilterOption.AddItem(Loc.GetString(category.Name), Categories.IndexOf(category.ID));
+ }
+
+ FilterOption.SelectId(-1);
+ }
+
/// <summary>
/// Populates the build queue list with all queued items
/// </summary>
: _spriteSystem.Frame0(recipe.Icon);
NameLabel.Text = $"{recipe.Name}";
}
+
+ private void OnItemSelected(OptionButton.ItemSelectedEventArgs obj)
+ {
+ FilterOption.SelectId(obj.Id);
+ if (obj.Id == -1)
+ {
+ CurrentCategory = null;
+ }
+ else
+ {
+ CurrentCategory = Categories?[obj.Id];
+ }
+ PopulateRecipes();
+ }
}
-using Content.Shared.Research.Prototypes;
+using Content.Client.Message;
using Robust.Client.AutoGenerated;
-using Robust.Client.Graphics;
using Robust.Client.UserInterface;
using Robust.Client.UserInterface.XAML;
-using Robust.Shared.Graphics;
namespace Content.Client.Lathe.UI;
[GenerateTypedNameReferences]
public sealed partial class RecipeTooltip : Control
{
-
public RecipeTooltip(string tooltip)
{
RobustXamlLoader.Load(this);
- RecipeTooltipLabel.SetMessage(tooltip);
+ RecipeTooltipLabel.SetMarkup(tooltip);
}
}
--- /dev/null
+using Content.Shared.Research.Prototypes;
+using Robust.Shared.Prototypes;
+
+namespace Content.Shared.Lathe.Prototypes;
+
+/// <summary>
+/// This is a prototype for a category for <see cref="LatheRecipePrototype"/>
+/// </summary>
+[Prototype]
+public sealed partial class LatheCategoryPrototype : IPrototype
+{
+ /// <inheritdoc/>
+ [IdDataField]
+ public string ID { get; } = default!;
+
+ /// <summary>
+ /// A localized string used in the UI
+ /// </summary>
+ [DataField]
+ public LocId Name;
+}
+using Content.Shared.Lathe.Prototypes;
using Content.Shared.Materials;
using Robust.Shared.Prototypes;
using Robust.Shared.Serialization;
[DataField("materials", customTypeSerializer: typeof(PrototypeIdDictionarySerializer<int, MaterialPrototype>))]
private Dictionary<string, int> _requiredMaterials = new();
+ //todo make these function calls because we're eating tons of resolves here.
/// <summary>
/// Name displayed in the lathe GUI.
/// </summary>
{
get
{
- if (_name.Trim().Length != 0) return _name;
+ if (_name.Trim().Length != 0)
+ return _name;
var protoMan = IoCManager.Resolve<IPrototypeManager>();
protoMan.TryIndex(Result, out EntityPrototype? prototype);
if (prototype?.Name != null)
{
get
{
- if (_description.Trim().Length != 0) return _description;
+ if (_description.Trim().Length != 0)
+ return _description;
var protoMan = IoCManager.Resolve<IPrototypeManager>();
protoMan.TryIndex(Result, out EntityPrototype? prototype);
if (prototype?.Description != null)
[DataField("applyMaterialDiscount")]
public bool ApplyMaterialDiscount = true;
+
+ /// <summary>
+ /// A category used for visually sorting lathe recipes in the UI.
+ /// </summary>
+ [DataField]
+ public ProtoId<LatheCategoryPrototype>? Category;
}
}
--- /dev/null
+lathe-category-ammo = Ammo
+lathe-category-circuitry = Circuitry
+lathe-category-lights = Lights
+lathe-category-mechs = Mechs
+lathe-category-parts = Parts
+lathe-category-robotics = Robotics
+lathe-category-tools = Tools
+lathe-category-weapons = Weapons
lathe-menu-server-list = Server list
lathe-menu-sync = Sync
lathe-menu-search-designs = Search designs
-lathe-menu-search-filter = Filter
+lathe-menu-category-all = All
+lathe-menu-search-filter = Filter:
lathe-menu-amount = Amount:
lathe-menu-material-display = {$material} ({$amount})
lathe-menu-tooltip-display = {$amount} of {$material}
-lathe-menu-description-display = {$description}
+lathe-menu-description-display = [italic]{$description}[/italic]
lathe-menu-material-amount = { $amount ->
[1] {NATURALFIXED($amount, 2)} {$unit}
*[other] {NATURALFIXED($amount, 2)} {MAKEPLURAL($unit)}
- type: latheRecipe
id: CapacitorStockPart
result: CapacitorStockPart
+ category: Parts
completetime: 1
materials:
Steel: 50
- type: latheRecipe
id: MatterBinStockPart
result: MatterBinStockPart
+ category: Parts
completetime: 1
materials:
Steel: 50
- type: latheRecipe
id: MicroManipulatorStockPart
result: MicroManipulatorStockPart
+ category: Parts
completetime: 1
materials:
Steel: 50
--- /dev/null
+- type: latheCategory
+ id: Ammo
+ name: lathe-category-ammo
+
+- type: latheCategory
+ id: Circuitry
+ name: lathe-category-circuitry
+
+- type: latheCategory
+ id: Lights
+ name: lathe-category-lights
+
+- type: latheCategory
+ id: Mech
+ name: lathe-category-mechs
+
+- type: latheCategory
+ id: Parts
+ name: lathe-category-parts
+
+- type: latheCategory
+ id: Robotics
+ name: lathe-category-robotics
+
+- type: latheCategory
+ id: Tools
+ name: lathe-category-tools
+
+- type: latheCategory
+ id: Weapons
+ name: lathe-category-weapons
- type: latheRecipe
id: TimerTrigger
result: TimerTrigger
+ category: Parts
completetime: 2
materials:
Steel: 300
- type: latheRecipe
id: SignalTrigger
result: SignalTrigger
+ category: Parts
completetime: 2
materials:
Steel: 300
- type: latheRecipe
id: VoiceTrigger
result: VoiceTrigger
+ category: Parts
completetime: 2
materials:
Steel: 300
- type: latheRecipe
id: Igniter
result: Igniter
+ category: Parts
completetime: 2
materials:
Steel: 300
- type: latheRecipe
id: ChemicalPayload
result: ChemicalPayload
+ category: Weapons
completetime: 2
materials:
Steel: 200
- type: latheRecipe
id: FlashPayload
result: FlashPayload
+ category: Weapons
completetime: 2
materials:
Steel: 50
- type: latheRecipe
id: ExplosivePayload
result: ExplosivePayload
+ category: Weapons
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: Signaller
result: RemoteSignaller
+ category: Parts
completetime: 2
materials:
Steel: 100
- type: latheRecipe
id: AnomalyLocator
result: AnomalyLocatorEmpty
+ category: Tools
completetime: 3
materials:
Steel: 400
- type: latheRecipe
id: AnomalyLocatorWide
result: AnomalyLocatorWideEmpty
+ category: Tools
completetime: 3
materials:
Steel: 400
- type: latheRecipe
id: AnomalyScanner
result: AnomalyScanner
+ category: Tools
completetime: 2
materials:
Plastic: 200
- type: latheRecipe
id: WeaponPistolCHIMP
result: WeaponPistolCHIMP
+ category: Tools
completetime: 5
materials:
Steel: 500
- type: latheRecipe
id: WeaponGauntletGorilla
result: WeaponGauntletGorilla
+ category: Tools
completetime: 5
materials:
Steel: 1500
- type: latheRecipe
id: WeaponCrusher
result: WeaponCrusher
+ category: Weapons
completetime: 5
materials:
Steel: 1000
- type: latheRecipe
id: WeaponCrusherDagger
result: WeaponCrusherDagger
+ category: Weapons
completetime: 5
materials:
Steel: 500
- type: latheRecipe
id: WeaponCrusherGlaive
result: WeaponCrusherGlaive
+ category: Weapons
completetime: 5
materials:
Steel: 1500
- type: latheRecipe
id: WeaponForceGun
result: WeaponForceGun
+ category: Tools
completetime: 5
materials:
Steel: 500
- type: latheRecipe
id: WeaponProtoKineticAccelerator
result: WeaponProtoKineticAccelerator
+ category: Weapons
completetime: 5
materials:
Steel: 1000
- type: latheRecipe
id: WeaponTetherGun
result: WeaponTetherGun
+ category: Tools
completetime: 5
materials:
Steel: 500
- type: latheRecipe
id: WeaponGrapplingGun
result: WeaponGrapplingGun
+ category: Tools
completetime: 5
materials:
Steel: 500
- type: latheRecipe
id: FirelockElectronics
result: FirelockElectronics
+ category: Circuitry
completetime: 2
materials:
Steel: 100
- type: latheRecipe
id: MailingUnitElectronics
result: MailingUnitElectronics
+ category: Circuitry
completetime: 4
materials:
Steel: 50
- type: latheRecipe
id: CellRechargerCircuitboard
result: CellRechargerCircuitboard
+ category: Circuitry
completetime: 2
materials:
Steel: 50
- type: latheRecipe
id: BorgChargerCircuitboard
result: BorgChargerCircuitboard
+ category: Circuitry
completetime: 2
materials:
Steel: 50
- type: latheRecipe
id: WeaponCapacitorRechargerCircuitboard
result: WeaponCapacitorRechargerCircuitboard
+ category: Circuitry
completetime: 2
materials:
Steel: 50
- type: latheRecipe
id: TurboItemRechargerCircuitboard
result: TurboItemRechargerCircuitboard
+ category: Circuitry
completetime: 2
materials:
Steel: 500
- type: latheRecipe
id: DoorElectronics
result: DoorElectronics
+ category: Circuitry
completetime: 2
materials:
Steel: 50
- type: latheRecipe
id: AirAlarmElectronics
result: AirAlarmElectronics
+ category: Circuitry
completetime: 2
materials:
Steel: 100
- type: latheRecipe
id: StationMapElectronics
result: StationMapCircuitboard
+ category: Circuitry
completetime: 2
materials:
Steel: 50
- type: latheRecipe
id: IntercomElectronics
result: IntercomElectronics
+ category: Circuitry
completetime: 2
materials:
Steel: 50
- type: latheRecipe
id: FireAlarmElectronics
result: FireAlarmElectronics
+ category: Circuitry
completetime: 2
materials:
Steel: 100
- type: latheRecipe
id: SignalTimerElectronics
result: SignalTimerElectronics
+ category: Circuitry
completetime: 2
materials:
Steel: 50
- type: latheRecipe
id: CloningPodMachineCircuitboard
result: CloningPodMachineCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: ThermomachineFreezerMachineCircuitBoard
result: ThermomachineFreezerMachineCircuitBoard
+ category: Circuitry
completetime: 4
materials:
Steel: 150
- type: latheRecipe
id: HellfireFreezerMachineCircuitBoard
result: HellfireFreezerMachineCircuitBoard
+ category: Circuitry
completetime: 4
materials:
Steel: 150
- type: latheRecipe
id: CondenserMachineCircuitBoard
result: CondenserMachineCircuitBoard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: PortableScrubberMachineCircuitBoard
result: PortableScrubberMachineCircuitBoard
+ category: Circuitry
completetime: 4
materials:
Steel: 150
- type: latheRecipe
id: MedicalScannerMachineCircuitboard
result: MedicalScannerMachineCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: CryoPodMachineCircuitboard
result: CryoPodMachineCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: ChemMasterMachineCircuitboard
result: ChemMasterMachineCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: ChemDispenserMachineCircuitboard
result: ChemDispenserMachineCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: BiomassReclaimerMachineCircuitboard
result: BiomassReclaimerMachineCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: BiofabricatorMachineCircuitboard
result: BiofabricatorMachineCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: HydroponicsTrayMachineCircuitboard
result: HydroponicsTrayMachineCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: AutolatheMachineCircuitboard
result: AutolatheMachineCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: ProtolatheMachineCircuitboard
result: ProtolatheMachineCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: AutolatheHyperConvectionMachineCircuitboard
result: AutolatheHyperConvectionMachineCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: ProtolatheHyperConvectionMachineCircuitboard
result: ProtolatheHyperConvectionMachineCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: CircuitImprinterMachineCircuitboard
result: CircuitImprinterMachineCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: ExosuitFabricatorMachineCircuitboard
result: ExosuitFabricatorMachineCircuitboard
+ category: Circuitry
completetime: 5
materials:
Steel: 100
- type: latheRecipe
id: UniformPrinterMachineCircuitboard
result: UniformPrinterMachineCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: VaccinatorMachineCircuitboard
result: VaccinatorMachineCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: DiagnoserMachineCircuitboard
result: DiagnoserMachineCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: ArtifactAnalyzerMachineCircuitboard
result: ArtifactAnalyzerMachineCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: TraversalDistorterMachineCircuitboard
result: TraversalDistorterMachineCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: ArtifactCrusherMachineCircuitboard
result: ArtifactCrusherMachineCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: AnomalyVesselCircuitboard
result: AnomalyVesselCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: AnomalyVesselExperimentalCircuitboard
result: AnomalyVesselExperimentalCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: AnomalySynchronizerCircuitboard
result: AnomalySynchronizerCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: APECircuitboard
result: APECircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: ReagentGrinderMachineCircuitboard
result: ReagentGrinderMachineCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: HotplateMachineCircuitboard
result: HotplateMachineCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: AnalysisComputerCircuitboard
result: AnalysisComputerCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: TechDiskComputerCircuitboard
result: TechDiskComputerCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: ShuttleConsoleCircuitboard
result: ShuttleConsoleCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: RadarConsoleCircuitboard
result: RadarConsoleCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: DawInstrumentMachineCircuitboard
result: DawInstrumentMachineCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: StasisBedMachineCircuitboard
result: StasisBedMachineCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: ElectrolysisUnitMachineCircuitboard
result: ElectrolysisUnitMachineCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: CentrifugeMachineCircuitboard
result: CentrifugeMachineCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: MaterialReclaimerMachineCircuitboard
result: MaterialReclaimerMachineCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: OreProcessorMachineCircuitboard
result: OreProcessorMachineCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: OreProcessorIndustrialMachineCircuitboard
result: OreProcessorIndustrialMachineCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: RipleyCentralElectronics
result: RipleyCentralElectronics
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: RipleyPeripheralsElectronics
result: RipleyPeripheralsElectronics
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: HonkerCentralElectronics
result: HonkerCentralElectronics
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: HonkerPeripheralsElectronics
result: HonkerPeripheralsElectronics
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: HonkerTargetingElectronics
result: HonkerTargetingElectronics
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: HamtrCentralElectronics
result: HamtrCentralElectronics
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: HamtrPeripheralsElectronics
result: HamtrPeripheralsElectronics
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: APCElectronics
result: APCElectronics
+ category: Circuitry
completetime: 2
materials:
Steel: 50
- type: latheRecipe
id: SubstationMachineCircuitboard
result: SubstationMachineCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 50
- type: latheRecipe
id: WallmountSubstationElectronics
result: WallmountSubstationElectronics
+ category: Circuitry
completetime: 4
materials:
Steel: 50
- type: latheRecipe
id: SMESMachineCircuitboard
result: SMESMachineCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: PortableGeneratorPacmanMachineCircuitboard
result: PortableGeneratorPacmanMachineCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 50
- type: latheRecipe
id: PortableGeneratorSuperPacmanMachineCircuitboard
result: PortableGeneratorSuperPacmanMachineCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 50
- type: latheRecipe
id: PortableGeneratorJrPacmanMachineCircuitboard
result: PortableGeneratorJrPacmanMachineCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 50
- type: latheRecipe
id: WallmountGeneratorElectronics
result: WallmountGeneratorElectronics
+ category: Circuitry
completetime: 4
materials:
Steel: 50
- type: latheRecipe
id: WallmountGeneratorAPUElectronics
result: WallmountGeneratorAPUElectronics
+ category: Circuitry
completetime: 4
materials:
Steel: 50
- type: latheRecipe
id: SolarControlComputerCircuitboard
result: SolarControlComputerCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: SolarTrackerElectronics
result: SolarTrackerElectronics
+ category: Circuitry
completetime: 4
materials:
Steel: 150
- type: latheRecipe
id: PowerComputerCircuitboard
result: PowerComputerCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: CloningConsoleComputerCircuitboard
result: CloningConsoleComputerCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: MicrowaveMachineCircuitboard
result: MicrowaveMachineCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: ElectricGrillMachineCircuitboard
result: ElectricGrillMachineCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: FatExtractorMachineCircuitboard
result: FatExtractorMachineCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: FlatpackerMachineCircuitboard
result: FlatpackerMachineCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: SheetifierMachineCircuitboard
result: SheetifierMachineCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: SurveillanceCameraRouterCircuitboard
result: SurveillanceCameraRouterCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: SurveillanceCameraWirelessRouterCircuitboard
result: SurveillanceCameraWirelessRouterCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: SurveillanceWirelessCameraAnchoredCircuitboard
result: SurveillanceWirelessCameraAnchoredCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: SurveillanceWirelessCameraMovableCircuitboard
result: SurveillanceWirelessCameraMovableCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: SurveillanceCameraMonitorCircuitboard
result: SurveillanceCameraMonitorCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: SurveillanceWirelessCameraMonitorCircuitboard
result: SurveillanceWirelessCameraMonitorCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: ComputerTelevisionCircuitboard
result: ComputerTelevisionCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: EmitterCircuitboard
result: EmitterCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: ThrusterMachineCircuitboard
result: ThrusterMachineCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: GyroscopeMachineCircuitboard
result: GyroscopeMachineCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: GasRecyclerMachineCircuitboard
result: GasRecyclerMachineCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: SeedExtractorMachineCircuitboard
result: SeedExtractorMachineCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: BoozeDispenserMachineCircuitboard
result: BoozeDispenserMachineCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: CargoTelepadMachineCircuitboard
result: CargoTelepadMachineCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: SodaDispenserMachineCircuitboard
result: SodaDispenserMachineCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: TelecomServerCircuitboard
result: TelecomServerCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: MassMediaCircuitboard
result: ComputerMassMediaCircuitboard
+ category: Circuitry
completetime: 4
materials:
Steel: 100
- type: latheRecipe
id: MiniGravityGeneratorCircuitboard
result: MiniGravityGeneratorCircuitboard
+ category: Circuitry
completetime: 6
materials:
Steel: 100
- type: latheRecipe
id: RipleyHarness
result: RipleyHarness
+ category: Mech
completetime: 10
materials:
Steel: 1500
- type: latheRecipe
id: RipleyLArm
result: RipleyLArm
+ category: Mech
completetime: 10
materials:
Steel: 1000
- type: latheRecipe
id: RipleyLLeg
result: RipleyLLeg
+ category: Mech
completetime: 10
materials:
Steel: 1000
- type: latheRecipe
id: RipleyRLeg
result: RipleyRLeg
+ category: Mech
completetime: 10
materials:
Steel: 1000
- type: latheRecipe
id: RipleyRArm
result: RipleyRArm
+ category: Mech
completetime: 10
materials:
Steel: 1000
- type: latheRecipe
id: MechEquipmentGrabber
result: MechEquipmentGrabber
+ category: Mech
completetime: 10
materials:
Steel: 500
- type: latheRecipe
id: HonkerHarness
result: HonkerHarness
+ category: Mech
completetime: 10
materials:
Steel: 3000
- type: latheRecipe
id: HonkerLArm
result: HonkerLArm
+ category: Mech
completetime: 10
materials:
Steel: 3000
- type: latheRecipe
id: HonkerLLeg
result: HonkerLLeg
+ category: Mech
completetime: 10
materials:
Steel: 3000
- type: latheRecipe
id: HonkerRLeg
result: HonkerRLeg
+ category: Mech
completetime: 10
materials:
Steel: 3000
- type: latheRecipe
id: HonkerRArm
result: HonkerRArm
+ category: Mech
completetime: 10
materials:
Steel: 3000
- type: latheRecipe
id: MechEquipmentHorn
result: MechEquipmentHorn
+ category: Mech
completetime: 10
materials:
Steel: 500
- type: latheRecipe
id: HamtrHarness
result: HamtrHarness
+ category: Mech
completetime: 10
materials:
Steel: 1200
- type: latheRecipe
id: HamtrLArm
result: HamtrLArm
+ category: Mech
completetime: 10
materials:
Steel: 800
- type: latheRecipe
id: HamtrLLeg
result: HamtrLLeg
+ category: Mech
completetime: 10
materials:
Steel: 800
- type: latheRecipe
id: HamtrRLeg
result: HamtrRLeg
+ category: Mech
completetime: 10
materials:
Steel: 800
- type: latheRecipe
id: HamtrRArm
result: HamtrRArm
+ category: Mech
completetime: 10
materials:
Steel: 800
- type: latheRecipe
id: MechEquipmentGrabberSmall
result: MechEquipmentGrabberSmall
+ category: Mech
completetime: 10
materials:
Steel: 400
- type: latheRecipe
id: VimHarness
result: VimHarness
+ category: Mech
completetime: 5
materials:
Steel: 500
- type: latheRecipe
id: Scalpel
result: Scalpel
+ category: Tools
completetime: 2
materials:
Steel: 200
- type: latheRecipe
id: Retractor
result: Retractor
+ category: Tools
completetime: 2
materials:
Steel: 200
- type: latheRecipe
id: Cautery
result: Cautery
+ category: Tools
completetime: 2
materials:
Steel: 200
- type: latheRecipe
id: Drill
result: Drill
+ category: Tools
completetime: 2
materials:
Steel: 200
- type: latheRecipe
id: Saw
result: Saw
+ category: Tools
completetime: 2
materials:
Steel: 200
- type: latheRecipe
id: Hemostat
result: Hemostat
+ category: Tools
completetime: 2
materials:
Steel: 200
- type: latheRecipe
id: HandheldCrewMonitor
result: HandheldCrewMonitorEmpty
+ category: Tools
completetime: 2
materials:
Glass: 1200
- type: latheRecipe
id: HandheldHealthAnalyzer
result: HandheldHealthAnalyzerEmpty
+ category: Tools
completetime: 4
materials:
Glass: 500
- type: latheRecipe
id: HandLabeler
result: HandLabeler
+ category: Tools
completetime: 2
materials:
Plastic: 100
materials:
Steel: 500
Plastic: 300
-
+
- type: latheRecipe
id: RollerBedSpawnFolded
result: RollerBedSpawnFolded
- type: latheRecipe
id: LightTube
result: LightTube
+ category: Lights
completetime: 2
materials:
Steel: 50
- type: latheRecipe
id: SodiumLightTube
result: SodiumLightTube
+ category: Lights
completetime: 2
materials:
Steel: 50
- type: latheRecipe
id: ExteriorLightTube
result: ExteriorLightTube
+ category: Lights
completetime: 2
materials:
Steel: 50
- type: latheRecipe
id: LightBulb
result: LightBulb
+ category: Lights
completetime: 2
materials:
Steel: 50
- type: latheRecipe
id: GlowstickRed
result: GlowstickRed
+ category: Lights
completetime: 2
materials:
Plastic: 50
- type: latheRecipe
id: Flare
result: Flare
+ category: Lights
completetime: 2
materials:
Plastic: 50
- type: latheRecipe
id: FlashlightLantern
result: EmptyFlashlightLantern
+ category: Lights
completetime: 2
materials:
Steel: 100
- type: latheRecipe
id: FireExtinguisher
result: FireExtinguisher
+ category: Tools
completetime: 2
materials:
Steel: 200
- type: latheRecipe
id: NodeScanner
result: NodeScanner
+ category: Tools
completetime: 2
materials:
Steel: 100
- type: latheRecipe
id: PowerCellSmall
result: PowerCellSmallPrinted
+ category: Parts
completetime: 1
materials:
Steel: 100
- type: latheRecipe
id: PowerCellMedium
result: PowerCellMediumPrinted
+ category: Parts
completetime: 6
materials:
Steel: 300
- type: latheRecipe
id: PowerCellHigh
result: PowerCellHighPrinted
+ category: Parts
completetime: 10
materials:
Steel: 300
- type: latheRecipe
id: PowerCellMicroreactor
result: PowerCellMicroreactorPrinted
+ category: Parts
completetime: 10
materials:
Steel: 500
- type: latheRecipe
id: ProximitySensor
result: ProximitySensor
+ category: Robotics
completetime: 2
materials:
Steel: 200
- type: latheRecipe
id: SciFlash
result: SciFlash
+ category: Robotics
completetime: 2
materials:
Glass: 100
- type: latheRecipe
id: CyborgEndoskeleton
result: CyborgEndoskeleton
+ category: Robotics
completetime: 3
materials:
Steel: 1500
- type: latheRecipe
id: LeftArmBorg
result: LeftArmBorg
+ category: Robotics
completetime: 2
materials:
Steel: 250
- type: latheRecipe
id: RightArmBorg
result: RightArmBorg
+ category: Robotics
completetime: 2
materials:
Steel: 250
- type: latheRecipe
id: LeftLegBorg
result: LeftLegBorg
+ category: Robotics
completetime: 2
materials:
Steel: 250
- type: latheRecipe
id: RightLegBorg
result: RightLegBorg
+ category: Robotics
completetime: 2
materials:
Steel: 250
- type: latheRecipe
id: LightHeadBorg
result: LightHeadBorg
+ category: Robotics
completetime: 2
materials:
Steel: 250
- type: latheRecipe
id: TorsoBorg
result: TorsoBorg
+ category: Robotics
completetime: 2
materials:
Steel: 250
- type: latheRecipe
id: LeftArmBorgEngineer
result: LeftArmBorgEngineer
+ category: Robotics
completetime: 2
materials:
Steel: 250
- type: latheRecipe
id: RightArmBorgEngineer
result: RightArmBorgEngineer
+ category: Robotics
completetime: 2
materials:
Steel: 250
- type: latheRecipe
id: LeftLegBorgEngineer
result: LeftLegBorgEngineer
+ category: Robotics
completetime: 2
materials:
Steel: 250
- type: latheRecipe
id: RightLegBorgEngineer
result: RightLegBorgEngineer
+ category: Robotics
completetime: 2
materials:
Steel: 250
- type: latheRecipe
id: HeadBorgEngineer
result: HeadBorgEngineer
+ category: Robotics
completetime: 2
materials:
Steel: 250
- type: latheRecipe
id: TorsoBorgEngineer
result: TorsoBorgEngineer
+ category: Robotics
completetime: 2
materials:
Steel: 250
- type: latheRecipe
id: LeftArmBorgMedical
result: LeftArmBorgMedical
+ category: Robotics
completetime: 2
materials:
Steel: 250
- type: latheRecipe
id: RightArmBorgMedical
result: RightArmBorgMedical
+ category: Robotics
completetime: 2
materials:
Steel: 250
- type: latheRecipe
id: LeftLegBorgMedical
result: LeftLegBorgMedical
+ category: Robotics
completetime: 2
materials:
Steel: 250
- type: latheRecipe
id: RightLegBorgMedical
result: RightLegBorgMedical
+ category: Robotics
completetime: 2
materials:
Steel: 250
- type: latheRecipe
id: HeadBorgMedical
result: HeadBorgMedical
+ category: Robotics
completetime: 2
materials:
Steel: 250
- type: latheRecipe
id: TorsoBorgMedical
result: TorsoBorgMedical
+ category: Robotics
completetime: 2
materials:
Steel: 250
- type: latheRecipe
id: LeftArmBorgMining
result: LeftArmBorgMining
+ category: Robotics
completetime: 2
materials:
Steel: 250
- type: latheRecipe
id: RightArmBorgMining
result: RightArmBorgMining
+ category: Robotics
completetime: 2
materials:
Steel: 250
- type: latheRecipe
id: LeftLegBorgMining
result: LeftLegBorgMining
+ category: Robotics
completetime: 2
materials:
Steel: 250
- type: latheRecipe
id: RightLegBorgMining
result: RightLegBorgMining
+ category: Robotics
completetime: 2
materials:
Steel: 250
- type: latheRecipe
id: HeadBorgMining
result: HeadBorgMining
+ category: Robotics
completetime: 2
materials:
Steel: 250
- type: latheRecipe
id: TorsoBorgMining
result: TorsoBorgMining
+ category: Robotics
completetime: 2
materials:
Steel: 250
- type: latheRecipe
id: LeftArmBorgService
result: LeftArmBorgService
+ category: Robotics
completetime: 2
materials:
Steel: 250
- type: latheRecipe
id: RightArmBorgService
result: RightArmBorgService
+ category: Robotics
completetime: 2
materials:
Steel: 250
- type: latheRecipe
id: LeftLegBorgService
result: LeftLegBorgService
+ category: Robotics
completetime: 2
materials:
Steel: 250
- type: latheRecipe
id: RightLegBorgService
result: RightLegBorgService
+ category: Robotics
completetime: 2
materials:
Steel: 250
- type: latheRecipe
id: HeadBorgService
result: HeadBorgService
+ category: Robotics
completetime: 2
materials:
Steel: 250
- type: latheRecipe
id: TorsoBorgService
result: TorsoBorgService
+ category: Robotics
completetime: 2
materials:
Steel: 250
- type: latheRecipe
id: LeftLegBorgJanitor
result: LeftLegBorgJanitor
+ category: Robotics
completetime: 2
materials:
Steel: 250
- type: latheRecipe
id: RightLegBorgJanitor
result: RightLegBorgJanitor
+ category: Robotics
completetime: 2
materials:
Steel: 250
- type: latheRecipe
id: HeadBorgJanitor
result: HeadBorgJanitor
+ category: Robotics
completetime: 4
materials:
Steel: 500
- type: latheRecipe
id: TorsoBorgJanitor
result: TorsoBorgJanitor
+ category: Robotics
completetime: 4
materials:
Steel: 500
- type: latheRecipe
id: MMI
result: MMI
+ category: Robotics
completetime: 3
icon:
sprite: Objects/Specific/Robotics/mmi.rsi
- type: latheRecipe
id: PositronicBrain
result: PositronicBrain
+ category: Robotics
completetime: 3
materials:
Steel: 500
- type: latheRecipe
id: BorgModuleCable
result: BorgModuleCable
+ category: Robotics
completetime: 3
materials:
Steel: 250
- type: latheRecipe
id: BorgModuleFireExtinguisher
result: BorgModuleFireExtinguisher
+ category: Robotics
completetime: 3
materials:
Steel: 250
- type: latheRecipe
id: BorgModuleGPS
result: BorgModuleGPS
+ category: Robotics
completetime: 3
materials:
Steel: 250
- type: latheRecipe
id: BorgModuleRadiationDetection
result: BorgModuleRadiationDetection
+ category: Robotics
completetime: 3
materials:
Steel: 250
- type: latheRecipe
id: BorgModuleTool
result: BorgModuleTool
+ category: Robotics
completetime: 3
materials:
Steel: 250
- type: latheRecipe
id: BorgModuleAppraisal
result: BorgModuleAppraisal
+ category: Robotics
completetime: 3
materials:
Steel: 250
- type: latheRecipe
id: BorgModuleMining
result: BorgModuleMining
+ category: Robotics
completetime: 3
materials:
Steel: 250
- type: latheRecipe
id: BorgModuleGrapplingGun
result: BorgModuleGrapplingGun
+ category: Robotics
completetime: 3
materials:
Steel: 500
- type: latheRecipe
id: BorgModuleAdvancedTool
result: BorgModuleAdvancedTool
+ category: Robotics
completetime: 3
materials:
Steel: 500
- type: latheRecipe
id: BorgModuleConstruction
result: BorgModuleConstruction
+ category: Robotics
completetime: 3
materials:
Steel: 500
- type: latheRecipe
id: BorgModuleGasAnalyzer
result: BorgModuleGasAnalyzer
+ category: Robotics
completetime: 3
materials:
Steel: 250
- type: latheRecipe
id: BorgModuleRCD
result: BorgModuleRCD
+ category: Robotics
completetime: 3
materials:
Steel: 500
- type: latheRecipe
id: BorgModuleLightReplacer
result: BorgModuleLightReplacer
+ category: Robotics
completetime: 3
materials:
Steel: 250
- type: latheRecipe
id: BorgModuleCleaning
result: BorgModuleCleaning
+ category: Robotics
completetime: 3
materials:
Steel: 250
- type: latheRecipe
id: BorgModuleAdvancedCleaning
result: BorgModuleAdvancedCleaning
+ category: Robotics
completetime: 3
materials:
Steel: 250
- type: latheRecipe
id: BorgModuleDiagnosis
result: BorgModuleDiagnosis
+ category: Robotics
completetime: 3
materials:
Steel: 250
- type: latheRecipe
id: BorgModuleTreatment
result: BorgModuleTreatment
+ category: Robotics
completetime: 3
materials:
Steel: 250
- type: latheRecipe
id: BorgModuleAdvancedTreatment
result: BorgModuleAdvancedTreatment
+ category: Robotics
completetime: 3
materials:
Steel: 500
- type: latheRecipe
id: BorgModuleDefibrillator
result: BorgModuleDefibrillator
+ category: Robotics
completetime: 3
materials:
Steel: 500
- type: latheRecipe
id: BorgModuleArtifact
result: BorgModuleArtifact
+ category: Robotics
completetime: 3
materials:
Steel: 250
- type: latheRecipe
id: BorgModuleAnomaly
result: BorgModuleAnomaly
+ category: Robotics
completetime: 3
materials:
Steel: 250
- type: latheRecipe
id: BorgModuleService
result: BorgModuleService
+ category: Robotics
completetime: 3
materials:
Steel: 250
- type: latheRecipe
id: BorgModuleMusique
result: BorgModuleMusique
+ category: Robotics
completetime: 3
materials:
Steel: 250
- type: latheRecipe
id: BorgModuleGardening
result: BorgModuleGardening
+ category: Robotics
completetime: 3
materials:
Steel: 250
- type: latheRecipe
id: BorgModuleHarvesting
result: BorgModuleHarvesting
+ category: Robotics
completetime: 3
materials:
Steel: 250
- type: latheRecipe
id: BorgModuleClowning
result: BorgModuleClowning
+ category: Robotics
completetime: 3
materials:
Steel: 250
- type: latheRecipe
id: Stunbaton
result: Stunbaton
+ category: Weapons
completetime: 2
materials:
Steel: 300
- type: latheRecipe
id: Truncheon
result: Truncheon
+ category: Weapons
completetime: 2
materials:
Steel: 300
- type: latheRecipe
id: WeaponLaserCarbine
result: WeaponLaserCarbine
+ category: Weapons
completetime: 8
materials:
Steel: 2000
- type: latheRecipe
id: WeaponAdvancedLaser
result: WeaponAdvancedLaser
+ category: Weapons
completetime: 5
materials:
Steel: 1500
- type: latheRecipe
id: WeaponLaserCannon
result: WeaponLaserCannon
+ category: Weapons
completetime: 5
materials:
Steel: 1250
- type: latheRecipe
id: WeaponLaserSvalinn
result: WeaponLaserSvalinn
+ category: Weapons
completetime: 5
materials:
Steel: 2000
- type: latheRecipe
id: WeaponXrayCannon
result: WeaponXrayCannon
+ category: Weapons
completetime: 5
materials:
Steel: 1500
- type: latheRecipe
id: ShellShotgunBeanbag
result: ShellShotgunBeanbag
+ category: Ammo
completetime: 2
materials:
Plastic: 15
- type: latheRecipe
id: CartridgePistolRubber
result: CartridgePistolRubber
+ category: Ammo
completetime: 2
materials:
Plastic: 5
- type: latheRecipe
id: CartridgeMagnumRubber
result: CartridgeMagnumRubber
+ category: Ammo
completetime: 2
materials:
Plastic: 5
- type: latheRecipe
id: CartridgeRifle
result: CartridgeRifle
+ category: Ammo
completetime: 2
materials:
Steel: 15
- type: latheRecipe
id: CartridgeLightRifleRubber
result: CartridgeLightRifleRubber
+ category: Ammo
completetime: 2
materials:
Plastic: 10
- type: latheRecipe
id: CartridgeRifleRubber
result: CartridgeRifleRubber
+ category: Ammo
completetime: 2
materials:
Plastic: 10
- type: latheRecipe
id: CartridgePistol
result: CartridgePistol
+ category: Ammo
completetime: 2
materials:
Steel: 10
- type: latheRecipe
id: ShellShotgun
result: ShellShotgun
+ category: Ammo
completetime: 2
materials:
Steel: 20
- type: latheRecipe
id: CartridgeMagnum
result: CartridgeMagnum
+ category: Ammo
completetime: 2
materials:
Steel: 20
- type: latheRecipe
id: CartridgeLightRifle
result: CartridgeLightRifle
+ category: Ammo
completetime: 2
materials:
Steel: 30
- type: latheRecipe
id: ShellShotgunFlare
result: ShellShotgunFlare
+ category: Ammo
completetime: 2
materials:
Plastic: 20
- type: latheRecipe
id: ShellTranquilizer
result: ShellTranquilizer
+ category: Ammo
completetime: 4
materials:
Plastic: 15
- type: latheRecipe
id: MagazinePistol
result: MagazinePistol
+ category: Ammo
completetime: 5
materials:
Steel: 100
- type: latheRecipe
id: MagazinePistolSubMachineGun
result: MagazinePistolSubMachineGun
+ category: Ammo
completetime: 5
materials:
Steel: 300
- type: latheRecipe
id: MagazinePistolSubMachineGunTopMounted
result: MagazinePistolSubMachineGunTopMounted
+ category: Ammo
completetime: 5
materials:
Steel: 300
- type: latheRecipe
id: MagazineBoxPistol
result: MagazineBoxPistol
+ category: Ammo
completetime: 5
materials:
Steel: 650
- type: latheRecipe
id: MagazineBoxPistolRubber
result: MagazineBoxPistolRubber
+ category: Ammo
completetime: 5
materials:
Steel: 350
- type: latheRecipe
id: MagazineBoxMagnum
result: MagazineBoxMagnum
+ category: Ammo
completetime: 5
materials:
Steel: 1250
- type: latheRecipe
id: MagazineBoxMagnumRubber
result: MagazineBoxMagnumRubber
+ category: Ammo
completetime: 5
materials:
Steel: 350
- type: latheRecipe
id: MagazineRifle
result: MagazineRifle
+ category: Ammo
completetime: 5
materials:
Steel: 375
- type: latheRecipe
id: MagazineLightRifle
result: MagazineLightRifle
+ category: Ammo
completetime: 5
materials:
Steel: 375
- type: latheRecipe
id: MagazineBoxRifle
result: MagazineBoxRifle
+ category: Ammo
completetime: 5
materials:
Steel: 950
- type: latheRecipe
id: MagazineBoxRifleRubber
result: MagazineBoxRifleRubber
+ category: Ammo
completetime: 5
materials:
Steel: 350
- type: latheRecipe
id: MagazineBoxLightRifle
result: MagazineBoxLightRifle
+ category: Ammo
completetime: 5
materials:
Steel: 1800
- type: latheRecipe
id: MagazineBoxLightRifleRubber
result: MagazineBoxLightRifleRubber
+ category: Ammo
completetime: 5
materials:
Steel: 350
- type: latheRecipe
id: SpeedLoaderMagnum
result: SpeedLoaderMagnum
+ category: Ammo
completetime: 5
materials:
Steel: 200
- type: latheRecipe
id: ShellShotgunIncendiary
result: ShellShotgunIncendiary
+ category: Ammo
completetime: 2
materials:
Plastic: 20
- type: latheRecipe
id: CartridgePistolIncendiary
result: CartridgePistolIncendiary
+ category: Ammo
completetime: 2
materials:
Plastic: 10
- type: latheRecipe
id: CartridgeMagnumIncendiary
result: CartridgeMagnumIncendiary
+ category: Ammo
completetime: 2
materials:
Plastic: 20
- type: latheRecipe
id: CartridgeLightRifleIncendiary
result: CartridgeLightRifleIncendiary
+ category: Ammo
completetime: 2
materials:
Plastic: 20
- type: latheRecipe
id: CartridgeRifleIncendiary
result: CartridgeRifleIncendiary
+ category: Ammo
completetime: 2
materials:
Plastic: 15
- type: latheRecipe
id: MagazineBoxPistolIncendiary
result: MagazineBoxPistolIncendiary
+ category: Ammo
completetime: 5
materials:
Plastic: 650
- type: latheRecipe
id: MagazineBoxMagnumIncendiary
result: MagazineBoxMagnumIncendiary
+ category: Ammo
completetime: 5
materials:
Plastic: 1250
- type: latheRecipe
id: MagazineBoxLightRifleIncendiary
result: MagazineBoxLightRifleIncendiary
+ category: Ammo
completetime: 5
materials:
Plastic: 1800
- type: latheRecipe
id: MagazineBoxRifleIncendiary
result: MagazineBoxRifleIncendiary
+ category: Ammo
completetime: 5
materials:
Plastic: 950
- type: latheRecipe
id: ShellShotgunPractice
result: ShellShotgunPractice
+ category: Ammo
completetime: 2
materials:
Plastic: 20
- type: latheRecipe
id: MagazineBoxPistolPractice
result: MagazineBoxPistolPractice
+ category: Ammo
completetime: 5
materials:
Plastic: 600
- type: latheRecipe
id: MagazineBoxMagnumPractice
result: MagazineBoxMagnumPractice
+ category: Ammo
completetime: 5
materials:
Plastic: 1200
- type: latheRecipe
id: MagazineBoxLightRiflePractice
result: MagazineBoxLightRiflePractice
+ category: Ammo
completetime: 5
materials:
Plastic: 1000
- type: latheRecipe
id: MagazineBoxRiflePractice
result: MagazineBoxRiflePractice
+ category: Ammo
completetime: 5
materials:
Plastic: 900
- type: latheRecipe
id: WeaponLaserCarbinePractice
result: WeaponLaserCarbinePractice
+ category: Weapons
completetime: 6
materials:
Steel: 1800
- type: latheRecipe
id: WeaponDisablerPractice
result: WeaponDisablerPractice
+ category: Weapons
completetime: 4
materials:
Steel: 500
- type: latheRecipe
id: ShellShotgunUranium
result: ShellShotgunUranium
+ category: Ammo
completetime: 2
materials:
Plastic: 15
- type: latheRecipe
id: CartridgePistolUranium
result: CartridgePistolUranium
+ category: Ammo
completetime: 2
materials:
Plastic: 5
- type: latheRecipe
id: CartridgeMagnumUranium
result: CartridgeMagnumUranium
+ category: Ammo
completetime: 2
materials:
Plastic: 20
- type: latheRecipe
id: CartridgeLightRifleUranium
result: CartridgeLightRifleUranium
+ category: Ammo
completetime: 2
materials:
Plastic: 20
- type: latheRecipe
id: CartridgeRifleUranium
result: CartridgeRifleUranium
+ category: Ammo
completetime: 2
materials:
Plastic: 15
- type: latheRecipe
id: MagazineBoxPistolUranium
result: MagazineBoxPistolUranium
+ category: Ammo
completetime: 5
materials:
Plastic: 650
- type: latheRecipe
id: MagazineBoxMagnumUranium
result: MagazineBoxMagnumUranium
+ category: Ammo
completetime: 5
materials:
Plastic: 1250
- type: latheRecipe
id: MagazineBoxLightRifleUranium
result: MagazineBoxLightRifleUranium
+ category: Ammo
completetime: 5
materials:
Plastic: 1800
- type: latheRecipe
id: MagazineBoxRifleUranium
result: MagazineBoxRifleUranium
+ category: Ammo
completetime: 5
materials:
Plastic: 950
Uranium: 95
-
+
- type: latheRecipe
id: WeaponDisablerSMG
result: WeaponDisablerSMG
+ category: Weapons
completetime: 6
materials:
Steel: 1000
sprite: Objects/Tools/wirecutters.rsi
state: cutters-map
result: Wirecutter
+ category: Tools
completetime: 2
materials:
Steel: 200
sprite: Objects/Tools/screwdriver.rsi
state: screwdriver-map
result: Screwdriver
+ category: Tools
completetime: 2
materials:
Steel: 200
- type: latheRecipe
id: Welder
result: Welder
+ category: Tools
completetime: 2
materials:
Steel: 400
- type: latheRecipe
id: Wrench
result: Wrench
+ category: Tools
completetime: 2
materials:
Steel: 200
- type: latheRecipe
id: CableStack
result: CableApcStack1
+ category: Parts
completetime: 2
materials:
Steel: 30
- type: latheRecipe
id: CableMVStack
result: CableMVStack1
+ category: Parts
completetime: 2
materials:
Steel: 30
- type: latheRecipe
id: CableHVStack
result: CableHVStack1
+ category: Parts
completetime: 2
materials:
Steel: 30
- type: latheRecipe
id: Crowbar
result: Crowbar
+ category: Tools
completetime: 2
materials:
Steel: 200
- type: latheRecipe
id: Pickaxe
result: Pickaxe
+ category: Tools
completetime: 4
materials:
Steel: 1000
- type: latheRecipe
id: Shovel
result: Shovel
+ category: Tools
completetime: 2
materials:
Steel: 200
- type: latheRecipe
id: Multitool
result: Multitool
+ category: Tools
completetime: 2
materials:
Steel: 200
- type: latheRecipe
id: NetworkConfigurator
result: NetworkConfigurator
+ category: Tools
completetime: 2
materials:
Steel: 200
- type: latheRecipe
id: PowerDrill
result: PowerDrill
+ category: Tools
completetime: 2
materials:
Steel: 600
- type: latheRecipe
id: RCD
result: RCDEmpty
+ category: Tools
completetime: 4
materials:
Steel: 1000
- type: latheRecipe
id: RCDAmmo
result: RCDAmmo
+ category: Tools
completetime: 2.4
materials:
Steel: 500
- type: latheRecipe
id: HandheldGPSBasic
result: HandheldGPSBasic
+ category: Tools
completetime: 2
materials:
Steel: 800
- type: latheRecipe
id: TRayScanner
result: trayScanner
+ category: Tools
completetime: 2
materials:
Steel: 800
- type: latheRecipe
id: GasAnalyzer
result: GasAnalyzer
+ category: Tools
completetime: 2
materials:
Steel: 800
- type: latheRecipe
id: SprayPainter
result: SprayPainter
+ category: Tools
completetime: 2
materials:
Steel: 300
- type: latheRecipe
id: UtilityBelt
result: ClothingBeltUtility
+ category: Tools
completetime: 2
materials:
Cloth: 100
- type: latheRecipe
id: HolofanProjector
result: HolofanProjector
+ category: Tools
completetime: 8
materials: # Inherited materials and time from PowerCellMedium recipe
Steel: 600
- type: latheRecipe
id: RPED
result: RPED
+ category: Tools
completetime: 10
materials:
Steel: 650
- type: latheRecipe
id: MiningDrill
result: MiningDrill
+ category: Tools
completetime: 3
materials:
Steel: 500
- type: latheRecipe
id: WelderExperimental
result: WelderExperimental
+ category: Tools
completetime: 6
materials:
Steel: 800
- type: latheRecipe
id: JawsOfLife
result: JawsOfLife
+ category: Tools
completetime: 6
materials:
Steel: 1000
Glass: 500
Plasma: 300
Gold: 50
-
+
- type: latheRecipe
id: HoloprojectorField
result: HoloprojectorField
+ category: Tools
completetime: 3
materials:
Steel: 500
Plasma: 300
Glass: 100
-
+
- type: latheRecipe
id: WeaponParticleDecelerator
result: WeaponParticleDecelerator
+ category: Tools
completetime: 6
materials:
Steel: 750
Plasma: 150
- Uranium: 150
\ No newline at end of file
+ Uranium: 150