[READY] Adds alpha masking helper, which cryo now uses (#44281)

Fixes #40922
Changelog

cl
fix: Icons will no longer extend past cryo.
imagedel: Xenos and monkeys no longer have snowflake icons for cryo.
/cl
This commit is contained in:
nicbn
2019-06-21 19:47:41 -03:00
committed by oranges
parent b7264de8d9
commit 8672a8010b
5 changed files with 62 additions and 35 deletions

View File

@@ -1200,3 +1200,32 @@ GLOBAL_LIST_INIT(freon_color_matrix, list("#2E5E69", "#60A2A8", "#A1AFB1", rgb(0
var/icon/I = getFlatIcon(thing)
return icon2html(I, target)
//If you are using icons, consider using /icon/UseAlphaMask instead
/proc/apply_alpha_mask(image/target, image/mask)
var/target_old_color = target.color
var/target_old_blend_mode = target.blend_mode
var/target_old_appearance_flags = target.appearance_flags
var/mask_old_color = mask.color
var/mask_old_appearance_flags = mask.appearance_flags
target.color = list(0,0,0,0, 0,0,0,0, 0,0,0,0, 1,0,0,0, 0,0,0,1)
target.blend_mode = BLEND_MULTIPLY
target.appearance_flags |= KEEP_TOGETHER
mask.color = list(0,0,0,1, 0,0,0,0, 0,0,0,0, 0,0,0,0, 1,1,1,0)
mask.appearance_flags |= KEEP_TOGETHER
var/image/together = new()
together.appearance_flags |= KEEP_TOGETHER
mask.add_overlay(target)
target.color = target_old_color
together.overlays = list(mask, target)
target.blend_mode = target_old_blend_mode
target.appearance_flags = target_old_appearance_flags
mask.color = mask_old_color
mask.appearance_flags = mask_old_appearance_flags
mask.cut_overlay(target)
return together