diff --git a/Content.IntegrationTests/Tests/PrototypeSaveTest.cs b/Content.IntegrationTests/Tests/PrototypeSaveTest.cs index 91f26e3f33..97a222ef6a 100644 --- a/Content.IntegrationTests/Tests/PrototypeSaveTest.cs +++ b/Content.IntegrationTests/Tests/PrototypeSaveTest.cs @@ -53,16 +53,8 @@ public sealed class PrototypeSaveTest "GlowstickBlue", "Thruster", "Gyroscope", - "RemoteSignaller", - "filingCabinet", - "filingCabinetTall", - "filingCabinetDrawer", - "WeaponLauncherChinaLake", - "WeaponLauncherRocket", - "WeaponLauncherMultipleRocket", "JawsOfLife", "SyndicateJawsOfLife", - "LightReplacer", "PowerDrill", "Omnitool", "GasPressurePump", @@ -75,24 +67,9 @@ public sealed class PrototypeSaveTest "GasMixerFlipped", "HospitalCurtainsOpen", "CargoPallet", - "DisposalHolder", "ParticlesProjectile", - "AMEController", - "AMEControllerUnanchored", - "MopBucket", - "JanitorialTrolley", "FloorDrain", - "OrganHumanLungs", - "SprayBottle", - "OrganRatLungs", - "SentientSlimeCore", - "OrganSlimeLungs", - "OrganVoxLungs", - "OrganAnimalLungs", "Floodlight", - "EmergencyMedipen", - "AntiPoisonMedipen", - "SpaceMedipen", "HolosignWetFloor", "HeadSkeleton", "PoweredSmallLightEmpty", @@ -102,29 +79,11 @@ public sealed class PrototypeSaveTest "DeployableBarrier", "CrateArtifactContainer", "CloningPod", - "DrinkColaCan", - "WeaponImprovisedPneumaticCannon", - "LauncherCreamPie", "GravityGenerator", "GravityGeneratorMini", - "MagazinePistolSubMachineGunTopMounted", - "EpinephrineChemistryBottle", - "RobustHarvestChemistryBottle", - "NocturineChemistryBottle", - "EphedrineChemistryBottle", - "OmnizineChemistryBottle", - "Beaker", - "LargeBeaker", - "CryostasisBeaker", - "BluespaceBeaker", - "ClusterBang", - "ClusterBangFull", - "Vaccinator", "AirlockExternalShuttleLocked", "AirlockExternalGlassShuttleLocked", "AirlockExternalGlassShuttleEmergencyLocked", - "ClothingHeadHatChef", - "Bucket", "AirlockShuttle", "AirlockGlassShuttle", // The followjng are all fixture-less phsyics entities that set can-collide to false on init. diff --git a/Resources/Prototypes/Body/Organs/animal.yml b/Resources/Prototypes/Body/Organs/animal.yml index 930abfad3e..d8f036e604 100644 --- a/Resources/Prototypes/Body/Organs/animal.yml +++ b/Resources/Prototypes/Body/Organs/animal.yml @@ -27,6 +27,11 @@ groups: - id: Gas rateModifier: 100.0 + - type: SolutionContainerManager + solutions: + Lung: + maxVol: 100.0 + canReact: false - type: entity id: OrganAnimalStomach diff --git a/Resources/Prototypes/Body/Organs/human.yml b/Resources/Prototypes/Body/Organs/human.yml index 6c10aa2002..9c2682d026 100644 --- a/Resources/Prototypes/Body/Organs/human.yml +++ b/Resources/Prototypes/Body/Organs/human.yml @@ -99,6 +99,15 @@ groups: - id: Gas rateModifier: 100.0 + - type: SolutionContainerManager + solutions: + organ: + reagents: + - ReagentId: Nutriment + Quantity: 10 + Lung: + maxVol: 100.0 + canReact: false - type: entity id: OrganHumanHeart diff --git a/Resources/Prototypes/Body/Organs/slime.yml b/Resources/Prototypes/Body/Organs/slime.yml index 13c3c3bd31..825959752b 100644 --- a/Resources/Prototypes/Body/Organs/slime.yml +++ b/Resources/Prototypes/Body/Organs/slime.yml @@ -21,6 +21,11 @@ - id: Medicine - id: Poison - id: Narcotic + - type: SolutionContainerManager + solutions: + stomach: + maxVol: 50.0 + - type: entity id: OrganSlimeLungs @@ -42,3 +47,12 @@ groups: - id: Gas rateModifier: 100.0 + - type: SolutionContainerManager + solutions: + organ: + reagents: + - ReagentId: Nutriment + Quantity: 10 + Lung: + maxVol: 100.0 + canReact: false diff --git a/Resources/Prototypes/Entities/Clothing/Head/hats.yml b/Resources/Prototypes/Entities/Clothing/Head/hats.yml index 456eba073f..da15eb96bb 100644 --- a/Resources/Prototypes/Entities/Clothing/Head/hats.yml +++ b/Resources/Prototypes/Entities/Clothing/Head/hats.yml @@ -113,6 +113,9 @@ interfaces: - key: enum.StorageUiKey.Key type: StorageBoundUserInterface + - type: ContainerContainer + containers: + storagebase: !type:Container - type: entity parent: ClothingHeadBase diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml index 6b75713141..91b4c2a432 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml @@ -65,7 +65,6 @@ tags: - Cola - Recyclable - - Trash - type: Sprite sprite: Objects/Consumable/Drinks/cola.rsi - type: Item diff --git a/Resources/Prototypes/Entities/Objects/Devices/Electronics/signaller.yml b/Resources/Prototypes/Entities/Objects/Devices/Electronics/signaller.yml index 126ef5668a..f37975c303 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/Electronics/signaller.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/Electronics/signaller.yml @@ -13,3 +13,6 @@ - type: UseDelay - type: StaticPrice price: 40 + - type: SignalTransmitter + outputs: + Pressed: [] diff --git a/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/sprays.yml b/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/sprays.yml index ebb4efb1a0..e54dedb066 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/sprays.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/sprays.yml @@ -46,6 +46,9 @@ - type: Spillable solution: spray - type: ItemCooldown + - type: Tag + tags: + - Spray - type: Spray transferAmount: 1 - type: Item diff --git a/Resources/Prototypes/Entities/Objects/Specific/Janitorial/janitor.yml b/Resources/Prototypes/Entities/Objects/Specific/Janitorial/janitor.yml index 8e1e63a2de..47a97ac403 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Janitorial/janitor.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Janitorial/janitor.yml @@ -73,6 +73,7 @@ - type: Pullable - type: Drink isOpen: true + solution: bucket - type: Appearance - type: SolutionContainerVisuals maxFillLevels: 3 @@ -221,6 +222,13 @@ type: StorageBoundUserInterface - type: Drink isOpen: true + solution: bucket + - type: ContainerContainer + containers: + storagebase: !type:Container + ents: [] + mop_slot: !type:ContainerSlot {} + trashbag_slot: !type:ContainerSlot {} - type: entity id: FloorDrain diff --git a/Resources/Prototypes/Entities/Objects/Specific/Janitorial/spray.yml b/Resources/Prototypes/Entities/Objects/Specific/Janitorial/spray.yml index afd87b996c..5fcb6712a8 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Janitorial/spray.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Janitorial/spray.yml @@ -8,6 +8,7 @@ - type: Tag tags: - Spray + - Trash - type: Sprite netsync: false sprite: Objects/Specific/Janitorial/janitorial.rsi @@ -38,6 +39,9 @@ suffix: Filled parent: SprayBottle components: + - type: Tag + tags: + - Spray - type: SolutionContainerManager solutions: spray: diff --git a/Resources/Prototypes/Entities/Objects/Specific/Medical/hypospray.yml b/Resources/Prototypes/Entities/Objects/Specific/Medical/hypospray.yml index 52b505374d..96fb580104 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Medical/hypospray.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Medical/hypospray.yml @@ -96,6 +96,8 @@ Quantity: 12 - ReagentId: TranexamicAcid Quantity: 3 + - type: Tag + tags: [] - type: entity @@ -113,6 +115,8 @@ Quantity: 10 - ReagentId: Epinephrine Quantity: 5 + - type: Tag + tags: [] - type: entity name: space medipen @@ -143,6 +147,8 @@ Quantity: 10 - ReagentId: Barozine Quantity: 20 + - type: Tag + tags: [] - type: entity name: pen diff --git a/Resources/Prototypes/Entities/Objects/Specific/chemistry-bottles.yml b/Resources/Prototypes/Entities/Objects/Specific/chemistry-bottles.yml index 55a10eb3c7..3eaa719a77 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/chemistry-bottles.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/chemistry-bottles.yml @@ -125,6 +125,9 @@ reagents: - ReagentId: Epinephrine Quantity: 30 + - type: Tag + tags: + - Bottle - type: entity id: RobustHarvestChemistryBottle @@ -139,6 +142,9 @@ reagents: - ReagentId: RobustHarvest Quantity: 30 + - type: Tag + tags: + - Bottle - type: entity id: UnstableMutagenChemistryBottle @@ -170,6 +176,9 @@ reagents: - ReagentId: Nocturine Quantity: 30 + - type: Tag + tags: + - Bottle - type: entity id: EphedrineChemistryBottle @@ -183,6 +192,9 @@ reagents: - ReagentId: Ephedrine Quantity: 30 + - type: Tag + tags: + - Bottle - type: entity id: OmnizineChemistryBottle @@ -196,3 +208,6 @@ reagents: - ReagentId: Omnizine Quantity: 30 + - type: Tag + tags: + - Bottle diff --git a/Resources/Prototypes/Entities/Objects/Specific/chemistry.yml b/Resources/Prototypes/Entities/Objects/Specific/chemistry.yml index 2d38082fe9..87bd782de7 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/chemistry.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/chemistry.yml @@ -40,6 +40,7 @@ type: TransferAmountBoundUserInterface - type: Drink isOpen: true + solution: beaker - type: Appearance - type: SolutionContainerVisuals maxFillLevels: 6 diff --git a/Resources/Prototypes/Entities/Objects/Tools/bucket.yml b/Resources/Prototypes/Entities/Objects/Tools/bucket.yml index 0d0d6bd84d..cbcd4851a2 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/bucket.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/bucket.yml @@ -6,6 +6,7 @@ components: - type: Drink isOpen: true + solution: bucket - type: Clickable - type: Sprite netsync: false diff --git a/Resources/Prototypes/Entities/Objects/Tools/light_replacer.yml b/Resources/Prototypes/Entities/Objects/Tools/light_replacer.yml index b9b526f1a5..208843ad19 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/light_replacer.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/light_replacer.yml @@ -22,3 +22,6 @@ - DroneUsable - type: StaticPrice price: 100 + - type: ContainerContainer + containers: + light_replacer_storage: !type:Container diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/pistol.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/pistol.yml index 5dc95a3836..003200b72d 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/pistol.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/pistol.yml @@ -96,6 +96,7 @@ steps: 2 zeroVisible: false - type: Appearance + - type: entity id: MagazinePistolSubMachineGunTopMounted name: WT550 magazine (.35 auto top-mounted) @@ -123,6 +124,9 @@ steps: 6 zeroVisible: false - type: Appearance + - type: ContainerContainer + containers: + ballistic-ammo: !type:Container - type: entity id: MagazinePistolCalicoTopMounted diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Launchers/launchers.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Launchers/launchers.yml index abf19ae810..e6ea54f396 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Launchers/launchers.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Launchers/launchers.yml @@ -16,6 +16,10 @@ size: 60 - type: StaticPrice price: 500 + - type: ContainerContainer + containers: + ballistic-ammo: !type:Container + ents: [] - type: entity name: china lake @@ -128,9 +132,6 @@ tags: - CartridgeRocket proto: MeteorLarge - - type: ContainerContainer - containers: - ballistic-ammo: !type:Container - type: entity name: immovable rod launcher diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/pneumatic_cannon.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/pneumatic_cannon.yml index 57d5d19059..b8a925e402 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/pneumatic_cannon.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/pneumatic_cannon.yml @@ -31,6 +31,11 @@ - type: Construction graph: PneumaticCannon node: cannon + - type: ContainerContainer + containers: + storagebase: !type:Container + ents: [] + PneumaticCannon-gasTank: !type:ContainerSlot - type: entity name: pie cannon @@ -60,3 +65,8 @@ quickEquip: false slots: - Back + - type: ContainerContainer + containers: + storagebase: !type:Container + ents: [] + PneumaticCannon-gasTank: !type:ContainerSlot diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Throwable/clusterbang.yml b/Resources/Prototypes/Entities/Objects/Weapons/Throwable/clusterbang.yml index 94fb4066d1..b2a17e1dd2 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Throwable/clusterbang.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Throwable/clusterbang.yml @@ -13,6 +13,9 @@ - type: ClusterGrenadeVisualizer state: base - type: ClusterGrenade + - type: ContainerContainer + containers: + cluster-flash: !type:Container - type: entity parent: ClusterBang diff --git a/Resources/Prototypes/Entities/Structures/Machines/Medical/vaccinator.yml b/Resources/Prototypes/Entities/Structures/Machines/Medical/vaccinator.yml index e01f792370..0dc1f479be 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/Medical/vaccinator.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/Medical/vaccinator.yml @@ -24,3 +24,7 @@ runningState: running - type: Machine board: VaccinatorMachineCircuitboard + - type: ContainerContainer + containers: + machine_board: !type:Container + machine_parts: !type:Container diff --git a/Resources/Prototypes/Entities/Structures/Machines/cloning_machine.yml b/Resources/Prototypes/Entities/Structures/Machines/cloning_machine.yml index 7c9d811b81..602fdb0864 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/cloning_machine.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/cloning_machine.yml @@ -65,3 +65,8 @@ - type: Climbable - type: StaticPrice price: 1000 + - type: ContainerContainer + containers: + machine_board: !type:Container + machine_parts: !type:Container + clonepod-bodyContainer: !type:ContainerSlot diff --git a/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/portable.yml b/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/portable.yml index 5d9fdb262f..d2ff430366 100644 --- a/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/portable.yml +++ b/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/portable.yml @@ -89,3 +89,7 @@ acts: [ "Destruction" ] - type: CollideOnAnchor enable: true + - type: ContainerContainer + containers: + machine_board: !type:Container + machine_parts: !type:Container diff --git a/Resources/Prototypes/Entities/Structures/Piping/Disposal/pipes.yml b/Resources/Prototypes/Entities/Structures/Piping/Disposal/pipes.yml index e2f95e17f4..075f538735 100644 --- a/Resources/Prototypes/Entities/Structures/Piping/Disposal/pipes.yml +++ b/Resources/Prototypes/Entities/Structures/Piping/Disposal/pipes.yml @@ -64,7 +64,7 @@ - type: DisposalHolder - type: ContainerContainer containers: - DisposalHolder: !type:Container + DisposalHolderComponent: !type:Container # Pipes diff --git a/Resources/Prototypes/Entities/Structures/Storage/filing_cabinets.yml b/Resources/Prototypes/Entities/Structures/Storage/filing_cabinets.yml index 5d12d226c5..6cf754dad8 100644 --- a/Resources/Prototypes/Entities/Structures/Storage/filing_cabinets.yml +++ b/Resources/Prototypes/Entities/Structures/Storage/filing_cabinets.yml @@ -37,6 +37,9 @@ layer: - MachineLayer - type: InteractionOutline + - type: ContainerContainer + containers: + storagebase: !type:Container - type: entity name: tall cabinet @@ -90,3 +93,6 @@ layer: - MachineLayer - type: InteractionOutline + - type: ContainerContainer + containers: + storagebase: !type:Container