Replaces /image with /mutable_appearance, where appropriate (#26518)

In cases where you're creating an image to use as an overlay, it makes more sense to use a mutable_appearance if you can. The image will create a static appearance for not just the image but also each intermediate step if you change vars along the way. The mutable appearance avoids this unnecessary and expensive process. The only situation that requires an image instead of a mutable_appearance is if the overlay is supposed to be directional. MA's ignore direction while images don't. I dunno why, probably another BYOND-ism.

I added a convenience function, mutable_appearance(), designed to emulate image(). Also went ahead and set the default plane of /mutable_appearance to FLOAT_PLANE because it's fucking 0 by default.

Several overlays that were image() calls were changed to just text strings when I could. overlays += "string" has the same result as overlays += image(icon, "string") and saves a proc call.
This commit is contained in:
MrPerson
2017-04-25 03:15:16 -07:00
committed by AnturK
parent 572696292a
commit ff3f84ab81
151 changed files with 763 additions and 921 deletions
@@ -161,23 +161,15 @@
for(var/Ddir in GLOB.cardinal)
if(entered_dirs & Ddir)
var/image/I
if(GLOB.bloody_footprints_cache["entered-[blood_state]-[Ddir]"])
I = GLOB.bloody_footprints_cache["entered-[blood_state]-[Ddir]"]
else
I = image(icon,"[blood_state]1",dir = Ddir)
GLOB.bloody_footprints_cache["entered-[blood_state]-[Ddir]"] = I
if(I)
add_overlay(I)
var/image/bloodstep_overlay = GLOB.bloody_footprints_cache["entered-[blood_state]-[Ddir]"]
if(!bloodstep_overlay)
GLOB.bloody_footprints_cache["entered-[blood_state]-[Ddir]"] = bloodstep_overlay = image(icon, "[blood_state]1", dir = Ddir)
add_overlay(bloodstep_overlay)
if(exited_dirs & Ddir)
var/image/I
if(GLOB.bloody_footprints_cache["exited-[blood_state]-[Ddir]"])
I = GLOB.bloody_footprints_cache["exited-[blood_state]-[Ddir]"]
else
I = image(icon,"[blood_state]2",dir = Ddir)
GLOB.bloody_footprints_cache["exited-[blood_state]-[Ddir]"] = I
if(I)
add_overlay(I)
var/image/bloodstep_overlay = GLOB.bloody_footprints_cache["exited-[blood_state]-[Ddir]"]
if(!bloodstep_overlay)
GLOB.bloody_footprints_cache["exited-[blood_state]-[Ddir]"] = bloodstep_overlay = image(icon, "[blood_state]2", dir = Ddir)
add_overlay(bloodstep_overlay)
alpha = BLOODY_FOOTPRINT_BASE_ALPHA+bloodiness
+1 -1
View File
@@ -1,4 +1,4 @@
GLOBAL_DATUM_INIT(fire_overlay, /image, image("icon" = 'icons/effects/fire.dmi', "icon_state" = "fire"))
GLOBAL_DATUM_INIT(fire_overlay, /mutable_appearance, mutable_appearance('icons/effects/fire.dmi', "fire"))
GLOBAL_VAR_INIT(rpg_loot_items, FALSE)
// if true, everyone item when created will have its name changed to be
+4 -5
View File
@@ -521,7 +521,7 @@
/obj/item/weapon/storage/crayons/update_icon()
cut_overlays()
for(var/obj/item/toy/crayon/crayon in contents)
add_overlay(image('icons/obj/crayons.dmi',crayon.item_color))
add_overlay(mutable_appearance('icons/obj/crayons.dmi', crayon.item_color))
/obj/item/weapon/storage/crayons/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/toy/crayon))
@@ -667,10 +667,9 @@
icon_state = is_capped ? icon_capped : icon_uncapped
if(use_overlays)
cut_overlays()
var/image/I = image('icons/obj/crayons.dmi',
icon_state = "[is_capped ? "spraycan_cap_colors" : "spraycan_colors"]")
I.color = paint_color
add_overlay(I)
var/mutable_appearance/spray_overlay = mutable_appearance('icons/obj/crayons.dmi', "[is_capped ? "spraycan_cap_colors" : "spraycan_colors"]")
spray_overlay.color = paint_color
add_overlay(spray_overlay)
/obj/item/toy/crayon/spraycan/gang
//desc = "A modified container containing suspicious paint."
+14 -12
View File
@@ -51,7 +51,7 @@ GLOBAL_LIST_EMPTY(PDAs)
var/obj/item/device/paicard/pai = null // A slot for a personal AI device
var/image/photo = null //Scanned photo
var/icon/photo //Scanned photo
var/list/contained_item = list(/obj/item/weapon/pen, /obj/item/toy/crayon, /obj/item/weapon/lipstick, /obj/item/device/flashlight/pen, /obj/item/clothing/mask/cigarette)
var/obj/item/inserted_item //Used for pen, crayon, and lipstick insertion or removal. Same as above.
@@ -82,22 +82,24 @@ GLOBAL_LIST_EMPTY(PDAs)
/obj/item/device/pda/update_icon()
cut_overlays()
var/mutable_appearance/overlay = new()
overlay.pixel_x = overlays_x_offset
if(id)
var/image/I = image(icon_state = "id_overlay", pixel_x = overlays_x_offset)
add_overlay(I)
overlay.icon_state = "id_overlay"
add_overlay(new /mutable_appearance(overlay))
if(inserted_item)
var/image/I = image(icon_state = "insert_overlay", pixel_x = overlays_x_offset)
add_overlay(I)
overlay.icon_state = "insert_overlay"
add_overlay(new /mutable_appearance(overlay))
if(fon)
var/image/I = image(icon_state = "light_overlay", pixel_x = overlays_x_offset)
add_overlay(I)
overlay.icon_state = "light_overlay"
add_overlay(new /mutable_appearance(overlay))
if(pai)
if(pai.pai)
var/image/I = image(icon_state = "pai_overlay", pixel_x = overlays_x_offset)
add_overlay(I)
overlay.icon_state = "pai_overlay"
add_overlay(new /mutable_appearance(overlay))
else
var/image/I = image(icon_state = "pai_off_overlay", pixel_x = overlays_x_offset)
add_overlay(I)
overlay.icon_state = "pai_off_overlay"
add_overlay(new /mutable_appearance(overlay))
/obj/item/device/pda/MouseDrop(obj/over_object, src_location, over_location)
var/mob/M = usr
@@ -633,7 +635,7 @@ GLOBAL_LIST_EMPTY(PDAs)
to_chat(L, "\icon[src] <b>Message from [source.owner] ([source.ownjob]), </b>\"[msg.message]\"[msg.get_photo_ref()] (<a href='byond://?src=\ref[src];choice=Message;skiprefresh=1;target=\ref[source]'>Reply</a>)")
update_icon()
add_overlay(image(icon, icon_alert))
add_overlay(icon_alert)
/obj/item/device/pda/proc/show_to_ghosts(mob/living/user, datum/data_pda_msg/msg,multiple = 0)
for(var/mob/M in GLOB.player_list)
+2 -2
View File
@@ -23,6 +23,7 @@
update_icon() //Whatever happened, update the card's state (icon, name) to match.
/obj/item/device/aicard/update_icon()
cut_overlays()
if(AI)
name = "[initial(name)]- [AI.name]"
if(AI.stat == DEAD)
@@ -30,12 +31,11 @@
else
icon_state = "aicard-full"
if(!AI.control_disabled)
add_overlay(image('icons/obj/aicards.dmi', "aicard-on"))
add_overlay("aicard-on")
AI.cancel_camera()
else
name = initial(name)
icon_state = initial(icon_state)
cut_overlays()
/obj/item/device/aicard/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \
datum/tgui/master_ui = null, datum/ui_state/state = GLOB.hands_state)
@@ -344,8 +344,9 @@
cut_overlays()
set_light(0)
else if(on)
var/image/I = image(icon,"glowstick-glow",color)
add_overlay(I)
var/mutable_appearance/glowstick_overlay = mutable_appearance(icon, "glowstick-glow")
glowstick_overlay.color = color
add_overlay(glowstick_overlay)
item_state = "glowstick-on"
set_light(brightness_on)
else
+1 -1
View File
@@ -493,7 +493,7 @@
/obj/item/projectile/bullet/reusable/lollipop/New()
var/obj/item/weapon/reagent_containers/food/snacks/lollipop/S = new ammo_type(src)
color2 = S.headcolor
var/image/head = image(icon = 'icons/obj/projectiles.dmi', icon_state = "lollipop_2")
var/mutable_appearance/head = mutable_appearance('icons/obj/projectiles.dmi', "lollipop_2")
head.color = color2
add_overlay(head)
+8 -8
View File
@@ -73,18 +73,18 @@
if(hp <= 0)
visible_message("<span class='danger'>[src] breaks into tiny pieces and collapses!</span>")
qdel(src)
var/image/I = image("icon"='icons/effects/effects.dmi', "icon_state"="scorch", "layer"=OBJ_LAYER+0.5)
I.pixel_x = p_x - 1 //offset correction
I.pixel_y = p_y - 1
var/image/bullet_hole = image('icons/effects/effects.dmi', "scorch", OBJ_LAYER + 0.5)
bullet_hole.pixel_x = p_x - 1 //offset correction
bullet_hole.pixel_y = p_y - 1
if(decaltype == DECALTYPE_SCORCH)
I.setDir(pick(NORTH,SOUTH,EAST,WEST))// random scorch design
bullet_hole.setDir(pick(NORTH,SOUTH,EAST,WEST))// random scorch design
if(P.damage >= 20 || istype(P, /obj/item/projectile/beam/practice))
I.setDir(pick(NORTH,SOUTH,EAST,WEST))
bullet_hole.setDir(pick(NORTH,SOUTH,EAST,WEST))
else
I.icon_state = "light_scorch"
bullet_hole.icon_state = "light_scorch"
else
I.icon_state = "dent"
add_overlay(I)
bullet_hole.icon_state = "dent"
add_overlay(bullet_hole)
return
return -1
@@ -155,7 +155,7 @@
var/mob/living/captured = null
var/obj/item/weapon/gun/energy/chrono_gun/gun = null
var/tickstokill = 15
var/image/mob_underlay = null
var/mutable_appearance/mob_underlay
var/preloaded = 0
var/RPpos = null
@@ -172,7 +172,7 @@
mob_icon.Blend(removing_frame, ICON_MULTIPLY)
cached_icon.Insert(mob_icon, "frame[i]")
mob_underlay = new(cached_icon, "frame1")
mob_underlay = mutable_appearance(cached_icon, "frame1")
update_icon()
desc = initial(desc) + "<br><span class='info'>It appears to contain [target.name].</span>"
@@ -496,11 +496,11 @@ CIGARETTE PACKETS ARE IN FANCY.DM
/obj/item/weapon/lighter/greyscale/update_icon()
cut_overlays()
var/image/I = image(icon,"[initial(icon_state)]_base")
I.appearance_flags = RESET_COLOR //the edging doesn't change color
var/mutable_appearance/base_overlay = mutable_appearance(icon,"[initial(icon_state)]_base")
base_overlay.appearance_flags = RESET_COLOR //the edging doesn't change color
if(lit)
I.icon_state = "[initial(icon_state)]_on"
add_overlay(I)
base_overlay.icon_state = "[initial(icon_state)]_on"
add_overlay(base_overlay)
/obj/item/weapon/lighter/greyscale/ignition_effect(atom/A, mob/user)
. = "<span class='notice'>After some fiddling, [user] manages to light [A] with [src].</span>"
@@ -651,9 +651,9 @@ CIGARETTE PACKETS ARE IN FANCY.DM
screw = 1
to_chat(user, "<span class='notice'>You open the cap on the [src]</span>")
if(super)
add_overlay(image(icon, "vapeopen_med"))
add_overlay("vapeopen_med")
else
add_overlay(image(icon, "vapeopen_low"))
add_overlay("vapeopen_low")
else
screw = 0
to_chat(user, "<span class='notice'>You close the cap on the [src]</span>")
@@ -665,12 +665,12 @@ CIGARETTE PACKETS ARE IN FANCY.DM
cut_overlays()
super = 1
to_chat(user, "<span class='notice'>You increase the voltage in the [src]</span>")
add_overlay(image(icon, "vapeopen_med"))
add_overlay("vapeopen_med")
else
cut_overlays()
super = 0
to_chat(user, "<span class='notice'>You decrease the voltage in the [src]</span>")
add_overlay(image(icon, "vapeopen_low"))
add_overlay("vapeopen_low")
if(screw && emagged)
to_chat(user, "<span class='notice'>The [name] can't be modified!</span>")
@@ -683,7 +683,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
emagged = 1
super = 0
to_chat(user, "<span class='warning'>You maximize the voltage in the [src]</span>")
add_overlay(image(icon, "vapeopen_high"))
add_overlay("vapeopen_high")
var/datum/effect_system/spark_spread/sp = new /datum/effect_system/spark_spread //for effect
sp.set_up(5, 1, src)
sp.start()
+3 -3
View File
@@ -38,10 +38,10 @@
to_chat(user, "<span class='notice'>You twist \the [src] [open ? "closed" : "open"].</span>")
open = !open
if(open)
var/image/colored = image("icon"='icons/obj/items.dmi', "icon_state"="lipstick_uncap_color")
colored.color = colour
var/mutable_appearance/colored_overlay = mutable_appearance(icon, "lipstick_uncap_color")
colored_overlay.color = colour
icon_state = "lipstick_uncap"
add_overlay(colored)
add_overlay(colored_overlay)
else
icon_state = "lipstick"
@@ -16,7 +16,7 @@
/obj/item/weapon/c4/New()
wires = new /datum/wires/explosive/c4(src)
image_overlay = image('icons/obj/grenade.dmi', "plastic-explosive2")
plastic_overlay = mutable_appearance(icon, "plastic-explosive2")
..()
/obj/item/weapon/c4/Destroy()
@@ -92,7 +92,7 @@
message_admins(message,0,1)
log_game("[key_name(user)] planted [name] on [target.name] at [COORD(target)] with [timer] second fuse")
target.add_overlay(image_overlay, 1)
target.add_overlay(plastic_overlay, 1)
to_chat(user, "<span class='notice'>You plant the bomb. Timer counting down from [timer].</span>")
addtimer(CALLBACK(src, .proc/explode), timer * 10)
@@ -103,7 +103,7 @@
if(target)
if(!QDELETED(target))
location = get_turf(target)
target.cut_overlay(image_overlay, TRUE)
target.cut_overlay(plastic_overlay, TRUE)
else
location = get_turf(src)
if(location)
@@ -19,8 +19,8 @@
/obj/item/weapon/grenade/iedcasing/New(loc)
..()
add_overlay(image('icons/obj/grenade.dmi', icon_state = "improvised_grenade_filled"))
add_overlay(image('icons/obj/grenade.dmi', icon_state = "improvised_grenade_wired"))
add_overlay("improvised_grenade_filled")
add_overlay("improvised_grenade_wired")
times = list("5" = 10, "-1" = 20, "[rand(30,80)]" = 50, "[rand(65,180)]" = 20)// "Premature, Dud, Short Fuse, Long Fuse"=[weighting value]
det_time = text2num(pickweight(times))
if(det_time < 0) //checking for 'duds'
@@ -33,13 +33,10 @@
..()
var/obj/item/weapon/reagent_containers/food/drinks/soda_cans/can = locate() in contents
if(can)
var/muh_layer = can.layer
var/muh_plane = can.plane
can.layer = FLOAT_LAYER
can.plane = FLOAT_PLANE
underlays += can
can.layer = muh_layer
can.plane = muh_plane
var/mutable_appearance/can_underlay = new(can)
can_underlay.layer = FLOAT_LAYER
can_underlay.plane = FLOAT_PLANE
underlays += can_underlay
/obj/item/weapon/grenade/iedcasing/attack_self(mob/user) //
@@ -47,7 +44,7 @@
if(clown_check(user))
to_chat(user, "<span class='warning'>You light the [name]!</span>")
active = 1
cut_overlay(image('icons/obj/grenade.dmi', icon_state = "improvised_grenade_filled"), TRUE) //this line make no sense
cut_overlay("improvised_grenade_filled")
icon_state = initial(icon_state) + "_active"
add_fingerprint(user)
var/turf/bombturf = get_turf(src)
@@ -7,7 +7,7 @@
det_time = 10
display_timer = 0
var/atom/target = null
var/image_overlay = null
var/mutable_appearance/plastic_overlay
var/obj/item/device/assembly_holder/nadeassembly = null
var/assemblyattacher
var/directional = FALSE
@@ -15,7 +15,7 @@
var/boom_sizes = list(0, 0, 3)
/obj/item/weapon/grenade/plastic/New()
image_overlay = image('icons/obj/grenade.dmi', "[item_state]2")
plastic_overlay = mutable_appearance(icon, "[item_state]2")
..()
/obj/item/weapon/grenade/plastic/Destroy()
@@ -50,7 +50,7 @@
if(target)
if(!QDELETED(target))
location = get_turf(target)
target.cut_overlay(image_overlay, TRUE)
target.cut_overlay(plastic_overlay, TRUE)
else
location = get_turf(src)
if(location)
@@ -111,7 +111,7 @@
message_admins("[ADMIN_LOOKUPFLW(user)] planted [name] on [target.name] at [ADMIN_COORDJMP(target)] with [det_time] second fuse",0,1)
log_game("[key_name(user)] planted [name] on [target.name] at [COORD(src)] with [det_time] second fuse")
target.add_overlay(image_overlay, 1)
target.add_overlay(plastic_overlay, 1)
if(!nadeassembly)
to_chat(user, "<span class='notice'>You plant the bomb. Timer counting down from [det_time].</span>")
addtimer(CALLBACK(src, .proc/prime), det_time*10)
@@ -71,7 +71,7 @@
/obj/item/weapon/nullrod/staff/worn_overlays(isinhands)
. = list()
if(isinhands)
. += image(layer = MOB_LAYER+0.01, icon = 'icons/effects/effects.dmi', icon_state = "[shield_icon]")
. += mutable_appearance('icons/effects/effects.dmi', shield_icon, MOB_LAYER + 0.01)
/obj/item/weapon/nullrod/staff/blue
name = "blue holy staff"
@@ -162,5 +162,5 @@
src.cut_overlays()
if(!tank)
return
src.add_overlay(image('icons/obj/pneumaticCannon.dmi', "[tank.icon_state]"))
add_overlay(tank.icon_state)
src.update_icon()
@@ -334,14 +334,14 @@
/obj/item/weapon/storage/bag/tray/proc/rebuild_overlays()
cut_overlays()
for(var/obj/item/I in contents)
add_overlay(image("icon" = I.icon, "icon_state" = I.icon_state, "layer" = -1))
add_overlay(mutable_appearance(I.icon, I.icon_state))
/obj/item/weapon/storage/bag/tray/remove_from_storage(obj/item/W as obj, atom/new_location)
..()
rebuild_overlays()
/obj/item/weapon/storage/bag/tray/handle_item_insertion(obj/item/I, prevent_warning = 0)
add_overlay(image("icon" = I.icon, "icon_state" = I.icon_state, "layer" = -1))
add_overlay(mutable_appearance(I.icon, I.icon_state))
. = ..()
@@ -38,7 +38,7 @@
. = ..()
if(illustration)
cut_overlays()
add_overlay(image('icons/obj/storage.dmi', "[illustration]"))
add_overlay(illustration)
/obj/item/weapon/storage/box/attack_self(mob/user)
..()
@@ -141,12 +141,15 @@
add_overlay("[icon_state]_open")
var/i = contents.len
for(var/C in contents)
var/mutable_appearance/inserted_overlay = mutable_appearance(icon)
inserted_overlay.pixel_x = 1 * (i - 1)
if(istype(C, /obj/item/weapon/lighter/greyscale))
add_overlay(image(icon = src.icon, icon_state = "lighter_in", pixel_x = 1 * (i -1)))
inserted_overlay.icon_state = "lighter_in"
else if(istype(C, /obj/item/weapon/lighter))
add_overlay(image(icon = src.icon, icon_state = "zippo_in", pixel_x = 1 * (i -1)))
inserted_overlay.icon_state = "zippo_in"
else
add_overlay(image(icon = src.icon, icon_state = "cigarette", pixel_x = 1 * (i -1)))
inserted_overlay.icon_state = "cigarette"
add_overlay(inserted_overlay)
i--
else
cut_overlays()
@@ -247,13 +250,14 @@
spawn_type = /obj/item/clothing/mask/cigarette/cigar
/obj/item/weapon/storage/fancy/cigarettes/cigars/update_icon()
cut_overlays()
if(fancy_open)
cut_overlays()
add_overlay("[icon_state]_open")
var/mutable_appearance/cigar_overlay = mutable_appearance(icon, icon_type)
for(var/c = contents.len, c >= 1, c--)
add_overlay(image(icon = src.icon, icon_state = icon_type, pixel_x = 4 * (c -1)))
cigar_overlay.pixel_x = 4 * (c - 1)
add_overlay(cigar_overlay)
else
cut_overlays()
icon_state = "cigarcase"
/obj/item/weapon/storage/fancy/cigarettes/cigars/cohiba
@@ -94,7 +94,7 @@
else if ((src.code == src.l_code) && (src.l_set == 1))
src.locked = 0
cut_overlays()
add_overlay(image('icons/obj/storage.dmi', icon_opened))
add_overlay(icon_opened)
src.code = null
else
src.code = "ERROR"
@@ -29,7 +29,7 @@
..()
cut_overlays()
if(has_latches)
add_overlay(image('icons/obj/storage.dmi', "[latches]"))
add_overlay(latches)
/obj/item/weapon/storage/toolbox/suicide_act(mob/user)
@@ -370,7 +370,7 @@
cut_overlays()
if(reagents.total_volume)
var/image/filling = image('icons/obj/reagentfillings.dmi',icon_state = "backpack-10")
var/mutable_appearance/filling = mutable_appearance('icons/obj/reagentfillings.dmi', "backpack-10")
var/percent = round((reagents.total_volume / volume) * 100)
switch(percent)
@@ -388,7 +388,7 @@
. = list()
//inhands + reagent_filling
if(!isinhands && reagents.total_volume)
var/image/filling = image('icons/obj/reagentfillings.dmi',icon_state = "backpackmob-10")
var/mutable_appearance/filling = mutable_appearance('icons/obj/reagentfillings.dmi', "backpackmob-10")
var/percent = round((reagents.total_volume / volume) * 100)
switch(percent)
+1 -1
View File
@@ -148,7 +148,7 @@
///// ACID
GLOBAL_DATUM_INIT(acid_overlay, /image, image("icon" = 'icons/effects/effects.dmi', "icon_state" = "acid"))
GLOBAL_DATUM_INIT(acid_overlay, /mutable_appearance, mutable_appearance('icons/effects/effects.dmi', "acid"))
//the obj's reaction when touched by acid
/obj/acid_act(acidpwr, acid_volume)
@@ -12,11 +12,7 @@
canSmoothWith = null
buildstacktype = null
flags = NODECONSTRUCT
var/image/nest_overlay
/obj/structure/bed/nest/New()
nest_overlay = image('icons/mob/alien.dmi', "nestoverlay", layer=LYING_MOB_LAYER)
return ..()
var/static/mutable_appearance/nest_overlay = mutable_appearance('icons/mob/alien.dmi', "nestoverlay", LYING_MOB_LAYER)
/obj/structure/bed/nest/user_unbuckle_mob(mob/living/buckled_mob, mob/living/user)
if(has_buckled_mobs())
@@ -145,11 +145,11 @@
obj_integrity = 70
max_integrity = 70
buildstackamount = 2
var/image/armrest = null
var/mutable_appearance/armrest
item_chair = null
/obj/structure/chair/comfy/Initialize()
armrest = image("icons/obj/chairs.dmi", "comfychair_armrest")
armrest = mutable_appearance('icons/obj/chairs.dmi', "comfychair_armrest")
armrest.layer = ABOVE_MOB_LAYER
return ..()
@@ -8,7 +8,7 @@
/obj/structure/chair/e_chair/New()
..()
add_overlay(image('icons/obj/chairs.dmi', src, "echair_over", MOB_LAYER + 1))
add_overlay(mutable_appearance('icons/obj/chairs.dmi', "echair_over", MOB_LAYER + 1))
/obj/structure/chair/e_chair/attackby(obj/item/weapon/W, mob/user, params)
if(istype(W, /obj/item/weapon/wrench))
+4 -2
View File
@@ -7,7 +7,7 @@
anchored = 0
density = 1
opacity = 0
var/case_type = null
var/case_type = ""
var/gun_category = /obj/item/weapon/gun
var/open = 1
var/capacity = 4
@@ -25,8 +25,10 @@
/obj/structure/guncase/update_icon()
cut_overlays()
if(case_type && LAZYLEN(contents))
var/mutable_appearance/gun_overlay = mutable_appearance(icon, case_type)
for(var/i in 1 to contents.len)
add_overlay(image(icon = src.icon, icon_state = "[case_type]", pixel_x = 3 * (i - 1) ))
gun_overlay.pixel_x = 3 * (i - 1)
add_overlay(gun_overlay)
if(open)
add_overlay("[icon_state]_open")
else
@@ -143,21 +143,21 @@
/obj/structure/transit_tube/proc/create_tube_overlay(direction, shift_dir)
var/image/I
var/image/tube_overlay = new(dir = direction)
if(shift_dir)
I = image(loc = src, icon_state = "decorative_diag", dir = direction)
tube_overlay.icon_state = "decorative_diag"
switch(shift_dir)
if(NORTH)
I.pixel_y = 32
tube_overlay.pixel_y = 32
if(SOUTH)
I.pixel_y = -32
tube_overlay.pixel_y = -32
if(EAST)
I.pixel_x = 32
tube_overlay.pixel_x = 32
if(WEST)
I.pixel_x = -32
tube_overlay.pixel_x = -32
else
I = image(loc = src, icon_state = "decorative", dir = direction)
add_overlay(I)
tube_overlay.icon_state = "decorative"
add_overlay(tube_overlay)
+1 -1
View File
@@ -239,7 +239,7 @@
qdel(mymist)
if(on)
add_overlay(image('icons/obj/watercloset.dmi', src, "water", MOB_LAYER + 1, dir))
add_overlay(mutable_appearance('icons/obj/watercloset.dmi', "water", MOB_LAYER + 1))
if(watertemp == "freezing")
return
if(!ismist)
+3 -3
View File
@@ -18,7 +18,7 @@
var/fulltile = 0
var/glass_type = /obj/item/stack/sheet/glass
var/glass_amount = 1
var/image/crack_overlay
var/static/mutable_appearance/crack_overlay = mutable_appearance('icons/obj/structures.dmi')
var/list/debris = list()
can_be_unanchored = 1
resistance_flags = ACID_PROOF
@@ -361,10 +361,10 @@
if(smooth)
queue_smooth(src)
cut_overlay(crack_overlay)
cut_overlays()
if(ratio > 75)
return
crack_overlay = image('icons/obj/structures.dmi',"damage[ratio]",-(layer+0.1))
crack_overlay.icon_state = "damage[ratio]"
add_overlay(crack_overlay)
/obj/structure/window/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)