mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2026-01-04 14:33:58 +00:00
Port Bay's vendor/smartfridge sprites
This commit is contained in:
committed by
Aronai Sieyes
parent
002f4b6469
commit
a23797182f
@@ -10,9 +10,6 @@
|
||||
density = 1
|
||||
clicksound = "button"
|
||||
|
||||
var/icon_vend //Icon_state when vending
|
||||
var/icon_deny //Icon_state when denying access
|
||||
|
||||
// Power
|
||||
use_power = USE_POWER_IDLE
|
||||
idle_power_usage = 10
|
||||
@@ -181,9 +178,10 @@
|
||||
panel_open = !panel_open
|
||||
to_chat(user, "You [panel_open ? "open" : "close"] the maintenance panel.")
|
||||
playsound(src, W.usesound, 50, 1)
|
||||
overlays.Cut()
|
||||
if(panel_open)
|
||||
overlays += image(icon, "[initial(icon_state)]-panel")
|
||||
add_overlay("[initial(icon_state)]-panel")
|
||||
else
|
||||
cut_overlay("[initial(icon_state)]-panel")
|
||||
|
||||
SSnanoui.update_uis(src) // Speaker switch is on the main UI, not wires UI
|
||||
return
|
||||
@@ -431,7 +429,7 @@
|
||||
if((href_list["vend"]) && (vend_ready) && (!currently_vending))
|
||||
if((!allowed(usr)) && !emagged && scan_id) //For SECURE VENDING MACHINES YEAH
|
||||
to_chat(usr, "<span class='warning'>Access denied.</span>") //Unless emagged of course
|
||||
flick(icon_deny,src)
|
||||
flick("[icon_state]-deny",src)
|
||||
playsound(src.loc, 'sound/machines/deniedbeep.ogg', 50, 0)
|
||||
return
|
||||
|
||||
@@ -468,7 +466,7 @@
|
||||
/obj/machinery/vending/proc/vend(datum/stored_item/vending_product/R, mob/user)
|
||||
if((!allowed(usr)) && !emagged && scan_id) //For SECURE VENDING MACHINES YEAH
|
||||
to_chat(usr, "<span class='warning'>Access denied.</span>") //Unless emagged of course
|
||||
flick(icon_deny,src)
|
||||
flick("[icon_state]-deny",src)
|
||||
playsound(src.loc, 'sound/machines/deniedbeep.ogg', 50, 0)
|
||||
return
|
||||
vend_ready = 0 //One thing at a time!!
|
||||
@@ -499,8 +497,7 @@
|
||||
last_reply = world.time
|
||||
|
||||
use_power(vend_power_usage) //actuators and stuff
|
||||
if(icon_vend) //Show the vending animation if needed
|
||||
flick(icon_vend,src)
|
||||
flick("[icon_state]-vend",src)
|
||||
spawn(vend_delay)
|
||||
R.get_product(get_turf(src))
|
||||
if(has_logs)
|
||||
@@ -678,8 +675,7 @@
|
||||
/obj/machinery/vending/boozeomat
|
||||
name = "Booze-O-Mat"
|
||||
desc = "A technological marvel, supposedly able to mix just the mixture you'd like to drink the moment you ask for one."
|
||||
icon_state = "boozeomat"
|
||||
icon_deny = "boozeomat-deny"
|
||||
icon_state = "fridge_dark"
|
||||
products = list(/obj/item/weapon/reagent_containers/food/drinks/glass2/square = 10,
|
||||
/obj/item/weapon/reagent_containers/food/drinks/glass2/rocks = 10,
|
||||
/obj/item/weapon/reagent_containers/food/drinks/glass2/shake = 10,
|
||||
@@ -754,7 +750,6 @@
|
||||
desc = "A vending machine which dispenses hot drinks."
|
||||
product_ads = "Have a drink!;Drink up!;It's good for you!;Would you like a hot joe?;I'd kill for some coffee!;The best beans in the galaxy.;Only the finest brew for you.;Mmmm. Nothing like a coffee.;I like coffee, don't you?;Coffee helps you work!;Try some tea.;We hope you like the best!;Try our new chocolate!;Admin conspiracies"
|
||||
icon_state = "coffee"
|
||||
icon_vend = "coffee-vend"
|
||||
vend_delay = 34
|
||||
idle_power_usage = 211 //refrigerator - believe it or not, this is actually the average power consumption of a refrigerated vending machine according to NRCan.
|
||||
vend_power_usage = 85000 //85 kJ to heat a 250 mL cup of coffee
|
||||
@@ -782,8 +777,12 @@
|
||||
/obj/machinery/vending/cola
|
||||
name = "Robust Softdrinks"
|
||||
desc = "A softdrink vendor provided by Robust Industries, LLC."
|
||||
<<<<<<< HEAD
|
||||
icon_state = "Cola_Machine" //VOREStation Edit
|
||||
icon_vend = "Cola_Machine-purchase" //VOREStation Edit
|
||||
=======
|
||||
icon_state = "Cola_Machine"
|
||||
>>>>>>> 636062b... Merge pull request #6858 from VOREStation/pol-bayvend
|
||||
product_slogans = "Robust Softdrinks: More robust than a toolbox to the head!"
|
||||
product_ads = "Refreshing!;Hope you're thirsty!;Over 1 million drinks sold!;Thirsty? Why not cola?;Please, have a drink!;Drink up!;The best drinks in space."
|
||||
products = list(/obj/item/weapon/reagent_containers/food/drinks/cans/cola = 10,/obj/item/weapon/reagent_containers/food/drinks/cans/space_mountain_wind = 10,
|
||||
@@ -833,7 +832,6 @@
|
||||
desc = "Cartridges for PDAs."
|
||||
product_slogans = "Carts to go!"
|
||||
icon_state = "cart"
|
||||
icon_deny = "cart-deny"
|
||||
req_access = list(access_hop)
|
||||
products = list(/obj/item/weapon/cartridge/medical = 10,/obj/item/weapon/cartridge/engineering = 10,/obj/item/weapon/cartridge/security = 10,
|
||||
/obj/item/weapon/cartridge/janitor = 10,/obj/item/weapon/cartridge/signal/science = 10,/obj/item/device/pda/heads = 10,
|
||||
@@ -875,7 +873,6 @@
|
||||
name = "NanoMed Plus"
|
||||
desc = "Medical drug dispenser."
|
||||
icon_state = "med"
|
||||
icon_deny = "med-deny"
|
||||
product_ads = "Go save some lives!;The best stuff for your medbay.;Only the finest tools.;Natural chemicals!;This stuff saves lives.;Don't you want some?;Ping!"
|
||||
req_access = list(access_medical)
|
||||
products = list(/obj/item/weapon/reagent_containers/glass/bottle/antitoxin = 4,/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline = 4,
|
||||
@@ -903,7 +900,6 @@
|
||||
desc = "A wall-mounted version of the NanoMed."
|
||||
product_ads = "Go save some lives!;The best stuff for your medbay.;Only the finest tools.;Natural chemicals!;This stuff saves lives.;Don't you want some?"
|
||||
icon_state = "wallmed"
|
||||
icon_deny = "wallmed-deny"
|
||||
density = 0 //It is wall-mounted, and thus, not dense. --Superxpdude
|
||||
products = list(/obj/item/stack/medical/bruise_pack = 2,/obj/item/stack/medical/ointment = 2,/obj/item/weapon/reagent_containers/hypospray/autoinjector = 4,/obj/item/device/healthanalyzer = 1)
|
||||
contraband = list(/obj/item/weapon/reagent_containers/syringe/antitoxin = 4,/obj/item/weapon/reagent_containers/syringe/antiviral = 4,/obj/item/weapon/reagent_containers/pill/tox = 1)
|
||||
@@ -914,7 +910,6 @@
|
||||
name = "NanoMed"
|
||||
desc = "A wall-mounted version of the NanoMed, containing only vital first aid equipment."
|
||||
icon_state = "wallmed"
|
||||
icon_deny = "wallmed-deny"
|
||||
density = 0 //It is wall-mounted, and thus, not dense. --Superxpdude
|
||||
products = list(/obj/item/weapon/reagent_containers/hypospray/autoinjector = 5,/obj/item/weapon/reagent_containers/syringe/antitoxin = 3,/obj/item/stack/medical/bruise_pack = 3,
|
||||
/obj/item/stack/medical/ointment =3,/obj/item/device/healthanalyzer = 3)
|
||||
@@ -927,7 +922,6 @@
|
||||
desc = "A security equipment vendor."
|
||||
product_ads = "Crack capitalist skulls!;Beat some heads in!;Don't forget - harm is good!;Your weapons are right here.;Handcuffs!;Freeze, scumbag!;Don't tase me bro!;Tase them, bro.;Why not have a donut?"
|
||||
icon_state = "sec"
|
||||
icon_deny = "sec-deny"
|
||||
req_access = list(access_security)
|
||||
products = list(/obj/item/weapon/handcuffs = 8,/obj/item/weapon/grenade/flashbang = 4,/obj/item/device/flash = 5,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/donut/normal = 12,/obj/item/weapon/storage/box/evidence = 6)
|
||||
@@ -940,8 +934,12 @@
|
||||
desc = "A plant nutrients vendor."
|
||||
product_slogans = "Aren't you glad you don't have to fertilize the natural way?;Now with 50% less stink!;Plants are people too!"
|
||||
product_ads = "We like plants!;Don't you want some?;The greenest thumbs ever.;We like big plants.;Soft soil..."
|
||||
<<<<<<< HEAD
|
||||
icon_state = "nutri"
|
||||
//icon_deny = "nutri-deny" //VOREStation Removal - It doesn't even have an access list, when would it deny people?
|
||||
=======
|
||||
icon_state = "nutri_generic"
|
||||
>>>>>>> 636062b... Merge pull request #6858 from VOREStation/pol-bayvend
|
||||
products = list(/obj/item/weapon/reagent_containers/glass/bottle/eznutrient = 6,/obj/item/weapon/reagent_containers/glass/bottle/left4zed = 4,/obj/item/weapon/reagent_containers/glass/bottle/robustharvest = 3,/obj/item/weapon/plantspray/pests = 20,
|
||||
/obj/item/weapon/reagent_containers/syringe = 5,/obj/item/weapon/reagent_containers/glass/beaker = 4,/obj/item/weapon/storage/bag/plants = 5)
|
||||
premium = list(/obj/item/weapon/reagent_containers/glass/bottle/ammonia = 10,/obj/item/weapon/reagent_containers/glass/bottle/diethylamine = 5)
|
||||
@@ -952,7 +950,7 @@
|
||||
desc = "When you need seeds fast!"
|
||||
product_slogans = "THIS'S WHERE TH' SEEDS LIVE! GIT YOU SOME!;Hands down the best seed selection on the station!;Also certain mushroom varieties available, more for experts! Get certified today!"
|
||||
product_ads = "We like plants!;Grow some crops!;Grow, baby, growww!;Aw h'yeah son!"
|
||||
icon_state = "seeds"
|
||||
icon_state = "seeds_generic"
|
||||
|
||||
products = list(/obj/item/seeds/bananaseed = 3,/obj/item/seeds/berryseed = 3,/obj/item/seeds/carrotseed = 3,/obj/item/seeds/chantermycelium = 3,/obj/item/seeds/chiliseed = 3,
|
||||
/obj/item/seeds/cornseed = 3, /obj/item/seeds/eggplantseed = 3, /obj/item/seeds/potatoseed = 3, /obj/item/seeds/replicapod = 3,/obj/item/seeds/soyaseed = 3,
|
||||
@@ -1044,7 +1042,6 @@
|
||||
name = "YouTool"
|
||||
desc = "Tools for tools."
|
||||
icon_state = "tool"
|
||||
icon_deny = "tool-deny"
|
||||
//req_access = list(access_maint_tunnels) //Maintenance access
|
||||
products = list(/obj/item/stack/cable_coil/random = 10,/obj/item/weapon/tool/crowbar = 5,/obj/item/weapon/weldingtool = 3,/obj/item/weapon/tool/wirecutters = 5,
|
||||
/obj/item/weapon/tool/wrench = 5,/obj/item/device/analyzer = 5,/obj/item/device/t_scanner = 5,/obj/item/weapon/tool/screwdriver = 5,
|
||||
@@ -1059,7 +1056,6 @@
|
||||
name = "Engi-Vend"
|
||||
desc = "Spare tool vending. What? Did you expect some witty description?"
|
||||
icon_state = "engivend"
|
||||
icon_deny = "engivend-deny"
|
||||
req_access = list(access_engine_equip)
|
||||
products = list(/obj/item/device/geiger = 4,/obj/item/clothing/glasses/meson = 2,/obj/item/device/multitool = 4,/obj/item/weapon/cell/high = 10,
|
||||
/obj/item/weapon/airlock_electronics = 10,/obj/item/weapon/module/power_control = 10,
|
||||
@@ -1082,7 +1078,6 @@
|
||||
name = "Robco Tool Maker"
|
||||
desc = "Everything you need for do-it-yourself station repair."
|
||||
icon_state = "engi"
|
||||
icon_deny = "engi-deny"
|
||||
req_access = list(access_engine_equip)
|
||||
products = list(/obj/item/clothing/under/rank/chief_engineer = 4,/obj/item/clothing/under/rank/engineer = 4,/obj/item/clothing/shoes/orange = 4,/obj/item/clothing/head/hardhat = 4,
|
||||
/obj/item/weapon/storage/belt/utility = 4,/obj/item/clothing/glasses/meson = 4,/obj/item/clothing/gloves/yellow = 4, /obj/item/weapon/tool/screwdriver = 12,
|
||||
@@ -1100,7 +1095,6 @@
|
||||
name = "Robotech Deluxe"
|
||||
desc = "All the tools you need to create your own robot army."
|
||||
icon_state = "robotics"
|
||||
icon_deny = "robotics-deny"
|
||||
req_access = list(access_robotics)
|
||||
products = list(/obj/item/clothing/suit/storage/toggle/labcoat = 4,/obj/item/clothing/under/rank/roboticist = 4,/obj/item/stack/cable_coil = 4,/obj/item/device/flash = 4,
|
||||
/obj/item/weapon/cell/high = 12, /obj/item/device/assembly/prox_sensor = 3,/obj/item/device/assembly/signaler = 3,/obj/item/device/healthanalyzer = 3,
|
||||
|
||||
@@ -2,19 +2,26 @@
|
||||
*/
|
||||
/obj/machinery/smartfridge
|
||||
name = "\improper SmartFridge"
|
||||
desc = "For storing all sorts of perishable foods!"
|
||||
icon = 'icons/obj/vending.dmi'
|
||||
icon_state = "smartfridge"
|
||||
icon_state = "fridge_food"
|
||||
var/icon_base = "fridge_food" //Iconstate to base all the broken/deny/etc on
|
||||
var/icon_contents = "food" //Overlay to put on glass to show contents
|
||||
density = 1
|
||||
anchored = 1
|
||||
use_power = USE_POWER_IDLE
|
||||
idle_power_usage = 5
|
||||
active_power_usage = 100
|
||||
flags = NOREACT
|
||||
<<<<<<< HEAD
|
||||
var/max_n_of_items = 999 // Sorry but the BYOND infinite loop detector doesn't look things over 1000. //VOREStation Edit - Non-global
|
||||
//var/global/max_n_of_items = 999 // Sorry but the BYOND infinite loop detector doesn't look things over 1000.
|
||||
var/icon_on = "smartfridge"
|
||||
var/icon_off = "smartfridge-off"
|
||||
var/icon_panel = "smartfridge-panel"
|
||||
=======
|
||||
var/global/max_n_of_items = 999 // Sorry but the BYOND infinite loop detector doesn't look things over 1000.
|
||||
>>>>>>> 636062b... Merge pull request #6858 from VOREStation/pol-bayvend
|
||||
var/list/item_records = list()
|
||||
var/datum/stored_item/currently_vending = null //What we're putting out of the machine.
|
||||
var/seconds_electrified = 0;
|
||||
@@ -27,6 +34,9 @@
|
||||
|
||||
/obj/machinery/smartfridge/secure
|
||||
is_secure = 1
|
||||
icon_state = "fridge_sci"
|
||||
icon_base = "fridge_sci"
|
||||
icon_contents = "chem"
|
||||
|
||||
/obj/machinery/smartfridge/New()
|
||||
..()
|
||||
@@ -50,10 +60,7 @@
|
||||
/obj/machinery/smartfridge/seeds
|
||||
name = "\improper MegaSeed Servitor"
|
||||
desc = "When you need seeds fast!"
|
||||
icon = 'icons/obj/vending.dmi'
|
||||
icon_state = "seeds"
|
||||
icon_on = "seeds"
|
||||
icon_off = "seeds-off"
|
||||
icon_contents = "chem"
|
||||
|
||||
/obj/machinery/smartfridge/seeds/accept_check(var/obj/item/O as obj)
|
||||
if(istype(O,/obj/item/seeds/))
|
||||
@@ -63,6 +70,7 @@
|
||||
/obj/machinery/smartfridge/secure/extract
|
||||
name = "\improper Biological Sample Storage"
|
||||
desc = "A refrigerated storage unit for xenobiological samples."
|
||||
icon_contents = "slime"
|
||||
req_access = list(access_research)
|
||||
|
||||
/obj/machinery/smartfridge/secure/extract/accept_check(var/obj/item/O as obj)
|
||||
@@ -72,12 +80,9 @@
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
|
||||
/obj/machinery/smartfridge/secure/medbay
|
||||
name = "\improper Refrigerated Medicine Storage"
|
||||
desc = "A refrigerated storage unit for storing medicine and chemicals."
|
||||
icon_state = "smartfridge" //To fix the icon in the map editor.
|
||||
icon_on = "smartfridge_chem"
|
||||
req_one_access = list(access_medical,access_chemistry)
|
||||
|
||||
/obj/machinery/smartfridge/secure/medbay/accept_check(var/obj/item/O as obj)
|
||||
@@ -92,10 +97,8 @@
|
||||
/obj/machinery/smartfridge/secure/virology
|
||||
name = "\improper Refrigerated Virus Storage"
|
||||
desc = "A refrigerated storage unit for storing viral material."
|
||||
icon_contents = "drink"
|
||||
req_access = list(access_virology)
|
||||
icon_state = "smartfridge_virology"
|
||||
icon_on = "smartfridge_virology"
|
||||
icon_off = "smartfridge_virology-off"
|
||||
|
||||
/obj/machinery/smartfridge/secure/virology/accept_check(var/obj/item/O as obj)
|
||||
if(istype(O,/obj/item/weapon/reagent_containers/glass/beaker/vial/))
|
||||
@@ -104,23 +107,26 @@
|
||||
return 1
|
||||
return 0
|
||||
|
||||
/obj/machinery/smartfridge/chemistry
|
||||
/obj/machinery/smartfridge/chemistry //Is this used anywhere? It's not secure.
|
||||
name = "\improper Smart Chemical Storage"
|
||||
desc = "A refrigerated storage unit for medicine and chemical storage."
|
||||
icon_contents = "chem"
|
||||
|
||||
/obj/machinery/smartfridge/chemistry/accept_check(var/obj/item/O as obj)
|
||||
if(istype(O,/obj/item/weapon/storage/pill_bottle) || istype(O,/obj/item/weapon/reagent_containers))
|
||||
return 1
|
||||
return 0
|
||||
|
||||
/obj/machinery/smartfridge/chemistry/virology
|
||||
/obj/machinery/smartfridge/chemistry/virology //Same
|
||||
name = "\improper Smart Virus Storage"
|
||||
desc = "A refrigerated storage unit for volatile sample storage."
|
||||
|
||||
|
||||
/obj/machinery/smartfridge/drinks
|
||||
name = "\improper Drink Showcase"
|
||||
desc = "A refrigerated storage unit for tasty tasty alcohol."
|
||||
icon_state = "fridge_drinks"
|
||||
icon_base = "fridge_drinks"
|
||||
icon_contents = "drink"
|
||||
|
||||
/obj/machinery/smartfridge/drinks/accept_check(var/obj/item/O as obj)
|
||||
if(istype(O,/obj/item/weapon/reagent_containers/glass) || istype(O,/obj/item/weapon/reagent_containers/food/drinks) || istype(O,/obj/item/weapon/reagent_containers/food/condiment))
|
||||
@@ -131,9 +137,7 @@
|
||||
desc = "A machine for drying plants."
|
||||
wrenchable = 1
|
||||
icon_state = "drying_rack"
|
||||
icon_on = "drying_rack_on"
|
||||
icon_off = "drying_rack"
|
||||
icon_panel = "drying_rack-panel"
|
||||
icon_base = "drying_rack"
|
||||
|
||||
/obj/machinery/smartfridge/drying_rack/accept_check(var/obj/item/O as obj)
|
||||
if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/))
|
||||
@@ -151,21 +155,22 @@
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/smartfridge/drying_rack/update_icon()
|
||||
overlays.Cut()
|
||||
var/not_working = stat & (BROKEN|NOPOWER)
|
||||
if(not_working)
|
||||
icon_state = icon_off
|
||||
else
|
||||
icon_state = icon_on
|
||||
var/hasItems
|
||||
for(var/datum/stored_item/I in item_records)
|
||||
if(I.get_amount())
|
||||
hasItems = 1
|
||||
break
|
||||
if(hasItems)
|
||||
overlays += "drying_rack_filled"
|
||||
if(!not_working)
|
||||
overlays += "drying_rack_drying"
|
||||
if(not_working)
|
||||
icon_state = "[icon_base]-plant-off"
|
||||
else
|
||||
icon_state = "[icon_base]-plant"
|
||||
else
|
||||
if(not_working)
|
||||
icon_state = "[icon_base]-off"
|
||||
else
|
||||
icon_state = "[icon_base]"
|
||||
|
||||
/obj/machinery/smartfridge/drying_rack/proc/dry()
|
||||
for(var/datum/stored_item/I in item_records)
|
||||
@@ -199,10 +204,40 @@
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/smartfridge/update_icon()
|
||||
cut_overlays()
|
||||
if(stat & (BROKEN|NOPOWER))
|
||||
icon_state = icon_off
|
||||
icon_state = "[icon_base]-off"
|
||||
else
|
||||
icon_state = icon_on
|
||||
icon_state = icon_base
|
||||
|
||||
if(is_secure)
|
||||
add_overlay("[icon_base]-sidepanel")
|
||||
|
||||
if(panel_open)
|
||||
add_overlay("[icon_base]-panel")
|
||||
|
||||
var/is_off = ""
|
||||
if(inoperable())
|
||||
is_off = "-off"
|
||||
|
||||
// Fridge contents
|
||||
switch(contents.len)
|
||||
if(0)
|
||||
add_overlay("empty[is_off]")
|
||||
if(1 to 2)
|
||||
add_overlay("[icon_contents]-1[is_off]")
|
||||
if(3 to 5)
|
||||
add_overlay("[icon_contents]-2[is_off]")
|
||||
if(6 to 8)
|
||||
add_overlay("[icon_contents]-3[is_off]")
|
||||
else
|
||||
add_overlay("[icon_contents]-4[is_off]")
|
||||
|
||||
// Fridge top
|
||||
var/image/top = image(icon, "[icon_base]-top")
|
||||
top.pixel_z = 32
|
||||
top.layer = ABOVE_WINDOW_LAYER
|
||||
add_overlay(top)
|
||||
|
||||
/*******************
|
||||
* Item Adding
|
||||
@@ -213,9 +248,7 @@
|
||||
panel_open = !panel_open
|
||||
user.visible_message("[user] [panel_open ? "opens" : "closes"] the maintenance panel of \the [src].", "You [panel_open ? "open" : "close"] the maintenance panel of \the [src].")
|
||||
playsound(src, O.usesound, 50, 1)
|
||||
overlays.Cut()
|
||||
if(panel_open)
|
||||
overlays += image(icon, icon_panel)
|
||||
update_icon()
|
||||
SSnanoui.update_uis(src)
|
||||
return
|
||||
|
||||
|
||||
Reference in New Issue
Block a user