From 4c4627330395362534857571c5829b05c9cd811e Mon Sep 17 00:00:00 2001
From: deltanedas <39013340+deltanedas@users.noreply.github.com>
Date: Mon, 2 Oct 2023 20:21:15 +0100
Subject: [PATCH] Add rolling pins for flattening dough (#20624)
---
.../Locale/en-US/tools/tool-qualities.ftl | 5 +++-
.../Inventories/dinnerware.yml | 1 +
.../Consumable/Drinks/drinks_bottles.yml | 4 +++
.../Objects/Consumable/Drinks/drinks_cans.yml | 4 +++
.../Objects/Consumable/Food/ingredients.yml | 6 +++++
.../Objects/Misc/fire_extinguisher.yml | 4 +++
.../Entities/Objects/Tools/gas_tanks.yml | 19 +++++++++++---
.../Entities/Objects/Tools/tools.yml | 24 ++++++++++++++++++
.../Objects/Weapons/Melee/baseball_bat.yml | 4 +++
.../Construction/Graphs/food/pizza.yml | 14 ++++++++++
.../Recipes/Cooking/meal_recipes.yml | 16 ++++++------
Resources/Prototypes/tool_qualities.yml | 9 ++++++-
.../Guidebook/Service/FoodRecipes.xml | 4 ++-
.../Objects/Tools/rolling_pin.rsi/icon.png | Bin 0 -> 999 bytes
.../Tools/rolling_pin.rsi/inhand-left.png | Bin 0 -> 680 bytes
.../Tools/rolling_pin.rsi/inhand-right.png | Bin 0 -> 681 bytes
.../Objects/Tools/rolling_pin.rsi/meta.json | 22 ++++++++++++++++
17 files changed, 121 insertions(+), 15 deletions(-)
create mode 100644 Resources/Prototypes/Recipes/Construction/Graphs/food/pizza.yml
create mode 100644 Resources/Textures/Objects/Tools/rolling_pin.rsi/icon.png
create mode 100644 Resources/Textures/Objects/Tools/rolling_pin.rsi/inhand-left.png
create mode 100644 Resources/Textures/Objects/Tools/rolling_pin.rsi/inhand-right.png
create mode 100644 Resources/Textures/Objects/Tools/rolling_pin.rsi/meta.json
diff --git a/Resources/Locale/en-US/tools/tool-qualities.ftl b/Resources/Locale/en-US/tools/tool-qualities.ftl
index d12eb1104e..331925b4b9 100644
--- a/Resources/Locale/en-US/tools/tool-qualities.ftl
+++ b/Resources/Locale/en-US/tools/tool-qualities.ftl
@@ -26,4 +26,7 @@ tool-quality-honking-name = Honking
tool-quality-honking-tool-name = Bike Horn
tool-quality-woodcutting-name = Woodcutting
-tool-quality-woodcutting-tool-name = Hatchet
\ No newline at end of file
+tool-quality-woodcutting-tool-name = Hatchet
+
+tool-quality-rolling-name = Rolling
+tool-quality-rolling-tool-name = Rolling Pin
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Inventories/dinnerware.yml b/Resources/Prototypes/Catalog/VendingMachines/Inventories/dinnerware.yml
index ccf702b210..86f35b5269 100644
--- a/Resources/Prototypes/Catalog/VendingMachines/Inventories/dinnerware.yml
+++ b/Resources/Prototypes/Catalog/VendingMachines/Inventories/dinnerware.yml
@@ -3,6 +3,7 @@
startingInventory:
ButchCleaver: 1
KitchenKnife: 5
+ RollingPin: 4
Spoon: 4
Fork: 4
FoodBowlBig: 10
diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles.yml
index bd81756816..2fa487fa2c 100644
--- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles.yml
+++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles.yml
@@ -39,6 +39,10 @@
max: 1
- !type:DoActsBehavior
acts: [ "Destruction" ]
+ - type: Tool
+ qualities:
+ - Rolling
+ speed: 0.75 # not as good as a rolling pin but does the job
- type: TrashOnEmpty
solution: drink
diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml
index a68aba3d6e..118b242136 100644
--- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml
+++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml
@@ -48,6 +48,10 @@
damage:
types:
Blunt: 0
+ - type: Tool
+ qualities:
+ - Rolling
+ speed: 0.25 # its small so takes longer to roll the entire dough flat
- type: ItemCooldown
- type: SpaceGarbage
- type: TrashOnEmpty
diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Food/ingredients.yml b/Resources/Prototypes/Entities/Objects/Consumable/Food/ingredients.yml
index c3b3bba35b..8ef9bab706 100644
--- a/Resources/Prototypes/Entities/Objects/Consumable/Food/ingredients.yml
+++ b/Resources/Prototypes/Entities/Objects/Consumable/Food/ingredients.yml
@@ -334,6 +334,9 @@
- type: SliceableFood
count: 3
slice: FoodDoughSlice
+ - type: Construction
+ graph: Pizza
+ node: start
- type: entity
name: dough slice
@@ -424,6 +427,9 @@
components:
- type: Sprite
state: dough-flat
+ - type: Construction
+ graph: Pizza
+ node: flat
- type: entity
name: pizza bread
diff --git a/Resources/Prototypes/Entities/Objects/Misc/fire_extinguisher.yml b/Resources/Prototypes/Entities/Objects/Misc/fire_extinguisher.yml
index 344d707443..66ab0ab7fb 100644
--- a/Resources/Prototypes/Entities/Objects/Misc/fire_extinguisher.yml
+++ b/Resources/Prototypes/Entities/Objects/Misc/fire_extinguisher.yml
@@ -42,6 +42,10 @@
Blunt: 10
soundHit:
path: /Audio/Weapons/smash.ogg
+ - type: Tool
+ qualities:
+ - Rolling
+ speed: 0.5 # its very big, akward to use
- type: Appearance
- type: GenericVisualizer
visuals:
diff --git a/Resources/Prototypes/Entities/Objects/Tools/gas_tanks.yml b/Resources/Prototypes/Entities/Objects/Tools/gas_tanks.yml
index 7f4ee54f79..0fde43be31 100644
--- a/Resources/Prototypes/Entities/Objects/Tools/gas_tanks.yml
+++ b/Resources/Prototypes/Entities/Objects/Tools/gas_tanks.yml
@@ -42,7 +42,17 @@
price: 20
- type: entity
+ abstract: true
parent: GasTankBase
+ id: GasTankRoundBase
+ components:
+ - type: Tool
+ qualities:
+ - Rolling
+ speed: 0.6 # fairly unwieldly but nice round surface
+
+- type: entity
+ parent: GasTankRoundBase
id: OxygenTank
name: oxygen tank
description: A standard cylindrical gas tank for oxygen.
@@ -68,7 +78,7 @@
sprite: Objects/Tanks/yellow.rsi
- type: entity
- parent: GasTankBase
+ parent: GasTankRoundBase
id: NitrogenTank
name: nitrogen tank
description: A standard cylindrical gas tank for nitrogen.
@@ -81,7 +91,7 @@
sprite: Objects/Tanks/red.rsi
- type: entity
- parent: GasTankBase
+ parent: GasTankRoundBase
id: EmergencyOxygenTank
name: emergency oxygen tank
description: An easily portable tank for emergencies. Contains very little oxygen, rated for survival use only.
@@ -152,7 +162,7 @@
Blunt: 7.5
- type: entity
- parent: GasTankBase
+ parent: GasTankRoundBase
id: AirTank
name: air tank
description: Mixed anyone?
@@ -168,7 +178,7 @@
sprite: Objects/Tanks/generic.rsi
- type: entity
- parent: GasTankBase
+ parent: GasTankRoundBase
id: NitrousOxideTank
name: nitrous oxide tank
description: Contains a mixture of air and nitrous oxide. Make sure you don't refill it with pure N2O.
@@ -186,6 +196,7 @@
sprite: Objects/Tanks/anesthetic.rsi
- type: entity
+ # it's a square so no rolling dough
parent: GasTankBase
id: PlasmaTank
name: plasma tank
diff --git a/Resources/Prototypes/Entities/Objects/Tools/tools.yml b/Resources/Prototypes/Entities/Objects/Tools/tools.yml
index 82bef616de..c9e7bd0403 100644
--- a/Resources/Prototypes/Entities/Objects/Tools/tools.yml
+++ b/Resources/Prototypes/Entities/Objects/Tools/tools.yml
@@ -497,3 +497,27 @@
Wood: 50
- type: StaticPrice
price: 25
+
+- type: entity
+ parent: BaseItem
+ id: RollingPin
+ name: rolling pin
+ description: A tool used to shape and flatten dough.
+ components:
+ - type: Sprite
+ sprite: Objects/Tools/rolling_pin.rsi
+ state: icon
+ - type: Item
+ sprite: Objects/Tools/rolling_pin.rsi
+ size: 10
+ - type: ItemCooldown
+ - type: MeleeWeapon
+ damage:
+ types:
+ Blunt: 7
+ - type: Tool
+ qualities:
+ - Rolling
+ - type: PhysicalComposition
+ materialComposition:
+ Wood: 100
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/baseball_bat.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/baseball_bat.yml
index c8134180bc..4cd71e7239 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/baseball_bat.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/baseball_bat.yml
@@ -18,6 +18,10 @@
Blunt: 8
- type: Item
size: 80
+ - type: Tool
+ qualities:
+ - Rolling
+ speed: 0.75 # a bit unwieldly but does the job
- type: Clothing
quickEquip: false
slots:
diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/food/pizza.yml b/Resources/Prototypes/Recipes/Construction/Graphs/food/pizza.yml
new file mode 100644
index 0000000000..c8184100dd
--- /dev/null
+++ b/Resources/Prototypes/Recipes/Construction/Graphs/food/pizza.yml
@@ -0,0 +1,14 @@
+- type: constructionGraph
+ id: Pizza
+ start: start
+ graph:
+ - node: start
+ entity: FoodDough
+ edges:
+ - to: flat
+ steps:
+ - tool: Rolling
+ doAfter: 1
+ - node: flat
+ entity: FoodDoughFlat
+ # TODO: add stuff for adding ingredients then cooking the pizza, wsci
diff --git a/Resources/Prototypes/Recipes/Cooking/meal_recipes.yml b/Resources/Prototypes/Recipes/Cooking/meal_recipes.yml
index 3b15730535..1290c73a1d 100644
--- a/Resources/Prototypes/Recipes/Cooking/meal_recipes.yml
+++ b/Resources/Prototypes/Recipes/Cooking/meal_recipes.yml
@@ -482,14 +482,14 @@
solids:
FoodBreadPlainSlice: 2
-#Pizzas
+#Pizzas TODO: contruction graph based pizza
- type: microwaveMealRecipe
id: RecipeMargheritaPizza
name: margherita pizza recipe
result: FoodPizzaMargherita
time: 30
solids:
- FoodDough: 1
+ FoodDoughFlat: 1
FoodCheeseSlice: 1
FoodTomato: 4
@@ -499,7 +499,7 @@
result: FoodPizzaMushroom
time: 25
solids:
- FoodDough: 1
+ FoodDoughFlat: 1
FoodMushroom: 5
- type: microwaveMealRecipe
@@ -508,7 +508,7 @@
result: FoodPizzaMeat
time: 30
solids:
- FoodDough: 1
+ FoodDoughFlat: 1
FoodMeat: 3
FoodCheeseSlice: 1
FoodTomato: 1
@@ -519,7 +519,7 @@
result: FoodPizzaVegetable
time: 30
solids:
- FoodDough: 1
+ FoodDoughFlat: 1
FoodEggplant: 1
FoodCarrot: 1
FoodCorn: 1
@@ -531,7 +531,7 @@
result: FoodPizzaPineapple
time: 30
solids:
- FoodDough: 1
+ FoodDoughFlat: 1
FoodMeatChickenCutlet: 3
FoodPineappleSlice: 5
@@ -541,7 +541,7 @@
result: FoodPizzaDank
time: 30
solids:
- FoodDough: 1
+ FoodDoughFlat: 1
FoodAmbrosiaVulgaris: 3
FoodCheeseSlice: 1
FoodTomato: 1
@@ -552,7 +552,7 @@
result: FoodPizzaDonkpocket
time: 30
solids:
- FoodDough: 1
+ FoodDoughFlat: 1
FoodDonkpocketWarm: 3
FoodCheeseSlice: 1
FoodTomato: 1
diff --git a/Resources/Prototypes/tool_qualities.yml b/Resources/Prototypes/tool_qualities.yml
index 6525454287..ff55d9fcf1 100644
--- a/Resources/Prototypes/tool_qualities.yml
+++ b/Resources/Prototypes/tool_qualities.yml
@@ -59,4 +59,11 @@
name: tool-quality-honking-name
toolName: tool-quality-honking-tool-name
spawn: BikeHorn
- icon: { sprite: Objects/Fun/bikehorn.rsi, state: icon }
\ No newline at end of file
+ icon: { sprite: Objects/Fun/bikehorn.rsi, state: icon }
+
+- type: tool
+ id: Rolling
+ name: tool-quality-rolling-name
+ toolName: tool-quality-rolling-tool-name
+ spawn: RollingPin
+ icon: { sprite: Objects/Tools/rolling_pin.rsi, state: icon }
diff --git a/Resources/ServerInfo/Guidebook/Service/FoodRecipes.xml b/Resources/ServerInfo/Guidebook/Service/FoodRecipes.xml
index 02bf32677e..338cbea408 100644
--- a/Resources/ServerInfo/Guidebook/Service/FoodRecipes.xml
+++ b/Resources/ServerInfo/Guidebook/Service/FoodRecipes.xml
@@ -25,6 +25,7 @@ WARNING: This is not an automatically generated list, things here may become out
+
@@ -39,6 +40,7 @@ WARNING: This is not an automatically generated list, things here may become out
- Bun: Microwave Dough Slice for 5 Seconds
- Cutlet: Slice Raw Meat
- Cheese Wedge: Slice Cheese Wheel
+- Flat Dough: Use a rolling pin or a round object (fire extinguisher, soda can, bottle) on Dough.
## Food Examples
@@ -46,7 +48,7 @@ WARNING: This is not an automatically generated list, things here may become out
- Plain Burger: Microwave 1 Bun and 1 Raw Meat for 10 Seconds
- Tomato Soup: 10u Water, 1 Bowl, and 2 Tomatoes for 10 Seconds
- Citrus Salad: 1 Bowl, 1 Lemon, 1 Lime, 1 Orange for 5 Seconds
-- Margherita Pizza: Microwave 1 Dough, 1 Cheese Wedge, and 4 Tomatoes for 30 Seconds
+- Margherita Pizza: Microwave 1 Flat Dough, 1 Cheese Wedge, and 4 Tomatoes for 30 Seconds
- Cake: 1 Cake Batter for 15 Seconds
- Apple Pie: 1 Pie Dough, 3 Apples, and 1 Pie Tin for 15 Seconds
diff --git a/Resources/Textures/Objects/Tools/rolling_pin.rsi/icon.png b/Resources/Textures/Objects/Tools/rolling_pin.rsi/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..4cc81ec2c614806835b450af07d541fbd08bf599
GIT binary patch
literal 999
zcmV*oE?f@9~#lo=GnPeo<4(H?h*htiTQ8N#cm1msq_Yag&g0t}Ig?
zrWk>ZG!lqIf`Sq@p~FFpvPm;*?VGCkmQW-QqrZhRI63ktkT*(diK?oUHPTi3bd<&1
z|IgFbW~ROBp*Ya_>bjrfKyV+ZR$TY@)OD+8K;Q+qHXHsT&1vqN^h!gE90TDU;PR%S
zDF?vSE-?6P$y}~U0SdpS0UsAYUl!=U2YS}MS=IM({sd&U>51-u!y{mV&WAVt01)YD
z5jWSmv;Y7A32;bRa{vGf5&!@T5&_cPe*6Fc0vt(1K~z}7?Uv1J)Ib=
z3xdM-;z96UFCGf+UQ`f8SD_vXqTc*BD=2EKF4k@d+1+fuHXkP0WRi?CDIOb>-4sOj
zfq@V*{GNH=Co=;qwbcKtwgk#Y(Kn6rgzr7PgY8?_QDj1_8~W#Y?{Nq3zZ_#jB!zQ?
zI^nOL>_B%SOzi*%-#=jMMjQJF0}RZwInBD@Z+jgCVG7Upks`yT)*AK?e-^@PX#t17
z>2=|U1cu{cMp78Mhgp)AnlCO4f5G6t2*!qulx8q351JRVbZ6&lAcsHiBJv4_6BD!{
zz%)G=EhFuZQ!)$9aw$5@
literal 0
HcmV?d00001
diff --git a/Resources/Textures/Objects/Tools/rolling_pin.rsi/inhand-left.png b/Resources/Textures/Objects/Tools/rolling_pin.rsi/inhand-left.png
new file mode 100644
index 0000000000000000000000000000000000000000..d35603348105d3528d3f5939a6be0eea39fa88e6
GIT binary patch
literal 680
zcmV;Z0$2TsP)aTcv)qbkIRWBtsR47DPchY8|>1DYb%Cm*h2Rg(M9xDN&&ow<^jWWcs7-kR`Y98
z@E!dar!65YGuv9oWYXxmejecy^&u{Lb-&kf4Hi_J0lq%sIc9N(n5IE`%drIS5f8JH
zTp&Inj&T~0_*UqO$8Um*9)Ahux$Gj~7d@q78!K(hO57lxB90n*g*E39UlLNym1U}<
zw8vm0ixiTSg@Ot;p~FF(s!5r3_Dwf@ODL0v(c3~5oE$}z$QvWILS0p=8tE!MI;tY~
z|9RTl?2OkvlmvQTUH5YW2<`**n(O|ax^Ddp2)qE-X3JluoD$!p*IHWi7>Miump3g<
zIRLJ9fstoR=5j*{(DrK@@Nofz^T5zOFtF}r)jY@f6Oh}cUvvi?9s!edKeF)${dZ^x
z@bnM}00009a7bBm000XT000XT0n*)m`~Uy|-bqA3RCwC$+Pw|JFc5}eCsGC=RFsjZ
zEhH*LnE{{(6Hu@Q+c8EaU;+xGucM5AV%g|@YTwD{q`S`;0000000027p7+rWTjNsn
zQXloJ>H&1=$K@FP2&wv1`3O}H|2xF>ym!`GuR5JqU5??~HJi_G({#H-a~e9YL3Cbq
zs;~9|^c8Q@WHx?@>V5y7qUiFW1H{w<0000000000;2#y4AIP=RE^>vQ
z>rzGM2SRfJOQp;Ytg;>t%>^u#GC$C+@pVFT0ZSF1AIP!WCqDoHi1!7Z5n947e%37j
O0000aTcv)qbkIRWBtsR47DPchY8|>1DYb%Cm*h2Rg(M9xDN&&ow<^jWWcs7-kR`Y98
z@E!dar!65YGuv9oWYXxmejecy^&u{Lb-&kf4Hi_J0lq%sIc9N(n5IE`%drIS5f8JH
zTp&Inj&T~0_*UqO$8Um*9)Ahux$Gj~7d@q78!K(hO57lxB90n*g*E39UlLNym1U}<
zw8vm0ixiTSg@Ot;p~FF(s!5r3_Dwf@ODL0v(c3~5oE$}z$QvWILS0p=8tE!MI;tY~
z|9RTl?2OkvlmvQTUH5YW2<`**n(O|ax^Ddp2)qE-X3JluoD$!p*IHWi7>Miump3g<
zIRLJ9fstoR=5j*{(DrK@@Nofz^T5zOFtF}r)jY@f6Oh}cUvvi?9s!edKeF)${dZ^x
z@bnM}00009a7bBm000XT000XT0n*)m`~Uy|-$_J4RCwC$+Pw|JFc5~}bEFJFs3;>*
zTS!!hk^!Iy6Hu@Q+c8EaU;+xG>rwzR_y-%kPnp8{zDs#00ssI20001Bs-KIyoOZ6J
z%$iqoM=5{auj4$H`KJZvuC;uW{MK4IY?sxRpAJELXrEV_XCF6x>)OT2j5jeg4?y#4
z5AE~O0IuWR%(_mF!yxabS2E45`L&1k`RajM%l}gc0000000000fZvO@gRfQY^?8xQ
z&NYOhZxwuY@F7y)Dm0-F`0U_Aq`p;XLjO+C4&FoYw+cCS@a*{k0BJk`)i+wgL|;KM
P00000NkvXXu0mjfz&9=D
literal 0
HcmV?d00001
diff --git a/Resources/Textures/Objects/Tools/rolling_pin.rsi/meta.json b/Resources/Textures/Objects/Tools/rolling_pin.rsi/meta.json
new file mode 100644
index 0000000000..407ebc30c0
--- /dev/null
+++ b/Resources/Textures/Objects/Tools/rolling_pin.rsi/meta.json
@@ -0,0 +1,22 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "icon.png taken from https://github.com/DesertRose2/desertrose/blob/0348c98f8343b5cb82d87df12411ba647b2b1b4f/icons/obj/kitchen.dmi. Inhand sprites created by deltanedas (github) for SS14.",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "icon"
+ },
+ {
+ "name": "inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "inhand-right",
+ "directions": 4
+ }
+ ]
+}
--
2.51.2