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:
AJCM-git
2024-06-01 13:49:28 -04:00
committed by GitHub
parent a29b6a6894
commit 09256cfaa5
22 changed files with 88 additions and 168 deletions

View 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))

View 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;
}

View 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.

View 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)
{

View 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;

View 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;
}

View 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

View File

@@ -7,7 +7,6 @@
state: extraction_pack
spawn: Fulton1
maxCount: 10
itemSize: 2
# Entities
- type: entity

View 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

View 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

View 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

View File

@@ -3,4 +3,3 @@
name: telecrystal
icon: Objects/Specific/Syndicate/telecrystal.rsi
spawn: Telecrystal1
itemSize: 1

View 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

View 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
@@ -100,4 +88,3 @@
icon: { sprite: /Textures/Objects/Misc/reagent_fillings.rsi, state: powderpile }
spawn: MaterialGunpowder
maxCount: 60
itemSize: 1

View 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

View File

@@ -4,4 +4,3 @@
icon: { sprite: /Textures/Objects/Materials/parts.rsi, state: rods }
spawn: PartRodMetal1
maxCount: 30
itemSize: 1

View 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
@@ -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

View 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

View File

@@ -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

View 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

View 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

View File

@@ -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