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:
Wowzewow (Wezzy)
2023-09-25 06:14:10 +08:00
committed by GitHub
parent 6c8d2b6b60
commit 086776cb83
9 changed files with 141 additions and 55 deletions
+1 -1
View File
@@ -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
+29 -23
View File
@@ -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)
+69 -30
View File
@@ -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