mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-07-18 19:39:42 +01:00
New Cell Charger, Suit Storage, Drying Rack and Smartfridge Sprites (#17390)
* New Cell Charger, Suit Storage and Smartfridge Sprites title, ported from /tg/ * Update wezzy-RandomBetterSprats.yml * oops * merge conflict * konyang shit
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
name = "heavy-duty cell charger"
|
||||
desc = "A much more powerful version of the standard recharger that is specifically designed to charge power cells."
|
||||
desc_info = "This can be moved by using a wrench. You will need to wrench it again when and where you want to use it. Requires electricity to function."
|
||||
icon = 'icons/obj/power.dmi'
|
||||
icon = 'icons/obj/machinery/cell_charger.dmi'
|
||||
icon_state = "ccharger"
|
||||
anchored = TRUE
|
||||
idle_power_usage = 5
|
||||
|
||||
@@ -6,8 +6,8 @@
|
||||
/obj/machinery/suit_storage_unit
|
||||
name = "Suit Storage Unit"
|
||||
desc = "An industrial U-Stor-It Storage unit designed to accomodate all kinds of space suits. Its on-board equipment also allows the user to decontaminate the contents through a UV-ray purging cycle. There's a warning label dangling from the control pad, reading \"STRICTLY NO BIOLOGICALS IN THE CONFINES OF THE UNIT\"."
|
||||
icon = 'icons/obj/suit_storage.dmi'
|
||||
icon_state = "base"
|
||||
icon = 'icons/obj/machinery/suit_storage.dmi'
|
||||
icon_state = "classic"
|
||||
anchored = TRUE
|
||||
density = TRUE
|
||||
var/mob/living/carbon/human/OCCUPANT
|
||||
@@ -49,29 +49,35 @@
|
||||
cut_overlays()
|
||||
|
||||
if(panelopen)
|
||||
add_overlay("panel")
|
||||
if(isUV)
|
||||
if(issuperUV)
|
||||
add_overlay("super")
|
||||
else if(OCCUPANT)
|
||||
add_overlay("uvhuman")
|
||||
add_overlay("[initial(icon_state)]_panel")
|
||||
if(isopen)
|
||||
add_overlay("[initial(icon_state)]_open")
|
||||
if(SUIT)
|
||||
add_overlay("[initial(icon_state)]_suit")
|
||||
if(HELMET)
|
||||
add_overlay("[initial(icon_state)]_helm")
|
||||
if(MASK)
|
||||
add_overlay("[initial(icon_state)]_storage")
|
||||
if(!isbroken && ispowered)
|
||||
if(isopen)
|
||||
add_overlay("[initial(icon_state)]_lights_open")
|
||||
else
|
||||
add_overlay("uv")
|
||||
if(!isopen)
|
||||
add_overlay("closed")
|
||||
else if(isopen)
|
||||
if(isbroken)
|
||||
add_overlay("broken")
|
||||
if(isUV)
|
||||
if(issuperUV)
|
||||
add_overlay("[initial(icon_state)]_super")
|
||||
add_overlay("[initial(icon_state)]_lights_red")
|
||||
else
|
||||
add_overlay("[initial(icon_state)]_lights_closed")
|
||||
//top lights
|
||||
if(isUV)
|
||||
if(issuperUV)
|
||||
add_overlay("[initial(icon_state)]_uvstrong")
|
||||
else
|
||||
add_overlay("[initial(icon_state)]_uv")
|
||||
else if(islocked)
|
||||
add_overlay("[initial(icon_state)]_locked")
|
||||
else
|
||||
add_overlay("open")
|
||||
if(SUIT)
|
||||
add_overlay("suit")
|
||||
if(HELMET)
|
||||
add_overlay("helm")
|
||||
if(MASK)
|
||||
add_overlay("storage")
|
||||
else if(OCCUPANT)
|
||||
add_overlay("human")
|
||||
add_overlay("[initial(icon_state)]_ready")
|
||||
|
||||
/obj/machinery/suit_storage_unit/power_change()
|
||||
..()
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/obj/item/cell
|
||||
name = "power cell"
|
||||
desc = "A rechargable electrochemical power cell."
|
||||
icon = 'icons/obj/power.dmi'
|
||||
icon = 'icons/obj/machinery/cell_charger.dmi'
|
||||
icon_state = "cell"
|
||||
item_state = "cell"
|
||||
origin_tech = list(TECH_POWER = 1)
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
*/
|
||||
/obj/machinery/smartfridge
|
||||
name = "\improper SmartFridge"
|
||||
icon = 'icons/obj/vending.dmi'
|
||||
icon = 'icons/obj/machinery/smartfridge.dmi'
|
||||
icon_state = "smartfridge"
|
||||
layer = 2.9
|
||||
density = 1
|
||||
@@ -10,11 +10,9 @@
|
||||
idle_power_usage = 5
|
||||
active_power_usage = 100
|
||||
flags = NOREACT
|
||||
opacity = FALSE
|
||||
var/ui_sort_alphabetically = TRUE
|
||||
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/item_quants = list()
|
||||
var/seconds_electrified = 0;
|
||||
var/shoot_inventory = 0
|
||||
@@ -30,6 +28,9 @@
|
||||
var/cooling_temperature = T0C + 5 //Best temp for soda.
|
||||
var/heating_temperature = T0C + 57 //Best temp for coffee.
|
||||
|
||||
// what icon overlay to use to show its contents - set to NULL if no contents.
|
||||
var/contents_path = "-plant"
|
||||
|
||||
component_types = list(
|
||||
/obj/item/circuitboard/smartfridge,
|
||||
/obj/item/stock_parts/manipulator,
|
||||
@@ -91,6 +92,7 @@
|
||||
|
||||
for(var/obj/item/reagent_containers/food/snacks/grown/g in contents)
|
||||
item_quants[g.name]++
|
||||
update_overlays()
|
||||
|
||||
/obj/machinery/smartfridge/Initialize()
|
||||
. = ..()
|
||||
@@ -98,6 +100,7 @@
|
||||
wires = new/datum/wires/smartfridge/secure(src)
|
||||
else
|
||||
wires = new(src)
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/smartfridge/Destroy()
|
||||
qdel(wires)
|
||||
@@ -112,10 +115,7 @@
|
||||
/obj/machinery/smartfridge/foodheater
|
||||
name = "\improper SmartHeater"
|
||||
desc = "To keep the food warm!"
|
||||
icon_state = "smartfridge_food"
|
||||
icon_on = "smartfridge_food"
|
||||
icon_off = "smartfridge_food-off"
|
||||
opacity = FALSE
|
||||
contents_path = "-food"
|
||||
accepted_items = list(/obj/item/reagent_containers/food/snacks)
|
||||
|
||||
/obj/machinery/smartfridge/foodheater/abandoned
|
||||
@@ -123,28 +123,19 @@
|
||||
desc = "Used to keep food nice and warm in the past, now it is all dirty, and doesn't look like it'll ever run again."
|
||||
use_power = 0
|
||||
|
||||
/obj/machinery/smartfridge/foodheater/buffet
|
||||
name = "buffet trays"
|
||||
icon = 'icons/obj/structure/urban/restaurant.dmi'
|
||||
icon_state = "buffet"
|
||||
icon_off = "buffet"
|
||||
|
||||
/obj/machinery/smartfridge/foodheater/buffet/Initialize()
|
||||
. = ..()
|
||||
icon_on = "buffet[rand(1, 4)]"
|
||||
|
||||
/obj/machinery/smartfridge/seeds
|
||||
name = "\improper MegaSeed Storage"
|
||||
desc = "When you need seeds fast!"
|
||||
icon = 'icons/obj/vending.dmi'
|
||||
icon_state = "nutrimat"
|
||||
icon_on = "nutrimat"
|
||||
icon_off = "nutrimat-off"
|
||||
opacity = TRUE
|
||||
contents_path = null
|
||||
accepted_items = list(/obj/item/seeds)
|
||||
|
||||
/obj/machinery/smartfridge/secure/extract
|
||||
name = "\improper Slime Extract Storage"
|
||||
desc = "A refrigerated storage unit for slime extracts"
|
||||
contents_path = "-slime"
|
||||
req_access = list(access_research)
|
||||
accepted_items = list(/obj/item/slime_extract)
|
||||
|
||||
@@ -155,8 +146,7 @@
|
||||
/obj/machinery/smartfridge/secure/medbay
|
||||
name = "\improper Refrigerated Chemical 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"
|
||||
contents_path = "-chem"
|
||||
req_one_access = list(access_medical,access_pharmacy)
|
||||
accepted_items = list(/obj/item/reagent_containers/glass,
|
||||
/obj/item/storage/pill_bottle,
|
||||
@@ -169,15 +159,14 @@
|
||||
/obj/machinery/smartfridge/secure/virology
|
||||
name = "\improper Refrigerated Virus Storage"
|
||||
desc = "A refrigerated storage unit for storing viral material."
|
||||
contents_path = "-viro"
|
||||
req_access = list(access_virology)
|
||||
icon_state = "smartfridge_virology"
|
||||
icon_on = "smartfridge_virology"
|
||||
icon_off = "smartfridge_virology-off"
|
||||
accepted_items = list(/obj/item/reagent_containers/glass/beaker/vial)
|
||||
|
||||
/obj/machinery/smartfridge/chemistry
|
||||
name = "\improper Smart Chemical Storage"
|
||||
desc = "A refrigerated storage unit for medicine and chemical storage."
|
||||
contents_path = "-chem"
|
||||
accepted_items = list(/obj/item/reagent_containers/glass,
|
||||
/obj/item/storage/pill_bottle,
|
||||
/obj/item/reagent_containers/pill,
|
||||
@@ -189,10 +178,12 @@
|
||||
/obj/machinery/smartfridge/chemistry/virology
|
||||
name = "\improper Smart Virus Storage"
|
||||
desc = "A refrigerated storage unit for volatile sample storage."
|
||||
contents_path = "-viro"
|
||||
|
||||
/obj/machinery/smartfridge/drinks
|
||||
name = "\improper Drink Showcase"
|
||||
desc = "A refrigerated storage unit for tasty tasty alcohol."
|
||||
contents_path = "-drink"
|
||||
cooling = TRUE
|
||||
accepted_items = list(/obj/item/reagent_containers/glass,
|
||||
/obj/item/reagent_containers/food/drinks,
|
||||
@@ -201,7 +192,10 @@
|
||||
/obj/machinery/smartfridge/drying_rack
|
||||
name = "\improper Drying Rack"
|
||||
desc = "A machine for drying plants."
|
||||
icon_state = "drying_rack"
|
||||
opacity = TRUE
|
||||
accepted_items = list(/obj/item/reagent_containers/food/snacks)
|
||||
contents_path = null
|
||||
|
||||
/obj/machinery/smartfridge/drying_rack/accept_check(var/obj/item/O)
|
||||
if(!..())
|
||||
@@ -224,6 +218,14 @@
|
||||
item_quants[old_name]--
|
||||
return
|
||||
|
||||
/obj/machinery/smartfridge/drying_rack/update_overlays()
|
||||
cut_overlays()
|
||||
if(length(contents))
|
||||
add_overlay("drying_rack_drying")
|
||||
var/list/shown_contents = contents - component_parts
|
||||
if(shown_contents.len)
|
||||
add_overlay("drying_rack_filled")
|
||||
|
||||
/obj/machinery/smartfridge/process()
|
||||
if(stat & (BROKEN|NOPOWER))
|
||||
seconds_electrified = 0
|
||||
@@ -259,9 +261,27 @@
|
||||
|
||||
/obj/machinery/smartfridge/update_icon()
|
||||
if(stat & (BROKEN|NOPOWER))
|
||||
icon_state = icon_off
|
||||
icon_state = "[initial(icon_state)]-off"
|
||||
else
|
||||
icon_state = icon_on
|
||||
icon_state = "[initial(icon_state)]"
|
||||
update_overlays()
|
||||
|
||||
/obj/machinery/smartfridge/proc/update_overlays()
|
||||
cut_overlays()
|
||||
if(panel_open)
|
||||
add_overlay("[initial(icon_state)]-panel")
|
||||
var/list/shown_contents = contents - component_parts
|
||||
if(contents_path && shown_contents.len > 0)
|
||||
var/contents_icon_state
|
||||
switch(shown_contents.len)
|
||||
if(1 to 25)
|
||||
contents_icon_state = "-1"
|
||||
if(26 to 50)
|
||||
contents_icon_state = "-2"
|
||||
if(50 to INFINITY)
|
||||
contents_icon_state = "-3"
|
||||
add_overlay("[initial(icon_state)][contents_path][contents_icon_state]")
|
||||
add_overlay("[initial(icon_state)]-glass[(stat & BROKEN) ? "-broken" : ""]")
|
||||
|
||||
/*******************
|
||||
* Item Adding
|
||||
@@ -271,9 +291,7 @@
|
||||
if(O.isscrewdriver())
|
||||
panel_open = !panel_open
|
||||
user.visible_message("\The [user] [panel_open ? "opens" : "closes"] the maintenance panel of \the [src].", "You [panel_open ? "open" : "close"] the maintenance panel of \the [src].")
|
||||
cut_overlays()
|
||||
if(panel_open)
|
||||
add_overlay(icon_panel)
|
||||
update_icon()
|
||||
return
|
||||
|
||||
if(O.iswrench())
|
||||
@@ -330,6 +348,7 @@
|
||||
O.forceMove(src)
|
||||
item_quants[O.name]++
|
||||
user.visible_message("<b>[user]</b> adds \a [O] to [src].", SPAN_NOTICE("You add [O] to [src]."))
|
||||
update_overlays()
|
||||
return
|
||||
|
||||
if(istype(O, /obj/item/storage))
|
||||
@@ -346,6 +365,7 @@
|
||||
user.visible_message("<b>[user]</b> loads [src] with [P].", SPAN_NOTICE("You load [src] with [P]."))
|
||||
if(length(P.contents) > 0)
|
||||
to_chat(user, SPAN_NOTICE("Some items are refused."))
|
||||
update_overlays()
|
||||
return TRUE
|
||||
to_chat(user, SPAN_NOTICE("[src] smartly refuses [O]."))
|
||||
return TRUE
|
||||
@@ -426,6 +446,7 @@
|
||||
else
|
||||
O.forceMove(loc)
|
||||
i--
|
||||
update_overlays()
|
||||
if(i <= 0)
|
||||
break
|
||||
if("switch_sort_alphabetically")
|
||||
@@ -468,3 +489,21 @@
|
||||
to_chat(usr, SPAN_WARNING("Access denied."))
|
||||
return FALSE
|
||||
return ..()
|
||||
|
||||
// Konyang
|
||||
|
||||
/obj/machinery/smartfridge/foodheater/buffet
|
||||
name = "buffet trays"
|
||||
icon = 'icons/obj/structure/urban/restaurant.dmi'
|
||||
icon_state = "buffet"
|
||||
contents_path = null
|
||||
|
||||
/obj/machinery/smartfridge/foodheater/buffet/Initialize()
|
||||
. = ..()
|
||||
contents_path = "[rand(1, 4)]" // overriding the update icon anyway, so this var is free.
|
||||
|
||||
/obj/machinery/smartfridge/foodheater/buffet/update_icon()
|
||||
if(stat & (BROKEN|NOPOWER))
|
||||
icon_state = "[initial(icon_state)]"
|
||||
else
|
||||
icon_state = "[initial(icon_state)]-[contents_path]"
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
################################
|
||||
# Example Changelog File
|
||||
#
|
||||
# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
|
||||
#
|
||||
# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
|
||||
# When it is, any changes listed below will disappear.
|
||||
#
|
||||
# Valid Prefixes:
|
||||
# bugfix
|
||||
# wip (For works in progress)
|
||||
# tweak
|
||||
# soundadd
|
||||
# sounddel
|
||||
# rscadd (general adding of nice things)
|
||||
# rscdel (general deleting of nice things)
|
||||
# imageadd
|
||||
# imagedel
|
||||
# maptweak
|
||||
# spellcheck (typo fixes)
|
||||
# experiment
|
||||
# balance
|
||||
# admin
|
||||
# backend
|
||||
# security
|
||||
# refactor
|
||||
#################################
|
||||
|
||||
# Your name.
|
||||
author: Wowzewow (Wezzy)
|
||||
|
||||
# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
|
||||
delete-after: True
|
||||
|
||||
# Any changes you've made. See valid prefix list above.
|
||||
# INDENT WITH TWO SPACES. NOT TABS. SPACES.
|
||||
# SCREW THIS UP AND IT WON'T WORK.
|
||||
# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
|
||||
# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
|
||||
changes:
|
||||
- imageadd: "New sprites for the cell charger, suit storage, drying rack and smartfridge."
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 12 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 66 KiB After Width: | Height: | Size: 66 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 9.6 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 72 KiB After Width: | Height: | Size: 71 KiB |
Reference in New Issue
Block a user