Merge remote-tracking branch 'upstream/master' into night_shift

# Conflicts:
#	paradise.dme
This commit is contained in:
tigercat2000
2018-03-30 10:20:21 -07:00
142 changed files with 537 additions and 873 deletions
@@ -137,7 +137,7 @@
/obj/machinery/atmospherics/binary/passive_gate/ui_interact(mob/user, ui_key = "main", datum/nanoui/ui = null, force_open = 1, var/master_ui = null, var/datum/topic_state/state = default_state)
user.set_machine(src)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "atmos_pump.tmpl", name, 385, 115, state = state)
ui.open()
@@ -174,7 +174,7 @@
investigate_log("was set to [target_pressure] kPa by [key_name(usr)]", "atmos")
update_icon()
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
/obj/machinery/atmospherics/binary/passive_gate/attackby(obj/item/weapon/W, mob/user, params)
if(!istype(W, /obj/item/weapon/wrench))
@@ -157,7 +157,7 @@ Thus, the two variables affect pump operation are set in New():
/obj/machinery/atmospherics/binary/pump/ui_interact(mob/user, ui_key = "main", datum/nanoui/ui = null, force_open = 1, var/master_ui = null, var/datum/topic_state/state = default_state)
user.set_machine(src)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "atmos_pump.tmpl", name, 385, 115, state = state)
ui.open()
@@ -194,7 +194,7 @@ Thus, the two variables affect pump operation are set in New():
investigate_log("was set to [target_pressure] kPa by [key_name(usr)]", "atmos")
update_icon()
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
/obj/machinery/atmospherics/binary/pump/power_change()
var/old_stat = stat
@@ -147,7 +147,7 @@ Thus, the two variables affect pump operation are set in New():
/obj/machinery/atmospherics/binary/volume_pump/ui_interact(mob/user, ui_key = "main", datum/nanoui/ui = null, force_open = 1, var/master_ui = null, var/datum/topic_state/state = default_state)
user.set_machine(src)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "atmos_pump.tmpl", name, 310, 115, state = state)
ui.open()
@@ -184,7 +184,7 @@ Thus, the two variables affect pump operation are set in New():
investigate_log("was set to [transfer_rate] L/s by [key_name(usr)]", "atmos")
update_icon()
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
/obj/machinery/atmospherics/binary/volume_pump/power_change()
var/old_stat = stat
@@ -112,7 +112,7 @@
/obj/machinery/atmospherics/omni/filter/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, force_open = 0)
usr.set_machine(src)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "omni_filter.tmpl", "Omni Filter Control", 330, 330)
ui.open()
@@ -197,7 +197,7 @@
switch_filter(dir_flag(href_list["dir"]), mode_return_switch(new_filter))
update_icon()
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return
/obj/machinery/atmospherics/omni/filter/proc/mode_return_switch(var/mode)
@@ -136,7 +136,7 @@
/obj/machinery/atmospherics/omni/mixer/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, force_open = 0)
usr.set_machine(src)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "omni_mixer.tmpl", "Omni Mixer Control", 360, 330)
ui.open()
@@ -202,7 +202,7 @@
con_lock(dir_flag(href_list["dir"]))
update_icon()
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return
/obj/machinery/atmospherics/omni/mixer/proc/switch_mode(var/port = NORTH, var/mode = ATM_NONE)
@@ -162,7 +162,7 @@ Filter types:
/obj/machinery/atmospherics/trinary/filter/ui_interact(mob/user, ui_key = "main", datum/nanoui/ui = null, force_open = 1, var/master_ui = null, var/datum/topic_state/state = default_state)
user.set_machine(src)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "atmos_filter.tmpl", name, 475, 155, state = state)
ui.open()
@@ -204,4 +204,4 @@ Filter types:
. = TRUE
update_icon()
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
@@ -125,7 +125,7 @@
/obj/machinery/atmospherics/trinary/mixer/ui_interact(mob/user, ui_key = "main", datum/nanoui/ui = null, force_open = 1, var/master_ui = null, var/datum/topic_state/state = default_state)
user.set_machine(src)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "atmos_mixer.tmpl", name, 370, 165, state = state)
ui.open()
@@ -176,4 +176,4 @@
. = TRUE
update_icon()
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
View File
+1 -1
View File
@@ -101,7 +101,7 @@
#define FIRE_PRIORITY_PARALLAX 65
#define FIRE_PRIORITY_FLIGHTPACKS 80
#define FIRE_PRIORITY_MOBS 100
#define FIRE_PRIORITY_TGUI 110
#define FIRE_PRIORITY_NANOUI 110
#define FIRE_PRIORITY_TICKER 200
#define FIRE_PRIORITY_OVERLAYS 500
#define FIRE_PRIORITY_INPUT 1000 // This must always always be the max highest priority. Player input must never be lost.
+8
View File
@@ -526,6 +526,14 @@ proc/GaussRandRound(var/sigma,var/roundto)
return toReturn
//Searches contents of the atom and returns the sum of all w_class of obj/item within
/atom/proc/GetTotalContentsWeight(searchDepth = 5)
var/weight = 0
var/list/content = GetAllContents(searchDepth)
for(var/obj/item/I in content)
weight += I.w_class
return weight
//Step-towards method of determining whether one atom can see another. Similar to viewers()
/proc/can_see(var/atom/source, var/atom/target, var/length=5) // I couldnt be arsed to do actual raycasting :I This is horribly inaccurate.
var/turf/current = get_turf(source)
-2
View File
@@ -2,8 +2,6 @@ var/global/obj/effect/overlay/plmaster = null
var/global/obj/effect/overlay/slmaster = null
var/global/obj/effect/overlay/icemaster = null
// nanomanager, the manager for Nano UIs
var/datum/nanomanager/nanomanager = new()
// Event Manager, the manager for events.
var/datum/event_manager/event_manager = new()
// Announcer intercom, because too much stuff creates an intercom for one message then hard del()s it.
-197
View File
@@ -1,197 +0,0 @@
var/kill_air = 0
var/global/datum/controller/process/air_system/air_master
/datum/controller/process/air_system
var/list/excited_groups = list()
var/list/active_turfs = list()
var/list/hotspots = list()
//Special functions lists
var/list/turf/simulated/active_super_conductivity = list()
var/list/turf/simulated/high_pressure_delta = list()
var/current_cycle = 0
var/failed_ticks = 0
var/tick_progress = 0
// Stats
var/last_active = 0
var/last_excited = 0
var/last_hpd = 0
var/last_hotspots = 0
var/last_asc = 0
/datum/controller/process/air_system/setup()
name = "air"
schedule_interval = 4
start_delay = 4
var/watch = start_watch()
log_startup_progress("Processing geometry...")
setup_overlays() // Assign icons and such for gas-turf-overlays
setup_allturfs() // Get all currently active tiles that need processing each atmos tick.
log_startup_progress(" Geometry processed in [stop_watch(watch)]s.")
/datum/controller/process/air_system/doWork()
if(kill_air)
return 1
current_cycle++
process_pipenets()
process_atmos_machinery()
process_active_turfs()
process_excited_groups()
process_high_pressure_delta()
process_hotspots()
process_super_conductivity()
return 1
/datum/controller/process/air_system/statProcess()
..()
stat(null, "[last_active] active")
stat(null, "[last_excited] EG | [last_hpd] HPD | [last_asc] ASC | [last_hotspots] Hot")
stat(null, "[pipe_networks.len] pipe nets, [deferred_pipenet_rebuilds.len] deferred")
stat(null, "[atmos_machinery.len] atmos machines")
DECLARE_GLOBAL_CONTROLLER(air_system, air_master)
/datum/controller/process/air_system/proc/process_hotspots()
last_hotspots = hotspots.len
for(var/obj/effect/hotspot/H in hotspots)
H.process()
SCHECK
/datum/controller/process/air_system/proc/process_super_conductivity()
last_asc = active_super_conductivity.len
for(var/turf/simulated/T in active_super_conductivity)
T.super_conduct()
SCHECK
/datum/controller/process/air_system/proc/process_high_pressure_delta()
last_hpd = high_pressure_delta.len
for(var/turf/T in high_pressure_delta)
T.high_pressure_movements()
T.pressure_difference = 0
SCHECK
high_pressure_delta.Cut()
/datum/controller/process/air_system/proc/process_active_turfs()
last_active = active_turfs.len
for(var/turf/simulated/T in active_turfs)
T.process_cell()
SCHECK
/datum/controller/process/air_system/proc/process_pipenets()
for(last_object in deferred_pipenet_rebuilds)
var/obj/machinery/atmospherics/M = last_object
if(istype(M) && isnull(M.gcDestroyed))
try
M.build_network()
catch(var/exception/e)
catchException(e, M)
SCHECK
else
catchBadType(M)
deferred_pipenet_rebuilds -= M
for(last_object in pipe_networks)
var/datum/pipeline/pipeNetwork = last_object
if(istype(pipeNetwork) && isnull(pipeNetwork.gcDestroyed))
try
pipeNetwork.process()
catch(var/exception/e)
catchException(e, pipeNetwork)
SCHECK
else
catchBadType(pipeNetwork)
pipe_networks -= pipeNetwork
/datum/controller/process/air_system/proc/process_atmos_machinery()
for(last_object in atmos_machinery)
var/obj/machinery/M = last_object
if(istype(M) && isnull(M.gcDestroyed))
try
if(M.process_atmos() == PROCESS_KILL)
atmos_machinery.Remove(M)
continue
catch(var/exception/e)
catchException(e, M)
else
catchBadType(M)
atmos_machinery -= M
SCHECK
/datum/controller/process/air_system/proc/remove_from_active(var/turf/simulated/T)
if(istype(T))
T.excited = 0
active_turfs -= T
if(T.excited_group)
T.excited_group.garbage_collect()
/datum/controller/process/air_system/proc/add_to_active(var/turf/simulated/T, var/blockchanges = 1)
if(istype(T) && T.air)
T.excited = 1
active_turfs |= T
if(blockchanges && T.excited_group)
T.excited_group.garbage_collect()
else
for(var/direction in cardinal)
if(!(T.atmos_adjacent_turfs & direction))
continue
var/turf/simulated/S = get_step(T, direction)
if(istype(S))
add_to_active(S)
/datum/controller/process/air_system/proc/setup_allturfs(var/turfs_in = world)
for(var/turf/simulated/T in turfs_in)
T.CalculateAdjacentTurfs()
if(!T.blocks_air)
T.update_visuals()
for(var/direction in cardinal)
if(!(T.atmos_adjacent_turfs & direction))
continue
var/turf/enemy_tile = get_step(T, direction)
if(istype(enemy_tile,/turf/simulated/))
var/turf/simulated/enemy_simulated = enemy_tile
if(!T.air.compare(enemy_simulated.air))
T.excited = 1
active_turfs |= T
break
else
if(!T.air.check_turf_total(enemy_tile))
T.excited = 1
active_turfs |= T
/datum/controller/process/air_system/proc/process_excited_groups()
last_excited = excited_groups.len
for(var/datum/excited_group/EG in excited_groups)
EG.breakdown_cooldown++
if(EG.breakdown_cooldown == 10)
EG.self_breakdown()
SCHECK
return
if(EG.breakdown_cooldown > 20)
EG.dismantle()
SCHECK
/datum/controller/process/air_system/proc/setup_overlays()
plmaster = new /obj/effect/overlay()
plmaster.icon = 'icons/effects/tile_effects.dmi'
plmaster.icon_state = "plasma"
plmaster.layer = FLY_LAYER
plmaster.mouse_opacity = 0
slmaster = new /obj/effect/overlay()
slmaster.icon = 'icons/effects/tile_effects.dmi'
slmaster.icon_state = "sleeping_agent"
slmaster.layer = FLY_LAYER
slmaster.mouse_opacity = 0
icemaster = new /obj/effect/overlay()
icemaster.icon = 'icons/turf/overlays.dmi'
icemaster.icon_state = "snowfloor"
icemaster.layer = TURF_LAYER+0.1
icemaster.mouse_opacity = 0
-16
View File
@@ -1,16 +0,0 @@
/*/datum/controller/process/inactivity/setup()
name = "inactivity"
schedule_interval = INACTIVITY_KICK
/datum/controller/process/inactivity/doWork()
if(config.kick_inactive)
for(var/client/C in clients)
if(C.is_afk(INACTIVITY_KICK))
if(!istype(C.mob, /mob/dead))
log_access("AFK: [key_name(C)]")
to_chat(C, "<SPAN CLASS='warning'>You have been inactive for more than 10 minutes and have been disconnected.</SPAN>")
del(C)
SCHECK
#undef INACTIVITY_KICK*/
-53
View File
@@ -1,53 +0,0 @@
var/global/datum/controller/process/spacedrift/drift_master
/datum/controller/process/spacedrift
var/list/processing_list = list()
/datum/controller/process/spacedrift/setup()
name = "spacedrift"
schedule_interval = 5
start_delay = 20
log_startup_progress("Spacedrift starting up.")
/datum/controller/process/spacedrift/statProcess()
..()
stat(null, "P:[processing_list.len]")
/datum/controller/process/spacedrift/doWork()
var/list/currentrun = processing_list.Copy()
while(currentrun.len)
var/atom/movable/AM = currentrun[currentrun.len]
currentrun.len--
if(!AM)
processing_list -= AM
SCHECK
continue
if(AM.inertia_next_move > world.time)
SCHECK
continue
if(!AM.loc || AM.loc != AM.inertia_last_loc || AM.Process_Spacemove(0))
AM.inertia_dir = 0
if(!AM.inertia_dir)
AM.inertia_last_loc = null
processing_list -= AM
SCHECK
continue
var/old_dir = AM.dir
var/old_loc = AM.loc
AM.inertia_moving = TRUE
step(AM, AM.inertia_dir)
AM.inertia_moving = FALSE
AM.inertia_next_move = world.time + AM.inertia_move_delay
if(AM.loc == old_loc)
AM.inertia_dir = 0
AM.setDir(old_dir)
AM.inertia_last_loc = AM.loc
SCHECK
DECLARE_GLOBAL_CONTROLLER(spacedrift, drift_master)
-61
View File
@@ -1,61 +0,0 @@
var/global/datum/controller/process/sun/sun
/datum/controller/process/sun
var/angle
var/dx
var/dy
var/rate
var/list/solars = list() // for debugging purposes, references solars list at the constructor
/datum/controller/process/sun/setup()
name = "sun"
schedule_interval = 600 // every 60 seconds
log_startup_progress("Sun ticker starting up.")
angle = rand (0,360) // the station position to the sun is randomised at round start
rate = rand(50,200)/100 // 50% - 200% of standard rotation
if(prob(50)) // same chance to rotate clockwise than counter-clockwise
rate = -rate
/datum/controller/process/sun/doWork()
calc_position()
update_solar_machinery()
DECLARE_GLOBAL_CONTROLLER(sun, sun)
// calculate the sun's position given the time of day
// at the standard rate (100%) the angle is increase/decreased by 6 degrees every minute.
// a full rotation thus take a game hour in that case
/datum/controller/process/sun/proc/calc_position()
angle = (360 + angle + rate * 6) % 360 // increase/decrease the angle to the sun, adjusted by the rate
// now calculate and cache the (dx,dy) increments for line drawing
var/s = sin(angle)
var/c = cos(angle)
// Either "abs(s) < abs(c)" or "abs(s) >= abs(c)"
// In both cases, the greater is greater than 0, so, no "if 0" check is needed for the divisions
if(abs(s) < abs(c))
dx = s / abs(c)
dy = c / abs(c)
else
dx = s / abs(s)
dy = c / abs(s)
//now tell the solar control computers to update their status and linked devices
/datum/controller/process/sun/proc/update_solar_machinery()
for(last_object in solars)
var/obj/machinery/power/solar_control/SC = last_object
if(istype(SC) && isnull(SC.gcDestroyed))
if(!SC.powernet)
solars -= SC
continue
try
SC.update()
catch(var/exception/e)
catchException(e, SC)
SCHECK
else
catchBadType(SC)
solars -= SC
-138
View File
@@ -1,138 +0,0 @@
#define MAX_THROWING_DIST 512 // 2 z-levels on default width
#define MAX_TICKS_TO_MAKE_UP 3 //how many missed ticks will we attempt to make up for this run.
var/global/datum/controller/process/throwing/throw_master
/datum/controller/process/throwing
var/list/processing_list
/datum/controller/process/throwing/setup()
name = "throwing"
schedule_interval = 1
start_delay = 20
log_startup_progress("Throw ticker starting up.")
/datum/controller/process/throwing/statProcess()
..()
stat(null, "P:[processing_list.len]")
/datum/controller/process/throwing/started()
..()
if(!processing_list)
processing_list = list()
/datum/controller/process/throwing/doWork()
for(last_object in processing_list)
var/atom/movable/AM = last_object
if(istype(AM) && isnull(AM.gcDestroyed))
var/datum/thrownthing/TT = processing_list[AM]
if(istype(TT) && isnull(TT.gcDestroyed))
TT.tick()
SCHECK
else
catchBadType(TT)
processing_list -= AM
AM.throwing = null
else
catchBadType(AM)
processing_list -= AM
SCHECK
DECLARE_GLOBAL_CONTROLLER(throwing, throw_master)
/datum/thrownthing
var/atom/movable/thrownthing
var/atom/target
var/turf/target_turf
var/init_dir
var/maxrange
var/speed
var/mob/thrower
var/diagonals_first
var/dist_travelled = 0
var/start_time
var/dist_x
var/dist_y
var/dx
var/dy
var/pure_diagonal
var/diagonal_error
var/datum/callback/callback
/datum/thrownthing/proc/tick()
var/atom/movable/AM = thrownthing
if(!isturf(AM.loc) || !AM.throwing)
finalize()
return
if(dist_travelled && hitcheck()) //to catch sneaky things moving on our tile while we slept
finalize()
return
var/atom/step
// calculate how many tiles to move, making up for any missed ticks.
if((dist_travelled >= maxrange || AM.loc == target_turf) && has_gravity(AM, AM.loc))
finalize()
return
if(dist_travelled <= max(dist_x, dist_y)) //if we haven't reached the target yet we home in on it, otherwise we use the initial direction
step = get_step(AM, get_dir(AM, target_turf))
else
step = get_step(AM, init_dir)
if(!pure_diagonal && !diagonals_first) // not a purely diagonal trajectory and we don't want all diagonal moves to be done first
if(diagonal_error >= 0 && max(dist_x, dist_y) - dist_travelled != 1) // we do a step forward unless we're right before the target
step = get_step(AM, dx)
diagonal_error += (diagonal_error < 0) ? dist_x / 2 : -dist_y
if(!step) // going off the edge of the map makes get_step return null, don't let things go off the edge
finalize()
return
AM.Move(step, get_dir(AM, step))
if(!AM.throwing) // we hit something during our move
finalize(hit = TRUE)
return
dist_travelled++
if(dist_travelled > MAX_THROWING_DIST)
finalize()
return
/datum/thrownthing/proc/finalize(hit = FALSE)
set waitfor = 0
throw_master.processing_list -= thrownthing
// done throwning, either because it hit something or it finished moving
thrownthing.throwing = null
if(!hit)
for(var/thing in get_turf(thrownthing)) //looking for our target on the turf we land on.
var/atom/A = thing
if(A == target)
hit = 1
thrownthing.throw_impact(A, src)
break
if(!hit)
thrownthing.throw_impact(get_turf(thrownthing), src) // we haven't hit something yet and we still must, let's hit the ground.
thrownthing.newtonian_move(init_dir)
else
thrownthing.newtonian_move(init_dir)
if(callback)
callback.Invoke()
/datum/thrownthing/proc/hit_atom(atom/A)
thrownthing.throw_impact(A, src)
thrownthing.newtonian_move(init_dir)
finalize(TRUE)
/datum/thrownthing/proc/hitcheck()
for(var/thing in get_turf(thrownthing))
var/atom/movable/AM = thing
if(AM == thrownthing)
continue
if(AM.density && !(AM.pass_flags & LETPASSTHROW) && !(AM.flags & ON_BORDER))
thrownthing.throwing = null
thrownthing.throw_impact(AM, src)
return TRUE
+33
View File
@@ -0,0 +1,33 @@
SUBSYSTEM_DEF(nanoui)
name = "Nanoui"
wait = 9
flags = SS_NO_INIT
priority = FIRE_PRIORITY_NANOUI
runlevels = RUNLEVEL_LOBBY | RUNLEVELS_DEFAULT
var/list/currentrun = list()
var/list/open_uis = list() // A list of open UIs, grouped by src_object and ui_key.
var/list/processing_uis = list() // A list of processing UIs, ungrouped.
/datum/controller/subsystem/nanoui/Shutdown()
close_all_uis()
/datum/controller/subsystem/nanoui/stat_entry()
..("P:[processing_uis.len]")
/datum/controller/subsystem/nanoui/fire(resumed = 0)
if(!resumed)
src.currentrun = processing_uis.Copy()
//cache for sanic speed (lists are references anyways)
var/list/currentrun = src.currentrun
while(currentrun.len)
var/datum/nanoui/ui = currentrun[currentrun.len]
currentrun.len--
if(ui && ui.user && ui.src_object)
ui.process()
else
processing_uis.Remove(ui)
if(MC_TICK_CHECK)
return
+42
View File
@@ -0,0 +1,42 @@
SUBSYSTEM_DEF(sun)
name = "Sun"
wait = 600
flags = SS_NO_TICK_CHECK|SS_NO_INIT
var/angle
var/dx
var/dy
var/rate
var/list/solars = list()
/datum/controller/subsystem/sun/PreInit()
angle = rand (0,360) // the station position to the sun is randomised at round start
rate = rand(50,200)/100 // 50% - 200% of standard rotation
if(prob(50)) // same chance to rotate clockwise than counter-clockwise
rate = -rate
/datum/controller/subsystem/sun/stat_entry(msg)
..("P:[solars.len]")
/datum/controller/subsystem/sun/fire()
angle = (360 + angle + rate * 6) % 360 // increase/decrease the angle to the sun, adjusted by the rate
// now calculate and cache the (dx,dy) increments for line drawing
var/s = sin(angle)
var/c = cos(angle)
// Either "abs(s) < abs(c)" or "abs(s) >= abs(c)"
// In both cases, the greater is greater than 0, so, no "if 0" check is needed for the divisions
if(abs(s) < abs(c))
dx = s / abs(c)
dy = c / abs(c)
else
dx = s / abs(s)
dy = c / abs(s)
//now tell the solar control computers to update their status and linked devices
for(var/obj/machinery/power/solar_control/SC in solars)
if(!SC.powernet)
solars.Remove(SC)
continue
SC.update()
+2 -2
View File
@@ -49,7 +49,7 @@
debug_variables(job_master)
feedback_add_details("admin_verb","DJobs")
if("Sun")
debug_variables(sun)
debug_variables(SSsun)
feedback_add_details("admin_verb","DSun")
if("Radio")
debug_variables(radio_controller)
@@ -73,7 +73,7 @@
debug_variables(garbageCollector)
feedback_add_details("admin_verb","DGarbage")
if("Nano")
debug_variables(nanomanager)
debug_variables(SSnanoui)
feedback_add_details("admin_verb","DNano")
if("Vote")
debug_variables(vote)
+14 -12
View File
@@ -101,7 +101,7 @@
//Presets for item actions
/datum/action/item_action
check_flags = AB_CHECK_RESTRAINED|AB_CHECK_STUNNED|AB_CHECK_LYING|AB_CHECK_CONSCIOUS
var/use_itemicon = TRUE
/datum/action/item_action/New(Target)
..()
var/obj/item/I = target
@@ -121,17 +121,19 @@
return 1
/datum/action/item_action/ApplyIcon(obj/screen/movable/action_button/current_button)
current_button.overlays.Cut()
if(target)
var/obj/item/I = target
var/old_layer = I.layer
var/old_plane = I.plane
I.layer = 21
I.plane = HUD_PLANE
current_button.overlays += I
I.layer = old_layer
I.plane = old_plane
if(use_itemicon)
current_button.overlays.Cut()
if(target)
var/obj/item/I = target
var/old_layer = I.layer
var/old_plane = I.plane
I.layer = 21
I.plane = HUD_PLANE
current_button.overlays += I
I.layer = old_layer
I.plane = old_plane
else
..()
/datum/action/item_action/toggle_light
name = "Toggle Light"
+1 -1
View File
@@ -89,7 +89,7 @@
current.mind = null
leave_all_huds() //leave all the huds in the old body, so it won't get huds if somebody else enters it
nanomanager.user_transferred(current, new_character)
SSnanoui.user_transferred(current, new_character)
if(new_character.mind) //remove any mind currently in our new body's mind variable
new_character.mind.current = null
+4 -4
View File
@@ -10,10 +10,10 @@ var/const/AUTOLATHE_DISABLE_WIRE = 4
switch(index)
if(AUTOLATHE_HACK_WIRE)
return "Hack"
if(AUTOLATHE_SHOCK_WIRE)
return "Shock"
if(AUTOLATHE_DISABLE_WIRE)
return "Disable"
@@ -69,6 +69,6 @@ var/const/AUTOLATHE_DISABLE_WIRE = 4
updateUIs()
/datum/wires/autolathe/proc/updateUIs()
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
if(holder)
nanomanager.update_uis(holder)
SSnanoui.update_uis(holder)
+5 -5
View File
@@ -11,12 +11,12 @@ var/const/NUCLEARBOMB_WIRE_SAFETY = 4
switch(index)
if(NUCLEARBOMB_WIRE_LIGHT)
return "Bomb Light"
if(NUCLEARBOMB_WIRE_TIMING)
return "Bomb Timing"
if(NUCLEARBOMB_WIRE_SAFETY)
return "Bomb Safety"
return "Bomb Safety"
/datum/wires/nuclearbomb/CanUse(mob/living/L)
var/obj/machinery/nuclearbomb/N = holder
@@ -77,6 +77,6 @@ var/const/NUCLEARBOMB_WIRE_SAFETY = 4
N.lighthack = !N.lighthack
/datum/wires/nuclearbomb/proc/updateUIs()
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
if(holder)
nanomanager.update_uis(holder)
SSnanoui.update_uis(holder)
+4 -4
View File
@@ -76,7 +76,7 @@ var/list/wireColours = list("red", "blue", "green", "black", "orange", "brown",
ui_interact(user)
/datum/wires/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "wires.tmpl", holder.name, window_x, window_y)
ui.open()
@@ -174,7 +174,7 @@ var/list/wireColours = list("red", "blue", "green", "black", "orange", "brown",
else
to_chat(L, "<span class='error'>You need a remote signaller!</span>")
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return 1
//
@@ -184,12 +184,12 @@ var/list/wireColours = list("red", "blue", "green", "black", "orange", "brown",
// Called when wires cut/mended.
/datum/wires/proc/UpdateCut(index, mended)
if(holder)
nanomanager.update_uis(holder)
SSnanoui.update_uis(holder)
// Called when wire pulsed. Add code here.
/datum/wires/proc/UpdatePulsed(index)
if(holder)
nanomanager.update_uis(holder)
SSnanoui.update_uis(holder)
/datum/wires/proc/CanUse(mob/L)
return 1
+6 -6
View File
@@ -371,7 +371,7 @@
I.forceMove(src)
src.disk = I
to_chat(user, "You insert [I].")
nanomanager.update_uis(src) // update all UIs attached to src()
SSnanoui.update_uis(src) // update all UIs attached to src()
return
else
..()
@@ -469,7 +469,7 @@
return
// update the ui if it exists, returns null if no ui is passed/found
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
// the ui does not exist, so we'll create a new() one
// for a list of parameters and their descriptions see the code docs in \code\modules\nano\nanoui.dm
@@ -580,7 +580,7 @@
irradiating = src.radiation_duration
var/lock_state = src.connected.locked
src.connected.locked = 1//lock it
nanomanager.update_uis(src) // update all UIs attached to src
SSnanoui.update_uis(src) // update all UIs attached to src
sleep(10*src.radiation_duration) // sleep for radiation_duration seconds
@@ -685,7 +685,7 @@
irradiating = src.radiation_duration
var/lock_state = src.connected.locked
src.connected.locked = 1//lock it
nanomanager.update_uis(src) // update all UIs attached to src
SSnanoui.update_uis(src) // update all UIs attached to src
sleep(10*src.radiation_duration) // sleep for radiation_duration seconds
@@ -753,7 +753,7 @@
irradiating = src.radiation_duration
var/lock_state = src.connected.locked
src.connected.locked = 1 //lock it
nanomanager.update_uis(src) // update all UIs attached to src
SSnanoui.update_uis(src) // update all UIs attached to src
sleep(10*src.radiation_duration) // sleep for radiation_duration seconds
@@ -888,7 +888,7 @@
irradiating = 2
var/lock_state = src.connected.locked
src.connected.locked = 1//lock it
nanomanager.update_uis(src) // update all UIs attached to src
SSnanoui.update_uis(src) // update all UIs attached to src
sleep(2 SECONDS)
+6 -6
View File
@@ -46,7 +46,7 @@ var/bomb_set
if(timeleft <= 0)
spawn
explode()
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return
/obj/machinery/nuclearbomb/attackby(obj/item/weapon/O as obj, mob/user as mob, params)
@@ -177,7 +177,7 @@ var/bomb_set
return
/obj/machinery/nuclearbomb/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "nuclear_bomb.tmpl", "Nuke Control Panel", 450, 550, state = physical_state)
ui.open()
@@ -280,11 +280,11 @@ var/bomb_set
timeleft = min(max(round(src.timeleft), 120), 600)
if(href_list["timer"])
if(timing == -1.0)
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return
if(safety)
to_chat(usr, "<span class='warning'>The safety is still on.</span>")
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return
timing = !(timing)
if(timing)
@@ -314,7 +314,7 @@ var/bomb_set
if(removal_stage == 5)
anchored = 0
visible_message("<span class='warning'>\The [src] makes a highly unpleasant crunching noise. It looks like the anchoring bolts have been cut.</span>")
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return
if(!isinspace())
@@ -326,7 +326,7 @@ var/bomb_set
else
to_chat(usr, "<span class='warning'>There is nothing to anchor to!</span>")
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
/obj/machinery/nuclearbomb/ex_act(severity)
return
+2 -2
View File
@@ -384,8 +384,8 @@ You are weak to holy things and starlight. Don't go into space and avoid the Cha
var/ay = owner.y
for(var/i = 1 to 20)
ax += sun.dx
ay += sun.dy
ax += SSsun.dx
ay += SSsun.dy
var/turf/T = locate(round(ax, 0.5), round(ay, 0.5), owner.z)
+2 -2
View File
@@ -100,7 +100,7 @@
/obj/machinery/atmospherics/unary/cold_sink/freezer/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
// update the ui if it exists, returns null if no ui is passed/found
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
// the ui does not exist, so we'll create a new() one
// for a list of parameters and their descriptions see the code docs in \code\modules\nano\nanoui.dm
@@ -258,7 +258,7 @@
/obj/machinery/atmospherics/unary/heat_reservoir/heater/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
// update the ui if it exists, returns null if no ui is passed/found
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
// the ui does not exist, so we'll create a new() one
// for a list of parameters and their descriptions see the code docs in \code\modules\nano\nanoui.dm
+1 -1
View File
@@ -140,7 +140,7 @@
ui_interact(user)
/obj/machinery/sleeper/ui_interact(mob/user, ui_key = "main", datum/nanoui/ui = null, force_open = 1)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "sleeper.tmpl", "Sleeper", 550, 770)
ui.open()
+1 -1
View File
@@ -321,7 +321,7 @@
/obj/machinery/body_scanconsole/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "adv_med.tmpl", "Body Scanner", 690, 600)
ui.open()
+1 -1
View File
@@ -796,7 +796,7 @@
return thresholds
/obj/machinery/alarm/ui_interact(mob/user, ui_key = "main", datum/nanoui/ui = null, force_open = 1, var/master_ui = null, var/datum/topic_state/state = default_state)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "air_alarm.tmpl", name, 570, 410, state = state)
ui.open()
+2 -2
View File
@@ -367,7 +367,7 @@ update_flag
..()
nanomanager.update_uis(src) // Update all NanoUIs attached to src
SSnanoui.update_uis(src) // Update all NanoUIs attached to src
@@ -389,7 +389,7 @@ update_flag
return
// update the ui if it exists, returns null if no ui is passed/found
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
// the ui does not exist, so we'll create a new() one
// for a list of parameters and their descriptions see the code docs in \code\modules\nano\nanoui.dm
+1 -1
View File
@@ -107,7 +107,7 @@
/obj/machinery/portable_atmospherics/pump/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1, var/datum/topic_state/state = physical_state)
// update the ui if it exists, returns null if no ui is passed/found
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
// the ui does not exist, so we'll create a new() one
// for a list of parameters and their descriptions see the code docs in \code\modules\nano\nanoui.dm
+1 -1
View File
@@ -118,7 +118,7 @@
/obj/machinery/portable_atmospherics/scrubber/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1, var/datum/topic_state/state = physical_state)
// update the ui if it exists, returns null if no ui is passed/found
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
// the ui does not exist, so we'll create a new() one
// for a list of parameters and their descriptions see the code docs in \code\modules\nano\nanoui.dm
+6 -6
View File
@@ -82,7 +82,7 @@
ui_interact(user)
/obj/machinery/autolathe/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "autolathe.tmpl", name, 800, 550)
ui.open()
@@ -175,7 +175,7 @@
return 1
if(default_deconstruction_screwdriver(user, "autolathe_t", "autolathe", O))
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return
if(exchange_parts(user, O))
@@ -239,7 +239,7 @@
use_power(max(500, inserted / 10))
qdel(O)
busy = 0
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
/obj/machinery/autolathe/attack_ghost(mob/user)
interact(user)
@@ -318,7 +318,7 @@
screen = AUTOLATHE_SEARCH_MENU
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return 1
/obj/machinery/autolathe/RefreshParts()
@@ -353,7 +353,7 @@
else
var/list/materials_used = list(MAT_METAL=metal_cost/coeff, MAT_GLASS=glass_cost/coeff)
materials.use_amount(materials_used)
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
sleep(32/coeff)
if(is_stack)
var/obj/item/stack/S = new D.build_path(BuildTurf)
@@ -362,7 +362,7 @@
var/obj/item/new_item = new D.build_path(BuildTurf)
new_item.materials[MAT_METAL] /= coeff
new_item.materials[MAT_GLASS] /= coeff
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
desc = initial(desc)
/obj/machinery/autolathe/proc/can_build(datum/design/D, multiplier = 1, custom_metal, custom_glass)
+1 -1
View File
@@ -93,7 +93,7 @@
// onclose(user, "op")
/obj/machinery/computer/operating/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)//ui is mostly copy pasta from the sleeper ui
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "op_computer.tmpl", "Patient Monitor", 650, 455)
ui.open()
+2 -2
View File
@@ -33,7 +33,7 @@
to_chat(user, "<span class='warning'>You have been locked out from this console!</span>")
/obj/machinery/computer/aifixer/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "ai_fixer.tmpl", "AI System Integrity Restorer", 550, 500)
@@ -90,7 +90,7 @@
if(radio == 0 || radio == 1)
occupant.aiRadio.disabledAi = radio
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
update_icon()
return
+1 -1
View File
@@ -22,7 +22,7 @@ var/global/list/minor_air_alarms = list()
ui_interact(user)
/obj/machinery/computer/atmos_alert/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "atmos_alert.tmpl", src.name, 500, 500)
ui.open()
+2 -2
View File
@@ -125,7 +125,7 @@
return access
/obj/machinery/computer/security/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "sec_camera.tmpl", "Camera Console", 900, 800)
@@ -211,7 +211,7 @@
network += net
break
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
// Check if camera is accessible when jumping
/obj/machinery/computer/security/proc/can_access_camera(var/obj/machinery/camera/C, var/mob/M)
+7 -7
View File
@@ -138,7 +138,7 @@ var/time_last_changed_position = 0
id_card.loc = src
modify = id_card
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
attack_hand(user)
//Check if you can't touch a job in any way whatsoever
@@ -225,7 +225,7 @@ var/time_last_changed_position = 0
/obj/machinery/computer/card/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
user.set_machine(src)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "identification_computer.tmpl", src.name, 775, 700)
ui.open()
@@ -406,7 +406,7 @@ var/time_last_changed_position = 0
modify.registered_name = temp_name
else
visible_message("<span class='notice'>[src] buzzes rudely.</span>")
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
if("account")
if(is_authenticated(usr) && !target_dept)
@@ -414,7 +414,7 @@ var/time_last_changed_position = 0
if((modify == t2 && (in_range(src, usr) || (istype(usr, /mob/living/silicon))) && istype(loc, /turf)))
var/account_num = text2num(href_list["account"])
modify.associated_account_number = account_num
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
if("mode")
mode = text2num(href_list["mode_target"])
@@ -425,7 +425,7 @@ var/time_last_changed_position = 0
playsound(loc, 'sound/goonstation/machines/printer_dotmatrix.ogg', 50, 1)
spawn(50)
printing = null
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
var/obj/item/weapon/paper/P = new(loc)
if(mode == 2)
@@ -493,7 +493,7 @@ var/time_last_changed_position = 0
opened_positions[edit_job_target]++
log_game("[key_name(usr)] has opened a job slot for job \"[j]\".")
message_admins("[key_name_admin(usr)] has opened a job slot for job \"[j.title]\".")
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
if("make_job_unavailable")
// MAKE JOB POSITION UNAVAILABLE FOR LATE JOINERS
@@ -513,7 +513,7 @@ var/time_last_changed_position = 0
opened_positions[edit_job_target]--
log_game("[key_name(usr)] has closed a job slot for job \"[j]\".")
message_admins("[key_name_admin(usr)] has closed a job slot for job \"[j.title]\".")
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
if("prioritize_job")
// TOGGLE WHETHER JOB APPEARS AS PRIORITIZED IN THE LOBBY
+19 -19
View File
@@ -88,7 +88,7 @@
W.loc = src
src.diskette = W
to_chat(user, "You insert [W].")
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return
else if(istype(W, /obj/item/device/multitool))
var/obj/item/device/multitool/M = W
@@ -122,7 +122,7 @@
return
// Set up the Nano UI
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "cloning_console.tmpl", "Cloning Console UI", 640, 520)
ui.open()
@@ -204,16 +204,16 @@
scan_mob(scanner.occupant)
loading = 0
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
if(href_list["task"])
switch(href_list["task"])
if("autoprocess")
autoprocess = 1
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
if("stopautoprocess")
autoprocess = 0
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
//No locking an open scanner.
else if((href_list["lock"]) && (!isnull(src.scanner)))
@@ -257,12 +257,12 @@
if("load")
if((isnull(src.diskette)) || isnull(src.diskette.buf))
src.temp = "<span class=\"bad\">Error: The disk's data could not be read.</span>"
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return
if(isnull(src.active_record))
src.temp = "<span class=\"bad\">Error: No active record was found.</span>"
src.menu = 1
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return
src.active_record = src.diskette.buf.copy()
@@ -277,7 +277,7 @@
else if(href_list["save_disk"]) //Save to disk!
if((isnull(src.diskette)) || (src.diskette.read_only) || (isnull(src.active_record)))
src.temp = "<span class=\"bad\">Error: The data could not be saved.</span>"
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return
// DNA2 makes things a little simpler.
@@ -294,7 +294,7 @@
src.temp = "Save \[[href_list["save_disk"]]\] successful."
else if(href_list["refresh"])
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
else if(href_list["selectpod"])
var/obj/machinery/clonepod/selected = locate(href_list["selectpod"])
@@ -346,7 +346,7 @@
scan_mode = 0
src.add_fingerprint(usr)
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return
/obj/machinery/computer/cloning/proc/scan_mob(mob/living/carbon/human/subject as mob, var/scan_brain = 0)
@@ -358,7 +358,7 @@
return
if((isnull(subject)) || (!(ishuman(subject))) || (!subject.dna) || (NO_SCAN in subject.species.species_traits))
scantemp = "<span class=\"bad\">Error: Unable to locate valid genetic data.</span>"
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return
if(subject.get_int_organ(/obj/item/organ/internal/brain))
var/obj/item/organ/internal/brain/Brn = subject.get_int_organ(/obj/item/organ/internal/brain)
@@ -366,31 +366,31 @@
var/datum/species/S = all_species[Brn.dna.species] // stepladder code wooooo
if(NO_SCAN in S.species_traits)
scantemp = "<span class=\"bad\">Error: Subject's brain is incompatible.</span>"
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return
if(!subject.get_int_organ(/obj/item/organ/internal/brain))
scantemp = "<span class=\"bad\">Error: No signs of intelligence detected.</span>"
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return
if(subject.suiciding)
scantemp = "<span class=\"bad\">Error: Subject's brain is not responding to scanning stimuli.</span>"
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return
if((!subject.ckey) || (!subject.client))
scantemp = "<span class=\"bad\">Error: Mental interface failure.</span>"
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return
if((NOCLONE in subject.mutations) && src.scanner.scan_level < 2)
scantemp = "<span class=\"bad\">Error: Mental interface failure.</span>"
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return
if(scan_brain && !subject.get_int_organ(/obj/item/organ/internal/brain))
scantemp = "<span class=\"bad\">Error: No brain found.</span>"
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return
if(!isnull(find_record(subject.ckey)))
scantemp = "Subject already in database."
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return
subject.dna.check_integrity()
@@ -427,7 +427,7 @@
src.records += R
scantemp = "Subject successfully scanned. " + extra_info
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
//Find a specific record by key.
/obj/machinery/computer/cloning/proc/find_record(var/find_key)
+15 -15
View File
@@ -95,14 +95,14 @@
if(istype(id))
crew_announcement.announcer = GetNameAndAssignmentFromId(id)
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return
if(href_list["logout"])
authenticated = COMM_AUTHENTICATION_NONE
crew_announcement.announcer = ""
setMenuState(usr,COMM_SCREEN_MAIN)
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return
if(!is_authenticated(usr))
@@ -145,11 +145,11 @@
if(is_authenticated(usr) == COMM_AUTHENTICATION_MAX)
if(message_cooldown)
to_chat(usr, "<span class='warning'>Please allow at least one minute to pass between announcements.</span>")
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return
var/input = input(usr, "Please write a message to announce to the station crew.", "Priority Announcement")
if(!input || message_cooldown || ..() || !(is_authenticated(usr) == COMM_AUTHENTICATION_MAX))
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return
crew_announcement.Announce(input)
message_cooldown = 1
@@ -159,7 +159,7 @@
if("callshuttle")
var/input = input(usr, "Please enter the reason for calling the shuttle.", "Shuttle Call Reason.","") as text|null
if(!input || ..() || !is_authenticated(usr))
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return
call_shuttle_proc(usr, input)
@@ -170,7 +170,7 @@
if("cancelshuttle")
if(isAI(usr) || isrobot(usr))
to_chat(usr, "<span class='warning'>Firewalls prevent you from recalling the shuttle.</span>")
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return 1
var/response = alert("Are you sure you wish to recall the shuttle?", "Confirm", "Yes", "No")
if(response == "Yes")
@@ -229,11 +229,11 @@
if(is_authenticated(usr) == COMM_AUTHENTICATION_MAX)
if(centcomm_message_cooldown)
to_chat(usr, "<span class='warning'>Arrays recycling. Please stand by.</span>")
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return
var/input = stripped_input(usr, "Please enter the reason for requesting the nuclear self-destruct codes. Misuse of the nuclear request system will not be tolerated under any circumstances. Transmission does not guarantee a response.", "Self Destruct Code Request.","") as text|null
if(!input || ..() || !(is_authenticated(usr) == COMM_AUTHENTICATION_MAX))
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return
Nuke_request(input, usr)
to_chat(usr, "<span class='notice'>Request sent.</span>")
@@ -248,11 +248,11 @@
if(is_authenticated(usr) == COMM_AUTHENTICATION_MAX)
if(centcomm_message_cooldown)
to_chat(usr, "<span class='warning'>Arrays recycling. Please stand by.</span>")
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return
var/input = stripped_input(usr, "Please choose a message to transmit to Centcomm via quantum entanglement. Please be aware that this process is very expensive, and abuse will lead to... termination. Transmission does not guarantee a response.", "To abort, send an empty message.", "") as text|null
if(!input || ..() || !(is_authenticated(usr) == COMM_AUTHENTICATION_MAX))
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return
Centcomm_announce(input, usr)
print_centcom_report(input, station_time_timestamp() + " Captain's Message")
@@ -268,11 +268,11 @@
if((is_authenticated(usr) == COMM_AUTHENTICATION_MAX) && (src.emagged))
if(centcomm_message_cooldown)
to_chat(usr, "Arrays recycling. Please stand by.")
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return
var/input = stripped_input(usr, "Please choose a message to transmit to \[ABNORMAL ROUTING CORDINATES\] via quantum entanglement. Please be aware that this process is very expensive, and abuse will lead to... termination. Transmission does not guarantee a response.", "To abort, send an empty message.", "") as text|null
if(!input || ..() || !(is_authenticated(usr) == COMM_AUTHENTICATION_MAX))
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return
Syndicate_announce(input, usr)
to_chat(usr, "Message transmitted.")
@@ -313,14 +313,14 @@
atc.squelched = !atc.squelched
to_chat(usr, "<span class='notice'>ATC traffic is now: [atc.squelched ? "Disabled" : "Enabled"].</span>")
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return 1
/obj/machinery/computer/communications/emag_act(user as mob)
if(!emagged)
src.emagged = 1
to_chat(user, "<span class='notice'>You scramble the communication routing circuits!</span>")
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
/obj/machinery/computer/communications/attack_ai(var/mob/user as mob)
return src.attack_hand(user)
@@ -340,7 +340,7 @@
/obj/machinery/computer/communications/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null)
// update the ui if it exists, returns null if no ui is passed/found
ui = nanomanager.try_update_ui(user, src, ui_key, ui)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui)
if(!ui)
// the ui does not exist, so we'll create a new() one
// for a list of parameters and their descriptions see the code docs in \code\modules\nano\nanoui.dm
+2 -2
View File
@@ -41,7 +41,7 @@
ui_interact(user)
/obj/machinery/computer/med_data/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "med_data.tmpl", name, 800, 380)
ui.open()
@@ -515,7 +515,7 @@
else
P.info += "<B>Medical Record Lost!</B><BR>"
P.info += "</TT>"
P.name = "paper- 'Medical Record'"
P.name = "paper- 'Medical Record: [active1.fields["name"]]'"
printing = 0
return 1
@@ -14,7 +14,7 @@
ui_interact(user)
/obj/machinery/computer/podtracker/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "pod_tracking.tmpl", "Pod Tracking Console", 400, 500)
ui.open()
@@ -47,4 +47,4 @@
return 1
if(href_list["refresh"])
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
+1 -1
View File
@@ -35,7 +35,7 @@
return 0
/obj/machinery/computer/robotics/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "robot_control.tmpl", "Robotic Control Console", 400, 500)
ui.open()
+2 -2
View File
@@ -44,7 +44,7 @@
ui_interact(user)
/obj/machinery/computer/secure_data/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "secure_data.tmpl", name, 800, 380)
ui.open()
@@ -366,7 +366,7 @@
else
P.info += "<B>Security Record Lost!</B><BR>"
P.info += "</TT>"
P.name = "paper - 'Security Record'"
P.name = "paper - 'Security Record: [active1.fields["name"]]'"
printing = 0
/* Removed due to BYOND issue
+2 -2
View File
@@ -43,7 +43,7 @@
ui_interact(user)
/obj/machinery/computer/skills/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "skills_data.tmpl", name, 800, 380)
ui.open()
@@ -232,7 +232,7 @@
else
P.info += "<B>General Record Lost!</B><BR>"
P.info += "</TT>"
P.name = "paper - 'Employment Record'"
P.name = "paper - 'Employment Record: [active1.fields["name"]]'"
printing = 0
if(href_list["field"])
+1 -1
View File
@@ -185,7 +185,7 @@
*/
/obj/machinery/atmospherics/unary/cryo_cell/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
// update the ui if it exists, returns null if no ui is passed/found
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
// the ui does not exist, so we'll create a new() one
// for a list of parameters and their descriptions see the code docs in \code\modules\nano\nanoui.dm
+1 -1
View File
@@ -547,7 +547,7 @@ About the new airlock wires panel:
ui_interact(user)
/obj/machinery/door/airlock/ui_interact(mob/user, ui_key = "main", datum/nanoui/ui = null, force_open = 1)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "door_control.tmpl", "Door Controls - [src]", 600, 375)
ui.open()
@@ -21,7 +21,7 @@
name = "Advanced Airlock Controller"
/obj/machinery/embedded_controller/radio/airlock/advanced_airlock_controller/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "advanced_airlock_console.tmpl", name, 470, 290)
ui.open()
@@ -77,7 +77,7 @@
tag_secure = 1
/obj/machinery/embedded_controller/radio/airlock/airlock_controller/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "simple_airlock_console.tmpl", name, 470, 290)
ui.open()
@@ -140,7 +140,7 @@
icon_state = "access_control_off"
/obj/machinery/embedded_controller/radio/airlock/access_controller/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "door_access_console.tmpl", name, 330, 220)
ui.open()
+1 -1
View File
@@ -169,7 +169,7 @@ FIRE ALARM
ui_interact(user)
/obj/machinery/firealarm/ui_interact(mob/user, ui_key = "main", datum/nanoui/ui = null, force_open = 1, var/master_ui = null, var/datum/topic_state/state = default_state)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "firealarm.tmpl", name, 400, 400, state = state)
ui.open()
+2 -2
View File
@@ -186,7 +186,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
user.set_machine(src)
if(can_scan(user))
scan_user(user)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "newscaster.tmpl", name, 400, 600)
ui.open()
@@ -566,7 +566,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
else if(href_list["jobs"])
screen = NEWSCASTER_JOBS
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return 1
/obj/machinery/newscaster/attackby(obj/item/I, mob/living/user, params)
+1 -1
View File
@@ -126,7 +126,7 @@
/obj/machinery/poolcontroller/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "poolcontroller.tmpl", "Pool Controller Interface", 520, 410)
ui.open()
+1 -1
View File
@@ -43,7 +43,7 @@
iconholder = 1
/obj/machinery/porta_turret/tag/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "turret_control.tmpl", "Turret Controls", 500, 300)
ui.open()
+1 -1
View File
@@ -212,7 +212,7 @@ var/list/turret_icons
ui_interact(user)
/obj/machinery/porta_turret/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "turret_control.tmpl", "Turret Controls", 500, 320)
ui.open()
+2 -2
View File
@@ -131,7 +131,7 @@ var/list/obj/machinery/requests_console/allConsoles = list()
ui_interact(user)
/obj/machinery/requests_console/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "request_console.tmpl", "[department] Request Console", 520, 410)
ui.open()
@@ -265,7 +265,7 @@ var/list/obj/machinery/requests_console/allConsoles = list()
if(href_list["toggleSilent"])
silent = !silent
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return
//err... hacking code, which has no reason for existing... but anyway... it was once supposed to unlock priority 3 messanging on that console (EXTREME priority...), but the code for that was removed.
+1 -1
View File
@@ -22,7 +22,7 @@
ui_interact(user)
/obj/machinery/slot_machine/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "slotmachine.tmpl", name, 350, 200)
ui.open()
+12 -12
View File
@@ -70,7 +70,7 @@
return
// Set up the Nano UI
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "teleporter_console.tmpl", "Teleporter Console UI", 400, 400)
ui.open()
@@ -99,16 +99,16 @@
if(href_list["eject"])
eject()
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return
if(!check_hub_connection())
to_chat(usr, "<span class='warning'>Error: Unable to detect hub.</span>")
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return
if(calibrating)
to_chat(usr, "<span class='warning'>Error: Calibration in progress. Stand by.</span>")
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return
if(href_list["regimeset"])
@@ -116,32 +116,32 @@
power_station.teleporter_hub.update_icon()
power_station.teleporter_hub.calibrated = 0
reset_regime()
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
if(href_list["settarget"])
power_station.engaged = 0
power_station.teleporter_hub.update_icon()
power_station.teleporter_hub.calibrated = 0
set_target(usr)
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
if(href_list["lock"])
power_station.engaged = 0
power_station.teleporter_hub.update_icon()
power_station.teleporter_hub.calibrated = 0
target = get_turf(locked.locked_location)
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
if(href_list["calibrate"])
if(!target)
to_chat(usr, "<span class='warning'>Error: No target set to calibrate to.</span>")
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return
if(power_station.teleporter_hub.calibrated || power_station.teleporter_hub.accurate >= 3)
to_chat(usr, "<span class='notice'>Hub is already calibrated.</span>")
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return
src.visible_message("<span class='notice'>Processing hub calibration to target...</span>")
calibrating = 1
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
spawn(50 * (3 - power_station.teleporter_hub.accurate)) //Better parts mean faster calibration
calibrating = 0
if(check_hub_connection())
@@ -149,9 +149,9 @@
src.visible_message("<span class='notice'>Calibration complete.</span>")
else
src.visible_message("<span class='warning'>Error: Unable to detect hub.</span>")
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
/obj/machinery/computer/teleporter/proc/check_hub_connection()
if(!power_station)
+6 -6
View File
@@ -25,7 +25,7 @@
var/check_anomalies = 1 //checks if it can shoot at unidentified lifeforms (ie xenos)
var/check_synth = 0 //if active, will shoot at anything not an AI or cyborg
var/ailock = 0 //Silicons cannot use this
var/syndicate = 0
var/faction = "" // Turret controls can only access turrets that are in the same faction
@@ -39,21 +39,21 @@
enabled = 1
lethal = 1
icon_state = "control_kill"
/obj/machinery/turretid/syndicate
enabled = 1
lethal = 1
icon_state = "control_kill"
lethal = 1
check_arrest = 0
check_records = 0
check_weapons = 0
check_access = 0
check_anomalies = 1
check_anomalies = 1
check_synth = 1
ailock = 1
syndicate = 1
faction = "syndicate"
@@ -139,7 +139,7 @@
ui_interact(user)
/obj/machinery/turretid/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "turret_control.tmpl", "Turret Controls", 500, 300)
ui.open()
+10 -10
View File
@@ -234,7 +234,7 @@
vend(currently_vending, usr)
return
else if(handled)
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return // don't smack that machine with your 2 thalers
if(default_unfasten_wrench(user, I, time = 60))
@@ -247,7 +247,7 @@
overlays.Cut()
if(panel_open)
overlays += image(icon, "[initial(icon_state)]-panel")
nanomanager.update_uis(src) // Speaker switch is on the main UI, not wires UI
SSnanoui.update_uis(src) // Speaker switch is on the main UI, not wires UI
return
if(panel_open)
@@ -269,7 +269,7 @@
coin = I
categories |= CAT_COIN
to_chat(user, "<span class='notice'>You insert the [I] into the [src]</span>")
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return
else if(istype(I, refill_canister) && refill_canister != null)
if(stat & (BROKEN|NOPOWER))
@@ -327,14 +327,14 @@
I.forceMove(src)
to_chat(user, "<span class='notice'>You insert [I] into [src].</span>")
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
/obj/machinery/vending/proc/eject_item()
if(!item_slot || !inserted_item)
return
inserted_item.forceMove(get_turf(src))
inserted_item = null
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
/obj/machinery/vending/emag_act(user as mob)
emagged = 1
@@ -458,7 +458,7 @@
/obj/machinery/vending/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
user.set_machine(src)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "vending_machine.tmpl", src.name, 440, 600)
ui.open()
@@ -545,7 +545,7 @@
vend(currently_vending, usr)
return
else if(handled)
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return // don't smack that machine with your 2 credits
if((href_list["vend"]) && vend_ready && !currently_vending)
@@ -584,7 +584,7 @@
shut_up = !src.shut_up
add_fingerprint(usr)
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
/obj/machinery/vending/proc/vend(datum/data/vending_product/R, mob/user)
if(!allowed(usr) && !usr.can_admin_interact() && !emagged && scan_id) //For SECURE VENDING MACHINES YEAH
@@ -599,7 +599,7 @@
vend_ready = 0 //One thing at a time!!
status_message = "Vending..."
status_error = 0
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
if(R.category & CAT_COIN)
if(!coin)
@@ -632,7 +632,7 @@
status_error = 0
vend_ready = 1
currently_vending = null
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
//override this proc to add handling for what to do with the vended product when you have a inserted item and remember to include a parent call for this generic handling
/obj/machinery/vending/proc/do_vend(datum/data/vending_product/R)
+1 -1
View File
@@ -148,7 +148,7 @@
ui_interact(user)
/obj/machinery/computer/mech_bay_power_console/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
// the ui does not exist, so we'll create a new() one
// for a list of parameters and their descriptions see the code docs in \code\modules\nano\nanoui.dm
+2 -2
View File
@@ -17,7 +17,7 @@
ui_interact(user)
/obj/machinery/computer/mecha/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "exosuit_control.tmpl", "Exosuit Control Console", 420, 500)
ui.open()
@@ -63,7 +63,7 @@
if(href_list["return"])
screen = 0
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return
/obj/item/mecha_parts/mecha_tracking
+1 -1
View File
@@ -41,7 +41,7 @@
/obj/item/device/aicard/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1, var/datum/topic_state/state = inventory_state)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "aicard.tmpl", "[name]", 600, 400, state = state)
ui.open()
@@ -99,7 +99,7 @@
/obj/item/device/radio/electropack/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "radio_electro.tmpl", "[name]", 400, 500)
ui.open()
@@ -107,7 +107,7 @@ var/global/list/default_medbay_channels = list(
return ui_interact(user)
/obj/item/device/radio/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "radio_basic.tmpl", "[name]", 400, 550)
ui.open()
@@ -793,7 +793,7 @@ var/global/list/default_medbay_channels = list(
. = ..()
/obj/item/device/radio/borg/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "radio_basic.tmpl", "[name]", 430, 500)
ui.open()
@@ -46,7 +46,7 @@
w_class = I.w_class
update_icon()
nanomanager.update_uis(src) // update all UIs attached to src
SSnanoui.update_uis(src) // update all UIs attached to src
//TODO: Have this take an assemblyholder
else if(isassembly(I))
var/obj/item/device/assembly/A = I
@@ -67,7 +67,7 @@
msg_admin_attack("[key_name_admin(user)]attached [A] to a transfer valve.")
log_game("[key_name_admin(user)] attached [A] to a transfer valve.")
attacher = user
nanomanager.update_uis(src) // update all UIs attached to src
SSnanoui.update_uis(src) // update all UIs attached to src
/obj/item/device/transfer_valve/HasProximity(atom/movable/AM)
@@ -90,7 +90,7 @@
/obj/item/device/transfer_valve/ui_interact(mob/user, ui_key = "main", datum/nanoui/ui = null, force_open = 1)
// update the ui if it exists, returns null if no ui is passed/found
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
// the ui does not exist, so we'll create a new() one
// for a list of parameters and their descriptions see the code docs in \code\modules\nano\nanoui.dm
+4 -4
View File
@@ -129,7 +129,7 @@ var/list/world_uplinks = list()
if(!UI)
return
UI.buy(src,usr)
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
/* var/list/L = UI.spawn_item(get_turf(usr),src)
if(ishuman(usr))
@@ -190,7 +190,7 @@ var/list/world_uplinks = list()
/obj/item/device/uplink/hidden/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1, var/datum/topic_state/state = inventory_state)
var/title = "Remote Uplink"
// update the ui if it exists, returns null if no ui is passed/found
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
// the ui does not exist, so we'll create a new() one
// for a list of parameters and their descriptions see the code docs in \code\modules\nano\nanoui.dm
@@ -224,7 +224,7 @@ var/list/world_uplinks = list()
if(!( istype(usr, /mob/living/carbon/human)))
return 1
var/mob/user = usr
var/datum/nanoui/ui = nanomanager.get_open_ui(user, src, "main")
var/datum/nanoui/ui = SSnanoui.get_open_ui(user, src, "main")
if((usr.contents.Find(src.loc) || (in_range(src.loc, usr) && istype(src.loc.loc, /turf))))
usr.set_machine(src)
if(..(href, href_list))
@@ -246,7 +246,7 @@ var/list/world_uplinks = list()
show_descriptions = !show_descriptions
update_nano_data()
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return 1
/obj/item/device/uplink/hidden/proc/update_nano_data(var/id)
+4 -4
View File
@@ -80,7 +80,7 @@ RCD
playsound(loc, 'sound/machines/click.ogg', 50, 1)
to_chat(user, "<span class='notice'>The RCD now holds [matter]/[max_matter] matter-units.</span>")
desc = "A RCD. It currently holds [matter]/[max_matter] matter-units."
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return
@@ -92,7 +92,7 @@ RCD
ui_interact(user)
/obj/item/weapon/rcd/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1, var/datum/topic_state/state = inventory_state)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "rcd.tmpl", "[name]", 450, 400, state = state)
ui.open()
@@ -351,14 +351,14 @@ RCD
to_chat(user, "ERROR: RCD in MODE: [mode] attempted use by [user]. Send this text #coderbus or an admin.")
return 0
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
/obj/item/weapon/rcd/proc/useResource(var/amount, var/mob/user)
if(matter < amount)
return 0
matter -= amount
desc = "A RCD. It currently holds [matter]/[max_matter] matter-units."
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return 1
/obj/item/weapon/rcd/proc/checkResource(var/amount, var/mob/user)
+2 -2
View File
@@ -140,7 +140,7 @@ var/list/pipemenu = list(
ui_interact(user)
/obj/item/weapon/rpd/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1, var/datum/topic_state/state = inventory_state)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "rpd.tmpl", "[name]", 400, 650, state = state)
ui.open()
@@ -173,7 +173,7 @@ var/list/pipemenu = list(
mode = text2num(sanitize(href_list["mode"]))
else
return
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
//What the RPD actually does
@@ -141,7 +141,7 @@
/obj/item/weapon/tank/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
// update the ui if it exists, returns null if no ui is passed/found
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
// the ui does not exist, so we'll create a new() one
// for a list of parameters and their descriptions see the code docs in \code\modules\nano\nanoui.dm
+1 -1
View File
@@ -66,7 +66,7 @@
/obj/Destroy()
machines -= src
processing_objects -= src
nanomanager.close_uis(src)
SSnanoui.close_uis(src)
return ..()
/obj/proc/process()
+11 -11
View File
@@ -115,7 +115,7 @@
if(!instrumentObj)
return
ui = nanomanager.try_update_ui(user, instrumentObj, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, instrumentObj, ui_key, ui, force_open)
if(!ui)
ui = new(user, instrumentObj, ui_key, "song.tmpl", instrumentObj.name, 700, 500)
ui.open()
@@ -149,7 +149,7 @@
lines = new()
tempo = sanitize_tempo(5) // default 120 BPM
name = ""
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
else if(href_list["import"])
playing = 0
@@ -185,11 +185,11 @@
lines.Remove(l)
else
linenum++
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
else if(href_list["help"])
help = !help
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
if(href_list["repeat"]) //Changing this from a toggle to a number of repeats to avoid infinite loops.
if(playing)
@@ -199,11 +199,11 @@
repeat = 0
if(repeat > max_repeat)
repeat = max_repeat
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
else if(href_list["tempo"])
tempo = sanitize_tempo(tempo + text2num(href_list["tempo"]) * world.tick_lag)
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
else if(href_list["play"])
if(playing)
@@ -211,7 +211,7 @@
playing = 1
spawn()
playsong(usr)
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
else if(href_list["insertline"])
var/num = round(text2num(href_list["insertline"]))
@@ -227,14 +227,14 @@
newline = copytext(newline, 1, 200)
lines.Insert(num, newline)
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
else if(href_list["deleteline"])
var/num = round(text2num(href_list["deleteline"]))
if(num > lines.len || num < 1)
return
lines.Cut(num, num + 1)
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
else if(href_list["modifyline"])
var/num = round(text2num(href_list["modifyline"]))
@@ -246,11 +246,11 @@
if(num > lines.len || num < 1)
return
lines[num] = content
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
else if(href_list["stop"])
playing = 0
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
/datum/song/proc/sanitize_tempo(new_tempo)
new_tempo = abs(new_tempo)
@@ -40,7 +40,7 @@
/obj/structure/dispenser/ui_interact(mob/user, ui_key = "main", datum/nanoui/ui = null, force_open = 1, var/master_ui = null, var/datum/topic_state/state = default_state)
user.set_machine(src)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "tank_dispenser.tmpl", name, 275, 100, state = state)
ui.open()
@@ -62,7 +62,7 @@
to_chat(user, "<span class='notice'>You put [I] in [src].</span>")
else
to_chat(user, "<span class='notice'>[src] is full.</span>")
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
if(istype(I, /obj/item/weapon/tank/plasma))
if(plasmatanks < 10)
user.drop_item()
@@ -73,7 +73,7 @@
to_chat(user, "<span class='notice'>You put [I] in [src].</span>")
else
to_chat(user, "<span class='notice'>[src] is full.</span>")
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
if(istype(I, /obj/item/weapon/wrench))
if(anchored)
to_chat(user, "<span class='notice'>You lean down and unwrench [src].</span>")
@@ -114,7 +114,7 @@
update_icon()
add_fingerprint(usr)
updateUsrDialog()
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
else
nanomanager.close_user_uis(usr,src)
SSnanoui.close_user_uis(usr,src)
return 1
+1 -1
View File
@@ -773,7 +773,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
set desc = "Force the client to redownload NanoUI Resources"
// Close open NanoUIs.
nanomanager.close_user_uis(usr)
SSnanoui.close_user_uis(usr)
// Re-load the assets.
var/datum/asset/assets = get_asset_datum(/datum/asset/nanoui)
+1 -1
View File
@@ -525,7 +525,7 @@
if(!user)
return
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, ((src.loc != user) ? ai_interface_path : interface_path), interface_title, 480, 550, state = state)
ui.open()
+4 -4
View File
@@ -228,7 +228,7 @@
qdel(DL)
/datum/personal_crafting/ui_interact(mob/user, ui_key = "main", datum/nanoui/ui = null, force_open = 1, datum/topic_state/state = not_incapacitated_turf_state)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "personal_crafting.tmpl", "Crafting Menu", 700, 800, state = state)
ui.open()
@@ -265,14 +265,14 @@
if(href_list["make"])
var/datum/crafting_recipe/TR = locate(href_list["make"])
busy = 1
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
var/fail_msg = construct_item(usr, TR)
if(!fail_msg)
to_chat(usr, "<span class='notice'>[TR.name] constructed.</span>")
else
to_chat(usr, "<span class ='warning'>Construction failed[fail_msg]</span>")
busy = 0
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
if(href_list["forwardCat"])
viewing_category = next_cat()
to_chat(usr, "<span class='notice'>Category is now [categories[viewing_category]].</span>")
@@ -290,7 +290,7 @@
to_chat(usr, "<span class='notice'>Crafting menu is now [display_compact? "compact" : "full size"].</span>")
. = TRUE
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
//Next works nicely with modular arithmetic
/datum/personal_crafting/proc/next_cat()
+8
View File
@@ -940,6 +940,14 @@
flags_inv = HIDEEARS
//////////// Uniforms ////////////
/obj/item/clothing/under/fluff/soviet_casual_uniform // Norstead : Natalya Sokolova
icon = 'icons/obj/custom_items.dmi'
name = "Soviet Casual Uniform"
desc = "Female U.S.S.P. casual wear. Dlya Rodiny!"
icon_state = "soviet_casual_uniform"
item_state = "soviet_casual_uniform"
item_color = "soviet_casual_uniform"
/obj/item/clothing/under/fluff/kharshai // Kharshai: Athena Castile
name = "Castile formal outfit"
desc = "A white and gold formal uniform, accompanied by a small pin with the numbers '004' etched upon it."
+6 -6
View File
@@ -50,7 +50,7 @@ log transactions
linked_db = null
authenticated_account = null
visible_message("[bicon(src)]<span class='warning'>[src] buzzes rudely, \"Connection to remote database lost.\"</span>")
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
if(ticks_left_timeout > 0)
ticks_left_timeout--
@@ -90,7 +90,7 @@ log transactions
held_card = I
if(authenticated_account && held_card.associated_account_number != authenticated_account.account_number)
authenticated_account = null
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
else if(authenticated_account)
if(istype(I, /obj/item/stack/spacecash))
//consume the money
@@ -111,7 +111,7 @@ log transactions
authenticated_account.transaction_log.Add(T)
to_chat(user, "<span class='info'>You insert [C] into [src].</span>")
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
C.use(C.amount)
else
..()
@@ -129,7 +129,7 @@ log transactions
/obj/machinery/atm/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
user.set_machine(src)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if (!ui)
ui = new(user, src, ui_key, "atm.tmpl", name, 550, 650)
ui.open()
@@ -317,7 +317,7 @@ log transactions
if("logout")
authenticated_account = null
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return 1
//create the most effective combination of notes to make up the requested amount
@@ -349,4 +349,4 @@ log transactions
authenticated_account.transaction_log.Add(T)
view_screen = NO_SCREEN
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
+3 -3
View File
@@ -69,7 +69,7 @@
O.loc = src
held_card = O
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
attack_hand(user)
@@ -78,7 +78,7 @@
/obj/machinery/computer/account_database/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
user.set_machine(src)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "accounts_terminal.tmpl", src.name, 400, 640)
ui.open()
@@ -153,7 +153,7 @@
if(!get_access_level(usr))
return 1
var/datum/nanoui/ui = nanomanager.get_open_ui(usr, src, "main")
var/datum/nanoui/ui = SSnanoui.get_open_ui(usr, src, "main")
if(href_list["choice"])
switch(href_list["choice"])
+3 -3
View File
@@ -70,7 +70,7 @@
if(linked_db)
if(linked_account)
scan_card(O, user)
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
else
to_chat(user, "[bicon(src)]<span class='warning'>Unable to connect to linked account.</span>")
else
@@ -79,7 +79,7 @@
..()
/obj/item/device/eftpos/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "eftpos.tmpl", name, 790, 310)
ui.open()
@@ -172,7 +172,7 @@
access_code = 0
to_chat(usr, "[bicon(src)]<span class='info'>Access code reset to 0.</span>")
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return 1
/obj/item/device/eftpos/proc/scan_card(obj/item/weapon/card/I, mob/user)
-9
View File
@@ -49,17 +49,8 @@
description_holders["icon"] = "[bicon(A)]"
description_holders["desc"] = A.desc
// Byond seemingly calls stat, each tick.
// Calling things each tick can get expensive real quick.
// So we slow this down a little.
// See: http://www.byond.com/docs/ref/info.html#/client/proc/Stat
/client/Stat()
. = ..()
if(holder)
sleep(1)
else
sleep(5)
stoplag()
if(usr && statpanel("Examine"))
stat(null,"[description_holders["icon"]] <font size='5'>[description_holders["name"]]</font>") //The name, written in big letters.
stat(null,"[description_holders["desc"]]") //the default examine text.
+5 -2
View File
@@ -313,14 +313,17 @@
egg_list.Cut() //Destroy any excess eggs, clearing the egg_list
/obj/machinery/fishtank/proc/harvest_fish(var/mob/user)
if(!fish_count) //Can't catch non-existant fish!
if(fish_count <= 0) //Can't catch non-existant fish!
to_chat(usr, "There are no fish in \the [src] to catch!")
return
var/list/fish_names_list = list()
for(var/datum/fish/fish_type in fish_list)
fish_names_list += list("[fish_type.fish_name]" = fish_type)
var/caught_fish = input("Select a fish to catch.", "Fishing") as null|anything in fish_names_list //Select a fish from the tank
if(caught_fish)
if(fish_count <= 0)
to_chat(usr, "There are no fish in \the [src] to catch!")
return
else if(caught_fish)
user.visible_message("[user.name] harvests \a [caught_fish] from \the [src].", "You scoop \a [caught_fish] out of \the [src].")
var/datum/fish/fish_type = fish_names_list[caught_fish]
var/fish_item = fish_type.fish_item
+4 -3
View File
@@ -1,4 +1,4 @@
#define MAX_WEIGHT_CLASS WEIGHT_CLASS_SMALL * 2
#define MAX_WEIGHT_CLASS WEIGHT_CLASS_SMALL
//Food items that are eaten normally and don't leave anything behind.
/obj/item/weapon/reagent_containers/food/snacks
name = "snack"
@@ -133,9 +133,10 @@
)
inaccurate = 1
else if(W.w_class <= WEIGHT_CLASS_SMALL && istype(src,/obj/item/weapon/reagent_containers/food/snacks/sliceable))
if(total_w_class > MAX_WEIGHT_CLASS)
var/newweight = GetTotalContentsWeight() + W.GetTotalContentsWeight() + W.w_class
if(newweight > MAX_WEIGHT_CLASS)
// Nope, no bluespace slice food
to_chat(user, "<span class='warning'>Something is already in [src]!</span>")
to_chat(user, "<span class='warning'>You cannot fit [W] in [src]!</span>")
return 1
if(!iscarbon(user))
return 1
@@ -133,7 +133,7 @@
item_quants[I.name]++
else
item_quants[I.name] = 1
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
amount--
/obj/machinery/smartfridge/chemistry/accept_check(obj/item/O)
@@ -227,7 +227,7 @@
if(load(O, user))
user.visible_message("<span class='notice'>[user] has added \the [O] to \the [src].</span>", "<span class='notice'>You add \the [O] to \the [src].</span>")
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
else if(istype(O, /obj/item/weapon/storage/bag))
var/obj/item/weapon/storage/bag/P = O
@@ -240,7 +240,7 @@
if(P.contents.len > 0)
to_chat(user, "<span class='notice'>Some items are refused.</span>")
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
else
to_chat(user, "<span class='notice'>\The [src] smartly refuses [O].</span>")
@@ -306,7 +306,7 @@
"<span class='notice'>You empty \the [P] into \the [src].</span>")
if(P.contents.len > 0)
to_chat(user, "<span class='notice'>Some items are refused.</span>")
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
/obj/machinery/smartfridge/secure/emag_act(mob/user)
emagged = 1
@@ -320,7 +320,7 @@
/obj/machinery/smartfridge/ui_interact(mob/user, ui_key = "main", datum/nanoui/ui = null, force_open = 1)
user.set_machine(src)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "smartfridge.tmpl", name, 400, 500)
ui.open()
@@ -352,7 +352,7 @@
if(..()) return 0
var/mob/user = usr
var/datum/nanoui/ui = nanomanager.get_open_ui(user, src, "main")
var/datum/nanoui/ui = SSnanoui.get_open_ui(user, src, "main")
add_fingerprint(user)
@@ -521,14 +521,14 @@
new dried(loc)
item_quants[S.name]--
qdel(S)
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return TRUE
for(var/obj/item/stack/sheet/wetleather/WL in contents)
var/obj/item/stack/sheet/leather/L = new(loc)
L.amount = WL.amount
item_quants[WL.name]--
qdel(WL)
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return TRUE
return FALSE
@@ -546,6 +546,6 @@
if(usr.contents.Find(src) || (in_range(src, usr) && istype(loc, /turf)))
if(!allowed(usr) && !emagged && locked != -1 && href_list["vend"])
to_chat(usr, "<span class='warning'>Access denied.</span>")
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return 0
return ..()
+1 -1
View File
@@ -295,7 +295,7 @@
medicalActive1 = null
medicalActive2 = null
medical_cannotfind = 0
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
to_chat(usr, "<span class='notice'>You reset your record-viewing software.</span>")
/mob/living/silicon/pai/cancel_camera()
@@ -41,7 +41,7 @@ var/global/list/default_pai_software = list()
if(ui_key != "main")
var/datum/pai_software/S = software[ui_key]
if(S && !S.toggle)
ui = nanomanager.try_update_ui(user, src, S.id, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, S.id, ui, force_open)
if(!ui)
ui = new(user, src, S.id, S.template_file, S.ui_title, S.ui_width, S.ui_height, state = state)
ui.open()
@@ -52,7 +52,7 @@ var/global/list/default_pai_software = list()
ui.set_status(STATUS_CLOSE, 0)
return
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "pai_interface.tmpl", "pAI Software Interface", 450, 600, state = state)
ui.open()
@@ -132,4 +132,4 @@ var/global/list/default_pai_software = list()
var/img = text2num(href_list["image"])
if(1 <= img && img <= 9)
card.setEmotion(img)
return 1
return 1
+1 -1
View File
@@ -1,5 +1,5 @@
/mob/Logout()
nanomanager.user_logout(src) // this is used to clean up (remove) this user's Nano UIs
SSnanoui.user_logout(src) // this is used to clean up (remove) this user's Nano UIs
unset_machine()
player_list -= src
log_access("Logout: [key_name(src)]")
@@ -60,7 +60,7 @@
..()
/obj/machinery/ntnet_relay/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "ntnet_relay.tmpl", "NTNet Quantum Relay", 500, 300)
ui.open()
@@ -29,7 +29,7 @@
to_chat(user, "<span class='danger'>\The [src] beeps three times, it's screen displaying a \"DISK ERROR\" warning.</span>")
return // No HDD, No HDD files list or no stored files. Something is very broken.
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
var/datum/asset/assets = get_asset_datum(/datum/asset/simple/headers)
assets.send(user)
@@ -160,7 +160,7 @@
if(..())
return 1
var/datum/nanoui/ui = nanomanager.get_open_ui(usr, src, "main")
var/datum/nanoui/ui = SSnanoui.get_open_ui(usr, src, "main")
if(computer)
switch(href_list["action"])
@@ -36,7 +36,7 @@
..()
/datum/computer_file/program/ntnet_dos/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
var/datum/asset/assets = get_asset_datum(/datum/asset/simple/headers)
assets.send(user)
@@ -61,7 +61,7 @@
return temp
/datum/computer_file/program/revelation/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
var/datum/asset/assets = get_asset_datum(/datum/asset/simple/headers)
assets.send(user)
@@ -137,7 +137,7 @@
/datum/computer_file/program/card_mod/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
var/datum/asset/assets = get_asset_datum(/datum/asset/simple/headers)
assets.send(user)
@@ -255,7 +255,7 @@
playsound(computer.loc, 'sound/goonstation/machines/printer_dotmatrix.ogg', 50, 1)
spawn(50)
printing = 0
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
var/title
var/content
if(mode == 2)
@@ -326,7 +326,7 @@
if(modify)
modify.name = text("[modify.registered_name]'s ID Card ([modify.assignment])")
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return 1
/datum/computer_file/program/card_mod/ui_data(mob/user)
@@ -94,7 +94,7 @@
return menu_state
/datum/computer_file/program/comm/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null)
ui = nanomanager.try_update_ui(user, src, ui_key, ui)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui)
if(!ui)
var/datum/asset/assets = get_asset_datum(/datum/asset/simple/headers)
assets.send(user)
@@ -191,14 +191,14 @@
if(istype(id))
crew_announcement.announcer = GetNameAndAssignmentFromId(id)
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return 1
if(href_list["PRG_logout"])
authenticated = COMM_AUTHENTICATION_NONE
crew_announcement.announcer = ""
setMenuState(usr, COMM_SCREEN_MAIN)
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return 1
if(is_authenticated(usr))
@@ -239,11 +239,11 @@
if(is_authenticated(usr) == COMM_AUTHENTICATION_MAX)
if(message_cooldown)
to_chat(usr, "<span class='warning'>Please allow at least one minute to pass between announcements.</span>")
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return 1
var/input = input(usr, "Please write a message to announce to the station crew.", "Priority Announcement")
if(!input || message_cooldown || ..() || !(is_authenticated(usr) == COMM_AUTHENTICATION_MAX))
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return 1
crew_announcement.Announce(input)
message_cooldown = 1
@@ -253,7 +253,7 @@
if("callshuttle")
var/input = input(usr, "Please enter the reason for calling the shuttle.", "Shuttle Call Reason.","") as text|null
if(!input || ..() || !is_authenticated(usr))
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return 1
call_shuttle_proc(usr, input)
@@ -264,7 +264,7 @@
if("cancelshuttle")
if(isAI(usr) || isrobot(usr))
to_chat(usr, "<span class='warning'>Firewalls prevent you from recalling the shuttle.</span>")
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return 1
var/response = alert("Are you sure you wish to recall the shuttle?", "Confirm", "Yes", "No")
if(response == "Yes")
@@ -323,11 +323,11 @@
if(is_authenticated(usr) == COMM_AUTHENTICATION_MAX)
if(centcomm_message_cooldown)
to_chat(usr, "<span class='warning'>Arrays recycling. Please stand by.</span>")
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return 1
var/input = stripped_input(usr, "Please enter the reason for requesting the nuclear self-destruct codes. Misuse of the nuclear request system will not be tolerated under any circumstances. Transmission does not guarantee a response.", "Self Destruct Code Request.","") as text|null
if(!input || ..() || !(is_authenticated(usr) == COMM_AUTHENTICATION_MAX))
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return 1
Nuke_request(input, usr)
to_chat(usr, "<span class='notice'>Request sent.</span>")
@@ -342,11 +342,11 @@
if(is_authenticated(usr) == COMM_AUTHENTICATION_MAX)
if(centcomm_message_cooldown)
to_chat(usr, "<span class='warning'>Arrays recycling. Please stand by.</span>")
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return 1
var/input = stripped_input(usr, "Please choose a message to transmit to Centcomm via quantum entanglement. Please be aware that this process is very expensive, and abuse will lead to... termination. Transmission does not guarantee a response.", "To abort, send an empty message.", "") as text|null
if(!input || ..() || !(is_authenticated(usr) == COMM_AUTHENTICATION_MAX))
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return 1
Centcomm_announce(input, usr)
to_chat(usr, "Message transmitted.")
@@ -361,11 +361,11 @@
if((is_authenticated(usr) == COMM_AUTHENTICATION_MAX) && (computer && computer.emagged))
if(centcomm_message_cooldown)
to_chat(usr, "Arrays recycling. Please stand by.")
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return 1
var/input = stripped_input(usr, "Please choose a message to transmit to \[ABNORMAL ROUTING CORDINATES\] via quantum entanglement. Please be aware that this process is very expensive, and abuse will lead to... termination. Transmission does not guarantee a response.", "To abort, send an empty message.", "") as text|null
if(!input || ..() || !(is_authenticated(usr) == COMM_AUTHENTICATION_MAX))
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return 1
Syndicate_announce(input, usr)
to_chat(usr, "Message transmitted.")
@@ -398,5 +398,5 @@
trade_dockrequest_timelimit = 0
event_announcement.Announce("Docking request for trading ship denied.", "Docking request")
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return 1
@@ -34,7 +34,7 @@
return 0
/datum/computer_file/program/alarm_monitor/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
var/datum/asset/assets = get_asset_datum(/datum/asset/simple/headers)
assets.send(user)
@@ -24,7 +24,7 @@
attached = locate() in T
/datum/computer_file/program/power_monitor/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
var/datum/asset/assets = get_asset_datum(/datum/asset/simple/headers)
assets.send(user)
@@ -15,7 +15,7 @@
/datum/computer_file/program/computerconfig/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
var/datum/asset/assets = get_asset_datum(/datum/asset/simple/headers)
assets.send(user)
@@ -17,7 +17,7 @@
return t
/datum/computer_file/program/filemanager/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
var/datum/asset/assets = get_asset_datum(/datum/asset/simple/headers)
assets.send(user)
@@ -104,7 +104,7 @@
return 0
/datum/computer_file/program/ntnetdownload/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
var/datum/asset/assets = get_asset_datum(/datum/asset/simple/headers)
assets.send(user)
@@ -41,7 +41,7 @@
..()
/datum/computer_file/program/chatclient/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
var/datum/asset/assets = get_asset_datum(/datum/asset/simple/headers)
assets.send(user)

Some files were not shown because too many files have changed in this diff Show More