From 6dea377601e2cb90110ee8267dab0364ebb7d6aa Mon Sep 17 00:00:00 2001
From: Tsar-Salat <62388554+Tsar-Salat@users.noreply.github.com>
Date: Tue, 2 Apr 2024 13:09:50 -0400
Subject: [PATCH 01/58] Newfood: I just want to griddle for gods sake (#10726)
* https://github.com/tgstation/tgstation/pull/55319
* https://github.com/tgstation/tgstation/pull/55619
* https://github.com/tgstation/tgstation/pull/57743
* https://github.com/tgstation/tgstation/pull/65833
* https://github.com/tgstation/tgstation/pull/55548
* https://github.com/tgstation/tgstation/pull/56557
* misc fixes
* https://github.com/tgstation/tgstation/pull/77570
* No pancakes for beestation (stupidass atom reagent exposure)
* 515 and reagent exposure notice
* https://github.com/tgstation/tgstation/pull/65783
* unused var
* sausage fix
* amerikaner sosig
* guh
* giled chese
* pigeon maps
* fix broken grill noise?
* unrelated, but why not
* ummm grill fix
* rad typepath fix
* tweaks
* test
* full-replacement
* full-replacement2?
* kilo try
* kilotry2
* delta
* fland
* echo
* fastfood
* fuckoff
---
_maps/RandomRuins/SpaceRuins/Fast_Food.dmm | 2 +-
_maps/map_files/BoxStation/BoxStation.dmm | 29 +-
_maps/map_files/CorgStation/CorgStation.dmm | 618 ++++++++--------
.../map_files/Deltastation/DeltaStation2.dmm | 5 +-
_maps/map_files/EchoStation/EchoStation.dmm | 35 +-
_maps/map_files/FlandStation/FlandStation.dmm | 197 ++---
_maps/map_files/KiloStation/KiloStation.dmm | 31 +-
_maps/map_files/MetaStation/MetaStation.dmm | 94 ++-
_maps/map_files/RadStation/RadStation.dmm | 672 +++++-------------
beestation.dme | 2 +
.../signals_obj/signals_item/signals_food.dm | 14 +
code/__DEFINES/flags.dm | 41 +-
code/_onclick/click.dm | 2 +-
code/datums/components/food/edible.dm | 23 +
code/datums/components/grillable.dm | 91 +++
.../datums/looping_sounds/machinery_sounds.dm | 7 +
.../circuitboards/machine_circuitboards.dm | 7 +
code/game/objects/items/food/_food.dm | 6 +
code/game/objects/items/food/meatdish.dm | 169 ++++-
code/game/objects/items/food/meatslab.dm | 170 ++---
code/game/objects/items/food/misc.dm | 11 +
code/game/objects/items/food/sandwichtoast.dm | 28 +-
code/game/objects/obj_defense.dm | 5 +-
code/modules/admin/verbs/cluwneplayer.dm | 6 +-
.../kitchen_machinery/griddle.dm | 149 ++++
.../kitchen_machinery/grill.dm | 93 ++-
.../kitchen_machinery/processor.dm | 4 +-
.../recipes/processor_recipes.dm | 47 +-
.../recipes/tablecraft/recipes_burger.dm | 40 +-
.../recipes/tablecraft/recipes_meat.dm | 2 +-
.../recipes/tablecraft/recipes_sandwich.dm | 4 +-
code/modules/hydroponics/grown/towercap.dm | 6 +-
.../research/designs/machine_designs.dm | 8 +
code/modules/research/techweb/all_nodes.dm | 2 +-
icons/effects/steam.dmi | Bin 0 -> 1056 bytes
icons/obj/food/meat.dmi | Bin 31038 -> 34096 bytes
icons/obj/machines/kitchenmachines.dmi | Bin 0 -> 2939 bytes
sound/machines/grill/grillsizzle.ogg | Bin 0 -> 30763 bytes
38 files changed, 1345 insertions(+), 1275 deletions(-)
create mode 100644 code/datums/components/grillable.dm
create mode 100644 code/modules/food_and_drinks/kitchen_machinery/griddle.dm
create mode 100644 icons/effects/steam.dmi
create mode 100644 icons/obj/machines/kitchenmachines.dmi
create mode 100644 sound/machines/grill/grillsizzle.ogg
diff --git a/_maps/RandomRuins/SpaceRuins/Fast_Food.dmm b/_maps/RandomRuins/SpaceRuins/Fast_Food.dmm
index 4ff1b225364c1..49da2fefd64b6 100644
--- a/_maps/RandomRuins/SpaceRuins/Fast_Food.dmm
+++ b/_maps/RandomRuins/SpaceRuins/Fast_Food.dmm
@@ -519,7 +519,7 @@
/turf/open/floor/carpet,
/area/ruin/space/has_grav/powered/macspace)
"cd" = (
-/obj/item/food/toastedsandwich,
+/obj/item/food/grilled_cheese_sandwich,
/obj/structure/table/wood/fancy/blue,
/turf/open/floor/iron/cafeteria,
/area/ruin/space/has_grav/powered/macspace)
diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm
index f3ed424e9463f..2bb23bef285aa 100644
--- a/_maps/map_files/BoxStation/BoxStation.dmm
+++ b/_maps/map_files/BoxStation/BoxStation.dmm
@@ -4259,6 +4259,12 @@
"aTN" = (
/obj/structure/table,
/obj/item/kitchen/rollingpin,
+/obj/item/reagent_containers/food/condiment/peppermill{
+ pixel_x = 3
+ },
+/obj/item/reagent_containers/food/condiment/saltshaker{
+ pixel_x = -3
+ },
/turf/open/floor/iron/cafeteria,
/area/crew_quarters/kitchen)
"aTO" = (
@@ -4515,13 +4521,7 @@
/turf/open/floor/iron/cafeteria,
/area/crew_quarters/kitchen)
"aVD" = (
-/obj/structure/table,
-/obj/item/reagent_containers/food/condiment/saltshaker{
- pixel_x = -3
- },
-/obj/item/reagent_containers/food/condiment/peppermill{
- pixel_x = 3
- },
+/obj/machinery/griddle,
/turf/open/floor/iron/cafeteria,
/area/crew_quarters/kitchen)
"aVE" = (
@@ -44208,9 +44208,7 @@
/area/security/courtroom)
"ooe" = (
/obj/structure/closet/secure_closet/freezer/kitchen,
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
+/obj/machinery/power/apc/auto_name/east,
/obj/structure/cable/yellow{
icon_state = "0-2"
},
@@ -62554,6 +62552,13 @@
/obj/structure/cable/yellow,
/turf/open/floor/plating,
/area/crew_quarters/heads/cmo)
+"wCj" = (
+/obj/structure/table,
+/obj/machinery/dish_drive{
+ pixel_y = 5
+ },
+/turf/open/floor/iron/cafeteria,
+/area/crew_quarters/kitchen)
"wCo" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable/yellow{
@@ -104700,8 +104705,8 @@ uve
lCW
hcL
bEr
-aVD
aVE
+aVD
aXm
aVz
kVI
@@ -104958,7 +104963,7 @@ aJI
aRB
thS
aTN
-cCq
+wCj
aVz
cAg
kVI
diff --git a/_maps/map_files/CorgStation/CorgStation.dmm b/_maps/map_files/CorgStation/CorgStation.dmm
index 054ebcd8a0716..c71bc407996fd 100644
--- a/_maps/map_files/CorgStation/CorgStation.dmm
+++ b/_maps/map_files/CorgStation/CorgStation.dmm
@@ -691,16 +691,6 @@
},
/turf/open/floor/iron/dark,
/area/security/nuke_storage)
-"afY" = (
-/obj/effect/turf_decal/tile/brown/half/contrasted{
- dir = 1
- },
-/obj/machinery/light{
- dir = 8
- },
-/obj/machinery/airalarm/directional/west,
-/turf/open/floor/iron,
-/area/quartermaster/storage)
"agb" = (
/obj/machinery/atmospherics/components/binary/volume_pump/on{
dir = 1;
@@ -1545,6 +1535,19 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/plating,
/area/maintenance/starboard/central)
+"apN" = (
+/obj/effect/turf_decal/tile/brown/half/contrasted{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/obj/machinery/power/apc/auto_name/north,
+/turf/open/floor/iron/dark,
+/area/quartermaster/storage)
"apW" = (
/obj/structure/chair{
dir = 1
@@ -3776,18 +3779,6 @@
},
/turf/open/space/basic,
/area/solar/port/fore)
-"aTC" = (
-/obj/effect/turf_decal/tile/brown/opposingcorners{
- dir = 1
- },
-/obj/structure/cable/yellow{
- icon_state = "2-8"
- },
-/obj/structure/cable/yellow{
- icon_state = "2-4"
- },
-/turf/open/floor/iron,
-/area/quartermaster/storage)
"aTD" = (
/obj/machinery/door/airlock/maintenance_hatch{
name = "Maintenance Hatch";
@@ -5744,6 +5735,30 @@
/obj/effect/turf_decal/tile/yellow/half/contrasted,
/turf/open/floor/iron/dark,
/area/engine/engine_room)
+"bCq" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/mining{
+ name = "Quartermaster's Office";
+ req_access_txt = "41"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable/yellow{
+ icon_state = "2-4"
+ },
+/turf/open/floor/iron,
+/area/quartermaster/qm)
"bCP" = (
/obj/structure/cable/yellow{
icon_state = "2-4"
@@ -6301,14 +6316,6 @@
/obj/machinery/door/firedoor,
/turf/open/floor/plating,
/area/medical/cryo)
-"bKR" = (
-/obj/machinery/deepfryer,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/effect/turf_decal/tile/red/fourcorners/contrasted,
-/turf/open/floor/iron/white,
-/area/crew_quarters/kitchen)
"bKV" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 5
@@ -7214,14 +7221,6 @@
},
/turf/open/floor/iron/dark,
/area/security/main)
-"bZk" = (
-/obj/effect/turf_decal/tile/brown/fourcorners/contrasted,
-/obj/effect/turf_decal/bot,
-/obj/structure/extinguisher_cabinet{
- pixel_x = -25
- },
-/turf/open/floor/iron,
-/area/quartermaster/storage)
"bZp" = (
/obj/structure/rack,
/obj/item/stock_parts/cell/high/plus,
@@ -8394,6 +8393,14 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/turf/open/floor/plating,
/area/ai_monitored/turret_protected/AIsatextAP)
+"cvn" = (
+/obj/effect/turf_decal/tile/brown/fourcorners/contrasted,
+/obj/effect/turf_decal/bot,
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -25
+ },
+/turf/open/floor/iron,
+/area/quartermaster/storage)
"cvq" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 1
@@ -8991,15 +8998,6 @@
},
/turf/open/floor/iron/white,
/area/crew_quarters/heads/cmo)
-"cHq" = (
-/obj/structure/table/reinforced,
-/obj/item/storage/bag/tray,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/effect/turf_decal/tile/red/fourcorners/contrasted,
-/turf/open/floor/iron/white,
-/area/crew_quarters/kitchen)
"cHt" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/turf/open/floor/iron,
@@ -12840,6 +12838,18 @@
dir = 5
},
/area/science/breakroom)
+"dUC" = (
+/obj/effect/turf_decal/tile/brown/opposingcorners{
+ dir = 1
+ },
+/obj/structure/cable/yellow{
+ icon_state = "2-8"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "2-4"
+ },
+/turf/open/floor/iron,
+/area/quartermaster/storage)
"dUK" = (
/obj/structure/reagent_dispensers/watertank/high,
/obj/machinery/light/small{
@@ -13377,30 +13387,6 @@
},
/turf/open/floor/carpet/purple,
/area/crew_quarters/heads/hor)
-"ecV" = (
-/obj/effect/turf_decal/stripes/line,
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/obj/machinery/door/firedoor,
-/obj/machinery/door/airlock/mining{
- name = "Quartermaster's Office";
- req_access_txt = "41"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/obj/structure/disposalpipe/segment,
-/obj/structure/cable/yellow{
- icon_state = "2-4"
- },
-/turf/open/floor/iron,
-/area/quartermaster/qm)
"edi" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plating/asteroid,
@@ -22283,6 +22269,20 @@
"hdz" = (
/turf/closed/wall,
/area/science/mixing)
+"hdA" = (
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "qmoffice";
+ name = "Quartermaster's Office Shutters"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/quartermaster/qm)
"hdC" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -26891,24 +26891,6 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/turf/open/floor/wood,
/area/crew_quarters/bar)
-"izh" = (
-/obj/effect/turf_decal/tile/red/fourcorners/contrasted,
-/obj/effect/turf_decal/tile/neutral/half/contrasted{
- dir = 8
- },
-/obj/structure/chair/fancy/comfy{
- color = "#666666";
- dir = 1
- },
-/obj/effect/landmark/start/security_officer,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/turf/open/floor/iron/dark,
-/area/security/main)
"izP" = (
/obj/effect/turf_decal/stripes/corner{
dir = 8
@@ -31405,20 +31387,6 @@
/obj/effect/turf_decal/tile/red,
/turf/open/floor/iron/white,
/area/crew_quarters/kitchen)
-"kaB" = (
-/obj/machinery/door/poddoor/shutters/preopen{
- id = "qmoffice";
- name = "Quartermaster's Office Shutters"
- },
-/obj/structure/cable/yellow{
- icon_state = "0-8"
- },
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
-/obj/effect/spawner/structure/window/reinforced,
-/turf/open/floor/plating,
-/area/quartermaster/qm)
"kaW" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -31994,6 +31962,24 @@
},
/turf/open/floor/iron/dark,
/area/ai_monitored/turret_protected/aisat/foyer)
+"kkG" = (
+/obj/effect/turf_decal/tile/red/fourcorners/contrasted,
+/obj/effect/turf_decal/tile/neutral/half/contrasted{
+ dir = 8
+ },
+/obj/structure/chair/fancy/comfy{
+ color = "#666666";
+ dir = 1
+ },
+/obj/effect/landmark/start/security_officer,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/iron/dark,
+/area/security/main)
"kkP" = (
/obj/structure/chair/office{
dir = 1
@@ -32481,6 +32467,36 @@
},
/turf/open/floor/plating,
/area/security/prison)
+"kqV" = (
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-8"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/door/airlock/command/glass{
+ name = "Head of Security";
+ req_access_txt = "58"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 8
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "hosoffice";
+ name = "Head Of Security Blast door"
+ },
+/turf/open/floor/iron/dark,
+/area/security/brig)
"krj" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
@@ -34005,17 +34021,6 @@
},
/turf/open/floor/plating,
/area/ai_monitored/turret_protected/AIsatextAP)
-"kUb" = (
-/obj/structure/cable/yellow{
- icon_state = "0-2"
- },
-/obj/effect/spawner/structure/window/reinforced,
-/obj/machinery/door/poddoor/preopen{
- id = "hosoffice";
- name = "Head Of Security Blast door"
- },
-/turf/open/floor/plating,
-/area/security/brig)
"kUj" = (
/obj/effect/spawner/structure/window,
/turf/open/floor/plating,
@@ -34052,6 +34057,15 @@
/obj/machinery/washing_machine,
/turf/open/floor/iron/freezer,
/area/security/prison)
+"kUI" = (
+/obj/structure/table/reinforced,
+/obj/item/storage/bag/tray,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red/fourcorners/contrasted,
+/turf/open/floor/iron/white,
+/area/crew_quarters/kitchen)
"kUJ" = (
/obj/structure/chair/office/light{
dir = 4
@@ -37501,26 +37515,6 @@
/obj/machinery/door/firedoor,
/turf/open/floor/iron,
/area/ai_monitored/storage/eva)
-"lZt" = (
-/obj/effect/turf_decal/tile/brown/fourcorners/contrasted,
-/obj/effect/turf_decal/tile/neutral/half/contrasted{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral/half/contrasted{
- dir = 8
- },
-/obj/effect/turf_decal/tile/brown/fourcorners/contrasted,
-/obj/effect/turf_decal/tile/neutral/half/contrasted{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/structure/cable/yellow{
- icon_state = "2-8"
- },
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/iron/dark,
-/area/quartermaster/qm)
"lZv" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
@@ -39346,6 +39340,17 @@
},
/turf/open/floor/iron/dark,
/area/crew_quarters/heads/hos)
+"mAc" = (
+/obj/structure/cable/yellow{
+ icon_state = "0-2"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "hosoffice";
+ name = "Head Of Security Blast door"
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/heads/hos)
"mAf" = (
/obj/machinery/atmospherics/pipe/simple/dark{
dir = 9
@@ -40323,25 +40328,6 @@
},
/turf/open/floor/iron/white,
/area/medical/genetics/cloning)
-"mOu" = (
-/obj/structure/table,
-/obj/item/clothing/under/rank/cargo/tech{
- pixel_x = 3;
- pixel_y = 3
- },
-/obj/item/clothing/gloves/fingerless{
- pixel_x = 1
- },
-/obj/structure/cable/yellow,
-/obj/effect/turf_decal/tile/brown/half/contrasted{
- dir = 1
- },
-/obj/item/radio/intercom{
- pixel_x = -29;
- pixel_y = -2
- },
-/turf/open/floor/iron,
-/area/quartermaster/storage)
"mOF" = (
/obj/structure/cable/yellow{
icon_state = "1-4"
@@ -41718,16 +41704,6 @@
},
/turf/open/floor/iron/dark,
/area/maintenance/department/chapel/monastery)
-"nok" = (
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/obj/effect/turf_decal/stripes/line,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/iron,
-/area/security/brig)
"noq" = (
/obj/item/storage/toolbox/electrical,
/obj/machinery/airalarm/directional/west,
@@ -43937,24 +43913,6 @@
},
/turf/open/floor/wood,
/area/library)
-"nXN" = (
-/obj/effect/turf_decal/tile/neutral/half/contrasted{
- dir = 8
- },
-/obj/effect/turf_decal/tile/brown/fourcorners/contrasted,
-/obj/structure/table/reinforced,
-/obj/item/computer_hardware/hard_drive/role/quartermaster{
- pixel_x = -6
- },
-/obj/item/computer_hardware/hard_drive/role/quartermaster{
- pixel_x = 6
- },
-/obj/item/computer_hardware/hard_drive/role/quartermaster{
- pixel_y = 6
- },
-/obj/item/gps/mining,
-/turf/open/floor/iron/dark,
-/area/quartermaster/qm)
"nXW" = (
/obj/structure/cable/yellow{
icon_state = "1-2"
@@ -45229,6 +45187,23 @@
},
/turf/open/floor/iron/white,
/area/medical/medbay/lobby)
+"oud" = (
+/obj/structure/cable/yellow{
+ icon_state = "2-8"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-8"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "hosoffice";
+ name = "Head Of Security Blast door"
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/heads/hos)
"oui" = (
/obj/structure/lattice,
/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
@@ -45716,6 +45691,26 @@
},
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
+"oCA" = (
+/obj/effect/turf_decal/tile/brown/fourcorners/contrasted,
+/obj/effect/turf_decal/tile/neutral/half/contrasted{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral/half/contrasted{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/brown/fourcorners/contrasted,
+/obj/effect/turf_decal/tile/neutral/half/contrasted{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/cable/yellow{
+ icon_state = "2-8"
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/iron/dark,
+/area/quartermaster/qm)
"oCK" = (
/obj/effect/turf_decal/tile/red/opposingcorners,
/obj/item/radio/intercom{
@@ -46837,6 +46832,14 @@
},
/turf/closed/wall,
/area/engine/atmospherics_engine)
+"oYs" = (
+/obj/machinery/deepfryer,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red/fourcorners/contrasted,
+/turf/open/floor/iron/white,
+/area/crew_quarters/kitchen)
"oYA" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
@@ -49011,15 +49014,6 @@
/obj/effect/turf_decal/tile/neutral/fourcorners/contrasted,
/turf/open/floor/iron,
/area/hallway/primary/fore)
-"pLo" = (
-/obj/structure/cable/yellow,
-/obj/effect/spawner/structure/window/reinforced,
-/obj/machinery/door/poddoor/preopen{
- id = "hosoffice";
- name = "Head Of Security Blast door"
- },
-/turf/open/floor/plating,
-/area/crew_quarters/heads/hos)
"pLz" = (
/obj/machinery/power/apc/auto_name/south{
pixel_y = -24
@@ -49484,17 +49478,6 @@
/obj/structure/closet/firecloset/full,
/turf/open/floor/iron,
/area/hallway/primary/starboard)
-"pSX" = (
-/obj/structure/cable/yellow{
- icon_state = "0-2"
- },
-/obj/effect/spawner/structure/window/reinforced,
-/obj/machinery/door/poddoor/preopen{
- id = "hosoffice";
- name = "Head Of Security Blast door"
- },
-/turf/open/floor/plating,
-/area/crew_quarters/heads/hos)
"pTe" = (
/turf/open/floor/plating,
/area/crew_quarters/fitness/recreation)
@@ -53422,36 +53405,6 @@
/obj/structure/disposalpipe/junction,
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
-"riQ" = (
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
-/obj/machinery/door/firedoor,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/structure/cable/yellow{
- icon_state = "1-8"
- },
-/obj/structure/cable/yellow{
- icon_state = "2-8"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/machinery/door/airlock/command/glass{
- name = "Head of Security";
- req_access_txt = "58"
- },
-/obj/structure/disposalpipe/segment{
- dir = 8
- },
-/obj/machinery/door/poddoor/preopen{
- id = "hosoffice";
- name = "Head Of Security Blast door"
- },
-/turf/open/floor/iron/dark,
-/area/security/brig)
"rjb" = (
/obj/effect/turf_decal/tile/neutral/half/contrasted,
/obj/effect/turf_decal/tile/neutral/half/contrasted{
@@ -53553,6 +53506,17 @@
/obj/effect/spawner/structure/window,
/turf/open/floor/plating,
/area/crew_quarters/toilet)
+"rkB" = (
+/obj/structure/cable/yellow{
+ icon_state = "0-2"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "hosoffice";
+ name = "Head Of Security Blast door"
+ },
+/turf/open/floor/plating,
+/area/security/brig)
"rkK" = (
/obj/structure/lattice/catwalk,
/obj/structure/cable/white{
@@ -53723,23 +53687,6 @@
},
/turf/open/floor/wood,
/area/crew_quarters/fitness/recreation)
-"rnk" = (
-/obj/structure/cable/yellow{
- icon_state = "2-8"
- },
-/obj/structure/cable/yellow{
- icon_state = "1-8"
- },
-/obj/structure/cable/yellow{
- icon_state = "0-8"
- },
-/obj/effect/spawner/structure/window/reinforced,
-/obj/machinery/door/poddoor/preopen{
- id = "hosoffice";
- name = "Head Of Security Blast door"
- },
-/turf/open/floor/plating,
-/area/crew_quarters/heads/hos)
"rnn" = (
/obj/machinery/light_switch{
pixel_x = 1;
@@ -56568,6 +56515,15 @@
/obj/effect/turf_decal/tile/red/half/contrasted,
/turf/open/floor/iron/dark,
/area/security/warden)
+"siu" = (
+/obj/structure/cable/yellow,
+/obj/machinery/door/poddoor/preopen{
+ id = "hosoffice";
+ name = "Head Of Security Blast door"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/security/brig)
"siV" = (
/obj/item/kirbyplants/random,
/obj/machinery/light,
@@ -58310,6 +58266,15 @@
},
/turf/closed/wall,
/area/engine/atmospherics_engine)
+"sLg" = (
+/obj/structure/cable/yellow,
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "hosoffice";
+ name = "Head Of Security Blast door"
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/heads/hos)
"sLm" = (
/turf/closed/wall,
/area/science/storage)
@@ -58665,6 +58630,14 @@
},
/turf/open/floor/engine,
/area/engine/atmospherics_engine)
+"sRL" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/maintenance_hatch{
+ name = "Cargo Maintenance";
+ req_access_txt = "31"
+ },
+/turf/open/floor/plating,
+/area/quartermaster/storage)
"sSj" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
@@ -58692,6 +58665,16 @@
/obj/effect/turf_decal/tile/yellow/fourcorners/contrasted,
/turf/open/floor/iron,
/area/engine/atmos)
+"sSB" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/stripes/line,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/iron,
+/area/security/brig)
"sSL" = (
/obj/structure/window/reinforced/spawner,
/obj/structure/window/reinforced/spawner{
@@ -61419,6 +61402,25 @@
},
/turf/open/floor/iron/dark,
/area/hallway/primary/central)
+"tOn" = (
+/obj/structure/table,
+/obj/item/clothing/under/rank/cargo/tech{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/clothing/gloves/fingerless{
+ pixel_x = 1
+ },
+/obj/structure/cable/yellow,
+/obj/effect/turf_decal/tile/brown/half/contrasted{
+ dir = 1
+ },
+/obj/item/radio/intercom{
+ pixel_x = -29;
+ pixel_y = -2
+ },
+/turf/open/floor/iron,
+/area/quartermaster/storage)
"tOF" = (
/obj/effect/turf_decal/tile/blue{
dir = 4
@@ -64407,14 +64409,6 @@
},
/turf/open/floor/iron/dark,
/area/maintenance/department/chapel/monastery)
-"uLB" = (
-/obj/machinery/door/firedoor,
-/obj/machinery/door/airlock/maintenance_hatch{
- name = "Cargo Maintenance";
- req_access_txt = "31"
- },
-/turf/open/floor/plating,
-/area/quartermaster/storage)
"uMg" = (
/obj/effect/turf_decal/tile/brown,
/obj/effect/turf_decal/tile/neutral{
@@ -65458,19 +65452,6 @@
},
/turf/open/floor/iron,
/area/engine/engine_room)
-"veL" = (
-/obj/effect/turf_decal/tile/brown/half/contrasted{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/structure/cable/yellow{
- icon_state = "0-8"
- },
-/obj/machinery/power/apc/auto_name/north,
-/turf/open/floor/iron/dark,
-/area/quartermaster/storage)
"veT" = (
/obj/structure/table/wood,
/obj/item/storage/fancy/candle_box,
@@ -65629,6 +65610,16 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
+"vhD" = (
+/obj/effect/turf_decal/tile/brown/half/contrasted{
+ dir = 1
+ },
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/machinery/airalarm/directional/west,
+/turf/open/floor/iron,
+/area/quartermaster/storage)
"vhE" = (
/obj/structure/disposalpipe/segment{
dir = 10
@@ -67165,6 +67156,24 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/iron/dark,
/area/security/brig)
+"vEj" = (
+/obj/effect/turf_decal/tile/neutral/half/contrasted{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/brown/fourcorners/contrasted,
+/obj/structure/table/reinforced,
+/obj/item/computer_hardware/hard_drive/role/quartermaster{
+ pixel_x = -6
+ },
+/obj/item/computer_hardware/hard_drive/role/quartermaster{
+ pixel_x = 6
+ },
+/obj/item/computer_hardware/hard_drive/role/quartermaster{
+ pixel_y = 6
+ },
+/obj/item/gps/mining,
+/turf/open/floor/iron/dark,
+/area/quartermaster/qm)
"vEs" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -68769,15 +68778,6 @@
},
/turf/open/floor/iron/dark,
/area/quartermaster/miningdock)
-"wgP" = (
-/obj/machinery/button/door{
- id = "detectivewindows";
- name = "Detective Private Shutters";
- pixel_y = -8;
- req_access_txt = "4"
- },
-/turf/closed/wall,
-/area/security/detectives_office)
"wgR" = (
/obj/effect/turf_decal/tile/blue/anticorner/contrasted,
/turf/open/floor/iron/white,
@@ -71481,6 +71481,15 @@
},
/turf/open/floor/iron/dark,
/area/engine/atmospherics_engine)
+"wZF" = (
+/obj/machinery/button/door{
+ id = "detectivewindows";
+ name = "Detective Private Shutters";
+ pixel_y = -8;
+ req_access_txt = "4"
+ },
+/turf/closed/wall,
+/area/security/detectives_office)
"wZS" = (
/obj/structure/table/glass,
/obj/machinery/requests_console{
@@ -74278,15 +74287,6 @@
},
/turf/open/floor/iron/dark,
/area/bridge)
-"xUc" = (
-/obj/structure/cable/yellow,
-/obj/machinery/door/poddoor/preopen{
- id = "hosoffice";
- name = "Head Of Security Blast door"
- },
-/obj/effect/spawner/structure/window/reinforced,
-/turf/open/floor/plating,
-/area/security/brig)
"xUf" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -110841,7 +110841,7 @@ sIf
cyL
uYN
qsX
-bKR
+oYs
wWq
jOn
jNy
@@ -111355,7 +111355,7 @@ aYT
tnJ
hZf
aPw
-cHq
+kUI
wWq
gEw
aYT
@@ -113084,7 +113084,7 @@ ykq
wkk
tmQ
kQW
-izh
+kkG
qRL
nXe
hhE
@@ -113857,7 +113857,7 @@ uQV
kkf
vwV
wKV
-wgP
+wZF
dqa
lev
ijS
@@ -115142,7 +115142,7 @@ wBm
fEX
tXi
rfO
-nok
+sSB
mLz
bkx
nPz
@@ -115647,9 +115647,9 @@ sEA
ezb
eZq
eZq
-kUb
-riQ
-xUc
+rkB
+kqV
+siu
duF
duF
cik
@@ -118217,9 +118217,9 @@ fpM
ajU
naL
iRh
-pSX
-rnk
-pLo
+mAc
+oud
+sLg
iRh
iRh
anT
@@ -118762,8 +118762,8 @@ hcZ
oeF
ivK
ecG
-uLB
-aTC
+sRL
+dUC
enS
qUi
kuy
@@ -119020,7 +119020,7 @@ oeF
ivK
sKt
aWM
-veL
+apN
aiQ
cNs
uiA
@@ -119519,11 +119519,11 @@ ivK
sEx
lJc
hgC
-lZt
-ecV
+oCA
+bCq
fcU
-afY
-bZk
+vhD
+cvn
mqk
azU
mqk
@@ -119533,7 +119533,7 @@ lDt
rDh
gMD
kvM
-mOu
+tOn
gdv
gdv
wpa
@@ -119777,7 +119777,7 @@ sEx
kYZ
mKw
pZL
-kaB
+hdA
qZv
nxL
nxL
@@ -120033,8 +120033,8 @@ ivK
sEx
vjM
vqO
-nXN
-kaB
+vEj
+hdA
aFR
vQo
enI
diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm
index ce04c26e93f98..4a04c058623b8 100644
--- a/_maps/map_files/Deltastation/DeltaStation2.dmm
+++ b/_maps/map_files/Deltastation/DeltaStation2.dmm
@@ -10012,9 +10012,7 @@
/turf/open/floor/iron,
/area/crew_quarters/kitchen)
"bhR" = (
-/obj/structure/table/reinforced,
-/obj/effect/turf_decal/bot,
-/obj/item/book/manual/wiki/cooking_to_serve_man,
+/obj/machinery/griddle,
/turf/open/floor/iron,
/area/crew_quarters/kitchen)
"bhS" = (
@@ -10563,6 +10561,7 @@
pixel_y = 5
},
/obj/effect/turf_decal/bot,
+/obj/item/book/manual/wiki/cooking_to_serve_man,
/turf/open/floor/iron,
/area/crew_quarters/kitchen)
"blw" = (
diff --git a/_maps/map_files/EchoStation/EchoStation.dmm b/_maps/map_files/EchoStation/EchoStation.dmm
index e0ea43e0b62de..0da15aeae0613 100644
--- a/_maps/map_files/EchoStation/EchoStation.dmm
+++ b/_maps/map_files/EchoStation/EchoStation.dmm
@@ -9023,6 +9023,18 @@
req_access = null;
req_one_access_txt = "28;25;35"
},
+/obj/item/storage/box/ingredients/fruity{
+ pixel_x = 4;
+ pixel_y = 6
+ },
+/obj/item/storage/box/ingredients/vegetarian{
+ pixel_x = -1;
+ pixel_y = 4
+ },
+/obj/item/storage/box/ingredients/wildcard{
+ pixel_x = -5;
+ pixel_y = 8
+ },
/turf/open/floor/iron/freezer,
/area/crew_quarters/kitchen/coldroom)
"eoQ" = (
@@ -28962,15 +28974,7 @@
/obj/effect/turf_decal/tile/dark_green/fourcorners/contrasted,
/mob/living/simple_animal/hostile/retaliate/frog{
attacked_sound = 'sound/effects/huuu.ogg';
- density = 0;
- desc = "It seems a little sad.";
dir = 8;
- head_icon = 'icons/mob/pets_held.dmi';
- held_state = "";
- icon = 'icons/mob/animal.dmi';
- icon_dead = "frog_dead";
- icon_living = "frog";
- icon_state = "frog";
name = "Larry";
pixel_y = 12;
stepped_sound = null
@@ -35130,19 +35134,7 @@
/turf/open/floor/iron,
/area/engine/engineering)
"rZh" = (
-/obj/structure/table,
-/obj/item/storage/box/ingredients/wildcard{
- pixel_x = -5;
- pixel_y = 8
- },
-/obj/item/storage/box/ingredients/fruity{
- pixel_x = 4;
- pixel_y = 6
- },
-/obj/item/storage/box/ingredients/vegetarian{
- pixel_x = -1;
- pixel_y = 4
- },
+/obj/machinery/griddle,
/turf/open/floor/iron/cafeteria,
/area/crew_quarters/kitchen)
"rZv" = (
@@ -36559,7 +36551,6 @@
/area/crew_quarters/cafeteria)
"sMM" = (
/obj/machinery/airalarm{
- dir = 2;
pixel_y = 28
},
/turf/open/openspace,
diff --git a/_maps/map_files/FlandStation/FlandStation.dmm b/_maps/map_files/FlandStation/FlandStation.dmm
index 00421407d23e9..cc74d9935b042 100644
--- a/_maps/map_files/FlandStation/FlandStation.dmm
+++ b/_maps/map_files/FlandStation/FlandStation.dmm
@@ -4474,9 +4474,7 @@
/turf/open/floor/iron/dark,
/area/hallway/secondary/entry)
"aYi" = (
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
+/obj/machinery/power/apc/auto_name/east,
/obj/effect/turf_decal/tile/blue/fourcorners/contrasted,
/obj/machinery/camera{
c_tag = "Medbay - Chief Medical Officer's Office";
@@ -6052,9 +6050,7 @@
/obj/structure/cable/yellow{
icon_state = "0-8"
},
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
+/obj/machinery/power/apc/auto_name/east,
/obj/structure/disposalpipe/segment,
/turf/open/floor/iron/dark,
/area/chapel/office)
@@ -9911,12 +9907,9 @@
},
/area/hallway/primary/port)
"czD" = (
-/obj/structure/table,
/obj/effect/turf_decal/bot,
-/obj/item/reagent_containers/glass/bowl,
-/obj/item/food/grown/tomato,
-/obj/item/food/dough,
/obj/effect/turf_decal/tile/bar/opposingcorners,
+/obj/machinery/griddle,
/turf/open/floor/iron/cafeteria,
/area/crew_quarters/kitchen)
"czF" = (
@@ -10225,9 +10218,7 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 8
},
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
+/obj/machinery/power/apc/auto_name/east,
/obj/structure/cable/yellow{
icon_state = "0-8"
},
@@ -11785,9 +11776,7 @@
/obj/machinery/light{
dir = 4
},
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
+/obj/machinery/power/apc/auto_name/east,
/obj/structure/cable/yellow{
icon_state = "0-8"
},
@@ -11915,6 +11904,10 @@
/obj/effect/turf_decal/bot,
/obj/structure/table,
/obj/effect/turf_decal/tile/bar/opposingcorners,
+/obj/item/reagent_containers/food/condiment/sugar,
+/obj/item/reagent_containers/food/condiment/flour{
+ pixel_x = 4
+ },
/turf/open/floor/iron/cafeteria,
/area/crew_quarters/kitchen)
"dap" = (
@@ -14949,6 +14942,10 @@
/obj/structure/disposalpipe/trunk{
dir = 4
},
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
/turf/open/floor/iron/dark,
/area/hydroponics)
"dPC" = (
@@ -16114,6 +16111,10 @@
},
/turf/open/floor/prison,
/area/security/prison)
+"ehF" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/hydroponics)
"ehG" = (
/obj/machinery/door/firedoor,
/obj/effect/turf_decal/stripes/closeup{
@@ -19089,9 +19090,7 @@
/turf/open/floor/plating,
/area/maintenance/port/central)
"eSB" = (
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
+/obj/machinery/power/apc/auto_name/east,
/obj/structure/cable/yellow,
/obj/effect/turf_decal/siding/wood{
dir = 8
@@ -19213,9 +19212,7 @@
/turf/open/floor/iron/grid/steel,
/area/bridge)
"eTQ" = (
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
+/obj/machinery/power/apc/auto_name/east,
/obj/structure/cable/yellow,
/turf/open/floor/iron/dark,
/area/engine/storage)
@@ -19702,6 +19699,10 @@
},
/turf/open/floor/iron,
/area/quartermaster/office)
+"eYj" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/crew_quarters/kitchen)
"eYk" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/turf/open/floor/circuit,
@@ -20411,6 +20412,14 @@
},
/turf/open/floor/iron,
/area/hallway/primary/port)
+"fiV" = (
+/obj/effect/turf_decal/tile/bar/opposingcorners,
+/obj/structure/table,
+/obj/item/food/dough,
+/obj/item/reagent_containers/glass/bowl,
+/obj/item/food/grown/tomato,
+/turf/open/floor/iron/cafeteria,
+/area/crew_quarters/kitchen)
"fiW" = (
/obj/effect/turf_decal/stripes/end,
/obj/effect/turf_decal/stripes/red/end,
@@ -20843,13 +20852,13 @@
/turf/open/floor/engine/air/light,
/area/engine/atmos)
"foJ" = (
-/obj/machinery/deepfryer,
/obj/item/radio/intercom{
pixel_x = 28
},
/obj/effect/turf_decal/tile/bar/opposingcorners{
dir = 1
},
+/obj/machinery/griddle,
/turf/open/floor/iron/cafeteria,
/area/vacant_room/commissary/commissaryFood)
"foO" = (
@@ -23237,9 +23246,7 @@
/turf/open/floor/iron,
/area/hallway/primary/central)
"fSI" = (
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
+/obj/machinery/power/apc/auto_name/east,
/obj/structure/cable/yellow,
/obj/structure/cable/yellow{
icon_state = "0-8"
@@ -23929,9 +23936,7 @@
/turf/open/floor/iron/dark,
/area/ai_monitored/turret_protected/ai_upload_foyer)
"gbx" = (
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
+/obj/machinery/power/apc/auto_name/east,
/obj/structure/cable/yellow{
icon_state = "0-8"
},
@@ -24435,10 +24440,6 @@
/turf/open/floor/plating,
/area/maintenance/port/central)
"ghK" = (
-/obj/structure/noticeboard{
- dir = 8;
- pixel_x = 32
- },
/obj/machinery/light/small{
dir = 4
},
@@ -26111,6 +26112,9 @@
/obj/item/storage/bag/plants/portaseeder,
/obj/item/plant_analyzer,
/obj/item/reagent_containers/glass/bucket,
+/obj/item/seeds/wheat,
+/obj/item/seeds/wheat,
+/obj/item/seeds/wheat,
/turf/open/floor/grass,
/area/hydroponics/garden)
"gCA" = (
@@ -26258,9 +26262,7 @@
dir = 9;
network = list("vault")
},
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
+/obj/machinery/power/apc/auto_name/east,
/obj/structure/cable/yellow{
icon_state = "0-8"
},
@@ -30283,9 +30285,7 @@
/turf/open/floor/iron,
/area/hallway/primary/central)
"hJw" = (
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
+/obj/machinery/power/apc/auto_name/east,
/obj/structure/cable/yellow{
icon_state = "0-8"
},
@@ -37168,9 +37168,7 @@
/obj/structure/cable/yellow{
icon_state = "0-8"
},
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
+/obj/machinery/power/apc/auto_name/east,
/obj/structure/chair/foldable{
dir = 8
},
@@ -39582,9 +39580,7 @@
/obj/machinery/airalarm{
pixel_y = 22
},
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
+/obj/machinery/power/apc/auto_name/east,
/obj/structure/cable/yellow{
icon_state = "0-2"
},
@@ -41952,10 +41948,6 @@
/obj/item/hand_labeler,
/obj/effect/turf_decal/bot,
/obj/structure/table,
-/obj/machinery/airalarm{
- dir = 1;
- pixel_y = -22
- },
/turf/open/floor/iron/grid/steel,
/area/hydroponics)
"kFJ" = (
@@ -42458,16 +42450,9 @@
/turf/closed/wall/r_wall,
/area/engine/supermatter)
"kMK" = (
-/obj/structure/table,
-/obj/effect/turf_decal/bot,
-/obj/item/reagent_containers/food/condiment/sugar,
-/obj/item/reagent_containers/food/condiment/flour{
- pixel_x = 4
- },
-/obj/item/food/chocolatebar,
-/obj/effect/turf_decal/tile/bar/opposingcorners,
-/turf/open/floor/iron/cafeteria,
-/area/crew_quarters/kitchen)
+/mob/living/simple_animal/chicken,
+/turf/open/floor/grass,
+/area/hydroponics/garden)
"kMO" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -42933,9 +42918,7 @@
name = "medbay camera";
network = list("ss13","medbay")
},
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
+/obj/machinery/power/apc/auto_name/east,
/obj/structure/cable/yellow{
icon_state = "0-8"
},
@@ -43951,9 +43934,7 @@
/obj/machinery/light/small{
dir = 4
},
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
+/obj/machinery/power/apc/auto_name/east,
/obj/structure/cable/yellow{
icon_state = "0-8"
},
@@ -47803,9 +47784,7 @@
/obj/item/stock_parts/cell/hyper,
/obj/item/stack/cable_coil,
/obj/effect/turf_decal/bot,
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
+/obj/machinery/power/apc/auto_name/east,
/obj/structure/cable/yellow{
icon_state = "0-8"
},
@@ -48968,9 +48947,7 @@
/turf/open/floor/carpet/orange,
/area/quartermaster/qm)
"muu" = (
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
+/obj/machinery/power/apc/auto_name/east,
/obj/structure/cable/yellow,
/turf/open/floor/carpet,
/area/hallway/primary/starboard)
@@ -50334,6 +50311,7 @@
/obj/item/storage/box/ingredients/wildcard,
/obj/item/food/mint,
/obj/effect/turf_decal/tile/bar/opposingcorners,
+/obj/item/food/chocolatebar,
/turf/open/floor/iron/cafeteria,
/area/crew_quarters/kitchen)
"mLS" = (
@@ -53079,6 +53057,10 @@
pixel_x = 4;
pixel_y = -4
},
+/obj/structure/noticeboard{
+ dir = 4;
+ pixel_x = -27
+ },
/turf/open/floor/iron/dark,
/area/crew_quarters/bar)
"nwT" = (
@@ -59259,9 +59241,7 @@
/turf/open/floor/iron/dark,
/area/bridge)
"pgZ" = (
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
+/obj/machinery/power/apc/auto_name/east,
/obj/structure/cable/yellow{
icon_state = "0-2"
},
@@ -63031,9 +63011,7 @@
/area/maintenance/central)
"qfK" = (
/obj/item/kirbyplants/random,
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
+/obj/machinery/power/apc/auto_name/east,
/obj/structure/cable/yellow{
icon_state = "0-8"
},
@@ -65806,9 +65784,7 @@
/turf/open/floor/iron/freezer,
/area/crew_quarters/kitchen/coldroom)
"qPX" = (
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
+/obj/machinery/power/apc/auto_name/east,
/obj/structure/cable/yellow{
icon_state = "0-8"
},
@@ -66714,9 +66690,7 @@
/obj/structure/cable/yellow{
icon_state = "0-8"
},
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
+/obj/machinery/power/apc/auto_name/east,
/obj/machinery/light_switch{
pixel_x = 24;
pixel_y = 24
@@ -68753,9 +68727,7 @@
/turf/open/floor/iron/dark,
/area/quartermaster/miningdock)
"rCW" = (
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
+/obj/machinery/power/apc/auto_name/east,
/obj/structure/cable/yellow{
icon_state = "0-8"
},
@@ -70048,9 +70020,7 @@
/area/hydroponics)
"rQK" = (
/obj/item/kirbyplants/random,
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
+/obj/machinery/power/apc/auto_name/east,
/obj/structure/cable/yellow{
icon_state = "0-8"
},
@@ -71329,6 +71299,11 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/security/execution/transfer)
+"sis" = (
+/obj/effect/turf_decal/tile/bar/opposingcorners,
+/obj/structure/table,
+/turf/open/floor/iron/cafeteria,
+/area/crew_quarters/kitchen)
"siB" = (
/obj/machinery/door/firedoor,
/obj/effect/turf_decal/stripes/closeup,
@@ -72786,9 +72761,7 @@
/turf/open/floor/iron/ridged/steel,
/area/science/xenobiology)
"sBB" = (
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
+/obj/machinery/power/apc/auto_name/east,
/obj/item/kirbyplants/random,
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -73098,9 +73071,7 @@
/obj/effect/turf_decal/trimline/red/filled/line{
dir = 4
},
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
+/obj/machinery/power/apc/auto_name/east,
/obj/structure/cable/yellow{
icon_state = "0-2"
},
@@ -77012,9 +76983,7 @@
/obj/structure/cable/yellow{
icon_state = "0-8"
},
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
+/obj/machinery/power/apc/auto_name/east,
/obj/effect/turf_decal/tile/yellow/fourcorners/contrasted,
/turf/open/floor/iron,
/area/storage/tools)
@@ -79728,9 +79697,7 @@
dir = 5
},
/obj/item/kirbyplants/random,
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
+/obj/machinery/power/apc/auto_name/east,
/obj/structure/cable/yellow{
icon_state = "0-8"
},
@@ -80675,9 +80642,7 @@
/area/engine/engine_room)
"uBs" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
+/obj/machinery/power/apc/auto_name/east,
/obj/structure/cable/yellow{
icon_state = "0-2"
},
@@ -81655,9 +81620,7 @@
/turf/open/floor/iron/dark,
/area/engine/gravity_generator)
"uOg" = (
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
+/obj/machinery/power/apc/auto_name/east,
/obj/structure/cable/yellow{
icon_state = "0-8"
},
@@ -83805,9 +83768,7 @@
/turf/open/floor/wood,
/area/security/detectives_office)
"vmR" = (
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
+/obj/machinery/power/apc/auto_name/east,
/obj/structure/cable/yellow,
/turf/open/floor/iron/dark,
/area/science/robotics/mechbay)
@@ -89063,9 +89024,7 @@
/turf/open/floor/iron/dark,
/area/science/lobby)
"wvS" = (
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
+/obj/machinery/power/apc/auto_name/east,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/blood/old,
/obj/structure/closet/secure_closet/injection,
@@ -116658,7 +116617,7 @@ tqu
fUf
fUf
fUf
-fUf
+kMK
fUf
veT
gVE
@@ -119242,7 +119201,7 @@ ajI
vqH
vqH
vpW
-vqH
+eYj
lHN
sxF
mRd
@@ -120518,7 +120477,7 @@ arZ
mEH
ptN
kFI
-arZ
+ehF
kZd
jAa
xNi
@@ -120788,8 +120747,8 @@ cRo
mib
mib
rfs
-mib
-mib
+sis
+fiV
mib
njG
jOJ
@@ -121046,7 +121005,7 @@ pYP
qxm
mib
mLj
-kMK
+czD
mib
qrj
jOJ
diff --git a/_maps/map_files/KiloStation/KiloStation.dmm b/_maps/map_files/KiloStation/KiloStation.dmm
index 41232f42c62e2..3574fdd5fdb6f 100644
--- a/_maps/map_files/KiloStation/KiloStation.dmm
+++ b/_maps/map_files/KiloStation/KiloStation.dmm
@@ -55048,14 +55048,12 @@
/area/medical/medbay/central)
"lHW" = (
/obj/structure/table,
+/obj/effect/turf_decal/tile/neutral/anticorner/contrasted,
+/obj/item/storage/bag/tray,
/obj/item/book/manual/chef_recipes{
pixel_x = -4;
pixel_y = 6
},
-/obj/item/book/manual/chef_recipes{
- pixel_y = 2
- },
-/obj/effect/turf_decal/tile/neutral/anticorner/contrasted,
/turf/open/floor/iron/dark,
/area/crew_quarters/kitchen)
"lIC" = (
@@ -61752,7 +61750,6 @@
/turf/open/floor/iron/showroomfloor,
/area/medical/surgery)
"nZX" = (
-/obj/machinery/deepfryer,
/obj/effect/turf_decal/bot,
/obj/effect/turf_decal/stripes/corner,
/obj/effect/turf_decal/stripes/line{
@@ -61761,6 +61758,7 @@
/obj/effect/turf_decal/tile/neutral/anticorner/contrasted{
dir = 4
},
+/obj/machinery/food_cart,
/turf/open/floor/iron/dark,
/area/crew_quarters/kitchen)
"oaf" = (
@@ -61845,10 +61843,12 @@
/area/maintenance/starboard)
"ocf" = (
/obj/structure/table,
-/obj/item/storage/bag/tray,
/obj/effect/turf_decal/tile/neutral/half/contrasted{
dir = 4
},
+/obj/machinery/reagentgrinder{
+ pixel_y = 5
+ },
/turf/open/floor/iron/dark,
/area/crew_quarters/kitchen)
"ocg" = (
@@ -65601,9 +65601,7 @@
/turf/open/floor/plating,
/area/quartermaster/warehouse)
"plP" = (
-/obj/effect/turf_decal/tile/dark_green/half/contrasted{
- color = "#439C1E"
- },
+/obj/effect/turf_decal/tile/dark_green/half/contrasted,
/obj/effect/turf_decal/stripes/corner,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
@@ -85868,13 +85866,13 @@
/turf/open/floor/iron/showroomfloor,
/area/medical/medbay/central)
"wgS" = (
+/obj/effect/turf_decal/tile/neutral/anticorner/contrasted{
+ dir = 8
+ },
/obj/structure/table,
/obj/machinery/microwave{
pixel_y = 5
},
-/obj/effect/turf_decal/tile/neutral/anticorner/contrasted{
- dir = 8
- },
/turf/open/floor/iron/dark,
/area/crew_quarters/kitchen)
"wgX" = (
@@ -90967,13 +90965,10 @@
},
/area/maintenance/starboard/aft)
"xQc" = (
-/obj/structure/table,
-/obj/machinery/reagentgrinder{
- pixel_y = 5
- },
/obj/effect/turf_decal/tile/neutral/half/contrasted{
dir = 8
},
+/obj/machinery/griddle,
/turf/open/floor/iron/dark,
/area/crew_quarters/kitchen)
"xQl" = (
@@ -92397,9 +92392,7 @@
/area/crew_quarters/cryopods)
"ylk" = (
/obj/effect/decal/cleanable/blood/old,
-/obj/effect/turf_decal/tile/dark_green/half/contrasted{
- color = "#439C1E"
- },
+/obj/effect/turf_decal/tile/dark_green/half/contrasted,
/obj/effect/turf_decal/stripes/line{
dir = 4
},
diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm
index 7b6dd78d5e312..a2cece2542cf2 100644
--- a/_maps/map_files/MetaStation/MetaStation.dmm
+++ b/_maps/map_files/MetaStation/MetaStation.dmm
@@ -29469,8 +29469,6 @@
/turf/open/floor/iron/dark,
/area/aisat)
"fpB" = (
-/obj/structure/table,
-/obj/item/food/mint,
/obj/machinery/airalarm{
dir = 4;
pixel_x = -23
@@ -29481,6 +29479,13 @@
pixel_y = -24
},
/obj/structure/cable/yellow,
+/obj/structure/rack,
+/obj/item/storage/box/donkpockets,
+/obj/item/stack/package_wrap,
+/obj/item/book/manual/chef_recipes{
+ pixel_x = 2;
+ pixel_y = 6
+ },
/turf/open/floor/iron/checker,
/area/crew_quarters/kitchen)
"fpC" = (
@@ -35284,10 +35289,12 @@
/turf/open/floor/plating,
/area/maintenance/aft/secondary)
"hEt" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
+/obj/machinery/door/poddoor/preopen{
+ id = "kitchenwindow";
+ name = "kitchen shutters"
},
-/turf/open/floor/iron/checker,
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
/area/crew_quarters/kitchen)
"hEL" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
@@ -43273,6 +43280,7 @@
"kId" = (
/obj/structure/table,
/obj/item/book/manual/wiki/cooking_to_serve_man,
+/obj/item/storage/box/donkpockets,
/turf/open/floor/iron/checker,
/area/crew_quarters/kitchen)
"kIn" = (
@@ -43473,6 +43481,7 @@
/obj/item/reagent_containers/food/condiment/enzyme{
layer = 5
},
+/obj/item/food/mint,
/turf/open/floor/iron/checker,
/area/crew_quarters/kitchen)
"kKl" = (
@@ -45876,9 +45885,6 @@
/obj/structure/cable/yellow{
icon_state = "1-4"
},
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 5
},
@@ -53120,10 +53126,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron/white,
/area/medical/medbay/aft)
-"oub" = (
-/obj/structure/sign/poster/official/random,
-/turf/closed/wall,
-/area/hydroponics)
"oue" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 5
@@ -59033,9 +59035,7 @@
/obj/effect/turf_decal/tile/yellow{
dir = 4
},
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
+/obj/machinery/power/apc/auto_name/east,
/obj/structure/cable/yellow{
icon_state = "0-8"
},
@@ -60310,9 +60310,7 @@
/obj/effect/turf_decal/trimline/blue/filled/line{
dir = 4
},
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
+/obj/machinery/power/apc/auto_name/east,
/obj/structure/cable/yellow{
icon_state = "0-8"
},
@@ -62521,13 +62519,7 @@
/obj/structure/extinguisher_cabinet{
pixel_y = -30
},
-/obj/structure/disposalpipe/trunk{
- dir = 4
- },
-/obj/machinery/disposal/bin,
-/obj/effect/turf_decal/bot{
- dir = 1
- },
+/obj/machinery/processor,
/turf/open/floor/iron/checker,
/area/crew_quarters/kitchen)
"sdw" = (
@@ -64629,11 +64621,6 @@
/turf/open/floor/engine,
/area/science/xenobiology)
"sVr" = (
-/obj/structure/table,
-/obj/machinery/microwave{
- pixel_x = -3;
- pixel_y = 4
- },
/obj/machinery/button/door{
id = "kitchen";
name = "Kitchen Shutters Control";
@@ -64648,6 +64635,10 @@
/obj/machinery/light{
dir = 1
},
+/obj/structure/table,
+/obj/machinery/dish_drive{
+ pixel_y = 5
+ },
/turf/open/floor/iron/checker,
/area/crew_quarters/kitchen)
"sVA" = (
@@ -66326,13 +66317,11 @@
/turf/open/floor/iron/grid/steel,
/area/medical/virology)
"tDj" = (
-/obj/structure/rack,
-/obj/item/book/manual/chef_recipes{
- pixel_x = 2;
- pixel_y = 6
+/obj/structure/table,
+/obj/machinery/microwave{
+ pixel_x = -3;
+ pixel_y = 4
},
-/obj/item/stack/package_wrap,
-/obj/item/storage/box/donkpockets,
/turf/open/floor/iron/checker,
/area/crew_quarters/kitchen)
"tDC" = (
@@ -66353,8 +66342,7 @@
/turf/open/floor/iron/white,
/area/medical/medbay/aft)
"tDH" = (
-/obj/structure/table,
-/obj/item/storage/box/donkpockets,
+/obj/machinery/griddle,
/turf/open/floor/iron/checker,
/area/crew_quarters/kitchen)
"tDM" = (
@@ -66627,9 +66615,6 @@
/turf/open/floor/iron,
/area/hallway/primary/fore)
"tIN" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
/obj/structure/cable/yellow{
icon_state = "4-8"
},
@@ -66639,6 +66624,9 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
},
+/obj/structure/disposalpipe/trunk/multiz/down{
+ dir = 1
+ },
/turf/open/floor/iron/checker,
/area/crew_quarters/kitchen)
"tIU" = (
@@ -68041,7 +68029,6 @@
/obj/structure/cable/yellow{
icon_state = "2-4"
},
-/obj/machinery/deepfryer,
/turf/open/floor/iron/checker,
/area/crew_quarters/kitchen)
"ukx" = (
@@ -71280,9 +71267,7 @@
/obj/machinery/light{
dir = 4
},
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
+/obj/machinery/power/apc/auto_name/east,
/obj/structure/cable/yellow{
icon_state = "0-8"
},
@@ -75165,7 +75150,11 @@
departmentType = 2;
pixel_x = 30
},
-/obj/machinery/processor,
+/obj/machinery/disposal/bin,
+/obj/effect/turf_decal/bot{
+ dir = 1
+ },
+/obj/structure/disposalpipe/trunk,
/turf/open/floor/iron/checker,
/area/crew_quarters/kitchen)
"wVV" = (
@@ -75924,9 +75913,7 @@
name = "medbay camera";
network = list("ss13","medbay")
},
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
+/obj/machinery/power/apc/auto_name/east,
/obj/structure/cable/yellow,
/turf/open/floor/iron/dark,
/area/medical/surgery)
@@ -77493,7 +77480,6 @@
/obj/effect/turf_decal/tile/red/fourcorners/contrasted,
/mob/living/simple_animal/kalo{
desc = "The Perma brig's cute grass snake.";
- icon = 'icons/mob/animal.dmi';
icon_dead = "snake_dead";
icon_living = "snake";
icon_state = "snake";
@@ -111795,7 +111781,7 @@ dik
bKe
bOP
bOP
-bOP
+hEt
bKe
bSS
soe
@@ -113082,7 +113068,7 @@ leM
kId
qqj
djR
-oub
+bUe
bUi
hzl
bWT
@@ -113595,7 +113581,7 @@ ujJ
duS
owC
qqj
-hEt
+ujJ
bSV
bUh
mPh
@@ -114110,7 +114096,7 @@ dLU
agH
wVR
tIN
-bST
+bUe
kwI
hzl
bWT
diff --git a/_maps/map_files/RadStation/RadStation.dmm b/_maps/map_files/RadStation/RadStation.dmm
index 3edc695f1ca9b..db9b8bf350545 100644
--- a/_maps/map_files/RadStation/RadStation.dmm
+++ b/_maps/map_files/RadStation/RadStation.dmm
@@ -453,9 +453,7 @@
/turf/open/floor/iron,
/area/hallway/primary/fore)
"agS" = (
-/obj/machinery/light{
- dir = 2
- },
+/obj/machinery/light,
/obj/structure/cable/yellow{
icon_state = "4-8"
},
@@ -494,9 +492,7 @@
/area/ai_monitored/turret_protected/ai)
"aic" = (
/obj/structure/table/reinforced,
-/obj/machinery/light{
- dir = 2
- },
+/obj/machinery/light,
/obj/item/clothing/glasses/welding,
/turf/open/floor/plating,
/area/ai_monitored/storage/satellite)
@@ -1159,9 +1155,7 @@
/obj/item/radio/intercom{
pixel_y = -35
},
-/obj/machinery/light{
- dir = 2
- },
+/obj/machinery/light,
/obj/machinery/recharge_station{
name = "EPS recharging station"
},
@@ -1831,8 +1825,7 @@
dir = 2
},
/obj/effect/turf_decal/tile/dark_blue/half/contrasted{
- alpha = 180;
- dir = 2
+ alpha = 180
},
/obj/effect/turf_decal/guideline/guideline_in/darkblue{
dir = 4
@@ -2141,7 +2134,6 @@
dir = 1
},
/obj/machinery/camera/autoname{
- dir = 2;
view_range = 12
},
/obj/machinery/status_display/evac{
@@ -2747,7 +2739,6 @@
broadcasting = 1;
canhear_range = 6;
dir = 8;
- listening = 1;
name = "Station Intercom (Court)"
},
/obj/item/gavelhammer{
@@ -3060,9 +3051,7 @@
/turf/open/floor/iron,
/area/science/xenobiology)
"aXX" = (
-/obj/structure/chair/wood/normal{
- dir = 2
- },
+/obj/structure/chair/wood/normal,
/turf/open/floor/wood,
/area/crew_quarters/theatre)
"aYr" = (
@@ -3381,8 +3370,7 @@
/obj/item/toy/figure/captain{
icon_state = "nuketoy";
name = "Toy Nuke";
- toysay = "What the fuck did you do?";
- toysound = 'sound/machines/click.ogg'
+ toysay = "What the fuck did you do?"
},
/turf/open/floor/plating/airless,
/area/science/test_area)
@@ -3683,7 +3671,6 @@
dir = 1
},
/obj/machinery/camera/autoname{
- dir = 2;
network = list("ss13","engine")
},
/turf/open/floor/iron/tech,
@@ -3855,7 +3842,6 @@
dir = 4
},
/obj/effect/turf_decal/guideline/guideline_in/green{
- alpha = 180;
color = "#439C1E"
},
/turf/open/floor/iron,
@@ -4298,8 +4284,7 @@
dir = 5
},
/obj/effect/turf_decal/tile/dark_blue/half/contrasted{
- alpha = 180;
- dir = 2
+ alpha = 180
},
/obj/structure/disposalpipe/sorting/mail{
name = "Security"
@@ -4667,9 +4652,7 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
},
-/obj/machinery/light{
- dir = 2
- },
+/obj/machinery/light,
/obj/structure/cable{
icon_state = "4-8"
},
@@ -4701,7 +4684,6 @@
/obj/structure/closet/secure_closet/freezer/meat,
/obj/effect/turf_decal/bot,
/obj/machinery/airalarm{
- dir = 2;
pixel_y = 28
},
/turf/open/floor/iron/freezer,
@@ -4752,8 +4734,7 @@
/area/medical/sleeper)
"bCx" = (
/obj/effect/turf_decal/tile/yellow/half/contrasted{
- alpha = 180;
- dir = 2
+ alpha = 180
},
/obj/effect/turf_decal/bot,
/obj/machinery/light{
@@ -5481,7 +5462,6 @@
dir = 8
},
/obj/effect/turf_decal/guideline/guideline_in/green{
- alpha = 180;
color = "#439C1E"
},
/turf/open/floor/iron,
@@ -5740,7 +5720,6 @@
dir = 4
},
/obj/effect/turf_decal/guideline/guideline_in/green{
- alpha = 180;
color = "#439C1E"
},
/turf/open/floor/iron,
@@ -6087,7 +6066,6 @@
dir = 4
},
/obj/effect/turf_decal/guideline/guideline_in/green{
- alpha = 180;
color = "#439C1E"
},
/turf/open/floor/iron,
@@ -6228,7 +6206,6 @@
/obj/machinery/light/floor{
brightness = 15;
bulb_colour = "#FFE4CE";
- bulb_emergency_brightness_mul = 0.25;
bulb_vacuum_brightness = 15;
nightshift_brightness = 10;
nightshift_light_color = "#E6EBFF"
@@ -6259,7 +6236,6 @@
/obj/machinery/light/floor{
brightness = 15;
bulb_colour = "#FFE4CE";
- bulb_emergency_brightness_mul = 0.25;
bulb_vacuum_brightness = 15;
nightshift_brightness = 10;
nightshift_light_color = "#E6EBFF"
@@ -6271,8 +6247,7 @@
/area/crew_quarters/heads/hos)
"ccv" = (
/obj/effect/turf_decal/tile/dark_blue/half/contrasted{
- alpha = 180;
- dir = 2
+ alpha = 180
},
/obj/effect/turf_decal/guideline/guideline_in/darkblue{
dir = 4
@@ -7135,7 +7110,6 @@
"coY" = (
/obj/structure/table,
/obj/machinery/door/window/eastright{
- dir = 4;
icon_state = "left";
name = "Research and Development Desk";
req_one_access_txt = "7;29"
@@ -7541,8 +7515,7 @@
/area/engine/atmos)
"cvf" = (
/obj/effect/turf_decal/tile/dark_blue/half/contrasted{
- alpha = 180;
- dir = 2
+ alpha = 180
},
/obj/structure/disposalpipe/segment{
dir = 2
@@ -7904,7 +7877,6 @@
dir = 1
},
/obj/machinery/camera/autoname{
- dir = 2;
network = list("ss13","medbay");
view_range = 10
},
@@ -8041,9 +8013,7 @@
/obj/structure/cable/yellow{
icon_state = "2-8"
},
-/obj/machinery/nuclearbomb/selfdestruct{
- base_icon_state = null
- },
+/obj/machinery/nuclearbomb/selfdestruct,
/turf/open/floor/circuit/green{
luminosity = 2
},
@@ -8615,7 +8585,6 @@
},
/obj/effect/turf_decal/guideline/guideline_edge_alt/blue,
/obj/effect/turf_decal/guideline/guideline_tri/blue{
- color = "#52B4E9";
dir = 4
},
/turf/open/floor/iron/white/side{
@@ -9202,15 +9171,11 @@
/turf/open/floor/iron/dark,
/area/hallway/primary/central)
"cWP" = (
-/obj/structure/chair/wood/normal{
- dir = 2
- },
+/obj/structure/chair/wood/normal,
/obj/structure/cable/yellow{
icon_state = "0-8"
},
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
+/obj/machinery/power/apc/auto_name/east,
/obj/effect/turf_decal/siding/wood/corner{
dir = 1
},
@@ -9569,9 +9534,7 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 6
},
-/turf/open/floor/iron/dark/side{
- dir = 2
- },
+/turf/open/floor/iron/dark/side,
/area/hallway/primary/central)
"dcB" = (
/obj/machinery/ai_slipper{
@@ -10256,8 +10219,7 @@
/area/quartermaster/storage)
"dmU" = (
/obj/effect/turf_decal/tile/yellow/half/contrasted{
- alpha = 180;
- dir = 2
+ alpha = 180
},
/obj/structure/closet/secure_closet/engineering_personal,
/obj/effect/turf_decal/bot,
@@ -10560,9 +10522,7 @@
pixel_x = -1;
pixel_y = 5
},
-/obj/machinery/light{
- dir = 2
- },
+/obj/machinery/light,
/obj/machinery/camera/autoname{
c_tag = "Starbird Security Checkpoint";
dir = 1
@@ -10981,7 +10941,6 @@
pixel_y = -32
},
/obj/effect/turf_decal/guideline/guideline_in/green{
- alpha = 180;
color = "#439C1E";
dir = 1
},
@@ -11084,9 +11043,7 @@
dir = 8
},
/obj/effect/turf_decal/guideline/guideline_edge/red,
-/obj/machinery/light{
- dir = 2
- },
+/obj/machinery/light,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 1
},
@@ -11201,8 +11158,7 @@
/area/engine/atmos)
"dBX" = (
/obj/effect/turf_decal/tile/dark_blue/half/contrasted{
- alpha = 180;
- dir = 2
+ alpha = 180
},
/obj/structure/disposalpipe/segment{
dir = 2
@@ -11581,7 +11537,6 @@
dir = 6
},
/obj/machinery/airalarm{
- dir = 2;
pixel_y = 28
},
/obj/machinery/chem_dispenser/mutagensaltpetersmall,
@@ -11804,7 +11759,6 @@
/obj/machinery/light/floor{
brightness = 15;
bulb_colour = "#FFE4CE";
- bulb_emergency_brightness_mul = 0.25;
bulb_vacuum_brightness = 15;
nightshift_brightness = 10;
nightshift_light_color = "#E6EBFF"
@@ -12110,9 +12064,7 @@
/obj/effect/decal/cleanable/dirt,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/turf/open/floor/iron/dark/side{
- dir = 2
- },
+/turf/open/floor/iron/dark/side,
/area/science/mixing/chamber)
"dNE" = (
/obj/effect/landmark/start/janitor,
@@ -12278,9 +12230,7 @@
/turf/open/floor/engine,
/area/science/xenobiology)
"dQf" = (
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
+/obj/machinery/power/apc/auto_name/east,
/obj/structure/cable/yellow{
icon_state = "0-8"
},
@@ -12521,7 +12471,6 @@
/obj/machinery/light/floor{
brightness = 15;
bulb_colour = "#FFE4CE";
- bulb_emergency_brightness_mul = 0.25;
bulb_vacuum_brightness = 15;
nightshift_brightness = 10;
nightshift_light_color = "#E6EBFF"
@@ -12586,7 +12535,6 @@
icon_state = "4-8"
},
/obj/machinery/atmospherics/components/binary/pump{
- dir = 2;
name = "Atmos to Loop"
},
/obj/effect/turf_decal/delivery,
@@ -13468,7 +13416,6 @@
/obj/machinery/light/floor{
brightness = 15;
bulb_colour = "#FFE4CE";
- bulb_emergency_brightness_mul = 0.25;
bulb_vacuum_brightness = 15;
nightshift_brightness = 10;
nightshift_light_color = "#E6EBFF"
@@ -13534,8 +13481,7 @@
"elG" = (
/obj/effect/turf_decal/tile/dark_red/half/contrasted{
alpha = 180;
- color = "#DE3A3A";
- dir = 2
+ color = "#DE3A3A"
},
/obj/structure/cable/yellow{
icon_state = "1-8"
@@ -13887,9 +13833,7 @@
/turf/open/floor/iron,
/area/maintenance/starboard/aft)
"ert" = (
-/obj/machinery/power/emitter/welded{
- dir = 2
- },
+/obj/machinery/power/emitter/welded,
/obj/structure/cable/yellow{
icon_state = "0-4"
},
@@ -14411,7 +14355,6 @@
dir = 4
},
/obj/effect/turf_decal/guideline/guideline_tri/blue{
- color = "#52B4E9";
dir = 1
},
/obj/structure/disposalpipe/segment{
@@ -15270,8 +15213,7 @@
dir = 8
},
/obj/effect/turf_decal/tile/dark_blue/half/contrasted{
- alpha = 180;
- dir = 2
+ alpha = 180
},
/obj/structure/disposalpipe/segment{
dir = 1
@@ -15307,9 +15249,7 @@
dir = 1;
network = list("ss13","security")
},
-/obj/machinery/light{
- dir = 2
- },
+/obj/machinery/light,
/obj/item/radio/intercom{
frequency = 1423;
name = "Interrogation Intercom";
@@ -15667,7 +15607,6 @@
},
/obj/effect/turf_decal/guideline/guideline_edge_alt/blue,
/obj/effect/turf_decal/guideline/guideline_tri/blue{
- color = "#52B4E9";
dir = 4
},
/turf/open/floor/iron/white/side{
@@ -15697,9 +15636,7 @@
"eTm" = (
/obj/machinery/portable_atmospherics/canister/oxygen,
/obj/effect/turf_decal/bot,
-/obj/machinery/light{
- dir = 2
- },
+/obj/machinery/light,
/turf/open/floor/iron,
/area/engine/atmos)
"eTn" = (
@@ -15986,7 +15923,6 @@
},
/obj/effect/turf_decal/tile/neutral/half/contrasted,
/obj/machinery/camera/autoname{
- c_tag = null;
dir = 8;
network = list("ss13","medbay");
view_range = 8
@@ -16705,9 +16641,7 @@
/area/maintenance/port/aft)
"fid" = (
/obj/effect/turf_decal/siding/wideplating/dark,
-/obj/machinery/light{
- dir = 2
- },
+/obj/machinery/light,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 9
},
@@ -17391,7 +17325,6 @@
dir = 8
},
/obj/effect/turf_decal/guideline/guideline_in/green{
- alpha = 180;
color = "#439C1E"
},
/turf/open/floor/iron,
@@ -17414,7 +17347,6 @@
/obj/machinery/light/floor{
brightness = 15;
bulb_colour = "#FFE4CE";
- bulb_emergency_brightness_mul = 0.25;
bulb_vacuum_brightness = 15;
nightshift_brightness = 10;
nightshift_light_color = "#E6EBFF"
@@ -17767,9 +17699,7 @@
pixel_x = 1;
pixel_y = -36
},
-/obj/machinery/light{
- dir = 2
- },
+/obj/machinery/light,
/obj/structure/chair/fancy/sofa/old/right{
dir = 1
},
@@ -17896,9 +17826,7 @@
/turf/open/floor/wood,
/area/security/courtroom)
"fzv" = (
-/obj/machinery/computer/cloning{
- dir = 2
- },
+/obj/machinery/computer/cloning,
/obj/effect/turf_decal/bot,
/turf/open/floor/iron,
/area/medical/genetics/cloning)
@@ -18074,9 +18002,7 @@
dir = 1
},
/obj/effect/turf_decal/siding/wideplating/dark,
-/turf/open/floor/iron/dark/side{
- dir = 2
- },
+/turf/open/floor/iron/dark/side,
/area/hallway/primary/central)
"fCz" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
@@ -18594,7 +18520,6 @@
/obj/machinery/light/floor{
brightness = 15;
bulb_colour = "#FFE4CE";
- bulb_emergency_brightness_mul = 0.25;
bulb_vacuum_brightness = 15;
nightshift_brightness = 10;
nightshift_light_color = "#E6EBFF"
@@ -18613,15 +18538,11 @@
/obj/structure/cable/yellow{
icon_state = "0-8"
},
-/obj/structure/curtain/directional{
- dir = 2
- },
+/obj/structure/curtain/directional,
/turf/open/floor/plating,
/area/security/courtroom)
"fLQ" = (
-/obj/machinery/light{
- dir = 2
- },
+/obj/machinery/light,
/obj/item/kirbyplants/random,
/turf/open/floor/iron,
/area/science/lobby)
@@ -19590,9 +19511,7 @@
layer = 3.00001;
pixel_y = 1
},
-/obj/machinery/light{
- dir = 2
- },
+/obj/machinery/light,
/obj/structure/extinguisher_cabinet{
pixel_y = -33
},
@@ -19888,9 +19807,7 @@
/obj/structure/extinguisher_cabinet{
pixel_x = -27
},
-/turf/open/floor/iron/dark/side{
- dir = 2
- },
+/turf/open/floor/iron/dark/side,
/area/hallway/primary/central)
"geq" = (
/obj/machinery/meter,
@@ -20179,9 +20096,7 @@
/obj/structure/extinguisher_cabinet{
pixel_y = -33
},
-/obj/machinery/light{
- dir = 2
- },
+/obj/machinery/light,
/turf/open/floor/iron/white/side{
dir = 1
},
@@ -20421,8 +20336,7 @@
dir = 8
},
/obj/effect/turf_decal/tile/dark_blue/half/contrasted{
- alpha = 180;
- dir = 2
+ alpha = 180
},
/obj/structure/disposalpipe/segment{
dir = 1
@@ -21147,8 +21061,7 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/obj/effect/turf_decal/tile/dark_blue/half/contrasted{
- alpha = 180;
- dir = 2
+ alpha = 180
},
/obj/effect/turf_decal/guideline/guideline_in/darkblue{
dir = 4
@@ -21553,8 +21466,7 @@
location = "2-Sec"
},
/obj/effect/turf_decal/tile/dark_blue/half/contrasted{
- alpha = 180;
- dir = 2
+ alpha = 180
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
@@ -21814,7 +21726,6 @@
/obj/machinery/light/floor{
brightness = 15;
bulb_colour = "#FFE4CE";
- bulb_emergency_brightness_mul = 0.25;
bulb_vacuum_brightness = 15;
nightshift_brightness = 10;
nightshift_light_color = "#E6EBFF"
@@ -21992,7 +21903,6 @@
pixel_y = 1
},
/obj/machinery/airalarm{
- dir = 2;
pixel_y = 28
},
/turf/open/floor/iron/white,
@@ -22139,8 +22049,7 @@
icon_state = "4-8"
},
/obj/effect/turf_decal/guideline/guideline_in/neutral{
- alpha = 255;
- dir = 2
+ alpha = 255
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
@@ -22288,7 +22197,6 @@
pixel_y = 29
},
/obj/machinery/camera/autoname{
- dir = 2;
network = list("ss13","rd")
},
/turf/open/floor/iron/dark,
@@ -22526,9 +22434,7 @@
/obj/effect/turf_decal/stripes/line{
dir = 8
},
-/obj/machinery/light{
- dir = 2
- },
+/obj/machinery/light,
/turf/open/floor/engine,
/area/science/explab)
"gRN" = (
@@ -22943,7 +22849,6 @@
dir = 1
},
/obj/effect/turf_decal/guideline/guideline_in/green{
- alpha = 180;
color = "#439C1E"
},
/turf/open/floor/iron,
@@ -23021,9 +22926,7 @@
/turf/open/floor/iron/white,
/area/science/research)
"gYh" = (
-/obj/machinery/light{
- dir = 2
- },
+/obj/machinery/light,
/obj/structure/disposalpipe/segment{
dir = 4
},
@@ -23745,11 +23648,8 @@
/obj/effect/turf_decal/guideline/guideline_edge_alt/blue{
dir = 8
},
-/obj/effect/turf_decal/guideline/guideline_tri/blue{
- color = "#52B4E9"
- },
+/obj/effect/turf_decal/guideline/guideline_tri/blue,
/obj/machinery/camera/autoname{
- dir = 2;
network = list("ss13","medbay");
view_range = 10
},
@@ -23946,7 +23846,6 @@
/obj/machinery/light/floor{
brightness = 15;
bulb_colour = "#FFE4CE";
- bulb_emergency_brightness_mul = 0.25;
bulb_vacuum_brightness = 15;
nightshift_brightness = 10;
nightshift_light_color = "#E6EBFF"
@@ -24180,9 +24079,7 @@
/turf/open/floor/iron/stairs/right,
/area/hallway/primary/central)
"hsL" = (
-/obj/machinery/light{
- dir = 2
- },
+/obj/machinery/light,
/turf/open/floor/iron,
/area/hallway/primary/central)
"hsU" = (
@@ -25383,9 +25280,7 @@
/obj/structure/cable/yellow{
icon_state = "0-8"
},
-/obj/structure/curtain/directional{
- dir = 2
- },
+/obj/structure/curtain/directional,
/turf/open/floor/plating,
/area/crew_quarters/heads/chief)
"hNf" = (
@@ -25711,7 +25606,6 @@
/obj/machinery/light/floor{
brightness = 15;
bulb_colour = "#FFE4CE";
- bulb_emergency_brightness_mul = 0.25;
bulb_vacuum_brightness = 15;
nightshift_brightness = 10;
nightshift_light_color = "#E6EBFF"
@@ -25813,9 +25707,7 @@
/obj/machinery/light{
dir = 1
},
-/obj/machinery/camera/autoname{
- dir = 2
- },
+/obj/machinery/camera/autoname,
/turf/open/floor/iron/dark,
/area/storage/primary)
"hTN" = (
@@ -27875,8 +27767,7 @@
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/effect/turf_decal/tile/dark_blue/half/contrasted{
- alpha = 180;
- dir = 2
+ alpha = 180
},
/obj/structure/disposalpipe/segment{
dir = 1
@@ -28047,9 +27938,7 @@
"iJN" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/components/trinary/filter{
- flipped = 0
- },
+/obj/machinery/atmospherics/components/trinary/filter,
/obj/effect/turf_decal/delivery,
/turf/open/floor/iron,
/area/engine/atmospherics_engine)
@@ -28237,9 +28126,7 @@
/turf/open/floor/iron/dark,
/area/security/courtroom)
"iNu" = (
-/obj/machinery/light{
- dir = 2
- },
+/obj/machinery/light,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 9
},
@@ -28757,9 +28644,7 @@
alpha = 180;
dir = 4
},
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
+/obj/machinery/power/apc/auto_name/east,
/obj/structure/cable/yellow{
icon_state = "0-2"
},
@@ -29471,8 +29356,7 @@
dir = 8
},
/obj/effect/turf_decal/tile/dark_blue/half/contrasted{
- alpha = 180;
- dir = 2
+ alpha = 180
},
/obj/structure/disposalpipe/segment{
dir = 1
@@ -30333,8 +30217,7 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/obj/effect/turf_decal/tile/dark_blue/half/contrasted{
- alpha = 180;
- dir = 2
+ alpha = 180
},
/obj/structure/disposalpipe/segment{
dir = 1
@@ -30408,9 +30291,7 @@
/obj/structure/disposalpipe/segment{
dir = 5
},
-/turf/open/floor/iron/dark/side{
- dir = 2
- },
+/turf/open/floor/iron/dark/side,
/area/hallway/primary/central)
"jwG" = (
/obj/effect/turf_decal/guideline/guideline_in/neutral{
@@ -30510,8 +30391,6 @@
pixel_y = -2
},
/obj/machinery/door/window/northright{
- dir = 1;
- icon_state = "right";
layer = 3.1;
name = "Jetpack Storage";
req_access_txt = "19"
@@ -30735,9 +30614,7 @@
/obj/structure/reagent_dispensers/peppertank{
pixel_y = -30
},
-/obj/machinery/light{
- dir = 2
- },
+/obj/machinery/light,
/obj/machinery/button/door/incinerator_vent_toxmix{
id = "tox_ESD";
name = "Emergency space door";
@@ -31004,7 +30881,6 @@
dir = 4
},
/obj/effect/turf_decal/guideline/guideline_in/green{
- alpha = 180;
color = "#439C1E"
},
/turf/open/floor/iron,
@@ -31176,9 +31052,7 @@
pixel_y = 5
},
/obj/structure/table/wood,
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
+/obj/machinery/power/apc/auto_name/east,
/obj/structure/cable/yellow{
icon_state = "0-2"
},
@@ -32083,7 +31957,6 @@
"jXw" = (
/obj/structure/bed/roller,
/obj/effect/turf_decal/guideline/guideline_tri/blue{
- color = "#52B4E9";
dir = 8
},
/turf/open/floor/iron/white/side{
@@ -32331,8 +32204,7 @@
/area/science/robotics/mechbay)
"kaQ" = (
/obj/effect/turf_decal/tile/yellow/half/contrasted{
- alpha = 180;
- dir = 2
+ alpha = 180
},
/turf/open/floor/iron,
/area/engine/storage)
@@ -32416,7 +32288,6 @@
},
/obj/machinery/firealarm/directional/north,
/obj/machinery/camera/autoname{
- dir = 2;
network = list("ss13","engine")
},
/obj/effect/turf_decal/tile/neutral/half/contrasted{
@@ -32636,7 +32507,6 @@
dir = 4
},
/obj/effect/turf_decal/guideline/guideline_in/green{
- alpha = 180;
color = "#439C1E"
},
/turf/open/floor/iron,
@@ -32834,9 +32704,7 @@
/turf/open/floor/iron/dark,
/area/engine/atmos)
"kjs" = (
-/obj/machinery/light{
- dir = 2
- },
+/obj/machinery/light,
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/hydroponics/constructable,
/obj/effect/turf_decal/stripes/line{
@@ -33083,7 +32951,6 @@
"kmq" = (
/obj/effect/turf_decal/box/white,
/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{
- dir = 2;
external_pressure_bound = 120;
name = "server vent"
},
@@ -33411,7 +33278,6 @@
dir = 4
},
/obj/effect/turf_decal/guideline/guideline_in/green{
- alpha = 180;
color = "#439C1E"
},
/turf/open/floor/iron,
@@ -34093,9 +33959,7 @@
/area/ai_monitored/turret_protected/ai_upload)
"kDX" = (
/obj/effect/landmark/start/randommaint/magician,
-/obj/structure/chair/wood/normal{
- dir = 2
- },
+/obj/structure/chair/wood/normal,
/turf/open/floor/wood,
/area/crew_quarters/theatre)
"kEh" = (
@@ -34140,9 +34004,7 @@
/obj/structure/cable{
icon_state = "0-8"
},
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
+/obj/machinery/power/apc/auto_name/east,
/turf/open/floor/engine{
initial_gas_mix = "n2=100;TEMP=80";
name = "mainframe floor"
@@ -34261,9 +34123,7 @@
dir = 1
},
/obj/effect/turf_decal/siding/wideplating/dark,
-/turf/open/floor/iron/dark/side{
- dir = 2
- },
+/turf/open/floor/iron/dark/side,
/area/hallway/primary/central)
"kIg" = (
/obj/item/soap/nanotrasen,
@@ -34627,7 +34487,6 @@
/area/space)
"kOt" = (
/obj/docking_port/stationary{
- dir = 1;
dwidth = 12;
height = 69;
id = "whiteship_home";
@@ -34807,8 +34666,7 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/effect/turf_decal/tile/dark_blue/half/contrasted{
- alpha = 180;
- dir = 2
+ alpha = 180
},
/obj/structure/disposalpipe/segment{
dir = 1
@@ -35501,9 +35359,7 @@
/obj/effect/turf_decal/tile/yellow{
dir = 4
},
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
+/obj/machinery/power/apc/auto_name/east,
/obj/structure/cable/yellow{
icon_state = "0-8"
},
@@ -35584,8 +35440,7 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/obj/effect/turf_decal/tile/dark_blue/half/contrasted{
- alpha = 180;
- dir = 2
+ alpha = 180
},
/obj/effect/turf_decal/guideline/guideline_in/darkblue{
dir = 4
@@ -35696,9 +35551,7 @@
/obj/machinery/light{
dir = 4
},
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
+/obj/machinery/power/apc/auto_name/east,
/obj/structure/cable/yellow{
icon_state = "0-8"
},
@@ -36439,9 +36292,7 @@
/obj/machinery/light{
dir = 4
},
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
+/obj/machinery/power/apc/auto_name/east,
/obj/structure/cable/yellow,
/turf/open/floor/wood,
/area/security/courtroom)
@@ -36791,10 +36642,6 @@
/turf/open/floor/iron,
/area/medical/apothecary)
"lxd" = (
-/obj/machinery/camera/autoname{
- dir = 2;
- network = list("ss13","rd")
- },
/obj/machinery/requests_console{
department = "Science";
departmentType = 2;
@@ -36802,6 +36649,10 @@
pixel_y = 30;
receive_ore_updates = 1
},
+/obj/machinery/camera/autoname{
+ dir = 2;
+ network = list("ss13","rd")
+ },
/obj/structure/disposalpipe/segment{
dir = 4
},
@@ -37099,9 +36950,7 @@
/turf/open/floor/iron/dark,
/area/engine/atmos)
"lBL" = (
-/obj/effect/turf_decal/tile/dark_green{
- dir = 2
- },
+/obj/effect/turf_decal/tile/dark_green,
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/reagent_dispensers/cooking_oil,
/turf/open/floor/iron,
@@ -37198,9 +37047,7 @@
/obj/structure/table/reinforced,
/obj/machinery/cell_charger,
/obj/item/stock_parts/cell/high/plus,
-/obj/machinery/light{
- dir = 2
- },
+/obj/machinery/light,
/obj/machinery/camera/autoname{
dir = 1;
network = list("ss13","engine")
@@ -37263,7 +37110,6 @@
id = "chapelgun"
},
/obj/machinery/door/window{
- dir = 2;
name = "Mass Driver";
req_access_txt = "22"
},
@@ -37865,7 +37711,6 @@
/obj/effect/decal/cleanable/dirt,
/obj/effect/landmark/start/assistant,
/obj/effect/turf_decal/guideline/guideline_in/green{
- alpha = 180;
color = "#439C1E";
dir = 1
},
@@ -38583,12 +38428,10 @@
"mbI" = (
/obj/structure/table/wood,
/obj/item/flashlight/lamp/green{
- layer = 3;
pixel_x = -8;
pixel_y = 15
},
/obj/item/storage/secure/briefcase{
- layer = 3;
pixel_x = 2;
pixel_y = 8
},
@@ -38631,7 +38474,6 @@
dir = 4
},
/obj/machinery/door/airlock/virology/glass{
- id_tag = null;
name = "Virology Ward";
req_access_txt = "39"
},
@@ -39900,6 +39742,9 @@
pixel_x = 26;
pixel_y = -1
},
+/obj/machinery/chem_master/condimaster{
+ name = "CondiMaster Neo"
+ },
/turf/open/floor/iron/freezer,
/area/crew_quarters/kitchen/coldroom)
"mwM" = (
@@ -41193,7 +41038,6 @@
/obj/machinery/light/floor{
brightness = 15;
bulb_colour = "#FFE4CE";
- bulb_emergency_brightness_mul = 0.25;
bulb_vacuum_brightness = 15;
nightshift_brightness = 10;
nightshift_light_color = "#E6EBFF"
@@ -41291,19 +41135,6 @@
"mRV" = (
/turf/closed/wall/mineral/plastitanium,
/area/security/brig/medbay)
-"mSi" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/obj/structure/sign/warning/securearea{
- pixel_y = 30
- },
-/obj/machinery/camera/autoname{
- dir = 2;
- network = list("ss13","engine")
- },
-/turf/open/floor/iron/dark,
-/area/engine/engine_room)
"mSo" = (
/obj/structure/disposalpipe/segment{
dir = 9
@@ -41449,7 +41280,6 @@
icon_state = "2-4"
},
/obj/effect/turf_decal/guideline/guideline_in/green{
- alpha = 180;
color = "#439C1E"
},
/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
@@ -41493,6 +41323,16 @@
/obj/machinery/light_switch{
pixel_x = 21
},
+/obj/item/food/dough{
+ pixel_y = 1
+ },
+/obj/item/food/dough{
+ pixel_x = -4
+ },
+/obj/item/kitchen/rollingpin{
+ pixel_x = 3;
+ pixel_y = 5
+ },
/turf/open/floor/iron/white,
/area/crew_quarters/kitchen)
"mVA" = (
@@ -41573,7 +41413,6 @@
dir = 4
},
/obj/effect/turf_decal/guideline/guideline_in/green{
- alpha = 180;
color = "#439C1E";
dir = 1
},
@@ -41763,7 +41602,6 @@
dir = 1
},
/obj/effect/turf_decal/guideline/guideline_tri/blue{
- color = "#52B4E9";
dir = 4
},
/obj/effect/turf_decal/guideline/guideline_edge_alt/blue,
@@ -42101,9 +41939,7 @@
/obj/effect/turf_decal/tile/blue/half/contrasted{
dir = 8
},
-/obj/effect/turf_decal/guideline/guideline_in/blue{
- dir = 2
- },
+/obj/effect/turf_decal/guideline/guideline_in/blue,
/obj/machinery/light_switch{
pixel_x = 21;
pixel_y = -21
@@ -43183,8 +43019,7 @@
"nss" = (
/obj/effect/turf_decal/tile/dark_red/half/contrasted{
alpha = 180;
- color = "#DE3A3A";
- dir = 2
+ color = "#DE3A3A"
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
@@ -43978,7 +43813,6 @@
/area/hallway/primary/fore)
"nDB" = (
/obj/effect/turf_decal/guideline/guideline_in/green{
- alpha = 180;
color = "#439C1E"
},
/obj/effect/turf_decal/tile/dark_green/half/contrasted{
@@ -45324,8 +45158,7 @@
dir = 2
},
/obj/effect/turf_decal/tile/dark_blue/half/contrasted{
- alpha = 180;
- dir = 2
+ alpha = 180
},
/obj/effect/turf_decal/guideline/guideline_in/darkblue{
dir = 4
@@ -46487,9 +46320,6 @@
name = "Security Viewing Hall"
})
"ovc" = (
-/obj/machinery/chem_master/condimaster{
- name = "CondiMaster Neo"
- },
/obj/machinery/light{
dir = 8
},
@@ -46497,6 +46327,7 @@
dir = 4
},
/obj/effect/turf_decal/bot,
+/obj/machinery/deepfryer,
/turf/open/floor/iron/white,
/area/crew_quarters/kitchen)
"ovj" = (
@@ -46679,9 +46510,7 @@
/area/medical/surgery)
"ozf" = (
/obj/effect/turf_decal/tile/neutral/fourcorners/contrasted,
-/obj/effect/turf_decal/numbers/two_nine{
- dir = 2
- },
+/obj/effect/turf_decal/numbers/two_nine,
/obj/effect/turf_decal/box,
/turf/open/floor/iron,
/area/maintenance/port/aft)
@@ -47584,9 +47413,7 @@
/obj/effect/turf_decal/guideline/guideline_half_edge/blue{
dir = 10
},
-/obj/effect/turf_decal/guideline/guideline_tri/blue{
- color = "#52B4E9"
- },
+/obj/effect/turf_decal/guideline/guideline_tri/blue,
/obj/effect/turf_decal/guideline/guideline_edge_alt/blue{
dir = 8
},
@@ -47651,9 +47478,7 @@
},
/area/quartermaster/exploration_prep)
"oOw" = (
-/obj/machinery/power/emitter/welded{
- dir = 2
- },
+/obj/machinery/power/emitter/welded,
/obj/structure/cable/yellow,
/obj/structure/cable/yellow{
icon_state = "1-4"
@@ -48102,23 +47927,25 @@
/turf/open/floor/plating,
/area/engine/break_room)
"oVm" = (
-/obj/structure/table,
-/obj/item/food/dough{
- pixel_x = -4
- },
-/obj/item/food/dough{
- pixel_y = 1
- },
-/obj/item/kitchen/rollingpin{
- pixel_x = 3;
- pixel_y = 5
- },
/obj/effect/turf_decal/stripes/line{
dir = 4
},
/obj/machinery/light{
dir = 4
},
+/obj/structure/table,
+/obj/item/storage/box/ingredients/wildcard{
+ pixel_x = -5;
+ pixel_y = 8
+ },
+/obj/item/storage/box/ingredients/fruity{
+ pixel_x = 4;
+ pixel_y = 6
+ },
+/obj/item/storage/box/ingredients/vegetarian{
+ pixel_x = -1;
+ pixel_y = 4
+ },
/turf/open/floor/iron/white,
/area/crew_quarters/kitchen)
"oVx" = (
@@ -48954,8 +48781,7 @@
dir = 4
},
/obj/effect/turf_decal/tile/dark_blue/half/contrasted{
- alpha = 180;
- dir = 2
+ alpha = 180
},
/turf/open/floor/iron/dark/corner{
dir = 1
@@ -48997,8 +48823,7 @@
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/obj/effect/turf_decal/tile/dark_blue/half/contrasted{
- alpha = 180;
- dir = 2
+ alpha = 180
},
/obj/structure/disposalpipe/segment{
dir = 1
@@ -49146,9 +48971,7 @@
/obj/effect/turf_decal/tile/blue/half/contrasted{
dir = 8
},
-/obj/effect/turf_decal/guideline/guideline_in/blue{
- dir = 2
- },
+/obj/effect/turf_decal/guideline/guideline_in/blue,
/obj/machinery/light{
dir = 8
},
@@ -49469,9 +49292,7 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
-/obj/machinery/light{
- dir = 2
- },
+/obj/machinery/light,
/obj/structure/extinguisher_cabinet{
pixel_x = -8;
pixel_y = -30
@@ -49851,7 +49672,6 @@
/area/engine/atmos)
"pxJ" = (
/obj/machinery/door/window/brigdoor/northleft{
- dir = 1;
name = "Telecommunications";
req_access_txt = "49"
},
@@ -49864,7 +49684,6 @@
/obj/effect/turf_decal/tile/red/fourcorners/contrasted,
/mob/living/simple_animal/kalo{
desc = "The Perma brig's cute grass snake.";
- icon = 'icons/mob/animal.dmi';
icon_dead = "snake_dead";
icon_living = "snake";
icon_state = "snake";
@@ -49911,9 +49730,7 @@
"pzk" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable/yellow,
-/obj/structure/curtain/directional{
- dir = 2
- },
+/obj/structure/curtain/directional,
/obj/structure/cable/yellow{
icon_state = "0-8"
},
@@ -50008,9 +49825,7 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
-/obj/machinery/light{
- dir = 2
- },
+/obj/machinery/light,
/obj/machinery/camera/autoname{
dir = 1;
pixel_x = 2
@@ -50107,9 +49922,7 @@
/turf/open/floor/iron/tech,
/area/engine/engine_room)
"pCi" = (
-/obj/effect/turf_decal/tile/dark_green{
- dir = 2
- },
+/obj/effect/turf_decal/tile/dark_green,
/turf/open/floor/iron,
/area/maintenance/central)
"pCu" = (
@@ -50284,9 +50097,7 @@
/obj/structure/cable/yellow{
icon_state = "0-4"
},
-/obj/structure/curtain/directional{
- dir = 2
- },
+/obj/structure/curtain/directional,
/turf/open/floor/plating,
/area/crew_quarters/heads/chief)
"pEZ" = (
@@ -50473,7 +50284,6 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/obj/machinery/door/window/southleft{
- dir = 2;
name = "Engineering Delivery";
req_access_txt = "24"
},
@@ -50618,7 +50428,6 @@
/area/maintenance/department/medical)
"pJP" = (
/obj/effect/turf_decal/guideline/guideline_tri/blue{
- color = "#52B4E9";
dir = 8
},
/obj/structure/cable/yellow{
@@ -50777,7 +50586,6 @@
/obj/machinery/light/floor{
brightness = 15;
bulb_colour = "#FFE4CE";
- bulb_emergency_brightness_mul = 0.25;
bulb_vacuum_brightness = 15;
nightshift_brightness = 10;
nightshift_light_color = "#E6EBFF"
@@ -51482,7 +51290,6 @@
},
/obj/machinery/recharge_station,
/obj/machinery/camera/autoname{
- dir = 2;
network = list("ss13","rd")
},
/obj/effect/landmark/start/cyborg,
@@ -51608,8 +51415,7 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/obj/effect/turf_decal/tile/dark_blue/half/contrasted{
- alpha = 180;
- dir = 2
+ alpha = 180
},
/obj/effect/turf_decal/guideline/guideline_in/darkblue{
dir = 4
@@ -51652,7 +51458,6 @@
dir = 4
},
/obj/effect/turf_decal/guideline/guideline_in/green{
- alpha = 180;
color = "#439C1E"
},
/obj/machinery/navbeacon{
@@ -51912,9 +51717,7 @@
/obj/effect/turf_decal/tile/blue/half/contrasted{
dir = 8
},
-/obj/effect/turf_decal/guideline/guideline_in/blue{
- dir = 2
- },
+/obj/effect/turf_decal/guideline/guideline_in/blue,
/turf/open/floor/iron/white,
/area/medical/medbay/lobby)
"qcz" = (
@@ -51926,8 +51729,7 @@
icon_state = "4-8"
},
/obj/effect/turf_decal/tile/dark_blue/half/contrasted{
- alpha = 180;
- dir = 2
+ alpha = 180
},
/obj/structure/disposalpipe/segment{
dir = 1
@@ -51951,8 +51753,7 @@
/area/hallway/secondary/exit/departure_lounge)
"qcH" = (
/obj/effect/turf_decal/tile/yellow/half/contrasted{
- alpha = 180;
- dir = 2
+ alpha = 180
},
/obj/structure/closet/secure_closet/engineering_personal,
/obj/effect/turf_decal/bot,
@@ -52021,7 +51822,6 @@
dir = 1
},
/obj/effect/turf_decal/guideline/guideline_tri/blue{
- color = "#52B4E9";
dir = 4
},
/obj/effect/turf_decal/guideline/guideline_edge_alt/blue,
@@ -52796,8 +52596,7 @@
dir = 2
},
/obj/effect/turf_decal/tile/dark_blue/half/contrasted{
- alpha = 180;
- dir = 2
+ alpha = 180
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/effect/turf_decal/guideline/guideline_half_in/darkblue{
@@ -52933,9 +52732,7 @@
/obj/effect/turf_decal/tile/blue/half/contrasted{
dir = 8
},
-/obj/effect/turf_decal/guideline/guideline_in/blue{
- dir = 2
- },
+/obj/effect/turf_decal/guideline/guideline_in/blue,
/turf/open/floor/iron/white,
/area/medical/medbay/lobby)
"quK" = (
@@ -53040,7 +52837,6 @@
dir = 10
},
/obj/machinery/camera/autoname{
- dir = 2;
view_range = 12
},
/obj/effect/turf_decal/siding/wideplating/dark/corner{
@@ -53376,7 +53172,6 @@
dir = 4
},
/obj/effect/turf_decal/guideline/guideline_in/green{
- alpha = 180;
color = "#439C1E"
},
/turf/open/floor/iron,
@@ -53418,8 +53213,7 @@
/area/science/mixing)
"qCQ" = (
/obj/effect/turf_decal/tile/dark_blue/half/contrasted{
- alpha = 180;
- dir = 2
+ alpha = 180
},
/obj/effect/landmark/start/cyborg,
/turf/open/floor/iron,
@@ -53519,7 +53313,6 @@
dir = 4
},
/obj/effect/turf_decal/guideline/guideline_in/green{
- alpha = 180;
color = "#439C1E"
},
/turf/open/floor/iron,
@@ -53621,7 +53414,6 @@
"qGM" = (
/obj/effect/turf_decal/tile/green/fourcorners/contrasted,
/obj/machinery/door/airlock/virology/glass{
- id_tag = null;
name = "Virology Ward";
req_access_txt = "39"
},
@@ -54172,8 +53964,7 @@
dir = 1
},
/obj/effect/turf_decal/tile/yellow/half/contrasted{
- alpha = 180;
- dir = 2
+ alpha = 180
},
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/iron,
@@ -54366,7 +54157,6 @@
dir = 5
},
/obj/effect/turf_decal/guideline/guideline_tri/_corner/blue{
- color = "#52B4E9";
dir = 1
},
/turf/open/floor/iron/white,
@@ -54657,7 +54447,6 @@
icon_state = "4-8"
},
/obj/effect/turf_decal/guideline/guideline_in/green{
- alpha = 180;
color = "#439C1E"
},
/turf/open/floor/iron,
@@ -54706,7 +54495,6 @@
/area/engine/engine_room)
"qYz" = (
/obj/machinery/camera/autoname{
- dir = 2;
network = list("ss13","rd")
},
/obj/structure/disposalpipe/segment{
@@ -54796,7 +54584,6 @@
},
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/medical{
- id_tag = null;
name = "Medbay";
req_one_access_txt = "5"
},
@@ -54912,7 +54699,6 @@
dir = 8
},
/obj/effect/turf_decal/guideline/guideline_tri/_corner/blue{
- color = "#52B4E9";
dir = 8
},
/turf/open/floor/iron/white,
@@ -55068,9 +54854,7 @@
/turf/open/floor/iron/white,
/area/medical/sleeper)
"res" = (
-/obj/machinery/computer/operating{
- dir = 2
- },
+/obj/machinery/computer/operating,
/turf/open/floor/iron/white,
/area/science/robotics)
"rev" = (
@@ -55798,9 +55582,7 @@
/obj/effect/turf_decal/tile/neutral/half/contrasted{
dir = 1
},
-/obj/effect/turf_decal/tile/dark_green{
- dir = 2
- },
+/obj/effect/turf_decal/tile/dark_green,
/turf/open/floor/iron,
/area/hallway/secondary/service)
"rqR" = (
@@ -56467,17 +56249,6 @@
/obj/structure/table/wood/fancy,
/turf/open/floor/carpet/grimy,
/area/chapel/office)
-"rCc" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/turf/open/floor/iron/dark/side{
- dir = 2
- },
-/area/hallway/primary/central)
"rCn" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -56523,7 +56294,6 @@
dir = 4
},
/obj/machinery/camera/autoname{
- dir = 2;
network = list("ss13","security")
},
/obj/machinery/power/apc/auto_name/east,
@@ -56817,9 +56587,7 @@
/obj/effect/turf_decal/tile/dark_blue/fourcorners/contrasted{
alpha = 180
},
-/obj/machinery/light{
- dir = 2
- },
+/obj/machinery/light,
/obj/structure/extinguisher_cabinet{
pixel_x = 27;
pixel_y = -1
@@ -56828,8 +56596,7 @@
/area/ai_monitored/turret_protected/aisat/foyer)
"rHP" = (
/obj/effect/turf_decal/tile/yellow/half/contrasted{
- alpha = 180;
- dir = 2
+ alpha = 180
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 10
@@ -56986,9 +56753,7 @@
/turf/open/floor/carpet/blue,
/area/medical/exam_room)
"rKH" = (
-/obj/machinery/light{
- dir = 2
- },
+/obj/machinery/light,
/obj/machinery/computer/med_data{
dir = 1
},
@@ -57139,8 +56904,7 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/obj/machinery/door/firedoor,
/obj/effect/turf_decal/tile/dark_blue/half/contrasted{
- alpha = 180;
- dir = 2
+ alpha = 180
},
/obj/structure/disposalpipe/segment{
dir = 1
@@ -57814,7 +57578,6 @@
/area/maintenance/port/aft)
"rZQ" = (
/obj/machinery/camera/autoname{
- c_tag = null;
dir = 4;
network = list("ss13","medbay");
view_range = 8
@@ -59557,8 +59320,7 @@
dir = 8
},
/obj/machinery/camera/preset/toxins{
- dir = 4;
- network = list("rd","toxins")
+ dir = 4
},
/turf/open/floor/plating/airless,
/area/science/test_area)
@@ -59793,8 +59555,7 @@
"sIW" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/effect/turf_decal/tile/dark_blue/half/contrasted{
- alpha = 180;
- dir = 2
+ alpha = 180
},
/obj/structure/disposalpipe/segment{
dir = 1
@@ -60379,8 +60140,7 @@
/obj/structure/chair/office,
/obj/effect/turf_decal/tile/dark_red/half/contrasted{
alpha = 180;
- color = "#DE3A3A";
- dir = 2
+ color = "#DE3A3A"
},
/obj/machinery/newscaster{
pixel_x = 32;
@@ -60945,9 +60705,7 @@
/turf/closed/wall/r_wall,
/area/security/warden)
"taL" = (
-/obj/machinery/light{
- dir = 2
- },
+/obj/machinery/light,
/obj/structure/table/reinforced,
/obj/item/stack/sheet/iron/fifty{
pixel_x = -2;
@@ -61118,7 +60876,6 @@
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
/obj/effect/turf_decal/guideline/guideline_in/green{
- alpha = 180;
color = "#439C1E"
},
/turf/open/floor/iron,
@@ -61234,9 +60991,7 @@
pixel_y = -33
},
/obj/machinery/disposal/bin,
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
+/obj/machinery/power/apc/auto_name/east,
/obj/effect/turf_decal/tile/purple/anticorner/contrasted,
/obj/effect/turf_decal/bot,
/obj/structure/disposalpipe/trunk{
@@ -61822,7 +61577,6 @@
/obj/machinery/light/floor{
brightness = 15;
bulb_colour = "#FFE4CE";
- bulb_emergency_brightness_mul = 0.25;
bulb_vacuum_brightness = 15;
nightshift_brightness = 10;
nightshift_light_color = "#E6EBFF"
@@ -62043,9 +61797,7 @@
},
/area/hallway/secondary/exit/departure_lounge)
"tpM" = (
-/obj/machinery/light{
- dir = 2
- },
+/obj/machinery/light,
/obj/effect/turf_decal/tile/neutral/half/contrasted{
dir = 8
},
@@ -62670,9 +62422,7 @@
/area/medical/medbay/lobby)
"tyE" = (
/obj/effect/turf_decal/tile/neutral/half/contrasted,
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
+/obj/machinery/power/apc/auto_name/east,
/obj/structure/cable/yellow{
icon_state = "0-8"
},
@@ -63298,7 +63048,6 @@
"tIJ" = (
/obj/structure/table/wood,
/obj/item/toy/plush/moth/luna{
- layer = 3;
pixel_x = -18;
pixel_y = 16
},
@@ -63330,8 +63079,7 @@
"tIT" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/effect/turf_decal/tile/dark_blue/half/contrasted{
- alpha = 180;
- dir = 2
+ alpha = 180
},
/obj/structure/disposalpipe/segment{
dir = 1
@@ -63958,9 +63706,7 @@
/area/engine/atmos)
"tTZ" = (
/obj/effect/spawner/structure/window/reinforced,
-/obj/structure/curtain/directional{
- dir = 2
- },
+/obj/structure/curtain/directional,
/obj/structure/cable/yellow{
icon_state = "0-8"
},
@@ -64283,9 +64029,7 @@
},
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/guideline/guideline_edge/purple,
-/obj/machinery/light{
- dir = 2
- },
+/obj/machinery/light,
/turf/open/floor/iron/white/side{
dir = 1
},
@@ -65179,9 +64923,7 @@
/area/hallway/primary/port)
"umA" = (
/obj/effect/spawner/structure/window/reinforced,
-/obj/structure/curtain/directional{
- dir = 2
- },
+/obj/structure/curtain/directional,
/turf/open/floor/plating,
/area/crew_quarters/dorms)
"umL" = (
@@ -65253,9 +64995,7 @@
/obj/structure/cable/yellow{
icon_state = "0-4"
},
-/obj/structure/curtain/directional{
- dir = 2
- },
+/obj/structure/curtain/directional,
/turf/open/floor/plating,
/area/security/courtroom)
"uog" = (
@@ -65379,9 +65119,7 @@
/area/crew_quarters/dorms)
"upL" = (
/obj/structure/table/reinforced,
-/obj/machinery/light{
- dir = 2
- },
+/obj/machinery/light,
/obj/item/aicard,
/turf/open/floor/iron/dark,
/area/ai_monitored/turret_protected/aisat_interior)
@@ -65704,7 +65442,6 @@
"uvp" = (
/obj/effect/turf_decal/tile/bar/opposingcorners,
/obj/machinery/camera/autoname{
- c_tag = null;
dir = 8;
network = list("ss13","medbay");
view_range = 8
@@ -65826,7 +65563,6 @@
/area/maintenance/department/medical/morgue)
"uxt" = (
/obj/machinery/camera/autoname{
- c_tag = null;
dir = 8;
network = list("ss13","medbay")
},
@@ -66162,9 +65898,7 @@
/obj/effect/turf_decal/tile/purple/anticorner/contrasted{
dir = 4
},
-/obj/machinery/camera/autoname{
- dir = 2
- },
+/obj/machinery/camera/autoname,
/obj/vehicle/ridden/janicart,
/obj/item/key/janitor,
/turf/open/floor/iron,
@@ -66306,7 +66040,6 @@
dir = 8
},
/obj/effect/turf_decal/guideline/guideline_in/green{
- alpha = 180;
color = "#439C1E"
},
/turf/open/floor/iron,
@@ -67307,9 +67040,7 @@
/obj/effect/turf_decal/tile/neutral/half/contrasted{
dir = 1
},
-/obj/effect/turf_decal/tile/dark_green{
- dir = 2
- },
+/obj/effect/turf_decal/tile/dark_green,
/turf/open/floor/iron,
/area/maintenance/central)
"uWe" = (
@@ -67414,8 +67145,7 @@
icon_state = "4-8"
},
/obj/effect/turf_decal/guideline/guideline_in/neutral{
- alpha = 255;
- dir = 2
+ alpha = 255
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
@@ -67475,15 +67205,12 @@
/turf/open/floor/plating/rust,
/area/maintenance/starboard/aft)
"uXH" = (
-/obj/machinery/computer/operating{
- dir = 2
- },
+/obj/machinery/computer/operating,
/obj/effect/turf_decal/bot,
/obj/machinery/newscaster{
pixel_y = 34
},
/obj/machinery/camera/autoname{
- dir = 2;
network = list("ss13","medbay")
},
/turf/open/floor/iron,
@@ -67674,7 +67401,6 @@
"vat" = (
/obj/structure/bookcase/random/fiction,
/obj/machinery/airalarm{
- dir = 2;
pixel_y = 28
},
/turf/open/floor/wood,
@@ -67860,9 +67586,7 @@
/turf/open/floor/carpet/purple,
/area/chapel/main)
"vdz" = (
-/obj/effect/turf_decal/numbers/two_nine{
- dir = 2
- },
+/obj/effect/turf_decal/numbers/two_nine,
/turf/open/floor/iron/grid/steel,
/area/medical/virology)
"vdH" = (
@@ -68188,22 +67912,10 @@
/turf/open/floor/iron/white,
/area/medical/medbay/central)
"vjD" = (
-/obj/structure/table,
-/obj/item/storage/box/ingredients/wildcard{
- pixel_x = -5;
- pixel_y = 8
- },
-/obj/item/storage/box/ingredients/fruity{
- pixel_x = 4;
- pixel_y = 6
- },
-/obj/item/storage/box/ingredients/vegetarian{
- pixel_x = -1;
- pixel_y = 4
- },
/obj/structure/cable/yellow{
icon_state = "1-2"
},
+/obj/machinery/griddle,
/turf/open/floor/iron/white,
/area/crew_quarters/kitchen)
"vjG" = (
@@ -68409,7 +68121,6 @@
/area/engine/atmospherics_engine)
"vma" = (
/obj/machinery/camera/autoname{
- c_tag = null;
dir = 4;
network = list("ss13","medbay")
},
@@ -68486,9 +68197,7 @@
/area/maintenance/department/medical)
"vnI" = (
/obj/effect/turf_decal/bot,
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
+/obj/machinery/power/apc/auto_name/east,
/obj/effect/turf_decal/tile/blue/fourcorners/contrasted,
/obj/structure/cable/yellow,
/obj/item/kirbyplants/random,
@@ -68547,8 +68256,7 @@
icon_state = "4-8"
},
/obj/effect/turf_decal/guideline/guideline_in/neutral{
- alpha = 255;
- dir = 2
+ alpha = 255
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
@@ -68631,9 +68339,7 @@
/obj/effect/turf_decal/tile/blue/half/contrasted{
dir = 8
},
-/obj/effect/turf_decal/guideline/guideline_in/blue{
- dir = 2
- },
+/obj/effect/turf_decal/guideline/guideline_in/blue,
/turf/open/floor/iron/white,
/area/medical/medbay/lobby)
"vqq" = (
@@ -68651,9 +68357,7 @@
/obj/effect/turf_decal/tile/dark_blue/fourcorners/contrasted{
alpha = 180
},
-/obj/machinery/light{
- dir = 2
- },
+/obj/machinery/light,
/obj/structure/extinguisher_cabinet{
pixel_x = -26;
pixel_y = -1
@@ -68860,7 +68564,6 @@
},
/obj/machinery/door/window/northright{
dir = 2;
- icon_state = "right";
name = "Engi Desk";
req_one_access_txt = "32;19"
},
@@ -68912,11 +68615,9 @@
dir = 1
},
/obj/machinery/camera/autoname{
- dir = 2;
network = list("ss13","medbay")
},
/obj/machinery/airalarm{
- dir = 2;
pixel_y = 28
},
/obj/structure/cable/yellow{
@@ -69111,8 +68812,8 @@
/turf/open/floor/iron/dark,
/area/science/misc_lab/range)
"vzi" = (
-/obj/machinery/deepfryer,
-/obj/effect/turf_decal/bot,
+/obj/structure/table,
+/obj/item/knife/kitchen,
/turf/open/floor/iron/white,
/area/crew_quarters/kitchen)
"vzm" = (
@@ -69168,7 +68869,6 @@
/obj/machinery/light/floor{
brightness = 15;
bulb_colour = "#FFE4CE";
- bulb_emergency_brightness_mul = 0.25;
bulb_vacuum_brightness = 15;
nightshift_brightness = 10;
nightshift_light_color = "#E6EBFF"
@@ -69295,7 +68995,6 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/obj/effect/turf_decal/guideline/guideline_tri/blue{
- color = "#52B4E9";
dir = 1
},
/obj/structure/cable/yellow{
@@ -69797,9 +69496,7 @@
/area/construction/mining/aux_base)
"vJG" = (
/obj/structure/lattice/catwalk,
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
+/obj/machinery/power/apc/auto_name/east,
/obj/machinery/porta_turret/ai{
dir = 4
},
@@ -69857,8 +69554,7 @@
dir = 4
},
/obj/effect/turf_decal/tile/dark_blue/half/contrasted{
- alpha = 180;
- dir = 2
+ alpha = 180
},
/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
dir = 8
@@ -70631,14 +70327,6 @@
/obj/effect/turf_decal/tile/dark_green/fourcorners/contrasted,
/mob/living/simple_animal/hostile/retaliate/frog{
attacked_sound = 'sound/effects/huuu.ogg';
- density = 0;
- desc = "It seems a little sad.";
- head_icon = 'icons/mob/pets_held.dmi';
- held_state = "";
- icon = 'icons/mob/animal.dmi';
- icon_dead = "frog_dead";
- icon_living = "frog";
- icon_state = "frog";
name = "Larry";
pixel_y = 12;
stepped_sound = null
@@ -70932,9 +70620,7 @@
/turf/open/floor/iron,
/area/maintenance/department/medical)
"wcw" = (
-/obj/machinery/power/emitter/welded{
- dir = 2
- },
+/obj/machinery/power/emitter/welded,
/obj/structure/cable/yellow{
icon_state = "0-8"
},
@@ -71205,9 +70891,7 @@
/turf/open/floor/plating,
/area/maintenance/port/central)
"wgp" = (
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
+/obj/machinery/power/apc/auto_name/east,
/obj/machinery/light{
dir = 4
},
@@ -71432,7 +71116,6 @@
},
/obj/machinery/firealarm/directional/west,
/obj/machinery/camera/autoname{
- c_tag = null;
dir = 4;
network = list("ss13","medbay");
view_range = 8
@@ -71936,7 +71619,6 @@
name = "Toxins Storage";
pixel_x = -1;
pixel_y = -29;
- req_access = null;
req_access_txt = "49"
},
/obj/structure/cable/yellow{
@@ -72049,9 +71731,7 @@
/obj/structure/chair/fancy/bench/pew/right{
dir = 8
},
-/obj/machinery/light{
- dir = 2
- },
+/obj/machinery/light,
/turf/open/floor/iron/dark,
/area/chapel/main)
"wyu" = (
@@ -72099,9 +71779,7 @@
/obj/structure/disposalpipe/segment{
dir = 4
},
-/turf/open/floor/iron/dark/side{
- dir = 2
- },
+/turf/open/floor/iron/dark/side,
/area/hallway/primary/central)
"wzs" = (
/obj/machinery/door/firedoor,
@@ -73151,7 +72829,6 @@
dir = 4
},
/obj/effect/turf_decal/guideline/guideline_in/green{
- alpha = 180;
color = "#439C1E"
},
/obj/structure/cable/yellow{
@@ -73261,9 +72938,7 @@
/obj/effect/turf_decal/siding/wood{
dir = 1
},
-/obj/structure/chair/wood/normal{
- dir = 2
- },
+/obj/structure/chair/wood/normal,
/obj/structure/cable/yellow{
icon_state = "4-8"
},
@@ -73861,9 +73536,7 @@
/turf/open/floor/iron,
/area/hallway/primary/starboard)
"xcR" = (
-/obj/machinery/light{
- dir = 2
- },
+/obj/machinery/light,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 9
},
@@ -74000,7 +73673,6 @@
broadcasting = 1;
canhear_range = 6;
dir = 8;
- listening = 1;
name = "Station Intercom (Court)"
},
/turf/open/floor/wood,
@@ -74286,7 +73958,6 @@
broadcasting = 1;
canhear_range = 6;
dir = 8;
- listening = 1;
name = "Station Intercom (Court)"
},
/obj/machinery/firealarm/directional/west,
@@ -74502,8 +74173,7 @@
icon_state = "4-8"
},
/obj/effect/turf_decal/guideline/guideline_in/neutral{
- alpha = 255;
- dir = 2
+ alpha = 255
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
@@ -75043,7 +74713,6 @@
/obj/machinery/light/floor{
brightness = 15;
bulb_colour = "#FFE4CE";
- bulb_emergency_brightness_mul = 0.25;
bulb_vacuum_brightness = 15;
nightshift_brightness = 10;
nightshift_light_color = "#E6EBFF"
@@ -75249,15 +74918,12 @@
/area/maintenance/port/aft)
"xwZ" = (
/obj/effect/turf_decal/tile/yellow/half/contrasted{
- alpha = 180;
- dir = 2
+ alpha = 180
},
/obj/structure/closet/secure_closet/engineering_electrical,
/obj/effect/turf_decal/bot,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
+/obj/machinery/power/apc/auto_name/east,
/obj/structure/cable/yellow,
/turf/open/floor/iron,
/area/engine/storage)
@@ -75412,9 +75078,7 @@
/obj/effect/turf_decal/stripes/line{
dir = 6
},
-/obj/machinery/light{
- dir = 2
- },
+/obj/machinery/light,
/obj/effect/decal/cleanable/shreds,
/obj/machinery/firealarm/directional/south,
/turf/open/floor/iron/dark,
@@ -76053,8 +75717,7 @@
/area/medical/chemistry)
"xII" = (
/obj/effect/turf_decal/tile/dark_blue/half/contrasted{
- alpha = 180;
- dir = 2
+ alpha = 180
},
/obj/structure/disposalpipe/segment{
dir = 2
@@ -76783,9 +76446,7 @@
/turf/open/floor/iron,
/area/science/lobby)
"xXE" = (
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
+/obj/machinery/power/apc/auto_name/east,
/obj/machinery/camera/autoname{
dir = 1
},
@@ -77586,7 +77247,6 @@
},
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/guideline/guideline_in/green{
- alpha = 180;
color = "#439C1E";
dir = 1
},
@@ -108641,7 +108301,7 @@ seT
seT
hdp
hdp
-rCc
+xgv
fWh
vAx
hVF
@@ -109237,7 +108897,7 @@ oOn
lbK
poW
mKJ
-mSi
+lnr
rVX
hvL
pBG
diff --git a/beestation.dme b/beestation.dme
index b86c3efe5a82b..af63ade8de2d1 100644
--- a/beestation.dme
+++ b/beestation.dme
@@ -634,6 +634,7 @@
#include "code\datums\components\force_move.dm"
#include "code\datums\components\forensics.dm"
#include "code\datums\components\gps.dm"
+#include "code\datums\components\grillable.dm"
#include "code\datums\components\gravity_aura.dm"
#include "code\datums\components\haircolor_clothes.dm"
#include "code\datums\components\heirloom.dm"
@@ -2618,6 +2619,7 @@
#include "code\modules\food_and_drinks\kitchen_machinery\deep_fryer.dm"
#include "code\modules\food_and_drinks\kitchen_machinery\food_cart.dm"
#include "code\modules\food_and_drinks\kitchen_machinery\gibber.dm"
+#include "code\modules\food_and_drinks\kitchen_machinery\griddle.dm"
#include "code\modules\food_and_drinks\kitchen_machinery\grill.dm"
#include "code\modules\food_and_drinks\kitchen_machinery\icecream_vat.dm"
#include "code\modules\food_and_drinks\kitchen_machinery\microwave.dm"
diff --git a/code/__DEFINES/dcs/signals/signals_obj/signals_item/signals_food.dm b/code/__DEFINES/dcs/signals/signals_obj/signals_item/signals_food.dm
index 534f5a6629662..8e134d4828e8f 100644
--- a/code/__DEFINES/dcs/signals/signals_obj/signals_item/signals_food.dm
+++ b/code/__DEFINES/dcs/signals/signals_obj/signals_item/signals_food.dm
@@ -27,6 +27,20 @@
///called on item when created through microwaving (): (obj/machinery/microwave/M, cooking_efficiency)
#define COMSIG_ITEM_MICROWAVE_COOKED "microwave_cooked"
+// Grilling foods (griddle, grill, and bonfire)
+///Called when an object is placed onto a griddle
+#define COMSIG_ITEM_GRILL_PLACED "item_placed_on_griddle"
+///Called when an object is grilled ontop of a griddle
+#define COMSIG_ITEM_GRILL_PROCESS "item_griddled"
+ /// Return to not burn the item
+ #define COMPONENT_HANDLED_GRILLING (1<<0)
+///Called when an object is turned into another item through grilling ontop of a griddle
+#define COMSIG_ITEM_GRILLED "item_grill_completed"
+
+#define COMSIG_GRILL_COMPLETED "grill_completed"
+///Called when an object is meant to be grilled through a grill: (atom/fry_object, grill_time)
+#define COMSIG_GRILL_FOOD "item_grill_food"
+
///From /datum/component/edible/on_compost(source, /mob/living/user)
#define COMSIG_EDIBLE_ON_COMPOST "on_compost"
// Used to stop food from being composted.
diff --git a/code/__DEFINES/flags.dm b/code/__DEFINES/flags.dm
index 11b5ae5dc21f4..16c3f336cb821 100644
--- a/code/__DEFINES/flags.dm
+++ b/code/__DEFINES/flags.dm
@@ -26,19 +26,34 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204
#define DF_VAR_EDITED (1<<1)
#define DF_ISPROCESSING (1<<2)
-//! ## FLAGS BITMASK
-#define CONDUCT_1 (1<<5) //! conducts electricity (iron etc.)
-#define NODECONSTRUCT_1 (1<<7) //! For machines and structures that should not break into parts, eg, holodeck stuff
-#define OVERLAY_QUEUED_1 (1<<8) //! atom queued to SSoverlay
-#define ON_BORDER_1 (1<<9) //! item has priority to check when entering or leaving
-#define PREVENT_CLICK_UNDER_1 (1<<11) //! Prevent clicking things below it on the same turf eg. doors/ fulltile windows
-#define HOLOGRAM_1 (1<<12)
-#define TESLA_IGNORE_1 (1<<13) //! TESLA_IGNORE grants immunity from being targeted by tesla-style electricity
-#define INITIALIZED_1 (1<<14) //! Whether /atom/Initialize(mapload) has already run for the object
-#define ADMIN_SPAWNED_1 (1<<15) //! was this spawned by an admin? used for stat tracking stuff.
-#define PREVENT_CONTENTS_EXPLOSION_1 (1<<16)
-#define UNPAINTABLE_1 (1<<17)
-#define HTML_USE_INITAL_ICON_1 (1<<18) //! Should we use the initial icon for display? Mostly used by overlay only objects
+//FLAGS BITMASK
+
+/// conducts electricity (iron etc.)
+#define CONDUCT_1 (1<<1)
+/// For machines and structures that should not break into parts, eg, holodeck stuff
+#define NODECONSTRUCT_1 (1<<2)
+/// atom queued to SSoverlay
+#define OVERLAY_QUEUED_1 (1<<3)
+/// item has priority to check when entering or leaving
+#define ON_BORDER_1 (1<<4)
+/// Prevent clicking things below it on the same turf eg. doors/ fulltile windows
+#define PREVENT_CLICK_UNDER_1 (1<<5)
+///specifies that this atom is a hologram that isnt real
+#define HOLOGRAM_1 (1<<6)
+/// grants immunity from being targeted by tesla-style electricity
+#define TESLA_IGNORE_1 (1<<7)
+///Whether /atom/Initialize() has already run for the object
+#define INITIALIZED_1 (1<<8)
+/// was this spawned by an admin? used for stat tracking stuff.
+#define ADMIN_SPAWNED_1 (1<<9)
+/// should not get harmed if this gets caught by an explosion?
+#define PREVENT_CONTENTS_EXPLOSION_1 (1<<10)
+/// Should this object be unpaintable?
+#define UNPAINTABLE_1 (1<<11)
+/// Is this atom on top of another atom, and as such has click priority?
+#define IS_ONTOP_1 (1<<12)
+/// Should we use the initial icon for display? Mostly used by overlay only objects
+#define HTML_USE_INITAL_ICON_1 (1<<13)
// Update flags for [/atom/proc/update_appearance]
/// Update the atom's name
diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm
index 9c1d53535056c..f25247793a6cf 100644
--- a/code/_onclick/click.dm
+++ b/code/_onclick/click.dm
@@ -192,7 +192,7 @@
for(var/atom/target in checking) // will filter out nulls
if(closed[target] || isarea(target)) // avoid infinity situations
continue
- if(isturf(target) || isturf(target.loc) || (target in direct_access)) //Directly accessible atoms
+ if(isturf(target) || isturf(target.loc) || (target in direct_access) || (isobj(target) && target.flags_1 & IS_ONTOP_1)) //Directly accessible atoms
if(Adjacent(target) || (tool && CheckToolReach(src, target, tool.reach))) //Adjacent or reaching attacks
return TRUE
diff --git a/code/datums/components/food/edible.dm b/code/datums/components/food/edible.dm
index 32f03b53d12b7..40f394ba83afc 100644
--- a/code/datums/components/food/edible.dm
+++ b/code/datums/components/food/edible.dm
@@ -82,6 +82,7 @@ Behavior that's still missing from this component that original food items had t
if(isitem(parent))
RegisterSignal(parent, COMSIG_ITEM_ATTACK, PROC_REF(use_from_hand))
+ RegisterSignal(parent, COMSIG_GRILL_FOOD, PROC_REF(GrillFood))
RegisterSignal(parent, COMSIG_ITEM_MICROWAVE_ACT, PROC_REF(on_microwaved))
RegisterSignal(parent, COMSIG_ITEM_USED_AS_INGREDIENT, PROC_REF(used_to_customize))
@@ -173,6 +174,28 @@ Behavior that's still missing from this component that original food items had t
return TryToEat(M, user)
+/datum/component/edible/proc/GrillFood(datum/source, atom/fry_object, grill_time)
+ SIGNAL_HANDLER
+
+ var/atom/this_food = parent
+
+ switch(grill_time) //no 0-20 to prevent spam
+ if(20 to 30)
+ this_food.name = "lightly-grilled [this_food.name]"
+ this_food.desc = "[this_food.desc] It's been lightly grilled."
+ if(30 to 80)
+ this_food.name = "grilled [this_food.name]"
+ this_food.desc = "[this_food.desc] It's been grilled."
+ foodtypes |= FRIED
+ if(80 to 100)
+ this_food.name = "heavily grilled [this_food.name]"
+ this_food.desc = "[this_food.desc] It's been heavily grilled."
+ foodtypes |= FRIED
+ if(100 to INFINITY) //grill marks reach max alpha
+ this_food.name = "Powerfully Grilled [this_food.name]"
+ this_food.desc = "A [this_food.name]. Reminds you of your wife, wait, no, it's prettier!"
+ foodtypes |= FRIED
+
///Called when food is created through processing (Usually this means it was sliced). We use this to pass the OG items reagents.
/datum/component/edible/proc/on_processed(datum/source, atom/original_atom, list/chosen_processing_option)
SIGNAL_HANDLER
diff --git a/code/datums/components/grillable.dm b/code/datums/components/grillable.dm
new file mode 100644
index 0000000000000..cb1f25e30c3d1
--- /dev/null
+++ b/code/datums/components/grillable.dm
@@ -0,0 +1,91 @@
+/datum/component/grillable
+ ///Result atom type of grilling this object
+ var/atom/cook_result
+ ///Amount of time required to cook the food
+ var/required_cook_time = 2 MINUTES
+ ///Is this a positive grill result?
+ var/positive_result = TRUE
+
+ ///Time spent cooking so far
+ var/current_cook_time = 0
+
+ ///Are we currently grilling?
+ var/currently_grilling = FALSE
+
+ ///Do we use the large steam sprite?
+ var/use_large_steam_sprite = FALSE
+
+/datum/component/grillable/Initialize(cook_result, required_cook_time, positive_result, use_large_steam_sprite)
+ . = ..()
+ if(!isitem(parent)) //Only items support grilling at the moment
+ return COMPONENT_INCOMPATIBLE
+
+ src.cook_result = cook_result
+ src.required_cook_time = required_cook_time
+ src.positive_result = positive_result
+ src.use_large_steam_sprite = use_large_steam_sprite
+
+ RegisterSignal(parent, COMSIG_ITEM_GRILLED, PROC_REF(OnGrill))
+ RegisterSignal(parent, COMSIG_PARENT_EXAMINE, PROC_REF(OnExamine))
+
+///Ran every time an item is grilled by something
+/datum/component/grillable/proc/OnGrill(datum/source, atom/used_grill, delta_time = 1)
+ SIGNAL_HANDLER
+
+ . = COMPONENT_HANDLED_GRILLING
+
+ current_cook_time += delta_time * 10 //turn it into ds
+ if(current_cook_time >= required_cook_time)
+ FinishGrilling(used_grill)
+ else if(!currently_grilling) //We havn't started grilling yet
+ StartGrilling(used_grill)
+
+
+///Ran when an object starts grilling on something
+/datum/component/grillable/proc/StartGrilling(atom/grill_source)
+ currently_grilling = TRUE
+ RegisterSignal(parent, COMSIG_MOVABLE_MOVED, PROC_REF(OnMoved))
+ RegisterSignal(parent, COMSIG_ATOM_UPDATE_OVERLAYS, PROC_REF(AddGrilledItemOverlay))
+
+ var/atom/A = parent
+ A.update_appearance()
+
+///Ran when an object finished grilling
+/datum/component/grillable/proc/FinishGrilling(atom/grill_source)
+ var/atom/original_object = parent
+ var/atom/grilled_result = new cook_result(original_object.loc)
+
+ grilled_result.pixel_x = original_object.pixel_x
+ grilled_result.pixel_y = original_object.pixel_y
+
+ grill_source.visible_message("[parent] turns into \a [grilled_result]!")
+ SEND_SIGNAL(parent, COMSIG_GRILL_COMPLETED, grilled_result)
+ currently_grilling = FALSE
+ qdel(parent)
+
+///Ran when an object almost finishes grilling
+/datum/component/grillable/proc/OnExamine(atom/A, mob/user, list/examine_list)
+ SIGNAL_HANDLER
+ if(!current_cook_time) //Not grilled yet
+ return
+
+ if(positive_result)
+ if(current_cook_time <= required_cook_time * 0.75)
+ examine_list += "[parent] probably needs to be cooked a bit longer!"
+ else if(current_cook_time <= required_cook_time)
+ examine_list += "[parent] seems to be almost finished cooking!"
+ else
+ examine_list += "[parent] should probably not be put on the grill"
+
+///Ran when an object moves from the grill
+/datum/component/grillable/proc/OnMoved(atom/A, atom/OldLoc, Dir, Forced)
+ SIGNAL_HANDLER
+ currently_grilling = FALSE
+ UnregisterSignal(parent, COMSIG_ATOM_UPDATE_OVERLAYS)
+ UnregisterSignal(parent, COMSIG_MOVABLE_MOVED)
+ A.update_appearance()
+
+/datum/component/grillable/proc/AddGrilledItemOverlay(datum/source, list/overlays)
+ SIGNAL_HANDLER
+
+ overlays += mutable_appearance('icons/effects/steam.dmi', "[use_large_steam_sprite ? "steam_triple" : "steam_single"]", ABOVE_OBJ_LAYER)
diff --git a/code/datums/looping_sounds/machinery_sounds.dm b/code/datums/looping_sounds/machinery_sounds.dm
index be22022823965..24224a15f0ba1 100644
--- a/code/datums/looping_sounds/machinery_sounds.dm
+++ b/code/datums/looping_sounds/machinery_sounds.dm
@@ -41,6 +41,13 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/datum/looping_sound/grill
+ mid_sounds = list('sound/machines/grill/grillsizzle.ogg' = 1)
+ mid_length = 18
+ volume = 50
+
+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+/datum/looping_sound/deep_fryer
mid_length = 2
mid_sounds = list('sound/machines/fryer/deep_fryer_1.ogg' = 1, 'sound/machines/fryer/deep_fryer_2.ogg' = 1)
volume = 30
diff --git a/code/game/objects/items/circuitboards/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machine_circuitboards.dm
index c976427405fe9..c3e84332b5b42 100644
--- a/code/game/objects/items/circuitboards/machine_circuitboards.dm
+++ b/code/game/objects/items/circuitboards/machine_circuitboards.dm
@@ -1057,6 +1057,13 @@
req_components = list(/obj/item/stock_parts/micro_laser = 1)
needs_anchored = FALSE
+/obj/item/circuitboard/machine/griddle
+ name = "circuit board (Griddle)"
+ icon_state = "service"
+ build_path = /obj/machinery/griddle
+ req_components = list(/obj/item/stock_parts/micro_laser = 1)
+ needs_anchored = FALSE
+
/obj/item/circuitboard/machine/dish_drive
name = "dish drive (Machine Board)"
icon_state = "service"
diff --git a/code/game/objects/items/food/_food.dm b/code/game/objects/items/food/_food.dm
index 35f6278449f9c..7e12b97e6cb38 100644
--- a/code/game/objects/items/food/_food.dm
+++ b/code/game/objects/items/food/_food.dm
@@ -48,6 +48,7 @@
make_edible()
make_processable()
make_leave_trash()
+ make_grillable()
///This proc adds the edible component, overwrite this if you for some reason want to change some specific args like callbacks.
/obj/item/food/proc/make_edible()
@@ -68,6 +69,11 @@
/obj/item/food/proc/make_processable()
return
+///This proc handles grillable components, overwrite if you want different grill results etc.
+/obj/item/food/proc/make_grillable()
+ AddComponent(/datum/component/grillable, /obj/item/food/badrecipe, rand(20 SECONDS, 30 SECONDS), FALSE)
+ return
+
///This proc handles trash components, overwrite this if you want the object to spawn trash
/obj/item/food/proc/make_leave_trash()
if(trash_type)
diff --git a/code/game/objects/items/food/meatdish.dm b/code/game/objects/items/food/meatdish.dm
index 069b37e1c2f2b..88ed34df18b6b 100644
--- a/code/game/objects/items/food/meatdish.dm
+++ b/code/game/objects/items/food/meatdish.dm
@@ -130,6 +130,9 @@
foodtypes = MEAT | TOXIC
w_class = WEIGHT_CLASS_SMALL
+/obj/item/food/spiderleg/make_grillable()
+ AddComponent(/datum/component/grillable, /obj/item/food/boiledspiderleg, rand(50 SECONDS, 60 SECONDS), TRUE, TRUE)
+
/obj/item/food/cornedbeef
name = "corned beef and cabbage"
desc = "Now you can feel like a real tourist vacationing in Ireland."
@@ -158,20 +161,168 @@
foodtypes = MEAT | ALCOHOL
w_class = WEIGHT_CLASS_SMALL
+//Raw
+
+/obj/item/food/raw_meatball
+ name = "raw meatball"
+ desc = "A great meal all round. Not a cord of wood. Kinda raw"
+ icon = 'icons/obj/food/meat.dmi'
+ icon_state = "raw_meatball"
+ food_reagents = list(/datum/reagent/consumable/nutriment/protein = 2)
+ tastes = list("meat" = 1)
+ foodtypes = MEAT | RAW
+ w_class = WEIGHT_CLASS_SMALL
+ var/meatball_type = /obj/item/food/meatball
+ var/patty_type = /obj/item/food/raw_patty
+
+/obj/item/food/raw_meatball/make_grillable()
+ AddComponent(/datum/component/grillable, meatball_type, rand(30 SECONDS, 40 SECONDS), TRUE)
+
+/obj/item/food/raw_meatball/make_processable()
+ AddElement(/datum/element/processable, TOOL_ROLLINGPIN, patty_type, 1, 20)
+
+/obj/item/food/raw_meatball/human
+ name = "strange raw meatball"
+ meatball_type = /obj/item/food/meatball/human
+ patty_type = /obj/item/food/raw_patty/human
+
+/obj/item/food/raw_meatball/corgi
+ name = "raw corgi meatball"
+ meatball_type = /obj/item/food/meatball/corgi
+ patty_type = /obj/item/food/raw_patty/corgi
+
+/obj/item/food/raw_meatball/xeno
+ name = "raw xeno meatball"
+ meatball_type = /obj/item/food/meatball/xeno
+ patty_type = /obj/item/food/raw_patty/xeno
+
+/obj/item/food/raw_meatball/bear
+ name = "raw bear meatball"
+ meatball_type = /obj/item/food/meatball/bear
+ patty_type = /obj/item/food/raw_patty/bear
+
+/obj/item/food/raw_meatball/chicken
+ name = "raw chicken meatball"
+ meatball_type = /obj/item/food/meatball/chicken
+ patty_type = /obj/item/food/raw_patty/chicken
+
+//Cooked
+
/obj/item/food/meatball
name = "meatball"
desc = "A great meal all round. Not a cord of wood."
icon = 'icons/obj/food/meat.dmi'
icon_state = "meatball"
food_reagents = list(
- /datum/reagent/consumable/nutriment/protein = 2,
- /datum/reagent/consumable/nutriment = 3,
+ /datum/reagent/consumable/nutriment/protein = 2
)
tastes = list("meat" = 1)
foodtypes = MEAT
food_flags = FOOD_FINGER_FOOD
w_class = WEIGHT_CLASS_SMALL
+/obj/item/food/meatball/human
+ name = "strange meatball"
+
+/obj/item/food/meatball/corgi
+ name = "corgi meatball"
+
+/obj/item/food/meatball/bear
+ name = "bear meatball"
+ tastes = list("meat" = 1, "salmon" = 1)
+
+/obj/item/food/meatball/xeno
+ name = "xenomorph meatball"
+ tastes = list("meat" = 1, "acid" = 1)
+
+/obj/item/food/meatball/chicken
+ name = "chicken meatball"
+ tastes = list("chicken" = 1)
+ icon_state = "chicken_meatball"
+
+/obj/item/food/raw_patty
+ name = "raw patty"
+ desc = "I'm.....NOT REAAADDYY."
+ icon = 'icons/obj/food/meat.dmi'
+ icon_state = "raw_patty"
+ food_reagents = list(/datum/reagent/consumable/nutriment/protein = 2)
+ tastes = list("meat" = 1)
+ foodtypes = MEAT | RAW
+ w_class = WEIGHT_CLASS_SMALL
+ var/patty_type = /obj/item/food/patty/plain
+
+/obj/item/food/raw_patty/make_grillable()
+ AddComponent(/datum/component/grillable, patty_type, rand(30 SECONDS, 40 SECONDS), TRUE)
+
+/obj/item/food/raw_patty/human
+ name = "strange raw patty"
+ patty_type = /obj/item/food/patty/human
+
+/obj/item/food/raw_patty/corgi
+ name = "raw corgi patty"
+ patty_type = /obj/item/food/patty/corgi
+
+/obj/item/food/raw_patty/bear
+ name = "raw bear patty"
+ tastes = list("meat" = 1, "salmon" = 1)
+ patty_type = /obj/item/food/patty/bear
+
+/obj/item/food/raw_patty/xeno
+ name = "raw xenomorph patty"
+ tastes = list("meat" = 1, "acid" = 1)
+ patty_type = /obj/item/food/patty/xeno
+
+/obj/item/food/raw_patty/chicken
+ name = "raw chicken patty"
+ tastes = list("chicken" = 1)
+ patty_type = /obj/item/food/patty/chicken
+
+/obj/item/food/patty
+ name = "patty"
+ desc = "The nanotrasen patty is the patty for you and me!"
+ icon = 'icons/obj/food/meat.dmi'
+ icon_state = "patty"
+ food_reagents = list(/datum/reagent/consumable/nutriment/protein = 2)
+ tastes = list("meat" = 1)
+ foodtypes = MEAT
+ w_class = WEIGHT_CLASS_SMALL
+
+///Exists purely for the crafting recipe (because itll take subtypes)
+/obj/item/food/patty/plain
+
+/obj/item/food/patty/human
+ name = "strange patty"
+
+/obj/item/food/patty/corgi
+ name = "corgi patty"
+
+/obj/item/food/patty/bear
+ name = "bear patty"
+ tastes = list("meat" = 1, "salmon" = 1)
+
+/obj/item/food/patty/xeno
+ name = "xenomorph patty"
+ tastes = list("meat" = 1, "acid" = 1)
+
+/obj/item/food/patty/chicken
+ name = "chicken patty"
+ tastes = list("chicken" = 1)
+ icon_state = "chicken_patty"
+
+/obj/item/food/raw_sausage
+ name = "raw sausage"
+ desc = "A piece of mixed, long meat, but then raw"
+ icon = 'icons/obj/food/meat.dmi'
+ icon_state = "raw_sausage"
+ food_reagents = list(/datum/reagent/consumable/nutriment/protein = 5, /datum/reagent/consumable/nutriment/vitamin = 2)
+ tastes = list("meat" = 1)
+ foodtypes = MEAT | RAW
+ eatverbs = list("bite","chew","nibble","deep throat","gobble","chomp")
+ w_class = WEIGHT_CLASS_SMALL
+
+/obj/item/food/raw_sausage/make_grillable()
+ AddComponent(/datum/component/grillable, /obj/item/food/sausage, rand(60 SECONDS, 75 SECONDS), TRUE)
+
/obj/item/food/sausage
name = "sausage"
desc = "A piece of mixed, long meat."
@@ -190,6 +341,15 @@
/obj/item/food/sausage/make_processable()
AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/salami, 6, 3 SECONDS, table_required = TRUE,/* screentip_verb = "Slice"*/)
+ AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/sausage/american, 1, 3 SECONDS, table_required = TRUE)
+
+/obj/item/food/sausage/american
+ name = "american sausage"
+ desc = "Snip."
+ icon_state = "american_sausage"
+
+/obj/item/food/sausage/american/make_processable() //or else it would make itself? Lmao
+ return
/obj/item/food/salami
name = "salami"
@@ -218,7 +378,10 @@
tastes = list("meat" = 1, "onions" = 1, "garlic" = 1)
foodtypes = MEAT | RAW
w_class = WEIGHT_CLASS_SMALL
- microwaved_type = /obj/item/food/khinkali
+
+/obj/item/food/rawkhinkali/make_grillable()
+ AddComponent(/datum/component/grillable, /obj/item/food/khinkali, rand(50 SECONDS, 60 SECONDS), TRUE)
+
/obj/item/food/khinkali
name = "khinkali"
desc = "One hundred khinkalis? Do I look like a pig?"
diff --git a/code/game/objects/items/food/meatslab.dm b/code/game/objects/items/food/meatslab.dm
index 5c75dfc18830b..9ff87d628db00 100644
--- a/code/game/objects/items/food/meatslab.dm
+++ b/code/game/objects/items/food/meatslab.dm
@@ -10,7 +10,6 @@
desc = "A slab of meat."
icon_state = "meat"
//dried_type = /obj/item/food//sosjerky/healthy
- microwaved_type = /obj/item/food/meat/steak/plain
bite_consumption = 3
food_reagents = list(
/datum/reagent/consumable/nutriment/protein = 6,
@@ -21,10 +20,8 @@
///Legacy code, handles the coloring of the overlay of the cutlets made from this.
var/slab_color = "#FF0000"
-/*
-/obj/item/food/meat/slab/make_microwaveable()
- AddElement(/datum/element/microwavable, /obj/item/food/meat/steak/plain)
-*/
+/obj/item/food/meat/slab/make_grillable()
+ AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/plain, rand(30 SECONDS, 90 SECONDS), TRUE, TRUE) //Add medium rare later maybe?
/obj/item/food/meat/slab/make_processable()
AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/plain, 3, 30)
@@ -33,14 +30,11 @@
/obj/item/food/meat/slab/human
name = "meat"
- microwaved_type = /obj/item/food/meat/steak/plain/human
tastes = list("tender meat" = 1)
foodtypes = MEAT | RAW | GORE
-/*
-/obj/item/food/meat/slab/human/make_microwaveable()
- AddElement(/datum/element/microwavable, /obj/item/food/meat/steak/plain/human)
-*/
+/obj/item/food/meat/slab/human/make_grillable()
+ AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/plain/human, rand(30 SECONDS, 90 SECONDS), TRUE, TRUE) //Add medium rare later maybe?
/obj/item/food/meat/slab/human/make_processable()
AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/plain/human, 3, 30)
@@ -73,14 +67,11 @@
/obj/item/food/meat/slab/human/mutant/lizard
icon_state = "lizardmeat"
desc = "Delicious dino damage."
- microwaved_type = /obj/item/food/meat/steak/plain/human/lizard
tastes = list("meat" = 4, "scales" = 1)
foodtypes = MEAT | RAW | GORE
-/*
-/obj/item/food/meat/slab/human/mutant/lizard/make_microwaveable()
- AddElement(/datum/element/microwavable, /obj/item/food/meat/steak/plain/human/lizard)
-*/
+/obj/item/food/meat/slab/human/mutant/lizard/make_grillable()
+ AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/plain/human/lizard, rand(30 SECONDS, 90 SECONDS), TRUE, TRUE)
/obj/item/food/meat/slab/human/mutant/plant
icon_state = "plantmeat"
@@ -156,19 +147,16 @@
desc = "A synthetic slab of... ethical* meat?"
foodtypes = RAW | MEAT // If it looks like a duck, quacks like a duck, its probably...
+/obj/item/food/meat/slab/synthmeat/make_grillable()
+ AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/plain/synth, rand(30 SECONDS, 90 SECONDS), TRUE, TRUE)
+
/obj/item/food/meat/slab/meatproduct
name = "meat product"
//icon_state = "meatproduct"
- microwaved_type = /obj/item/food/meat/steak/meatproduct
desc = "A slab of station reclaimed and chemically processed meat product."
tastes = list("meat flavoring" = 2, "modified starches" = 2, "natural & artificial dyes" = 1, "butyric acid" = 1) // its supposed to be various processed chemicals seen in very processed food. Butyric acid is a reference to how a certain North American Candymaker puts a chemical commonly seen in vomit into chocolate
foodtypes = RAW | MEAT
-/*
-/obj/item/food/meat/slab/meatproduct/make_microwaveable()
- AddElement(/datum/element/microwavable, /obj/item/food/meat/steak/meatproduct)
-*/
-
/obj/item/food/meat/slab/monkey
name = "monkey meat"
foodtypes = RAW | MEAT
@@ -199,15 +187,12 @@
name = "killer tomato meat"
desc = "A slice from a huge tomato."
icon_state = "tomatomeat"
- microwaved_type = /obj/item/food/meat/steak/killertomato
food_reagents = list(/datum/reagent/consumable/nutriment = 2)
tastes = list("tomato" = 1)
foodtypes = FRUIT // Yeah, tomatoes are FRUIT. Bite me.
-/*
-/obj/item/food/meat/slab/killertomato/make_microwaveable()
- AddElement(/datum/element/microwavable, /obj/item/food/meat/steak/killertomato)
-*/
+/obj/item/food/meat/slab/killertomato/make_grillable()
+ AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/killertomato, rand(70 SECONDS, 85 SECONDS), TRUE, TRUE)
/obj/item/food/meat/slab/killertomato/make_processable()
AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/killertomato, 3, 30)
@@ -216,7 +201,6 @@
name = "bear meat"
desc = "A very manly slab of meat."
icon_state = "bearmeat"
- microwaved_type = /obj/item/food/meat/steak/bear
food_reagents = list(
/datum/reagent/consumable/nutriment/protein = 16,
/datum/reagent/medicine/morphine = 5,
@@ -226,10 +210,8 @@
tastes = list("meat" = 1, "salmon" = 1)
foodtypes = RAW | MEAT
-/*
-/obj/item/food/meat/slab/bear/make_microwaveable()
- AddElement(/datum/element/microwavable, /obj/item/food/meat/steak/bear)
-*/
+/obj/item/food/meat/slab/bear/make_grillable()
+ AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/bear, rand(40 SECONDS, 70 SECONDS), TRUE, TRUE)
/obj/item/food/meat/slab/bear/make_processable()
AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/bear, 3, 30)
@@ -238,7 +220,6 @@
name = "xeno meat"
desc = "A slab of meat."
icon_state = "xenomeat"
- microwaved_type = /obj/item/food/meat/steak/xeno
food_reagents = list(
/datum/reagent/consumable/nutriment/protein = 8,
/datum/reagent/consumable/nutriment/vitamin = 3
@@ -247,19 +228,16 @@
tastes = list("meat" = 1, "acid" = 1)
foodtypes = RAW | MEAT
-/*
-/obj/item/food/meat/slab/xeno/make_microwaveable()
- AddElement(/datum/element/microwavable, /obj/item/food/meat/steak/xeno)
-*/
-
/obj/item/food/meat/slab/xeno/make_processable()
AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/xeno, 3, 30)
+/obj/item/food/meat/slab/xeno/make_grillable()
+ AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/xeno, rand(40 SECONDS, 70 SECONDS), TRUE, TRUE)
+
/obj/item/food/meat/slab/spider
name = "spider meat"
desc = "A slab of spider meat. That is so Kafkaesque."
icon_state = "spidermeat"
- microwaved_type = /obj/item/food/meat/steak/spider
food_reagents = list(
/datum/reagent/consumable/nutriment/protein = 5,
/datum/reagent/toxin = 3,
@@ -268,14 +246,12 @@
tastes = list("cobwebs" = 1)
foodtypes = RAW | MEAT | TOXIC
-/*
-/obj/item/food/meat/slab/spider/make_microwaveable()
- AddElement(/datum/element/microwavable, /obj/item/food/meat/steak/spider)
-*/
-
/obj/item/food/meat/slab/spider/make_processable()
AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/spider, 3, 30)
+/obj/item/food/meat/slab/spider/make_grillable()
+ AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/spider, rand(40 SECONDS, 70 SECONDS), TRUE, TRUE)
+
/obj/item/food/meat/slab/goliath
name = "goliath meat"
desc = "A slab of goliath meat. It's not very edible now, but it cooks great in lava."
@@ -320,7 +296,6 @@
name = "raw piece of bacon"
desc = "A raw piece of bacon."
icon_state = "bacon"
- microwaved_type = /obj/item/food/meat/bacon
bite_consumption = 2
food_reagents = list(
/datum/reagent/consumable/nutriment/protein = 2,
@@ -329,10 +304,8 @@
tastes = list("bacon" = 1)
foodtypes = RAW | MEAT | BREAKFAST
-/*
-/obj/item/food/meat/rawbacon/make_microwaveable()
- AddElement(/datum/element/microwavable, /obj/item/food/meat/bacon)
-*/
+/obj/item/food/meat/rawbacon/make_grillable()
+ AddComponent(/datum/component/grillable, /obj/item/food/meat/bacon, rand(25 SECONDS, 45 SECONDS), TRUE, TRUE)
/obj/item/food/meat/bacon
name = "piece of bacon"
@@ -349,7 +322,6 @@
/obj/item/food/meat/slab/gondola
name = "gondola meat"
desc = "According to legends of old, consuming raw gondola flesh grants one inner peace."
- microwaved_type = /obj/item/food/meat/steak/gondola
food_reagents = list(
/datum/reagent/consumable/nutriment/protein = 4,
/datum/reagent/tranquility = 5,
@@ -358,10 +330,8 @@
tastes = list("meat" = 4, "tranquility" = 1)
foodtypes = RAW | MEAT
-/*
-/obj/item/food/meat/slab/gondola/make_microwaveable()
- AddElement(/datum/element/microwavable, /obj/item/food/meat/steak/gondola)
-*/
+/obj/item/food/meat/slab/gondola/make_grillable()
+ AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/gondola, rand(30 SECONDS, 90 SECONDS), TRUE, TRUE) //Add medium rare later maybe?
/obj/item/food/meat/slab/gondola/make_processable()
AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/gondola, 3, 30)
@@ -369,7 +339,6 @@
/obj/item/food/meat/slab/penguin
name = "penguin meat"
//icon_state = "birdmeat"
- microwaved_type = /obj/item/food/meat/steak/penguin
desc = "A slab of penguin meat."
food_reagents = list(
/datum/reagent/consumable/nutriment/protein = 4,
@@ -377,10 +346,8 @@
)
tastes = list("beef" = 1, "cod fish" = 1)
-/*
-/obj/item/food/meat/slab/penguin/make_microwaveable()
- AddElement(/datum/element/microwavable, /obj/item/food/meat/steak/penguin)
-*/
+/obj/item/food/meat/slab/penguin/make_grillable()
+ AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/penguin, rand(30 SECONDS, 90 SECONDS), TRUE, TRUE) //Add medium rare later maybe?
/obj/item/food/meat/slab/penguin/make_processable()
. = ..()
@@ -399,10 +366,8 @@
tastes = list("raw crab" = 1)
foodtypes = RAW | MEAT
-/*
-/obj/item/food/meat/rawcrab/make_microwaveable()
- AddElement(/datum/element/microwavable, /obj/item/food/meat/crab)
-*/
+/obj/item/food/meat/slab/rawcrab/make_grillable()
+ AddComponent(/datum/component/grillable, /obj/item/food/meat/crab, rand(30 SECONDS, 90 SECONDS), TRUE, TRUE) //Add medium rare later maybe?
/obj/item/food/meat/crab
name = "crab meat"
@@ -419,16 +384,14 @@
/obj/item/food/meat/slab/chicken
name = "chicken meat"
//icon_state = "birdmeat"
- microwaved_type = /obj/item/food/meat/steak/chicken
desc = "A slab of raw chicken. Remember to wash your hands!"
food_reagents = list(
/datum/reagent/consumable/nutriment/protein = 6
) //low fat
tastes = list("chicken" = 1)
-/*
-/obj/item/food/meat/slab/chicken/make_microwaveable()
- AddElement(/datum/element/microwavable, /obj/item/food/meat/steak/chicken)
-*/
+
+/obj/item/food/meat/slab/chicken/make_grillable()
+ AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/chicken, rand(30 SECONDS, 90 SECONDS), TRUE, TRUE) //Add medium rare later maybe? (no this is chicken)
/obj/item/food/meat/slab/chicken/make_processable()
. = ..()
@@ -554,7 +517,7 @@
//icon_state = "meatproductsteak"
tastes = list("enhanced char" = 2, "suspicious tenderness" = 2, "natural & artificial dyes" = 2, "emulsifying agents" = 1)
-/obj/item/food/meat/steak/synth
+/obj/item/food/meat/steak/plain/synth
name = "synthsteak"
desc = "A synthetic meat steak. It doesn't look quite right, now does it?"
icon_state = "meatsteak"
@@ -592,19 +555,16 @@
name = "raw cutlet"
desc = "A raw meat cutlet."
icon_state = "rawcutlet"
- microwaved_type = /obj/item/food/meat/cutlet/plain
bite_consumption = 2
food_reagents = list(
- /datum/reagent/consumable/nutriment/protein = 1
+ /datum/reagent/consumable/nutriment/protein = 2
)
tastes = list("meat" = 1)
foodtypes = MEAT | RAW
var/meat_type = "meat"
-/*
-/obj/item/food/meat/rawcutlet/make_microwaveable()
- AddElement(/datum/element/microwavable, /obj/item/food/meat/cutlet/plain)
-*/
+/obj/item/food/meat/rawcutlet/make_grillable()
+ AddComponent(/datum/component/grillable, /obj/item/food/meat/cutlet/plain, rand(35 SECONDS, 50 SECONDS), TRUE, TRUE)
/obj/item/food/meat/rawcutlet/OnCreatedFromProcessing(mob/living/user, obj/item/work_tool, list/chosen_option, atom/original_atom)
. = ..()
@@ -620,14 +580,11 @@
foodtypes = MEAT
/obj/item/food/meat/rawcutlet/plain/human
- microwaved_type = /obj/item/food/meat/cutlet/plain/human
tastes = list("tender meat" = 1)
foodtypes = MEAT | RAW | GORE
-/*
-/obj/item/food/meat/rawcutlet/plain/human/make_microwaveable()
- AddElement(/datum/element/microwavable, /obj/item/food/meat/cutlet/plain/human)
-*/
+/obj/item/food/meat/rawcutlet/plain/human/make_grillable()
+ AddComponent(/datum/component/grillable, /obj/item/food/meat/cutlet/plain/human, rand(35 SECONDS, 50 SECONDS), TRUE, TRUE)
/obj/item/food/meat/rawcutlet/plain/human/OnCreatedFromProcessing(mob/living/user, obj/item/I, list/chosen_option, atom/original_atom)
. = ..()
@@ -644,72 +601,51 @@
name = "raw killer tomato cutlet"
tastes = list("tomato" = 1)
foodtypes = FRUIT
- microwaved_type = /obj/item/food/meat/cutlet/killertomato
-/*
-/obj/item/food/meat/rawcutlet/killertomato/make_microwaveable()
- AddElement(/datum/element/microwavable, /obj/item/food/meat/cutlet/killertomato)
-*/
+/obj/item/food/meat/rawcutlet/killertomato/make_grillable()
+ AddComponent(/datum/component/grillable, /obj/item/food/meat/cutlet/killertomato, rand(35 SECONDS, 50 SECONDS), TRUE, TRUE)
/obj/item/food/meat/rawcutlet/bear
name = "raw bear cutlet"
tastes = list("meat" = 1, "salmon" = 1)
- microwaved_type = /obj/item/food/meat/cutlet/bear
-/*
-/obj/item/food/meat/rawcutlet/bear/make_microwaveable()
- AddElement(/datum/element/microwavable, /obj/item/food/meat/cutlet/bear)
-*/
+/obj/item/food/meat/rawcutlet/bear/make_grillable()
+ AddComponent(/datum/component/grillable, /obj/item/food/meat/cutlet/bear, rand(35 SECONDS, 50 SECONDS), TRUE, TRUE)
/obj/item/food/meat/rawcutlet/xeno
name = "raw xeno cutlet"
tastes = list("meat" = 1, "acid" = 1)
- microwaved_type = /obj/item/food/meat/cutlet/xeno
-/*
-/obj/item/food/meat/rawcutlet/xeno/make_microwaveable()
- AddElement(/datum/element/microwavable, /obj/item/food/meat/cutlet/xeno)
-*/
+/obj/item/food/meat/rawcutlet/xeno/make_grillable()
+ AddComponent(/datum/component/grillable, /obj/item/food/meat/cutlet/xeno, rand(35 SECONDS, 50 SECONDS), TRUE, TRUE)
/obj/item/food/meat/rawcutlet/spider
name = "raw spider cutlet"
tastes = list("cobwebs" = 1)
- microwaved_type = /obj/item/food/meat/cutlet/spider
-/*
-/obj/item/food/meat/rawcutlet/spider/make_microwaveable()
- AddElement(/datum/element/microwavable, /obj/item/food/meat/cutlet/spider)
-*/
+/obj/item/food/meat/rawcutlet/spider/make_grillable()
+ AddComponent(/datum/component/grillable, /obj/item/food/meat/cutlet/spider, rand(35 SECONDS, 50 SECONDS), TRUE, TRUE)
/obj/item/food/meat/rawcutlet/gondola
name = "raw gondola cutlet"
tastes = list("meat" = 1, "tranquility" = 1)
- microwaved_type = /obj/item/food/meat/cutlet/gondola
-/*
-/obj/item/food/meat/rawcutlet/gondola/make_microwaveable()
- AddElement(/datum/element/microwavable, /obj/item/food/meat/cutlet/gondola)
-*/
+/obj/item/food/meat/rawcutlet/gondola/make_grillable()
+ AddComponent(/datum/component/grillable, /obj/item/food/meat/cutlet/gondola, rand(35 SECONDS, 50 SECONDS), TRUE, TRUE)
/obj/item/food/meat/rawcutlet/penguin
name = "raw penguin cutlet"
tastes = list("beef" = 1, "cod fish" = 1)
- microwaved_type = /obj/item/food/meat/cutlet/penguin
-/*
-/obj/item/food/meat/rawcutlet/penguin/make_microwaveable()
- AddElement(/datum/element/microwavable, /obj/item/food/meat/cutlet/penguin)
-*/
+/obj/item/food/meat/rawcutlet/penguin/make_grillable()
+ AddComponent(/datum/component/grillable, /obj/item/food/meat/cutlet/penguin, rand(35 SECONDS, 50 SECONDS), TRUE, TRUE)
/obj/item/food/meat/rawcutlet/chicken
name = "raw chicken cutlet"
tastes = list("chicken" = 1)
- microwaved_type = /obj/item/food/meat/cutlet/chicken
-/*
-/obj/item/food/meat/rawcutlet/chicken/make_microwaveable()
- AddElement(/datum/element/microwavable, /obj/item/food/meat/cutlet/chicken)
-*/
+/obj/item/food/meat/rawcutlet/chicken/make_grillable()
+ AddComponent(/datum/component/grillable, /obj/item/food/meat/cutlet/chicken, rand(35 SECONDS, 50 SECONDS), TRUE, TRUE)
/obj/item/food/meat/rawcutlet/grub //grub meat is small, so its in cutlets
name = "redgrub cutlet"
@@ -725,10 +661,8 @@
foodtypes = RAW | MEAT | TOXIC
microwaved_type = /obj/item/food/meat/cutlet/grub
-/*
-/obj/item/food/meat/rawcutlet/grub/make_microwaveable()
- AddElement(/datum/element/microwavable, /obj/item/food/meat/cutlet/grub)
-*/
+/obj/item/food/meat/rawcutlet/grub/make_grillable()
+ AddComponent(/datum/component/grillable, /obj/item/food/meat/cutlet/grub, rand(35 SECONDS, 50 SECONDS), TRUE, TRUE)
//Cooked cutlets
diff --git a/code/game/objects/items/food/misc.dm b/code/game/objects/items/food/misc.dm
index 57300f36796e4..b6b5df75ec0c1 100644
--- a/code/game/objects/items/food/misc.dm
+++ b/code/game/objects/items/food/misc.dm
@@ -59,6 +59,14 @@
foodtypes = GROSS
w_class = WEIGHT_CLASS_SMALL
+/obj/item/food/badrecipe/Initialize()
+ . = ..()
+ RegisterSignal(src, COMSIG_ITEM_GRILLED, PROC_REF(OnGrill))
+
+///Prevents grilling burnt shit from well, burning.
+/obj/item/food/badrecipe/proc/OnGrill()
+ return COMPONENT_HANDLED_GRILLING
+
/obj/item/food/badrecipe/burn()
if(QDELETED(src))
return
@@ -69,6 +77,9 @@
SSfire_burning.processing -= src
qdel(src)
+// We override the parent procs here to prevent burned messes from cooking into burned messes.
+/obj/item/food/badrecipe/make_grillable()
+ return
/obj/item/food/spidereggs
name = "spider eggs"
diff --git a/code/game/objects/items/food/sandwichtoast.dm b/code/game/objects/items/food/sandwichtoast.dm
index 8b5fc86d82cb6..9f977a7702882 100644
--- a/code/game/objects/items/food/sandwichtoast.dm
+++ b/code/game/objects/items/food/sandwichtoast.dm
@@ -9,24 +9,10 @@
/datum/reagent/consumable/nutriment/vitamin = 1
)
tastes = list("meat" = 2, "cheese" = 1, "bread" = 2, "lettuce" = 1)
- microwaved_type = /obj/item/food/toastedsandwich
foodtypes = GRAIN | VEGETABLES
food_flags = FOOD_FINGER_FOOD
w_class = WEIGHT_CLASS_SMALL
-/obj/item/food/toastedsandwich
- name = "toasted sandwich"
- desc = "Now if you only had a pepper bar."
- icon = 'icons/obj/food/burgerbread.dmi'
- icon_state = "toastedsandwich"
- trash_type = /obj/item/trash/plate
- food_reagents = list(
- /datum/reagent/consumable/nutriment = 6,
- /datum/reagent/carbon = 2
- )
- tastes = list("toast" = 1)
- foodtypes = GRAIN
-
/obj/item/food/grilled_cheese_sandwich
name = "grilled cheese sandwich"
desc = "A warm, melty sandwich that goes perfectly with tomato soup."
@@ -43,6 +29,20 @@
food_flags = FOOD_FINGER_FOOD
w_class = WEIGHT_CLASS_SMALL
+/obj/item/food/cheese_sandwich
+ name = "cheese sandwich"
+ desc = "A light snack for a warm day. ...but what if you grilled it?"
+ icon = 'icons/obj/food/burgerbread.dmi'
+ icon_state = "sandwich"
+ trash_type = /obj/item/trash/plate
+ food_reagents = list(/datum/reagent/consumable/nutriment = 7, /datum/reagent/consumable/nutriment/protein = 3, /datum/reagent/consumable/nutriment/vitamin = 1)
+ tastes = list("bread" = 1, "cheese" = 1)
+ foodtypes = GRAIN | DAIRY
+ w_class = WEIGHT_CLASS_SMALL
+
+/obj/item/food/cheese_sandwich/make_grillable()
+ AddComponent(/datum/component/grillable, /obj/item/food/grilled_cheese_sandwich, rand(30 SECONDS, 60 SECONDS), TRUE)
+
/obj/item/food/jellysandwich
name = "jelly sandwich"
desc = "You wish you had some peanut butter to go with this..."
diff --git a/code/game/objects/obj_defense.dm b/code/game/objects/obj_defense.dm
index 64b66506c069b..b3ba40a6ef6b4 100644
--- a/code/game/objects/obj_defense.dm
+++ b/code/game/objects/obj_defense.dm
@@ -4,9 +4,12 @@
if(QDELETED(src))
stack_trace("[src] taking damage after deletion")
return
+ if(obj_integrity <= 0)
+ stack_trace("[src] taking damage while having <= 0 integrity")
+ return
if(sound_effect)
play_attack_sound(damage_amount, damage_type, damage_flag)
- if((resistance_flags & INDESTRUCTIBLE) || obj_integrity <= 0)
+ if(resistance_flags & INDESTRUCTIBLE)
return
damage_amount = run_obj_armor(damage_amount, damage_type, damage_flag, attack_dir, armour_penetration)
if(damage_amount < DAMAGE_PRECISION)
diff --git a/code/modules/admin/verbs/cluwneplayer.dm b/code/modules/admin/verbs/cluwneplayer.dm
index e19f75f7bacaf..42df6bd2a4c25 100644
--- a/code/modules/admin/verbs/cluwneplayer.dm
+++ b/code/modules/admin/verbs/cluwneplayer.dm
@@ -8,10 +8,12 @@
var/mob/living/simple_animal/cluwne/newmob = new(get_turf(src))
- if (client)
+ if(client)
client.give_award(/datum/award/achievement/misc/cluwne, client.mob)
- M.transfer_to(newmob)
+ if(mind) // If the mob has a mind, we transfer
+ M.transfer_to(newmob)
+
if(key) // afk (no mind)
newmob.key = key
diff --git a/code/modules/food_and_drinks/kitchen_machinery/griddle.dm b/code/modules/food_and_drinks/kitchen_machinery/griddle.dm
new file mode 100644
index 0000000000000..2d47a4e325322
--- /dev/null
+++ b/code/modules/food_and_drinks/kitchen_machinery/griddle.dm
@@ -0,0 +1,149 @@
+/obj/machinery/griddle
+ name = "griddle"
+ desc = "Because using pans is for pansies."
+ icon = 'icons/obj/machines/kitchenmachines.dmi'
+ icon_state = "griddle1_off"
+ density = TRUE
+ pass_flags_self = PASSMACHINE | PASSTABLE| LETPASSTHROW
+ use_power = IDLE_POWER_USE
+ idle_power_usage = 5
+ layer = BELOW_OBJ_LAYER
+ circuit = /obj/item/circuitboard/machine/griddle
+ processing_flags = START_PROCESSING_MANUALLY
+ resistance_flags = FIRE_PROOF
+
+ ///Things that are being griddled right now
+ var/list/griddled_objects = list()
+ ///Looping sound for the grill
+ var/datum/looping_sound/grill/grill_loop
+ ///Whether or not the machine is turned on right now
+ var/on = FALSE
+ ///What variant of griddle is this?
+ var/variant = 1
+ ///How many shit fits on the griddle?
+ var/max_items = 8
+
+/obj/machinery/griddle/Initialize()
+ . = ..()
+ grill_loop = new(src, FALSE)
+ if(isnum(variant))
+ variant = rand(1,3)
+ // Add expose_reagent to add pancakes. I tried already. https://github.com/BeeStation/BeeStation-Hornet/pull/8479
+ //RegisterSignal(src, COMSIG_ATOM_EXPOSE_REAGENT, PROC_REF(on_expose_reagent))
+
+/obj/machinery/griddle/Destroy()
+ QDEL_NULL(grill_loop)
+ return ..()
+
+/obj/machinery/griddle/crowbar_act(mob/living/user, obj/item/I)
+ . = ..()
+ if(flags_1 & NODECONSTRUCT_1)
+ return
+ if(default_deconstruction_crowbar(I, ignore_panel = TRUE))
+ return
+ variant = rand(1,3)
+
+/* See https://github.com/BeeStation/BeeStation-Hornet/pull/8479
+/obj/machinery/griddle/proc/on_expose_reagent(atom/parent_atom, datum/reagent/exposing_reagent, reac_volume)
+ SIGNAL_HANDLER
+
+ if(griddled_objects.len >= max_items || !istype(exposing_reagent, /datum/reagent/consumable/pancakebatter) || reac_volume < 5)
+ return NONE //make sure you have space... it's actually batter... and a proper amount of it.
+
+ for(var/pancakes in 1 to FLOOR(reac_volume, 5) step 5) //this adds as many pancakes as you possibly could make, with 5u needed per pancake
+ var/obj/item/food/pancakes/raw/new_pancake = new(src)
+ new_pancake.pixel_x = rand(16,-16)
+ new_pancake.pixel_y = rand(16,-16)
+ AddToGrill(new_pancake)
+ if(griddled_objects.len >= max_items)
+ break
+ visible_message("[exposing_reagent] begins to cook on [src].")
+ return NONE
+*/
+
+/obj/machinery/griddle/crowbar_act(mob/living/user, obj/item/I)
+ . = ..()
+ return default_deconstruction_crowbar(I, ignore_panel = TRUE)
+
+/obj/machinery/griddle/attackby(obj/item/I, mob/user, params)
+ if(griddled_objects.len >= max_items)
+ to_chat(user, "[src] can't fit more items!")
+ return
+ var/list/modifiers = params2list(params)
+ //Center the icon where the user clicked.
+ if(!LAZYACCESS(modifiers, ICON_X) || !LAZYACCESS(modifiers, ICON_Y))
+ return
+ if(user.transferItemToLoc(I, src, silent = FALSE))
+ //Clamp it so that the icon never moves more than 16 pixels in either direction (thus leaving the table turf)
+ I.pixel_x = clamp(text2num(LAZYACCESS(modifiers, ICON_X)) - 16, -(world.icon_size/2), world.icon_size/2)
+ I.pixel_y = clamp(text2num(LAZYACCESS(modifiers, ICON_Y)) - 16, -(world.icon_size/2), world.icon_size/2)
+ to_chat(user, "You place [I] on [src].")
+ AddToGrill(I, user)
+ update_appearance()
+ else
+ return ..()
+
+/obj/machinery/griddle/attack_hand(mob/user)
+ . = ..()
+ on = !on
+ if(on)
+ begin_processing()
+ else
+ end_processing()
+ update_appearance()
+ update_grill_audio()
+
+
+/obj/machinery/griddle/proc/AddToGrill(obj/item/item_to_grill, mob/user)
+ vis_contents += item_to_grill
+ griddled_objects += item_to_grill
+ item_to_grill.flags_1 |= IS_ONTOP_1
+ RegisterSignal(item_to_grill, COMSIG_MOVABLE_MOVED, PROC_REF(ItemMoved))
+ RegisterSignal(item_to_grill, COMSIG_GRILL_COMPLETED, PROC_REF(GrillCompleted))
+ RegisterSignal(item_to_grill, COMSIG_PARENT_QDELETING, PROC_REF(ItemRemovedFromGrill))
+ update_grill_audio()
+
+/obj/machinery/griddle/proc/ItemRemovedFromGrill(obj/item/I)
+ SIGNAL_HANDLER
+ I.flags_1 &= ~IS_ONTOP_1
+ griddled_objects -= I
+ vis_contents -= I
+ UnregisterSignal(I, list(COMSIG_GRILL_COMPLETED, COMSIG_MOVABLE_MOVED, COMSIG_PARENT_QDELETING))
+ update_grill_audio()
+
+/obj/machinery/griddle/proc/ItemMoved(obj/item/I, atom/OldLoc, Dir, Forced)
+ SIGNAL_HANDLER
+ ItemRemovedFromGrill(I)
+
+/obj/machinery/griddle/proc/GrillCompleted(obj/item/source, atom/grilled_result)
+ SIGNAL_HANDLER
+ AddToGrill(grilled_result)
+
+/obj/machinery/griddle/proc/update_grill_audio()
+ if(on && griddled_objects.len)
+ grill_loop.start()
+ else
+ grill_loop.stop()
+
+/obj/machinery/griddle/wrench_act(mob/living/user, obj/item/I)
+ ..()
+ default_unfasten_wrench(user, I, 2 SECONDS)
+ return TRUE
+
+///Override to prevent storage dumping onto the griddle until I figure out how to navigate the mess that is storage code to allow me to nicely move the dumped objects onto the griddle.
+/obj/machinery/griddle/get_dumping_location(obj/item/storage/source, mob/user)
+ return
+
+/obj/machinery/griddle/process(delta_time)
+ ..()
+ for(var/i in griddled_objects)
+ var/obj/item/griddled_item = i
+ if(SEND_SIGNAL(griddled_item, COMSIG_ITEM_GRILLED, src, delta_time) & COMPONENT_HANDLED_GRILLING)
+ continue
+ griddled_item.fire_act(1000) //Hot hot hot!
+ if(prob(10))
+ visible_message("[griddled_item] doesn't seem to be doing too great on the [src]!")
+
+/obj/machinery/griddle/update_icon_state()
+ icon_state = "griddle[variant]_[on ? "on" : "off"]"
+ return ..()
diff --git a/code/modules/food_and_drinks/kitchen_machinery/grill.dm b/code/modules/food_and_drinks/kitchen_machinery/grill.dm
index 426cd431cd1ff..3963ffa3cfb0e 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/grill.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/grill.dm
@@ -9,10 +9,11 @@
icon = 'icons/obj/kitchen.dmi'
icon_state = "grill_open"
density = TRUE
+ pass_flags_self = PASSMACHINE | LETPASSTHROW // sorta like griddles
layer = BELOW_OBJ_LAYER
use_power = NO_POWER_USE
var/grill_fuel = 0
- var/obj/item/reagent_containers/food/grilled_item
+ var/obj/item/food/grilled_item
var/grill_time = 0
var/datum/looping_sound/grill/grill_loop
@@ -20,13 +21,20 @@
. = ..()
grill_loop = new(src, FALSE)
-/obj/machinery/grill/update_icon()
+/obj/machinery/grill/Destroy()
+ grilled_item = null
+ QDEL_NULL(grill_loop)
+ return ..()
+
+/obj/machinery/grill/update_icon_state()
if(grilled_item)
icon_state = "grill"
- else if(grill_fuel > 0)
+ return ..()
+ if(grill_fuel > 0)
icon_state = "grill_on"
- else
- icon_state = "grill_open"
+ return ..()
+ icon_state = "grill_open"
+ return ..()
/obj/machinery/grill/attackby(obj/item/I, mob/user)
if(istype(I, /obj/item/stack/sheet/mineral/coal) || istype(I, /obj/item/stack/sheet/wood))
@@ -38,36 +46,36 @@
else
grill_fuel += (50 * stackamount)
S.use(stackamount)
- update_icon()
+ update_appearance()
return
if(I.resistance_flags & INDESTRUCTIBLE)
to_chat(user, "You don't feel it would be wise to grill [I]...")
return ..()
- if(istype(I, /obj/item/reagent_containers))
- if(istype(I, /obj/item/reagent_containers/food) && !istype(I, /obj/item/reagent_containers/food/drinks))
- if(HAS_TRAIT(I, TRAIT_NODROP) || (I.item_flags & (ABSTRACT | DROPDEL)))
- return ..()
- else if(!grill_fuel)
- to_chat(user, "There is not enough fuel.")
- return
- else if(!grilled_item && user.transferItemToLoc(I, src))
- grilled_item = I
- to_chat(user, "You put the [grilled_item] on [src].")
- update_icon()
- grill_loop.start()
- return
- else
- if(I.reagents.has_reagent(/datum/reagent/consumable/monkey_energy))
- grill_fuel += (20 * (I.reagents.get_reagent_amount(/datum/reagent/consumable/monkey_energy)))
- to_chat(user, "You pour the Monkey Energy in [src].")
- I.reagents.remove_reagent(/datum/reagent/consumable/monkey_energy, I.reagents.get_reagent_amount(/datum/reagent/consumable/monkey_energy))
- update_icon()
- return
+ if(istype(I, /obj/item/reagent_containers/glass))
+ if(I.reagents.has_reagent(/datum/reagent/consumable/monkey_energy))
+ grill_fuel += (20 * (I.reagents.get_reagent_amount(/datum/reagent/consumable/monkey_energy)))
+ to_chat(user, "You pour the Monkey Energy in [src].")
+ I.reagents.remove_reagent(/datum/reagent/consumable/monkey_energy, I.reagents.get_reagent_amount(/datum/reagent/consumable/monkey_energy))
+ update_appearance()
+ return
+ else if(IS_EDIBLE(I))
+ if(HAS_TRAIT(I, TRAIT_NODROP) || (I.item_flags & (ABSTRACT | DROPDEL)))
+ return ..()
+ else if(!grill_fuel)
+ to_chat(user, "There is not enough fuel.")
+ return
+ else if(!grilled_item && user.transferItemToLoc(I, src))
+ grilled_item = I
+ RegisterSignal(grilled_item, COMSIG_GRILL_COMPLETED, PROC_REF(GrillCompleted))
+ to_chat(user, "You put the [grilled_item] on [src].")
+ update_appearance()
+ grill_loop.start()
+ return
..()
/obj/machinery/grill/process(delta_time)
..()
- update_icon()
+ update_appearance()
if(grill_fuel <= 0)
return
else
@@ -77,6 +85,7 @@
smoke.set_up(1, loc)
smoke.start()
if(grilled_item)
+ SEND_SIGNAL(grilled_item, COMSIG_ITEM_GRILLED, src, delta_time)
grill_time += delta_time
grilled_item.reagents.add_reagent(/datum/reagent/consumable/char, 0.5 * delta_time)
grill_fuel -= GRILL_FUELUSAGE_ACTIVE * delta_time
@@ -88,11 +97,6 @@
grilled_item = null
return ..()
-/obj/machinery/grill/Destroy()
- QDEL_NULL(grill_loop)
- grilled_item = null
- . = ..()
-
/obj/machinery/grill/handle_atom_del(atom/A)
if(A == grilled_item)
grilled_item = null
@@ -117,30 +121,21 @@
if(grilled_item)
to_chat(user, "You take out [grilled_item] from [src].")
grilled_item.forceMove(drop_location())
- update_icon()
+ update_appearance()
return
return ..()
/obj/machinery/grill/proc/finish_grill()
- switch(grill_time) //no 0-20 to prevent spam
- if(20 to 30)
- grilled_item.name = "lightly-grilled [grilled_item.name]"
- grilled_item.desc = "[grilled_item.desc] It's been lightly grilled."
- if(30 to 80)
- grilled_item.name = "grilled [grilled_item.name]"
- grilled_item.desc = "[grilled_item.desc] It's been grilled."
- grilled_item.foodtype |= FRIED
- if(80 to 100)
- grilled_item.name = "heavily grilled [grilled_item.name]"
- grilled_item.desc = "[grilled_item.desc] It's been heavily grilled."
- grilled_item.foodtype |= FRIED
- if(100 to INFINITY) //grill marks reach max alpha
- grilled_item.name = "Powerfully Grilled [grilled_item.name]"
- grilled_item.desc = "A [grilled_item.name]. Reminds you of your wife, wait, no, it's prettier!"
- grilled_item.foodtype |= FRIED
+ SEND_SIGNAL(grilled_item, COMSIG_GRILL_FOOD, grilled_item, grill_time)
grill_time = 0
+ UnregisterSignal(grilled_item, COMSIG_GRILL_COMPLETED, PROC_REF(GrillCompleted))
grill_loop.stop()
+///Called when a food is transformed by the grillable component
+/obj/machinery/grill/proc/GrillCompleted(obj/item/source, atom/grilled_result)
+ SIGNAL_HANDLER
+ grilled_item = grilled_result //use the new item!!
+
/obj/machinery/grill/unwrenched
anchored = FALSE
diff --git a/code/modules/food_and_drinks/kitchen_machinery/processor.dm b/code/modules/food_and_drinks/kitchen_machinery/processor.dm
index d60f250236763..1d09b6b72a037 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/processor.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/processor.dm
@@ -29,8 +29,10 @@
/obj/machinery/processor/proc/process_food(datum/food_processor_process/recipe, atom/movable/what)
if (recipe.output && loc && !QDELETED(src))
- for(var/i = 0, i < rating_amount, i++)
+ var/cached_multiplier = (recipe.food_multiplier * rating_amount)
+ for(var/i in 1 to cached_multiplier)
new recipe.output(drop_location())
+
if (ismob(what))
var/mob/themob = what
themob.gib(TRUE,TRUE,TRUE)
diff --git a/code/modules/food_and_drinks/recipes/processor_recipes.dm b/code/modules/food_and_drinks/recipes/processor_recipes.dm
index e80e29079a6e9..42bf986021265 100644
--- a/code/modules/food_and_drinks/recipes/processor_recipes.dm
+++ b/code/modules/food_and_drinks/recipes/processor_recipes.dm
@@ -2,11 +2,56 @@
var/input
var/output
var/time = 40
+ /// The machine required to do this recipe
var/required_machine = /obj/machinery/processor
+ /// Multiplied additional food made when processed
+ var/food_multiplier = 1
/datum/food_processor_process/meat
input = /obj/item/food/meat/slab
- output = /obj/item/food/meatball
+ output = /obj/item/food/raw_meatball
+ food_multiplier = 3
+
+/datum/food_processor_process/cutlet
+ input = /obj/item/food/meat/cutlet/plain
+ output = /obj/item/food/raw_meatball
+
+/datum/food_processor_process/meat/human
+ input = /obj/item/food/meat/slab/human
+ output = /obj/item/food/raw_meatball/human
+
+/datum/food_processor_process/cutlet/human
+ input = /obj/item/food/meat/cutlet/plain/human
+ output = /obj/item/food/raw_meatball/human
+
+/datum/food_processor_process/meat/corgi
+ input = /obj/item/food/meat/slab/corgi
+ output = /obj/item/food/raw_meatball/corgi
+
+/datum/food_processor_process/meat/xeno
+ input = /obj/item/food/meat/slab/xeno
+ output = /obj/item/food/raw_meatball/xeno
+
+/datum/food_processor_process/cutlet/xeno
+ input = /obj/item/food/meat/cutlet/xeno
+ output = /obj/item/food/raw_meatball/xeno
+
+/datum/food_processor_process/meat/bear
+ input = /obj/item/food/meat/slab/bear
+ output = /obj/item/food/raw_meatball/bear
+
+/datum/food_processor_process/cutlet/bear
+ input = /obj/item/food/meat/cutlet/bear
+ output = /obj/item/food/raw_meatball/bear
+
+/datum/food_processor_process/meat/chicken
+ input = /obj/item/food/meat/slab/chicken
+ output = /obj/item/food/raw_meatball/chicken
+ food_multiplier = 3
+
+/datum/food_processor_process/cutlet/chicken
+ input = /obj/item/food/meat/cutlet/chicken
+ output = /obj/item/food/raw_meatball/chicken
/datum/food_processor_process/bacon
input = /obj/item/food/meat/rawcutlet
diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_burger.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_burger.dm
index 6ecf1a02fcf8b..24bc4b08519b5 100644
--- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_burger.dm
+++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_burger.dm
@@ -8,10 +8,10 @@
name = "Human burger"
reqs = list(
/obj/item/food/bun = 1,
- /obj/item/food/meat/steak/plain/human = 1
+ /obj/item/food/patty/human = 1
)
parts = list(
- /obj/item/food/meat/steak/plain/human = 1
+ /obj/item/food/patty = 1
)
result = /obj/item/food/burger/human
subcategory = CAT_BURGER
@@ -19,7 +19,7 @@
/datum/crafting_recipe/food/burger
name = "Burger"
reqs = list(
- /obj/item/food/meat/steak/plain = 1,
+ /obj/item/food/patty/plain = 1,
/obj/item/food/bun = 1
)
@@ -29,7 +29,7 @@
/datum/crafting_recipe/food/corgiburger
name = "Corgi burger"
reqs = list(
- /obj/item/food/meat/slab/corgi = 1,
+ /obj/item/food/patty/corgi = 1,
/obj/item/food/bun = 1
)
@@ -57,7 +57,7 @@
/datum/crafting_recipe/food/xenoburger
name = "Xeno burger"
reqs = list(
- /obj/item/food/meat/steak/xeno = 1,
+ /obj/item/food/patty/xeno = 1,
/obj/item/food/bun = 1
)
result = /obj/item/food/burger/xeno
@@ -66,7 +66,7 @@
/datum/crafting_recipe/food/bearger
name = "Bearger"
reqs = list(
- /obj/item/food/meat/steak/bear = 1,
+ /obj/item/food/patty/bear = 1,
/obj/item/food/bun = 1
)
result = /obj/item/food/burger/bearger
@@ -122,7 +122,7 @@
/datum/crafting_recipe/food/redburger
name = "Red burger"
reqs = list(
- /obj/item/food/meat/steak/plain = 1,
+ /obj/item/food/patty/plain = 1,
/obj/item/toy/crayon/red = 1,
/obj/item/food/bun = 1
)
@@ -132,7 +132,7 @@
/datum/crafting_recipe/food/orangeburger
name = "Orange burger"
reqs = list(
- /obj/item/food/meat/steak/plain = 1,
+ /obj/item/food/patty/plain = 1,
/obj/item/toy/crayon/orange = 1,
/obj/item/food/bun = 1
)
@@ -142,7 +142,7 @@
/datum/crafting_recipe/food/yellowburger
name = "Yellow burger"
reqs = list(
- /obj/item/food/meat/steak/plain = 1,
+ /obj/item/food/patty/plain = 1,
/obj/item/toy/crayon/yellow = 1,
/obj/item/food/bun = 1
)
@@ -152,7 +152,7 @@
/datum/crafting_recipe/food/greenburger
name = "Green burger"
reqs = list(
- /obj/item/food/meat/steak/plain = 1,
+ /obj/item/food/patty/plain = 1,
/obj/item/toy/crayon/green = 1,
/obj/item/food/bun = 1
)
@@ -162,7 +162,7 @@
/datum/crafting_recipe/food/blueburger
name = "Blue burger"
reqs = list(
- /obj/item/food/meat/steak/plain = 1,
+ /obj/item/food/patty/plain = 1,
/obj/item/toy/crayon/blue = 1,
/obj/item/food/bun = 1
)
@@ -172,7 +172,7 @@
/datum/crafting_recipe/food/purpleburger
name = "Purple burger"
reqs = list(
- /obj/item/food/meat/steak/plain = 1,
+ /obj/item/food/patty/plain = 1,
/obj/item/toy/crayon/purple = 1,
/obj/item/food/bun = 1
)
@@ -182,7 +182,7 @@
/datum/crafting_recipe/food/blackburger
name = "Black burger"
reqs = list(
- /obj/item/food/meat/steak/plain = 1,
+ /obj/item/food/patty/plain = 1,
/obj/item/toy/crayon/black = 1,
/obj/item/food/bun = 1
)
@@ -192,7 +192,7 @@
/datum/crafting_recipe/food/whiteburger
name = "White burger"
reqs = list(
- /obj/item/food/meat/steak/plain = 1,
+ /obj/item/food/patty/plain = 1,
/obj/item/toy/crayon/white = 1,
/obj/item/food/bun = 1
)
@@ -211,7 +211,7 @@
/datum/crafting_recipe/food/bigbiteburger
name = "Big bite burger"
reqs = list(
- /obj/item/food/meat/steak/plain = 3,
+ /obj/item/food/patty/plain = 3,
/obj/item/food/cheese/wedge = 2,
/obj/item/food/bun = 1
)
@@ -223,7 +223,7 @@
reqs = list(
/datum/reagent/consumable/sodiumchloride = 5,
/datum/reagent/consumable/blackpepper = 5,
- /obj/item/food/meat/steak/plain = 5,
+ /obj/item/food/patty/plain = 5,
/obj/item/food/grown/tomato = 4,
/obj/item/food/cheese/wedge = 3,
/obj/item/food/boiledegg = 1,
@@ -255,7 +255,7 @@
/datum/crafting_recipe/food/fivealarmburger
name = "Five alarm burger"
reqs = list(
- /obj/item/food/meat/steak/plain = 1,
+ /obj/item/food/patty/plain = 1,
/obj/item/food/grown/ghost_chili = 2,
/obj/item/food/bun = 1
)
@@ -313,7 +313,7 @@
/datum/crafting_recipe/food/cheeseburger
name = "Cheese Burger"
reqs = list(
- /obj/item/food/meat/steak/plain = 1,
+ /obj/item/food/patty/plain = 1,
/obj/item/food/cheese/wedge = 1,
/obj/item/food/bun = 1
)
@@ -353,7 +353,7 @@
/datum/crafting_recipe/food/chickenburger
name = "Chicken Sandwich"
reqs = list(
- /obj/item/food/meat/steak/chicken = 1,
+ /obj/item/food/patty/chicken = 1,
/datum/reagent/consumable/mayonnaise = 5,
/obj/item/food/bun = 1
)
@@ -363,7 +363,7 @@
/datum/crafting_recipe/food/crazyhamburger
name = "Crazy Hamburger"
reqs = list(
- /obj/item/food/meat/steak/plain = 1, // we have no horse meat sadly
+ /obj/item/food/patty/plain = 1, // we have no horse meat sadly
/obj/item/food/grown/chili = 2,
/datum/reagent/consumable/cooking_oil = 20,
/obj/item/food/grown/nettle/death = 2, // closest thing to "grass of death"
diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm
index 41ad014451470..7b539a450b8c4 100644
--- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm
+++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm
@@ -141,7 +141,7 @@
/obj/item/food/meatball = 1,
/obj/item/food/meat/cutlet = 2
)
- result = /obj/item/food/sausage
+ result = /obj/item/food/raw_sausage
subcategory = CAT_MEAT
/datum/crafting_recipe/food/nugget
diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_sandwich.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_sandwich.dm
index ca80830f284b8..88301a9d199bf 100644
--- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_sandwich.dm
+++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_sandwich.dm
@@ -16,13 +16,13 @@
result = /obj/item/food/sandwich
subcategory = CAT_SANDWICH
-/datum/crafting_recipe/food/grilled_cheese_sandwich
+/datum/crafting_recipe/food/cheese_sandwich
name = "Cheese sandwich"
reqs = list(
/obj/item/food/breadslice/plain = 2,
/obj/item/food/cheese/wedge = 2
)
- result = /obj/item/food/grilled_cheese_sandwich
+ result = /obj/item/food/cheese_sandwich
subcategory = CAT_SANDWICH
/datum/crafting_recipe/food/slimesandwich
diff --git a/code/modules/hydroponics/grown/towercap.dm b/code/modules/hydroponics/grown/towercap.dm
index 14e8832ff2606..694593f8e28f7 100644
--- a/code/modules/hydroponics/grown/towercap.dm
+++ b/code/modules/hydroponics/grown/towercap.dm
@@ -292,9 +292,9 @@
var/mob/living/L = A
L.adjust_fire_stacks(fire_stack_strength * 0.5 * delta_time)
L.IgniteMob()
- else if(istype(A, /obj/item) && DT_PROB(10, delta_time))
- var/obj/item/O = A
- O.microwave_act()
+ else if(istype(A, /obj/item))
+ var/obj/item/grilled_item = A
+ SEND_SIGNAL(grilled_item, COMSIG_ITEM_GRILLED, src, delta_time) //Not a big fan, maybe make this use fire_act() in the future.
/obj/structure/bonfire/process(delta_time)
if(needs_oxygen && !CheckOxygen())
diff --git a/code/modules/research/designs/machine_designs.dm b/code/modules/research/designs/machine_designs.dm
index 32454a53fea2f..4877e203b16ce 100644
--- a/code/modules/research/designs/machine_designs.dm
+++ b/code/modules/research/designs/machine_designs.dm
@@ -571,6 +571,14 @@
category = list ("Misc. Machinery")
departmental_flags = DEPARTMENTAL_FLAG_SERVICE
+/datum/design/board/griddle
+ name = "Machine Design (Griddle)"
+ desc = "The circuit board for a Griddle."
+ id = "griddle"
+ build_path = /obj/item/circuitboard/machine/griddle
+ category = list ("Misc. Machinery")
+ departmental_flags = DEPARTMENTAL_FLAG_SERVICE
+
/datum/design/board/donksofttoyvendor
name = "Machine Design (Donksoft Toy Vendor Board)"
desc = "The circuit board for a Donksoft Toy Vendor."
diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm
index 9174d2dc8b990..f14f7c0648171 100644
--- a/code/modules/research/techweb/all_nodes.dm
+++ b/code/modules/research/techweb/all_nodes.dm
@@ -287,7 +287,7 @@
"dish_drive",
"fat_sucker",
"gibber",
- "gibber",
+ "griddle",
"microwave",
"monkey_recycler",
"processor",
diff --git a/icons/effects/steam.dmi b/icons/effects/steam.dmi
new file mode 100644
index 0000000000000000000000000000000000000000..d79e58e2d549016ea3d8ab0be32618cb4eee912e
GIT binary patch
literal 1056
zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSeN`b5B`&GO$wiq3C7Jno3=9=>
zrk>f&b;v=$?P1k(&ALfpM^?0+HQD62%_GiHtjtHOXyRPQk8gF~uy9*m&D&cIIwx6-dH;*^*=>&VYlm6B>JPb`fQ>1n&O_DG~i
zkMK^F;F`vZIdxy&MxOls-*(l-Z*u#%zp(9kYVLGwZ&?Zh1GBHEi(^Q|oVRlw%WfO+
zuuh$~!aSgF%Hk&;kIwGOG_RfFEU99D(0=om)4~rDd;)zK>SL~#x>%h5ym^YyZjVbp
ztdIP=swggLE#lzo!N8^Pw7kE2kM02`))$|+Pe|>b@~L*-^YAZL6Ga_j88r8DEjXw6
zRxV*W(~8RI2GM(exGYoDw=e}T=svHkn;NuF`MO6ncSNHcYrt_o-2;5A0m8QI3m8sz
z&S4HA&_9qD3e8_BM9DG+eCsRyTq5pV{%4MK{iH80Gt3
z?(4AR`^}WYxVO=Bp?Sa=F6o3SW^;`OsWg_Ehb+rjC}mt`xQXGFOwb#~GQEabYK&nOpS7QCP(G{8
zz%2ZNsR2BF_KK^&72~!8RLbvU#G{!UB7k(X?{O;t6
zpE3#8{Ty5Wnk1<3Fy)&&gQPYjx_6*s(+&i%PFZq0w8&bc!uvijM6ZHHOUd`$h%F+LH}X~)UQb&u3o2t*!g1~MlY#!59W0s<_QrbCdDb87pBc}17IQZk5}m$2vuE$C
WS^MDS2{&MtXYh3Ob6Mw<&;$U(M7u8l
literal 0
HcmV?d00001
diff --git a/icons/obj/food/meat.dmi b/icons/obj/food/meat.dmi
index 6b4502f4695a839b2ccc5963e09a7a636a4f7f21..08e401a5ce0d1c89833133dac696b78cdbc86790 100644
GIT binary patch
literal 34096
zcmbrl1yEeUw>LPr1ShzMBm@W+f&?d6kl+@a5Zqk{PjE@l;O;O;aF{_u@DSWx2ZzB2
z_VV8U+wWCveYI7)Q#JSAp6=<}efrq%^yvsyWjTCYYFrQqgfIU=S{(#JF#*03*qFdC
z!NWy9AP}mvkEX7hw7IL9i?x%RwW9+F(&<3MMD%U+LPNKIvX)w4w=#uIJ4s5T
zpUY&pwk|N)T)Sh+Jqv2W5}W^a6Qa%Dxrg@6bc^A_=fwUDx$5lvux@%ECG~5K!kD75
zT;*(bsiA*kWE%EHAB%*sdB4uR*yJ0h$|%>)eHDlnIXa<
zER=Y0x_IWWx}W!;JO20B^JWlU2H(8)PUjuo$X$qxD1~fC>-O2lGb*4GnT-(O_3~Rg
zi%7gu7P^(r{rY$8yNYfXwT*dPuBc_{Q>7IlP2@Sl0RC>EYVOb1Ewj<(F8b@06(I
z
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
Rn}dLds-lKMg`8>l{{m=VSo(MG}*kA
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