pAI Software ![code/modules/mob/living/silicon/pai/software/pai_software_base.dm 10](git.png)
Datum module for pAI software
Very similar to the PDA app datum, this determines what UI sub-template to use, as well as the RAM cost, and if it is toggle software (not a UI app)
Vars | |
default | Do we have this software installed by default |
---|---|
id | ID for the software. This must be unique |
name | Name for the software. This is used as the button text when buying or opening/toggling the software |
pai_holder | pAI which holds this software |
ram_cost | RAM cost; pAIs start with 100 RAM, spending it on programs |
template_file | Template for the TGUI file |
toggle_software | Whether this software is a toggle or not |
ui_icon | Icon for inside the UI |
Procs | |
New | New handler |
get_app_data | Handler for the app's UI data |
get_holding_mob | Helper proc so that pAIs can get the mob holding them |
is_active | Helper for checking if a toggle is enabled or not |
toggle | Handler for toggling toggle apps on and off |
ui_act | ui_act sanity check helper |
Var Details
default ![code/modules/mob/living/silicon/pai/software/pai_software_base.dm 22](git.png)
Do we have this software installed by default
id ![code/modules/mob/living/silicon/pai/software/pai_software_base.dm 16](git.png)
ID for the software. This must be unique
name ![code/modules/mob/living/silicon/pai/software/pai_software_base.dm 12](git.png)
Name for the software. This is used as the button text when buying or opening/toggling the software
pai_holder ![code/modules/mob/living/silicon/pai/software/pai_software_base.dm 30](git.png)
pAI which holds this software
ram_cost ![code/modules/mob/living/silicon/pai/software/pai_software_base.dm 14](git.png)
RAM cost; pAIs start with 100 RAM, spending it on programs
template_file ![code/modules/mob/living/silicon/pai/software/pai_software_base.dm 24](git.png)
Template for the TGUI file
toggle_software ![code/modules/mob/living/silicon/pai/software/pai_software_base.dm 20](git.png)
Whether this software is a toggle or not
ui_icon ![code/modules/mob/living/silicon/pai/software/pai_software_base.dm 26](git.png)
Icon for inside the UI
Proc Details
New
New handler
Ensures that the pai_holder var is set to the pAI itself Arguments:
- user - The pAI that this softawre is held by
get_app_data
Handler for the app's UI data
This returns the list of the current app's data for the UI This will then be injected as a variable on the TGUI data called "app_data"
Arguments:
- user - The pAI that is using this app
get_holding_mob
Helper proc so that pAIs can get the mob holding them
This needs to exist because pAIs have many different locs (Held card, mob itself, in pocket, etc)
Arguments:
- inform - Boolean, should we inform the pAI if they fail to find a carrier
is_active
Helper for checking if a toggle is enabled or not
Returns TRUE if the toggle software is active, FALSE if not
Its like this instead of a simple is_toggled
var because some toggles override eachother and this is easier
Arguments:
- user - The pAI that is using this app
toggle
Handler for toggling toggle apps on and off
This is invoked whenever you toggle a toggleable function Put your toggleable work in here
Arguments:
- user - The pAI that is using this toggle
ui_act
ui_act sanity check helper
Basically checks the existing href exploit stuff, as well as making sure the user using the UI is the pAI itself