]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Clipboards added to autolathe (and other folder changes) (#37705)
authorHitlinemoss <209321380+Hitlinemoss@users.noreply.github.com>
Wed, 27 Aug 2025 07:07:32 +0000 (03:07 -0400)
committerGitHub <noreply@github.com>
Wed, 27 Aug 2025 07:07:32 +0000 (09:07 +0200)
* Added plastic clipboards; added plastic clipboards to the PTech machine; added clipboards & plastic clipboards to the autolathe

* Fixed plastic clipboard inhand sprites; added and implemented 'empty' clipboard prototypes

* Cleaned up code for empty clipboards; removed BoxFolderBaseEmpty since now it's redundant

* Extensive folder cleanup

* Bugfixed random folder spawns

* Reduced amount of paper in CrateServiceBureaucracy

* Medical folder sprite rename

* BaseTraitorSocialObjective sprite fix

* Added office paper to bureaucracy crate

* First pass at addressing recent review

* Second pass at addressing recent review

* Fix of weird migration.yml error

* whoops, forgot to undo the rename to folder-white.png in the last few commits

* whoops, didn't commit that last commit properly

* whoops, forgot to undo this reordering

22 files changed:
Resources/Prototypes/Catalog/Fills/Crates/permaescape.yml
Resources/Prototypes/Catalog/Fills/Crates/service.yml
Resources/Prototypes/Catalog/VendingMachines/Inventories/cart.yml
Resources/Prototypes/Entities/Markers/Spawners/Random/folders.yml
Resources/Prototypes/Entities/Objects/Misc/folders.yml
Resources/Prototypes/Entities/Structures/Machines/lathe.yml
Resources/Prototypes/Entities/Structures/Storage/filing_cabinets.yml
Resources/Prototypes/Objectives/traitor.yml
Resources/Prototypes/Recipes/Lathes/Packs/shared.yml
Resources/Prototypes/Recipes/Lathes/misc.yml
Resources/Prototypes/Roles/Jobs/Cargo/quartermaster.yml
Resources/Prototypes/Roles/Jobs/CentComm/official.yml
Resources/Prototypes/Roles/Jobs/Command/head_of_personnel.yml
Resources/Prototypes/Roles/Jobs/Fun/visitors_startinggear.yml
Resources/Textures/Objects/Misc/plastic_clipboard.rsi/clipboard.png [new file with mode: 0644]
Resources/Textures/Objects/Misc/plastic_clipboard.rsi/clipboard_over.png [new file with mode: 0644]
Resources/Textures/Objects/Misc/plastic_clipboard.rsi/clipboard_paper.png [new file with mode: 0644]
Resources/Textures/Objects/Misc/plastic_clipboard.rsi/clipboard_pen.png [new file with mode: 0644]
Resources/Textures/Objects/Misc/plastic_clipboard.rsi/equipped-BELT.png [new file with mode: 0644]
Resources/Textures/Objects/Misc/plastic_clipboard.rsi/inhand-left.png [new file with mode: 0644]
Resources/Textures/Objects/Misc/plastic_clipboard.rsi/inhand-right.png [new file with mode: 0644]
Resources/Textures/Objects/Misc/plastic_clipboard.rsi/meta.json [new file with mode: 0644]

index 4ee0d5f9ea45bfc4d77eb608ae28e3c2a693fe7f..ed48479cd20aaed282f92bf25bc3b2ad271cfd31 100644 (file)
@@ -82,7 +82,7 @@
         prob: 0.25
       - id: OxygenTankFilled
         prob: 0.05
-        
+
 - type: entity
   id: CratePermaEscapeGun
   parent: CrateGenericSteel
     contents:
       - id: RubberStampApproved
       - id: RubberStampDenied
+      - id: Paper
+        amount: 5
       - id: Pen
-      - id: Pen
-      - id: Pen
-      - id: BoxFolderBase
+        amount: 3
+      - id: BoxFolderBaseEmpty
         orGroup: folderA
-      - id: BoxFolderBlack
+      - id: BoxFolderBlackEmpty
         orGroup: folderA
-      - id: BoxFolderBlue
+      - id: BoxFolderBlueEmpty
         orGroup: folderA
-      - id: BoxFolderGreen
+      - id: BoxFolderGreenEmpty
         orGroup: folderA
-      - id: BoxFolderGrey
+      - id: BoxFolderGreyEmpty
         orGroup: folderA
-      - id: BoxFolderRed
+      - id: BoxFolderRedEmpty
         orGroup: folderA
-      - id: BoxFolderWhite
+      - id: BoxFolderYellowEmpty
         orGroup: folderA
-      - id: BoxFolderYellow
-        orGroup: folderA
-      - id: BoxFolderBase
-        orGroup: folderB
-      - id: BoxFolderBlack
+      - id: BoxFolderBaseEmpty
         orGroup: folderB
-      - id: BoxFolderBlue
+      - id: BoxFolderBlackEmpty
         orGroup: folderB
-      - id: BoxFolderGreen
+      - id: BoxFolderBlueEmpty
         orGroup: folderB
-      - id: BoxFolderGrey
+      - id: BoxFolderGreenEmpty
         orGroup: folderB
-      - id: BoxFolderRed
+      - id: BoxFolderGreyEmpty
         orGroup: folderB
-      - id: BoxFolderWhite
+      - id: BoxFolderRedEmpty
         orGroup: folderB
-      - id: BoxFolderYellow
+      - id: BoxFolderYellowEmpty
         orGroup: folderB
       - id: CrayonBox
         prob: 0.50
index 84da90eb2aef82e216edee3b08d1d8a214993755..46299ef6b9f5470189120030b083bf02e915c4f1 100644 (file)
   - type: StorageFill
     contents:
     - id: Paper
-      amount: 15
+      amount: 12
+    - id: PaperOffice
+      amount: 6
     - id: Pen
       amount: 2
-    - id: BoxFolderClipboard
+    - id: BoxFolderClipboardEmpty
       amount: 2
     - id: HandLabeler
-    - id: BoxFolderBlue
-    - id: BoxFolderRed
-    - id: BoxFolderYellow
+    - id: BoxFolderBlueEmpty
+    - id: BoxFolderRedEmpty
+    - id: BoxFolderYellowEmpty
     - id: NewtonCradle
     - id: BoxEnvelope
     - id: BrbSign
index 414e77bcad4e22af7d31bc023dad89af80d5bad7..df4af37f522e954b7a03e86847c8c170923591c2 100644 (file)
@@ -7,6 +7,7 @@
     ClothingHeadsetGrey: 5
     RubberStampApproved: 1
     RubberStampDenied: 1
+    BoxFolderPlasticClipboardEmpty: 2
     Paper: 10
     Envelope: 10
     HandLabeler: 2
index 7631d43316ba610a47a570cb3f449a1f2a27ec34..5d4c133a03493b12a33852f98d69a5031dcc63ba 100644 (file)
   - type: Sprite
     sprite: Objects/Misc/folders.rsi
     layers:
-      - state: folder-base
-      - state: folder-colormap
+    - state: folder-base
+    - state: folder-colormap
   - type: RandomSpawner
     offset: 0
     prototypes:
-      - BoxFolderRed
-      - BoxFolderBlue
-      - BoxFolderYellow
-      - BoxFolderWhite
-      - BoxFolderGrey
-      - BoxFolderBlack
-      - BoxFolderGreen
+    - BoxFolderBase
+    - BoxFolderRed
+    - BoxFolderBlue
+    - BoxFolderYellow
+    - BoxFolderGrey
+    - BoxFolderBlack
+    - BoxFolderGreen
index f72d4c3abce719c1a244604a50e6761c48579325..cee720b6ea8f4c37a79b0fb82e72633bc38c23d2 100644 (file)
@@ -1,6 +1,6 @@
 - type: entity
-  id: BoxFolderNuclearCodes
   parent: BaseItem
+  id: BoxFolderNuclearCodes
   name: nuclear code folder
   components:
   - type: Sprite
@@ -19,8 +19,8 @@
   - type: Appearance
 
 - type: entity
-  id: BoxFolderBase
   parent: BoxBase
+  id: BoxFolderBaseEmpty
   name: folder
   description: A folder filled with top secret paperwork.
   components:
   - type: Tag
     tags:
     - Folder
+
+- type: entity
+  abstract: true
+  id: BoxFolderFill # Include this as a parent prototype to add 0-5 random papers to a folder's inventory when spawned.
+  suffix: Filled
+  components:
   - type: StorageFill
     contents:
-      - id: Paper
-        prob: 0.5
-      - id: PaperOffice
-        prob: 0.4
-      - id: Paper
-        prob: 0.3
-      - id: PaperOffice
-        prob: 0.2
-      - id: Paper
-        prob: 0.2
+    - id: Paper
+      prob: 0.5
+    - id: PaperOffice
+      prob: 0.4
+    - id: Paper
+      prob: 0.3
+    - id: PaperOffice
+      prob: 0.2
+    - id: Paper
+      prob: 0.2
 
 - type: entity
-  id: BoxFolderRed
-  parent: BoxFolderBase
+  abstract: true
+  id: BoxFolderFillThreePapers # Like BoxFolderFill, but always has exactly three sheets of standard paper; use for roles' startingGear
+  suffix: 3 papers
+  components:
+  - type: StorageFill
+    contents:
+    - id: Paper
+      amount: 3
+
+- type: entity
+  parent: [BoxFolderBaseEmpty, BoxFolderFill]
+  id: BoxFolderBase
+
+- type: entity
+  parent: BoxFolderBaseEmpty
+  id: BoxFolderRedEmpty
   suffix: Red
   components:
   - type: Sprite
     - state: folder-base
 
 - type: entity
-  id: BoxFolderBlue
-  parent: BoxFolderBase
+  parent: [BoxFolderRedEmpty, BoxFolderFill]
+  id: BoxFolderRed
+  suffix: Red, Filled
+
+- type: entity
+  parent: BoxFolderBaseEmpty
+  id: BoxFolderBlueEmpty
   suffix: Blue
   components:
   - type: Sprite
     - state: folder-base
 
 - type: entity
-  id: BoxFolderYellow
-  parent: BoxFolderBase
+  parent: [BoxFolderBlueEmpty, BoxFolderFill]
+  id: BoxFolderBlue
+  suffix: Blue, Filled
+
+- type: entity
+  parent: BoxFolderBaseEmpty
+  id: BoxFolderYellowEmpty
   suffix: Yellow
   components:
   - type: Sprite
     - state: folder-base
 
 - type: entity
-  id: BoxFolderWhite
-  parent: BoxFolderBase
-  suffix: White
-  components:
-  - type: Sprite
-    layers:
-    - state: folder-white
-    - state: folder-base
+  parent: [BoxFolderYellowEmpty, BoxFolderFill]
+  id: BoxFolderYellow
+  suffix: Yellow, Filled
 
 - type: entity
-  id: BoxFolderGrey
-  parent: BoxFolderBase
+  parent: BoxFolderBaseEmpty
+  id: BoxFolderGreyEmpty
   suffix: Grey
   components:
   - type: Sprite
     - state: folder-base
 
 - type: entity
-  id: BoxFolderBlack
-  parent: BoxFolderBase
+  parent: [BoxFolderGreyEmpty, BoxFolderFill]
+  id: BoxFolderGrey
+  suffix: Grey, Filled
+
+- type: entity
+  parent: BoxFolderBaseEmpty
+  id: BoxFolderBlackEmpty
   suffix: Black
   components:
   - type: Sprite
     - state: folder-base
 
 - type: entity
-  id: BoxFolderGreen
-  parent: BoxFolderBase
+  parent: [BoxFolderBlackEmpty, BoxFolderFill]
+  id: BoxFolderBlack
+  suffix: Black, Filled
+
+- type: entity
+  parent: BoxFolderBaseEmpty
+  id: BoxFolderGreenEmpty
   suffix: Green
   components:
   - type: Sprite
     - state: folder-base
 
 - type: entity
-  id: BoxFolderCentCom
-  name: CentComm folder
-  parent: BoxFolderBase
+  parent: [BoxFolderGreenEmpty, BoxFolderFill]
+  id: BoxFolderGreen
+  suffix: Green, Filled
+
+- type: entity
+  parent: BoxFolderBaseEmpty
+  id: BoxFolderWhiteEmpty
+  suffix: White
+  components:
+  - type: Sprite
+    layers:
+    - state: folder-white
+    - state: folder-base
+
+- type: entity
+  parent: [BoxFolderWhiteEmpty, BoxFolderFill]
+  id: BoxFolderWhite
+  suffix: White, Filled
+
+- type: entity
+  parent: BoxFolderBaseEmpty
+  id: BoxFolderCentComEmpty
   categories: [ DoNotMap ]
+  name: CentComm folder
   description: CentComm's miserable little pile of secrets!
   components:
   - type: Sprite
     - state: folder-base
 
 - type: entity
-  id: BoxFolderClipboard
-  parent: BoxFolderBase
+  parent: [BoxFolderCentComEmpty, BoxFolderFill]
+  id: BoxFolderCentCom
+  suffix: DO NOT MAP, Filled
+
+- type: entity
+  parent: BoxFolderBaseEmpty
+  id: BoxFolderClipboardEmpty
   name: clipboard
   description: The weapon of choice for those on the front lines of bureaucracy.
   components:
         Blunt: 6
 
 - type: entity
-  id: BoxFolderCentComClipboard
-  parent: BoxFolderClipboard
+  parent: [BoxFolderClipboardEmpty, BoxFolderFill]
+  id: BoxFolderClipboard
+
+- type: entity
+  parent: [BoxFolderClipboardEmpty, BoxFolderFillThreePapers]
+  id: BoxFolderClipboardThreePapers
+
+- type: entity
+  parent: BoxFolderClipboardEmpty
+  id: BoxFolderPlasticClipboardEmpty
+  name: plastic clipboard
+  description: A cheap clipboard made of blue plastic. For those who aren't yet ready to wield the bureaucratic might of a proper wooden clipboard.
+  components:
+  - type: Sprite
+    sprite: Objects/Misc/plastic_clipboard.rsi
+    layers:
+    - state: clipboard
+    - state: clipboard_paper
+      map: ["clipboard_paper"]
+      visible: false
+    - state: clipboard_pen
+      map: ["clipboard_pen"]
+      visible: false
+    - state: clipboard_over
+  - type: Item
+    sprite: Objects/Misc/plastic_clipboard.rsi
+  - type: Clothing
+    sprite: Objects/Misc/plastic_clipboard.rsi
+
+- type: entity
+  parent: [BoxFolderPlasticClipboardEmpty, BoxFolderFill]
+  id: BoxFolderPlasticClipboard
+
+- type: entity
+  parent: BoxFolderClipboardEmpty
+  id: BoxFolderCentComClipboardEmpty
   name: CentComm clipboard
   description: A luxurious clipboard upholstered with green velvet. Often seen carried by CentComm officials, seldom seen actually used.
   components:
     sprite: Objects/Misc/cc-clipboard.rsi
 
 - type: entity
+  parent: [BoxFolderCentComClipboardEmpty, BoxFolderFill]
+  id: BoxFolderCentComClipboard
+
+- type: entity
+  parent: [BoxFolderCentComClipboardEmpty, BoxFolderFillThreePapers]
+  id: BoxFolderCentComClipboardThreePapers
+
+- type: entity
+  parent: [BoxFolderClipboardEmpty, BaseGrandTheftContraband]
   id: BoxFolderQmClipboard
-  parent: [BoxFolderClipboard, BaseGrandTheftContraband]
   name: requisition digi-board
   description: A bulky electric clipboard, filled with shipping orders and financing details. With so many compromising documents, you ought to keep this safe.
   components:
     grid:
     - 0,0,4,3
     quickInsert: true
-  - type: StorageFill
-    contents: [] #to override base clipboard fill
   - type: ItemMapper
     mapLayers:
       qm_clipboard_paper:
index 7cfac3488ab0afbbd2e1c857e20f9542f5caba32..abff9561c2069962872516bf7e40cc075b94280e 100644 (file)
     - PartsStatic
     - AtmosStatic
     - CablesStatic
+    - PaperworkStatic
     - CargoStatic
     - MaterialsStatic
     - BasicChemistryStatic
index f0e79a841eeffeab6a079f98d00d947cf243bbdb..c53dfb5d78be7e689de9d57dc5e3a5ed34defa18 100644 (file)
@@ -6,12 +6,13 @@
       rolls: !type:RangeNumberSelector
         range: 2, 4
       children:
-      - id: BoxFolderBlue
+      - id: BoxFolderBase
       - id: BoxFolderRed
+      - id: BoxFolderBlue
       - id: BoxFolderYellow
-      - id: BoxFolderWhite
       - id: BoxFolderGrey
       - id: BoxFolderBlack
+      - id: BoxFolderGreen
     - !type:GroupSelector
       rolls: !type:RangeNumberSelector
         range: 0, 3
index b4a1baa85f7cdafcfe462e186a8a84ddaca94355..5f3b22c30d36210179aacbf000ac8277d1e157e1 100644 (file)
@@ -17,7 +17,7 @@
   - type: Objective
     icon:
       sprite: Objects/Misc/folders.rsi
-      state: folder-white
+      state: folder-colormap
   - type: MultipleTraitorsRequirement
 
 - type: entity
index 7a6dc325191b4641781b8e3b71422642ac195a21..34a5fcbe6e525c2c1855454d970da264dea8d628 100644 (file)
   - CableMVStack
   - CableHVStack
 
+- type: latheRecipePack
+  id: PaperworkStatic
+  recipes:
+  - BoxFolderClipboardEmpty
+  - BoxFolderPlasticClipboardEmpty
+
 ## Dynamic
 
 # Things you'd expect sci salv and engi to make use of
index 40d155b1fd9924dbeb83caf946831e88b381b836..53b5f4a4e7fa6144e6c7e775653128bafac2d9b0 100644 (file)
   completetime: 1
   materials:
     Steel: 30
-    
+
+- type: latheRecipe
+  id: BoxFolderClipboardEmpty
+  result: BoxFolderClipboardEmpty
+  completetime: 2
+  materials:
+    Wood: 100
+    Steel: 25
+
+- type: latheRecipe
+  id: BoxFolderPlasticClipboardEmpty
+  result: BoxFolderPlasticClipboardEmpty
+  completetime: 2
+  materials:
+    Plastic: 100
+    Steel: 25
index f2e7a2fb93af990cd9593757a48ea897f225512a..5a62c1dc8e60db86d64f41166c11ff51a91b5c2f 100644 (file)
@@ -39,7 +39,7 @@
   equipment:
     id: QuartermasterPDA
     ears: ClothingHeadsetQM
-    belt: BoxFolderClipboard
+    belt: BoxFolderClipboardThreePapers
     pocket1: AppraisalTool
   storage:
     back:
index 9c28c56002354834eb06ad16fe4fb7e97227f7bf..86cf79d2079fa040bebfaa8d706d8d32db3ad8e3 100644 (file)
@@ -28,7 +28,7 @@
     id: CentcomPDA
     ears: ClothingHeadsetAltCentCom
     belt: WeaponPistolN1984
-    pocket1: BoxFolderBlack
+    pocket1: BoxFolderCentComClipboardThreePapers
     pocket2: PenCentcom
 
 
index 7bd1ff5c5213fa4f376c244d464780b049450fa0..ac052e5cdf76bf8d22042788c267828944a20a0d 100644 (file)
@@ -65,7 +65,7 @@
     id: HoPPDA
     gloves: ClothingHandsGlovesHop
     ears: ClothingHeadsetAltCommand
-    belt: BoxFolderClipboard
+    belt: BoxFolderClipboardThreePapers
     eyes: ClothingEyesHudCommand
   storage:
     back:
index ec9537bb55d9bda9e31a3043b3310dd418509e2a..8e129e01ede41bbcb67d69dbe27ed5dfb68ca246 100644 (file)
     pocket1: BookSun
     pocket2: BookRandomStory
   inhand:
-  - BoxFolderClipboard
+  - BoxFolderClipboardThreePapers
 
 - type: startingGear
   id: VisitorMusicianFancyAltA
     back: ClothingBackpackSatchel
     ears: ClothingHeadsetService
     pocket1: MicrophoneInstrument
-    pocket2: BoxFolderClipboard
+    pocket2: BoxFolderClipboardThreePapers
 
 - type: startingGear
   id: VisitorReporterAlt
     back: ClothingBackpackSatchel
     ears: ClothingHeadsetService
     pocket1: MicrophoneInstrument
-    pocket2: BoxFolderClipboard
+    pocket2: BoxFolderClipboardThreePapers
 
 - type: startingGear
   id: VisitorServiceWorker
diff --git a/Resources/Textures/Objects/Misc/plastic_clipboard.rsi/clipboard.png b/Resources/Textures/Objects/Misc/plastic_clipboard.rsi/clipboard.png
new file mode 100644 (file)
index 0000000..6267c74
Binary files /dev/null and b/Resources/Textures/Objects/Misc/plastic_clipboard.rsi/clipboard.png differ
diff --git a/Resources/Textures/Objects/Misc/plastic_clipboard.rsi/clipboard_over.png b/Resources/Textures/Objects/Misc/plastic_clipboard.rsi/clipboard_over.png
new file mode 100644 (file)
index 0000000..f5baed5
Binary files /dev/null and b/Resources/Textures/Objects/Misc/plastic_clipboard.rsi/clipboard_over.png differ
diff --git a/Resources/Textures/Objects/Misc/plastic_clipboard.rsi/clipboard_paper.png b/Resources/Textures/Objects/Misc/plastic_clipboard.rsi/clipboard_paper.png
new file mode 100644 (file)
index 0000000..d58b42b
Binary files /dev/null and b/Resources/Textures/Objects/Misc/plastic_clipboard.rsi/clipboard_paper.png differ
diff --git a/Resources/Textures/Objects/Misc/plastic_clipboard.rsi/clipboard_pen.png b/Resources/Textures/Objects/Misc/plastic_clipboard.rsi/clipboard_pen.png
new file mode 100644 (file)
index 0000000..e7b506c
Binary files /dev/null and b/Resources/Textures/Objects/Misc/plastic_clipboard.rsi/clipboard_pen.png differ
diff --git a/Resources/Textures/Objects/Misc/plastic_clipboard.rsi/equipped-BELT.png b/Resources/Textures/Objects/Misc/plastic_clipboard.rsi/equipped-BELT.png
new file mode 100644 (file)
index 0000000..8eb5e0e
Binary files /dev/null and b/Resources/Textures/Objects/Misc/plastic_clipboard.rsi/equipped-BELT.png differ
diff --git a/Resources/Textures/Objects/Misc/plastic_clipboard.rsi/inhand-left.png b/Resources/Textures/Objects/Misc/plastic_clipboard.rsi/inhand-left.png
new file mode 100644 (file)
index 0000000..2507245
Binary files /dev/null and b/Resources/Textures/Objects/Misc/plastic_clipboard.rsi/inhand-left.png differ
diff --git a/Resources/Textures/Objects/Misc/plastic_clipboard.rsi/inhand-right.png b/Resources/Textures/Objects/Misc/plastic_clipboard.rsi/inhand-right.png
new file mode 100644 (file)
index 0000000..e9e0078
Binary files /dev/null and b/Resources/Textures/Objects/Misc/plastic_clipboard.rsi/inhand-right.png differ
diff --git a/Resources/Textures/Objects/Misc/plastic_clipboard.rsi/meta.json b/Resources/Textures/Objects/Misc/plastic_clipboard.rsi/meta.json
new file mode 100644 (file)
index 0000000..1179619
--- /dev/null
@@ -0,0 +1,35 @@
+{
+  "version": 1,
+  "license": "CC-BY-SA-3.0",
+  "copyright": "Clipboard sprites are by WJohn (Github) for tgstation, taken from https://github.com/tgstation/tgstation/commit/3cc10b1785bff95e861d722b5164189951761921. Inhand sprites by nmajask (Github) for SS14. Aforementioned sprites modified again by Hitlinemoss. clipboard_paper is a modified version of paper from bureaucracy.rsi.",
+  "size": {
+    "x": 32,
+    "y": 32
+  },
+  "states": [
+    {
+      "name": "clipboard"
+    },
+    {
+      "name": "clipboard_over"
+    },
+    {
+      "name": "clipboard_paper"
+    },
+    {
+      "name": "clipboard_pen"
+    },
+    {
+      "name": "equipped-BELT",
+      "directions": 4
+    },
+    {
+      "name": "inhand-left",
+      "directions": 4
+    },
+    {
+      "name": "inhand-right",
+      "directions": 4
+    }
+  ]
+}