Makes machine parts stackable, removes unused field in stack prototypes (#28434)
* Makes machine parts stacks, removes unused field in stack prototypes * forgor * Fix tests * Fixes lathe construction. Yes. This sucks but there's no better way that doesnt involve refactoring machine parts completely * detail * a
This commit is contained in:
@@ -103,7 +103,7 @@ public sealed class MaterialArbitrageTest
|
||||
continue;
|
||||
|
||||
var stackProto = protoManager.Index<StackPrototype>(materialStep.MaterialPrototypeId);
|
||||
var spawnProto = protoManager.Index<EntityPrototype>(stackProto.Spawn);
|
||||
var spawnProto = protoManager.Index(stackProto.Spawn);
|
||||
|
||||
if (!spawnProto.Components.ContainsKey(materialName) ||
|
||||
!spawnProto.Components.TryGetValue(compositionName, out var compositionReg))
|
||||
|
||||
@@ -59,23 +59,27 @@ public sealed class MachineFrameSystem : EntitySystem
|
||||
return;
|
||||
}
|
||||
|
||||
// Machine parts cannot currently satisfy stack/component/tag restrictions. Similarly stacks cannot satisfy
|
||||
// component/tag restrictions. However, there is no reason this cannot be supported in the future. If this
|
||||
// changes, then RegenerateProgress() also needs to be updated.
|
||||
//
|
||||
// If this changes in the future, then RegenerateProgress() also needs to be updated.
|
||||
// Note that one entity is ALLOWED to satisfy more than one kind of component or tag requirements. This is
|
||||
// necessary in order to avoid weird entity-ordering shenanigans in RegenerateProgress().
|
||||
var stack = CompOrNull<StackComponent>(args.Used);
|
||||
var machinePart = CompOrNull<MachinePartComponent>(args.Used);
|
||||
if (stack != null && machinePart != null)
|
||||
{
|
||||
if (TryInsertPartStack(uid, args.Used, component, machinePart, stack))
|
||||
args.Handled = true;
|
||||
return;
|
||||
}
|
||||
|
||||
// Handle parts
|
||||
if (TryComp<MachinePartComponent>(args.Used, out var machinePart))
|
||||
if (machinePart != null)
|
||||
{
|
||||
if (TryInsertPart(uid, args.Used, component, machinePart))
|
||||
args.Handled = true;
|
||||
return;
|
||||
}
|
||||
|
||||
// Handle stacks
|
||||
if (TryComp<StackComponent>(args.Used, out var stack))
|
||||
if (stack != null)
|
||||
{
|
||||
if (TryInsertStack(uid, args.Used, component, stack))
|
||||
args.Handled = true;
|
||||
@@ -191,6 +195,44 @@ public sealed class MachineFrameSystem : EntitySystem
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <returns>Whether or not the function had any effect. Does not indicate success.</returns>
|
||||
private bool TryInsertPartStack(EntityUid uid, EntityUid used, MachineFrameComponent component, MachinePartComponent machinePart, StackComponent stack)
|
||||
{
|
||||
if (!component.Requirements.ContainsKey(machinePart.PartType))
|
||||
return false;
|
||||
|
||||
var progress = component.Progress[machinePart.PartType];
|
||||
var requirement = component.Requirements[machinePart.PartType];
|
||||
|
||||
var needed = requirement - progress;
|
||||
if (needed <= 0)
|
||||
return false;
|
||||
|
||||
var count = stack.Count;
|
||||
if (count < needed)
|
||||
{
|
||||
if (!_container.Insert(used, component.PartContainer))
|
||||
return true;
|
||||
|
||||
component.Progress[machinePart.PartType] += count;
|
||||
return true;
|
||||
}
|
||||
|
||||
var splitStack = _stack.Split(used, needed, Transform(uid).Coordinates, stack);
|
||||
|
||||
if (splitStack == null)
|
||||
return false;
|
||||
|
||||
if (!_container.Insert(splitStack.Value, component.PartContainer))
|
||||
return true;
|
||||
|
||||
component.Progress[machinePart.PartType] += needed;
|
||||
if (IsComplete(component))
|
||||
_popupSystem.PopupEntity(Loc.GetString("machine-frame-component-on-complete"), uid);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <returns>Whether or not the function had any effect. Does not indicate success.</returns>
|
||||
private bool TryInsertStack(EntityUid uid, EntityUid used, MachineFrameComponent component, StackComponent stack)
|
||||
{
|
||||
@@ -328,8 +370,6 @@ public sealed class MachineFrameSystem : EntitySystem
|
||||
{
|
||||
if (TryComp<MachinePartComponent>(part, out var machinePart))
|
||||
{
|
||||
DebugTools.Assert(!HasComp<StackComponent>(part));
|
||||
|
||||
// Check this is part of the requirements...
|
||||
if (!component.Requirements.ContainsKey(machinePart.PartType))
|
||||
continue;
|
||||
@@ -338,7 +378,6 @@ public sealed class MachineFrameSystem : EntitySystem
|
||||
component.Progress[machinePart.PartType] = 1;
|
||||
else
|
||||
component.Progress[machinePart.PartType]++;
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
@@ -51,7 +51,7 @@ namespace Content.Server.Stack
|
||||
|
||||
// Get a prototype ID to spawn the new entity. Null is also valid, although it should rarely be picked...
|
||||
var prototype = _prototypeManager.TryIndex<StackPrototype>(stack.StackTypeId, out var stackType)
|
||||
? stackType.Spawn
|
||||
? stackType.Spawn.ToString()
|
||||
: Prototype(uid)?.ID;
|
||||
|
||||
// Set the output parameter in the event instance to the newly split stack.
|
||||
|
||||
@@ -87,9 +87,9 @@ namespace Content.Shared.Construction
|
||||
foreach (var (stackId, amount) in comp.MaterialIdRequirements)
|
||||
{
|
||||
var stackProto = _prototype.Index<StackPrototype>(stackId);
|
||||
var defaultProto = _prototype.Index(stackProto.Spawn);
|
||||
|
||||
if (_prototype.TryIndex(stackProto.Spawn, out var defaultProto) &&
|
||||
defaultProto.TryGetComponent<PhysicalCompositionComponent>(out var physComp))
|
||||
if (defaultProto.TryGetComponent<PhysicalCompositionComponent>(out var physComp))
|
||||
{
|
||||
foreach (var (mat, matAmount) in physComp.MaterialComposition)
|
||||
{
|
||||
|
||||
@@ -29,7 +29,7 @@ namespace Content.Shared.Materials
|
||||
/// include which stack we should spawn by default.
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public ProtoId<EntityPrototype>? StackEntity;
|
||||
public EntProtoId? StackEntity;
|
||||
|
||||
[DataField]
|
||||
public string Name = string.Empty;
|
||||
|
||||
@@ -4,7 +4,7 @@ using Robust.Shared.Utility;
|
||||
|
||||
namespace Content.Shared.Stacks;
|
||||
|
||||
[Prototype("stack")]
|
||||
[Prototype]
|
||||
public sealed partial class StackPrototype : IPrototype
|
||||
{
|
||||
[ViewVariables]
|
||||
@@ -15,33 +15,26 @@ public sealed partial class StackPrototype : IPrototype
|
||||
/// Human-readable name for this stack type e.g. "Steel"
|
||||
/// </summary>
|
||||
/// <remarks>This is a localization string ID.</remarks>
|
||||
[DataField("name")]
|
||||
[DataField]
|
||||
public string Name { get; private set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// An icon that will be used to represent this stack type.
|
||||
/// </summary>
|
||||
[DataField("icon")]
|
||||
[DataField]
|
||||
public SpriteSpecifier? Icon { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// The entity id that will be spawned by default from this stack.
|
||||
/// </summary>
|
||||
[DataField("spawn", required: true, customTypeSerializer:typeof(PrototypeIdSerializer<EntityPrototype>))]
|
||||
public string Spawn { get; private set; } = string.Empty;
|
||||
[DataField(required: true)]
|
||||
public EntProtoId Spawn { get; private set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// The maximum amount of things that can be in a stack.
|
||||
/// Can be overriden on <see cref="StackComponent"/>
|
||||
/// if null, simply has unlimited max count.
|
||||
/// </summary>
|
||||
[DataField("maxCount")]
|
||||
[DataField]
|
||||
public int? MaxCount { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// The size of an individual unit of this stack.
|
||||
/// </summary>
|
||||
[DataField("itemSize")]
|
||||
public int? ItemSize;
|
||||
}
|
||||
|
||||
|
||||
@@ -9,6 +9,8 @@
|
||||
sprite: Objects/Misc/stock_parts.rsi
|
||||
- type: Item
|
||||
size: Tiny
|
||||
- type: Stack
|
||||
count: 1
|
||||
|
||||
- type: entity
|
||||
id: CapacitorStockPart
|
||||
@@ -25,6 +27,8 @@
|
||||
- type: Tag
|
||||
tags:
|
||||
- CapacitorStockPart
|
||||
- type: Stack
|
||||
stackType: Capacitor
|
||||
|
||||
- type: entity
|
||||
id: MicroManipulatorStockPart
|
||||
@@ -38,6 +42,8 @@
|
||||
- type: MachinePart
|
||||
part: Manipulator
|
||||
rating: 1
|
||||
- type: Stack
|
||||
stackType: MicroManipulator
|
||||
|
||||
- type: entity
|
||||
id: MatterBinStockPart
|
||||
@@ -51,3 +57,5 @@
|
||||
- type: MachinePart
|
||||
part: MatterBin
|
||||
rating: 1
|
||||
- type: Stack
|
||||
stackType: MatterBin
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
state: extraction_pack
|
||||
spawn: Fulton1
|
||||
maxCount: 10
|
||||
itemSize: 2
|
||||
|
||||
# Entities
|
||||
- type: entity
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
icon: { sprite: /Textures/Objects/Materials/Sheets/glass.rsi, state: glass }
|
||||
spawn: SheetGlass1
|
||||
maxCount: 30
|
||||
itemSize: 1
|
||||
|
||||
- type: stack
|
||||
id: ReinforcedGlass
|
||||
@@ -12,7 +11,6 @@
|
||||
icon: { sprite: /Textures/Objects/Materials/Sheets/glass.rsi, state: rglass }
|
||||
spawn: SheetRGlass1
|
||||
maxCount: 30
|
||||
itemSize: 1
|
||||
|
||||
- type: stack
|
||||
id: PlasmaGlass
|
||||
@@ -20,7 +18,6 @@
|
||||
icon: { sprite: /Textures/Objects/Materials/Sheets/glass.rsi, state: pglass }
|
||||
spawn: SheetPGlass1
|
||||
maxCount: 30
|
||||
itemSize: 1
|
||||
|
||||
- type: stack
|
||||
id: ReinforcedPlasmaGlass
|
||||
@@ -28,7 +25,6 @@
|
||||
icon: { sprite: /Textures/Objects/Materials/Sheets/glass.rsi, state: rpglass }
|
||||
spawn: SheetRPGlass1
|
||||
maxCount: 30
|
||||
itemSize: 1
|
||||
|
||||
- type: stack
|
||||
id: UraniumGlass
|
||||
@@ -36,7 +32,6 @@
|
||||
icon: { sprite: /Textures/Objects/Materials/Sheets/glass.rsi, state: uglass }
|
||||
spawn: SheetUGlass1
|
||||
maxCount: 30
|
||||
itemSize: 1
|
||||
|
||||
- type: stack
|
||||
id: ReinforcedUraniumGlass
|
||||
@@ -44,7 +39,6 @@
|
||||
icon: { sprite: /Textures/Objects/Materials/Sheets/glass.rsi, state: ruglass }
|
||||
spawn: SheetRUGlass1
|
||||
maxCount: 30
|
||||
itemSize: 1
|
||||
|
||||
- type: stack
|
||||
id: ClockworkGlass
|
||||
@@ -52,4 +46,3 @@
|
||||
icon: { sprite: /Textures/Objects/Materials/Sheets/glass.rsi, state: cglass }
|
||||
spawn: SheetClockworkGlass1
|
||||
maxCount: 30
|
||||
itemSize: 1
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
icon: { sprite: /Textures/Objects/Materials/Sheets/metal.rsi, state: steel }
|
||||
spawn: SheetSteel1
|
||||
maxCount: 30
|
||||
itemSize: 1
|
||||
|
||||
- type: stack
|
||||
id: Plasteel
|
||||
@@ -12,7 +11,6 @@
|
||||
icon: { sprite: /Textures/Objects/Materials/Sheets/metal.rsi, state: plasteel }
|
||||
spawn: SheetPlasteel1
|
||||
maxCount: 30
|
||||
itemSize: 1
|
||||
|
||||
- type: stack
|
||||
id: Brass
|
||||
@@ -20,4 +18,3 @@
|
||||
icon: { sprite: /Textures/Objects/Materials/Sheets/metal.rsi, state: brass }
|
||||
spawn: SheetBrass1
|
||||
maxCount: 30
|
||||
itemSize: 1
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
icon: { sprite: /Textures/Objects/Materials/Sheets/other.rsi, state: paper }
|
||||
spawn: SheetPaper1
|
||||
maxCount: 30
|
||||
itemSize: 1
|
||||
|
||||
- type: stack
|
||||
id: Plasma
|
||||
@@ -12,7 +11,6 @@
|
||||
icon: { sprite: /Textures/Objects/Materials/Sheets/other.rsi, state: plasma }
|
||||
spawn: SheetPlasma1
|
||||
maxCount: 30
|
||||
itemSize: 1
|
||||
|
||||
- type: stack
|
||||
id: Plastic
|
||||
@@ -20,7 +18,6 @@
|
||||
icon: { sprite: /Textures/Objects/Materials/Sheets/other.rsi, state: plastic }
|
||||
spawn: SheetPlastic1
|
||||
maxCount: 30
|
||||
itemSize: 1
|
||||
|
||||
- type: stack
|
||||
id: Uranium
|
||||
@@ -28,4 +25,3 @@
|
||||
icon: { sprite: /Textures/Objects/Materials/Sheets/other.rsi, state: uranium }
|
||||
spawn: SheetUranium1
|
||||
maxCount: 30
|
||||
itemSize: 1
|
||||
|
||||
@@ -3,4 +3,3 @@
|
||||
name: telecrystal
|
||||
icon: Objects/Specific/Syndicate/telecrystal.rsi
|
||||
spawn: Telecrystal1
|
||||
itemSize: 1
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
icon: { sprite: "/Textures/Objects/Materials/ingots.rsi", state: gold }
|
||||
spawn: IngotGold1
|
||||
maxCount: 30
|
||||
itemSize: 1
|
||||
|
||||
- type: stack
|
||||
id: Silver
|
||||
@@ -12,4 +11,3 @@
|
||||
icon: { sprite: "/Textures/Objects/Materials/ingots.rsi", state: silver }
|
||||
spawn: IngotSilver1
|
||||
maxCount: 30
|
||||
itemSize: 1
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
icon: { sprite: /Textures/Objects/Misc/monkeycube.rsi, state: cube }
|
||||
spawn: MaterialBiomass1
|
||||
maxCount: 100
|
||||
itemSize: 1
|
||||
|
||||
- type: stack
|
||||
id: WoodPlank
|
||||
@@ -12,7 +11,6 @@
|
||||
icon: { sprite: /Textures/Objects/Materials/materials.rsi, state: wood }
|
||||
spawn: MaterialWoodPlank1
|
||||
maxCount: 30
|
||||
itemSize: 1
|
||||
|
||||
- type: stack
|
||||
id: Cardboard
|
||||
@@ -20,7 +18,6 @@
|
||||
icon: { sprite: /Textures/Objects/Materials/materials.rsi, state: cardboard }
|
||||
spawn: MaterialCardboard1
|
||||
maxCount: 30
|
||||
itemSize: 1
|
||||
|
||||
- type: stack
|
||||
id: Cloth
|
||||
@@ -28,7 +25,6 @@
|
||||
icon: { sprite: /Textures/Objects/Materials/materials.rsi, state: cloth }
|
||||
spawn: MaterialCloth1
|
||||
maxCount: 30
|
||||
itemSize: 1
|
||||
|
||||
- type: stack
|
||||
id: Durathread
|
||||
@@ -36,7 +32,6 @@
|
||||
icon: { sprite: /Textures/Objects/Materials/materials.rsi, state: durathread }
|
||||
spawn: MaterialDurathread1
|
||||
maxCount: 30
|
||||
itemSize: 1
|
||||
|
||||
- type: stack
|
||||
id: Diamond
|
||||
@@ -44,7 +39,6 @@
|
||||
icon: { sprite: /Textures/Objects/Materials/materials.rsi, state: diamond }
|
||||
spawn: MaterialDiamond1
|
||||
maxCount: 30
|
||||
itemSize: 2
|
||||
|
||||
- type: stack
|
||||
id: Cotton
|
||||
@@ -52,7 +46,6 @@
|
||||
icon: { sprite: /Textures/Objects/Materials/materials.rsi, state: cotton }
|
||||
spawn: MaterialCotton1
|
||||
maxCount: 30
|
||||
itemSize: 1
|
||||
|
||||
- type: stack
|
||||
id: Pyrotton
|
||||
@@ -60,7 +53,6 @@
|
||||
icon: { sprite: /Textures/Objects/Materials/materials.rsi, state: pyrotton }
|
||||
spawn: MaterialPyrotton1
|
||||
maxCount: 30
|
||||
itemSize: 1
|
||||
|
||||
- type: stack
|
||||
id: Bananium
|
||||
@@ -68,7 +60,6 @@
|
||||
icon: { sprite: /Textures/Objects/Materials/materials.rsi, state: bananium }
|
||||
spawn: MaterialBananium1
|
||||
maxCount: 10
|
||||
itemSize: 2
|
||||
|
||||
- type: stack
|
||||
id: MeatSheets
|
||||
@@ -76,7 +67,6 @@
|
||||
icon: { sprite: /Textures/Objects/Materials/Sheets/meaterial.rsi, state: meat }
|
||||
spawn: MaterialSheetMeat1
|
||||
maxCount: 30
|
||||
itemSize: 1
|
||||
|
||||
- type: stack
|
||||
id: WebSilk
|
||||
@@ -84,7 +74,6 @@
|
||||
icon: { sprite: /Textures/Objects/Materials/silk.rsi, state: icon }
|
||||
spawn: MaterialWebSilk1
|
||||
maxCount: 50
|
||||
itemSize: 1
|
||||
|
||||
- type: stack
|
||||
id: Bones
|
||||
@@ -92,7 +81,6 @@
|
||||
icon: { sprite: /Textures/Objects/Materials/materials.rsi, state: bones}
|
||||
spawn: MaterialBones1
|
||||
maxCount: 30
|
||||
itemSize: 1
|
||||
|
||||
- type: stack
|
||||
id: Gunpowder
|
||||
@@ -100,4 +88,3 @@
|
||||
icon: { sprite: /Textures/Objects/Misc/reagent_fillings.rsi, state: powderpile }
|
||||
spawn: MaterialGunpowder
|
||||
maxCount: 60
|
||||
itemSize: 1
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
icon: { sprite: /Textures/Objects/Materials/ore.rsi, state: gold }
|
||||
spawn: GoldOre1
|
||||
maxCount: 30
|
||||
itemSize: 2
|
||||
|
||||
- type: stack
|
||||
id: SteelOre
|
||||
@@ -12,7 +11,6 @@
|
||||
icon: { sprite: /Textures/Objects/Materials/ore.rsi, state: iron }
|
||||
spawn: SteelOre1
|
||||
maxCount: 30
|
||||
itemSize: 2
|
||||
|
||||
- type: stack
|
||||
id: PlasmaOre
|
||||
@@ -20,7 +18,6 @@
|
||||
icon: { sprite: /Textures/Objects/Materials/ore.rsi, state: plasma }
|
||||
spawn: PlasmaOre1
|
||||
maxCount: 30
|
||||
itemSize: 2
|
||||
|
||||
- type: stack
|
||||
id: SilverOre
|
||||
@@ -28,7 +25,6 @@
|
||||
icon: { sprite: /Textures/Objects/Materials/ore.rsi, state: silver }
|
||||
spawn: SilverOre1
|
||||
maxCount: 30
|
||||
itemSize: 2
|
||||
|
||||
- type: stack
|
||||
id: SpaceQuartz
|
||||
@@ -36,7 +32,6 @@
|
||||
icon: { sprite: /Textures/Objects/Materials/ore.rsi, state: spacequartz }
|
||||
spawn: SpaceQuartz1
|
||||
maxCount: 30
|
||||
itemSize: 2
|
||||
|
||||
- type: stack
|
||||
id: UraniumOre
|
||||
@@ -44,7 +39,6 @@
|
||||
icon: { sprite: /Textures/Objects/Materials/ore.rsi, state: uranium }
|
||||
spawn: UraniumOre1
|
||||
maxCount: 30
|
||||
itemSize: 2
|
||||
|
||||
|
||||
- type: stack
|
||||
@@ -53,7 +47,6 @@
|
||||
icon: { sprite: /Textures/Objects/Materials/ore.rsi, state: bananium }
|
||||
spawn: BananiumOre1
|
||||
maxCount: 30
|
||||
itemSize: 2
|
||||
|
||||
- type: stack
|
||||
id: Coal
|
||||
@@ -61,7 +54,6 @@
|
||||
icon: { sprite: /Textures/Objects/Materials/ore.rsi, state: coal }
|
||||
spawn: Coal1
|
||||
maxCount: 30
|
||||
itemSize: 2
|
||||
|
||||
- type: stack
|
||||
id: SaltOre
|
||||
@@ -69,4 +61,3 @@
|
||||
icon: { sprite: /Textures/Objects/Materials/ore.rsi, state: salt }
|
||||
spawn: Salt1
|
||||
maxCount: 30
|
||||
itemSize: 2
|
||||
|
||||
@@ -4,4 +4,3 @@
|
||||
icon: { sprite: /Textures/Objects/Materials/parts.rsi, state: rods }
|
||||
spawn: PartRodMetal1
|
||||
maxCount: 30
|
||||
itemSize: 1
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
name: pancake
|
||||
spawn: FoodBakedPancake
|
||||
maxCount: 3
|
||||
itemSize: 1
|
||||
|
||||
# Food Containers
|
||||
|
||||
@@ -15,7 +14,6 @@
|
||||
icon: { sprite: Objects/Consumable/Food/Baked/pizza.rsi, state: box }
|
||||
spawn: FoodBoxPizza
|
||||
maxCount: 30
|
||||
itemSize: 10
|
||||
|
||||
# Smokeables
|
||||
|
||||
@@ -25,7 +23,6 @@
|
||||
icon: { sprite: /Textures/Objects/Consumable/Smokeables/Cigarettes/paper.rsi, state: cigpaper }
|
||||
spawn: PaperRolling
|
||||
maxCount: 5
|
||||
itemSize: 1
|
||||
|
||||
- type: stack
|
||||
id: CigaretteFilter
|
||||
@@ -33,7 +30,6 @@
|
||||
icon: { sprite: /Textures/Objects/Consumable/Smokeables/Cigarettes/paper.rsi, state: cigfilter }
|
||||
spawn: CigaretteFilter
|
||||
maxCount: 5
|
||||
itemSize: 2
|
||||
|
||||
- type: stack
|
||||
id: GroundTobacco
|
||||
@@ -41,7 +37,6 @@
|
||||
icon: { sprite: /Textures/Objects/Misc/reagent_fillings.rsi, state: powderpile }
|
||||
spawn: GroundTobacco
|
||||
maxCount: 5
|
||||
itemSize: 1
|
||||
|
||||
- type: stack
|
||||
id: GroundCannabis
|
||||
@@ -49,7 +44,6 @@
|
||||
icon: { sprite: /Textures/Objects/Misc/reagent_fillings.rsi, state: powderpile }
|
||||
spawn: GroundCannabis
|
||||
maxCount:
|
||||
itemSize: 1
|
||||
|
||||
- type: stack
|
||||
id: GroundCannabisRainbow
|
||||
@@ -57,7 +51,6 @@
|
||||
icon: { sprite: /Textures/Objects/Specific/Hydroponics/rainbow_cannabis.rsi, state: powderpile_rainbow }
|
||||
spawn: GroundCannabisRainbow
|
||||
maxCount:
|
||||
itemSize: 1
|
||||
|
||||
- type: stack
|
||||
id: LeavesTobaccoDried
|
||||
@@ -65,7 +58,6 @@
|
||||
icon: { sprite: /Textures/Objects/Specific/Hydroponics/tobacco.rsi, state: dried }
|
||||
spawn: LeavesTobaccoDried
|
||||
maxCount: 5
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: LeavesCannabisDried
|
||||
@@ -73,12 +65,9 @@
|
||||
icon: { sprite: /Textures/Objects/Specific/Hydroponics/tobacco.rsi, state: dried }
|
||||
spawn: LeavesCannabisDried
|
||||
maxCount: 5
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: LeavesCannabisRainbowDried
|
||||
name: dried rainbow cannabis leaves
|
||||
icon: { sprite: /Textures/Objects/Specific/Hydroponics/rainbow_cannabis.rsi, state: dried }
|
||||
spawn: LeavesCannabisRainbowDried
|
||||
maxCount: 5
|
||||
itemSize: 5
|
||||
|
||||
@@ -4,11 +4,9 @@
|
||||
name: inflatable wall
|
||||
spawn: InflatableWallStack1
|
||||
maxCount: 10
|
||||
itemSize: 1
|
||||
|
||||
- type: stack
|
||||
id: InflatableDoor
|
||||
name: inflatable door
|
||||
spawn: InflatableDoorStack1
|
||||
maxCount: 4
|
||||
itemSize: 1
|
||||
|
||||
@@ -3,469 +3,402 @@
|
||||
name: steel tile
|
||||
spawn: FloorTileItemSteel
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileMetalDiamond
|
||||
name: steel tile
|
||||
spawn: FloorTileItemMetalDiamond
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileWood
|
||||
name: wood floor
|
||||
spawn: FloorTileItemWood
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileWhite
|
||||
name: white tile
|
||||
spawn: FloorTileItemWhite
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileDark
|
||||
name: dark tile
|
||||
spawn: FloorTileItemDark
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileTechmaint
|
||||
name: techmaint floor
|
||||
spawn: FloorTileItemTechmaint
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileFreezer
|
||||
name: freezer tile
|
||||
spawn: FloorTileItemFreezer
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileShowroom
|
||||
name: showroom tile
|
||||
spawn: FloorTileItemShowroom
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileGCircuit
|
||||
name: green-circuit floor
|
||||
spawn: FloorTileItemGCircuit
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileGold
|
||||
name: gold floor
|
||||
spawn: FloorTileItemGold
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileReinforced
|
||||
name: reinforced tile
|
||||
spawn: FloorTileItemReinforced
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileMono
|
||||
name: mono tile
|
||||
spawn: FloorTileItemMono
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileBrassFilled
|
||||
name: filled brass plate
|
||||
spawn: FloorTileItemBrassFilled
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileBrassReebe
|
||||
name: smooth brass plate
|
||||
spawn: FloorTileItemBrassReebe
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileLino
|
||||
name: linoleum floor
|
||||
spawn: FloorTileItemLino
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileHydro
|
||||
name: hydro tile
|
||||
spawn: FloorTileItemHydro
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileLime
|
||||
name: lime tile
|
||||
spawn: FloorTileItemLime
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileDirty
|
||||
name: dirty tile
|
||||
spawn: FloorTileItemDirty
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileStackShuttleWhite
|
||||
name: white shuttle tile
|
||||
spawn: FloorTileItemShuttleWhite
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileStackShuttleBlue
|
||||
name: blue shuttle tile
|
||||
spawn: FloorTileItemShuttleBlue
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileStackShuttleOrange
|
||||
name: orange shuttle tile
|
||||
spawn: FloorTileItemShuttleOrange
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileStackShuttlePurple
|
||||
name: purple shuttle tile
|
||||
spawn: FloorTileItemShuttlePurple
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileStackShuttleRed
|
||||
name: red shuttle tile
|
||||
spawn: FloorTileItemShuttleRed
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileStackShuttleGrey
|
||||
name: grey shuttle tile
|
||||
spawn: FloorTileItemShuttleGrey
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileStackShuttleBlack
|
||||
name: black shuttle tile
|
||||
spawn: FloorTileItemShuttleBlack
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileStackEighties
|
||||
name: eighties floor tile
|
||||
spawn: FloorTileItemEighties
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileStackArcadeBlue
|
||||
name: blue arcade tile
|
||||
spawn: FloorTileItemArcadeBlue
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileStackArcadeBlue2
|
||||
name: blue arcade tile
|
||||
spawn: FloorTileItemArcadeBlue2
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileStackArcadeRed
|
||||
name: red arcade tile
|
||||
spawn: FloorTileItemArcadeRed
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorCarpetRed
|
||||
name: red carpet tile
|
||||
spawn: FloorCarpetItemRed
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorCarpetBlack
|
||||
name: block carpet tile
|
||||
spawn: FloorCarpetItemBlack
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorCarpetBlue
|
||||
name: blue carpet tile
|
||||
spawn: FloorCarpetItemBlue
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorCarpetGreen
|
||||
name: green carpet tile
|
||||
spawn: FloorCarpetItemGreen
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorCarpetOrange
|
||||
name: orange carpet tile
|
||||
spawn: FloorCarpetItemOrange
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorCarpetSkyBlue
|
||||
name: skyblue carpet tile
|
||||
spawn: FloorCarpetItemSkyBlue
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorCarpetPurple
|
||||
name: purple carpet tile
|
||||
spawn: FloorCarpetItemPurple
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorCarpetPink
|
||||
name: pink carpet tile
|
||||
spawn: FloorCarpetItemPink
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorCarpetCyan
|
||||
name: cyan carpet tile
|
||||
spawn: FloorCarpetItemCyan
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorCarpetWhite
|
||||
name: white carpet tile
|
||||
spawn: FloorCarpetItemWhite
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileStackCarpetClown
|
||||
name: clown carpet tile
|
||||
spawn: FloorTileItemCarpetClown
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileStackCarpetOffice
|
||||
name: office carpet tile
|
||||
spawn: FloorTileItemCarpetOffice
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileStackBoxing
|
||||
name: boxing ring tile
|
||||
spawn: FloorTileItemBoxing
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileStackGym
|
||||
name: gym floor tile
|
||||
spawn: FloorTileItemGym
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileElevatorShaft
|
||||
name: elevator shaft tile
|
||||
spawn: FloorTileItemElevatorShaft
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileRockVault
|
||||
name: rock vault tile
|
||||
spawn: FloorTileItemRockVault
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileBlue
|
||||
name: blue floor tile
|
||||
spawn: FloorTileItemBlue
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileMining
|
||||
name: mining floor tile
|
||||
spawn: FloorTileItemMining
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileMiningDark
|
||||
name: dark mining floor tile
|
||||
spawn: FloorTileItemMiningDark
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileMiningLight
|
||||
name: light mining floor tile
|
||||
spawn: FloorTileItemMiningLight
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileBar
|
||||
name: item bar floor tile
|
||||
spawn: FloorTileItemBar
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileClown
|
||||
name: clown floor tile
|
||||
spawn: FloorTileItemClown
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileMime
|
||||
name: mime floor tile
|
||||
spawn: FloorTileItemMime
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileKitchen
|
||||
name: kitchen floor tile
|
||||
spawn: FloorTileItemKitchen
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileLaundry
|
||||
name: laundry floor tile
|
||||
spawn: FloorTileItemLaundry
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileConcrete
|
||||
name: concrete tile
|
||||
spawn: FloorTileItemGrayConcrete
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileGrayConcrete
|
||||
name: gray concrete tile
|
||||
spawn: FloorTileItemLaundry
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileOldConcrete
|
||||
name: old concrete tile
|
||||
spawn: FloorTileItemOldConcrete
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileSilver
|
||||
name: silver floor tile
|
||||
spawn: FloorTileItemSilver
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileBCircuit
|
||||
name: bcircuit floor tile
|
||||
spawn: FloorTileItemBCircuit
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileGrass
|
||||
name: grass floor tile
|
||||
spawn: FloorTileItemGrass
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileGrassJungle
|
||||
name: grass jungle floor tile
|
||||
spawn: FloorTileItemGrassJungle
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileSnow
|
||||
name: snow floor tile
|
||||
spawn: FloorTileItemSnow
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileWoodPattern
|
||||
name: wood pattern floor
|
||||
spawn: FloorTileItemWoodPattern
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileFlesh
|
||||
name: flesh floor
|
||||
spawn: FloorTileItemFlesh
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileSteelMaint
|
||||
name: steel maint floor
|
||||
spawn: FloorTileItemSteelMaint
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileGratingMaint
|
||||
name: grating maint floor
|
||||
spawn: FloorTileItemGratingMaint
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileWeb
|
||||
name: web tile
|
||||
spawn: FloorTileItemWeb
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
# Faux science tiles
|
||||
- type: stack
|
||||
@@ -473,35 +406,30 @@
|
||||
name: astro-grass floor
|
||||
spawn: FloorTileItemAstroGrass
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileMowedAstroGrass
|
||||
name: mowed astro-grass floor
|
||||
spawn: FloorTileItemMowedAstroGrass
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileJungleAstroGrass
|
||||
name: jungle astro-grass floor
|
||||
spawn: FloorTileItemJungleAstroGrass
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileAstroIce
|
||||
name: astro-ice floor
|
||||
spawn: FloorTileItemAstroIce
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileAstroSnow
|
||||
name: astro-snow floor
|
||||
spawn: FloorTileItemAstroSnow
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: FloorTileWoodLarge
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
icon: { sprite: "/Textures/Objects/Specific/Medical/medical.rsi", state: ointment }
|
||||
spawn: Ointment
|
||||
maxCount: 10
|
||||
itemSize: 1
|
||||
|
||||
- type: stack
|
||||
id: AloeCream
|
||||
@@ -12,7 +11,6 @@
|
||||
icon: { sprite: "/Textures/Objects/Specific/Hydroponics/aloe.rsi", state: cream }
|
||||
spawn: AloeCream
|
||||
maxCount: 10
|
||||
itemSize: 1
|
||||
|
||||
- type: stack
|
||||
id: Gauze
|
||||
@@ -20,7 +18,6 @@
|
||||
icon: { sprite: "/Textures/Objects/Specific/Medical/medical.rsi", state: gauze }
|
||||
spawn: Gauze
|
||||
maxCount: 10
|
||||
itemSize: 1
|
||||
|
||||
- type: stack
|
||||
id: Brutepack
|
||||
@@ -28,7 +25,6 @@
|
||||
icon: { sprite: "/Textures/Objects/Specific/Medical/medical.rsi", state: gauze }
|
||||
spawn: Brutepack
|
||||
maxCount: 10
|
||||
itemSize: 1
|
||||
|
||||
- type: stack
|
||||
id: Bloodpack
|
||||
@@ -36,7 +32,6 @@
|
||||
icon: { sprite: "/Textures/Objects/Specific/Medical/medical.rsi", state: bloodpack }
|
||||
spawn: Bloodpack
|
||||
maxCount: 10
|
||||
itemSize: 1
|
||||
|
||||
- type: stack
|
||||
id: MedicatedSuture
|
||||
@@ -44,7 +39,6 @@
|
||||
icon: {sprite: "/Textures/Objects/Specific/Medical/medical.rsi", state: medicated-suture }
|
||||
spawn: MedicatedSuture
|
||||
maxCount: 10
|
||||
itemSize: 1
|
||||
|
||||
- type: stack
|
||||
id: RegenerativeMesh
|
||||
@@ -52,6 +46,4 @@
|
||||
icon: {sprite: "/Textures/Objects/Specific/Medical/medical.rsi", state: regenerative-mesh}
|
||||
spawn: RegenerativeMesh
|
||||
maxCount: 10
|
||||
itemSize: 1
|
||||
|
||||
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
icon: { sprite: "/Textures/Objects/Tools/cable-coils.rsi", state: coil-30 }
|
||||
spawn: CableApcStack1
|
||||
maxCount: 30
|
||||
itemSize: 1
|
||||
|
||||
- type: stack
|
||||
id: CableMV
|
||||
@@ -12,7 +11,6 @@
|
||||
icon: { sprite: "/Textures/Objects/Tools/cable-coils.rsi", state: coilmv-30 }
|
||||
spawn: CableMVStack1
|
||||
maxCount: 30
|
||||
itemSize: 1
|
||||
|
||||
- type: stack
|
||||
id: CableHV
|
||||
@@ -20,4 +18,3 @@
|
||||
icon: { sprite: "/Textures/Objects/Tools/cable-coils.rsi", state: coilhv-30 }
|
||||
spawn: CableHVStack1
|
||||
maxCount: 30
|
||||
itemSize: 1
|
||||
|
||||
@@ -3,4 +3,21 @@
|
||||
name: artifact fragment
|
||||
spawn: ArtifactFragment1
|
||||
maxCount: 30
|
||||
itemSize: 5
|
||||
|
||||
- type: stack
|
||||
id: Capacitor
|
||||
name: capacitor
|
||||
spawn: CapacitorStockPart
|
||||
maxCount: 10
|
||||
|
||||
- type: stack
|
||||
id: MicroManipulator
|
||||
name: micro manipulator
|
||||
spawn: MicroManipulatorStockPart
|
||||
maxCount: 10
|
||||
|
||||
- type: stack
|
||||
id: MatterBin
|
||||
name: matter bin
|
||||
spawn: MatterBinStockPart
|
||||
maxCount: 10
|
||||
|
||||
Reference in New Issue
Block a user