From b59cd866d923338fd2f0e05e4d191ee66780827e Mon Sep 17 00:00:00 2001 From: Monara <86886852+MonaraMir@users.noreply.github.com> Date: Thu, 27 Jul 2023 12:53:56 -0400 Subject: [PATCH] Prepwork for mapping modular laptops/helmcams (#5789) ## About The Pull Request Some prepwork for mapping modular laptops/helmcams ## Why It's Good For The Game Remaking the PR without all the mapping because it wasnt merged fast enough last time, causing me to conflict with my newest mapping project. --- .../crates_lockers/closets/secure/security.dm | 2 ++ .../clothing/under/accessories/armor.dm | 15 +++++++++++++-- .../computers/subtypes/preset_laptop.dm | 8 ++++++++ .../computers/subtypes/preset_tablet.dm | 9 +++++++++ code/modules/tgui/modules/camera.dm | 1 + icons/obj/clothing/Sprite-0002.dmi | Bin 699 -> 0 bytes icons/obj/clothing/modular_armor.dmi | Bin 15332 -> 6804 bytes 7 files changed, 33 insertions(+), 2 deletions(-) delete mode 100644 icons/obj/clothing/Sprite-0002.dmi diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm index f79120e0e7f..3a68f3e713a 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -283,6 +283,7 @@ req_access = list(ACCESS_SECURITY_BRIG) starts_with = list( + /obj/item/modular_computer/tablet/preset/custom_loadout/standard/security, /obj/item/cartridge/security, /obj/item/radio/headset/headset_sec, /obj/item/radio/headset/headset_sec/alt, @@ -301,6 +302,7 @@ /obj/item/gun/energy/secutor, /obj/item/cell/device/weapon, /obj/item/gps/security, + /obj/item/holowarrant, /obj/item/clothing/under/bodysuit/bodysuitsec, /obj/item/clothing/suit/storage/hooded/wintercoat/security, /obj/item/clothing/shoes/boots/winter/security, diff --git a/code/modules/clothing/under/accessories/armor.dm b/code/modules/clothing/under/accessories/armor.dm index 364b46c424c..dbdadcb1fbd 100644 --- a/code/modules/clothing/under/accessories/armor.dm +++ b/code/modules/clothing/under/accessories/armor.dm @@ -519,17 +519,28 @@ camera_networks = list(NETWORK_CIV_HELMETS) /obj/item/clothing/accessory/armor/helmetcamera/security - name = "\improper Security helmet camera" + name = "security helmet camera" desc = "A small camera that attaches to helmets. This one has its feed restricted to Security." icon_state = "helmcam_sec" camera_networks = list(NETWORK_SEC_HELMETS) +/obj/item/clothing/accessory/armor/helmetcamera/security/body + name = "security body camera" + desc = "A small camera that attaches to most uniforms. This one has its feed restricted to Security." + icon_state = "helmcam_body_sec" + slot = ACCESSORY_SLOT_DECOR + /obj/item/clothing/accessory/armor/helmetcamera/exploration - name = "\improper Exploration helmet camera" + name = "exploration helmet camera" desc = "A small camera that attaches to helmets. This one has its feed restricted to Exploration." icon_state = "helmcam_explo" camera_networks = list(NETWORK_EXPLO_HELMETS) +/obj/item/clothing/accessory/armor/helmetcamera/exploration/body + name = "exploration body camera" + desc = "A small camera that attaches to most uniforms. This one has its feed restricted to Exploration." + slot = ACCESSORY_SLOT_DECOR + icon_state = "helmcam_body_explo" //Lightweight Limb Plating - These are incompatible with plate carriers. diff --git a/code/modules/modular_computers/computers/subtypes/preset_laptop.dm b/code/modules/modular_computers/computers/subtypes/preset_laptop.dm index 7e2351e67d8..664551678ef 100644 --- a/code/modules/modular_computers/computers/subtypes/preset_laptop.dm +++ b/code/modules/modular_computers/computers/subtypes/preset_laptop.dm @@ -98,3 +98,11 @@ /obj/item/modular_computer/laptop/preset/custom_loadout/standard/pathfinder/install_default_programs() ..() hard_drive.store_file(new/datum/computer_file/program/camera_monitor/explohelmet()) + +/obj/item/modular_computer/laptop/preset/custom_loadout/standard/searchandrescue + name = "\improper S&R's laptop" + +/obj/item/modular_computer/laptop/preset/custom_loadout/standard/searchandrescue/install_default_programs() + ..() + hard_drive.store_file(new/datum/computer_file/program/camera_monitor/explohelmet()) + hard_drive.store_file(new/datum/computer_file/program/suit_sensors()) diff --git a/code/modules/modular_computers/computers/subtypes/preset_tablet.dm b/code/modules/modular_computers/computers/subtypes/preset_tablet.dm index 05e7c8afbb9..9ad672c0ce4 100644 --- a/code/modules/modular_computers/computers/subtypes/preset_tablet.dm +++ b/code/modules/modular_computers/computers/subtypes/preset_tablet.dm @@ -26,3 +26,12 @@ network_card = new/obj/item/computer_hardware/network_card(src) battery_module = new/obj/item/computer_hardware/battery_module/micro(src) battery_module.charge_to_full() + +/obj/item/modular_computer/tablet/preset/custom_loadout/standard/security + name = "\improper Security Officer's tablet" + +/obj/item/modular_computer/tablet/preset/custom_loadout/standard/security/install_default_programs() + ..() + hard_drive.store_file(new/datum/computer_file/program/camera_monitor()) + hard_drive.store_file(new/datum/computer_file/program/camera_monitor/sechelmet()) + hard_drive.store_file(new/datum/computer_file/program/digitalwarrant()) diff --git a/code/modules/tgui/modules/camera.dm b/code/modules/tgui/modules/camera.dm index 6a3d774fc59..78124a6ffc9 100644 --- a/code/modules/tgui/modules/camera.dm +++ b/code/modules/tgui/modules/camera.dm @@ -303,6 +303,7 @@ /datum/tgui_module_old/camera/ntos/helmet/New(host) . = ..(host, list(NETWORK_CIV_HELMETS)) + /datum/tgui_module_old/camera/ntos/security_helmet name = "Security Helmet Camera Monitor" diff --git a/icons/obj/clothing/Sprite-0002.dmi b/icons/obj/clothing/Sprite-0002.dmi deleted file mode 100644 index 948401a61851f61bbe00702e2c37f6022695f926..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 699 zcmV;s0!00ZP)Px%bxA})R9J=WmQP3&VHn1LpIQjphI?`G(6XWA9~g*QVOdlLi8>lVhfI=)6cS=D zd-1Y23p}(JV^`=wdTCR)IJcqJ{Qa+9M%ooh zC6f_$I&;?Km(^2Czc0}3eP;CX7-RK+c=+# z(J^M`f!#&#JOIu?i~-_PV*=o?ao0RxG(YpMm;IXx`z4dV5^P0H*3Sd+#EgD#^cDc! z-4_8!%`NJN2~Pu+szyK^Mw7NsGhJxX0w|UO3BIW?o{kFagSa-&ix~M$i0BFr@82dh zx9BkLng=KXO$8{LYv%vF%(zD$u;L&+X$LRC7?c!tcFK;r6VC&cs>Z64XJRnI{Mu&# zM%vpv>uUy#%hB1_?`ZDEd0~4!CjcD|BHU0c0>G=Kx1?sLg)FbQ8#u}Txz&VPEa3MA hNX2b_y-G2Gf8SZwtxTt002ovPDHLkV1h!4Kn?%^ diff --git a/icons/obj/clothing/modular_armor.dmi b/icons/obj/clothing/modular_armor.dmi index f77e0b26080218c6530056c1cc87827a900da6c2..8299cefb2199e354be58bf92f179df807a19937e 100644 GIT binary patch literal 6804 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 literal 15332 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 eqkJgp=KaekoPhM?$KdT