From 444991fbd0ca1b26e4acf4279c20e57a3a4e5b01 Mon Sep 17 00:00:00 2001 From: Hitlinemoss <209321380+Hitlinemoss@users.noreply.github.com> Date: Fri, 19 Dec 2025 01:51:27 -0500 Subject: [PATCH] Cleanup of circuit tote / stamp box prototypes + added small cardboard boxes as a general item (#41335) * Cleanup of circuit tote / stamp box prototypes * New BoxCardboardSmall abstract prototype, stamp box uses this as a parent now * Removed stamp box whitelist * Whitelist fix * We love scope creep! Small cardboard boxes are a general thing now. * Box description updates * Box description updates 2! * Prototype order cleanup * Comment updates * Desc touchup * Review updates * StorageFill -> ContainerFill * code comment update * decapitalized labels * Code comment update * Whoops! Forgot to update one ContainerFill to EntityTableContainerFill when fixing merge conflict * Whoops! EntityTableContainerFill items were all formatted wrong * Departmental box names * Misc fixes * Whoops, forgot to remove some labels --- .../en-US/construction/recipes/crates.ftl | 3 +- .../Catalog/Fills/Boxes/general.yml | 49 +++++-- .../Prototypes/Catalog/Fills/Boxes/heads.yml | 131 +++++++----------- .../Prototypes/Entities/Objects/Misc/box.yml | 31 +++-- .../Crafting/Graphs/storage/cardboardbox.yml | 16 ++- .../Prototypes/Recipes/Crafting/crates.yml | 9 ++ 6 files changed, 132 insertions(+), 107 deletions(-) diff --git a/Resources/Locale/en-US/construction/recipes/crates.ftl b/Resources/Locale/en-US/construction/recipes/crates.ftl index c5b2b47c32..ea4ce93609 100644 --- a/Resources/Locale/en-US/construction/recipes/crates.ftl +++ b/Resources/Locale/en-US/construction/recipes/crates.ftl @@ -1,4 +1,5 @@ construction-recipe-crate-freezer = crate freezer construction-recipe-big-box = large cardboard box -construction-recipe-box-cardboard = small cardboard box +construction-recipe-box-cardboard = cardboard box +construction-recipe-box-cardboard-small = small cardboard box construction-recipe-box-tote = circuit tote diff --git a/Resources/Prototypes/Catalog/Fills/Boxes/general.yml b/Resources/Prototypes/Catalog/Fills/Boxes/general.yml index 4618fb6653..326afa6d4a 100644 --- a/Resources/Prototypes/Catalog/Fills/Boxes/general.yml +++ b/Resources/Prototypes/Catalog/Fills/Boxes/general.yml @@ -1,17 +1,37 @@ - type: entity - name: cardboard box parent: BoxBase id: BoxCardboard + name: cardboard box description: A cardboard box for storing things. components: - - type: Item - size: Large - shape: - - 0,0,2,2 - - type: Storage - maxItemSize: Small - grid: - - 0,0,2,2 + - type: Construction + graph: BoxCardboard + node: boxcardboard + containers: + - storagebase + - type: PhysicalComposition + materialComposition: + Cardboard: 100 + - type: Sprite + state: box + - type: Tag + tags: + - BoxCardboard + +- type: entity + parent: BoxBaseSmall + id: BoxCardboardSmall + name: small cardboard box + description: A small cardboard box for storing things. + components: + - type: Construction + graph: BoxCardboardSmall # Half the material cost of the "regular" cardboardbox + node: boxcardboardsmall + containers: + - storagebase + - type: PhysicalComposition # Half of the "regular" cardboard box + materialComposition: + Cardboard: 50 - type: Sprite state: box - type: Tag @@ -161,6 +181,17 @@ - state: box - state: headset +- type: entity + parent: BoxCardboardSmall + id: BoxStamps + name: stamp box + description: A small box containing stamps. + components: # Baking a "default" EntityTableContainerFill into this prototype seems like bad practice, so this is currently an empty box. If you need a new type of prefilled stamp box, create a new child prototype with the appropriate stamps! + - type: Sprite + layers: + - state: box + - state: stamp + - type: entity name: meson box parent: BoxCardboard diff --git a/Resources/Prototypes/Catalog/Fills/Boxes/heads.yml b/Resources/Prototypes/Catalog/Fills/Boxes/heads.yml index fac72c6338..98c4c667fb 100644 --- a/Resources/Prototypes/Catalog/Fills/Boxes/heads.yml +++ b/Resources/Prototypes/Catalog/Fills/Boxes/heads.yml @@ -1,54 +1,46 @@ - type: entity - name: circuit tote [QM] parent: ToteBase - id: BoxQMCircuitboards - description: A Tote filled with QM's Circuit boards. + id: BoxCaptainCircuitboards + name: bridge circuit tote components: - type: EntityTableContainerFill containers: storagebase: !type:AllSelector children: - - id: CargoBountyComputerCircuitboard - - id: CargoRequestComputerCircuitboard - - id: CargoSaleComputerCircuitboard - - id: CargoShuttleConsoleCircuitboard - - id: SalvageMagnetMachineCircuitboard - - id: SalvageJobBoardComputerCircuitboard - - id: MailTeleporterMachineCircuitboard + - id: CommsComputerCircuitboard + - id: StationRecordsComputerCircuitboard - type: entity - name: stamp box [QM] - parent: BoxCardboard - id: BoxQMStamps - description: A box filled with QM's Stamps. Stamped of course. + parent: ToteBase + id: BoxCECircuitboards + name: engineering circuit tote components: - - type: Item - size: Small - shape: - - 0,0,1,1 - type: EntityTableContainerFill containers: storagebase: !type:AllSelector children: - - id: RubberStampApproved - - id: RubberStampDenied - - id: RubberStampQm - - type: Storage - grid: - - 0,0,1,1 - whitelist: - components: - - Stamp - - type: Sprite - layers: - - state: box - - state: stamp + - id: CargoRequestEngineeringComputerCircuitboard + - id: AlertsComputerCircuitboard + - id: AtmosMonitoringComputerCircuitboard + - id: PowerComputerCircuitboard + - id: SolarControlComputerCircuitboard + +- type: entity + parent: ToteBase + id: BoxCMOCircuitboards + name: medical circuit tote + components: + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: MedicalTechFabCircuitboard + - id: CargoRequestMedicalComputerCircuitboard - type: entity - name: circuit tote [HoP] parent: ToteBase id: BoxHoPCircuitboards - description: A Tote filled with HoP's Circuit boards. + name: head of personnel circuit tote components: - type: EntityTableContainerFill containers: @@ -59,15 +51,10 @@ - id: CargoRequestServiceComputerCircuitboard - type: entity - name: stamp box [HoP] - parent: BoxCardboard + parent: BoxStamps id: BoxHoPStamps - description: A box filled with HoP's Stamps. Stamped of course. + name: head of personnel's stamp box components: - - type: Item - size: Small - shape: - - 0,0,1,1 - type: EntityTableContainerFill containers: storagebase: !type:AllSelector @@ -75,64 +62,53 @@ - id: RubberStampApproved - id: RubberStampDenied - id: RubberStampHop - - type: Storage - grid: - - 0,0,1,1 - whitelist: - components: - - Stamp - - type: Sprite - layers: - - state: box - - state: stamp - type: entity - name: circuit tote [CE] parent: ToteBase - id: BoxCECircuitboards - description: A Tote filled with CE's Circuit boards. + id: BoxHoSCircuitboards + name: security circuit tote components: - type: EntityTableContainerFill containers: storagebase: !type:AllSelector children: - - id: CargoRequestEngineeringComputerCircuitboard - - id: AlertsComputerCircuitboard - - id: AtmosMonitoringComputerCircuitboard - - id: PowerComputerCircuitboard - - id: SolarControlComputerCircuitboard + - id: SecurityTechFabCircuitboard + - id: CargoRequestSecurityComputerCircuitboard - type: entity - name: circuit tote [Captain] parent: ToteBase - id: BoxCaptainCircuitboards - description: A Tote filled with Captain's Circuit boards. + id: BoxQMCircuitboards + name: cargo circuit tote components: - type: EntityTableContainerFill containers: storagebase: !type:AllSelector children: - - id: CommsComputerCircuitboard - - id: StationRecordsComputerCircuitboard + - id: CargoBountyComputerCircuitboard + - id: CargoRequestComputerCircuitboard + - id: CargoSaleComputerCircuitboard + - id: CargoShuttleConsoleCircuitboard + - id: SalvageMagnetMachineCircuitboard + - id: SalvageJobBoardComputerCircuitboard + - id: MailTeleporterMachineCircuitboard - type: entity - name: circuit tote [CMO] - parent: ToteBase - id: BoxCMOCircuitboards - description: A Tote filled with CMO's Circuit boards. + parent: BoxStamps + id: BoxQMStamps + name: quartermaster's stamp box components: - type: EntityTableContainerFill containers: storagebase: !type:AllSelector children: - - id: MedicalTechFabCircuitboard - - id: CargoRequestMedicalComputerCircuitboard + - id: RubberStampApproved + - id: RubberStampDenied + - id: RubberStampQm - type: entity - name: circuit tote [RD] parent: ToteBase id: BoxRDCircuitboards - description: A Tote filled with RD's Circuit boards. + name: science circuit tote components: - type: EntityTableContainerFill containers: @@ -146,16 +122,3 @@ - id: AnalysisComputerCircuitboard #Because sometimes round start artis just fucking explode on the pad. - id: ArtifactAnalyzerMachineCircuitboard - id: StationAiFixerCircuitboard - -- type: entity - name: circuit tote [HoS] - parent: ToteBase - id: BoxHoSCircuitboards - description: A Tote filled with HoS's Circuit boards. - components: - - type: EntityTableContainerFill - containers: - storagebase: !type:AllSelector - children: - - id: SecurityTechFabCircuitboard - - id: CargoRequestSecurityComputerCircuitboard diff --git a/Resources/Prototypes/Entities/Objects/Misc/box.yml b/Resources/Prototypes/Entities/Objects/Misc/box.yml index 6a26b3d900..6692936f40 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/box.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/box.yml @@ -1,7 +1,7 @@ - type: entity - id: BoxBase - parent: BaseStorageItem abstract: true + parent: BaseStorageItem + id: BoxBase components: - type: Sprite sprite: Objects/Storage/boxes.rsi @@ -17,21 +17,28 @@ - type: ContainerContainer containers: storagebase: !type:Container - - type: Construction - graph: BoxCardboard - node: boxcardboard - containers: - - storagebase - - type: PhysicalComposition - materialComposition: - Cardboard: 100 - type: StaticPrice price: 10 - type: entity - name: circuit tote - id: ToteBase + abstract: true parent: BoxBase + id: BoxBaseSmall + components: + - type: Item + size: Small + shape: + - 0,0,1,1 + - type: Storage + grid: + - 0,0,1,1 + - type: StaticPrice # Half of the "regular" box + price: 5 + +- type: entity + parent: BoxBase + id: ToteBase + name: circuit tote description: A large tote for carrying circuit boards. components: - type: Sprite diff --git a/Resources/Prototypes/Recipes/Crafting/Graphs/storage/cardboardbox.yml b/Resources/Prototypes/Recipes/Crafting/Graphs/storage/cardboardbox.yml index 9cabb7e441..edfd66353a 100644 --- a/Resources/Prototypes/Recipes/Crafting/Graphs/storage/cardboardbox.yml +++ b/Resources/Prototypes/Recipes/Crafting/Graphs/storage/cardboardbox.yml @@ -7,11 +7,25 @@ - to: boxcardboard steps: - material: Cardboard - amount: 1 + amount: 2 doAfter: 4 - node: boxcardboard entity: BoxCardboard +- type: constructionGraph + id: BoxCardboardSmall + start: start + graph: + - node: start + edges: + - to: boxcardboardsmall + steps: + - material: Cardboard + amount: 1 + doAfter: 4 + - node: boxcardboardsmall + entity: BoxCardboardSmall + - type: constructionGraph id: ToteBase start: start diff --git a/Resources/Prototypes/Recipes/Crafting/crates.yml b/Resources/Prototypes/Recipes/Crafting/crates.yml index 0ba076b36b..eb18c4a354 100644 --- a/Resources/Prototypes/Recipes/Crafting/crates.yml +++ b/Resources/Prototypes/Recipes/Crafting/crates.yml @@ -57,6 +57,15 @@ category: construction-category-storage objectType: Item +- type: construction + id: BoxCardboardSmall + name: construction-recipe-box-cardboard-small + graph: BoxCardboardSmall + startNode: start + targetNode: boxcardboardsmall + category: construction-category-storage + objectType: Item + - type: construction id: ToteBase name: construction-recipe-box-tote -- 2.52.0