mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-22 12:29:46 +01:00
Improvements to NTNet and file mechanics
- Small adjustments to NTNet behaviour. - Adds "undeletable" and "unmovable" flags for computer files. Intended to use for ROM-style programs that are necessary for PC to work. - Programs now know NTNet status and can act differently depending on this.
This commit is contained in:
@@ -16,6 +16,7 @@ var/global/datum/ntnet/ntnet_global = new()
|
||||
ntnet_global = src // There can be only one.
|
||||
for(var/obj/machinery/ntnet_relay/R in machines)
|
||||
relays.Add(R)
|
||||
R.NTNet = src
|
||||
|
||||
/datum/ntnet/proc/check_function(var/specific_action = 0)
|
||||
if(!relays || !relays.len) // No relays found. NTNet is down
|
||||
|
||||
@@ -5,6 +5,9 @@
|
||||
use_power = 1
|
||||
idle_power_usage = 20000 //20kW, apropriate for machine that keeps massive cross-Zlevel wireless network operational.
|
||||
icon_state = "bus"
|
||||
anchored = 1
|
||||
density = 1
|
||||
var/NTNet = null // This is mostly for backwards reference and to allow varedit modifications from ingame.
|
||||
|
||||
// TODO: Implement more logic here. For now it's only a placeholder.
|
||||
/obj/machinery/ntnet_relay/proc/is_operational()
|
||||
@@ -15,7 +18,11 @@
|
||||
/obj/machinery/ntnet_relay/New()
|
||||
if(ntnet_global)
|
||||
ntnet_global.relays.Add(src)
|
||||
NTNet = ntnet_global
|
||||
..()
|
||||
|
||||
/obj/machinery/ntnet_relay/Destroy()
|
||||
if(ntnet_global)
|
||||
ntnet_global.relays.Remove(src)
|
||||
ntnet_global.relays.Remove(src)
|
||||
NTNet = null
|
||||
..()
|
||||
@@ -271,6 +271,7 @@
|
||||
|
||||
data["PC_stationtime"] = worldtime2text()
|
||||
data["PC_hasheader"] = 1
|
||||
data["PC_showexitprogram"] = active_program ? 1 : 0 // Hides "Exit Program" button on mainscreen
|
||||
return data
|
||||
|
||||
|
||||
|
||||
@@ -4,7 +4,8 @@
|
||||
var/size = 1 // File size in GQ (default 1, do not change unless you really have to). Non-1 values are currently unused but they should be supported.
|
||||
var/datum/computer_hardware/hard_drive/holder // Holder that contains this file.
|
||||
var/icon_path = null // !!32x32!! icon of this program
|
||||
|
||||
var/unsendable = 0 // Whether the file may be sent to someone via NTNet transfer or other means.
|
||||
var/undeletable = 0 // Whether the file may be deleted. Setting to 1 prevents deletion/renaming/etc.
|
||||
|
||||
/datum/computer_file/Destroy()
|
||||
if(!holder)
|
||||
@@ -15,4 +16,4 @@
|
||||
if(holder.holder && holder.holder.active_program == src)
|
||||
holder.holder.kill_program(1)
|
||||
holder = null
|
||||
..()
|
||||
..()
|
||||
@@ -8,10 +8,11 @@
|
||||
var/running = 1 // Set to 1 when the program is run and back to 0 when it's stopped.
|
||||
var/atom/movable/computer = null // Device that runs this program.
|
||||
var/filedesc = "Unknown Program" // User-friendly name of this program.
|
||||
var/fileicon = "unknwn" // Name of relevant icon that is displayed with the program
|
||||
var/fileicon = "unknwn" // Name of relevant icon that is displayed with the program. Currently unused.
|
||||
var/laptop_icon_state = null // Program-specific icon state (stored in /icons/obj/computer3.dmi)
|
||||
var/requires_ntnet = 0 // Set to 1 for program to require nonstop NTNet connection to run. If NTNet connection is lost program crashes.
|
||||
var/requires_ntnet_feature = 0 // Optional, if above is set to 1 checks for specific function of NTNet (currently NTNET_SOFTWAREDOWNLOAD, NTNET_PEERTOPEER, NTNET_SYSTEMCONTROL and NTNET_COMMUNICATION)
|
||||
var/ntnet_status = 1 // NTNet status, updated every tick by computer running this program. Don't use this for checks if NTNet works, computers do that. Use this for calculations, etc.
|
||||
|
||||
/datum/computer_file/program/New(var/atom/movable/comp = null)
|
||||
..()
|
||||
@@ -92,4 +93,5 @@
|
||||
|
||||
if(computer)
|
||||
computer.Topic(href, href_list)
|
||||
..()
|
||||
..()
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
desc = "A basic network card for usage with standard NTNet frequencies."
|
||||
power_usage = 50
|
||||
critical = 0
|
||||
var/identification_string = "" // Identification string, technically nickname seen in the network. Can be set by user.
|
||||
var/long_range = 0
|
||||
var/ethernet = 0 // Hard-wired, therefore always on, ignores NTNet wireless checks.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user