diff --git a/code/game/objects/structures/stool_bed_chair_nest/chairs_vr.dm b/code/game/objects/structures/stool_bed_chair_nest/chairs_vr.dm new file mode 100644 index 0000000000..7095a61dc0 --- /dev/null +++ b/code/game/objects/structures/stool_bed_chair_nest/chairs_vr.dm @@ -0,0 +1,276 @@ +/obj/structure/bed/chair/sofa + name = "sofa" + desc = "A padded, comfy sofa. Great for lazing on." + base_icon = "sofamiddle" + +/obj/structure/bed/chair/sofa/left + base_icon = "sofaend_left" + +/obj/structure/bed/chair/sofa/right + base_icon = "sofaend_right" + +/obj/structure/bed/chair/sofa/corner + base_icon = "sofacorner" + +/obj/structure/bed/chair/sofa/corner/update_layer() + if(src.dir == NORTH || src.dir == WEST) + plane = MOB_PLANE + layer = MOB_LAYER + 0.1 + else + reset_plane_and_layer() + +/obj/structure/bed/chair/modern_chair + name = "modern chair" + desc = "It's like sitting in an egg." + icon_state = "modern_chair" + color = null + base_icon = "modern_chair" + applies_material_colour = 0 + +/obj/structure/bed/chair/modern_chair/Initialize() + . = ..() + var/image/I = image(icon, "[base_icon]_over") + I.layer = ABOVE_MOB_LAYER + I.plane = MOB_PLANE + overlays |= I + +/obj/structure/bed/chair/bar_stool + name = "bar stool" + desc = "How vibrant!" + icon_state = "modern_stool" + color = null + base_icon = "modern_stool" + applies_material_colour = 0 + +/obj/structure/bed/chair/backed_grey + name = "grey chair" + desc = "Also available in red." + icon_state = "onestar_chair_grey" + color = null + base_icon = "onestar_chair_grey" + applies_material_colour = 0 + +/obj/structure/bed/chair/backed_red + name = "red chair" + desc = "Also available in grey." + icon_state = "onestar_chair_red" + color = null + base_icon = "onestar_chair_red" + applies_material_colour = 0 + +// Baystation12 chairs with their larger update_icons proc +/obj/structure/bed/chair/bay + anchored = 1 + +/obj/structure/bed/chair/bay/update_icon() + // Strings. + desc = initial(desc) + if(padding_material) + name = "[padding_material.display_name] [initial(name)]" //this is not perfect but it will do for now. + desc += " It's made of [material.use_name] and covered with [padding_material.use_name]." + else + name = "[material.display_name] [initial(name)]" + desc += " It's made of [material.use_name]." + + // Prep icon. + icon_state = "" + cut_overlays() + + // Base icon (base material color) + var/cache_key = "[base_icon]-[material.name]" + if(isnull(stool_cache[cache_key])) + var/image/I = image(icon, base_icon) + if(applies_material_colour) + I.color = material.icon_colour + stool_cache[cache_key] = I + add_overlay(stool_cache[cache_key]) + + // Padding ('_padding') (padding material color) + if(padding_material) + var/padding_cache_key = "[base_icon]-padding-[padding_material.name]" + if(isnull(stool_cache[padding_cache_key])) + var/image/I = image(icon, "[base_icon]_padding") + I.color = padding_material.icon_colour + stool_cache[padding_cache_key] = I + add_overlay(stool_cache[padding_cache_key]) + + // Over ('_over') (base material color) + cache_key = "[base_icon]-[material.name]-over" + if(isnull(stool_cache[cache_key])) + var/image/I = image(icon, "[base_icon]_over") + I.plane = MOB_PLANE + I.layer = ABOVE_MOB_LAYER + if(applies_material_colour) + I.color = material.icon_colour + stool_cache[cache_key] = I + add_overlay(stool_cache[cache_key]) + + // Padding Over ('_padding_over') (padding material color) + if(padding_material) + var/padding_cache_key = "[base_icon]-padding-[padding_material.name]-over" + if(isnull(stool_cache[padding_cache_key])) + var/image/I = image(icon, "[base_icon]_padding_over") + I.color = padding_material.icon_colour + I.plane = MOB_PLANE + I.layer = ABOVE_MOB_LAYER + stool_cache[padding_cache_key] = I + add_overlay(stool_cache[padding_cache_key]) + + if(has_buckled_mobs()) + if(padding_material) + cache_key = "[base_icon]-armrest-[padding_material.name]" + // Armrest ('_armrest') (base material color) + if(isnull(stool_cache[cache_key])) + var/image/I = image(icon, "[base_icon]_armrest") + I.plane = MOB_PLANE + I.layer = ABOVE_MOB_LAYER + if(applies_material_colour) + I.color = material.icon_colour + stool_cache[cache_key] = I + add_overlay(stool_cache[cache_key]) + if(padding_material) + cache_key = "[base_icon]-padding-armrest-[padding_material.name]" + // Padding Armrest ('_padding_armrest') (padding material color) + if(isnull(stool_cache[cache_key])) + var/image/I = image(icon, "[base_icon]_padding_armrest") + I.plane = MOB_PLANE + I.layer = ABOVE_MOB_LAYER + I.color = padding_material.icon_colour + stool_cache[cache_key] = I + add_overlay(stool_cache[cache_key]) + +/obj/structure/bed/chair/bay/chair + name = "mounted chair" + desc = "Like a normal chair, but more stationary." + icon_state = "bay_chair_preview" + base_icon = "bay_chair" + +/obj/structure/bed/chair/bay/chair/padded/red/New(var/newloc, var/new_material, var/new_padding_material) + ..(newloc, new_material, "carpet") + +/obj/structure/bed/chair/bay/chair/padded/brown/New(var/newloc, var/new_material, var/new_padding_material) + ..(newloc, new_material, "leather") + +/obj/structure/bed/chair/bay/chair/padded/teal/New(var/newloc, var/new_material, var/new_padding_material) + ..(newloc, new_material, "teal") + +/obj/structure/bed/chair/bay/chair/padded/black/New(var/newloc, var/new_material, var/new_padding_material) + ..(newloc, new_material, "black") + +/obj/structure/bed/chair/bay/chair/padded/green/New(var/newloc, var/new_material, var/new_padding_material) + ..(newloc, new_material, "green") + +/obj/structure/bed/chair/bay/chair/padded/purple/New(var/newloc, var/new_material, var/new_padding_material) + ..(newloc, new_material, "purple") + +/obj/structure/bed/chair/bay/chair/padded/blue/New(var/newloc, var/new_material, var/new_padding_material) + ..(newloc, new_material, "blue") + +/obj/structure/bed/chair/bay/chair/padded/beige/New(var/newloc, var/new_material, var/new_padding_material) + ..(newloc, new_material, "beige") + +/obj/structure/bed/chair/bay/chair/padded/lime/New(var/newloc, var/new_material, var/new_padding_material) + ..(newloc, new_material, "lime") + +/obj/structure/bed/chair/bay/chair/padded/yellow/New(var/newloc, var/new_material, var/new_padding_material) + ..(newloc, new_material, "yellow") + +/obj/structure/bed/chair/bay/comfy + name = "comfy mounted chair" + desc = "Like a normal chair, but more stationary, and with more padding." + icon_state = "bay_comfychair_preview" + base_icon = "bay_comfychair" + +/obj/structure/bed/chair/bay/comfy/red/New(var/newloc, var/new_material, var/new_padding_material) + ..(newloc, new_material, "carpet") + +/obj/structure/bed/chair/bay/comfy/brown/New(var/newloc, var/new_material, var/new_padding_material) + ..(newloc, new_material, "leather") + +/obj/structure/bed/chair/bay/comfy/teal/New(var/newloc, var/new_material, var/new_padding_material) + ..(newloc, new_material, "teal") + +/obj/structure/bed/chair/bay/comfy/black/New(var/newloc, var/new_material, var/new_padding_material) + ..(newloc, new_material, "black") + +/obj/structure/bed/chair/bay/comfy/green/New(var/newloc, var/new_material, var/new_padding_material) + ..(newloc, new_material, "green") + +/obj/structure/bed/chair/bay/comfy/purple/New(var/newloc, var/new_material, var/new_padding_material) + ..(newloc, new_material, "purple") + +/obj/structure/bed/chair/bay/comfy/blue/New(var/newloc, var/new_material, var/new_padding_material) + ..(newloc, new_material, "blue") + +/obj/structure/bed/chair/bay/comfy/beige/New(var/newloc, var/new_material, var/new_padding_material) + ..(newloc, new_material, "beige") + +/obj/structure/bed/chair/bay/comfy/lime/New(var/newloc, var/new_material, var/new_padding_material) + ..(newloc, new_material, "lime") + +/obj/structure/bed/chair/bay/comfy/yellow/New(var/newloc, var/new_material, var/new_padding_material) + ..(newloc, new_material, "yellow") + +/obj/structure/bed/chair/bay/comfy/captain + name = "captain chair" + desc = "It's a chair. Only for the highest ranked asses." + icon_state = "capchair_preview" + base_icon = "capchair" + buckle_movable = 1 + +/obj/structure/bed/chair/bay/comfy/captain + name = "captain chair" + desc = "It's a chair. Only for the highest ranked asses." + icon_state = "capchair_preview" + base_icon = "capchair" + buckle_movable = 1 + +/obj/structure/bed/chair/bay/comfy/captain/update_icon() + ..() + var/image/I = image(icon, "[base_icon]_special") + I.plane = MOB_PLANE + I.layer = ABOVE_MOB_LAYER + add_overlay(I) + +/obj/structure/bed/chair/bay/comfy/captain/New(var/newloc, var/new_material, var/new_padding_material) + ..(newloc, DEFAULT_WALL_MATERIAL, "blue") + +/obj/structure/bed/chair/bay/shuttle + name = "shuttle seat" + desc = "A comfortable, secure seat. It has a sturdy-looking buckling system for smoother flights." + base_icon = "shuttle_chair" + icon_state = "shuttle_chair_preview" + var/buckling_sound = 'sound/effects/metal_close.ogg' + var/padding = "blue" + +/obj/structure/bed/chair/bay/shuttle/New(var/newloc, var/new_material, var/new_padding_material) + ..(newloc, DEFAULT_WALL_MATERIAL, padding) + +/obj/structure/bed/chair/bay/shuttle/post_buckle_mob() + playsound(loc,buckling_sound,75,1) + if(has_buckled_mobs()) + base_icon = "shuttle_chair-b" + else + base_icon = "shuttle_chair" + ..() + +/obj/structure/bed/chair/bay/shuttle/update_icon() + ..() + if(!has_buckled_mobs()) + var/image/I = image(icon, "[base_icon]_special") + I.plane = MOB_PLANE + I.layer = ABOVE_MOB_LAYER + if(applies_material_colour) + I.color = material.icon_colour + add_overlay(I) + +/obj/structure/bed/chair/bay/chair/padded/red/smallnest + name = "teshari nest" + desc = "Smells like cleaning products." + icon_state = "nest_chair" + base_icon = "nest_chair" + +/obj/structure/bed/chair/bay/chair/padded/red/bignest + name = "large teshari nest" + icon_state = "nest_chair_large" + base_icon = "nest_chair_large" diff --git a/code/game/objects/structures/stool_bed_chair_nest/stools.dm b/code/game/objects/structures/stool_bed_chair_nest/stools.dm index 24a069afcf..d7adf8079f 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/stools.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/stools.dm @@ -49,7 +49,7 @@ var/global/list/stool_cache = list() //haha stool if(padding_material) var/padding_cache_key = "stool-padding-[padding_material.name]" if(isnull(stool_cache[padding_cache_key])) - var/image/I = image(icon, "stool_padding") + var/image/I = image(icon, "[base_icon]_padding") //VOREStation Edit I.color = padding_material.icon_colour stool_cache[padding_cache_key] = I overlays |= stool_cache[padding_cache_key] diff --git a/code/game/objects/structures/stool_bed_chair_nest/stools_vr.dm b/code/game/objects/structures/stool_bed_chair_nest/stools_vr.dm new file mode 100644 index 0000000000..f1f0b35a19 --- /dev/null +++ b/code/game/objects/structures/stool_bed_chair_nest/stools_vr.dm @@ -0,0 +1,15 @@ +/obj/item/weapon/stool/baystool + name = "bar stool" + desc = "Apply butt." + icon = 'icons/obj/furniture_vr.dmi' //VOREStation Edit - new Icons + icon_state = "bar_stool_preview" //set for the map + randpixel = 0 + center_of_mass = null + force = 10 + throwforce = 10 + w_class = ITEMSIZE_HUGE + base_icon = "bar_stool_base" + anchored = 1 + +/obj/item/weapon/stool/baystool/padded/New(var/newloc, var/new_material) + ..(newloc, "steel", "carpet") diff --git a/icons/obj/furniture_vr.dmi b/icons/obj/furniture_vr.dmi index ddaf232ae0..28f9a702c1 100644 Binary files a/icons/obj/furniture_vr.dmi and b/icons/obj/furniture_vr.dmi differ diff --git a/sound/effects/metal_close.ogg b/sound/effects/metal_close.ogg new file mode 100644 index 0000000000..5a45d74327 Binary files /dev/null and b/sound/effects/metal_close.ogg differ diff --git a/vorestation.dme b/vorestation.dme index fa92ba7c10..742f4db85d 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -1382,7 +1382,9 @@ #include "code\game\objects\structures\stool_bed_chair_nest\alien_nests.dm" #include "code\game\objects\structures\stool_bed_chair_nest\bed.dm" #include "code\game\objects\structures\stool_bed_chair_nest\chairs.dm" +#include "code\game\objects\structures\stool_bed_chair_nest\chairs_vr.dm" #include "code\game\objects\structures\stool_bed_chair_nest\stools.dm" +#include "code\game\objects\structures\stool_bed_chair_nest\stools_vr.dm" #include "code\game\objects\structures\stool_bed_chair_nest\wheelchair.dm" #include "code\game\turfs\simulated.dm" #include "code\game\turfs\simulated_vr.dm"