Merge pull request #11025 from Arturlang/TGUI_Next_Nanites

Ports TGUI Next and a lot of misc updates for nanites.
This commit is contained in:
Ghom
2021-06-04 15:03:31 -03:00
committed by Archie
parent 89a56e8f35
commit a83427d394
33 changed files with 1427 additions and 1422 deletions
@@ -0,0 +1,20 @@
/datum/nanite_extra_setting
var/setting_type
var/value
/datum/nanite_extra_setting/proc/get_value()
return value
/datum/nanite_extra_setting/proc/set_value(value)
src.value = value
/datum/nanite_extra_setting/proc/get_copy()
return
//I made the choice to send the name as part of the parameter instead of storing it directly on
//this datum as a way of avoiding duplication of data between the containing assoc list
//and this datum.
//Also make sure to double wrap the list when implementing this as
//+= is interpreted as a combine on lists, so the outer list gets unwrapped
/datum/nanite_extra_setting/proc/get_frontend_list(name)
return
@@ -0,0 +1,27 @@
/datum/nanite_extra_setting/boolean
setting_type = NESTYPE_BOOLEAN
var/true_text
var/false_text
/datum/nanite_extra_setting/boolean/New(initial, true_text, false_text)
value = initial
src.true_text = true_text
src.false_text = false_text
/datum/nanite_extra_setting/boolean/set_value(value)
if(isnull(value))
src.value = !src.value
return
. = ..()
/datum/nanite_extra_setting/boolean/get_copy()
return new /datum/nanite_extra_setting/boolean(value, true_text, false_text)
/datum/nanite_extra_setting/boolean/get_frontend_list(name)
return list(list(
"name" = name,
"type" = setting_type,
"value" = value,
"true_text" = true_text,
"false_text" = false_text
))
@@ -0,0 +1,32 @@
/datum/nanite_extra_setting/number
setting_type = NESTYPE_NUMBER
var/min
var/max
var/unit = ""
/datum/nanite_extra_setting/number/New(initial, min, max, unit)
value = initial
src.min = min
src.max = max
if(unit)
src.unit = unit
/datum/nanite_extra_setting/number/set_value(value)
if(istext(value))
value = text2num(value)
if(!value || !isnum(value))
return
src.value = CLAMP(value, min, max)
/datum/nanite_extra_setting/number/get_copy()
return new /datum/nanite_extra_setting/number(value, min, max, unit)
/datum/nanite_extra_setting/number/get_frontend_list(name)
return list(list(
"name" = name,
"type" = setting_type,
"value" = value,
"min" = min,
"max" = max,
"unit" = unit
))
@@ -0,0 +1,18 @@
/datum/nanite_extra_setting/text
setting_type = NESTYPE_TEXT
/datum/nanite_extra_setting/text/New(initial)
value = initial
/datum/nanite_extra_setting/text/set_value(value)
src.value = trim(value)
/datum/nanite_extra_setting/text/get_copy()
return new /datum/nanite_extra_setting/text(value)
/datum/nanite_extra_setting/text/get_frontend_list(name)
return list(list(
"name" = name,
"type" = setting_type,
"value" = value
))
@@ -0,0 +1,18 @@
/datum/nanite_extra_setting/type
setting_type = NESTYPE_TYPE
var/list/types
/datum/nanite_extra_setting/type/New(initial, types)
value = initial
src.types = types
/datum/nanite_extra_setting/type/get_copy()
return new /datum/nanite_extra_setting/type(value, types)
/datum/nanite_extra_setting/type/get_frontend_list(name)
return list(list(
"name" = name,
"type" = setting_type,
"value" = value,
"types" = types
))