mirror of
https://github.com/KabKebab/GS13.git
synced 2026-08-26 14:36:16 +01:00
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:
@@ -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
|
||||
))
|
||||
Reference in New Issue
Block a user