mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-07-16 10:27:14 +01:00
Simpler lighting process, bug fixes, & modular computer tweaks (#1809)
Fixes #1806 Fixes #1730 Fixes #1747 Partially addresses #1763 Addresses #1283 Fixes #1799 Fixes #1816 Fixes #1813
This commit is contained in:
@@ -83,15 +83,21 @@
|
||||
|
||||
overlays.Cut()
|
||||
if(!enabled)
|
||||
if(icon_state_screensaver)
|
||||
var/probably_working = hard_drive && processor_unit && damage < broken_damage && (apc_power(0) || battery_power(0))
|
||||
if(icon_state_screensaver && probably_working)
|
||||
overlays.Add(icon_state_screensaver)
|
||||
set_light(0)
|
||||
|
||||
if (screensaver_light_range && probably_working)
|
||||
set_light(screensaver_light_range, 1, screensaver_light_color ? screensaver_light_color : "#FFFFFF")
|
||||
else
|
||||
set_light(0)
|
||||
return
|
||||
set_light(light_strength)
|
||||
if(active_program)
|
||||
overlays.Add(active_program.program_icon_state ? active_program.program_icon_state : icon_state_menu)
|
||||
set_light(light_strength, l_color = active_program.color)
|
||||
else
|
||||
overlays.Add(icon_state_menu)
|
||||
set_light(light_strength, l_color = menu_light_color)
|
||||
|
||||
/obj/item/modular_computer/proc/turn_on(var/mob/user)
|
||||
if(tesla_link)
|
||||
|
||||
@@ -63,6 +63,7 @@
|
||||
H.holder2 = src
|
||||
user.drop_from_inventory(H)
|
||||
H.forceMove(src)
|
||||
update_icon()
|
||||
|
||||
// Uninstalls component. Found and Critical vars may be passed by parent types, if they have additional hardware.
|
||||
/obj/item/modular_computer/proc/uninstall_component(var/mob/living/user, var/obj/item/weapon/computer_hardware/H, var/found = 0, var/critical = 0)
|
||||
@@ -101,10 +102,10 @@
|
||||
to_chat(user, "You remove \the [H] from \the [src].")
|
||||
H.forceMove(get_turf(src))
|
||||
H.holder2 = null
|
||||
update_icon()
|
||||
if(critical && enabled)
|
||||
to_chat(user, "<span class='danger'>\The [src]'s screen freezes for few seconds and then displays an \"HARDWARE ERROR: Critical component disconnected. Please verify component connection and reboot the device. If the problem persists contact technical support for assistance.\" warning.</span>")
|
||||
shutdown_computer()
|
||||
update_icon()
|
||||
|
||||
|
||||
// Checks all hardware pieces to determine if name matches, if yes, returns the hardware piece, otherwise returns null
|
||||
|
||||
@@ -153,10 +153,14 @@
|
||||
if(components.len)
|
||||
to_chat(user, "Remove all components from \the [src] before disassembling it.")
|
||||
return
|
||||
new /obj/item/stack/material/steel( get_turf(src.loc), steel_sheet_cost )
|
||||
src.visible_message("\The [src] has been disassembled by [user].")
|
||||
//relay_qdel()
|
||||
qdel(src)
|
||||
to_chat(user, span("notice", "You begin to disassemble \the [src]."))
|
||||
playsound(user, 'sound/items/Ratchet.ogg', 100, 1)
|
||||
if (do_after(user, 20))
|
||||
new /obj/item/stack/material/steel(get_turf(src.loc), steel_sheet_cost)
|
||||
src.visible_message("\The [user] disassembles \the [src].",
|
||||
"You disassemble \the [src].",
|
||||
"You hear a ratchet.")
|
||||
qdel(src)
|
||||
return
|
||||
if(istype(W, /obj/item/weapon/weldingtool))
|
||||
var/obj/item/weapon/weldingtool/WT = W
|
||||
@@ -169,6 +173,7 @@
|
||||
return
|
||||
|
||||
to_chat(user, "You begin repairing damage to \the [src]...")
|
||||
playsound(src, 'sound/items/Welder.ogg', 100, 1)
|
||||
if(WT.remove_fuel(round(damage/75)) && do_after(usr, damage/10))
|
||||
damage = 0
|
||||
to_chat(user, "You repair \the [src].")
|
||||
|
||||
@@ -28,6 +28,9 @@
|
||||
var/icon_state_unpowered = null // Icon state when the computer is turned off
|
||||
var/icon_state_menu = "menu" // Icon state overlay when the computer is turned on, but no program is loaded that would override the screen.
|
||||
var/icon_state_screensaver = null
|
||||
var/screensaver_light_range = 0
|
||||
var/screensaver_light_color = null
|
||||
var/menu_light_color = null
|
||||
var/max_hardware_size = 0 // Maximal hardware size. Currently, tablets have 1, laptops 2 and consoles 3. Limits what hardware types can be installed.
|
||||
var/steel_sheet_cost = 5 // Amount of steel sheets refunded when disassembling an empty frame of this computer.
|
||||
var/light_strength = 0 // Intensity of light this computer emits. Comparable to numbers light fixtures use.
|
||||
|
||||
@@ -4,7 +4,9 @@
|
||||
icon = 'icons/obj/modular_console.dmi'
|
||||
icon_state = "console"
|
||||
icon_state_unpowered = "console"
|
||||
icon_state_menu = "menu"
|
||||
icon_state_screensaver = "standby-light"
|
||||
icon_state_menu = "menu-light"
|
||||
menu_light_color = LIGHT_COLOR_BLUE
|
||||
hardware_flag = PROGRAM_CONSOLE
|
||||
anchored = TRUE
|
||||
density = 1
|
||||
@@ -12,6 +14,8 @@
|
||||
base_active_power_usage = 500
|
||||
max_hardware_size = 3
|
||||
steel_sheet_cost = 20
|
||||
light_strength = 4
|
||||
light_strength = 2
|
||||
max_damage = 300
|
||||
broken_damage = 150
|
||||
broken_damage = 150
|
||||
screensaver_light_range = 1.4
|
||||
screensaver_light_color = "#0099ff"
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
var/available_on_syndinet = 0 // Whether the program can be downloaded from SyndiNet (accessible via emagging the computer). Set to 1 to enable.
|
||||
var/computer_emagged = 0 // Set to 1 if computer that's running us was emagged. Computer updates this every Process() tick
|
||||
var/ui_header = null // Example: "something.gif" - a header image that will be rendered in computer's UI when this program is running at background. Images are taken from /nano/images/status_icons. Be careful not to use too large images!
|
||||
var/color = "#FFFFFF" // The color of light the computer should emit when this program is open.
|
||||
|
||||
/datum/computer_file/program/New(var/obj/item/modular_computer/comp = null)
|
||||
..()
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
var/dos_speed = 0
|
||||
var/error = ""
|
||||
var/executed = 0
|
||||
color = LIGHT_COLOR_RED
|
||||
|
||||
/datum/computer_file/program/ntnet_dos/process_tick()
|
||||
dos_speed = 0
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
size = 73 // Very large, a price for bypassing ID checks completely.
|
||||
available_on_ntnet = 0
|
||||
available_on_syndinet = 1
|
||||
color = LIGHT_COLOR_RED
|
||||
|
||||
/datum/computer_file/program/camera_monitor/hacked/process_tick()
|
||||
..()
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
available_on_syndinet = 1
|
||||
nanomodule_path = /datum/nano_module/program/revelation/
|
||||
var/armed = 0
|
||||
color = LIGHT_COLOR_RED
|
||||
|
||||
/datum/computer_file/program/revelation/run_program(var/mob/living/user)
|
||||
. = ..(user)
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
usage_flags = PROGRAM_CONSOLE
|
||||
requires_ntnet = 0
|
||||
size = 8
|
||||
color = LIGHT_COLOR_BLUE
|
||||
|
||||
/datum/nano_module/program/card_mod
|
||||
name = "ID card modification program"
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
usage_flags = PROGRAM_CONSOLE
|
||||
network_destination = "station long-range communication array"
|
||||
var/datum/comm_message_listener/message_core = new
|
||||
color = LIGHT_COLOR_BLUE
|
||||
|
||||
/datum/computer_file/program/comm/clone()
|
||||
var/datum/computer_file/program/comm/temp = ..()
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
network_destination = "power monitoring system"
|
||||
size = 9
|
||||
var/has_alert = 0
|
||||
color = LIGHT_COLOR_ORANGE
|
||||
|
||||
/datum/computer_file/program/power_monitor/process_tick()
|
||||
..()
|
||||
@@ -41,6 +42,7 @@
|
||||
network_destination = "alarm monitoring network"
|
||||
size = 5
|
||||
var/has_alert = 0
|
||||
color = LIGHT_COLOR_CYAN
|
||||
|
||||
/datum/computer_file/program/alarm_monitor/process_tick()
|
||||
..()
|
||||
@@ -72,6 +74,7 @@
|
||||
requires_ntnet_feature = NTNET_SYSTEMCONTROL
|
||||
usage_flags = PROGRAM_CONSOLE
|
||||
size = 17
|
||||
color = LIGHT_COLOR_CYAN
|
||||
|
||||
/datum/computer_file/program/rcon_console
|
||||
filename = "rconconsole"
|
||||
@@ -86,6 +89,7 @@
|
||||
requires_ntnet_feature = NTNET_SYSTEMCONTROL
|
||||
usage_flags = PROGRAM_CONSOLE
|
||||
size = 19
|
||||
color = LIGHT_COLOR_GREEN
|
||||
|
||||
// Night-Mode Toggle for CE
|
||||
/datum/computer_file/program/lighting_control
|
||||
@@ -101,3 +105,4 @@
|
||||
requires_ntnet_feature = NTNET_SYSTEMCONTROL
|
||||
usage_flags = PROGRAM_CONSOLE
|
||||
size = 9
|
||||
color = LIGHT_COLOR_GREEN
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
available_on_ntnet = 1 // ... but we want it to be available for download.
|
||||
nanomodule_path = /datum/nano_module/arcade_classic/ // Path of relevant nano module. The nano module is defined further in the file.
|
||||
var/picked_enemy_name
|
||||
color = LIGHT_COLOR_BLUE
|
||||
|
||||
// Blatantly stolen and shortened version from arcade machines. Generates a random enemy name
|
||||
/datum/computer_file/program/game/arcade/proc/random_enemy_name()
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
var/downloading = 0
|
||||
var/message = ""
|
||||
var/show_archived = 0
|
||||
color = LIGHT_COLOR_GREEN
|
||||
|
||||
/datum/computer_file/program/newsbrowser/process_tick()
|
||||
if(!downloading)
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
var/datum/ntnet_conversation/channel = null
|
||||
var/operator_mode = 0 // Channel operator mode
|
||||
var/netadmin_mode = 0 // Administrator mode (invisible to other users + bypasses passwords)
|
||||
color = LIGHT_COLOR_GREEN
|
||||
|
||||
/datum/computer_file/program/chatclient/New()
|
||||
username = "DefaultUser[rand(100, 999)]"
|
||||
|
||||
@@ -11,6 +11,7 @@ var/global/nttransfer_uid = 0
|
||||
network_destination = "other device via P2P tunnel"
|
||||
available_on_ntnet = 1
|
||||
nanomodule_path = /datum/nano_module/program/computer_nttransfer/
|
||||
color = LIGHT_COLOR_GREEN
|
||||
|
||||
var/error = "" // Error screen
|
||||
var/server_password = "" // Optional password to download the file.
|
||||
|
||||
@@ -10,3 +10,4 @@
|
||||
network_destination = "crew lifesigns monitoring system"
|
||||
size = 11
|
||||
usage_flags = PROGRAM_CONSOLE | PROGRAM_LAPTOP
|
||||
color = LIGHT_COLOR_CYAN
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
available_on_ntnet = 1
|
||||
nanomodule_path = /datum/nano_module/program/computer_aidiag/
|
||||
var/restoring = 0
|
||||
color = LIGHT_COLOR_PURPLE
|
||||
|
||||
/datum/computer_file/program/aidiag/proc/get_ai()
|
||||
if(computer && computer.ai_slot && computer.ai_slot.check_functionality() && computer.ai_slot.enabled && computer.ai_slot.stored_card && computer.ai_slot.stored_card.carded_ai)
|
||||
|
||||
@@ -9,3 +9,4 @@
|
||||
usage_flags = PROGRAM_CONSOLE | PROGRAM_LAPTOP
|
||||
requires_ntnet = 1
|
||||
size = 8
|
||||
color = LIGHT_COLOR_PURPLE
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
required_access_run = access_network
|
||||
required_access_download = access_heads
|
||||
usage_flags = PROGRAM_CONSOLE
|
||||
color = LIGHT_COLOR_GREEN
|
||||
|
||||
available_on_ntnet = 1
|
||||
nanomodule_path = /datum/nano_module/computer_ntnetmonitor/
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
available_on_ntnet = 1
|
||||
requires_ntnet = 1
|
||||
required_access_download = access_heads
|
||||
color = LIGHT_COLOR_ORANGE
|
||||
|
||||
/datum/nano_module/camera_monitor
|
||||
name = "Camera Monitoring program"
|
||||
|
||||
@@ -12,6 +12,8 @@ var/warrant_uid = 0
|
||||
filename = "digitalwarrant"
|
||||
filedesc = "Warrant Assistant"
|
||||
extended_desc = "Official NTsec program for creation and handling of warrants."
|
||||
program_icon_state = "security"
|
||||
color = LIGHT_COLOR_ORANGE
|
||||
size = 8
|
||||
requires_ntnet = 1
|
||||
available_on_ntnet = 1
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
filedesc = "NTOS Client Manager"
|
||||
extended_desc = "This program allows configuration of computer's software"
|
||||
program_icon_state = "generic"
|
||||
color = LIGHT_COLOR_GREEN
|
||||
unsendable = 1
|
||||
undeletable = 1
|
||||
size = 4
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
filedesc = "Computer Configuration Tool"
|
||||
extended_desc = "This program allows configuration of computer's hardware"
|
||||
program_icon_state = "generic"
|
||||
color = LIGHT_COLOR_GREEN
|
||||
unsendable = 1
|
||||
undeletable = 1
|
||||
size = 4
|
||||
@@ -59,4 +60,4 @@
|
||||
ui = new(user, src, ui_key, "laptop_configuration.tmpl", "NTOS Configuration Utility", 575, 700, state = state)
|
||||
ui.auto_update_layout = 1
|
||||
ui.set_initial_data(data)
|
||||
ui.open()
|
||||
ui.open()
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
filedesc = "NTOS File Manager"
|
||||
extended_desc = "This program allows management of files."
|
||||
program_icon_state = "generic"
|
||||
color = LIGHT_COLOR_GREEN
|
||||
size = 8
|
||||
requires_ntnet = 0
|
||||
available_on_ntnet = 0
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
filedesc = "NTNet Software Download Tool"
|
||||
program_icon_state = "generic"
|
||||
extended_desc = "This program allows downloads of software from official NT repositories"
|
||||
color = LIGHT_COLOR_GREEN
|
||||
unsendable = 1
|
||||
undeletable = 1
|
||||
size = 4
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
critical = 0
|
||||
enabled = 1
|
||||
icon_state = "teslalink"
|
||||
hardware_size = 2
|
||||
hardware_size = 3
|
||||
origin_tech = list(TECH_DATA = 2, TECH_POWER = 3, TECH_ENGINEERING = 2)
|
||||
var/obj/machinery/modular_computer/holder
|
||||
var/passive_charging_rate = 250 // W
|
||||
|
||||
Reference in New Issue
Block a user