program

Vars | |
alert_able | Whether this program can send alerts while minimized or closed. Used to show a mute button per program in the file manager |
---|---|
alert_pending | Whether to highlight our program in the main screen. Intended for alerts, but loosely available for any need to notify of changed conditions. Think Windows task bar highlighting. Available even if alerts are muted. |
alert_silenced | Whether the user has muted this program's ability to send alerts. |
available_on_ntnet | Whether the program can be downloaded from NTNet. Set to FALSE to disable. |
available_on_syndinet | Whether the program can be downloaded from SyndiNet (accessible via emagging the computer). Set to TRUE to enable. |
category | Category in the NTDownloader. |
detomatix_resistance | How well this program will help combat detomatix viruses. |
extended_desc | Short description of this program's function. |
filedesc | User-friendly name of this program. |
filename | File name. FILE NAME MUST BE UNIQUE IF YOU WANT THE PROGRAM TO BE DOWNLOADABLE FROM NTNET! |
ntnet_status | 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. |
program_icon | Font Awesome icon to use as this program's icon in the modular computer main menu. Defaults to a basic program maximize window icon if not overridden. |
program_icon_state | Program-specific screen icon state |
program_state | PROGRAM_STATE_KILLED or PROGRAM_STATE_BACKGROUND or PROGRAM_STATE_ACTIVE - specifies whether this program is running. |
required_access | List of required accesses to run the program. Any match will do. |
requires_ntnet | Set to 1 for program to require nonstop NTNet connection to run. If NTNet connection is lost program crashes. |
requires_ntnet_feature | Optional, if above is set to 1 checks for specific function of NTNet (currently NTNET_SOFTWAREDOWNLOAD and NTNET_COMMUNICATION) |
tgui_id | Name of the tgui interface |
transfer_access | List of required access to download or file host the program. Any match will do. |
ui_header | Example: "something.gif" - a header image that will be rendered in computer's UI when this program is running at background. Images must also be inserted into /datum/asset/simple/headers. |
usage_flags | Bitflags (PROGRAM_CONSOLE, PROGRAM_LAPTOP, PROGRAM_TABLET combination) or PROGRAM_ALL |
Procs | |
can_run | Check if the user can run program. Only humans and silicons can operate computer. Automatically called in on_start() ID must be inserted into a card slot to be read. If the program is not currently installed (as is the case when NT Software Hub is checking available software), a list can be given to be used instead. Arguments: user is a ref of the mob using the device. loud is a bool deciding if this proc should use to_chats access_to_check is an access level that will be checked against the ID transfer, if TRUE and access_to_check is null, will tell this proc to use the program's transfer_access in place of access_to_check access can contain a list of access numbers to check against. If access is not empty, it will be used istead of checking any inserted ID. |
get_header_data | This attempts to retrieve header data for UIs. |
is_supported_by_hardware | Makes sure a program can run on this hardware (for apps limited to tablets/computers/laptops) |
kill_program | Kills the running program |
on_start | Called on program startup. |
run_emag | Called by the device when it is emagged. |
tap | Runs when the device is used to attack an atom in non-combat mode using right click (secondary). |
Var Details
alert_able

Whether this program can send alerts while minimized or closed. Used to show a mute button per program in the file manager
alert_pending

Whether to highlight our program in the main screen. Intended for alerts, but loosely available for any need to notify of changed conditions. Think Windows task bar highlighting. Available even if alerts are muted.
alert_silenced

Whether the user has muted this program's ability to send alerts.
available_on_ntnet

Whether the program can be downloaded from NTNet. Set to FALSE to disable.
available_on_syndinet

Whether the program can be downloaded from SyndiNet (accessible via emagging the computer). Set to TRUE to enable.
category

Category in the NTDownloader.
detomatix_resistance

How well this program will help combat detomatix viruses.
extended_desc

Short description of this program's function.
filedesc

User-friendly name of this program.
filename

File name. FILE NAME MUST BE UNIQUE IF YOU WANT THE PROGRAM TO BE DOWNLOADABLE FROM NTNET!
ntnet_status

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.
program_icon

Font Awesome icon to use as this program's icon in the modular computer main menu. Defaults to a basic program maximize window icon if not overridden.
program_icon_state

Program-specific screen icon state
program_state

PROGRAM_STATE_KILLED or PROGRAM_STATE_BACKGROUND or PROGRAM_STATE_ACTIVE - specifies whether this program is running.
required_access

List of required accesses to run the program. Any match will do.
requires_ntnet

Set to 1 for program to require nonstop NTNet connection to run. If NTNet connection is lost program crashes.
requires_ntnet_feature

Optional, if above is set to 1 checks for specific function of NTNet (currently NTNET_SOFTWAREDOWNLOAD and NTNET_COMMUNICATION)
tgui_id

Name of the tgui interface
transfer_access

List of required access to download or file host the program. Any match will do.
ui_header

Example: "something.gif" - a header image that will be rendered in computer's UI when this program is running at background. Images must also be inserted into /datum/asset/simple/headers.
usage_flags

Bitflags (PROGRAM_CONSOLE, PROGRAM_LAPTOP, PROGRAM_TABLET combination) or PROGRAM_ALL
Proc Details
can_run
Check if the user can run program. Only humans and silicons can operate computer. Automatically called in on_start() ID must be inserted into a card slot to be read. If the program is not currently installed (as is the case when NT Software Hub is checking available software), a list can be given to be used instead. Arguments: user is a ref of the mob using the device. loud is a bool deciding if this proc should use to_chats access_to_check is an access level that will be checked against the ID transfer, if TRUE and access_to_check is null, will tell this proc to use the program's transfer_access in place of access_to_check access can contain a list of access numbers to check against. If access is not empty, it will be used istead of checking any inserted ID.
get_header_data
This attempts to retrieve header data for UIs.
If implementing completely new device of different type than existing ones always include the device here in this proc. This proc basically relays the request to whatever is running the program.
is_supported_by_hardware
Makes sure a program can run on this hardware (for apps limited to tablets/computers/laptops)
kill_program
Kills the running program
Use this proc to kill the program. Designed to be implemented by each program if it requires on-quit logic, such as the NTNRC client. Arguments:
- forced - Boolean to determine if this was a forced close. Should be TRUE if the user did not willingly close the program.
on_start
Called on program startup.
May be overridden to add extra logic. Remember to include ..() call. Return 1 on success, 0 on failure. When implementing new program based device, use this to run the program. Arguments:
- user - The mob that started the program
run_emag
Called by the device when it is emagged.
Emagging the device allows certain programs to unlock new functions. However, the program will need to be downloaded first, and then handle the unlock on their own in their run_emag() proc. The device will allow an emag to be run multiple times, so the user can re-emag to run the override again, should they download something new. The run_emag() proc should return TRUE if the emagging affected anything, and FALSE if no change was made (already emagged, or has no emag functions).
tap
Runs when the device is used to attack an atom in non-combat mode using right click (secondary).
Simulates using the device to read or scan something. Tap is called by the computer during pre_attack and sends us all of the related info. If we return TRUE, the computer will stop the attack process there. What we do with the info is up to us, but we should only return TRUE if we actually perform an action of some sort. Arguments: A is the atom being tapped user is the person making the attack action params is anything the pre_attack() proc had in the same-named variable.