CIVILLIAN OVERHAUL UNO: Chef and the Kitchen

Conflicts:
	baystation12.dme
	code/modules/reagents/reagent_containers/food/snacks.dm
	icons/obj/food.dmi
	icons/obj/kitchen.dmi
This commit is contained in:
iamgoofball
2014-05-03 21:15:41 -04:00
committed by ZomgPonies
parent 2b85081619
commit 424a2522b9
13 changed files with 968 additions and 63 deletions
+43
View File
@@ -0,0 +1,43 @@
/obj/machinery/cerealmaker
name = "cereal maker"
desc = "Now with Dann O's available!"
icon = 'icons/obj/cooking_machines.dmi'
icon_state = "cereal_off"
layer = 2.9
density = 1
anchored = 1
use_power = 1
idle_power_usage = 5
var/on = FALSE //Is it making cereal already?
/obj/machinery/cerealmaker/attackby(obj/item/I, mob/user)
if(on)
user << "<span class='notice'>[src] is already processing, please wait.</span>"
return
if(!istype(I, /obj/item/weapon/reagent_containers/food/snacks/))
user << "<span class='warning'>Budget cuts won't let you put that in there.</span>"
return
if(istype(I, /obj/item/weapon/reagent_containers/food/snacks/cereal/))
user << "<span class='warning'>That isn't going to fit.</span>"
return
else
user << "<span class='notice'>You put [I] into [src].</span>"
on = TRUE
user.drop_item()
I.loc = src
icon_state = "cereal_on"
sleep(200)
icon_state = "cereal_off"
var/obj/item/weapon/reagent_containers/food/snacks/cereal/S = new(get_turf(src))
var/image/img = new(I.icon, I.icon_state)
img.transform *= 0.7
if(istype(I, /obj/item/weapon/reagent_containers/))
var/obj/item/weapon/reagent_containers/food = I
food.reagents.trans_to(S, food.reagents.total_volume)
S.overlays += img
S.overlays += I.overlays
S.name = "box of [I] cereal"
playsound(loc, 'sound/machines/ding.ogg', 50, 1)
on = FALSE
qdel(I)
+371
View File
@@ -0,0 +1,371 @@
/obj/item/weapon/reagent_containers/food/snacks/breadslice/attackby(obj/item/W as obj, mob/user as mob)
if(istype(W,/obj/item/weapon/reagent_containers/food/snacks))
var/obj/item/weapon/reagent_containers/food/snacks/customizable/S = new(get_turf(user))
S.attackby(W,user)
qdel(src)
/obj/item/weapon/reagent_containers/food/snacks/bun/attackby(obj/item/W as obj, mob/user as mob)
if(istype(W,/obj/item/weapon/reagent_containers/food/snacks))
var/obj/item/weapon/reagent_containers/food/snacks/customizable/burger/S = new(get_turf(user))
S.attackby(W,user)
qdel(src)
..()
/obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough/attackby(obj/item/W as obj, mob/user as mob)
if(istype(W,/obj/item/weapon/reagent_containers/food/snacks))
var/obj/item/weapon/reagent_containers/food/snacks/customizable/pizza/S = new(get_turf(user))
S.attackby(W,user)
qdel(src)
..()
/obj/item/weapon/reagent_containers/food/snacks/boiledspagetti/attackby(obj/item/W as obj, mob/user as mob)
if(istype(W,/obj/item/weapon/reagent_containers/food/snacks))
var/obj/item/weapon/reagent_containers/food/snacks/customizable/pasta/S = new(get_turf(user))
S.attackby(W,user)
qdel(src)
/obj/item/trash/plate/attackby(obj/item/W as obj, mob/user as mob)
if(istype(W,/obj/item/weapon/reagent_containers/food/snacks))
var/obj/item/weapon/reagent_containers/food/snacks/customizable/fullycustom/S = new(get_turf(user))
S.attackby(W,user)
qdel(src)
/obj/item/trash/bowl
name = "bowl"
desc = "An empty bowl. Put some food in it to start making a soup."
icon = 'icons/obj/food.dmi'
icon_state = "soup"
/obj/item/trash/bowl/attackby(obj/item/W as obj, mob/user as mob)
if(istype(W,/obj/item/weapon/shard) || istype(W,/obj/item/weapon/reagent_containers/food/snacks))
var/obj/item/weapon/reagent_containers/food/snacks/customizable/soup/S = new(get_turf(user))
S.attackby(W,user)
qdel(src)
..()
/obj/item/weapon/reagent_containers/food/snacks/customizable
name = "sandwich"
desc = "A sandwich! A timeless classic."
icon_state = "breadslice"
var/baseicon = "sandwich"
var/basename = "sandwich"
var/top = 1 //Do we have a top?
var/add_overlays = 1 //Do we stack?
// var/offsetstuff = 1 //Do we offset the overlays?
var/sandwich_limit = 10
var/fullycustom = 0
trash = /obj/item/trash/plate
bitesize = 2
var/list/ingredients = list()
New()
..()
reagents.add_reagent("nutriment", 8)
/obj/item/weapon/reagent_containers/food/snacks/customizable/pizza
name = "personal pizza"
desc = "A personalized pan pizza meant for only one person."
icon_state = "personal_pizza"
baseicon = "personal_pizza"
basename = "personal pizza"
add_overlays = 0
top = 0
/obj/item/weapon/reagent_containers/food/snacks/customizable/pasta
name = "spagetti"
desc = "Noodles. With stuff. Delicious."
icon_state = "pasta_bot"
baseicon = "pasta_bot"
basename = "spagetti"
add_overlays = 0
top = 0
/obj/item/weapon/reagent_containers/food/snacks/customizable/cook/bread
name = "bread"
desc = "Tasty bread."
icon_state = "breadcustom"
baseicon = "breadcustom"
basename = "bread"
add_overlays = 0
top = 0
/obj/item/weapon/reagent_containers/food/snacks/customizable/cook/pie
name = "pie"
desc = "Tasty pie."
icon_state = "piecustom"
baseicon = "piecustom"
basename = "pie"
add_overlays = 0
top = 0
/obj/item/weapon/reagent_containers/food/snacks/customizable/cook/cake
name = "cake"
desc = "A popular band."
icon_state = "cakecustom"
baseicon = "cakecustom"
basename = "cake"
add_overlays = 0
top = 0
/obj/item/weapon/reagent_containers/food/snacks/customizable/cook/jelly
name = "jelly"
desc = "Totally jelly."
icon_state = "jellycustom"
baseicon = "jellycustom"
basename = "jelly"
add_overlays = 0
top = 0
/obj/item/weapon/reagent_containers/food/snacks/customizable/cook/donkpocket
name = "donk pocket"
desc = "You wanna put a bangin-Oh nevermind."
icon_state = "donkcustom"
baseicon = "donkcustom"
basename = "donk pocket"
add_overlays = 0
top = 0
/obj/item/weapon/reagent_containers/food/snacks/customizable/cook/kebab
name = "kebab"
desc = "Kebab or Kabab?"
icon_state = "kababcustom"
baseicon = "kababcustom"
basename = "kebab"
add_overlays = 0
top = 0
/obj/item/weapon/reagent_containers/food/snacks/customizable/cook/salad
name = "salad"
desc = "Very tasty."
icon_state = "saladcustom"
baseicon = "saladcustom"
basename = "salad"
add_overlays = 0
top = 0
/obj/item/weapon/reagent_containers/food/snacks/customizable/cook/waffles
name = "waffles"
desc = "Made with love."
icon_state = "wafflecustom"
baseicon = "wafflecustom"
basename = "waffles"
add_overlays = 0
top = 0
/obj/item/weapon/reagent_containers/food/snacks/customizable/candy/cookie
name = "cookie"
desc = "COOKIE!!1!"
icon_state = "cookiecustom"
baseicon = "cookiecustom"
basename = "cookie"
add_overlays = 0
top = 0
/obj/item/weapon/reagent_containers/food/snacks/customizable/candy/cotton
name = "flavored cotton candy"
desc = "Who can take a sunrise, sprinkle it with dew,"
icon_state = "cottoncandycustom"
baseicon = "cottoncandycustom"
basename = "flavored cotton candy"
add_overlays = 0
top = 0
/obj/item/weapon/reagent_containers/food/snacks/customizable/candy/gummybear
name = "flavored giant gummy bear"
desc = "Cover it in chocolate and a miracle or two,"
icon_state = "gummybearcustom"
baseicon = "gummybearcustom"
basename = "flavored giant gummy bear"
add_overlays = 0
top = 0
/obj/item/weapon/reagent_containers/food/snacks/customizable/candy/gummyworm
name = "flavored giant gummy worm"
desc = "The Candy Man can 'cause he mixes it with love,"
icon_state = "gummywormcustom"
baseicon = "gummywormcustom"
basename = "flavored giant gummy worm"
add_overlays = 0
top = 0
/obj/item/weapon/reagent_containers/food/snacks/customizable/candy/jellybean
name = "flavored giant jelly bean"
desc = "And makes the world taste good."
icon_state = "jellybeancustom"
baseicon = "jellybeancustom"
basename = "flavored giant jelly bean"
add_overlays = 0
top = 0
/obj/item/weapon/reagent_containers/food/snacks/customizable/candy/jawbreaker
name = "flavored jawbreaker"
desc = "Who can take a rainbow, Wrap it in a sigh,"
icon_state = "jawbreakercustom"
baseicon = "jawbreakercustom"
basename = "flavored jawbreaker"
add_overlays = 0
top = 0
/obj/item/weapon/reagent_containers/food/snacks/customizable/candy/candycane
name = "flavored candy cane"
desc = "Soak it in the sun and make strawberry-lemon pie,"
icon_state = "candycanecustom"
baseicon = "candycanecustom"
basename = "flavored candy cane"
add_overlays = 0
top = 0
/obj/item/weapon/reagent_containers/food/snacks/customizable/candy/gum
name = "flavored gum"
desc = "The Candy Man can 'cause he mixes it with love and makes the world taste good. And the world tastes good 'cause the Candy Man thinks it should..."
icon_state = "gumcustom"
baseicon = "gumcustom"
basename = "flavored gum"
add_overlays = 0
top = 0
/obj/item/weapon/reagent_containers/food/snacks/customizable/candy/donut
name = "filled donut"
desc = "Donut eat this!" // kill me
icon_state = "donutcustom"
baseicon = "donutcustom"
basename = "filled donut"
add_overlays = 0
top = 0
/obj/item/weapon/reagent_containers/food/snacks/customizable/candy/bar
name = "flavored chocolate bar"
desc = "Made in a factory downtown."
icon_state = "barcustom"
baseicon = "barcustom"
basename = "flavored chocolate bar"
add_overlays = 0
top = 0
/obj/item/weapon/reagent_containers/food/snacks/customizable/candy/sucker
name = "flavored sucker"
desc = "Suck suck suck."
icon_state = "suckercustom"
baseicon = "suckercustom"
basename = "flavored sucker"
add_overlays = 0
top = 0
/obj/item/weapon/reagent_containers/food/snacks/customizable/candy/cash
name = "flavored chocolate cash"
desc = "I got piles!"
icon_state = "cashcustom"
baseicon = "cashcustom"
basename = "flavored cash"
add_overlays = 0
top = 0
/obj/item/weapon/reagent_containers/food/snacks/customizable/candy/coin
name = "flavored chocolate coin"
desc = "Clink, clink, clink."
icon_state = "coincustom"
baseicon = "coincustom"
basename = "flavored coin"
add_overlays = 0
top = 0
/obj/item/weapon/reagent_containers/food/snacks/customizable/fullycustom // In the event you fuckers find something I forgot to add a customizable food for.
name = "on a plate"
desc = "A unique dish."
icon_state = "fullycustom"
baseicon = "fullycustom"
basename = "on a plate"
add_overlays = 0
top = 0
sandwich_limit = 20
fullycustom = 1
/obj/item/weapon/reagent_containers/food/snacks/customizable/soup
name = "soup"
desc = "A bowl with liquid and... stuff in it."
icon_state = "soup"
baseicon = "soup"
basename = "soup"
add_overlays = 0
trash = /obj/item/trash/bowl
top = 0
/obj/item/weapon/reagent_containers/food/snacks/customizable/burger
name = "burger bun"
desc = "A bun for a burger. Delicious."
icon_state = "burger"
baseicon = "burger"
basename = "burger"
/obj/item/weapon/reagent_containers/food/snacks/customizable/attackby(obj/item/W as obj, mob/user as mob)
if(src.contents.len > sandwich_limit)
user << "<span class='warning'>If you put anything else in or on [src] it's going to make a mess.</span>"
return
else if(istype(W,/obj/item/weapon/reagent_containers/food/snacks))
user << "<span class='notice'> You add [W] to [src].</span>"
var/obj/item/weapon/reagent_containers/F = W
F.reagents.trans_to(src, F.reagents.total_volume)
user.drop_item()
W.loc = src
ingredients += W
update()
return
..()
/obj/item/weapon/reagent_containers/food/snacks/customizable/proc/update()
var/fullname = "" //We need to build this from the contents of the var.
var/i = 0
overlays.Cut()
for(var/obj/item/weapon/reagent_containers/food/snacks/O in ingredients)
i++
if(i == 1)
fullname += "[O.name]"
else if(i == ingredients.len)
fullname += " and [O.name]"
else
fullname += ", [O.name]"
if(!fullycustom)
var/image/I = new(src.icon, "[baseicon]_filling")
if(istype(O, /obj/item/weapon/reagent_containers/food/snacks))
var/obj/item/weapon/reagent_containers/food/snacks/food = O
if(!food.filling_color == "#FFFFFF")
I.color = food.filling_color
else
I.color = pick("#FF0000","#0000FF","#008000","#FFFF00")
if(add_overlays)
I.pixel_x = pick(list(-1,0,1))
I.pixel_y = (i*2)+1
overlays += I
else
var/image/F = new(O.icon, O.icon_state)
F.pixel_x = pick(list(-1,0,1))
F.pixel_y = pick(list(-1,0,1))
overlays += F
overlays += O.overlays
if(top)
var/image/T = new(src.icon, "[baseicon]_top")
T.pixel_x = pick(list(-1,0,1))
T.pixel_y = (ingredients.len * 2)+1
overlays += T
name = lowertext("[fullname] [basename]")
if(length(name) > 80) name = "[pick(list("absurd","colossal","enormous","ridiculous","massive","oversized","cardiac-arresting","pipe-clogging","edible but sickening","sickening","gargantuan","mega","belly-burster","chest-burster"))] [basename]"
w_class = n_ceil(Clamp((ingredients.len/2),1,3))
/obj/item/weapon/reagent_containers/food/snacks/customizable/Del()
for(var/obj/item/O in ingredients)
del(O)
..()
/obj/item/weapon/reagent_containers/food/snacks/customizable/examine()
..()
var/whatsinside = pick(ingredients)
usr << "<span class='notice'> You think you can see [whatsinside] in there.</span>"
+62
View File
@@ -0,0 +1,62 @@
/obj/machinery/deepfryer
name = "deep fryer"
desc = "Deep fried <i>everything</i>."
icon = 'icons/obj/cooking_machines.dmi'
icon_state = "fryer_off"
layer = 2.9
density = 1
anchored = 1
use_power = 1
idle_power_usage = 5
var/on = FALSE //Is it deep frying already?
var/obj/item/frying = null //What's being fried RIGHT NOW?
/obj/machinery/deepfryer/examine()
..()
if(frying)
usr << "You can make out [frying] in the oil."
/obj/machinery/deepfryer/attackby(obj/item/I, mob/user)
if(on)
user << "<span class='notice'>[src] is still active!</span>"
return
if(!istype(I, /obj/item/weapon/reagent_containers/food/snacks/))
user << "<span class='warning'>Budget cuts won't let you put that in there.</span>"
return
if(istype(I, /obj/item/weapon/reagent_containers/food/snacks/deepfryholder))
user << "<span class='userdanger'>You cannot doublefry.</span>"
return
else
user << "<span class='notice'>You put [I] into [src].</span>"
on = TRUE
user.drop_item()
frying = I
frying.loc = src
icon_state = "fryer_on"
sleep(200)
if(frying && frying.loc == src)
var/obj/item/weapon/reagent_containers/food/snacks/deepfryholder/S = new(get_turf(src))
if(istype(frying, /obj/item/weapon/reagent_containers/))
var/obj/item/weapon/reagent_containers/food = frying
food.reagents.trans_to(S, food.reagents.total_volume)
S.color = "#FFAD33"
S.icon = frying.icon
S.overlays = I.overlays
S.icon_state = frying.icon_state
S.name = "deep fried [frying.name]"
S.desc = I.desc
frying.loc = S //this might be a bad idea.
icon_state = "fryer_off"
on = FALSE
playsound(src.loc, 'sound/machines/ding.ogg', 50, 1)
/obj/machinery/deepfryer/attack_hand(mob/user)
if(on && frying)
user << "<span class='notice'>You pull [frying] from [src]! It looks like you were just in time!</span>"
user.put_in_hands(frying)
frying = null
return
..()
+51
View File
@@ -0,0 +1,51 @@
/obj/machinery/foodgrill
name = "grill"
desc = "Backyard grilling, IN SPACE."
icon = 'icons/obj/cooking_machines.dmi'
icon_state = "grill_off"
layer = 2.9
density = 1
anchored = 1
use_power = 1
idle_power_usage = 5
var/on = FALSE //Is it grilling food already?
/obj/machinery/foodgrill/attackby(obj/item/I, mob/user)
if(on)
user << "<span class='notice'>[src] is already processing, please wait.</span>"
return
if(istype(I, /obj/item/weapon/grab)||istype(I, /obj/item/tk_grab))
user << "<span class='warning'>That isn't going to fit.</span>"
return
else
user << "<span class='notice'>You put [I] onto [src].</span>"
on = TRUE
user.drop_item()
I.loc = src
icon_state = "grill_on"
var/image/img = new(I.icon, I.icon_state)
img.pixel_y = 5
overlays += img
sleep(200)
overlays.Cut()
img.color = "#C28566"
overlays += img
sleep(200)
overlays.Cut()
img.color = "#A34719"
overlays += img
sleep(50)
overlays.Cut()
on = FALSE
icon_state = "grill_off"
if(istype(I, /obj/item/weapon/reagent_containers/))
var/obj/item/weapon/reagent_containers/food = I
food.reagents.add_reagent("nutriment", 10)
food.reagents.trans_to(I, food.reagents.total_volume)
I.loc = get_turf(src)
I.color = "#A34719"
var/tempname = I.name
I.name = "grilled [tempname]"
+254
View File
@@ -0,0 +1,254 @@
//ICE CREAM MACHINE
//Code made by Sawu at Sawu-Station.
/obj/machinery/icemachine
name = "\improper Cream-Master Deluxe"
density = 1
anchored = 1
icon = 'icons/obj/cooking_machines.dmi'
icon_state = "icecream_vat"
use_power = 1
idle_power_usage = 20
var/obj/item/weapon/reagent_containers/glass/beaker = null
var/useramount = 15 //Last used amount
/obj/machinery/icemachine/proc/generate_name(reagent_name)
var/name_prefix = pick("Mr.","Mrs.","Super","Happy","Whippy")
var/name_suffix = pick(" Whippy "," Slappy "," Creamy "," Dippy "," Swirly "," Swirl ")
var/cone_name = null //Heart failure prevention.
cone_name += name_prefix
cone_name += name_suffix
cone_name += "[reagent_name]"
return cone_name
/obj/machinery/icemachine/New()
var/datum/reagents/R = new/datum/reagents(500)
reagents = R
R.my_atom = src
/obj/machinery/icemachine/attackby(obj/item/I, mob/user)
if(istype(I, /obj/item/weapon/reagent_containers/glass))
if(beaker)
user << "<span class='notice'>A container is already inside [src].</span>"
return
beaker = I
user.drop_item()
I.loc = src
user << "<span class='notice'>You add [I] to [src]</span>"
updateUsrDialog()
return
if(istype(I, /obj/item/weapon/reagent_containers/food/snacks/icecream))
if(!I.reagents.has_reagent("sprinkles"))
if(I.reagents.total_volume > 29) I.reagents.remove_any(1)
I.reagents.add_reagent("sprinkles",1)
var/image/sprinkles = image('icons/obj/kitchen.dmi', src, "sprinkles")
I.overlays += sprinkles
I.name += " with sprinkles"
I.desc += ". This also has sprinkles."
else
user << "<span class='notice'>This [I] already has sprinkles.</span>"
/obj/machinery/icemachine/proc/validexchange(reag)
if(reag == "sprinkles" | reag == "cola" | reag == "kahlua" | reag == "dr_gibb" | reag == "vodka" | reag == "space_up" | reag == "rum" | reag == "spacemountainwind" | reag == "gin" | reag == "cream" | reag == "water")
return 1
else
if(reagents.total_volume < 500)
usr << "<span class='notice'>[src] vibrates for a moment, apparently accepting the unknown liquid.</span>"
playsound(loc, 'sound/machines/twobeep.ogg', 10, 1)
return 1
/obj/machinery/icemachine/Topic(href, href_list)
if(..()) return
add_fingerprint(usr)
usr.set_machine(src)
if(href_list["close"])
usr << browse(null, "window=cream_master")
usr.unset_machine()
return
var/obj/item/weapon/reagent_containers/glass/A = null
var/datum/reagents/R = null
if(beaker)
A = beaker
R = A.reagents
if(href_list["add"])
if(href_list["amount"])
var/id = href_list["add"]
var/amount = text2num(href_list["amount"])
if(validexchange(id))
R.trans_id_to(src, id, amount)
else if(href_list["remove"])
if(href_list["amount"])
var/id = href_list["remove"]
var/amount = text2num(href_list["amount"])
if(beaker == null)
reagents.remove_reagent(id,amount)
else
if(validexchange(id))
reagents.trans_id_to(A, id, amount)
else
reagents.remove_reagent(id,amount)
else if(href_list["main"])
attack_hand(usr)
return
else if(href_list["eject"])
if(beaker)
A.loc = loc
beaker = null
reagents.trans_to(A,reagents.total_volume)
else if(href_list["synthcond"])
if(href_list["type"])
var/ID = text2num(href_list["type"])
/*
if(ID == 1)
reagents.add_reagent("sprinkles",1)
*/ //Sprinkles are now created by using the ice cream on the machine
if(ID == 2 | ID == 3)
var/brand = pick(1,2,3,4)
if(brand == 1)
if(ID == 2)
reagents.add_reagent("cola",5)
else
reagents.add_reagent("kahlua",5)
else if(brand == 2)
if(ID == 2)
reagents.add_reagent("dr_gibb",5)
else
reagents.add_reagent("vodka",5)
else if(brand == 3)
if(ID == 2)
reagents.add_reagent("space_up",5)
else
reagents.add_reagent("rum",5)
else if(brand == 4)
if(ID == 2)
reagents.add_reagent("spacemountainwind",5)
else
reagents.add_reagent("gin",5)
else if(ID == 4)
if(reagents.total_volume <= 500 & reagents.total_volume >= 15)
reagents.add_reagent("cream",(30 - reagents.total_volume))
else if(reagents.total_volume <= 15)
reagents.add_reagent("cream",(15 - reagents.total_volume))
else if(ID == 5)
if(reagents.total_volume <= 500 & reagents.total_volume >= 15)
reagents.add_reagent("water",(30 - reagents.total_volume))
else if(reagents.total_volume <= 15)
reagents.add_reagent("water",(15 - reagents.total_volume))
else if(href_list["createcup"])
var/name = generate_name(reagents.get_master_reagent_name())
name += " Chocolate Cone"
var/obj/item/weapon/reagent_containers/food/snacks/icecream/icecreamcup/C
C = new/obj/item/weapon/reagent_containers/food/snacks/icecream/icecreamcup(loc)
C.name = "[name]"
C.pixel_x = rand(-8, 8)
C.pixel_y = -16
reagents.trans_to(C,30)
if(reagents)
reagents.clear_reagents()
C.update_icon()
else if(href_list["createcone"])
var/name = generate_name(reagents.get_master_reagent_name())
name += " Cone"
var/obj/item/weapon/reagent_containers/food/snacks/icecream/icecreamcone/C
C = new/obj/item/weapon/reagent_containers/food/snacks/icecream/icecreamcone(loc)
C.name = "[name]"
C.pixel_x = rand(-8, 8)
C.pixel_y = -16
reagents.trans_to(C,15)
if(reagents)
reagents.clear_reagents()
C.update_icon()
updateUsrDialog()
/obj/machinery/icemachine/attack_ai(mob/user)
return attack_hand(user)
/obj/machinery/icemachine/attack_paw(mob/user)
return attack_hand(user)
/obj/machinery/icemachine/proc/show_toppings()
var/dat = ""
if(reagents.total_volume <= 500)
dat += "<HR>"
dat += "<strong>Add fillings:</strong><BR>"
dat += "<A href='?src=\ref[src];synthcond=1;type=2'>Soda</A><BR>"
dat += "<A href='?src=\ref[src];synthcond=1;type=3'>Alcohol</A><BR>"
dat += "<strong>Finish With:</strong><BR>"
dat += "<A href='?src=\ref[src];synthcond=1;type=4'>Cream</A><BR>"
dat += "<A href='?src=\ref[src];synthcond=1;type=5'>Water</A><BR>"
dat += "<strong>Dispense in:</strong><BR>"
dat += "<A href='?src=\ref[src];createcup=1'>Chocolate Cone</A><BR>"
dat += "<A href='?src=\ref[src];createcone=1'>Cone</A><BR>"
dat += "</center>"
return dat
/obj/machinery/icemachine/proc/show_reagents(container)
//1 = beaker / 2 = internal
var/dat = ""
if(container == 1)
var/obj/item/weapon/reagent_containers/glass/A = beaker
var/datum/reagents/R = A.reagents
dat += "The container has:<BR>"
for(var/datum/reagent/G in R.reagent_list)
dat += "[G.volume] unit(s) of [G.name] | "
dat += "<A href='?src=\ref[src];add=[G.id];amount=5'>(5)</A> "
dat += "<A href='?src=\ref[src];add=[G.id];amount=10'>(10)</A> "
dat += "<A href='?src=\ref[src];add=[G.id];amount=15'>(15)</A> "
dat += "<A href='?src=\ref[src];add=[G.id];amount=[G.volume]'>(All)</A>"
dat += "<BR>"
else if(container == 2)
dat += "<BR>The Cream-Master has:<BR>"
if(reagents.total_volume)
for(var/datum/reagent/N in reagents.reagent_list)
dat += "[N.volume] unit(s) of [N.name] | "
dat += "<A href='?src=\ref[src];remove=[N.id];amount=5'>(5)</A> "
dat += "<A href='?src=\ref[src];remove=[N.id];amount=10'>(10)</A> "
dat += "<A href='?src=\ref[src];remove=[N.id];amount=15'>(15)</A> "
dat += "<A href='?src=\ref[src];remove=[N.id];amount=[N.volume]'>(All)</A>"
dat += "<BR>"
else
dat += "<BR>SOMEONE ENTERED AN INVALID REAGENT CONTAINER; QUICK, BUG REPORT!<BR>"
return dat
/obj/machinery/icemachine/attack_hand(mob/user)
if(..()) return
user.set_machine(src)
var/dat = ""
if(!beaker)
dat += "No container is loaded into the machine, external transfer offline.<BR>"
dat += show_reagents(2)
dat += show_toppings()
dat += "<A href='?src=\ref[src];close=1'>Close</A>"
else
var/obj/item/weapon/reagent_containers/glass/A = beaker
var/datum/reagents/R = A.reagents
dat += "<A href='?src=\ref[src];eject=1'>Eject container and end transfer.</A><BR>"
if(!R.total_volume)
dat += "Container is empty.<BR><HR>"
else
dat += show_reagents(1)
dat += show_reagents(2)
dat += show_toppings()
var/datum/browser/popup = new(user, "cream_master","Cream-Master Deluxe", 700, 400, src)
popup.set_content(dat)
popup.open()
+82
View File
@@ -0,0 +1,82 @@
/obj/machinery/cooking
name = "oven"
desc = "Cookies are ready, dear."
icon = 'icons/obj/cooking_machines.dmi'
icon_state = "oven_off"
layer = 2.9
density = 1
anchored = 1
use_power = 1
var/candy = 0
idle_power_usage = 5
var/on = FALSE //Is it making food already?
var/list/food_choices = list()
/obj/machinery/cooking/New()
..()
updatefood()
/obj/machinery/cooking/attackby(obj/item/I, mob/user)
if(on)
user << "The machine is already running."
return
if(!istype(I,/obj/item/weapon/reagent_containers/food/snacks/))
user << "That isn't food."
return
else
var/obj/item/weapon/reagent_containers/food/snacks/F = I
var/obj/item/weapon/reagent_containers/food/snacks/customizable/C
C = input("Select food to make.", "Cooking", C) in food_choices
if(!C)
return
else
user << "You put [F] into [src] for cooking."
user.drop_item()
F.loc = src
on = TRUE
if(!candy)
icon_state = "oven_on"
else
icon_state = "mixer_on"
sleep(100)
on = FALSE
if(!candy)
icon_state = "oven_off"
else
icon_state = "mixer_off"
C.loc = get_turf(src)
C.attackby(F,user)
playsound(loc, 'sound/machines/ding.ogg', 50, 1)
updatefood()
return
/obj/machinery/cooking/proc/updatefood()
return
/obj/machinery/cooking/oven
name = "oven"
desc = "Cookies are ready, dear."
icon = 'icons/obj/cooking_machines.dmi'
icon_state = "oven_off"
/obj/machinery/cooking/oven/updatefood()
for(var/U in food_choices)
food_choices.Remove(U)
for(var/U in typesof(/obj/item/weapon/reagent_containers/food/snacks/customizable/cook)-(/obj/item/weapon/reagent_containers/food/snacks/customizable/cook))
var/obj/item/weapon/reagent_containers/food/snacks/customizable/cook/V = new U
src.food_choices += V
return
/obj/machinery/cooking/candy
name = "candy machine"
desc = "Get yer box of deep fried deep fried deep fried deep fried cotton candy cereal sandwich cookies here!"
icon = 'icons/obj/cooking_machines.dmi'
icon_state = "mixer_off"
candy = 1
/obj/machinery/cooking/candy/updatefood()
for(var/U in food_choices)
food_choices.Remove(U)
for(var/U in typesof(/obj/item/weapon/reagent_containers/food/snacks/customizable/candy)-(/obj/item/weapon/reagent_containers/food/snacks/customizable/candy))
var/obj/item/weapon/reagent_containers/food/snacks/customizable/candy/V = new U
src.food_choices += V
return
+6
View File
@@ -20,6 +20,12 @@
result = /obj/item/weapon/reagent_containers/food/snacks/telebacon
/datum/recipe/bun
items = list(
/obj/item/weapon/reagent_containers/food/snacks/dough
)
result = /obj/item/weapon/reagent_containers/food/snacks/bun
/datum/recipe/friedegg
reagents = list("sodiumchloride" = 1, "blackpepper" = 1)
items = list(
@@ -9,6 +9,11 @@
var/trash = null
var/slice_path
var/slices_num
var/eatverb
var/wrapped = 0
var/dried_type = null
var/deepfried = 0
//Placeholder for effect that trigger on eating that aren't tied to reagents.
/obj/item/weapon/reagent_containers/food/snacks/proc/On_Consume(var/mob/M)
@@ -128,9 +133,13 @@
else
usr << "\blue \The [src] was bitten multiple times!"
/obj/item/weapon/reagent_containers/food/snacks/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W,/obj/item/weapon/storage))
..() // -> item/attackby()
/obj/item/weapon/reagent_containers/food/snacks/attackby(obj/item/weapon/W, mob/user)
if(istype(W,/obj/item/weapon/pen))
var/n_name = copytext(sanitize(input(usr, "What would you like to name this dish?", "Food Renaming", null) as text), 1, MAX_NAME_LEN)
if((loc == usr && usr.stat == 0))
name = "[n_name]"
return
if(istype(W,/obj/item/weapon/storage))
..() // -> item/attackby()
if((slices_num <= 0 || !slices_num) || !slice_path)
@@ -1591,7 +1600,7 @@
bitesize = 12
filling_color = "#ADAC7F"
var/wrapped = 0
wrapped = 0
New()
..()
@@ -1632,7 +1641,7 @@
desc = "Just add water!"
icon_state = "monkeycube"
bitesize = 12
var/wrapped = 0
wrapped = 0
New()
..()
@@ -1667,7 +1676,7 @@
desc = "Just add water!"
icon_state = "monkeycube"
bitesize = 12
var/wrapped = 0
wrapped = 0
New()
..()
@@ -1701,7 +1710,7 @@
desc = "Just add water!"
icon_state = "monkeycube"
bitesize = 12
var/wrapped = 0
wrapped = 0
New()
..()
@@ -3131,9 +3140,68 @@
bitesize = 3
///////////////////////////////////////////
// new old food stuff from bs12
///////////////////////////////////////////
////////////////////////////////ICE CREAM///////////////////////////////////
/obj/item/weapon/reagent_containers/food/snacks/icecream
name = "ice cream"
desc = "Delicious ice cream."
icon = 'icons/obj/kitchen.dmi'
icon_state = "icecream_cone"
New()
..()
reagents.add_reagent("nutriment", 1)
reagents.add_reagent("sugar",1)
bitesize = 1
update_icon()
update_icon()
overlays.Cut()
var/image/filling = image('icons/obj/kitchen.dmi', src, "icecream_color")
filling.icon += mix_color_from_reagents(reagents.reagent_list)
overlays += filling
/obj/item/weapon/reagent_containers/food/snacks/icecream/icecreamcone
name = "ice cream cone"
desc = "Delicious ice cream."
icon_state = "icecream_cone"
volume = 500
New()
..()
reagents.add_reagent("nutriment", 2)
reagents.add_reagent("sugar",6)
reagents.add_reagent("ice",2)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/icecream/icecreamcup
name = "chocolate ice cream cone"
desc = "Delicious ice cream."
icon_state = "icecream_cup"
volume = 500
New()
..()
reagents.add_reagent("nutriment", 4)
reagents.add_reagent("sugar",8)
reagents.add_reagent("ice",2)
bitesize = 6
/obj/item/weapon/reagent_containers/food/snacks/cereal
name = "box of cereal"
desc = "A box of cereal."
icon = 'icons/obj/food.dmi'
icon_state = "cereal_box"
bitesize = 2
New()
..()
reagents.add_reagent("nutriment", 30)
/obj/item/weapon/reagent_containers/food/snacks/deepfryholder
name = "Deep Fried Foods Holder Obj"
desc = "If you can see this description the code for the deep fryer fucked up."
icon = 'icons/obj/food.dmi'
icon_state = "deepfried_holder_icon"
bitesize = 2
deepfried = 1
New()
..()
reagents.add_reagent("nutriment", 30)
// Flour + egg = dough
/obj/item/weapon/reagent_containers/food/snacks/flour/attackby(obj/item/weapon/W as obj, mob/user as mob)
@@ -3162,18 +3230,23 @@
reagents.add_reagent("nutriment", 3)
// Dough + rolling pin = flat dough
/obj/item/weapon/reagent_containers/food/snacks/dough/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W,/obj/item/weapon/kitchen/rollingpin))
new /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough(src)
user << "You flatten the dough."
del(src)
/obj/item/weapon/reagent_containers/food/snacks/dough/attackby(obj/item/I, mob/user)
if(istype(I, /obj/item/weapon/kitchen/rollingpin))
if(isturf(loc))
new /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough(loc)
user << "<span class='notice'>You flatten [src].</span>"
qdel(src)
else
user << "<span class='notice'>You need to put [src] on a surface to roll it out!</span>"
else
..()
// slicable into 3xdoughslices
/obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough
name = "flat dough"
desc = "A flattened dough."
desc = "Some flattened dough."
icon = 'icons/obj/food_ingredients.dmi'
icon_state = "flatdough"
icon_state = "flat dough"
slice_path = /obj/item/weapon/reagent_containers/food/snacks/doughslice
slices_num = 3
New()
@@ -3182,7 +3255,7 @@
/obj/item/weapon/reagent_containers/food/snacks/doughslice
name = "dough slice"
desc = "A building block of an impressive dish."
desc = "The building block of an impressive dish."
icon = 'icons/obj/food_ingredients.dmi'
icon_state = "doughslice"
bitesize = 2
@@ -3192,57 +3265,14 @@
/obj/item/weapon/reagent_containers/food/snacks/bun
name = "bun"
desc = "A base for any self-respecting burger."
desc = "The base for any self-respecting burger."
icon = 'icons/obj/food_ingredients.dmi'
icon_state = "bun"
bitesize = 2
New()
..()
reagents.add_reagent("nutriment", 4)
/obj/item/weapon/reagent_containers/food/snacks/bun/attackby(obj/item/weapon/W as obj, mob/user as mob)
// Bun + meatball = burger
if(istype(W,/obj/item/weapon/reagent_containers/food/snacks/meatball))
new /obj/item/weapon/reagent_containers/food/snacks/monkeyburger(src)
user << "You make a burger."
del(W)
del(src)
// Bun + cutlet = hamburger
else if(istype(W,/obj/item/weapon/reagent_containers/food/snacks/cutlet))
new /obj/item/weapon/reagent_containers/food/snacks/monkeyburger(src)
user << "You make a burger."
del(W)
del(src)
// Bun + sausage = hotdog
else if(istype(W,/obj/item/weapon/reagent_containers/food/snacks/sausage))
new /obj/item/weapon/reagent_containers/food/snacks/hotdog(src)
user << "You make a hotdog."
del(W)
del(src)
// Burger + cheese wedge = cheeseburger
/obj/item/weapon/reagent_containers/food/snacks/monkeyburger/attackby(obj/item/weapon/reagent_containers/food/snacks/cheesewedge/W as obj, mob/user as mob)
if(istype(W))// && !istype(src,/obj/item/weapon/reagent_containers/food/snacks/cheesewedge))
new /obj/item/weapon/reagent_containers/food/snacks/cheeseburger(src)
user << "You make a cheeseburger."
del(W)
del(src)
return
else
..()
// Human Burger + cheese wedge = cheeseburger
/obj/item/weapon/reagent_containers/food/snacks/human/burger/attackby(obj/item/weapon/reagent_containers/food/snacks/cheesewedge/W as obj, mob/user as mob)
if(istype(W))
new /obj/item/weapon/reagent_containers/food/snacks/cheeseburger(src)
user << "You make a cheeseburger."
del(W)
del(src)
return
else
..()
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/taco
name = "taco"