Multiple minor updates to Nano.

Created new DNA Modifier Nano UI.

Refactored the DNA Modifier code.
This commit is contained in:
Mark Aherne (Faerdan)
2013-09-19 01:39:59 +01:00
parent 9378ce2402
commit e0924bf4ab
15 changed files with 1494 additions and 1401 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -1,82 +1,3 @@
/obj/machinery/computer/scan_consolenew
name = "DNA Modifier Access Console"
desc = "Scand DNA."
icon = 'icons/obj/computer.dmi'
icon_state = "scanner"
density = 1
var/uniblock = 1.0
var/strucblock = 1.0
var/subblock = 1.0
var/unitarget = 1
var/unitargethex = 1
var/status = null
var/radduration = 2.0
var/radstrength = 1.0
var/radacc = 1.0
var/buffer1 = null
var/buffer2 = null
var/buffer3 = null
var/buffer1owner = null
var/buffer2owner = null
var/buffer3owner = null
var/buffer1label = null
var/buffer2label = null
var/buffer3label = null
var/buffer1type = null
var/buffer2type = null
var/buffer3type = null
var/buffer1iue = 0
var/buffer2iue = 0
var/buffer3iue = 0
var/delete = 0
var/injectorready = 0 //Quick fix for issue 286 (screwdriver the screen twice to restore injector) -Pete
var/temphtml = null
var/obj/machinery/dna_scannernew/connected = null
var/obj/item/weapon/disk/data/diskette = null
anchored = 1.0
use_power = 1
idle_power_usage = 10
active_power_usage = 400
/obj/machinery/computer/scan_consolenew/attackby(obj/item/I as obj, mob/user as mob)
if(istype(I, /obj/item/weapon/screwdriver))
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
if(do_after(user, 20))
if (src.stat & BROKEN)
user << "\blue The broken glass falls out."
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
new /obj/item/weapon/shard( src.loc )
var/obj/item/weapon/circuitboard/scan_consolenew/M = new /obj/item/weapon/circuitboard/scan_consolenew( A )
for (var/obj/C in src)
C.loc = src.loc
A.circuit = M
A.state = 3
A.icon_state = "3"
A.anchored = 1
del(src)
else
user << "\blue You disconnect the monitor."
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
var/obj/item/weapon/circuitboard/scan_consolenew/M = new /obj/item/weapon/circuitboard/scan_consolenew( A )
for (var/obj/C in src)
C.loc = src.loc
A.circuit = M
A.state = 4
A.icon_state = "4"
A.anchored = 1
del(src)
if (istype(I, /obj/item/weapon/disk/data)) //INSERT SOME DISKETTES
if (!src.diskette)
user.drop_item()
I.loc = src
src.diskette = I
user << "You insert [I]."
src.updateUsrDialog()
return
else
src.attack_hand(user)
return
/obj/machinery/computer/cloning
name = "Cloning console"
icon = 'icons/obj/computer.dmi'

View File

@@ -9,7 +9,7 @@
var/on = 0
var/temperature_archived
var/mob/living/carbon/occupant = null
var/beaker = null
var/obj/item/weapon/reagent_containers/glass/beaker = null
var/current_heat_capacity = 50
@@ -68,11 +68,12 @@
* ui_interact is currently defined for /atom/movable
*
* @param user /mob The mob who is interacting with this ui
* @param ui_key string A string key to use for this ui. Allows for multiple unique uis on one obj/mob (defaut value "main")
* @param ui_key string A string key to use for this ui. Allows for multiple unique uis on one obj/mob (defaut value "main")
* @param ui /datum/nanoui This parameter is passed by the nanoui process() proc when updating an open ui
*
* @return nothing
*/
/obj/machinery/atmospherics/unary/cryo_cell/ui_interact(mob/user, ui_key = "main")
/obj/machinery/atmospherics/unary/cryo_cell/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null)
if(user == occupant || user.stat)
return
@@ -114,14 +115,26 @@
else if(air_contents.temperature > 225)
data["cellTemperatureStatus"] = "average"
data["isBeakerLoaded"] = beaker ? 1 : 0
data["isBeakerLoaded"] = beaker ? 1 : 0
/* // Removing beaker contents list from front-end, replacing with a total remaining volume
var beakerContents[0]
if(beaker && beaker:reagents && beaker:reagents.reagent_list.len)
for(var/datum/reagent/R in beaker:reagents.reagent_list)
if(beaker && beaker.reagents && beaker.reagents.reagent_list.len)
for(var/datum/reagent/R in beaker.reagents.reagent_list)
beakerContents.Add(list(list("name" = R.name, "volume" = R.volume))) // list in a list because Byond merges the first list...
data["beakerContents"] = beakerContents
var/datum/nanoui/ui = nanomanager.get_open_ui(user, src, ui_key)
*/
data["beakerLabel"] = null
data["beakerVolume"] = 0
if(beaker)
data["beakerLabel"] = beaker.label_text ? beaker.label_text : null
if (beaker.reagents && beaker.reagents.reagent_list.len)
for(var/datum/reagent/R in beaker.reagents.reagent_list)
data["beakerVolume"] += R.volume
if (!ui) // no ui has been passed, so we'll search for one
{
ui = nanomanager.get_open_ui(user, src, ui_key)
}
if (!ui)
// the ui does not exist, so we'll create a new one
ui = new(user, src, ui_key, "cryo.tmpl", "Cryo Cell Control System", 520, 410)
@@ -153,8 +166,7 @@
if(href_list["ejectBeaker"])
if(beaker)
var/obj/item/weapon/reagent_containers/glass/B = beaker
B.loc = get_step(loc, SOUTH)
beaker.loc = get_step(loc, SOUTH)
beaker = null
if(href_list["ejectOccupant"])
@@ -224,8 +236,8 @@
var/has_clonexa = occupant.reagents.get_reagent_amount("clonexadone") >= 1
var/has_cryo_medicine = has_cryo || has_clonexa
if(beaker && !has_cryo_medicine)
beaker:reagents.trans_to(occupant, 1, 10)
beaker:reagents.reaction(occupant)
beaker.reagents.trans_to(occupant, 1, 10)
beaker.reagents.reaction(occupant)
/obj/machinery/atmospherics/unary/cryo_cell/proc/heat_gas_contents()
if(air_contents.total_moles() < 1)

View File

@@ -251,10 +251,12 @@
'nano/css/icons.css',
'nano/templates/chem_dispenser.tmpl',
'nano/templates/cryo.tmpl',
'nano/templates/dna_modifier.tmpl',
'nano/images/uiBackground.png',
'nano/images/uiIcons16.png',
'nano/images/uiIcons24.png',
'nano/images/uiLinkPendingIcon.gif',
'nano/images/uiMaskBackground.png',
'nano/images/uiNoticeBackground.jpg',
'nano/images/uiTitleFluff.png',
'html/search.js',

View File

@@ -31,11 +31,12 @@
* ui_interact is currently defined for /atom/movable
*
* @param user /mob The mob who is interacting with this ui
* @param ui_key string A string key to use for this ui. Allows for multiple unique uis on one obj/mob (defaut value "main")
* @param ui_key string A string key to use for this ui. Allows for multiple unique uis on one obj/mob (defaut value "main")
* @param ui /datum/nanoui This parameter is passed by the nanoui process() proc when updating an open ui
*
* @return nothing
*/
/atom/movable/proc/ui_interact(mob/user, ui_key = "main")
/atom/movable/proc/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null)
return
// Used by the Nano UI Manager (/datum/nanomanager) to track UIs opened by this mob

View File

@@ -387,6 +387,7 @@ nanoui is used to open and update nano browser uis
return // Cannot update UI, no visibility
data = add_default_data(data)
//user << list2json(data) // used for debugging
user << output(list2params(list(list2json(data))),"[window_id].browser:receiveUpdateData")
/**
@@ -414,7 +415,7 @@ nanoui is used to open and update nano browser uis
*/
/datum/nanoui/proc/process(update = 0)
if (status && (update || is_auto_updating))
src_object.ui_interact(user, ui_key) // Update the UI (update_status() is called whenever a UI is updated)
src_object.ui_interact(user, ui_key, src) // Update the UI (update_status() is called whenever a UI is updated)
else
update_status(1) // Not updating UI, so lets check here if status has changed

View File

