Files
Bubberstation/code/modules/pai/hud.dm
Waterpig bb70889f6e TG Upstream Part 1
3591 individual conflicts

Update build.js

Update install_node.sh

Update byond.js

oh my fucking god

hat

slow

huh

holy shit

we all fall down

2 more I missed

2900 individual conflicts

2700 Individual conflicts

replaces yarn file with tg version, bumping us down to 2200-ish

Down to 2000 individual conflicts

140 down

mmm

aaaaaaaaaaaaaaaaaaa

not yt

575

soon

900 individual conflicts

600 individual conflicts, 121 file conflicts

im not okay

160 across 19 files

29 in 4 files

0 conflicts, compiletime fix time

some minor incap stuff

missed ticks

weird dupe definition stuff

missed ticks 2

incap fixes

undefs and pie fix

Radio update and some extra minor stuff

returns a single override

no more dupe definitions, 175 compiletime errors

Unticked file fix

sound and emote stuff

honk and more radio stuff
2024-10-19 08:04:33 -07:00

274 lines
6.7 KiB
Plaintext

#define PAI_MISSING_SOFTWARE_MESSAGE span_warning("You must download the required software to use this.")
/atom/movable/screen/pai
icon = 'icons/hud/screen_pai.dmi'
var/required_software
/atom/movable/screen/pai/Click()
if(isobserver(usr) || usr.incapacitated)
return FALSE
var/mob/living/silicon/pai/user = usr
if(required_software && !user.installed_software.Find(required_software))
to_chat(user, PAI_MISSING_SOFTWARE_MESSAGE)
return FALSE
return TRUE
/atom/movable/screen/pai/software
name = "Software Interface"
icon_state = "pai"
/atom/movable/screen/pai/software/Click()
if(!..())
return
var/mob/living/silicon/pai/pAI = usr
pAI.ui_interact(pAI)
/atom/movable/screen/pai/shell
name = "Toggle Holoform"
icon_state = "pai_holoform"
/atom/movable/screen/pai/shell/Click()
if(!..())
return
var/mob/living/silicon/pai/pAI = usr
if(pAI.holoform)
pAI.fold_in(0)
else
pAI.fold_out()
/atom/movable/screen/pai/chassis
name = "Holochassis Appearance Composite"
icon_state = "pai_chassis"
/atom/movable/screen/pai/chassis/Click()
if(!..())
return
var/mob/living/silicon/pai/pAI = usr
pAI.choose_chassis()
/atom/movable/screen/pai/rest
name = "Rest"
icon_state = "pai_rest"
/atom/movable/screen/pai/rest/Click()
if(!..())
return
var/mob/living/silicon/pai/pAI = usr
pAI.toggle_resting()
/atom/movable/screen/pai/light
name = "Toggle Integrated Lights"
icon_state = "light"
/atom/movable/screen/pai/light/Click()
if(!..())
return
var/mob/living/silicon/pai/pAI = usr
pAI.toggle_integrated_light()
/atom/movable/screen/pai/newscaster
name = "pAI Newscaster"
icon_state = "newscaster"
required_software = "Newscaster"
/atom/movable/screen/pai/newscaster/Click()
if(!..())
return
var/mob/living/silicon/pai/pAI = usr
pAI.newscaster.ui_interact(usr)
/atom/movable/screen/pai/host_monitor
name = "Host Health Scan"
icon_state = "host_monitor"
required_software = "Host Scan"
/atom/movable/screen/pai/host_monitor/Click(location, control, params)
. = ..()
if(!.)
return
var/mob/living/silicon/pai/pAI = usr
var/list/modifiers = params2list(params)
if(LAZYACCESS(modifiers, LEFT_CLICK))
pAI.host_scan(PAI_SCAN_TARGET)
return TRUE
if(LAZYACCESS(modifiers, RIGHT_CLICK))
pAI.host_scan(PAI_SCAN_MASTER)
return TRUE
/atom/movable/screen/pai/crew_manifest
name = "Crew Manifest"
icon_state = "manifest"
required_software = "Crew Manifest"
/atom/movable/screen/pai/crew_manifest/Click()
if(!..())
return
var/mob/living/silicon/pai/pAI = usr
pAI.ai_roster()
/atom/movable/screen/pai/state_laws
name = "State Laws"
icon_state = "state_laws"
/atom/movable/screen/pai/state_laws/Click()
if(!..())
return
var/mob/living/silicon/pai/pAI = usr
pAI.checklaws()
/atom/movable/screen/pai/modpc
name = "Messenger"
icon_state = "pda_send"
required_software = "Digital Messenger"
var/mob/living/silicon/pai/pAI
/atom/movable/screen/pai/modpc/Click()
. = ..()
if(!.) // this works for some reason.
return
pAI.modularInterface?.interact(pAI)
/atom/movable/screen/pai/internal_gps
name = "Internal GPS"
icon_state = "internal_gps"
required_software = "Internal GPS"
/atom/movable/screen/pai/internal_gps/Click()
. = ..()
if(!.)
return
var/mob/living/silicon/pai/pAI = usr
if(!pAI.internal_gps)
pAI.internal_gps = new(pAI)
pAI.internal_gps.attack_self(pAI)
/atom/movable/screen/pai/image_take
name = "Take Image"
icon_state = "take_picture"
required_software = "Photography Module"
/atom/movable/screen/pai/image_take/Click()
. = ..()
if(!.)
return
var/mob/living/silicon/pai/pAI = usr
pAI.aicamera.toggle_camera_mode(usr)
/atom/movable/screen/pai/image_view
name = "View Images"
icon_state = "view_images"
required_software = "Photography Module"
/atom/movable/screen/pai/image_view/Click()
if(!..())
return
var/mob/living/silicon/pai/pAI = usr
pAI.aicamera.viewpictures(usr)
/atom/movable/screen/pai/radio
name = "radio"
icon = 'icons/hud/screen_cyborg.dmi'
icon_state = "radio"
/atom/movable/screen/pai/radio/Click()
if(!..())
return
var/mob/living/silicon/pai/pAI = usr
pAI.radio.interact(usr)
/datum/hud/pai/New(mob/living/silicon/pai/owner)
..()
var/atom/movable/screen/using
// Software menu
using = new /atom/movable/screen/pai/software(null, src)
using.screen_loc = ui_pai_software
static_inventory += using
// Holoform
using = new /atom/movable/screen/pai/shell(null, src)
using.screen_loc = ui_pai_shell
static_inventory += using
// Chassis Select Menu
using = new /atom/movable/screen/pai/chassis(null, src)
using.screen_loc = ui_pai_chassis
static_inventory += using
// Rest
using = new /atom/movable/screen/pai/rest(null, src)
using.screen_loc = ui_pai_rest
static_inventory += using
// Integrated Light
using = new /atom/movable/screen/pai/light(null, src)
using.screen_loc = ui_pai_light
static_inventory += using
// Newscaster
using = new /atom/movable/screen/pai/newscaster(null, src)
using.screen_loc = ui_pai_newscaster
static_inventory += using
// Language menu
using = new /atom/movable/screen/language_menu(null, src)
using.screen_loc = ui_pai_language_menu
static_inventory += using
// Navigation
using = new /atom/movable/screen/navigate(null, src)
using.screen_loc = ui_pai_navigate_menu
static_inventory += using
// Host Monitor
using = new /atom/movable/screen/pai/host_monitor(null, src)
using.screen_loc = ui_pai_host_monitor
static_inventory += using
// Crew Manifest
using = new /atom/movable/screen/pai/crew_manifest(null, src)
using.screen_loc = ui_pai_crew_manifest
static_inventory += using
// Laws
using = new /atom/movable/screen/pai/state_laws(null, src)
using.screen_loc = ui_pai_state_laws
static_inventory += using
// Modular Interface
using = new /atom/movable/screen/pai/modpc(null, src)
using.screen_loc = ui_pai_mod_int
static_inventory += using
var/atom/movable/screen/pai/modpc/tablet_button = using
tablet_button.pAI = mymob
// Internal GPS
using = new /atom/movable/screen/pai/internal_gps(null, src)
using.screen_loc = ui_pai_internal_gps
static_inventory += using
// Take image
using = new /atom/movable/screen/pai/image_take(null, src)
using.screen_loc = ui_pai_take_picture
static_inventory += using
// View images
using = new /atom/movable/screen/pai/image_view(null, src)
using.screen_loc = ui_pai_view_images
static_inventory += using
// Radio
using = new /atom/movable/screen/pai/radio(null, src)
using.screen_loc = ui_pai_radio
static_inventory += using
update_software_buttons()
/datum/hud/pai/proc/update_software_buttons()
var/mob/living/silicon/pai/owner = mymob
for(var/atom/movable/screen/pai/button in static_inventory)
if(button.required_software)
button.color = owner.installed_software.Find(button.required_software) ? null : COLOR_GRAY
#undef PAI_MISSING_SOFTWARE_MESSAGE