From 8d72e7d93279242251fe8edc325e6d926340fa62 Mon Sep 17 00:00:00 2001 From: Plykiya <58439124+Plykiya@users.noreply.github.com> Date: Sat, 10 Aug 2024 20:12:26 -0700 Subject: [PATCH] Make head of department lockers use EntityTables (#30854) * EntityTables for head of department lockers * I hope this works * even smaller --------- Co-authored-by: plykiya --- .../Catalog/Fills/Lockers/heads.yml | 543 ++++++++++-------- .../Catalog/Fills/Lockers/suit_storage.yml | 50 +- 2 files changed, 321 insertions(+), 272 deletions(-) diff --git a/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml b/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml index af45bdfc6a..a56c31566c 100644 --- a/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml +++ b/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml @@ -1,308 +1,365 @@ +- type: entityTable + id: LockerFillQuarterMaster + table: !type:AllSelector + children: + - id: BoxEncryptionKeyCargo + - id: BoxFolderQmClipboard + - id: CargoBountyComputerCircuitboard + - id: CargoRequestComputerCircuitboard + - id: CargoSaleComputerCircuitboard + - id: CargoShuttleComputerCircuitboard + - id: CargoShuttleConsoleCircuitboard + - id: CigPackGreen + prob: 0.50 + - id: ClothingHeadsetAltCargo + - id: DoorRemoteCargo + - id: RubberStampApproved + - id: RubberStampDenied + - id: RubberStampQm + - id: SalvageShuttleConsoleCircuitboard + - type: entity id: LockerQuarterMasterFilled suffix: Filled parent: LockerQuarterMaster components: - - type: StorageFill - contents: - - id: BoxFolderQmClipboard - - id: CargoRequestComputerCircuitboard - - id: CargoSaleComputerCircuitboard - - id: CargoShuttleComputerCircuitboard - - id: CargoShuttleConsoleCircuitboard - - id: SalvageShuttleConsoleCircuitboard - - id: CargoBountyComputerCircuitboard - - id: CigPackGreen - prob: 0.50 - - id: DoorRemoteCargo - - id: RubberStampQm - - id: RubberStampDenied - - id: RubberStampApproved - - id: ClothingHeadsetAltCargo - - id: BoxEncryptionKeyCargo + - type: EntityTableContainerFill + containers: + entity_storage: !type:NestedSelector + tableId: LockerFillQuarterMaster + +# No laser table +- type: entityTable + id: LockerFillCaptainNoLaser + table: !type:AllSelector + children: + - id: CaptainIDCard + - id: CigarGoldCase + prob: 0.25 + - id: ClothingBeltSheathFilled + - id: ClothingHeadsetAltCommand + - id: ClothingOuterArmorCaptainCarapace + - id: CommsComputerCircuitboard + - id: DoorRemoteCommand + - id: MedalCase + - id: NukeDisk + - id: PinpointerNuclear + - id: PlushieNuke + prob: 0.1 + - id: RubberStampCaptain + - id: SpaceCash1000 + - id: WeaponDisabler +# No laser table + Laser table +- type: entityTable + id: LockerFillCaptainLaser + table: !type:AllSelector + children: + - !type:NestedSelector + tableId: LockerFillCaptainNoLaser + - id: WeaponAntiqueLaser + +# Hardsuit table, used for suit storage as well +- type: entityTable + id: FillCaptainHardsuit + table: !type:AllSelector + children: + - id: ClothingOuterHardsuitCap + - id: ClothingMaskGasCaptain + - id: JetpackCaptainFilled + - id: OxygenTankFilled + +# No laser locker, used when the antique laser is placed in the special display crate - type: entity - id: LockerCaptainFilledHardsuit - suffix: Filled, Hardsuit + id: LockerCaptainFilledNoLaser + suffix: Filled parent: LockerCaptain components: - - type: StorageFill - contents: - - id: ClothingOuterArmorCaptainCarapace - - id: NukeDisk - - id: PinpointerNuclear - - id: CaptainIDCard - - id: ClothingOuterHardsuitCap - - id: ClothingMaskGasCaptain - - id: WeaponDisabler - - id: CommsComputerCircuitboard - - id: ClothingHeadsetAltCommand - - id: SpaceCash1000 - - id: PlushieNuke - prob: 0.1 - - id: CigarGoldCase - prob: 0.25 - - id: ClothingBeltSheathFilled - - id: DoorRemoteCommand - - id: RubberStampCaptain - - id: WeaponAntiqueLaser - - id: JetpackCaptainFilled - - id: MedalCase + - type: EntityTableContainerFill + containers: + entity_storage: !type:NestedSelector + tableId: LockerFillCaptainNoLaser +# No Laser + Laser locker - type: entity id: LockerCaptainFilled suffix: Filled, AntiqueLaser parent: LockerCaptain components: - - type: StorageFill - contents: - - id: ClothingOuterArmorCaptainCarapace - - id: NukeDisk - - id: PinpointerNuclear - - id: CaptainIDCard - - id: WeaponDisabler - - id: CommsComputerCircuitboard - - id: ClothingHeadsetAltCommand - - id: SpaceCash1000 - - id: PlushieNuke - prob: 0.1 - - id: CigarGoldCase - prob: 0.25 - - id: ClothingBeltSheathFilled - - id: DoorRemoteCommand - - id: RubberStampCaptain - - id: WeaponAntiqueLaser - - id: JetpackCaptainFilled - - id: MedalCase + - type: EntityTableContainerFill + containers: + entity_storage: !type:NestedSelector + tableId: LockerFillCaptainLaser +# No Laser + Laser + Hardsuit locker - type: entity - id: LockerCaptainFilledNoLaser - suffix: Filled + id: LockerCaptainFilledHardsuit + suffix: Filled, Hardsuit parent: LockerCaptain components: - - type: StorageFill - contents: - - id: ClothingOuterArmorCaptainCarapace - - id: NukeDisk - - id: PinpointerNuclear - - id: CaptainIDCard - - id: WeaponDisabler - - id: CommsComputerCircuitboard - - id: ClothingHeadsetAltCommand - - id: SpaceCash1000 - - id: PlushieNuke - prob: 0.1 - - id: CigarGoldCase - prob: 0.25 - - id: ClothingBeltSheathFilled - - id: DoorRemoteCommand - - id: RubberStampCaptain - - id: JetpackCaptainFilled - - id: MedalCase + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - !type:NestedSelector + tableId: LockerFillCaptainLaser + - !type:NestedSelector + tableId: FillCaptainHardsuit + +- type: entityTable + id: LockerFillHeadOfPersonnel + table: !type:AllSelector + children: + - id: AccessConfigurator + - id: BoxEncryptionKeyPassenger + - id: BoxEncryptionKeyService + - id: BoxHeadset + - id: BoxID + - id: BoxPDA + - id: CigarGoldCase + prob: 0.25 + # Fuck the HoP they don't deserve fucking cigars. + # Yes they do fuck you. + - id: ClothingBackpackIan + prob: 0.5 + - id: ClothingHeadsetCommand + - id: ClothingNeckGoldmedal + - id: DoorRemoteService + - id: HoPIDCard + - id: IDComputerCircuitboard + - id: RubberStampApproved + - id: RubberStampDenied + - id: RubberStampHop + - id: WeaponDisabler - type: entity id: LockerHeadOfPersonnelFilled suffix: Filled parent: LockerHeadOfPersonnel components: - - type: StorageFill - contents: - - id: HoPIDCard - - id: ClothingHeadsetCommand - - id: BoxPDA - - id: BoxID - - id: BoxHeadset - - id: IDComputerCircuitboard - - id: WeaponDisabler - - id: CigarGoldCase - prob: 0.25 - # Fuck the HoP they don't deserve fucking cigars. - # Yes they do fuck you. - - id: DoorRemoteService - - id: ClothingNeckGoldmedal - - id: RubberStampHop - - id: RubberStampDenied - - id: RubberStampApproved - - id: BoxEncryptionKeyPassenger - - id: BoxEncryptionKeyService - - id: ClothingBackpackIan - prob: 0.5 - - id: AccessConfigurator + - type: EntityTableContainerFill + containers: + entity_storage: !type:NestedSelector + tableId: LockerFillHeadOfPersonnel -- type: entity - id: LockerChiefEngineerFilledHardsuit - suffix: Filled, Hardsuit - parent: LockerChiefEngineer - components: - - type: StorageFill - contents: - - id: ClothingOuterHardsuitEngineeringWhite - - id: ClothingMaskBreath - - id: ClothingEyesGlassesMeson - - id: ClothingBeltChiefEngineerFilled - - id: ClothingShoesBootsMagAdv - - id: ClothingHandsGlovesColorYellow - - id: CigarCase - prob: 0.15 - - id: DoorRemoteEngineering - - id: RubberStampCE - - id: JetpackVoidFilled - - id: ClothingHeadsetAltEngineering - - id: BoxEncryptionKeyEngineering - - id: AccessConfigurator - - id: RCD - - id: RCDAmmo +# No hardsuit table +- type: entityTable + id: LockerFillChiefEngineerNoHardsuit + table: !type:AllSelector + children: + - id: AccessConfigurator + - id: BoxEncryptionKeyEngineering + - id: CigarCase + prob: 0.15 + - id: ClothingBeltChiefEngineerFilled + - id: ClothingEyesGlassesMeson + - id: ClothingHandsGlovesColorYellow + - id: ClothingHeadsetAltEngineering + - id: DoorRemoteEngineering + - id: RCD + - id: RCDAmmo + - id: RubberStampCE +# Hardsuit table, used for suit storage as well +- type: entityTable + id: FillChiefEngineerHardsuit + table: !type:AllSelector + children: + - id: ClothingMaskBreath + - id: ClothingOuterHardsuitEngineeringWhite + - id: ClothingShoesBootsMagAdv + - id: JetpackVoidFilled + - id: OxygenTankFilled + +# No hardsuit locker - type: entity id: LockerChiefEngineerFilled suffix: Filled parent: LockerChiefEngineer components: - - type: StorageFill - contents: - - id: ClothingEyesGlassesMeson - - id: ClothingBeltChiefEngineerFilled - - id: ClothingHandsGlovesColorYellow - - id: CigarCase - prob: 0.15 - - id: DoorRemoteEngineering - - id: RubberStampCE - - id: ClothingHeadsetAltEngineering - - id: BoxEncryptionKeyEngineering - - id: AccessConfigurator - - id: RCD - - id: RCDAmmo + - type: EntityTableContainerFill + containers: + entity_storage: !type:NestedSelector + tableId: LockerFillChiefEngineerNoHardsuit +# No hardsuit + hardsuit locker - type: entity - id: LockerChiefMedicalOfficerFilledHardsuit + id: LockerChiefEngineerFilledHardsuit suffix: Filled, Hardsuit - parent: LockerChiefMedicalOfficer + parent: LockerChiefEngineer components: - - type: StorageFill - contents: - - id: MedkitFilled - - id: ClothingHandsGlovesNitrile - - id: ClothingEyesHudMedical - - id: ClothingHeadsetAltMedical - - id: ClothingCloakCmo - - id: ClothingBackpackDuffelSurgeryFilled - - id: ClothingMaskSterile - - id: ClothingHeadHatBeretCmo - - id: ClothingOuterHardsuitMedical - - id: Hypospray - - id: HandheldCrewMonitor - - id: DoorRemoteMedical - - id: RubberStampCMO - - id: MedicalTechFabCircuitboard - - id: BoxEncryptionKeyMedical + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - !type:NestedSelector + tableId: LockerFillChiefEngineerNoHardsuit + - !type:NestedSelector + tableId: FillChiefEngineerHardsuit +# No hardsuit table +- type: entityTable + id: LockerFillChiefMedicalOfficerNoHardsuit + table: !type:AllSelector + children: + - id: BoxEncryptionKeyMedical + - id: ClothingBackpackDuffelSurgeryFilled + - id: ClothingCloakCmo + - id: ClothingEyesHudMedical + - id: ClothingHandsGlovesNitrile + - id: ClothingHeadHatBeretCmo + - id: ClothingHeadsetAltMedical + - id: ClothingMaskSterile + - id: DoorRemoteMedical + - id: HandheldCrewMonitor + - id: Hypospray + - id: MedicalTechFabCircuitboard + - id: MedkitFilled + - id: RubberStampCMO + +# Hardsuit table, used for suit storage as well +- type: entityTable + id: FillChiefMedicalOfficerHardsuit + table: !type:AllSelector + children: + - id: ClothingMaskBreathMedical + - id: ClothingOuterHardsuitMedical + - id: OxygenTankFilled + +# No hardsuit locker - type: entity id: LockerChiefMedicalOfficerFilled suffix: Filled parent: LockerChiefMedicalOfficer components: - - type: StorageFill - contents: - - id: MedkitFilled - - id: ClothingHandsGlovesNitrile - - id: ClothingEyesHudMedical - - id: ClothingHeadsetAltMedical - - id: ClothingBackpackDuffelSurgeryFilled - - id: ClothingMaskSterile - - id: Hypospray - - id: HandheldCrewMonitor - - id: DoorRemoteMedical - - id: RubberStampCMO - - id: MedicalTechFabCircuitboard - - id: BoxEncryptionKeyMedical + - type: EntityTableContainerFill + containers: + entity_storage: !type:NestedSelector + tableId: LockerFillChiefMedicalOfficerNoHardsuit +# No hardsuit + Hardsuit locker - type: entity - id: LockerResearchDirectorFilledHardsuit + id: LockerChiefMedicalOfficerFilledHardsuit suffix: Filled, Hardsuit - parent: LockerResearchDirector + parent: LockerChiefMedicalOfficer components: - - type: StorageFill - contents: - - id: ResearchComputerCircuitboard - - id: ProtolatheMachineCircuitboard - - id: CircuitImprinterMachineCircuitboard - - id: ClothingOuterHardsuitRd - - id: HandTeleporter - - id: DoorRemoteResearch - - id: ClothingBeltUtilityFilled - - id: RubberStampRd - - id: BoxEncryptionKeyScience - - id: ClothingHeadsetAltScience - - id: EncryptionKeyBinary + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - !type:NestedSelector + tableId: LockerFillChiefMedicalOfficerNoHardsuit + - !type:NestedSelector + tableId: FillChiefMedicalOfficerHardsuit + +# No hardsuit table +- type: entityTable + id: LockerFillResearchDirectorNoHardsuit + table: !type:AllSelector + children: + - id: BoxEncryptionKeyScience + - id: CircuitImprinterMachineCircuitboard + - id: ClothingBeltUtilityFilled + - id: ClothingHeadsetAltScience + - id: DoorRemoteResearch + - id: EncryptionKeyBinary + - id: HandTeleporter + - id: ProtolatheMachineCircuitboard + - id: ResearchComputerCircuitboard + - id: RubberStampRd +# Hardsuit table, used for suit storage as well +- type: entityTable + id: FillResearchDirectorHardsuit + table: !type:AllSelector + children: + - id: ClothingMaskBreath + - id: ClothingOuterHardsuitRd + - id: OxygenTankFilled + +# No hardsuit locker - type: entity id: LockerResearchDirectorFilled suffix: Filled parent: LockerResearchDirector components: - - type: StorageFill - contents: - - id: ResearchComputerCircuitboard - - id: ProtolatheMachineCircuitboard - - id: CircuitImprinterMachineCircuitboard - - id: HandTeleporter - - id: DoorRemoteResearch - - id: ClothingBeltUtilityFilled - - id: RubberStampRd - - id: BoxEncryptionKeyScience - - id: ClothingHeadsetAltScience - - id: EncryptionKeyBinary + - type: EntityTableContainerFill + containers: + entity_storage: !type:NestedSelector + tableId: LockerFillResearchDirectorNoHardsuit +# No hardsuit + Hardsuit locker - type: entity - id: LockerHeadOfSecurityFilledHardsuit + id: LockerResearchDirectorFilledHardsuit suffix: Filled, Hardsuit - parent: LockerHeadOfSecurity + parent: LockerResearchDirector components: - - type: StorageFill - contents: - - id: WeaponDisabler - - id: ClothingOuterCoatHoSTrench - - id: ClothingMaskNeckGaiter - - id: ClothingOuterHardsuitSecurityRed - - id: ClothingMaskGasSwat - - id: ClothingBeltSecurityFilled - - id: ClothingHeadsetAltSecurity - - id: ClothingEyesGlassesSecurity - - id: ClothingShoesBootsJack - - id: CigarGoldCase - prob: 0.50 - - id: DoorRemoteSecurity - - id: RubberStampHos - - id: SecurityTechFabCircuitboard - - id: JetpackSecurityFilled - - id: BoxEncryptionKeySecurity - - id: HoloprojectorSecurity - - id: BookSecretDocuments - - id: BookSpaceLaw + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - !type:NestedSelector + tableId: LockerFillResearchDirectorNoHardsuit + - !type:NestedSelector + tableId: FillResearchDirectorHardsuit + +# No hardsuit table +- type: entityTable + id: LockerFillHeadOfSecurityNoHardsuit + table: !type:AllSelector + children: + - id: BookSecretDocuments + - id: BookSpaceLaw + - id: BoxEncryptionKeySecurity + - id: CigarGoldCase + prob: 0.50 + - id: ClothingBeltSecurityFilled + - id: ClothingEyesGlassesSecurity + - id: ClothingHeadsetAltSecurity + - id: ClothingMaskNeckGaiter + - id: ClothingOuterCoatHoSTrench + - id: ClothingShoesBootsJack + - id: DoorRemoteSecurity + - id: HoloprojectorSecurity + - id: RubberStampHos + - id: SecurityTechFabCircuitboard + - id: WeaponDisabler + +# Hardsuit table, used for suit storage as well +- type: entityTable + id: FillHeadOfSecurityHardsuit + table: !type:AllSelector + children: + - id: ClothingMaskGasSwat + - id: ClothingOuterHardsuitSecurityRed + - id: JetpackSecurityFilled + - id: OxygenTankFilled +# No hardsuit locker - type: entity id: LockerHeadOfSecurityFilled suffix: Filled parent: LockerHeadOfSecurity components: - - type: StorageFill - contents: - - id: WeaponDisabler - - id: ClothingOuterCoatHoSTrench - - id: ClothingMaskNeckGaiter - - id: ClothingBeltSecurityFilled - - id: ClothingHeadsetAltSecurity - - id: ClothingEyesGlassesSecurity - - id: ClothingShoesBootsJack - - id: CigarGoldCase - prob: 0.50 - - id: DoorRemoteSecurity - - id: RubberStampHos - - id: SecurityTechFabCircuitboard - - id: BoxEncryptionKeySecurity - - id: HoloprojectorSecurity - - id: BookSecretDocuments - - id: BookSpaceLaw + - type: EntityTableContainerFill + containers: + entity_storage: !type:NestedSelector + tableId: LockerFillHeadOfSecurityNoHardsuit + +# No hardsuit + Hardsuit locker +- type: entity + id: LockerHeadOfSecurityFilledHardsuit + suffix: Filled, Hardsuit + parent: LockerHeadOfSecurity + components: + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - !type:NestedSelector + tableId: LockerFillHeadOfSecurityNoHardsuit + - !type:NestedSelector + tableId: FillHeadOfSecurityHardsuit - type: entity id: LockerFreezerVaultFilled diff --git a/Resources/Prototypes/Catalog/Fills/Lockers/suit_storage.yml b/Resources/Prototypes/Catalog/Fills/Lockers/suit_storage.yml index b9ce46878b..5d48f9efab 100644 --- a/Resources/Prototypes/Catalog/Fills/Lockers/suit_storage.yml +++ b/Resources/Prototypes/Catalog/Fills/Lockers/suit_storage.yml @@ -44,7 +44,7 @@ suffix: Prisoner EVA components: - type: StorageFill - contents: + contents: - id: OxygenTankFilled - id: ClothingOuterHardsuitEVAPrisoner - id: ClothingHeadHelmetEVALarge @@ -150,13 +150,10 @@ parent: SuitStorageBase suffix: Chief Engineer components: - - type: StorageFill - contents: - - id: OxygenTankFilled - - id: JetpackVoidFilled - - id: ClothingShoesBootsMagAdv - - id: ClothingOuterHardsuitEngineeringWhite - - id: ClothingMaskBreath + - type: EntityTableContainerFill + containers: + entity_storage: !type:NestedSelector + tableId: FillChiefEngineerHardsuit - type: AccessReader access: [["ChiefEngineer"]] @@ -166,11 +163,10 @@ parent: SuitStorageBase suffix: Chief Medical Officer components: - - type: StorageFill - contents: - - id: OxygenTankFilled - - id: ClothingOuterHardsuitMedical - - id: ClothingMaskBreathMedical + - type: EntityTableContainerFill + containers: + entity_storage: !type:NestedSelector + tableId: FillChiefMedicalOfficerHardsuit - type: AccessReader access: [ [ "ChiefMedicalOfficer" ] ] @@ -180,11 +176,10 @@ parent: SuitStorageBase suffix: Research Director components: - - type: StorageFill - contents: - - id: OxygenTankFilled - - id: ClothingOuterHardsuitRd - - id: ClothingMaskBreath + - type: EntityTableContainerFill + containers: + entity_storage: !type:NestedSelector + tableId: FillResearchDirectorHardsuit - type: AccessReader access: [ [ "ResearchDirector" ] ] @@ -194,12 +189,10 @@ parent: SuitStorageBase suffix: Head of Security components: - - type: StorageFill - contents: - - id: OxygenTankFilled - - id: JetpackSecurityFilled - - id: ClothingOuterHardsuitSecurityRed - - id: ClothingMaskGasSwat + - type: EntityTableContainerFill + containers: + entity_storage: !type:NestedSelector + tableId: FillHeadOfSecurityHardsuit - type: AccessReader access: [["HeadOfSecurity"]] @@ -223,11 +216,10 @@ parent: SuitStorageBase suffix: Captain components: - - type: StorageFill - contents: - - id: OxygenTankFilled - - id: ClothingOuterHardsuitCap - - id: ClothingMaskGasCaptain + - type: EntityTableContainerFill + containers: + entity_storage: !type:NestedSelector + tableId: FillCaptainHardsuit - type: AccessReader access: [["Captain"]] -- 2.52.0