@@ -74,10 +74,11 @@
*
* @param user /mob The mob who is interacting with this ui
* @param ui_key string A string key to use for this ui. Allows for multiple unique uis on one obj/mob (defaut value "main")
* @param ui /datum/nanoui This parameter is passed by the nanoui process() proc when updating an open ui
*
* @return nothing
*/
/obj/machinery/chem_dispenser/ui_interact(mob/user, ui_key = "main")
/obj/machinery/chem_dispenser/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null)
if(stat & (BROKEN|NOPOWER)) return
if(user.stat || user.restrained()) return
@@ -110,8 +111,11 @@
chemicals.Add(list(list("title" = temp.name, "id" = temp.id, "commands" = list("dispense" = temp.id)))) // list in a list because Byond merges the first list...
data["chemicals"] = chemicals
var/datum/nanoui/ui = nanomanager.get_open_ui(user, src, ui_key)
if (!ui)
if (!ui) // no ui has been passed, so we'll search for one
{
ui = nanomanager.get_open_ui(user, src, ui_key)
}
if (!ui)
// the ui does not exist, so we'll create a new one
ui = new(user, src, ui_key, "chem_dispenser.tmpl", "Chem Dispenser 5000", 370, 605)
// When the UI is first opened this is the data it will use
@@ -343,15 +347,15 @@
reagents.clear_reagents()
icon_state = "mixer0"
else if (href_list["createpill"] || href_list["createpill_multiple"])
var/name = reject_bad_text(input(usr,"Name:","Name your pill!",reagents.get_master_reagent_name()))
var/count = 1
if (href_list["createpill_multiple"]) count = isgoodnumber(input("Select the number of pills to make.", 10, pillamount) as num)
if (count > 20) count = 20 //Pevent people from creating huge stacks of pills easily. Maybe move the number to defines?
var/amount_per_pill = reagents.total_volume/count
if (amount_per_pill > 50) amount_per_pill = 50
var/name = reject_bad_text(input(usr,"Name:","Name your pill!","[reagents.get_master_reagent_name()] ([amount_per_pill] units)"))
while (count--)
var/obj/item/weapon/reagent_containers/pill/P = new/obj/item/weapon/reagent_containers/pill(src.loc)
if(!name) name = reagents.get_master_reagent_name()
if(!name) name = "[reagents.get_master_reagent_name()] ([amount_per_pill] units)"
P.name = "[name] pill"
P.pixel_x = rand(-7, 7) //random position
P.pixel_y = rand(-7, 7)
@@ -363,9 +367,9 @@
src.updateUsrDialog()
else if (href_list["createbottle"])
if(!condi)
var/name = reject_bad_text(input(usr,"Name:","Name your bottle!",reagents.get_master_reagent_name()))
var/name = reject_bad_text(input(usr,"Name:","Name your bottle!","[reagents.get_master_reagent_name()] ([reagents.total_volume] units)"))
var/obj/item/weapon/reagent_containers/glass/bottle/P = new/obj/item/weapon/reagent_containers/glass/bottle(src.loc)
if(!name) name = reagents.get_master_reagent_name()
if(!name) name = "[reagents.get_master_reagent_name()] ([reagents.total_volume] units)"
P.name = "[name] bottle"
P.pixel_x = rand(-7, 7) //random position
P.pixel_y = rand(-7, 7)

View File

@@ -25,6 +25,7 @@
/obj/structure/sink,
/obj/item/weapon/storage,
/obj/machinery/atmospherics/unary/cryo_cell,
/obj/machinery/dna_scannernew,
/obj/item/weapon/grenade/chem_grenade,
/obj/machinery/bot/medbot,
/obj/machinery/computer/pandemic,

View File

