[MIRROR] fixes one of my first ever coding sins here (#11720)

Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
This commit is contained in:
CHOMPStation2StaffMirrorBot
2025-09-21 16:34:50 -07:00
committed by GitHub
parent 85cd507d86
commit 65a5e0a614
14 changed files with 525 additions and 365 deletions

View File

@@ -245,7 +245,11 @@ var/list/gear_datums = list()
var/datum/gear_tweak/tweak = locate(params["tweak"])
if(!tweak || !gear || !(tweak in gear.gear_tweaks))
return TOPIC_HANDLED
var/metadata = tweak.get_metadata(user, get_tweak_metadata(gear, tweak))
var/metadata
if(istype(tweak, /datum/gear_tweak/matrix_recolor))
metadata = tweak.get_metadata(user, get_tweak_metadata(gear, tweak), gear)
else
metadata = tweak.get_metadata(user, get_tweak_metadata(gear, tweak))
if(!metadata)
return TOPIC_HANDLED
set_tweak_metadata(gear, tweak, metadata)

View File

@@ -59,20 +59,23 @@ GLOBAL_DATUM_INIT(gear_tweak_free_matrix_recolor, /datum/gear_tweak/matrix_recol
/datum/gear_tweak/matrix_recolor/get_default()
return null
/datum/gear_tweak/matrix_recolor/get_metadata(user, metadata)
var/list/returned = color_matrix_picker(user, "Pick a color matrix for this item", "Matrix Recolor", "Ok", "Erase", "Cancel", TRUE, 10 MINUTES, islist(metadata) && metadata)
var/list/L = returned["matrix"]
if(returned["button"] == 3)
/datum/gear_tweak/matrix_recolor/get_metadata(user, metadata, datum/gear/gear)
if(!istype(gear))
CRASH("Matrix metadata called by [user] without gear!")
var/list/returned = tgui_input_colormatrix(user, "Pick a color matrix for this item", "Matrix Recolor", gear.path, metadata, TRUE)
if(!returned)
return metadata
if((returned["button"] == 2) || !islist(L) || !ISINRANGE(L.len, 9, 20))
return list()
var/identity = TRUE
var/static/list/ones = list(1, 5, 9)
for(var/i in 1 to L.len)
if(L[i] != ((i in ones)? 1 : 0))
var/static/list/offsets = list(10, 11, 12)
for(var/i in 1 to length(returned))
if(returned[i] != ((i in ones) ? 1 : 0))
identity = FALSE
break
return identity? list() : L
if(returned[i] != ((i in offsets) ? 0 : 1))
identity = FALSE
break
return identity ? list() : returned
/datum/gear_tweak/matrix_recolor/tweak_item(obj/item/I, metadata)
. = ..()