/*
* /obj/machinery/computer/hologram_comp - Hologram computer
*
* /obj/machinery/holograp_proj - Hologram projector
*
* /obj/projection - Hologram projection
*
* Used to display a mob with variable skin colour, hair, etc.
*/
/*
* The hologram computer
*/
obj/machinery/computer/hologram_comp
name = "Hologram Computer"
icon = 'stationobjs.dmi'
icon_state = "holo_console0"
var
obj/machinery/hologram_proj/projector = null // the projector object associated with this computer
temp = null // temporary text for interaction window (not used)
lumens = 0.0 // brightness of the hologram skin image
h_r = 245.0 //
h_g = 245.0 // RGB settings for the hologram hair
h_b = 245.0 //
// Create a new computer
// After world has finished loading, located the hologram projector to the north
New()
..()
spawn( 10 )
src.projector = locate(/obj/machinery/hologram_proj, get_step(src.loc, NORTH))
// Interact when double clicked
// Possibly using this instead of usual attack_hand() because its designed to be used before game starts
// However this doesn't seem to be necessary in the current code
DblClick()
if (get_dist(src, usr) > 1)
return 0
src.show_console(usr)
// Render a human male with the current settings
// Set the projector to use the resulting icon
proc/render()
var/icon/I = new /icon( 'human.dmi', "male" )
if (src.lumens >= 0)
I.Blend(rgb(src.lumens, src.lumens, src.lumens), 0)
else
I.Blend(rgb(- src.lumens, -src.lumens, -src.lumens), 1)
I.Blend(new /icon( 'human.dmi', "mouth" ), 3)
var/icon/U = new /icon( 'human.dmi', "diaper" )
U.Blend(U, 3)
U = new /icon( 'mob.dmi', "hair_a" )
U.Blend(rgb(src.h_r, src.h_g, src.h_b), 0)
I.Blend(U, 3)
src.projector.projection.icon = I
// Show interaction window
proc/show_console(var/mob/user)
var/dat
user.machine = src
if (src.temp)
dat = "[temp]
Clear"
else
dat = {"Hologram Status: