mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 10:21:11 +00:00
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4494 316c924e-a436-60f5-8080-3fe189b3f50e
39 lines
1.4 KiB
Plaintext
39 lines
1.4 KiB
Plaintext
/proc/GetColors(hex)
|
|
hex = uppertext(hex)
|
|
var/hi1 = text2ascii(hex, 2)
|
|
var/lo1 = text2ascii(hex, 3)
|
|
var/hi2 = text2ascii(hex, 4)
|
|
var/lo2 = text2ascii(hex, 5)
|
|
var/hi3 = text2ascii(hex, 6)
|
|
var/lo3 = text2ascii(hex, 7)
|
|
return list(((hi1>= 65 ? hi1-55 : hi1-48)<<4) | (lo1 >= 65 ? lo1-55 : lo1-48),
|
|
((hi2 >= 65 ? hi2-55 : hi2-48)<<4) | (lo2 >= 65 ? lo2-55 : lo2-48),
|
|
((hi3 >= 65 ? hi3-55 : hi3-48)<<4) | (lo3 >= 65 ? lo3-55 : lo3-48))
|
|
|
|
/proc/mix_color_from_reagents(var/list/reagent_list)
|
|
if(!reagent_list || !reagent_list.len) return 0
|
|
|
|
var/list/rgbcolor = list(0,0,0)
|
|
var/finalcolor = 0
|
|
for(var/datum/reagent/re in reagent_list) // natural color mixing bullshit/algorithm
|
|
if(!finalcolor)
|
|
rgbcolor = GetColors(re.color)
|
|
finalcolor = re.color
|
|
else
|
|
var/newcolor[3]
|
|
var/prergbcolor[3]
|
|
prergbcolor = rgbcolor
|
|
newcolor = GetColors(re.color)
|
|
|
|
rgbcolor[1] = (prergbcolor[1]+newcolor[1])/2
|
|
rgbcolor[2] = (prergbcolor[2]+newcolor[2])/2
|
|
rgbcolor[3] = (prergbcolor[3]+newcolor[3])/2
|
|
|
|
finalcolor = rgb(rgbcolor[1], rgbcolor[2], rgbcolor[3])
|
|
|
|
return finalcolor
|
|
|
|
// This isn't a perfect color mixing system, the more reagents that are inside,
|
|
// the darker it gets until it becomes absolutely pitch black! I dunno, maybe
|
|
// that's pretty realistic? I don't do a whole lot of color-mixing anyway.
|
|
// If you add brighter colors to it it'll eventually get lighter, though. |