@@ -49,179 +49,180 @@
}
/* positioning */
.uiIcon16.blank { background-position: 16px 16px; }
.uiIcon16.carat-1-n { background-position: 0 0; }
.uiIcon16.carat-1-ne { background-position: -16px 0; }
.uiIcon16.carat-1-e { background-position: -32px 0; }
.uiIcon16.carat-1-se { background-position: -48px 0; }
.uiIcon16.carat-1-s { background-position: -64px 0; }
.uiIcon16.carat-1-sw { background-position: -80px 0; }
.uiIcon16.carat-1-w { background-position: -96px 0; }
.uiIcon16.carat-1-nw { background-position: -112px 0; }
.uiIcon16.carat-2-n-s { background-position: -128px 0; }
.uiIcon16.carat-2-e-w { background-position: -144px 0; }
.uiIcon16.triangle-1-n { background-position: 0 -16px; }
.uiIcon16.triangle-1-ne { background-position: -16px -16px; }
.uiIcon16.triangle-1-e { background-position: -32px -16px; }
.uiIcon16.triangle-1-se { background-position: -48px -16px; }
.uiIcon16.triangle-1-s { background-position: -64px -16px; }
.uiIcon16.triangle-1-sw { background-position: -80px -16px; }
.uiIcon16.triangle-1-w { background-position: -96px -16px; }
.uiIcon16.triangle-1-nw { background-position: -112px -16px; }
.uiIcon16.triangle-2-n-s { background-position: -128px -16px; }
.uiIcon16.triangle-2-e-w { background-position: -144px -16px; }
.uiIcon16.arrow-1-n { background-position: 0 -32px; }
.uiIcon16.arrow-1-ne { background-position: -16px -32px; }
.uiIcon16.arrow-1-e { background-position: -32px -32px; }
.uiIcon16.arrow-1-se { background-position: -48px -32px; }
.uiIcon16.arrow-1-s { background-position: -64px -32px; }
.uiIcon16.arrow-1-sw { background-position: -80px -32px; }
.uiIcon16.arrow-1-w { background-position: -96px -32px; }
.uiIcon16.arrow-1-nw { background-position: -112px -32px; }
.uiIcon16.arrow-2-n-s { background-position: -128px -32px; }
.uiIcon16.arrow-2-ne-sw { background-position: -144px -32px; }
.uiIcon16.arrow-2-e-w { background-position: -160px -32px; }
.uiIcon16.arrow-2-se-nw { background-position: -176px -32px; }
.uiIcon16.arrowstop-1-n { background-position: -192px -32px; }
.uiIcon16.arrowstop-1-e { background-position: -208px -32px; }
.uiIcon16.arrowstop-1-s { background-position: -224px -32px; }
.uiIcon16.arrowstop-1-w { background-position: -240px -32px; }
.uiIcon16.arrowthick-1-n { background-position: 0 -48px; }
.uiIcon16.arrowthick-1-ne { background-position: -16px -48px; }
.uiIcon16.arrowthick-1-e { background-position: -32px -48px; }
.uiIcon16.arrowthick-1-se { background-position: -48px -48px; }
.uiIcon16.arrowthick-1-s { background-position: -64px -48px; }
.uiIcon16.arrowthick-1-sw { background-position: -80px -48px; }
.uiIcon16.arrowthick-1-w { background-position: -96px -48px; }
.uiIcon16.arrowthick-1-nw { background-position: -112px -48px; }
.uiIcon16.arrowthick-2-n-s { background-position: -128px -48px; }
.uiIcon16.arrowthick-2-ne-sw { background-position: -144px -48px; }
.uiIcon16.arrowthick-2-e-w { background-position: -160px -48px; }
.uiIcon16.arrowthick-2-se-nw { background-position: -176px -48px; }
.uiIcon16.arrowthickstop-1-n { background-position: -192px -48px; }
.uiIcon16.arrowthickstop-1-e { background-position: -208px -48px; }
.uiIcon16.arrowthickstop-1-s { background-position: -224px -48px; }
.uiIcon16.arrowthickstop-1-w { background-position: -240px -48px; }
.uiIcon16.arrowreturnthick-1-w { background-position: 0 -64px; }
.uiIcon16.arrowreturnthick-1-n { background-position: -16px -64px; }
.uiIcon16.arrowreturnthick-1-e { background-position: -32px -64px; }
.uiIcon16.arrowreturnthick-1-s { background-position: -48px -64px; }
.uiIcon16.arrowreturn-1-w { background-position: -64px -64px; }
.uiIcon16.arrowreturn-1-n { background-position: -80px -64px; }
.uiIcon16.arrowreturn-1-e { background-position: -96px -64px; }
.uiIcon16.arrowreturn-1-s { background-position: -112px -64px; }
.uiIcon16.arrowrefresh-1-w { background-position: -128px -64px; }
.uiIcon16.arrowrefresh-1-n { background-position: -144px -64px; }
.uiIcon16.arrowrefresh-1-e { background-position: -160px -64px; }
.uiIcon16.arrowrefresh-1-s { background-position: -176px -64px; }
.uiIcon16.arrow-4 { background-position: 0 -80px; }
.uiIcon16.arrow-4-diag { background-position: -16px -80px; }
.uiIcon16.extlink { background-position: -32px -80px; }
.uiIcon16.newwin { background-position: -48px -80px; }
.uiIcon16.refresh { background-position: -64px -80px; }
.uiIcon16.shuffle { background-position: -80px -80px; }
.uiIcon16.transfer-e-w { background-position: -96px -80px; }
.uiIcon16.transferthick-e-w { background-position: -112px -80px; }
.uiIcon16.folder-collapsed { background-position: 0 -96px; }
.uiIcon16.folder-open { background-position: -16px -96px; }
.uiIcon16.document { background-position: -32px -96px; }
.uiIcon16.document-b { background-position: -48px -96px; }
.uiIcon16.note { background-position: -64px -96px; }
.uiIcon16.mail-closed { background-position: -80px -96px; }
.uiIcon16.mail-open { background-position: -96px -96px; }
.uiIcon16.suitcase { background-position: -112px -96px; }
.uiIcon16.comment { background-position: -128px -96px; }
.uiIcon16.person { background-position: -144px -96px; }
.uiIcon16.print { background-position: -160px -96px; }
.uiIcon16.trash { background-position: -176px -96px; }
.uiIcon16.locked { background-position: -192px -96px; }
.uiIcon16.unlocked { background-position: -208px -96px; }
.uiIcon16.bookmark { background-position: -224px -96px; }
.uiIcon16.tag { background-position: -240px -96px; }
.uiIcon16.home { background-position: 0 -112px; }
.uiIcon16.flag { background-position: -16px -112px; }
.uiIcon16.calendar { background-position: -32px -112px; }
.uiIcon16.cart { background-position: -48px -112px; }
.uiIcon16.pencil { background-position: -64px -112px; }
.uiIcon16.clock { background-position: -80px -112px; }
.uiIcon16.disk { background-position: -96px -112px; }
.uiIcon16.calculator { background-position: -112px -112px; }
.uiIcon16.zoomin { background-position: -128px -112px; }
.uiIcon16.zoomout { background-position: -144px -112px; }
.uiIcon16.search { background-position: -160px -112px; }
.uiIcon16.wrench { background-position: -176px -112px; }
.uiIcon16.gear { background-position: -192px -112px; }
.uiIcon16.heart { background-position: -208px -112px; }
.uiIcon16.star { background-position: -224px -112px; }
.uiIcon16.link { background-position: -240px -112px; }
.uiIcon16.cancel { background-position: 0 -128px; }
.uiIcon16.plus { background-position: -16px -128px; }
.uiIcon16.plusthick { background-position: -32px -128px; }
.uiIcon16.minus { background-position: -48px -128px; }
.uiIcon16.minusthick { background-position: -64px -128px; }
.uiIcon16.close { background-position: -80px -128px; }
.uiIcon16.closethick { background-position: -96px -128px; }
.uiIcon16.key { background-position: -112px -128px; }
.uiIcon16.lightbulb { background-position: -128px -128px; }
.uiIcon16.scissors { background-position: -144px -128px; }
.uiIcon16.clipboard { background-position: -160px -128px; }
.uiIcon16.copy { background-position: -176px -128px; }
.uiIcon16.contact { background-position: -192px -128px; }
.uiIcon16.image { background-position: -208px -128px; }
.uiIcon16.video { background-position: -224px -128px; }
.uiIcon16.script { background-position: -240px -128px; }
.uiIcon16.alert { background-position: 0 -144px; }
.uiIcon16.info { background-position: -16px -144px; }
.uiIcon16.notice { background-position: -32px -144px; }
.uiIcon16.help { background-position: -48px -144px; }
.uiIcon16.check { background-position: -64px -144px; }
.uiIcon16.bullet { background-position: -80px -144px; }
.uiIcon16.radio-on { background-position: -96px -144px; }
.uiIcon16.radio-off { background-position: -112px -144px; }
.uiIcon16.pin-w { background-position: -128px -144px; }
.uiIcon16.pin-s { background-position: -144px -144px; }
.uiIcon16.play { background-position: 0 -160px; }
.uiIcon16.pause { background-position: -16px -160px; }
.uiIcon16.seek-next { background-position: -32px -160px; }
.uiIcon16.seek-prev { background-position: -48px -160px; }
.uiIcon16.seek-end { background-position: -64px -160px; }
.uiIcon16.seek-start { background-position: -80px -160px; }
.uiIcon16.icon-blank { background-position: 16px 16px; }
.uiIcon16.icon-carat-1-n { background-position: 0 0; }
.uiIcon16.icon-carat-1-ne { background-position: -16px 0; }
.uiIcon16.icon-carat-1-e { background-position: -32px 0; }
.uiIcon16.icon-carat-1-se { background-position: -48px 0; }
.uiIcon16.icon-carat-1-s { background-position: -64px 0; }
.uiIcon16.icon-carat-1-sw { background-position: -80px 0; }
.uiIcon16.icon-carat-1-w { background-position: -96px 0; }
.uiIcon16.icon-carat-1-nw { background-position: -112px 0; }
.uiIcon16.icon-carat-2-n-s { background-position: -128px 0; }
.uiIcon16.icon-carat-2-e-w { background-position: -144px 0; }
.uiIcon16.icon-triangle-1-n { background-position: 0 -16px; }
.uiIcon16.icon-triangle-1-ne { background-position: -16px -16px; }
.uiIcon16.icon-triangle-1-e { background-position: -32px -16px; }
.uiIcon16.icon-triangle-1-se { background-position: -48px -16px; }
.uiIcon16.icon-triangle-1-s { background-position: -64px -16px; }
.uiIcon16.icon-triangle-1-sw { background-position: -80px -16px; }
.uiIcon16.icon-triangle-1-w { background-position: -96px -16px; }
.uiIcon16.icon-triangle-1-nw { background-position: -112px -16px; }
.uiIcon16.icon-triangle-2-n-s { background-position: -128px -16px; }
.uiIcon16.icon-triangle-2-e-w { background-position: -144px -16px; }
.uiIcon16.icon-arrow-1-n { background-position: 0 -32px; }
.uiIcon16.icon-arrow-1-ne { background-position: -16px -32px; }
.uiIcon16.icon-arrow-1-e { background-position: -32px -32px; }
.uiIcon16.icon-arrow-1-se { background-position: -48px -32px; }
.uiIcon16.icon-arrow-1-s { background-position: -64px -32px; }
.uiIcon16.icon-arrow-1-sw { background-position: -80px -32px; }
.uiIcon16.icon-arrow-1-w { background-position: -96px -32px; }
.uiIcon16.icon-arrow-1-nw { background-position: -112px -32px; }
.uiIcon16.icon-arrow-2-n-s { background-position: -128px -32px; }
.uiIcon16.icon-arrow-2-ne-sw { background-position: -144px -32px; }
.uiIcon16.icon-arrow-2-e-w { background-position: -160px -32px; }
.uiIcon16.icon-arrow-2-se-nw { background-position: -176px -32px; }
.uiIcon16.icon-arrowstop-1-n { background-position: -192px -32px; }
.uiIcon16.icon-arrowstop-1-e { background-position: -208px -32px; }
.uiIcon16.icon-arrowstop-1-s { background-position: -224px -32px; }
.uiIcon16.icon-arrowstop-1-w { background-position: -240px -32px; }
.uiIcon16.icon-arrowthick-1-n { background-position: 0 -48px; }
.uiIcon16.icon-arrowthick-1-ne { background-position: -16px -48px; }
.uiIcon16.icon-arrowthick-1-e { background-position: -32px -48px; }
.uiIcon16.icon-arrowthick-1-se { background-position: -48px -48px; }
.uiIcon16.icon-arrowthick-1-s { background-position: -64px -48px; }
.uiIcon16.icon-arrowthick-1-sw { background-position: -80px -48px; }
.uiIcon16.icon-arrowthick-1-w { background-position: -96px -48px; }
.uiIcon16.icon-arrowthick-1-nw { background-position: -112px -48px; }
.uiIcon16.icon-arrowthick-2-n-s { background-position: -128px -48px; }
.uiIcon16.icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
.uiIcon16.icon-arrowthick-2-e-w { background-position: -160px -48px; }
.uiIcon16.icon-arrowthick-2-se-nw { background-position: -176px -48px; }
.uiIcon16.icon-arrowthickstop-1-n { background-position: -192px -48px; }
.uiIcon16.icon-arrowthickstop-1-e { background-position: -208px -48px; }
.uiIcon16.icon-arrowthickstop-1-s { background-position: -224px -48px; }
.uiIcon16.icon-arrowthickstop-1-w { background-position: -240px -48px; }
.uiIcon16.icon-arrowreturnthick-1-w { background-position: 0 -64px; }
.uiIcon16.icon-arrowreturnthick-1-n { background-position: -16px -64px; }
.uiIcon16.icon-arrowreturnthick-1-e { background-position: -32px -64px; }
.uiIcon16.icon-arrowreturnthick-1-s { background-position: -48px -64px; }
.uiIcon16.icon-arrowreturn-1-w { background-position: -64px -64px; }
.uiIcon16.icon-arrowreturn-1-n { background-position: -80px -64px; }
.uiIcon16.icon-arrowreturn-1-e { background-position: -96px -64px; }
.uiIcon16.icon-arrowreturn-1-s { background-position: -112px -64px; }
.uiIcon16.icon-arrowrefresh-1-w { background-position: -128px -64px; }
.uiIcon16.icon-arrowrefresh-1-n { background-position: -144px -64px; }
.uiIcon16.icon-arrowrefresh-1-e { background-position: -160px -64px; }
.uiIcon16.icon-arrowrefresh-1-s { background-position: -176px -64px; }
.uiIcon16.icon-arrow-4 { background-position: 0 -80px; }
.uiIcon16.icon-arrow-4-diag { background-position: -16px -80px; }
.uiIcon16.icon-extlink { background-position: -32px -80px; }
.uiIcon16.icon-newwin { background-position: -48px -80px; }
.uiIcon16.icon-refresh { background-position: -64px -80px; }
.uiIcon16.icon-shuffle { background-position: -80px -80px; }
.uiIcon16.icon-transfer-e-w { background-position: -96px -80px; }
.uiIcon16.icon-transferthick-e-w { background-position: -112px -80px; }
.uiIcon16.icon-radiation { background-position: -128px -80px; }
.uiIcon16.icon-folder-collapsed { background-position: 0 -96px; }
.uiIcon16.icon-folder-open { background-position: -16px -96px; }
.uiIcon16.icon-document { background-position: -32px -96px; }
.uiIcon16.icon-document-b { background-position: -48px -96px; }
.uiIcon16.icon-note { background-position: -64px -96px; }
.uiIcon16.icon-mail-closed { background-position: -80px -96px; }
.uiIcon16.icon-mail-open { background-position: -96px -96px; }
.uiIcon16.icon-suitcase { background-position: -112px -96px; }
.uiIcon16.icon-comment { background-position: -128px -96px; }
.uiIcon16.icon-person { background-position: -144px -96px; }
.uiIcon16.icon-print { background-position: -160px -96px; }
.uiIcon16.icon-trash { background-position: -176px -96px; }
.uiIcon16.icon-locked { background-position: -192px -96px; }
.uiIcon16.icon-unlocked { background-position: -208px -96px; }
.uiIcon16.icon-bookmark { background-position: -224px -96px; }
.uiIcon16.icon-tag { background-position: -240px -96px; }
.uiIcon16.icon-home { background-position: 0 -112px; }
.uiIcon16.icon-flag { background-position: -16px -112px; }
.uiIcon16.icon-calendar { background-position: -32px -112px; }
.uiIcon16.icon-cart { background-position: -48px -112px; }
.uiIcon16.icon-pencil { background-position: -64px -112px; }
.uiIcon16.icon-clock { background-position: -80px -112px; }
.uiIcon16.icon-disk { background-position: -96px -112px; }
.uiIcon16.icon-calculator { background-position: -112px -112px; }
.uiIcon16.icon-zoomin { background-position: -128px -112px; }
.uiIcon16.icon-zoomout { background-position: -144px -112px; }
.uiIcon16.icon-search { background-position: -160px -112px; }
.uiIcon16.icon-wrench { background-position: -176px -112px; }
.uiIcon16.icon-gear { background-position: -192px -112px; }
.uiIcon16.icon-heart { background-position: -208px -112px; }
.uiIcon16.icon-star { background-position: -224px -112px; }
.uiIcon16.icon-link { background-position: -240px -112px; }
.uiIcon16.icon-cancel { background-position: 0 -128px; }
.uiIcon16.icon-plus { background-position: -16px -128px; }
.uiIcon16.icon-plusthick { background-position: -32px -128px; }
.uiIcon16.icon-minus { background-position: -48px -128px; }
.uiIcon16.icon-minusthick { background-position: -64px -128px; }
.uiIcon16.icon-close { background-position: -80px -128px; }
.uiIcon16.icon-closethick { background-position: -96px -128px; }
.uiIcon16.icon-key { background-position: -112px -128px; }
.uiIcon16.icon-lightbulb { background-position: -128px -128px; }
.uiIcon16.icon-scissors { background-position: -144px -128px; }
.uiIcon16.icon-clipboard { background-position: -160px -128px; }
.uiIcon16.icon-copy { background-position: -176px -128px; }
.uiIcon16.icon-contact { background-position: -192px -128px; }
.uiIcon16.icon-image { background-position: -208px -128px; }
.uiIcon16.icon-video { background-position: -224px -128px; }
.uiIcon16.icon-script { background-position: -240px -128px; }
.uiIcon16.icon-alert { background-position: 0 -144px; }
.uiIcon16.icon-info { background-position: -16px -144px; }
.uiIcon16.icon-notice { background-position: -32px -144px; }
.uiIcon16.icon-help { background-position: -48px -144px; }
.uiIcon16.icon-check { background-position: -64px -144px; }
.uiIcon16.icon-bullet { background-position: -80px -144px; }
.uiIcon16.icon-radio-on { background-position: -96px -144px; }
.uiIcon16.icon-radio-off { background-position: -112px -144px; }
.uiIcon16.icon-pin-w { background-position: -128px -144px; }
.uiIcon16.icon-pin-s { background-position: -144px -144px; }
.uiIcon16.icon-play { background-position: 0 -160px; }
.uiIcon16.icon-pause { background-position: -16px -160px; }
.uiIcon16.icon-seek-next { background-position: -32px -160px; }
.uiIcon16.icon-seek-prev { background-position: -48px -160px; }
.uiIcon16.icon-seek-end { background-position: -64px -160px; }
.uiIcon16.icon-seek-start { background-position: -80px -160px; }
/* uiIcon-seek-first is deprecated, use uiIcon-seek-start instead */
.uiIcon16.seek-first { background-position: -80px -160px; }
.uiIcon16.stop { background-position: -96px -160px; }
.uiIcon16.eject { background-position: -112px -160px; }
.uiIcon16.volume-off { background-position: -128px -160px; }
.uiIcon16.volume-on { background-position: -144px -160px; }
.uiIcon16.power { background-position: 0 -176px; }
.uiIcon16.signal-diag { background-position: -16px -176px; }
.uiIcon16.signal { background-position: -32px -176px; }
.uiIcon16.battery-0 { background-position: -48px -176px; }
.uiIcon16.battery-1 { background-position: -64px -176px; }
.uiIcon16.battery-2 { background-position: -80px -176px; }
.uiIcon16.battery-3 { background-position: -96px -176px; }
.uiIcon16.circle-plus { background-position: 0 -192px; }
.uiIcon16.circle-minus { background-position: -16px -192px; }
.uiIcon16.circle-close { background-position: -32px -192px; }
.uiIcon16.circle-triangle-e { background-position: -48px -192px; }
.uiIcon16.circle-triangle-s { background-position: -64px -192px; }
.uiIcon16.circle-triangle-w { background-position: -80px -192px; }
.uiIcon16.circle-triangle-n { background-position: -96px -192px; }
.uiIcon16.circle-arrow-e { background-position: -112px -192px; }
.uiIcon16.circle-arrow-s { background-position: -128px -192px; }
.uiIcon16.circle-arrow-w { background-position: -144px -192px; }
.uiIcon16.circle-arrow-n { background-position: -160px -192px; }
.uiIcon16.circle-zoomin { background-position: -176px -192px; }
.uiIcon16.circle-zoomout { background-position: -192px -192px; }
.uiIcon16.circle-check { background-position: -208px -192px; }
.uiIcon16.circlesmall-plus { background-position: 0 -208px; }
.uiIcon16.circlesmall-minus { background-position: -16px -208px; }
.uiIcon16.circlesmall-close { background-position: -32px -208px; }
.uiIcon16.squaresmall-plus { background-position: -48px -208px; }
.uiIcon16.squaresmall-minus { background-position: -64px -208px; }
.uiIcon16.squaresmall-close { background-position: -80px -208px; }
.uiIcon16.grip-dotted-vertical { background-position: 0 -224px; }
.uiIcon16.grip-dotted-horizontal { background-position: -16px -224px; }
.uiIcon16.grip-solid-vertical { background-position: -32px -224px; }
.uiIcon16.grip-solid-horizontal { background-position: -48px -224px; }
.uiIcon16.gripsmall-diagonal-se { background-position: -64px -224px; }
.uiIcon16.grip-diagonal-se { background-position: -80px -224px; }
.uiIcon16.icon-seek-first { background-position: -80px -160px; }
.uiIcon16.icon-stop { background-position: -96px -160px; }
.uiIcon16.icon-eject { background-position: -112px -160px; }
.uiIcon16.icon-volume-off { background-position: -128px -160px; }
.uiIcon16.icon-volume-on { background-position: -144px -160px; }
.uiIcon16.icon-power { background-position: 0 -176px; }
.uiIcon16.icon-signal-diag { background-position: -16px -176px; }
.uiIcon16.icon-signal { background-position: -32px -176px; }
.uiIcon16.icon-battery-0 { background-position: -48px -176px; }
.uiIcon16.icon-battery-1 { background-position: -64px -176px; }
.uiIcon16.icon-battery-2 { background-position: -80px -176px; }
.uiIcon16.icon-battery-3 { background-position: -96px -176px; }
.uiIcon16.icon-circle-plus { background-position: 0 -192px; }
.uiIcon16.icon-circle-minus { background-position: -16px -192px; }
.uiIcon16.icon-circle-close { background-position: -32px -192px; }
.uiIcon16.icon-circle-triangle-e { background-position: -48px -192px; }
.uiIcon16.icon-circle-triangle-s { background-position: -64px -192px; }
.uiIcon16.icon-circle-triangle-w { background-position: -80px -192px; }
.uiIcon16.icon-circle-triangle-n { background-position: -96px -192px; }
.uiIcon16.icon-circle-arrow-e { background-position: -112px -192px; }
.uiIcon16.icon-circle-arrow-s { background-position: -128px -192px; }
.uiIcon16.icon-circle-arrow-w { background-position: -144px -192px; }
.uiIcon16.icon-circle-arrow-n { background-position: -160px -192px; }
.uiIcon16.icon-circle-zoomin { background-position: -176px -192px; }
.uiIcon16.icon-circle-zoomout { background-position: -192px -192px; }
.uiIcon16.icon-circle-check { background-position: -208px -192px; }
.uiIcon16.icon-circlesmall-plus { background-position: 0 -208px; }
.uiIcon16.icon-circlesmall-minus { background-position: -16px -208px; }
.uiIcon16.icon-circlesmall-close { background-position: -32px -208px; }
.uiIcon16.icon-squaresmall-plus { background-position: -48px -208px; }
.uiIcon16.icon-squaresmall-minus { background-position: -64px -208px; }
.uiIcon16.icon-squaresmall-close { background-position: -80px -208px; }
.uiIcon16.icon-grip-dotted-vertical { background-position: 0 -224px; }
.uiIcon16.icon-grip-dotted-horizontal { background-position: -16px -224px; }
.uiIcon16.icon-grip-solid-vertical { background-position: -32px -224px; }
.uiIcon16.icon-grip-solid-horizontal { background-position: -48px -224px; }
.uiIcon16.icon-gripsmall-diagonal-se { background-position: -64px -224px; }
.uiIcon16.icon-grip-diagonal-se { background-position: -80px -224px; }

