]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Makes machine parts stackable, removes unused field in stack prototypes (#28434)
authorAJCM-git <60196617+AJCM-git@users.noreply.github.com>
Sat, 1 Jun 2024 17:49:28 +0000 (13:49 -0400)
committerGitHub <noreply@github.com>
Sat, 1 Jun 2024 17:49:28 +0000 (13:49 -0400)
* 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

22 files changed:
Content.IntegrationTests/Tests/MaterialArbitrageTest.cs
Content.Server/Construction/MachineFrameSystem.cs
Content.Server/Stack/StackSystem.cs
Content.Shared/Construction/MachinePartSystem.cs
Content.Shared/Materials/MaterialPrototype.cs
Content.Shared/Stacks/StackPrototype.cs
Resources/Prototypes/Entities/Objects/Misc/machine_parts.yml
Resources/Prototypes/Entities/Objects/Tools/fulton.yml
Resources/Prototypes/Stacks/Materials/Sheets/glass.yml
Resources/Prototypes/Stacks/Materials/Sheets/metal.yml
Resources/Prototypes/Stacks/Materials/Sheets/other.yml
Resources/Prototypes/Stacks/Materials/crystals.yml
Resources/Prototypes/Stacks/Materials/ingots.yml
Resources/Prototypes/Stacks/Materials/materials.yml
Resources/Prototypes/Stacks/Materials/ore.yml
Resources/Prototypes/Stacks/Materials/parts.yml
Resources/Prototypes/Stacks/consumable_stacks.yml
Resources/Prototypes/Stacks/engineering_stacks.yml
Resources/Prototypes/Stacks/floor_tile_stacks.yml
Resources/Prototypes/Stacks/medical_stacks.yml
Resources/Prototypes/Stacks/power_stacks.yml
Resources/Prototypes/Stacks/science_stacks.yml

index 7f9c02fc13bcdc4875b256526970c9ebad2b3ef7..ed1e5549438f016f95593b001dc333db8354a179 100644 (file)
@@ -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))
index 09d8d413ecd73806bd85849269b1c2889d748a7e..e20c36d8498c59b6f681a53dfd399271eb279e7c 100644 (file)
@@ -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;
             }
 
index 001093a8dd4f9b49e7fccf4936e7be97a131c5ed..e34592b45f9c0f81f098f21c11da47e7ad036a22 100644 (file)
@@ -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.
index 1a19040b41062aa12384e1e24e7f095a6a3786ba..359b58c8816f69e6f94de455b37cd2b6a56635f8 100644 (file)
@@ -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)
                     {
index 905a2359d38b062e896ec7979e58ce6cea85da89..5adf13213ebe280dbf7332706f0905b2a134361c 100644 (file)
@@ -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;
index 28b7da8f2ae88ccdec9e820ae9a8accaf60e1546..f108419a9efd5a64ca22f2c18c03080efaede1ca 100644 (file)
@@ -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;
 }
-
index 62a63c80c31a233a859d5541dfd897f6f7619bb8..37de294cce89ae6523ccfd1a82fda4a2b0a95f5f 100644 (file)
@@ -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
index 5255e5f303b8f194740d6420d30b6d3624d14d55..cfd0b8f770091292d8ff3c545bcd571b5a321e4c 100644 (file)
@@ -7,7 +7,6 @@
     state: extraction_pack
   spawn: Fulton1
   maxCount: 10
-  itemSize: 2
 
 # Entities
 - type: entity
index 0caffb301f500c4c9574432cc009ed57f0172a13..cd6aed7cdfcb0199058238847a8c65da2d699962 100644 (file)
@@ -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
index 77f750c205b987b5a0b22fbe00a451bf02efffe9..7520130b9be14e6110054250d6a8061ee523f6ff 100644 (file)
@@ -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
index 96f22ae656c9b4d074de5bd5c94f63eeeb4dbab6..565b1fc1aeec0c3d9b73d6ee3f86fdd7e2cdb610 100644 (file)
@@ -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
index 274f9c10eab1090894fd399239463c9afd91f179..28f4ed70ca0247fc5486e7a9cfd9a16fb3613605 100644 (file)
@@ -3,4 +3,3 @@
   name: telecrystal
   icon: Objects/Specific/Syndicate/telecrystal.rsi
   spawn: Telecrystal1
-  itemSize: 1
index 956523c92ba0563943158a10add9d7f1cc14fcca..1fd67a096dc7340f58c747cf3253d7b47775c337 100644 (file)
@@ -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
index cc963dde59a4619a9cf8d71bbf0d64050090c1ea..1157dc3f004c9d3e3c8c8c7c3320c2219bdb59e0 100644 (file)
@@ -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
   icon: { sprite: /Textures/Objects/Misc/reagent_fillings.rsi, state: powderpile }
   spawn: MaterialGunpowder
   maxCount: 60
-  itemSize: 1
index 2a95393c27bbf2ec9a43a73c524ea7ea99263a31..51254b5a7a68b7e880b6abffea2f0f5b50162971 100644 (file)
@@ -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
index 947bbb1bf25afea0baf30b21ddd6c282fb920cf2..50ceb28757a729e47081cf5c10ac453087a5521c 100644 (file)
@@ -4,4 +4,3 @@
   icon: { sprite: /Textures/Objects/Materials/parts.rsi, state: rods }
   spawn: PartRodMetal1
   maxCount: 30
-  itemSize: 1
index 2936772f080ca2c7b94e629634bcf8d196e8f933..e7feab7b52023ef1aac85657c7dbfb40f8237a76 100644 (file)
@@ -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
   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
index 77cc620402308a677e52eb46490abce66a72832a..b4550015dc4561b5c4ff54ad53d6775917c51b38 100644 (file)
@@ -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
index c5e37013b870fb0b913a0ff13bad7192a9e02cd9..c88786f0dc81bc2c246bdc7639c7cdde7282bba3 100644 (file)
   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
   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
   name: large wood floor
   spawn: FloorTileItemWoodLarge
-  maxCount: 30
\ No newline at end of file
+  maxCount: 30
index 9d2b77ec933f77790efbe770b5513aae3ca32e7e..7ad3c21634c77679c89100d1eaced2fa6ce5e7ab 100644 (file)
@@ -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
-
 
index 5acf4819dec3158c4d7efae7c2ab8122fd34cedd..7f015659e92ed52696dd41b980385172bca9f26a 100644 (file)
@@ -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
index 010a5dc659a4e3af37d5d04cbc44365d2b341f71..bf58fad9154348c60e7a7af9b5804cb6c2a1d0e8 100644 (file)
@@ -3,4 +3,21 @@
   name: artifact fragment
   spawn: ArtifactFragment1
   maxCount: 30
-  itemSize: 5
\ No newline at end of file
+
+- 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