Porting Goofconomy & co.
This commit is contained in:
@@ -26,77 +26,15 @@
|
||||
/obj/item/storage/box/donkpockets = 2)
|
||||
|
||||
refill_canister = /obj/item/vending_refill/snack
|
||||
var/chef_compartment_access = "28" //ACCESS_KITCHEN
|
||||
canload_access_list = list(ACCESS_KITCHEN)
|
||||
default_price = 60
|
||||
extra_price = 160
|
||||
payment_department = ACCOUNT_SRV
|
||||
input_display_header = "Chef's Food Selection"
|
||||
|
||||
/obj/item/vending_refill/snack
|
||||
machine_name = "Getmore Chocolate Corp"
|
||||
|
||||
/obj/machinery/vending/snack/attackby(obj/item/W, mob/user, params)
|
||||
if(istype(W, /obj/item/reagent_containers/food/snacks))
|
||||
if(!compartment_access_check(user))
|
||||
return
|
||||
var/obj/item/reagent_containers/food/snacks/S = W
|
||||
if(!S.junkiness)
|
||||
if(!iscompartmentfull(user))
|
||||
if(!user.transferItemToLoc(W, src))
|
||||
return
|
||||
food_load(W)
|
||||
to_chat(user, "<span class='notice'>You insert [W] into [src]'s chef compartment.</span>")
|
||||
else
|
||||
to_chat(user, "<span class='notice'>[src]'s chef compartment does not accept junk food.</span>")
|
||||
|
||||
else if(istype(W, /obj/item/storage/bag/tray))
|
||||
if(!compartment_access_check(user))
|
||||
return
|
||||
var/obj/item/storage/T = W
|
||||
var/loaded = 0
|
||||
var/denied_items = 0
|
||||
for(var/obj/item/reagent_containers/food/snacks/S in T.contents)
|
||||
if(iscompartmentfull(user))
|
||||
break
|
||||
if(!S.junkiness)
|
||||
SEND_SIGNAL(T, COMSIG_TRY_STORAGE_TAKE, S, src, TRUE)
|
||||
food_load(S)
|
||||
loaded++
|
||||
else
|
||||
denied_items++
|
||||
if(denied_items)
|
||||
to_chat(user, "<span class='notice'>[src] refuses some items.</span>")
|
||||
if(loaded)
|
||||
to_chat(user, "<span class='notice'>You insert [loaded] dishes into [src]'s chef compartment.</span>")
|
||||
updateUsrDialog()
|
||||
return
|
||||
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/machinery/vending/snack/Destroy()
|
||||
for(var/obj/item/reagent_containers/food/snacks/S in contents)
|
||||
S.forceMove(get_turf(src))
|
||||
return ..()
|
||||
|
||||
/obj/machinery/vending/snack/proc/compartment_access_check(user)
|
||||
req_access_txt = chef_compartment_access
|
||||
if(!allowed(user) && !(obj_flags & EMAGGED) && scan_id)
|
||||
to_chat(user, "<span class='warning'>[src]'s chef compartment blinks red: Access denied.</span>")
|
||||
req_access_txt = "0"
|
||||
return 0
|
||||
req_access_txt = "0"
|
||||
return 1
|
||||
|
||||
/obj/machinery/vending/snack/proc/iscompartmentfull(mob/user)
|
||||
if(contents.len >= 30) // no more than 30 dishes can fit inside
|
||||
to_chat(user, "<span class='warning'>[src]'s chef compartment is full.</span>")
|
||||
return 1
|
||||
return 0
|
||||
|
||||
/obj/machinery/vending/snack/proc/food_load(obj/item/reagent_containers/food/snacks/S)
|
||||
if(dish_quants[S.name])
|
||||
dish_quants[S.name]++
|
||||
else
|
||||
dish_quants[S.name] = 1
|
||||
sortList(dish_quants)
|
||||
|
||||
/obj/machinery/vending/snack/random
|
||||
name = "\improper Random Snackies"
|
||||
icon_state = "random_snack"
|
||||
|
||||
Reference in New Issue
Block a user