View File

@@ -1,408 +1,343 @@
body
{
padding: 0;
margin: 0;
font-size: 12px;
color: #ffffff;
line-height: 170%;
font-family: Verdana, Geneva, sans-serif;
body {
padding: 0;
margin: 0;
font-size: 12px;
color: #ffffff;
line-height: 170%;
font-family: Verdana, Geneva, sans-serif;
background: #272727 url(uiBackground.png) 50% 0 repeat-x;
}
hr
{
background-color: #40628a;
height: 1px;
hr {
background-color: #40628a;
height: 1px;
}
a, a:link, a:visited, a:active, .link, .linkOn, .linkOff, .selected, .disabled
{
color: #ffffff;
text-decoration: none;
background: #40628a;
border: 1px solid #161616;
padding: 0px 4px 4px 0px;
margin: 0 2px 2px 0;
cursor:default;
}
.link
{
.link, .linkOn, .linkOff, .selected, .disabled {
float: left;
min-width: 40px;
height: 16px;
min-width: 40px;
height: 16px;
text-align: center;
color: #ffffff;
text-decoration: none;
background: #40628a;
border: 1px solid #161616;
padding: 0px 4px 4px 4px;
margin: 0 2px 2px 0;
cursor:default;
}
.noIcon {
padding: 0px 4px 4px 0px;
}
a:hover, .linkActive:hover
{
background: #507aac;
a:hover, .linkActive:hover {
background: #507aac;
}
.linkPending, .linkPending:hover
{
color: #ffffff;
background: #507aac;
.linkPending, .linkPending:hover {
color: #ffffff;
background: #507aac;
}
a.white, a.white:link, a.white:visited, a.white:active
{
color: #40628a;
text-decoration: none;
background: #ffffff;
border: 1px solid #161616;
padding: 1px 4px 1px 4px;
margin: 0 2px 0 0;
cursor:default;
a.white, a.white:link, a.white:visited, a.white:active {
color: #40628a;
text-decoration: none;
background: #ffffff;
border: 1px solid #161616;
padding: 1px 4px 1px 4px;
margin: 0 2px 0 0;
cursor:default;
}
a.white:hover
{
color: #ffffff;
background: #40628a;
a.white:hover {
color: #ffffff;
background: #40628a;
}
.linkOn, a.linkOn:link, a.linkOn:visited, a.linkOn:active, a.linkOn:hover, .selected, a.selected:link, a.selected:visited, a.selected:active, a.selected:hover
{
color: #ffffff;
background: #2f943c;
.linkOn, a.linkOn:link, a.linkOn:visited, a.linkOn:active, a.linkOn:hover, .selected, a.selected:link, a.selected:visited, a.selected:active, a.selected:hover {
color: #ffffff;
background: #2f943c;
}
.linkOff, a.linkOff:link, a.linkOff:visited, a.linkOff:active, a.linkOff:hover, .disabled, a.disabled:link, a.disabled:visited, a.disabled:active, a.disabled:hover
{
color: #ffffff;
background: #999999;
border-color: #666666;
.linkOff, a.linkOff:link, a.linkOff:visited, a.linkOff:active, a.linkOff:hover, .disabled, a.disabled:link, a.disabled:visited, a.disabled:active, a.disabled:hover {
color: #ffffff;
background: #999999;
border-color: #666666;
}
a.icon, .linkOn.icon, .linkOff.icon, .selected.icon, .disabled.icon
{
position: relative;
padding: 1px 4px 2px 20px;
a.icon, .linkOn.icon, .linkOff.icon, .selected.icon, .disabled.icon {
position: relative;
padding: 1px 4px 2px 20px;
}
a.icon img, .linkOn.icon img, .linkOff.icon img, .selected.icon img, .disabled.icon img
{
position: absolute;
top: 0;
left: 0;
width: 18px;
height: 18px;
a.icon img, .linkOn.icon img, .linkOff.icon img, .selected.icon img, .disabled.icon img {
position: absolute;
top: 0;
left: 0;
width: 18px;
height: 18px;
}
ul
{
padding: 4px 0 0 10px;
margin: 0;
list-style-type: none;
ul {
padding: 4px 0 0 10px;
margin: 0;
list-style-type: none;
}
li
{
padding: 0 0 2px 0;
li {
padding: 0 0 2px 0;
}
img, a img
{
border-style:none;
img, a img {
border-style:none;
}
h1, h2, h3, h4, h5, h6
{
margin: 0;
padding: 16px 0 8px 0;
color: #517087;
clear: both;
h1, h2, h3, h4, h5, h6 {
margin: 0;
padding: 12px 0 6px 0;
color: #517087;
clear: both;
}
h1
{
font-size: 15px;
h1 {
font-size: 18px;
}
h2
{
font-size: 14px;
h2 {
font-size: 16px;
}
h3
{
font-size: 13px;
h3 {
font-size: 14px;
}
h4
{
font-size: 12px;
h4 {
font-size: 12px;
}
#uiWrapper
{
#uiWrapper {
width: 100%;
height: 100%;
height: 100%;
}
#uiTitleWrapper
{
position: relative;
#uiTitleWrapper {
position: relative;
height: 30px;
}
#uiTitle
{
position: absolute;
#uiTitle {
position: absolute;
top: 6px;
left: 44px;
width: 66%;
overflow: hidden;
color: #E9C183;
font-size: 16px;
left: 44px;
width: 66%;
overflow: hidden;
color: #E9C183;
font-size: 16px;
}
#uiTitle.icon {
padding: 6px 8px 6px 42px;
background-position: 2px 50%;
background-repeat: no-repeat;
}
#uiTitleFluff {
position: absolute;
top: 4px;
right: 12px;
width: 42px;
height: 24px;
background: url(uiTitleFluff.png) 50% 50% no-repeat;
}
#uiStatusIcon {
position: absolute;
top: 4px;
left: 12px;
width: 24px;
height: 24px;
}
#uiContent {
clear: both;
padding: 8px;
}
.good {
color: #4f7529;
font-weight: bold;
}
.average {
color: #cd6500;
font-weight: bold;
}
.bad {
color: #ee0000;
font-weight: bold;
}
.highlight {
color: #8BA5C4;
}
.dark {
color: #272727;
}
.notice {
position: relative;
background: url(uiNoticeBackground.jpg) 50% 50%;
color: #15345A;
font-size: 12px;
font-style: italic;
font-weight: bold;
padding: 3px 0px 3px 0px;
margin: 4px;
}
.notice.icon {
padding: 2px 4px 0 20px;
}
.notice img {
position: absolute;
top: 0;
left: 0;
width: 16px;
height: 16px;
}
div.notice {
clear: both;
}
.item {
width: 100%;
margin: 4px 0 0 0;
clear: both;
}
.itemLabel {
float: left;
width: 30%;
color: #e9c183;
}
.itemContent {
float: left;
width: 69%;
}
.itemContentSmall {
float: left;
width: 33%;
}
.statusDisplay {
background: #000000;
color: #ffffff;
border: 1px solid #40628a;
padding: 4px;
margin: 3px 0;
}
.statusLabel {
width: 138px;
float: left;
overflow: hidden;
color: #98B0C3;
}
.statusValue {
float: left;
}
.block {
padding: 8px;
margin: 10px 4px 4px 4px;
border: 1px solid #40628a;
background-color: #202020;
}
.block h3 {
padding: 0;
}
.displayBar {
position: relative;
width: 236px;
height: 16px;
border: 1px solid #666666;
float: left;
margin: 0 5px 0 0;
overflow: hidden;
background: #000000;
}
.displayBarText {
position: absolute;
top: -2px;
left: 5px;
width: 100%;
height: 100%;
color: #ffffff;
font-weight: normal;
}
.displayBarFill {
width: 0%;
height: 100%;
background: #40628a;
overflow: hidden;
float: left;
}
.displayBarFill.alignRight {
float: right;
}
.displayBarFill.good {
color: #ffffff;
background: #4f7529;
}
.displayBarFill.average {
color: #ffffff;
background: #cd6500;
}
.displayBarFill.bad {
color: #ffffff;
background: #ee0000;
}
.displayBarFill.highlight {
color: #ffffff;
background: #8BA5C4;
}
.clearBoth {
clear: both;
}
.clearLeft {
clear: left;
}
.clearRight {
clear: right;
}
.line {
width: 100%;
clear: both;
}
.inactive, , a.inactive:link, a.inactive:visited, a.inactive:active, a.inactive:hover {
color: #ffffff;
background: #999999;
border-color: #666666;
}
.fixedLeft {
width: 110px;
float: left;
}
.floatRight {
float: right;
}
#uiTitle.icon
/* DNA Modifier UI (dna_modifier.tmpl) */
.dnaBlock
{
padding: 6px 8px 6px 42px;
background-position: 2px 50%;
background-repeat: no-repeat;
float: left;
width: 90px;
padding: 0 0 5px 0;
}
#uiTitleFluff
{
position: absolute;
top: 4px;
right: 12px;
width: 42px;
height: 24px;
background: url(uiTitleFluff.png) 50% 50% no-repeat;
}
#uiStatusIcon
{
position: absolute;
top: 4px;
left: 12px;
width: 24px;
height: 24px;
}
#uiContent
{
clear: both;
padding: 8px;
}
.good
{
color: #4f7529;
font-weight: bold;
}
.average
{
color: #cd6500;
font-weight: bold;
}
.bad
{
color: #ee0000;
font-weight: bold;
}
.highlight
{
color: #8BA5C4;
}
.dark
{
color: #272727;
}
.notice
{
position: relative;
background: url(uiNoticeBackground.jpg) 50% 50% no-repeat;
color: #15345A;
font-size: 12px;
font-style: italic;
font-weight: bold;
padding: 3px 8px 2px 8px;
margin: 4px;
}
.notice.icon
{
padding: 2px 4px 0 20px;
}
.notice img
{
position: absolute;
top: 0;
left: 0;
width: 16px;
height: 16px;
}
div.notice
{
clear: both;
}
.item
{
width: 100%;
clear: both;
}
.itemLabel
.dnaBlockNumber
{
font-family: Fixed, monospace;
float: left;
width: 30%;
color: #e9c183;
}
.itemContent
{
float: left;
width: 69%;
}
.itemContentSmall
{
float: left;
width: 33%;
}
.statusDisplay
{
background: #000000;
color: #ffffff;
border: 1px solid #40628a;
padding: 4px;
margin: 3px 0;
}
.statusLabel
{
width: 138px;
float: left;
overflow: hidden;
color: #98B0C3;
}
.statusValue
{
float: left;
}
.block
{
padding: 8px;
margin: 10px 4px 4px 4px;
border: 1px solid #40628a;
background-color: #202020;
}
.block h3
{
background: #363636;
min-width: 20px;
height: 20px;
padding: 0;
text-align: center;
}
.displayBar
.dnaSubBlock
{
position: relative;
width: 236px;
height: 16px;
border: 1px solid #666666;
font-family: Fixed, monospace;
float: left;
margin: 0 5px 0 0;
overflow: hidden;
background: #000000;
padding: 0;
min-width: 16px;
height: 20px;
text-align: center;
}
.displayBarText
.mask
{
position: absolute;
top: -2px;
left: 5px;
position: fixed;
left: 0;
top: 0;
width: 100%;
height: 100%;
color: #ffffff;
font-weight: normal;
background: url(uiMaskBackground.png);
}
.displayBarFill
{
width: 0%;
height: 100%;
background: #40628a;
overflow: hidden;
float: left;
}
.displayBarFill.alignRight
{
float: right;
}
.displayBarFill.good
{
color: #ffffff;
background: #4f7529;
}
.displayBarFill.average
{
color: #ffffff;
background: #cd6500;
}
.displayBarFill.bad
{
color: #ffffff;
background: #ee0000;
}
.displayBarFill.highlight
{
color: #ffffff;
background: #8BA5C4;
}
.clearBoth
{
clear: both;
}
.clearLeft
{
clear: left;
}
.clearRight
{
clear: right;
}
.line
.maskContent
{
width: 100%;
clear: both;
}
.inactive, , a.inactive:link, a.inactive:visited, a.inactive:active, a.inactive:hover
{
color: #ffffff;
background: #999999;
border-color: #666666;
}
.fixedLeft
{
width: 110px;
float: left;
}
.floatRight
{
float: right;
height: 200px;
margin: 200px 0;
text-align: center;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 226 B

View File

@@ -19,9 +19,11 @@ NanoBaseHelpers = function ()
link: function( text, icon, parameters, status, elementClass, elementId) {
var iconHtml = '';
var iconClass = 'noIcon';
if (typeof icon != 'undefined' && icon)
{
iconHtml = '<div class="uiLinkPendingIcon"></div><div class="uiIcon16 ' + icon + '"></div>';
iconHtml = '<div class="uiLinkPendingIcon"></div><div class="uiIcon16 icon-' + icon + '"></div>';
iconClass = 'hasIcon';
}
if (typeof elementClass == 'undefined' || !elementClass)
@@ -37,10 +39,10 @@ NanoBaseHelpers = function ()
if (typeof status != 'undefined' && status)
{
return '<div class="link ' + elementClass + ' ' + status + '" ' + elementIdHtml + '>' + iconHtml + text + '</div>';
return '<div unselectable="on" class="link ' + iconClass + ' ' + elementClass + ' ' + status + '" ' + elementIdHtml + '>' + iconHtml + text + '</div>';
}
return '<div class="link linkActive ' + elementClass + '" data-href="' + generateHref(parameters) + '" ' + elementIdHtml + '>' + iconHtml + text + '</div>';
return '<div unselectable="on" class="link linkActive ' + iconClass + ' ' + elementClass + '" data-href="' + generateHref(parameters) + '" ' + elementIdHtml + '>' + iconHtml + text + '</div>';
},
// Round a number to the nearest integer
round: function(number) {
@@ -114,6 +116,54 @@ NanoBaseHelpers = function ()
var percentage = Math.round((value - rangeMin) / (rangeMax - rangeMin) * 100);
return '<div class="displayBar ' + styleClass + '"><div class="displayBarFill ' + styleClass + '" style="width: ' + percentage + '%;"></div><div class="displayBarText ' + styleClass + '">' + showText + '</div></div>';
},
// Display DNA Blocks (for the DNA Modifier UI)
displayDNABlocks: function(dnaString, selectedBlock, selectedSubblock, blockSize, paramKey) {
if (!dnaString)
{
return '<div class="notice">Please place a valid subject into the DNA modifier.</div>';
}
var characters = dnaString.split('');
var html = '<div class="dnaBlock"><div class="link dnaBlockNumber">1</div>';
var block = 1;
var subblock = 1;
for (index in characters)
{
if (!characters.hasOwnProperty(index) || typeof characters[index] === 'object')
{
continue;
}
var selectBlockKey = 'select' + paramKey + 'Block';
var selectSubblockKey = 'select' + paramKey + 'Subblock';
var parameters = { selectBlockKey : block, selectSubblockKey : subblock };
var status = 'linkActive';
if (block == selectedBlock && subblock == selectedSubblock)
{
status = 'selected';
}
html += '<div class="link ' + status + ' dnaSubBlock" data-href="' + generateHref(parameters) + '" id="dnaBlock' + index + '">' + characters[index] + '</div>'
index++;
if (index % blockSize == 0 && index < characters.length)
{
block++;
subblock = 1;
html += '</div><div class="dnaBlock"><div class="link dnaBlockNumber">' + block + '</div>';
}
else
{
subblock++;
}
}
html += '</div>';
return html;
}
});
}

View File

@@ -79,12 +79,13 @@ Used In File(s): \code\game\machinery\cryo.dm
Beaker:
</div>
<div class="itemContent" style="width: 40%;">
{^{if isBeakerLoaded}}
{^{for beakerContents}}
<span class="highlight">{^{:volume}} units of {^{:name}}</span><br>
{^{if isBeakerLoaded}}
{^{:beakerLabel ? beakerLabel : '<span class="average">No label</span>'}}<br>
{^{if beakerVolume}}
<span class="highlight">{^{:beakerVolume}} units remaining</span><br>
{{else}}
<span class="bad">Beaker is empty</span>
{{/for}}
{{/if}}
{{else}}
<span class="average"><i>No beaker loaded</i></span>
{{/if}}

View File

@@ -0,0 +1,310 @@
<!--
Title: DNA Modifier UI
Used In File(s): D:\Development\SS13-BS12\code\game\dna\dna_modifier.dm
-->
<h3>Status</h3>
<div class="statusDisplay">
{^{if !hasOccupant}}
<div class="line">Cell Unoccupied</div>
{{else}}
<div class="line">
{^{:occupant.name}}&nbsp;=>&nbsp;
{^{if occupant.stat == 0}}
<span class="good">Conscious</span>
{{else occupant.stat == 1}}
<span class="average">Unconscious</span>
{{else}}
<span class="bad">DEAD</span>
{{/if}}
</div>
{^{if !occupant.isViableSubject || !occupant.uniqueIdentity || !occupant.structuralEnzymes}}
<div class="notice">
The occupant's DNA structure is ruined beyond recognition, please insert a subject with an intact DNA structure.
</div>
{{else occupant.stat < 2}}
<div class="line">
<div class="statusLabel">Health:</div>
{^{if occupant.health >= 0}}
{^{:~displayBar(occupant.health, 0, occupant.maxHealth, 'good')}}
{{else}}
{^{:~displayBar(occupant.health, 0, occupant.minHealth, 'average alignRight')}}
{{/if}}
<div class="statusValue">{^{:~round(occupant.health)}}</div>
</div>
<div class="line">
<div class="statusLabel">Radiation:</div>
{^{:~displayBar(occupant.radiationLevel, 0, 100, 'average')}}
<div class="statusValue">{^{:~round(occupant.radiationLevel)}}</div>
</div>
<div class="line">
<div class="statusLabel">Unique Enzymes:</div>
<div class="statusValue">{^{:occupant.uniqueEnzymes ? occupant.uniqueEnzymes : '<span class="bad">Unknown</span>'}}</div>
</div>
<!--<div class="line">
<div class="statusLabel"><small>Unique Identifier:</small></div>
<div class="statusValue"><small>{^{:occupant.uniqueIdentity}}</small></div>
</div>
<div class="line">
<div class="statusLabel"><small>Structural Enzymes:</small></div>
<div class="statusValue"><small>{^{:occupant.structuralEnzymes}}</small></div>
</div>-->
{{/if}}
{{/if}}
<div class="clearBoth"></div>
</div>
<h3>Operations</h3>
<div class="item">
{^{:~link('Modify U.I.', 'link', {'selectMenuKey' : 'ui'}, selectedMenuKey == 'ui' ? 'selected' : null)}}
{^{:~link('Modify S.E.', 'link', {'selectMenuKey' : 'se'}, selectedMenuKey == 'se' ? 'selected' : null)}}
{^{:~link('Transfer Buffers', 'disk', {'selectMenuKey' : 'buffer'}, selectedMenuKey == 'buffer' ? 'selected' : null)}}
{^{:~link('Rejuvenators', 'plusthick', {'selectMenuKey' : 'rejuvenators'}, selectedMenuKey == 'rejuvenators' ? 'selected' : null)}}
</div>
<div class="item">&nbsp;</div>
{^{if !selectedMenuKey || selectedMenuKey == 'ui'}}
<h3>Modify Unique Identifier</h3>
{^{:~displayDNABlocks(occupant.uniqueIdentity, selectedUIBlock, selectedUISubBlock, dnaBlockSize, 'UI')}}
<div class="clearBoth"></div>
<div class="item">
<div class="itemLabel">
Target:
</div>
<div class="itemContent">
{^{:~link('-', null, {'changeUITarget' : 0}, selectedUITarget > 0 ? null : 'disabled')}}
<div class="statusValue">&nbsp;{^{:selectedUITargetHex}}&nbsp;</div>
{^{:~link('+', null, {'changeUITarget' : 1}, selectedUITarget < 15 ? null : 'disabled')}}
</div>
</div>
<div class="item">
<div class="itemContent">
{^{:~link('Irradiate Block', 'radiation', {'pulseUIRadiation' : 1}, !occupant.isViableSubject ? 'disabled' : null)}}
</div>
</div>
{{else selectedMenuKey == 'se'}}
<h3>Modify Structural Enzymes</h3>
{^{:~displayDNABlocks(occupant.structuralEnzymes, selectedSEBlock, selectedSESubBlock, dnaBlockSize, 'SE')}}
<div class="clearBoth"></div>
<div class="item">
<div class="itemContent">
{^{:~link('Irradiate Block', 'radiation', {'pulseSERadiation' : 1}, !occupant.isViableSubject ? 'disabled' : null)}}
</div>
</div>
{{else selectedMenuKey == 'buffer'}}
<h3>Transfer Buffers</h3>
{^{for buffers}}
<h4>Buffer {{:#index + 1}}</h4>
<div class="item">
<div class="itemLabel">
Load Data:
</div>
<div class="itemContent">
{^{:~link('Subject U.I.', 'link', {'bufferOption' : 'saveUI', 'bufferId' : (#index + 1)}, !~root.hasOccupant ? 'disabled' : null)}}
{^{:~link('Subject U.I. + U.E.', 'link', {'bufferOption' : 'saveUIAndUE', 'bufferId' : (#index + 1)}, !~root.hasOccupant ? 'disabled' : null)}}
{^{:~link('Subject S.E.', 'link', {'bufferOption' : 'saveSE', 'bufferId' : (#index + 1)}, !~root.hasOccupant ? 'disabled' : null)}}
{^{:~link('From Disk', 'disk', {'bufferOption' : 'loadDisk', 'bufferId' : (#index + 1)}, !~root.hasDisk || !~root.disk.data ? 'disabled' : null)}}
</div>
</div>
{^{if data}}
<div class="item">
<div class="itemLabel">
Label:
</div>
<div class="itemContent">
{^{:label ? label : 'No Label'}}
</div>
</div>
<div class="item">
<div class="itemLabel">
Subject:
</div>
<div class="itemContent">
{^{:owner ? owner : '<span class="average">Unknown</span>'}}
</div>
</div>
<div class="item">
<div class="itemLabel" style="width: 20%">
Stored Data:
</div>
<div class="itemContent" style="width: 79%">
{^{:data == 'ui' ? 'Unique Identifiers' : 'Structural Enzymes'}}
{^{:ue ? ' + Unique Enzymes' : ''}}
</div>
</div>
{{else}}
<div class="item">
<div class="itemContent">
<span class="notice">This buffer is empty.</span>
</div>
</div>
{{/if}}
<div class="item">
<div class="itemLabel" style="width: 20%">
Options:
</div>
<div class="itemContent" style="width: 79%">
{^{:~link('Clear', 'trash', {'bufferOption' : 'clear', 'bufferId' : (#index + 1)}, !data ? 'disabled' : null)}}
{^{:~link('Create Injector', 'pencil', {'bufferOption' : 'createInjector', 'bufferId' : (#index + 1)}, !data ? 'disabled' : null)}}
{^{:~link('Transfer To Subject', 'radiation', {'bufferOption' : 'transfer', 'bufferId' : (#index + 1)}, !~root.hasOccupant || !data ? 'disabled' : null)}}
{^{:~link('Save To Disk', 'disk', {'bufferOption' : 'saveDisk', 'bufferId' : (#index + 1)}, !data || !~root.hasDisk ? 'disabled' : null)}}
</div>
</div>
{{/for}}
<h4>Data Disk</h4>
{^{if hasDisk}}
{^{if disk.data}}
<div class="item">
<div class="itemLabel">
Label:
</div>
<div class="itemContent">
{^{:disk.label ? disk.label : 'No Label'}}
</div>
</div>
<div class="item">
<div class="itemLabel">
Subject:
</div>
<div class="itemContent">
{^{:disk.owner ? disk.owner : '<span class="average">Unknown</span>'}}
</div>
</div>
<div class="item">
<div class="itemLabel">
Stored Data:
</div>
<div class="itemContent">
{^{:disk.data == 'ui' ? 'Unique Identifiers' : 'Structural Enzymes'}}
{^{:disk.ue ? ' + Unique Enzymes' : ''}}
</div>
</div>
{{else}}
<div class="item">
<div class="itemContent">
<span class="notice">Disk is blank.</span>
</div>
</div>
{{/if}}
{{else}}
<div class="item">
<div class="itemContent">
<span class="notice">No disk inserted.</span>
</div>
</div>
{{/if}}
<div class="item">
<div class="itemContent">
{^{:~link('Wipe Disk', 'trash', {'bufferOption' : 'wipeDisk'}, !hasDisk || !disk.data ? 'disabled' : null)}}
{^{:~link('Eject Disk', 'eject', {'bufferOption' : 'ejectDisk'}, !hasDisk ? 'disabled' : null)}}
</div>
</div>
{{else selectedMenuKey == 'rejuvenators'}}
<h3>Rejuvenators</h3>
<div class="item">
<div class="itemLabel">
Inject:
</div>
<div class="itemContent">
{^{:~link('5', 'pencil', {'injectRejuvenators' : 5}, !hasOccupant || !beakerVolume ? 'disabled' : null)}}
{^{:~link('10', 'pencil', {'injectRejuvenators' : 10}, !hasOccupant || !beakerVolume ? 'disabled' : null)}}
{^{:~link('20', 'pencil', {'injectRejuvenators' : 20}, !hasOccupant || !beakerVolume ? 'disabled' : null)}}
{^{:~link('30', 'pencil', {'injectRejuvenators' : 30}, !hasOccupant || !beakerVolume ? 'disabled' : null)}}
{^{:~link('50', 'pencil', {'injectRejuvenators' : 50}, !hasOccupant || !beakerVolume ? 'disabled' : null)}}
</div>
</div>
<div class="item">&nbsp;</div>
<div class="item">
<div class="itemLabel">
Beaker:
</div>
<div class="itemContent" style="width: 40%;">
{^{if isBeakerLoaded}}
{^{:beakerLabel ? beakerLabel : '<span class="average">No label</span>'}}<br>
{^{if beakerVolume}}
<span class="highlight">{^{:beakerVolume}} units remaining</span><br>
{{else}}
<span class="bad">Beaker is empty</span>
{{/if}}
{{else}}
<span class="average"><i>No beaker loaded</i></span>
{{/if}}
</div>
<div class="itemContent" style="width: 26%;">
{^{:~link('Eject Beaker', 'eject', {'ejectBeaker' : 1}, isBeakerLoaded ? null : 'disabled')}}
</div>
</div>
{{/if}}
<div class="item">&nbsp;</div>
{^{if selectedMenuKey == 'ui' || selectedMenuKey == 'se'}}
<h3>Radiation Emitter Settings</h3>
<div class="item">
<div class="itemLabel">
Intensity:
</div>
<div class="itemContent">
{^{:~link('-', null, {'radiationIntensity' : 0}, radiationIntensity > 1 ? null : 'disabled')}}
<div class="statusValue">&nbsp;{^{:radiationIntensity}}&nbsp;</div>
{^{:~link('+', null, {'radiationIntensity' : 1}, radiationIntensity < 10 ? null : 'disabled')}}
</div>
</div>
<div class="item">
<div class="itemLabel">
Duration:
</div>
<div class="itemContent">
{^{:~link('-', null, {'radiationDuration' : 0}, radiationDuration > 2 ? null : 'disabled')}}
<div class="statusValue">&nbsp;{^{:radiationDuration}}&nbsp;</div>
{^{:~link('+', null, {'radiationDuration' : 1}, radiationDuration < 20 ? null : 'disabled')}}
</div>
</div>
<div class="item">
<div class="itemLabel">
&nbsp;
</div>
<div class="itemContent">
{^{:~link('Pulse Radiation', 'radiation', {'pulseRadiation' : 1}, !hasOccupant ? 'disabled' : null)}}
</div>
</div>
{{/if}}
<div class="item">&nbsp;</div>
<hr>
<div class="item">
<div class="itemLabel">
Occupant:
</div>
<div class="itemContent">
{^{:~link('Eject Occupant', 'eject', {'ejectOccupant' : 1}, locked || !hasOccupant || irradiating ? 'disabled' : null)}}
</div>
</div>
<div class="item">
<div class="itemLabel">
Door Lock:
</div>
<div class="itemContent">
{^{:~link('Engaged', 'locked', {'toggleLock' : 1}, locked ? 'selected' : !hasOccupant ? 'disabled' : null)}}
{^{:~link('Disengaged', 'unlocked', {'toggleLock' : 1}, !locked ? 'selected' : irradiating ? 'disabled' : null)}}
</div>
</div>
{^{if irradiating}}
<div class="mask">
<div class="maskContent">
<h1>Irradiating Subject</h1>
<h3>For {^{:irradiating}} seconds.</h3>
</div>
</div>
{{/if}}