mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-30 07:27:57 +01:00
Removes the need to make handholes for jumpsuit sprites (#19058)
* Handholes were kinda cringe * A mildly overengineered solution * Deconflict * Lobby gloves fix
This commit is contained in:
@@ -823,6 +823,9 @@
|
||||
else
|
||||
preview_icon.Blend(rgb(-s_tone, -s_tone, -s_tone), ICON_SUBTRACT)
|
||||
|
||||
var/icon/hands_icon = icon(preview_icon)
|
||||
hands_icon.Blend(icon('icons/mob/clothing/masking_helpers.dmi', "hands_mask"), ICON_MULTIPLY)
|
||||
|
||||
// Body accessory
|
||||
if(current_species && (current_species.bodyflags & HAS_BODY_ACCESSORY))
|
||||
var/icon
|
||||
@@ -969,6 +972,8 @@
|
||||
socks_s = new/icon(u3_icon, "sk_[U3.icon_state]_s", ICON_OVERLAY)
|
||||
|
||||
var/icon/clothes_s = null
|
||||
var/has_gloves = FALSE
|
||||
|
||||
if(job_support_low & JOB_ASSISTANT) //This gives the preview icon clothes depending on which job(if any) is set to 'high'
|
||||
clothes_s = new /icon('icons/mob/clothing/under/color.dmi', "grey_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
@@ -1006,8 +1011,9 @@
|
||||
if(JOB_BOTANIST)
|
||||
clothes_s = new /icon('icons/mob/clothing/under/civilian.dmi', "hydroponics_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/hands.dmi', "ggloves"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/hands.dmi', "ggloves"), ICON_OVERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "apron"), ICON_OVERLAY)
|
||||
has_gloves = TRUE
|
||||
if(prob(1))
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/head.dmi', "nymph"), ICON_OVERLAY)
|
||||
switch(backbag)
|
||||
@@ -1057,7 +1063,8 @@
|
||||
if(JOB_QUARTERMASTER)
|
||||
clothes_s = new /icon('icons/mob/clothing/under/cargo.dmi', "qm_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "brown"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/hands.dmi', "bgloves"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/hands.dmi', "bgloves"), ICON_OVERLAY)
|
||||
has_gloves = TRUE
|
||||
if(prob(1))
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "poncho"), ICON_OVERLAY)
|
||||
switch(backbag)
|
||||
@@ -1070,7 +1077,8 @@
|
||||
if(JOB_CARGOTECH)
|
||||
clothes_s = new /icon('icons/mob/clothing/under/cargo.dmi', "cargo_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/hands.dmi', "bgloves"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/hands.dmi', "bgloves"), ICON_OVERLAY)
|
||||
has_gloves = TRUE
|
||||
if(prob(1))
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/head.dmi', "flat_cap"), ICON_OVERLAY)
|
||||
switch(backbag)
|
||||
@@ -1083,7 +1091,8 @@
|
||||
if(JOB_MINER)
|
||||
clothes_s = new /icon('icons/mob/clothing/under/cargo.dmi', "explorer_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "explorer"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/hands.dmi', "bgloves"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/hands.dmi', "bgloves"), ICON_OVERLAY)
|
||||
has_gloves = TRUE
|
||||
if(prob(1))
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/head.dmi', "bearpelt"), ICON_OVERLAY)
|
||||
switch(backbag)
|
||||
@@ -1126,10 +1135,11 @@
|
||||
if(JOB_MIME)
|
||||
clothes_s = new /icon('icons/mob/clothing/under/civilian.dmi', "mime_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/hands.dmi', "lgloves"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/hands.dmi', "lgloves"), ICON_OVERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/mask.dmi', "mime"), ICON_OVERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/head.dmi', "beret"), ICON_OVERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "suspenders"), ICON_OVERLAY)
|
||||
has_gloves = TRUE
|
||||
switch(backbag)
|
||||
if(2)
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "backpack"), ICON_OVERLAY)
|
||||
@@ -1274,8 +1284,9 @@
|
||||
if(JOB_ROBOTICIST)
|
||||
clothes_s = new /icon('icons/mob/clothing/under/rnd.dmi', "robotics_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/hands.dmi', "bgloves"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/hands.dmi', "bgloves"), ICON_OVERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "labcoat_open"), ICON_OVERLAY)
|
||||
has_gloves = TRUE
|
||||
if(prob(1))
|
||||
clothes_s.Blend(new /icon('icons/mob/inhands/items_righthand.dmi', "toolbox_blue"), ICON_OVERLAY)
|
||||
switch(backbag)
|
||||
@@ -1305,7 +1316,8 @@
|
||||
if(JOB_HOS)
|
||||
clothes_s = new /icon('icons/mob/clothing/under/security.dmi', "hosred_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "jackboots"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/hands.dmi', "bgloves"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/hands.dmi', "bgloves"), ICON_OVERLAY)
|
||||
has_gloves = TRUE
|
||||
if(prob(1))
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/head.dmi', "beret_hos"), ICON_OVERLAY)
|
||||
switch(backbag)
|
||||
@@ -1321,7 +1333,8 @@
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "slippers_worn"), ICON_OVERLAY)
|
||||
else
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "jackboots"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/hands.dmi', "bgloves"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/hands.dmi', "bgloves"), ICON_OVERLAY)
|
||||
has_gloves = TRUE
|
||||
switch(backbag)
|
||||
if(2)
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "securitypack"), ICON_OVERLAY)
|
||||
@@ -1332,11 +1345,12 @@
|
||||
if(JOB_DETECTIVE)
|
||||
clothes_s = new /icon('icons/mob/clothing/under/security.dmi', "detective_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "brown"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/hands.dmi', "bgloves"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/hands.dmi', "bgloves"), ICON_OVERLAY)
|
||||
if(prob(1))
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/mask.dmi', "cigaron"), ICON_OVERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/head.dmi', "detective"), ICON_OVERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "detective"), ICON_OVERLAY)
|
||||
has_gloves = TRUE
|
||||
switch(backbag)
|
||||
if(2)
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "backpack"), ICON_OVERLAY)
|
||||
@@ -1359,9 +1373,10 @@
|
||||
if(JOB_CHIEF)
|
||||
clothes_s = new /icon('icons/mob/clothing/under/engineering.dmi', "chief_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "brown"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/hands.dmi', "bgloves"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/hands.dmi', "bgloves"), ICON_OVERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/belt.dmi', "utility"), ICON_OVERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/head.dmi', "hardhat0_white"), ICON_OVERLAY)
|
||||
has_gloves = TRUE
|
||||
if(prob(1))
|
||||
clothes_s.Blend(new /icon('icons/mob/inhands/items_righthand.dmi', "blueprints"), ICON_OVERLAY)
|
||||
switch(backbag)
|
||||
@@ -1388,8 +1403,9 @@
|
||||
if(JOB_ATMOSTECH)
|
||||
clothes_s = new /icon('icons/mob/clothing/under/engineering.dmi', "atmos_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/hands.dmi', "bgloves"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/hands.dmi', "bgloves"), ICON_OVERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/belt.dmi', "utility"), ICON_OVERLAY)
|
||||
has_gloves = TRUE
|
||||
if(prob(1))
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "firesuit"), ICON_OVERLAY)
|
||||
switch(backbag)
|
||||
@@ -1443,8 +1459,9 @@
|
||||
if(JOB_BLUESHIELD)
|
||||
clothes_s = new /icon('icons/mob/clothing/under/centcom.dmi', "officer_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "jackboots"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/hands.dmi', "swat_gl"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/hands.dmi', "swat_gl"), ICON_OVERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "blueshield"), ICON_OVERLAY)
|
||||
has_gloves = TRUE
|
||||
switch(backbag)
|
||||
if(2)
|
||||
clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "securitypack"), ICON_OVERLAY)
|
||||
@@ -1473,6 +1490,9 @@
|
||||
preview_icon.Blend(socks_s, ICON_OVERLAY)
|
||||
if(clothes_s)
|
||||
preview_icon.Blend(clothes_s, ICON_OVERLAY)
|
||||
if(!has_gloves)
|
||||
preview_icon.Blend(hands_icon, ICON_OVERLAY)
|
||||
|
||||
preview_icon.Blend(face_s, ICON_OVERLAY)
|
||||
preview_icon_front = new(preview_icon, dir = SOUTH)
|
||||
preview_icon_side = new(preview_icon, dir = WEST)
|
||||
|
||||
@@ -165,7 +165,6 @@ GLOBAL_LIST_EMPTY(damage_icon_parts)
|
||||
|
||||
//BASE MOB SPRITE
|
||||
/mob/living/carbon/human/proc/update_body(rebuild_base = FALSE)
|
||||
remove_overlay(BODY_LAYER)
|
||||
remove_overlay(LIMBS_LAYER) // So we don't get the old species' sprite splatted on top of the new one's
|
||||
remove_overlay(UNDERWEAR_LAYER)
|
||||
|
||||
@@ -273,8 +272,6 @@ GLOBAL_LIST_EMPTY(damage_icon_parts)
|
||||
overlays_standing[UNDERWEAR_LAYER] = mutable_appearance(underwear_standing, layer = -UNDERWEAR_LAYER)
|
||||
apply_overlay(UNDERWEAR_LAYER)
|
||||
|
||||
overlays_standing[BODY_LAYER] = standing
|
||||
apply_overlay(BODY_LAYER)
|
||||
//tail
|
||||
update_tail_layer()
|
||||
update_wing_layer()
|
||||
@@ -407,6 +404,26 @@ GLOBAL_LIST_EMPTY(damage_icon_parts)
|
||||
overlays_standing[HAIR_LAYER] = MA
|
||||
apply_overlay(HAIR_LAYER)
|
||||
|
||||
//HANDS OVERLAY
|
||||
//Exists to stop the need to cut holes in jumpsuit sprites
|
||||
/mob/living/carbon/human/proc/update_hands_layer()
|
||||
remove_overlay(HANDS_LAYER)
|
||||
|
||||
var/mutable_appearance/hands_appearance = new()
|
||||
hands_appearance.layer = -HANDS_LAYER
|
||||
|
||||
var/obj/item/organ/external/hand/l_hand = get_limb_by_name("l_hand")
|
||||
var/obj/item/organ/external/hand/right/r_hand = get_limb_by_name("r_hand")
|
||||
|
||||
if(l_hand)
|
||||
hands_appearance.overlays += l_hand.mob_icon
|
||||
if(r_hand)
|
||||
hands_appearance.overlays += r_hand.mob_icon
|
||||
|
||||
overlays_standing[HANDS_LAYER] = hands_appearance
|
||||
|
||||
apply_overlay(HANDS_LAYER)
|
||||
|
||||
//FACIAL HAIR OVERLAY
|
||||
/mob/living/carbon/human/proc/update_fhair()
|
||||
//Reset our facial hair
|
||||
@@ -531,6 +548,7 @@ GLOBAL_LIST_EMPTY(damage_icon_parts)
|
||||
update_inv_wear_pda()
|
||||
UpdateDamageIcon()
|
||||
force_update_limbs()
|
||||
update_hands_layer()
|
||||
update_tail_layer()
|
||||
update_wing_layer()
|
||||
update_halo_layer()
|
||||
|
||||
Reference in New Issue
Block a user