Files
Paradise/code/modules/tgui/modules/colour_matrix_tester.dm
T
AffectedArc07andGitHub 7d5a7ad85d Adds colourblind mode and a colour matrix editor (#17933)
* Colourblind mode + Matrix editor

* increase that

* Protanopia filter

* Tritanopia filter

* The SQL part

* Refactor

* you saw nothing
2022-06-10 17:52:28 -06:00

44 lines
1.3 KiB
Plaintext

/datum/ui_module/colour_matrix_tester
name = "Colour Matrix Tester"
/// The datum we are modifying. This will almost always be an atom, but clients have colours too
var/datum/target_datum
// Target colour matrix to make applying easier
var/target_matrix = list(
1, 0, 0, 0,
0, 1, 0, 0,
0, 0, 1, 0,
0, 0, 0, 1
)
/datum/ui_module/colour_matrix_tester/New(datum/_host, datum/target)
..()
if(!(isatom(target) || isclient(target)))
stack_trace("Attempted to create a colour matrix tester on a non atom/client!")
qdel(src)
return
target_datum = target
/datum/ui_module/colour_matrix_tester/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.admin_state)
ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "ColourMatrixTester", name, 350, 170, master_ui, state)
ui.autoupdate = TRUE
ui.open()
/datum/ui_module/colour_matrix_tester/ui_data(mob/user)
var/list/data = list()
data["colour_data"] = target_matrix
return data
/datum/ui_module/colour_matrix_tester/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
if(..())
return
switch(action)
if("setvalue")
target_matrix[text2num(params["idx"])] = text2num(params["value"])
target_datum:color = target_matrix // Force apply
return TRUE