From: Mixelz <32188067+Mixelz@users.noreply.github.com> Date: Wed, 1 Oct 2025 23:11:26 +0000 (-0500) Subject: Organized Head Locker Fills Feat. Circuit Totes. (#39868) X-Git-Url: https://git.smokeofanarchy.ru/gitweb.cgi?a=commitdiff_plain;h=f660964006b014a1f730e9bf24d767665373c666;p=space-station-14.git Organized Head Locker Fills Feat. Circuit Totes. (#39868) * Initial Commit Added Circuit Totes, replaced Head Locker fills with Tote fills, also stamp boxes for relevant heads. * Craftable! Now craftable: Uses 1 cardboard and 1 cloth (gotta keep the circuits cushioned!) * Various Fixes Fixed indenting, added comments, fixed names, tried for 5 hours to get the table fill to work, failed. * test fail fix aaaaaaaa * TEST FAIL WHYYYY AAAAAAAAAAAAAAAAAAAAA * test fail fix 3 feat. iaada *mothscream.oog* * SURPLUS BOARD USES TOTE NOW THANK YOU IAADA * indent fix & storage base fix Fix for indents and also the storagebase bug * Master Merge Fix * Update meta.json * forgor the important part --- diff --git a/Resources/Locale/en-US/construction/recipes/crates.ftl b/Resources/Locale/en-US/construction/recipes/crates.ftl index 393b7784a1..c5b2b47c32 100644 --- a/Resources/Locale/en-US/construction/recipes/crates.ftl +++ b/Resources/Locale/en-US/construction/recipes/crates.ftl @@ -1,3 +1,4 @@ construction-recipe-crate-freezer = crate freezer construction-recipe-big-box = large cardboard box construction-recipe-box-cardboard = small cardboard box +construction-recipe-box-tote = circuit tote diff --git a/Resources/Prototypes/Catalog/Fills/Boxes/heads.yml b/Resources/Prototypes/Catalog/Fills/Boxes/heads.yml new file mode 100644 index 0000000000..122aecd27b --- /dev/null +++ b/Resources/Prototypes/Catalog/Fills/Boxes/heads.yml @@ -0,0 +1,143 @@ +- type: entity + name: circuit tote [QM] + parent: ToteBase + id: BoxQMCircuitboards + description: A Tote filled with QM's Circuit boards. + components: + - type: StorageFill + contents: + - id: CargoBountyComputerCircuitboard + - id: CargoRequestComputerCircuitboard + - id: CargoSaleComputerCircuitboard + - id: CargoShuttleConsoleCircuitboard + - id: SalvageMagnetMachineCircuitboard + - id: SalvageJobBoardComputerCircuitboard + - id: MailTeleporterMachineCircuitboard + +- type: entity + name: stamp box [QM] + parent: BoxCardboard + id: BoxQMStamps + description: A box filled with QM's Stamps. Stamped of course. + components: + - type: Item + size: Small + shape: + - 0,0,1,1 + - type: StorageFill + contents: + - id: RubberStampApproved + - id: RubberStampDenied + - id: RubberStampQm + - type: Storage + grid: + - 0,0,1,1 + whitelist: + components: + - Stamp + - type: Sprite + layers: + - state: box + - state: stamp + +- type: entity + name: circuit tote [HoP] + parent: ToteBase + id: BoxHoPCircuitboards + description: A Tote filled with HoP's Circuit boards. + components: + - type: StorageFill + contents: + - id: IDComputerCircuitboard + - id: FundingAllocationComputerCircuitboard + - id: CargoRequestServiceComputerCircuitboard + +- type: entity + name: stamp box [HoP] + parent: BoxCardboard + id: BoxHoPStamps + description: A box filled with HoP's Stamps. Stamped of course. + components: + - type: Item + size: Small + shape: + - 0,0,1,1 + - type: StorageFill + contents: + - 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. + components: + - type: StorageFill + contents: + - id: CargoRequestEngineeringComputerCircuitboard + - id: AlertsComputerCircuitboard + - id: AtmosMonitoringComputerCircuitboard + - id: PowerComputerCircuitboard + - id: SolarControlComputerCircuitboard + +- type: entity + name: circuit tote [Captain] + parent: ToteBase + id: BoxCaptainCircuitboards + description: A Tote filled with Captain's Circuit boards. + components: + - type: StorageFill + contents: + - id: CommsComputerCircuitboard + - id: StationRecordsComputerCircuitboard + +- type: entity + name: circuit tote [CMO] + parent: ToteBase + id: BoxCMOCircuitboards + description: A Tote filled with CMO's Circuit boards. + components: + - type: StorageFill + contents: + - id: MedicalTechFabCircuitboard + - id: CargoRequestMedicalComputerCircuitboard + +- type: entity + name: circuit tote [RD] + parent: ToteBase + id: BoxRDCircuitboards + description: A Tote filled with RD's Circuit boards. + components: + - type: StorageFill + contents: + - id: CircuitImprinterMachineCircuitboard + - id: ProtolatheMachineCircuitboard + - id: ResearchComputerCircuitboard + - id: CargoRequestScienceComputerCircuitboard + - id: RoboticsConsoleCircuitboard + - 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: StorageFill + contents: + - id: SecurityTechFabCircuitboard + - id: CargoRequestSecurityComputerCircuitboard diff --git a/Resources/Prototypes/Catalog/Fills/Crates/engineering.yml b/Resources/Prototypes/Catalog/Fills/Crates/engineering.yml index 7acb9cf8b1..51e6440a34 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/engineering.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/engineering.yml @@ -235,13 +235,13 @@ - type: entity id: CrateTechBoardRandom - parent: CrateEngineering + parent: ToteBase name: surplus boards description: Surplus boards from somewhere. components: - type: EntityTableContainerFill containers: - entity_storage: !type:NestedSelector + storagebase: !type:NestedSelector tableId: RandomTechBoardTable rolls: !type:RangeNumberSelector range: 6, 8 diff --git a/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml b/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml index 37dd68e63a..cf5297220c 100644 --- a/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml +++ b/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml @@ -4,22 +4,14 @@ children: - id: BoxEncryptionKeyCargo - id: BoxFolderQmClipboard - - id: CargoBountyComputerCircuitboard - - id: CargoRequestComputerCircuitboard - - id: CargoSaleComputerCircuitboard - - id: CargoShuttleConsoleCircuitboard - - id: SalvageMagnetMachineCircuitboard - - id: SalvageJobBoardComputerCircuitboard + - id: BoxQMCircuitboards + - id: BoxQMStamps - id: CigPackGreen prob: 0.50 - id: ClothingHeadsetAltCargo - id: DoorRemoteCargo - - id: RubberStampApproved - - id: RubberStampDenied - - id: RubberStampQm - id: AstroNavCartridge - id: ClothingHandsKnuckleDustersQM - - id: MailTeleporterMachineCircuitboard - type: entity id: LockerQuarterMasterFilled @@ -42,7 +34,7 @@ - id: ClothingBeltSheathFilled - id: ClothingHeadsetAltCommand - id: ClothingOuterArmorCaptainCarapace - - id: CommsComputerCircuitboard + - id: BoxCaptainCircuitboards - id: DoorRemoteCustom - id: MedalCase - id: NukeDisk @@ -122,6 +114,8 @@ - id: BoxEncryptionKeyPassenger - id: BoxEncryptionKeyService - id: BoxHeadset + - id: BoxHoPCircuitboards + - id: BoxHoPStamps - id: BoxID - id: BoxPDA - id: CigarGoldCase @@ -134,12 +128,6 @@ - id: ClothingNeckGoldmedal - id: DoorRemoteService - id: HoPIDCard - - id: IDComputerCircuitboard - - id: FundingAllocationComputerCircuitboard - - id: CargoRequestServiceComputerCircuitboard - - id: RubberStampApproved - - id: RubberStampDenied - - id: RubberStampHop - id: WeaponDisabler - id: ClothingEyesHudCommand @@ -167,7 +155,7 @@ - id: ClothingHandsGlovesColorYellow - id: ClothingHeadsetAltEngineering - id: DoorRemoteEngineering - - id: CargoRequestEngineeringComputerCircuitboard + - id: BoxCECircuitboards - id: RCD - id: RCDAmmo - id: RubberStampCE @@ -226,8 +214,7 @@ - id: DoorRemoteMedical - id: HandheldCrewMonitor - id: Hypospray - - id: MedicalTechFabCircuitboard - - id: CargoRequestMedicalComputerCircuitboard + - id: BoxCMOCircuitboards - id: MedkitFilled - id: RubberStampCMO - id: MedTekCartridge @@ -274,15 +261,11 @@ children: - id: Intellicard - id: BoxEncryptionKeyScience - - id: CircuitImprinterMachineCircuitboard + - id: BoxRDCircuitboards - id: ClothingBeltUtilityFilled - id: ClothingHeadsetAltScience - id: DoorRemoteResearch - id: HandTeleporter - - id: ProtolatheMachineCircuitboard - - id: ResearchComputerCircuitboard - - id: CargoRequestScienceComputerCircuitboard - - id: StationAiFixerCircuitboard - id: RubberStampRd # Hardsuit table, used for suit storage as well @@ -339,8 +322,7 @@ - id: DoorRemoteSecurity - id: HoloprojectorSecurity - id: RubberStampHos - - id: SecurityTechFabCircuitboard - - id: CargoRequestSecurityComputerCircuitboard + - id: BoxHoSCircuitboards - id: WeaponDisabler - id: WeaponTaser - id: WantedListCartridge diff --git a/Resources/Prototypes/Entities/Objects/Misc/box.yml b/Resources/Prototypes/Entities/Objects/Misc/box.yml index edb1a81239..73d72e4fb0 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/box.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/box.yml @@ -21,9 +21,45 @@ graph: BoxCardboard node: boxcardboard containers: - - entity_storage + - storagebase - type: PhysicalComposition materialComposition: Cardboard: 100 - type: StaticPrice price: 10 + +- type: entity + name: circuit tote + id: ToteBase + parent: BoxBase + description: A large tote for carrying circuit boards. + components: + - type: Sprite + layers: + - state: tote-0 + map: ["enum.StorageFillLayers.Fill"] + - state: circuit + - type: Appearance + - type: StorageFillVisualizer + maxFillLevels: 3 + fillBaseName: tote + - type: Storage + maxItemSize: Small + grid: + - 0,0,5,2 + whitelist: + components: + - MachineBoard + - Circuitboard + - type: Construction + graph: ToteBase + node: totebase + - type: PhysicalComposition + materialComposition: + Cardboard: 75 + Cloth: 25 + - type: StaticPrice + price: 15 + - type: Tag + tags: + - ToteBase diff --git a/Resources/Prototypes/Recipes/Crafting/Graphs/storage/cardboardbox.yml b/Resources/Prototypes/Recipes/Crafting/Graphs/storage/cardboardbox.yml index 527f6b5247..9cabb7e441 100644 --- a/Resources/Prototypes/Recipes/Crafting/Graphs/storage/cardboardbox.yml +++ b/Resources/Prototypes/Recipes/Crafting/Graphs/storage/cardboardbox.yml @@ -2,14 +2,28 @@ id: BoxCardboard start: start graph: - - node: start - edges: - - to: boxcardboard - steps: - - material: Cardboard - amount: 1 - doAfter: 4 + - node: start + edges: + - to: boxcardboard + steps: + - material: Cardboard + amount: 1 + doAfter: 4 + - node: boxcardboard + entity: BoxCardboard - - - node: boxcardboard - entity: BoxCardboard \ No newline at end of file +- type: constructionGraph + id: ToteBase + start: start + graph: + - node: start + edges: + - to: totebase + steps: + - material: Cardboard + amount: 1 + - material: Cloth + amount: 1 + doAfter: 4 + - node: totebase + entity: ToteBase diff --git a/Resources/Prototypes/Recipes/Crafting/crates.yml b/Resources/Prototypes/Recipes/Crafting/crates.yml index ebd0261b3a..0ba076b36b 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: ToteBase + name: construction-recipe-box-tote + graph: ToteBase + startNode: start + targetNode: totebase + category: construction-category-storage + objectType: Item + - type: construction id: FoodBoxPizza graph: FoodBoxPizza diff --git a/Resources/Prototypes/tags.yml b/Resources/Prototypes/tags.yml index fde9057d64..184daa337a 100644 --- a/Resources/Prototypes/tags.yml +++ b/Resources/Prototypes/tags.yml @@ -1424,6 +1424,9 @@ - type: Tag id: Torch +- type: Tag + id: ToteBase + - type: Tag id: ToyRubberDuck diff --git a/Resources/Textures/Objects/Storage/boxes.rsi/meta.json b/Resources/Textures/Objects/Storage/boxes.rsi/meta.json index 64c3fc85c1..000059bf90 100644 --- a/Resources/Textures/Objects/Storage/boxes.rsi/meta.json +++ b/Resources/Textures/Objects/Storage/boxes.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from vgstation at commit https://github.com/vgstation-coders/vgstation13/commit/ca674eff9d23e04357b7609ef7e07eadfc1a993f and modified by Flareguy (github), encryptokey was taken from Baystation12 at https://github.com/infinitystation/Baystation12/blob/073f678cdce92edb8fcd55f9ffc9f0523bf31506/icons/obj/radio.dmi and modified by lapatison. boxwidetoy, shelltoy, swab, flare, inflatable, trashbag, magazine, holo and forensic created by potato1234x (github) for ss14 based on toys.rsi, mouth_swab.rsi, flare.rsi, inflatable_wall.rsi, trashbag.rsi, caseless_pistol_mag.rsi, guardians.rsi and bureaucracy.rsi respectively, candle and darts created by TheShuEd for ss14, throwing_knives and vials was drawn by Ubaser, evidence_markers by moomoobeef, nitrogentank modified from extendedtank by Errant, agrichemkit by Cerol, modified by ps3moira (github). sechud renamed to secglasses, new sechud, sunglasses by K-Dynamic (github), trigger by IProduceWidgets, utensils by gentleman-bird (github).", + "copyright": "Taken from vgstation at commit https://github.com/vgstation-coders/vgstation13/commit/ca674eff9d23e04357b7609ef7e07eadfc1a993f and modified by Flareguy (github), encryptokey was taken from Baystation12 at https://github.com/infinitystation/Baystation12/blob/073f678cdce92edb8fcd55f9ffc9f0523bf31506/icons/obj/radio.dmi and modified by lapatison. boxwidetoy, shelltoy, swab, flare, inflatable, trashbag, magazine, holo and forensic created by potato1234x (github) for ss14 based on toys.rsi, mouth_swab.rsi, flare.rsi, inflatable_wall.rsi, trashbag.rsi, caseless_pistol_mag.rsi, guardians.rsi and bureaucracy.rsi respectively, candle and darts created by TheShuEd for ss14, throwing_knives and vials was drawn by Ubaser, evidence_markers by moomoobeef, nitrogentank modified from extendedtank by Errant, agrichemkit by Cerol, modified by ps3moira (github). sechud renamed to secglasses, new sechud, sunglasses by K-Dynamic (github), trigger by IProduceWidgets, utensils by gentleman-bird (github). stamp, totes modified from box by Mixelz.", "size": { "x": 32, "y": 32 @@ -136,6 +136,9 @@ { "name": "solution_trays" }, + { + "name": "stamp" + }, { "name": "sterile" }, @@ -182,6 +185,15 @@ "name": "hug-inhand-right", "directions": 4 }, + { + "name": "tote-0" + }, + { + "name": "tote-1" + }, + { + "name": "tote-2" + }, { "name": "shelltoy" }, diff --git a/Resources/Textures/Objects/Storage/boxes.rsi/stamp.png b/Resources/Textures/Objects/Storage/boxes.rsi/stamp.png new file mode 100644 index 0000000000..812c721f20 Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxes.rsi/stamp.png differ diff --git a/Resources/Textures/Objects/Storage/boxes.rsi/tote-0.png b/Resources/Textures/Objects/Storage/boxes.rsi/tote-0.png new file mode 100644 index 0000000000..fbdcd51802 Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxes.rsi/tote-0.png differ diff --git a/Resources/Textures/Objects/Storage/boxes.rsi/tote-1.png b/Resources/Textures/Objects/Storage/boxes.rsi/tote-1.png new file mode 100644 index 0000000000..02a49d9dbb Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxes.rsi/tote-1.png differ diff --git a/Resources/Textures/Objects/Storage/boxes.rsi/tote-2.png b/Resources/Textures/Objects/Storage/boxes.rsi/tote-2.png new file mode 100644 index 0000000000..3066ce7254 Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxes.rsi/tote-2.png differ