Omnihud glasses

This commit is contained in:
Arokha Sieyes
2016-10-22 18:14:27 -04:00
parent 8b3625df9a
commit 9730557674
8 changed files with 117 additions and 6 deletions
+20
View File
@@ -0,0 +1,20 @@
proc/process_omni_hud(var/mob/M, var/mode, var/mob/Alt)
if(!can_process_hud(M))
return
var/datum/arranged_hud_process/P = arrange_hud_process(M, Alt, med_hud_users)
for(var/mob/living/carbon/human/guy in P.Mob.in_view(P.Turf))
if(P.Mob.see_invisible < guy.invisibility)
continue
P.Client.images += guy.hud_list[ID_HUD]
P.Client.images += guy.hud_list[HEALTH_HUD]
//if(shades.mode == "med") //Medical advanced version
//Nothing special to show, really, just records become available.
if(mode == "sec") //Security advanced version
P.Client.images += guy.hud_list[WANTED_HUD]
P.Client.images += guy.hud_list[IMPLOYAL_HUD]
if(mode == "best") //Command/omni advanced version
P.Client.images += guy.hud_list[WANTED_HUD]
P.Client.images += guy.hud_list[IMPLOYAL_HUD]
+53
View File
@@ -0,0 +1,53 @@
/obj/item/clothing/glasses/sunglasses/omnihud
name = "AR sunglasses"
desc = "The KHI-63 AR Sunglasses are a design from Kitsuhana Heavy Industries. \
Not as complete as specialist HUD systems in their standard configuration, but they \
do combine features from several different existing HUDs."
origin_tech = list(TECH_MAGNET = 3, TECH_BIO = 3)
var/obj/item/clothing/glasses/hud/omni/hud = null
icon = 'icons/vore/custom_items_vr.dmi'
icon_override = 'icons/vore/custom_clothes_vr.dmi'
icon_state = "omniglasses"
var/mode = "civ"
New()
..()
src.hud = new/obj/item/clothing/glasses/hud/omni(src)
return
/obj/item/clothing/glasses/sunglasses/omnihud/cmo
name = "AR-M sunglasses"
desc = "The KHI-63-M AR Sunglasses are a design from Kitsuhana Heavy Industries. \
These have been upgraded with advanced medical records integration."
mode = "med"
/obj/item/clothing/glasses/sunglasses/omnihud/hos
name = "AR-S sunglasses"
desc = "The KHI-63-S AR Sunglasses are a design from Kitsuhana Heavy Industries. \
These have been upgraded with advanced security records integration."
mode = "sec"
/obj/item/clothing/glasses/sunglasses/omnihud/best
name = "AR-B sunglasses"
desc = "The KHI-63-B AR Sunglasses are a design from Kitsuhana Heavy Industries. \
These have been upgraded with advanced medical and security records integration."
mode = "best"
/obj/item/clothing/glasses/hud/omni
name = "internal omni hud"
desc = "You shouldn't see this. This is an internal item for sunglasses."
var/obj/item/clothing/glasses/sunglasses/omnihud/shades = null
vision_flags = SEE_MOBS
see_invisible = SEE_INVISIBLE_NOLIGHTING
New()
..()
if(istype(loc,/obj/item/clothing/glasses/sunglasses/omnihud))
shades = loc
else
qdel(src)
/obj/item/clothing/glasses/hud/omni/process_hud(var/mob/M)
process_omni_hud(M,shades.mode)
@@ -437,6 +437,7 @@
/proc/hasHUD(mob/M as mob, hudtype)
if(istype(M, /mob/living/carbon/human))
var/mob/living/carbon/human/H = M
if(hasHUD_vr(H,hudtype)) return 1 //VOREStation Add - Added records access for certain modes of omni-hud glasses
switch(hudtype)
if("security")
return istype(H.glasses, /obj/item/clothing/glasses/hud/security) || istype(H.glasses, /obj/item/clothing/glasses/sunglasses/sechud)
@@ -111,3 +111,18 @@
message += B.get_examine_msg()
return message
//For OmniHUD records access for appropriate models
/proc/hasHUD_vr(mob/living/carbon/human/H, hudtype)
if(!(istype(H.glasses, /obj/item/clothing/glasses/sunglasses/omnihud)))
return 0 //Not wearing omnis, don't care.
var/obj/item/clothing/glasses/sunglasses/omnihud/omni = H.glasses
switch(hudtype)
if("security")
return omni.mode == "sec" || omni.mode == "best"
if("medical")
return omni.mode == "med" || omni.mode == "best"
else
return 0
@@ -1329,6 +1329,11 @@
if(istype(G, /obj/item/clothing/glasses/sunglasses/sechud))
var/obj/item/clothing/glasses/sunglasses/sechud/S = G
O = S.hud
//VOREStation Add - Support for omnihud glasses
if(istype(G, /obj/item/clothing/glasses/sunglasses/omnihud))
var/obj/item/clothing/glasses/sunglasses/omnihud/S = G
O = S.hud
//VOREStation Add End
if(istype(O))
O.process_hud(src)
if(!druggy && !seer) see_invisible = SEE_INVISIBLE_LIVING
+16
View File
@@ -21,3 +21,19 @@
materials = list(DEFAULT_WALL_MATERIAL = 3000, "glass" = 2000, "uranium" = 2000)
build_path = /obj/item/weapon/gun/energy/sizegun
sort_string = "TAAAB"
/datum/design/item/weapon/sizegun
name = "shrink ray"
id = "shrinkray"
req_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 3, TECH_POWER = 2)
materials = list(DEFAULT_WALL_MATERIAL = 3000, "glass" = 2000, "uranium" = 2000)
build_path = /obj/item/weapon/gun/energy/sizegun
sort_string = "TAAAB"
/datum/design/item/hud/omni
name = "AR sunglasses"
id = "omnihud"
req_tech = list(TECH_MAGNET = 4, TECH_COMBAT = 3, TECH_BIO = 3)
materials = list(DEFAULT_WALL_MATERIAL = 1000, "glass" = 1000)
build_path = /obj/item/clothing/glasses/sunglasses/omnihud
sort_string = "GAAFB"
+6 -6
View File
@@ -1341,7 +1341,7 @@
"azO" = (/obj/machinery/computer/security,/turf/simulated/floor/tiled/dark,/area/crew_quarters/heads/hos)
"azP" = (/obj/machinery/computer/secure_data,/turf/simulated/floor/tiled/dark,/area/crew_quarters/heads/hos)
"azQ" = (/obj/structure/filingcabinet,/obj/item/device/radio/intercom{broadcasting = 0; dir = 2; frequency = 1475; icon_state = "intercom"; listening = 1; name = "Station Intercom (Security)"; pixel_x = 0; pixel_y = -21},/turf/simulated/floor/tiled/dark,/area/crew_quarters/heads/hos)
"azR" = (/obj/structure/closet/secure_closet/hos,/turf/simulated/floor/tiled/dark,/area/crew_quarters/heads/hos)
"azR" = (/obj/structure/closet/secure_closet/hos,/obj/item/clothing/glasses/sunglasses/omnihud/hos,/turf/simulated/floor/tiled/dark,/area/crew_quarters/heads/hos)
"azS" = (/obj/structure/grille,/obj/structure/cable/green,/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced/polarized,/obj/structure/window/reinforced/polarized{dir = 8},/obj/structure/window/reinforced/polarized{dir = 4},/turf/simulated/floor/plating,/area/crew_quarters/heads/hos)
"azT" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/security/main)
"azU" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/tiled,/area/security/main)
@@ -3837,7 +3837,7 @@
"bvO" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "medbayquar"; name = "Medbay Emergency Lockdown Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/reception)
"bvP" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/structure/flora/pottedplant{icon_state = "plant-22"},/turf/simulated/floor/tiled/dark,/area/hallway/primary/central_two)
"bvQ" = (/obj/effect/floor_decal/corner/paleblue{dir = 6},/turf/simulated/floor/tiled/white,/area/medical/reception)
"bvR" = (/obj/structure/closet/secure_closet/CMO,/obj/effect/floor_decal/corner/paleblue{dir = 6},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/turf/simulated/floor/tiled/white,/area/crew_quarters/heads/cmo)
"bvR" = (/obj/structure/closet/secure_closet/CMO,/obj/effect/floor_decal/corner/paleblue{dir = 6},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/obj/item/clothing/glasses/sunglasses/omnihud/cmo,/turf/simulated/floor/tiled/white,/area/crew_quarters/heads/cmo)
"bvS" = (/turf/simulated/floor/tiled/white,/area/medical/reception)
"bvT" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled/white,/area/medical/reception)
"bvU" = (/obj/effect/floor_decal/corner/pink{dir = 10},/obj/item/device/radio/intercom{broadcasting = 0; canhear_range = 5; dir = 2; frequency = 1487; icon_state = "intercom"; listening = 0; name = "Station Intercom (Medbay)"; pixel_x = 0; pixel_y = -21},/turf/simulated/floor/tiled/white,/area/medical/surgery)
@@ -4843,7 +4843,7 @@
"bPg" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor/tiled/white,/area/rnd/research)
"bPh" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/tiled/white,/area/rnd/rdoffice)
"bPi" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled/white,/area/rnd/rdoffice)
"bPj" = (/obj/structure/closet/secure_closet/RD,/turf/simulated/floor/tiled/dark,/area/rnd/rdoffice)
"bPj" = (/obj/structure/closet/secure_closet/RD,/obj/item/clothing/glasses/sunglasses/omnihud,/turf/simulated/floor/tiled/dark,/area/rnd/rdoffice)
"bPk" = (/obj/structure/reagent_dispensers/acid{density = 0; pixel_x = -32},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/camera/network/research{c_tag = "SCI - Robotics Port"; dir = 4},/obj/structure/table/standard,/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/item/weapon/storage/box/bodybags{pixel_x = -1; pixel_y = -2},/turf/simulated/floor/tiled,/area/assembly/robotics)
"bPl" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled/white,/area/assembly/robotics)
"bPm" = (/obj/effect/floor_decal/industrial/warning{dir = 5},/turf/simulated/floor/tiled/white,/area/assembly/robotics)
@@ -5042,7 +5042,7 @@
"bSX" = (/obj/effect/floor_decal/corner/blue{dir = 9},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/bridge_hallway)
"bSY" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/corner/blue,/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/tiled,/area/bridge_hallway)
"bSZ" = (/obj/effect/floor_decal/corner/blue/full{dir = 4},/obj/machinery/vending/coffee,/turf/simulated/floor/tiled,/area/bridge_hallway)
"bTa" = (/obj/structure/closet/secure_closet/captains,/turf/simulated/floor/carpet,/area/crew_quarters/captain)
"bTa" = (/obj/structure/closet/secure_closet/captains,/obj/item/clothing/glasses/sunglasses/omnihud/best,/turf/simulated/floor/carpet,/area/crew_quarters/captain)
"bTb" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/carpet,/area/crew_quarters/captain)
"bTc" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/machinery/camera/network/command{c_tag = "COM - Captain's Bedroom"; dir = 1},/turf/simulated/floor/carpet,/area/crew_quarters/captain)
"bTd" = (/obj/structure/displaycase,/turf/simulated/floor/carpet,/area/crew_quarters/captain)
@@ -6794,7 +6794,7 @@
"cAH" = (/obj/effect/floor_decal/industrial/outline/yellow,/obj/vehicle/train/cargo/engine,/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled,/area/quartermaster/storage)
"cAI" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/ai_monitored/storage/eva)
"cAJ" = (/obj/structure/closet,/obj/item/weapon/storage/backpack/dufflebag,/turf/simulated/floor/tiled,/area/quartermaster/qm)
"cAK" = (/obj/structure/closet/secure_closet/quartermaster,/turf/simulated/floor/tiled,/area/quartermaster/qm)
"cAK" = (/obj/structure/closet/secure_closet/quartermaster,/obj/item/clothing/glasses/sunglasses/omnihud,/turf/simulated/floor/tiled,/area/quartermaster/qm)
"cAL" = (/obj/structure/table/standard,/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/machinery/light_switch{pixel_x = -12; pixel_y = -24},/obj/effect/floor_decal/corner/brown{dir = 8},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/item/device/retail_scanner/civilian{tag = "icon-retail_idle (NORTH)"; icon_state = "retail_idle"; dir = 1},/turf/simulated/floor/tiled,/area/quartermaster/office)
"cAM" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating,/area/maintenance/portsolar)
"cAN" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/maintenance/apmaint)
@@ -7751,7 +7751,7 @@
"cTc" = (/obj/machinery/light,/turf/simulated/floor/tiled,/area/crew_quarters/heads/chief)
"cTd" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/tiled,/area/vacant/vacant_shop)
"cTe" = (/obj/machinery/light_switch{pixel_x = -12; pixel_y = -24},/obj/structure/cable/green,/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/turf/simulated/floor/tiled,/area/crew_quarters/heads/chief)
"cTf" = (/obj/structure/closet/secure_closet/engineering_chief,/obj/effect/floor_decal/corner/blue/full{dir = 1},/turf/simulated/floor/tiled,/area/crew_quarters/heads/chief)
"cTf" = (/obj/structure/closet/secure_closet/engineering_chief,/obj/effect/floor_decal/corner/blue/full{dir = 1},/obj/item/clothing/glasses/sunglasses/omnihud,/turf/simulated/floor/tiled,/area/crew_quarters/heads/chief)
"cTg" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/extinguisher_cabinet{pixel_x = 25},/obj/effect/floor_decal/corner/blue/full{dir = 4},/turf/simulated/floor/tiled,/area/crew_quarters/heads/chief)
"cTh" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 8; icon_state = "map"; tag = "icon-manifold-f (WEST)"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor,/area/maintenance/evahallway)
"cTi" = (/obj/structure/bed/chair{dir = 1},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/simulated/floor/carpet,/area/hallway/secondary/entry/docking_lounge)
+1
View File
@@ -281,6 +281,7 @@
#include "code\defines\procs\AStar.dm"
#include "code\defines\procs\dbcore.dm"
#include "code\defines\procs\hud.dm"
#include "code\defines\procs\hud_vr.dm"
#include "code\defines\procs\radio.dm"
#include "code\defines\procs\sd_Alert.dm"
#include "code\defines\procs\statistics.dm"