mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-24 13:30:42 +01:00
Aurora 2: The 3/4thening (#17186)
* after dark * FIXES * breakin * butt * Update code/game/objects/items/devices/floor_painter.dm Co-authored-by: Cody Brittain <cbrittain10@yahoo.com> * Update code/game/objects/items/devices/floor_painter.dm Co-authored-by: Cody Brittain <cbrittain10@yahoo.com> * Update code/game/objects/structures/lattice.dm Co-authored-by: Cody Brittain <cbrittain10@yahoo.com> * testing 1 * a * FUCK THIS PRESET!!! * allah * OTEMACHI * tis' done * Project Exorcism : Sneed's Snairs (Formerly Chuck's) * Update code/game/objects/structures/stool_bed_chair_nest/chairs.dm * Update code/game/objects/structures/stool_bed_chair_nest/chairs.dm * Update stools.dm * Update code/game/objects/structures/stool_bed_chair_nest/stools.dm * Update code/game/objects/structures/stool_bed_chair_nest/stools.dm * Update stools.dm * Update chairs.dm * Update code/game/objects/structures/stool_bed_chair_nest/chairs.dm * inhand fixes * airlocks (matt has cooked) fuck * my cody plays the mamba * fuck * fixes layering issue * airlocks and everything else Please fucking kill me * underlays * unfuck blending * finished replacing old ass shit * your ass is geass * conflicts die now * public fat'wa * progress on walls and windows * more mapping * baltimore accents be like * minor progress * monitors * fire alarms and apc adjustments * apcs pixel adjustments, final airlock look * also grilles * shuttle wall start plus shuttle windows * starting consoles * table outlines * I love broke ass sprites * fixing the stupid ass exterior walls * light fuckery * terminal directionals, external airlocks, table fixes, blahblahblah * fix 1 * fix 2 * some more fixes * fix chairs * basic untested railings and updating colors from atteria * bridge and some fixes * removing some artifacts on the new walls * breaking wood tables and adding 4 wall materials * fix * compile & wood fixes * make the horizon compile again * railings, firedoors, ATMs, intercomms and tables again * mapping begins also some tweaks to map view of icons * full tile steel walls * i sure hope nothing bad happens * airlock updates (untested) * reverts most wall machinery * skull * wall coloring * makes the tg wood chill out * work on airlocks * hull consistency * cause you live forever in the lights you make * whoops can't show that in a christian manga * terminals should be on walls and everything's hunky dory now also i changed the wood stuff as per atteria's suggestion * fixing airlocks * fixes * window resprite, coloring adjustments * scc hull resprite * new grilles, frame edits, and borosilicate * greyscale wood palette improvement * shuttle windows * window frame fix * apc update * refit and reshaded fire alarms * mapping icon fixes * table fixes * map fixes, platforms and stairs * updates cutter, new walls and terminals * mapping fixes * fix preview * preview fix stone * stairs * initial work for the map * railing and windowpane fuckery * new external airlocks * a * fix the maps in preparation * wall object pixel offsets * air alarms D1 * extinguisher cabinets * APC DESTROYED MISSION ACCOMPLISHED GOOD WORK * deck 3: floor decals, APCs, air alarms, fire extinguisher cabinets * deck 3: fireaxe cabinet * /shuttle_landmark/distress/blue, move base_turf from map to obj def * intercom presets * formatting * deck 1: floor decals * deck 2: named area fix (LMAO), signs to use single quotes * deck 2: floor decals, APCs, air alarms, fire extinguisher cabinets, fireaxe cabinets * Platforms and stairs! * grates and bugfixes * Angled ship walls + grate color fix * corrects apc anim overlay * deck 2 and away site fixes # Conflicts: # maps/sccv_horizon/sccv_horizon-2_deck_2.dmm * deck 2 missing grate * warning stripes * railings and ledges * windows and fixtures * windoorsagain * airlocks pt1 * windows de-seamed and transparent * airlocks and pixel offsets * fixes for airlocks * more airlock fixes * presets for ringer, request console and newscaster * 132 * asfsaf * kitchen tiling * thicker freezer tile bevels * More angled walls * New shutters and blast doors * directional corrections * ops railing fixes * updated window map things and shutters * value changes and blast door changes * Ledges and platforms galore (D2/D3) * all decks: fix door dirs * all decks: newscasters, intercoms, requests consoles, ringer consoles * helm light blue decals to dark blue * supermatter door dir fix * fix directional presets (dirs/offsets): newscaster, intercom, requests console, ringer console * firedoor changes * deck 3: overlapping wall mountables fixes * map changes * airlock changes * map tweaks * airlock & stair icons * various mapping modifications * Double airlocks + fixing denied states + fixing airlocks on all levels * Rebase * directional terminals buttons and lights again, platform tweaks terminal north facing sprites, atm/food terminal directionals proper door control and lightswitch directionals (presets still need to be set up, mapping) re-adds new light tube sprites, again new sprites for floor lights and the other stuff that got added adjusted platforms to be recolorable, added light and dark versions, fixed some shading * missing ERT outfit thingy fix * floor lights fixed * deck 3: various small fixes * deck 1: various small fixes * deck 2: various small fixes * fixes * d2 fixes & multitile door fix * d2 fixes, remove unused airlock files, button icon fixes, window icon fixes * make it actually compile, oops! * make it actually compile, pt2 * CE office camera * pew pew pew * pew pew pew 2 * fixes * deck 3: buttons fixes * deck 3: button and other fixes * deck 3: fixes and stuff * D1 fixes & skrell airlocks * minor D2 tweaks * a lot of airlock-related fixes, glass tables, paint sprayer fixes, decal fixes, changelog * maintenance hatch sprites * fixing double doors * flips multi-tiles, fixes multi-tiles, adds desk windoors * new plastic flaps * deck 2: a few buttons * side + middle doors * created paths for 3-tiles doors * apply to map the 3 tiles airlocks * some fixes, windoor alpha * remove this random ass potted plant * more map fixes * holodeck disposal pipe fix * secure airlock sprites no code or obj definitions yet * vault airlock * vault door fixes * scc window alpha * adjusts double door glass, firedoor open state * adjusts construction states for doors * remove some defunct icons and fix anims * assembly stuff * pharma fixes * vault door dir * firedoor smart generation moved to its own proc * lift doors, d1 fixes * firedoor smart generation: adjacent wall check * firedoor smart generation: adjacent firedoor check * all decks: missing firedoor and other fixes * deck 2: weird maint stairs fix * oops * diona airlock fix * the shuttle wall gigadeath * fixes * some fixes for leftover map item paths, and double lattices * new diona walls * more fixes * and more * deck 1: fix out of bounds keys * deck 3: fix out of bounds keys * runtime 3: duplicate APCs fix * all decks: make all 3 tile wide doors glass --------- Co-authored-by: Wezzy <wowzewow@gmail.com> Co-authored-by: Wowzewow (Wezzy) <42310821+alsoandanswer@users.noreply.github.com> Co-authored-by: Cody Brittain <cbrittain10@yahoo.com> Co-authored-by: kyres1 <noodle.buster31@gmail.com> Co-authored-by: Matt Atlas <liermattia@gmail.com> Co-authored-by: atteria <tarkona@protonmail.com> Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com> Co-authored-by: DreamySkrell <107256943+DreamySkrell@users.noreply.github.com> Co-authored-by: naut <nautilussplat@gmail.com> Co-authored-by: naut <55491249+nauticall@users.noreply.github.com>
This commit is contained in:
co-authored by
Wezzy
Wowzewow
Cody Brittain
kyres1
Matt Atlas
atteria
Fluffy
DreamySkrell
naut
naut
parent
1e4d8bd6e0
commit
99b4033ca5
@@ -8,7 +8,7 @@
|
||||
opacity = 0
|
||||
anchored = 1
|
||||
density = 0
|
||||
layer = OBJ_LAYER + 0.9
|
||||
layer = TURF_LAYER + 0.2
|
||||
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
|
||||
animate_movement = 0
|
||||
var/solid_time = 120
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/obj/effect/floor_decal/snow
|
||||
icon = 'icons/turf/snow.dmi'
|
||||
icon = 'icons/turf/flooring/snow.dmi'
|
||||
icon_state = "snow"
|
||||
|
||||
/obj/effect/floor_decal/snow/corner
|
||||
@@ -9,8 +9,7 @@
|
||||
icon_state = "snow_surround"
|
||||
|
||||
/obj/effect/floor_decal/snowdrift
|
||||
name = "snow drift"
|
||||
icon = 'icons/turf/snow.dmi'
|
||||
icon = 'icons/turf/flooring/snow.dmi'
|
||||
icon_state = "drift"
|
||||
|
||||
/obj/effect/floor_decal/snowdrift/random/Initialize(mapload, newdir, newcolour, bypass, set_icon_state)
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
return FALSE
|
||||
if(istype(target, /obj/machinery/door/airlock))
|
||||
var/obj/machinery/door/airlock/door = target
|
||||
if(door.hackProof)
|
||||
if(door.hack_proof)
|
||||
to_chat(user, SPAN_WARNING("Hacking [target] is beyond the capabilities of this device!"))
|
||||
return FALSE
|
||||
var/found = known_targets.Find(target)
|
||||
|
||||
+89
-25
@@ -1,8 +1,13 @@
|
||||
/obj/item/device/floor_painter
|
||||
|
||||
#define AIRLOCK_REGION_PAINT "Paint"
|
||||
#define AIRLOCK_REGION_STRIPE "Stripe"
|
||||
#define AIRLOCK_REGION_WINDOW "Window"
|
||||
|
||||
/obj/item/device/paint_sprayer
|
||||
name = "paint gun"
|
||||
desc = "A Hephaestus-made paint gun that uses microbes to replenish its paint storage. Very high-tech and fancy too!"
|
||||
desc_info = "Use control-click on a coloured decal on a turf to copy its colour. You can also use shift-click on a turf with the paint gun in hand to clear all decals on it."
|
||||
icon = 'icons/obj/item/tools/floor_painter.dmi'
|
||||
icon = 'icons/obj/item/tools/paint_sprayer.dmi'
|
||||
icon_state = "floor_painter"
|
||||
item_state = "floor_painter"
|
||||
contained_sprite = TRUE
|
||||
@@ -12,11 +17,8 @@
|
||||
|
||||
var/list/decals = list(
|
||||
"quarter-turf" = list("path" = /obj/effect/floor_decal/corner, "precise" = 1, "coloured" = 1),
|
||||
"wide quarter-turf" = list("path" = /obj/effect/floor_decal/corner_wide, "precise" = 1, "coloured" = 1),
|
||||
"full quarter-turf" = list("path" = /obj/effect/floor_decal/corner_full, "precise" = 1, "coloured" = 1),
|
||||
"light corner" = list("path" = /obj/effect/floor_decal/corner/light, "precise" = 1, "coloured" = 1),
|
||||
"full light corner" = list("path" = /obj/effect/floor_decal/corner/light/full, "precise" = 1, "coloured" = 1),
|
||||
"light, wide corner" = list("path" = /obj/effect/floor_decal/corner_wide/light, "precise" = 1, "coloured" = 1),
|
||||
"full, light, wide corner" = list("path" = /obj/effect/floor_decal/corner_wide/light/full, "precise" = 1, "coloured" = 1),
|
||||
"hazard stripes" = list("path" = /obj/effect/floor_decal/industrial/warning),
|
||||
"corner, hazard" = list("path" = /obj/effect/floor_decal/industrial/warning/corner),
|
||||
"hatched marking" = list("path" = /obj/effect/floor_decal/industrial/hatch, "coloured" = 1),
|
||||
@@ -70,8 +72,7 @@
|
||||
"bulkhead black" = COLOR_WALL_GUNMETAL
|
||||
)
|
||||
|
||||
/obj/item/device/floor_painter/afterattack(var/atom/A, var/mob/user, proximity, params)
|
||||
|
||||
/obj/item/device/paint_sprayer/afterattack(var/atom/A, var/mob/user, proximity, params)
|
||||
if(!proximity)
|
||||
return
|
||||
|
||||
@@ -99,13 +100,19 @@
|
||||
B.update_icon()
|
||||
return
|
||||
|
||||
var/turf/simulated/floor/F = A
|
||||
if(!istype(F))
|
||||
to_chat(user, "<span class='warning'>\The [src] can only be used on station flooring.</span>")
|
||||
else if (istype(A, /obj/machinery/door/airlock))
|
||||
return paint_airlock(A, user)
|
||||
|
||||
else if (istype(A, /turf/simulated/floor))
|
||||
return paint_floor(A, user, params)
|
||||
|
||||
/obj/item/device/paint_sprayer/proc/paint_floor(turf/simulated/floor/F, mob/user, params)
|
||||
if(!F.flooring.can_paint)
|
||||
to_chat(user, SPAN_WARNING("\The [src] cannot paint this type of flooring."))
|
||||
return
|
||||
|
||||
if(!F.flooring || !F.flooring.can_paint || F.broken || F.burnt)
|
||||
to_chat(user, "<span class='warning'>\The [src] cannot paint broken or missing tiles.</span>")
|
||||
if(!F.flooring || F.broken || F.burnt)
|
||||
to_chat(user, SPAN_WARNING("\The [src] cannot paint damaged or missing tiles."))
|
||||
return
|
||||
|
||||
var/list/decal_data = decals[decal]
|
||||
@@ -157,7 +164,7 @@
|
||||
playsound(get_turf(src), 'sound/effects/spray3.ogg', 30, 1, -6)
|
||||
new painting_decal(F, painting_dir, painting_colour)
|
||||
|
||||
/obj/item/device/floor_painter/attack_self(var/mob/user)
|
||||
/obj/item/device/paint_sprayer/attack_self(var/mob/user)
|
||||
var/choice = input("Do you wish to change the decal type, paint direction, or paint colour?") as null|anything in list("Decal","Direction", "Colour")
|
||||
if(choice == "Decal")
|
||||
choose_decal()
|
||||
@@ -166,7 +173,7 @@
|
||||
else if(choice == "Colour")
|
||||
choose_colour()
|
||||
|
||||
/obj/item/device/floor_painter/proc/change_colour(new_colour, mob/user)
|
||||
/obj/item/device/paint_sprayer/proc/change_colour(new_colour, mob/user)
|
||||
if (new_colour)
|
||||
paint_colour = new_colour
|
||||
if (user)
|
||||
@@ -181,7 +188,7 @@
|
||||
if(ishuman(usr))
|
||||
var/mob/living/carbon/human/H = usr
|
||||
var/list/modifiers = params2list(params)
|
||||
var/obj/item/device/floor_painter/paint_sprayer = H.get_active_hand()
|
||||
var/obj/item/device/paint_sprayer/paint_sprayer = H.get_active_hand()
|
||||
if(istype(paint_sprayer))
|
||||
if(!istype(H.buckled_to))
|
||||
H.face_atom(src)
|
||||
@@ -191,21 +198,25 @@
|
||||
return
|
||||
. = ..()
|
||||
|
||||
/obj/item/device/floor_painter/proc/pick_color(atom/A, mob/user)
|
||||
/obj/item/device/paint_sprayer/proc/pick_color(atom/A, mob/user)
|
||||
if (!user.Adjacent(A) || user.incapacitated())
|
||||
return FALSE
|
||||
var/new_color
|
||||
if (istype(A, /turf/simulated/floor))
|
||||
new_color = pick_color_from_floor(A, user)
|
||||
else if (istype(A, /obj/machinery/door/airlock))
|
||||
new_color = pick_color_from_airlock(A, user)
|
||||
if (!change_colour(new_color, user))
|
||||
to_chat(user, SPAN_WARNING("\The [A] does not have a colour that you could pick from."))
|
||||
return TRUE // There was an attempt to pick a color.
|
||||
|
||||
/obj/item/device/floor_painter/proc/pick_color_from_floor(turf/simulated/floor/F, mob/user)
|
||||
/obj/item/device/paint_sprayer/proc/pick_color_from_floor(turf/simulated/floor/F, mob/user)
|
||||
if (!F.decals || !F.decals.len)
|
||||
return FALSE
|
||||
var/list/available_colors = list()
|
||||
for (var/image/I in F.decals)
|
||||
for (var/img in F.decals)
|
||||
/// This snowflake code is necessary because for some reason images added to the decals list at roundstart become appearances.
|
||||
var/image/I = image(img)
|
||||
available_colors |= isnull(I.color) ? COLOR_WHITE : I.color
|
||||
var/picked_color = available_colors[1]
|
||||
if (available_colors.len > 1)
|
||||
@@ -214,7 +225,50 @@
|
||||
return FALSE
|
||||
return picked_color
|
||||
|
||||
/obj/item/device/floor_painter/proc/remove_paint(atom/A, mob/user)
|
||||
/obj/item/device/paint_sprayer/proc/pick_color_from_airlock(obj/machinery/door/airlock/D, mob/user)
|
||||
if (!D.paintable)
|
||||
return FALSE
|
||||
switch (select_airlock_region(D, user, "Where do you wish to pick the color from?"))
|
||||
if (AIRLOCK_REGION_PAINT)
|
||||
return D.door_color
|
||||
if (AIRLOCK_REGION_STRIPE)
|
||||
return D.stripe_color
|
||||
if (AIRLOCK_REGION_WINDOW)
|
||||
return D.window_color
|
||||
else
|
||||
return FALSE
|
||||
|
||||
/obj/item/device/paint_sprayer/proc/paint_airlock(obj/machinery/door/airlock/D, mob/user)
|
||||
if (!D.paintable)
|
||||
to_chat(user, SPAN_WARNING("You can't paint this airlock type."))
|
||||
return FALSE
|
||||
|
||||
switch (select_airlock_region(D, user, "What do you wish to paint?"))
|
||||
if (AIRLOCK_REGION_PAINT)
|
||||
D.paint_airlock(paint_colour)
|
||||
if (AIRLOCK_REGION_STRIPE)
|
||||
D.stripe_airlock(paint_colour)
|
||||
if (AIRLOCK_REGION_WINDOW)
|
||||
D.paint_window(paint_colour)
|
||||
else
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
/obj/item/device/paint_sprayer/proc/select_airlock_region(obj/machinery/door/airlock/D, mob/user, input_text)
|
||||
var/choice
|
||||
var/list/choices = list()
|
||||
if (D.paintable & AIRLOCK_PAINTABLE_MAIN)
|
||||
choices |= AIRLOCK_REGION_PAINT
|
||||
if (D.paintable & AIRLOCK_PAINTABLE_STRIPE)
|
||||
choices |= AIRLOCK_REGION_STRIPE
|
||||
if (D.paintable & AIRLOCK_PAINTABLE_WINDOW)
|
||||
choices |= AIRLOCK_REGION_WINDOW
|
||||
choice = input(user, input_text) as null|anything in sortList(choices)
|
||||
if (!user.use_check_and_message() || !D || !user.Adjacent(D))
|
||||
return FALSE
|
||||
return choice
|
||||
|
||||
/obj/item/device/paint_sprayer/proc/remove_paint(atom/A, mob/user)
|
||||
if(!user.Adjacent(A) || user.incapacitated())
|
||||
return FALSE
|
||||
if (istype(A, /turf/simulated/floor))
|
||||
@@ -223,16 +277,23 @@
|
||||
F.decals.len--
|
||||
F.update_icon()
|
||||
. = TRUE
|
||||
else if (istype(A, /obj/machinery/door/airlock))
|
||||
var/obj/machinery/door/airlock/D = A
|
||||
if (D.paintable)
|
||||
D.paint_airlock(null)
|
||||
D.stripe_airlock(null)
|
||||
D.paint_window(null)
|
||||
. = TRUE
|
||||
if (.)
|
||||
add_fingerprint(user)
|
||||
playsound(get_turf(src), 'sound/effects/spray3.ogg', 30, 1, -6)
|
||||
return .
|
||||
|
||||
/obj/item/device/floor_painter/examine(mob/user)
|
||||
/obj/item/device/paint_sprayer/examine(mob/user)
|
||||
. = ..(user)
|
||||
to_chat(user, "It is configured to produce the '[decal]' decal with a direction of '[paint_dir]' using [paint_colour] paint.")
|
||||
|
||||
/obj/item/device/floor_painter/verb/choose_colour()
|
||||
/obj/item/device/paint_sprayer/verb/choose_colour()
|
||||
set name = "Choose Colour"
|
||||
set desc = "Choose a paintgun colour."
|
||||
set category = "Object"
|
||||
@@ -243,7 +304,7 @@
|
||||
var/new_colour = input(usr, "Choose a colour.", "paintgun", paint_colour) as color|null
|
||||
change_colour(new_colour, usr)
|
||||
|
||||
/obj/item/device/floor_painter/verb/choose_preset_colour()
|
||||
/obj/item/device/paint_sprayer/verb/choose_preset_colour()
|
||||
set name = "Choose Preset Colour"
|
||||
set desc = "Choose a paintgun colour."
|
||||
set category = "Object"
|
||||
@@ -256,7 +317,7 @@
|
||||
paint_colour = preset_colors[new_colour]
|
||||
to_chat(usr, "<span class='notice'>You set \the [src] to paint with <font color='[paint_colour]'>a new colour</font>.</span>")
|
||||
|
||||
/obj/item/device/floor_painter/verb/choose_decal()
|
||||
/obj/item/device/paint_sprayer/verb/choose_decal()
|
||||
set name = "Choose Decal"
|
||||
set desc = "Choose a paintgun decal."
|
||||
set category = "Object"
|
||||
@@ -270,7 +331,7 @@
|
||||
decal = new_decal
|
||||
to_chat(usr, "<span class='notice'>You set \the [src] decal to '[decal]'.</span>")
|
||||
|
||||
/obj/item/device/floor_painter/verb/choose_direction()
|
||||
/obj/item/device/paint_sprayer/verb/choose_direction()
|
||||
set name = "Choose Direction"
|
||||
set desc = "Choose a paintgun direction."
|
||||
set category = "Object"
|
||||
@@ -283,3 +344,6 @@
|
||||
if(new_dir && !isnull(paint_dirs[new_dir]))
|
||||
paint_dir = new_dir
|
||||
to_chat(usr, "<span class='notice'>You set \the [src] direction to '[paint_dir]'.</span>")
|
||||
|
||||
#undef AIRLOCK_REGION_PAINT
|
||||
#undef AIRLOCK_REGION_STRIPE
|
||||
@@ -1,8 +1,26 @@
|
||||
#define PRESET_NORTH \
|
||||
dir = NORTH; \
|
||||
pixel_y = 20;
|
||||
|
||||
#define PRESET_SOUTH \
|
||||
dir = SOUTH; \
|
||||
pixel_y = -6;
|
||||
|
||||
#define PRESET_WEST \
|
||||
dir = WEST; \
|
||||
pixel_x = -8;
|
||||
|
||||
#define PRESET_EAST \
|
||||
dir = EAST; \
|
||||
pixel_x = 8;
|
||||
|
||||
|
||||
/obj/item/device/radio/intercom
|
||||
name = "intercom (general)"
|
||||
desc = "An intercom with buttons for transmitting, receiving, and for volume control."
|
||||
desc_extended = "Has a touch display for inputting a frequency, with proper authentication. Used to communicate when you have lost your radio. \
|
||||
Otherwise, you would likely just use a handheld shortwave radio instead."
|
||||
icon = 'icons/obj/machinery/wall/terminals.dmi'
|
||||
icon_state = "intercom"
|
||||
layer = 2.99
|
||||
anchored = TRUE
|
||||
@@ -17,10 +35,34 @@
|
||||
var/radio_sound = null
|
||||
clickvol = 40
|
||||
|
||||
/obj/item/device/radio/intercom/north
|
||||
PRESET_NORTH
|
||||
|
||||
/obj/item/device/radio/intercom/south
|
||||
PRESET_SOUTH
|
||||
|
||||
/obj/item/device/radio/intercom/west
|
||||
PRESET_WEST
|
||||
|
||||
/obj/item/device/radio/intercom/east
|
||||
PRESET_EAST
|
||||
|
||||
/obj/item/device/radio/intercom/ship
|
||||
channels = list()
|
||||
var/default_hailing = FALSE
|
||||
|
||||
/obj/item/device/radio/intercom/ship/north
|
||||
PRESET_NORTH
|
||||
|
||||
/obj/item/device/radio/intercom/ship/south
|
||||
PRESET_SOUTH
|
||||
|
||||
/obj/item/device/radio/intercom/ship/west
|
||||
PRESET_WEST
|
||||
|
||||
/obj/item/device/radio/intercom/ship/east
|
||||
PRESET_EAST
|
||||
|
||||
/obj/item/device/radio/intercom/ship/Initialize()
|
||||
if(!current_map.use_overmap)
|
||||
return ..()
|
||||
@@ -44,9 +86,34 @@
|
||||
/obj/item/device/radio/intercom/ship/hailing
|
||||
default_hailing = TRUE
|
||||
|
||||
/obj/item/device/radio/intercom/ship/north
|
||||
PRESET_NORTH
|
||||
|
||||
/obj/item/device/radio/intercom/ship/south
|
||||
PRESET_SOUTH
|
||||
|
||||
/obj/item/device/radio/intercom/ship/west
|
||||
PRESET_WEST
|
||||
|
||||
/obj/item/device/radio/intercom/ship/east
|
||||
PRESET_EAST
|
||||
|
||||
|
||||
/obj/item/device/radio/intercom/custom
|
||||
name = "intercom (custom)"
|
||||
|
||||
/obj/item/device/radio/intercom/custom/north
|
||||
PRESET_NORTH
|
||||
|
||||
/obj/item/device/radio/intercom/custom/south
|
||||
PRESET_SOUTH
|
||||
|
||||
/obj/item/device/radio/intercom/custom/west
|
||||
PRESET_WEST
|
||||
|
||||
/obj/item/device/radio/intercom/custom/east
|
||||
PRESET_EAST
|
||||
|
||||
/obj/item/device/radio/intercom/custom/Initialize()
|
||||
. = ..()
|
||||
set_broadcasting(FALSE)
|
||||
@@ -55,6 +122,18 @@
|
||||
/obj/item/device/radio/intercom/hailing
|
||||
name = "intercom (hailing)"
|
||||
|
||||
/obj/item/device/radio/intercom/hailing/north
|
||||
PRESET_NORTH
|
||||
|
||||
/obj/item/device/radio/intercom/hailing/south
|
||||
PRESET_SOUTH
|
||||
|
||||
/obj/item/device/radio/intercom/hailing/west
|
||||
PRESET_WEST
|
||||
|
||||
/obj/item/device/radio/intercom/hailing/east
|
||||
PRESET_EAST
|
||||
|
||||
/obj/item/device/radio/intercom/hailing/Initialize()
|
||||
. = ..()
|
||||
set_frequency(HAIL_FREQ)
|
||||
@@ -62,10 +141,34 @@
|
||||
/obj/item/device/radio/intercom/interrogation
|
||||
name = "intercom (interrogation)"
|
||||
|
||||
/obj/item/device/radio/intercom/interrogation/north
|
||||
PRESET_NORTH
|
||||
|
||||
/obj/item/device/radio/intercom/interrogation/south
|
||||
PRESET_SOUTH
|
||||
|
||||
/obj/item/device/radio/intercom/interrogation/west
|
||||
PRESET_WEST
|
||||
|
||||
/obj/item/device/radio/intercom/interrogation/east
|
||||
PRESET_EAST
|
||||
|
||||
/obj/item/device/radio/intercom/interrogation/Initialize()
|
||||
. = ..()
|
||||
set_frequency(1449)
|
||||
|
||||
/obj/item/device/radio/intercom/interrogation/broadcasting/north
|
||||
PRESET_NORTH
|
||||
|
||||
/obj/item/device/radio/intercom/interrogation/broadcasting/south
|
||||
PRESET_SOUTH
|
||||
|
||||
/obj/item/device/radio/intercom/interrogation/broadcasting/west
|
||||
PRESET_WEST
|
||||
|
||||
/obj/item/device/radio/intercom/interrogation/broadcasting/east
|
||||
PRESET_EAST
|
||||
|
||||
/obj/item/device/radio/intercom/interrogation/broadcasting/Initialize() // The detainee's side.
|
||||
. = ..()
|
||||
set_broadcasting(TRUE)
|
||||
@@ -74,6 +177,18 @@
|
||||
/obj/item/device/radio/intercom/private
|
||||
name = "intercom (private)"
|
||||
|
||||
/obj/item/device/radio/intercom/private/north
|
||||
PRESET_NORTH
|
||||
|
||||
/obj/item/device/radio/intercom/private/south
|
||||
PRESET_SOUTH
|
||||
|
||||
/obj/item/device/radio/intercom/private/west
|
||||
PRESET_WEST
|
||||
|
||||
/obj/item/device/radio/intercom/private/east
|
||||
PRESET_EAST
|
||||
|
||||
/obj/item/device/radio/intercom/private/Initialize()
|
||||
. = ..()
|
||||
set_frequency(AI_FREQ)
|
||||
@@ -81,6 +196,18 @@
|
||||
/obj/item/device/radio/intercom/specops
|
||||
name = "intercom (spec ops)"
|
||||
|
||||
/obj/item/device/radio/intercom/specops/north
|
||||
PRESET_NORTH
|
||||
|
||||
/obj/item/device/radio/intercom/specops/south
|
||||
PRESET_SOUTH
|
||||
|
||||
/obj/item/device/radio/intercom/specops/west
|
||||
PRESET_WEST
|
||||
|
||||
/obj/item/device/radio/intercom/specops/east
|
||||
PRESET_EAST
|
||||
|
||||
/obj/item/device/radio/intercom/specops/Initialize()
|
||||
. = ..()
|
||||
set_frequency(ERT_FREQ)
|
||||
@@ -88,6 +215,18 @@
|
||||
/obj/item/device/radio/intercom/department
|
||||
canhear_range = 5
|
||||
|
||||
/obj/item/device/radio/intercom/department/north
|
||||
PRESET_NORTH
|
||||
|
||||
/obj/item/device/radio/intercom/department/south
|
||||
PRESET_SOUTH
|
||||
|
||||
/obj/item/device/radio/intercom/department/west
|
||||
PRESET_WEST
|
||||
|
||||
/obj/item/device/radio/intercom/department/east
|
||||
PRESET_EAST
|
||||
|
||||
/obj/item/device/radio/intercom/department/Initialize()
|
||||
. = ..()
|
||||
set_broadcasting(FALSE)
|
||||
@@ -96,6 +235,18 @@
|
||||
/obj/item/device/radio/intercom/department/medbay
|
||||
name = "intercom (medical)"
|
||||
|
||||
/obj/item/device/radio/intercom/department/medbay/north
|
||||
PRESET_NORTH
|
||||
|
||||
/obj/item/device/radio/intercom/department/medbay/south
|
||||
PRESET_SOUTH
|
||||
|
||||
/obj/item/device/radio/intercom/department/medbay/west
|
||||
PRESET_WEST
|
||||
|
||||
/obj/item/device/radio/intercom/department/medbay/east
|
||||
PRESET_EAST
|
||||
|
||||
/obj/item/device/radio/intercom/department/medbay/Initialize()
|
||||
. = ..()
|
||||
set_frequency(MED_I_FREQ)
|
||||
@@ -104,6 +255,18 @@
|
||||
/obj/item/device/radio/intercom/department/security
|
||||
name = "intercom (security)"
|
||||
|
||||
/obj/item/device/radio/intercom/department/security/north
|
||||
PRESET_NORTH
|
||||
|
||||
/obj/item/device/radio/intercom/department/security/south
|
||||
PRESET_SOUTH
|
||||
|
||||
/obj/item/device/radio/intercom/department/security/west
|
||||
PRESET_WEST
|
||||
|
||||
/obj/item/device/radio/intercom/department/security/east
|
||||
PRESET_EAST
|
||||
|
||||
/obj/item/device/radio/intercom/department/security/Initialize()
|
||||
. = ..()
|
||||
set_frequency(SEC_I_FREQ)
|
||||
@@ -116,6 +279,18 @@
|
||||
name = "intercom (entertainment)"
|
||||
canhear_range = 4
|
||||
|
||||
/obj/item/device/radio/intercom/entertainment/north
|
||||
PRESET_NORTH
|
||||
|
||||
/obj/item/device/radio/intercom/entertainment/south
|
||||
PRESET_SOUTH
|
||||
|
||||
/obj/item/device/radio/intercom/entertainment/west
|
||||
PRESET_WEST
|
||||
|
||||
/obj/item/device/radio/intercom/entertainment/east
|
||||
PRESET_EAST
|
||||
|
||||
/obj/item/device/radio/intercom/entertainment/Initialize()
|
||||
. = ..()
|
||||
set_frequency(ENT_FREQ)
|
||||
@@ -145,6 +320,18 @@
|
||||
subspace_transmission = TRUE
|
||||
syndie = TRUE
|
||||
|
||||
/obj/item/device/radio/intercom/syndicate/north
|
||||
PRESET_NORTH
|
||||
|
||||
/obj/item/device/radio/intercom/syndicate/south
|
||||
PRESET_SOUTH
|
||||
|
||||
/obj/item/device/radio/intercom/syndicate/west
|
||||
PRESET_WEST
|
||||
|
||||
/obj/item/device/radio/intercom/syndicate/east
|
||||
PRESET_EAST
|
||||
|
||||
/obj/item/device/radio/intercom/syndicate/Initialize()
|
||||
. = ..()
|
||||
set_frequency(SYND_FREQ)
|
||||
@@ -156,6 +343,18 @@
|
||||
subspace_transmission = TRUE
|
||||
syndie = TRUE
|
||||
|
||||
/obj/item/device/radio/intercom/raider/north
|
||||
PRESET_NORTH
|
||||
|
||||
/obj/item/device/radio/intercom/raider/south
|
||||
PRESET_SOUTH
|
||||
|
||||
/obj/item/device/radio/intercom/raider/west
|
||||
PRESET_WEST
|
||||
|
||||
/obj/item/device/radio/intercom/raider/east
|
||||
PRESET_EAST
|
||||
|
||||
/obj/item/device/radio/intercom/syndicate/Initialize()
|
||||
. = ..()
|
||||
set_frequency(RAID_FREQ)
|
||||
@@ -221,6 +420,18 @@
|
||||
/obj/item/device/radio/intercom/locked
|
||||
var/locked_frequency
|
||||
|
||||
/obj/item/device/radio/intercom/locked/north
|
||||
PRESET_NORTH
|
||||
|
||||
/obj/item/device/radio/intercom/locked/south
|
||||
PRESET_SOUTH
|
||||
|
||||
/obj/item/device/radio/intercom/locked/west
|
||||
PRESET_WEST
|
||||
|
||||
/obj/item/device/radio/intercom/locked/east
|
||||
PRESET_EAST
|
||||
|
||||
/obj/item/device/radio/intercom/locked/set_frequency(var/frequency)
|
||||
if(frequency == locked_frequency)
|
||||
..(locked_frequency)
|
||||
@@ -243,3 +454,8 @@
|
||||
/obj/item/device/radio/intercom/locked/confessional/Initialize()
|
||||
. = ..()
|
||||
set_frequency(1480)
|
||||
|
||||
#undef PRESET_NORTH
|
||||
#undef PRESET_SOUTH
|
||||
#undef PRESET_WEST
|
||||
#undef PRESET_EAST
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
/obj/item/stack/tile
|
||||
name = "tile"
|
||||
singular_name = "tile"
|
||||
desc = "A non-descript floor tile"
|
||||
desc = "A non-descript floor tile."
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
max_amount = 60
|
||||
recyclable = TRUE
|
||||
@@ -45,20 +45,6 @@
|
||||
drop_sound = 'sound/items/drop/herb.ogg'
|
||||
pickup_sound = 'sound/items/pickup/herb.ogg'
|
||||
|
||||
/obj/item/stack/tile/grass_alt
|
||||
name = "grass tile"
|
||||
singular_name = "grass floor tile"
|
||||
desc = "A soft patch of grass."
|
||||
icon_state = "tile_grass_alt"
|
||||
force = 1.0
|
||||
throwforce = 1.0
|
||||
throw_speed = 5
|
||||
throw_range = 20
|
||||
flags = 0
|
||||
origin_tech = list(TECH_BIO = 1)
|
||||
drop_sound = 'sound/items/drop/herb.ogg'
|
||||
pickup_sound = 'sound/items/pickup/herb.ogg'
|
||||
|
||||
/*
|
||||
* Wood
|
||||
*/
|
||||
@@ -75,43 +61,40 @@
|
||||
drop_sound = 'sound/items/drop/wooden.ogg'
|
||||
pickup_sound = 'sound/items/pickup/wooden.ogg'
|
||||
|
||||
/obj/item/stack/tile/wood/coloured
|
||||
icon_state = "tile_woodcoloured"
|
||||
|
||||
/obj/item/stack/tile/wood/coloured/birch
|
||||
/obj/item/stack/tile/wood/birch
|
||||
name = "birch wood floor tile"
|
||||
color = WOOD_COLOR_BIRCH
|
||||
build_type = /obj/item/stack/tile/wood/coloured/birch
|
||||
build_type = /obj/item/stack/tile/wood/birch
|
||||
|
||||
/obj/item/stack/tile/wood/coloured/mahogany
|
||||
/obj/item/stack/tile/wood/mahogany
|
||||
name = "mahogany wood floor tile"
|
||||
color = WOOD_COLOR_RICH
|
||||
build_type = /obj/item/stack/tile/wood/coloured/mahogany
|
||||
build_type = /obj/item/stack/tile/wood/mahogany
|
||||
|
||||
/obj/item/stack/tile/wood/coloured/maple
|
||||
/obj/item/stack/tile/wood/maple
|
||||
name = "maple wood floor tile"
|
||||
color = WOOD_COLOR_PALE
|
||||
build_type = /obj/item/stack/tile/wood/coloured/maple
|
||||
build_type = /obj/item/stack/tile/wood/maple
|
||||
|
||||
/obj/item/stack/tile/wood/coloured/bamboo
|
||||
/obj/item/stack/tile/wood/bamboo
|
||||
name = "bamboo wood floor tile"
|
||||
color = WOOD_COLOR_PALE2
|
||||
build_type = /obj/item/stack/tile/wood/coloured/bamboo
|
||||
build_type = /obj/item/stack/tile/wood/bamboo
|
||||
|
||||
/obj/item/stack/tile/wood/coloured/ebony
|
||||
/obj/item/stack/tile/wood/ebony
|
||||
name = "ebony wood floor tile"
|
||||
color = WOOD_COLOR_BLACK
|
||||
build_type = /obj/item/stack/tile/wood/coloured/ebony
|
||||
build_type = /obj/item/stack/tile/wood/ebony
|
||||
|
||||
/obj/item/stack/tile/wood/coloured/walnut
|
||||
/obj/item/stack/tile/wood/walnut
|
||||
name = "walnut wood floor tile"
|
||||
color = WOOD_COLOR_CHOCOLATE
|
||||
build_type = /obj/item/stack/tile/wood/coloured/walnut
|
||||
build_type = /obj/item/stack/tile/wood/walnut
|
||||
|
||||
/obj/item/stack/tile/wood/coloured/yew
|
||||
/obj/item/stack/tile/wood/yew
|
||||
name = "yew wood floor tile"
|
||||
color = WOOD_COLOR_YELLOW
|
||||
build_type = /obj/item/stack/tile/wood/coloured/yew
|
||||
build_type = /obj/item/stack/tile/wood/yew
|
||||
|
||||
/*
|
||||
* Carpets
|
||||
@@ -205,7 +188,7 @@
|
||||
icon_state = "tile_carpetmagenta"
|
||||
|
||||
/obj/item/stack/tile/lino
|
||||
name = "old linoleum"
|
||||
name = "linoleum"
|
||||
singular_name = "linoleum"
|
||||
desc = "A piece of linoleum. It is the same size as a normal floor tile!"
|
||||
icon_state = "tile_linoleum"
|
||||
@@ -218,19 +201,9 @@
|
||||
pickup_sound = 'sound/items/pickup/cloth.ogg'
|
||||
matter = list(MATERIAL_PLASTIC = TILE_MATERIAL_AMOUNT)
|
||||
|
||||
/obj/item/stack/tile/lino_grey
|
||||
name = "linoleum"
|
||||
singular_name = "linoleum"
|
||||
desc = "A piece of linoleum. It is the same size as a normal floor tile!"
|
||||
icon_state = "tile_linoleum_grey"
|
||||
force = 1.0
|
||||
throwforce = 1.0
|
||||
throw_speed = 5
|
||||
throw_range = 20
|
||||
flags = 0
|
||||
drop_sound = 'sound/items/drop/cloth.ogg'
|
||||
pickup_sound = 'sound/items/pickup/cloth.ogg'
|
||||
matter = list(MATERIAL_PLASTIC = TILE_MATERIAL_AMOUNT)
|
||||
/obj/item/stack/tile/lino/diamond
|
||||
name = "diamond linoleum"
|
||||
icon_state = "tile_linoleum_diamond"
|
||||
|
||||
/*
|
||||
* Circuits
|
||||
@@ -281,7 +254,7 @@
|
||||
amount = max_amount
|
||||
update_icon()
|
||||
|
||||
/obj/item/stack/tile/floor/full
|
||||
/obj/item/stack/tile/mono
|
||||
name = "full steel tiles"
|
||||
desc = "A set of full steel floor tiles."
|
||||
singular_name = "full steel tile"
|
||||
@@ -293,11 +266,9 @@
|
||||
color = COLOR_RED_GRAY
|
||||
icon_state = "tile_white"
|
||||
|
||||
/obj/item/stack/tile/floor_steel
|
||||
name = "steel floor tile"
|
||||
singular_name = "steel floor tile"
|
||||
icon_state = "tile_steel"
|
||||
matter = list(MATERIAL_PLASTEEL = TILE_MATERIAL_AMOUNT)
|
||||
/obj/item/stack/tile/floor/rust
|
||||
name = "rusted steel floor tile"
|
||||
desc = "A set of steel floor tiles. Seems to be only good for recycling."
|
||||
|
||||
/obj/item/stack/tile/floor_white
|
||||
name = "white floor tile"
|
||||
@@ -362,16 +333,11 @@
|
||||
matter = list(MATERIAL_DIAMOND = TILE_MATERIAL_AMOUNT)
|
||||
|
||||
/obj/item/stack/tile/marble
|
||||
name = "light marble floor tile"
|
||||
singular_name = "light marble floor tile"
|
||||
name = "marble floor tile"
|
||||
singular_name = "marble floor tile"
|
||||
icon_state = "tile_lightmarble"
|
||||
matter = list(MATERIAL_MARBLE = TILE_MATERIAL_AMOUNT)
|
||||
|
||||
/obj/item/stack/tile/marble/dark
|
||||
name = "dark marble floor tile"
|
||||
singular_name = "dark marble floor tile"
|
||||
icon_state = "tile_darkmarble"
|
||||
|
||||
/*
|
||||
* Cyborg modules
|
||||
*/
|
||||
|
||||
@@ -256,3 +256,6 @@
|
||||
. |= DAMAGE_FLAG_SHARP
|
||||
if(damtype == DAMAGE_BURN)
|
||||
. |= DAMAGE_FLAG_LASER
|
||||
|
||||
/obj/proc/set_pixel_offsets()
|
||||
return
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
/obj/item/device/flashlight/heavy = 0.5,
|
||||
/obj/item/device/flashlight/lantern = 0.4,
|
||||
/obj/item/device/flashlight/maglight = 0.4,
|
||||
/obj/item/device/floor_painter = 0.6,
|
||||
/obj/item/device/paint_sprayer = 0.6,
|
||||
/obj/item/device/gps/engineering = 0.6,
|
||||
/obj/item/device/kinetic_analyzer = 0.1,
|
||||
/obj/item/device/laser_pointer/purple = 0.1,
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
w_class = ITEMSIZE_IMMENSE
|
||||
layer = OBJ_LAYER - 0.01
|
||||
|
||||
var/material_alteration = MATERIAL_ALTERATION_ALL // Overrides for material shit. Set them manually if you don't want colors etc. See wood chairs/office chairs.
|
||||
var/climbable
|
||||
var/breakable
|
||||
var/parts
|
||||
@@ -102,17 +103,17 @@
|
||||
|
||||
/obj/structure/proc/can_climb(var/mob/living/user, post_climb_check=0)
|
||||
if (!climbable || !can_touch(user) || (!post_climb_check && (user in climbers)))
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
if (!user.Adjacent(src))
|
||||
to_chat(user, "<span class='danger'>You can't climb there, the way is blocked.</span>")
|
||||
return 0
|
||||
to_chat(user, SPAN_WARNING("You must be next to \the [src] to climb it."))
|
||||
return FALSE
|
||||
|
||||
var/obj/occupied = turf_is_crowded()
|
||||
if(occupied)
|
||||
to_chat(user, "<span class='danger'>There's \a [occupied] in the way.</span>")
|
||||
return 0
|
||||
return 1
|
||||
to_chat(user, SPAN_WARNING("There's \a [occupied] in the way."))
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
/obj/structure/proc/turf_is_crowded(var/exclude_self = FALSE)
|
||||
var/turf/T = get_turf(src)
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
new /obj/item/grenade/chem_grenade/antifuel(src)
|
||||
|
||||
// Painters
|
||||
new /obj/item/device/floor_painter(src)
|
||||
new /obj/item/device/paint_sprayer(src)
|
||||
new /obj/item/device/pipe_painter(src)
|
||||
|
||||
// Atmospherics Technician
|
||||
@@ -111,7 +111,7 @@
|
||||
new /obj/item/grenade/chem_grenade/antifuel(src)
|
||||
|
||||
// Painters
|
||||
new /obj/item/device/floor_painter(src)
|
||||
new /obj/item/device/paint_sprayer(src)
|
||||
new /obj/item/device/pipe_painter(src)
|
||||
|
||||
// Electrical Supplies
|
||||
|
||||
@@ -4,159 +4,73 @@
|
||||
|
||||
/obj/structure/door_assembly
|
||||
name = "airlock assembly"
|
||||
icon = 'icons/obj/doors/door_assembly.dmi'
|
||||
icon_state = "door_as_0"
|
||||
anchored = 0
|
||||
density = 1
|
||||
desc = "An airlock assembly."
|
||||
desc_info = "To create a glass airlock, add two reinforced glass sheets."
|
||||
icon = 'icons/obj/doors/basic/single/generic/door.dmi'
|
||||
icon_state = "construction"
|
||||
anchored = FALSE
|
||||
density = TRUE
|
||||
w_class = ITEMSIZE_HUGE
|
||||
build_amt = 4
|
||||
obj_flags = OBJ_FLAG_ROTATABLE|OBJ_FLAG_MOVES_UNSUPPORTED
|
||||
pixel_x = -16
|
||||
pixel_y = -16
|
||||
var/state = STATE_UNWIRED
|
||||
var/base_icon_state = ""
|
||||
var/base_name = "Airlock"
|
||||
var/obj/item/airlock_electronics/electronics = null
|
||||
var/airlock_type = "" //the type path of the airlock once completed
|
||||
var/glass_type = "/glass"
|
||||
var/glass = FALSE // 0 = glass can be installed. -1 = glass can't be installed. 1 = glass is already installed. Text = mineral plating is installed instead.
|
||||
var/created_name = null
|
||||
var/base_name = "airlock"
|
||||
var/obj/item/airlock_electronics/electronics
|
||||
/// The type path of the airlock once completed.
|
||||
var/airlock_type
|
||||
/// Glass version of this airlock.
|
||||
var/glass_type
|
||||
/// If glass is installed.
|
||||
var/glass = FALSE
|
||||
var/created_name
|
||||
var/width = 1
|
||||
|
||||
/obj/structure/door_assembly/Initialize(mapload)
|
||||
. = ..()
|
||||
update_state()
|
||||
|
||||
/obj/structure/door_assembly/door_assembly_ser
|
||||
base_icon_state = "ser"
|
||||
base_name = "Service Airlock"
|
||||
glass_type = "/glass_service"
|
||||
airlock_type = "/service"
|
||||
/obj/structure/door_assembly/examine(mob/user)
|
||||
. = ..()
|
||||
to_chat(user, "It is currently facing [dir2text(dir)].")
|
||||
|
||||
/obj/structure/door_assembly/door_assembly_com
|
||||
base_icon_state = "com"
|
||||
base_name = "Command Airlock"
|
||||
glass_type = "/glass_command"
|
||||
airlock_type = "/command"
|
||||
|
||||
/obj/structure/door_assembly/door_assembly_sec
|
||||
base_icon_state = "sec"
|
||||
base_name = "Security Airlock"
|
||||
glass_type = "/glass_security"
|
||||
airlock_type = "/security"
|
||||
|
||||
/obj/structure/door_assembly/door_assembly_eng
|
||||
base_icon_state = "eng"
|
||||
base_name = "Engineering Airlock"
|
||||
glass_type = "/glass_engineering"
|
||||
airlock_type = "/engineering"
|
||||
|
||||
/obj/structure/door_assembly/door_assembly_min
|
||||
base_icon_state = "min"
|
||||
base_name = "Mining Airlock"
|
||||
glass_type = "/glass_mining"
|
||||
airlock_type = "/mining"
|
||||
|
||||
/obj/structure/door_assembly/door_assembly_atmo
|
||||
base_icon_state = "atmo"
|
||||
base_name = "Atmospherics Airlock"
|
||||
glass_type = "/glass_atmos"
|
||||
airlock_type = "/atmos"
|
||||
|
||||
/obj/structure/door_assembly/door_assembly_research
|
||||
base_icon_state = "res"
|
||||
base_name = "Research Airlock"
|
||||
glass_type = "/glass_research"
|
||||
airlock_type = "/research"
|
||||
|
||||
/obj/structure/door_assembly/door_assembly_science
|
||||
base_icon_state = "sci"
|
||||
base_name = "Science Airlock"
|
||||
glass_type = "/glass_science"
|
||||
airlock_type = "/science"
|
||||
|
||||
/obj/structure/door_assembly/door_assembly_med
|
||||
base_icon_state = "med"
|
||||
base_name = "Medical Airlock"
|
||||
glass_type = "/glass_medical"
|
||||
airlock_type = "/medical"
|
||||
/obj/structure/door_assembly/door_assembly_generic
|
||||
base_name = "airlock"
|
||||
airlock_type = /obj/machinery/door/airlock
|
||||
glass_type = /obj/machinery/door/airlock/glass
|
||||
|
||||
/obj/structure/door_assembly/door_assembly_mai
|
||||
base_icon_state = "mai"
|
||||
base_name = "Maintenance Airlock"
|
||||
airlock_type = "/maintenance"
|
||||
glass = -1
|
||||
base_name = "maintenance airlock"
|
||||
airlock_type = /obj/machinery/door/airlock/maintenance
|
||||
|
||||
/obj/structure/door_assembly/door_assembly_ext
|
||||
base_icon_state = "ext"
|
||||
base_name = "External Airlock"
|
||||
airlock_type = "/external"
|
||||
glass = -1
|
||||
|
||||
/obj/structure/door_assembly/door_assembly_fre
|
||||
base_icon_state = "fre"
|
||||
base_name = "Freezer Airlock"
|
||||
airlock_type = "/freezer"
|
||||
glass = -1
|
||||
|
||||
/obj/structure/door_assembly/door_assembly_fma
|
||||
base_icon_state = "mai"
|
||||
base_name = "Freezer Maintenance Access"
|
||||
airlock_type = "/freezer_maint"
|
||||
glass = -1
|
||||
base_name = "external airlock"
|
||||
airlock_type = /obj/machinery/door/airlock/external
|
||||
|
||||
/obj/structure/door_assembly/door_assembly_hatch
|
||||
base_icon_state = "hatch"
|
||||
base_name = "Airtight Hatch"
|
||||
airlock_type = "/hatch"
|
||||
glass = -1
|
||||
base_name = "airtight hatch"
|
||||
icon = 'icons/obj/doors/basic/single/external/door.dmi'
|
||||
airlock_type = /obj/machinery/door/airlock/hatch
|
||||
|
||||
/obj/structure/door_assembly/door_assembly_mhatch
|
||||
base_icon_state = "mhatch"
|
||||
base_name = "Maintenance Hatch"
|
||||
airlock_type = "/maintenance_hatch"
|
||||
glass = -1
|
||||
base_name = "maintenance hatch"
|
||||
icon = 'icons/obj/doors/basic/single/external/door.dmi'
|
||||
airlock_type = /obj/machinery/door/airlock/maintenance_hatch
|
||||
|
||||
/obj/structure/door_assembly/door_assembly_highsecurity
|
||||
base_icon_state = "highsec"
|
||||
base_name = "High Security Airlock"
|
||||
airlock_type = "/highsecurity"
|
||||
glass = -1
|
||||
|
||||
/obj/structure/door_assembly/door_assembly_vault
|
||||
base_icon_state = "vault"
|
||||
base_name = "Vault"
|
||||
airlock_type = "/vault"
|
||||
glass = -1
|
||||
|
||||
/obj/structure/door_assembly/door_assembly_lift
|
||||
base_icon_state = "lift"
|
||||
base_name = "Elevator Door"
|
||||
airlock_type = "/lift"
|
||||
glass = -1
|
||||
|
||||
/obj/structure/door_assembly/door_assembly_skrell
|
||||
base_icon_state = "skrell_purple"
|
||||
base_name = "Airlock"
|
||||
airlock_type = "/skrell"
|
||||
glass = -1
|
||||
|
||||
/obj/structure/door_assembly/door_assembly_skrell/grey
|
||||
base_icon_state = "skrell_grey"
|
||||
base_name = "Airlock"
|
||||
airlock_type = "/skrell/grey"
|
||||
base_name = "high security airlock"
|
||||
icon = 'icons/obj/doors/basic/single/secure/door.dmi'
|
||||
airlock_type = /obj/machinery/door/airlock/highsecurity
|
||||
|
||||
/obj/structure/door_assembly/multi_tile
|
||||
icon = 'icons/obj/doors/door_assembly2x1.dmi'
|
||||
icon_state = null //only have icons for the glass version
|
||||
icon = 'icons/obj/doors/basic/double/generic/door.dmi'
|
||||
dir = EAST
|
||||
pixel_x = -32
|
||||
pixel_y = -32
|
||||
width = 2
|
||||
|
||||
/*Temporary until we get sprites.
|
||||
glass_type = "/multi_tile/glass"
|
||||
airlock_type = "/multi_tile/maint"
|
||||
glass = 1*/
|
||||
base_icon_state = "g" //Remember to delete this line when reverting "glass" var to 1.
|
||||
airlock_type = "/multi_tile/glass"
|
||||
glass = -1 //To prevent bugs in deconstruction process.
|
||||
airlock_type = /obj/machinery/door/airlock/multi_tile
|
||||
glass_type = /obj/machinery/door/airlock/multi_tile/glass
|
||||
|
||||
/obj/structure/door_assembly/multi_tile/Initialize()
|
||||
. = ..()
|
||||
@@ -181,22 +95,13 @@
|
||||
created_name = door_name
|
||||
|
||||
else if(W.iswelder())
|
||||
if(!(istext(glass) || glass == TRUE || !anchored))
|
||||
to_chat(user, SPAN_WARNING("\The [src] isn't ready to be welded yet. It doesn't have any installed material to remove, and it has to be unsecured to deconstruct it."))
|
||||
if(!glass || anchored)
|
||||
to_chat(user, SPAN_WARNING("\The [src] isn't ready to be welded yet. It doesn't have any installed glass to remove, and it has to be unsecured to deconstruct it."))
|
||||
return
|
||||
var/obj/item/weldingtool/WT = W
|
||||
if(WT.use(0, user))
|
||||
playsound(src.loc, 'sound/items/welder_pry.ogg', 50, 1)
|
||||
if(istext(glass))
|
||||
user.visible_message("<b>[user]</b> starts welding the [glass] plating off the airlock assembly.", SPAN_NOTICE("You start welding the [glass] plating off the airlock assembly."))
|
||||
if(W.use_tool(src, user, 40, volume = 50))
|
||||
if(!src || !WT.isOn())
|
||||
return
|
||||
to_chat(user, SPAN_NOTICE("You weld the [glass] plating off."))
|
||||
var/M = text2path("/obj/item/stack/material/[glass]")
|
||||
new M(src.loc, 2)
|
||||
glass = FALSE
|
||||
else if(glass == TRUE)
|
||||
if(glass)
|
||||
user.visible_message("<b>[user]</b> starts welding the glass panel out of the airlock assembly.", SPAN_NOTICE("You start welding the glass panel out of the airlock assembly."))
|
||||
if(W.use_tool(src, user, 40, volume = 50))
|
||||
if(!src || !WT.isOn())
|
||||
@@ -313,32 +218,19 @@
|
||||
electronics.forceMove(src.loc)
|
||||
electronics = null
|
||||
|
||||
else if(istype(W, /obj/item/stack/material))
|
||||
else if(istype(W, /obj/item/stack/material) && glass_type)
|
||||
if(glass)
|
||||
to_chat(user, SPAN_WARNING("\The [src] already has material plating installed."))
|
||||
to_chat(user, SPAN_WARNING("\The [src] already has glass installed."))
|
||||
return
|
||||
var/obj/item/stack/S = W
|
||||
var/material_name = S.get_material_name()
|
||||
if(S)
|
||||
if(S.get_amount() >= 1)
|
||||
if(material_name == MATERIAL_GLASS_REINFORCED)
|
||||
user.visible_message("<b>[user]</b> starts installing \the [S] into the airlock assembly.", "You start installing \the [S] into the airlock assembly.")
|
||||
if(W.use_tool(src, user, 40, volume = 50) && !glass)
|
||||
if(S.use(1))
|
||||
to_chat(user, SPAN_NOTICE("You install reinforced glass windows into the airlock assembly."))
|
||||
glass = TRUE
|
||||
else if(material_name)
|
||||
// Ugly hack, will suffice for now. Need to fix it upstream as well, may rewrite mineral walls. ~Z
|
||||
if(!(material_name in list("gold", "silver", "diamond", "uranium", "phoron", "sandstone")))
|
||||
to_chat(user, SPAN_WARNING("You cannot make an airlock out of [S]."))
|
||||
return
|
||||
if(S.get_amount() >= 2)
|
||||
playsound(src.loc, /singleton/sound_category/crowbar_sound, 100, 1)
|
||||
user.visible_message("<b>[user]</b> starts installing [S] into the airlock assembly.", "You start installing [S] into the airlock assembly.")
|
||||
if(W.use_tool(src, user, 40, volume = 50) && !glass)
|
||||
if (S.use(2))
|
||||
to_chat(user, SPAN_NOTICE("You install [SSmaterials.material_display_name(material_name)] plating into the airlock assembly."))
|
||||
glass = material_name
|
||||
if(S.get_amount() >= 2)
|
||||
if(material_name == MATERIAL_GLASS_REINFORCED)
|
||||
user.visible_message("<b>[user]</b> starts installing \the [S] into the airlock assembly.", SPAN_WARNING("You start installing \the [S] into the airlock assembly."))
|
||||
if(W.use_tool(src, user, 40, volume = 50) && !glass)
|
||||
if(S.use(2))
|
||||
to_chat(user, SPAN_NOTICE("You install reinforced glass windows into the airlock assembly."))
|
||||
glass = TRUE
|
||||
|
||||
else if(W.isscrewdriver())
|
||||
if(state != STATE_ELECTRONICS_INSTALLED)
|
||||
@@ -351,16 +243,11 @@
|
||||
if(!src)
|
||||
return
|
||||
to_chat(user, SPAN_NOTICE("You finish the airlock!"))
|
||||
var/path
|
||||
if(istext(glass))
|
||||
path = text2path("/obj/machinery/door/airlock/[glass]")
|
||||
else if (glass == TRUE)
|
||||
path = text2path("/obj/machinery/door/airlock[glass_type]")
|
||||
else
|
||||
path = text2path("/obj/machinery/door/airlock[airlock_type]")
|
||||
|
||||
SetBounds()
|
||||
new path(loc, dir, FALSE, src)
|
||||
if(glass && glass_type)
|
||||
new glass_type(loc, dir, FALSE, src)
|
||||
else
|
||||
new airlock_type(loc, dir, FALSE, src)
|
||||
qdel(src)
|
||||
|
||||
else if(istype(W, /obj/item/material/twohanded/chainsaw))
|
||||
@@ -397,16 +284,15 @@
|
||||
return (ChainSawVar.powered)
|
||||
|
||||
/obj/structure/door_assembly/proc/update_state()
|
||||
icon_state = "door_as_[glass == TRUE ? "g" : ""][istext(glass) ? glass : base_icon_state][state]"
|
||||
name = ""
|
||||
switch (state)
|
||||
if(STATE_UNWIRED)
|
||||
name = anchored ? "Secured " : "Unsecured "
|
||||
name = anchored ? "secured " : "unsecured "
|
||||
if(STATE_WIRED)
|
||||
name = "Wired "
|
||||
name = "wired "
|
||||
if(STATE_ELECTRONICS_INSTALLED)
|
||||
name = "Near-finished "
|
||||
name += "[glass == TRUE ? "Window " : ""][istext(glass) ? "[glass] Airlock" : base_name] Assembly"
|
||||
name = "near-finished "
|
||||
name += "[glass == TRUE ? "window " : ""][glass ? "glass airlock" : base_name] assembly"
|
||||
if(created_name)
|
||||
name += " ([created_name])"
|
||||
|
||||
|
||||
@@ -10,11 +10,36 @@
|
||||
var/obj/item/extinguisher/has_extinguisher
|
||||
var/opened = 0
|
||||
|
||||
/obj/structure/extinguisher_cabinet/Initialize()
|
||||
/obj/structure/extinguisher_cabinet/north
|
||||
dir = NORTH
|
||||
pixel_y = 24
|
||||
|
||||
/obj/structure/extinguisher_cabinet/east
|
||||
dir = EAST
|
||||
pixel_x = 21
|
||||
pixel_y = 4
|
||||
|
||||
/obj/structure/extinguisher_cabinet/west
|
||||
dir = WEST
|
||||
pixel_x = -21
|
||||
pixel_y = 4
|
||||
|
||||
/obj/structure/extinguisher_cabinet/south
|
||||
dir = SOUTH
|
||||
pixel_y = -23
|
||||
|
||||
/obj/structure/extinguisher_cabinet/Initialize(mapload)
|
||||
. = ..()
|
||||
has_extinguisher = new/obj/item/extinguisher(src)
|
||||
has_extinguisher = new /obj/item/extinguisher(src)
|
||||
update_icon()
|
||||
|
||||
if(!mapload)
|
||||
set_pixel_offsets()
|
||||
|
||||
/obj/structure/extinguisher_cabinet/set_pixel_offsets()
|
||||
pixel_x = dir & (NORTH|SOUTH) ? 0 : (dir == EAST ? 21 : 4)
|
||||
pixel_y = dir & (NORTH|SOUTH) ? (dir == NORTH ? 24 : -23) : 4
|
||||
|
||||
/obj/structure/extinguisher_cabinet/attackby(obj/item/O, mob/user)
|
||||
if(isrobot(user))
|
||||
return
|
||||
|
||||
@@ -14,6 +14,22 @@
|
||||
var/shattered
|
||||
var/obj/item/material/twohanded/fireaxe/fireaxe
|
||||
|
||||
/obj/structure/fireaxecabinet/north
|
||||
dir = NORTH
|
||||
pixel_y = 24
|
||||
|
||||
/obj/structure/fireaxecabinet/east
|
||||
dir = EAST
|
||||
pixel_x = 19
|
||||
|
||||
/obj/structure/fireaxecabinet/west
|
||||
dir = WEST
|
||||
pixel_x = -19
|
||||
|
||||
/obj/structure/fireaxecabinet/south
|
||||
dir = SOUTH
|
||||
pixel_y = -20
|
||||
|
||||
/obj/structure/fireaxecabinet/attack_generic(var/mob/user, var/damage, var/attack_verb, var/wallbreaker)
|
||||
user.do_attack_animation(src)
|
||||
playsound(user, 'sound/effects/glass_hit.ogg', 50, 1)
|
||||
@@ -50,6 +66,16 @@
|
||||
fireaxe = new(src)
|
||||
update_icon()
|
||||
|
||||
/obj/structure/fireaxecabinet/Initialize(mapload)
|
||||
. = ..()
|
||||
|
||||
if(!mapload)
|
||||
set_pixel_offsets()
|
||||
|
||||
/obj/structure/fireaxecabinet/set_pixel_offsets()
|
||||
pixel_x = ((src.dir & (NORTH|SOUTH)) ? 0 : (src.dir == EAST ? 19 : -(19)))
|
||||
pixel_y = ((src.dir & (NORTH|SOUTH)) ? (src.dir == NORTH ? 24 : -(20)) : 0)
|
||||
|
||||
/obj/structure/fireaxecabinet/attack_ai(var/mob/user)
|
||||
if(!ai_can_interact(user))
|
||||
return
|
||||
@@ -141,4 +167,4 @@
|
||||
unlocked = !unlocked
|
||||
to_chat(user, SPAN_NOTICE("You [unlocked ? "disable" : "enable"] the maglock."))
|
||||
|
||||
update_icon()
|
||||
update_icon()
|
||||
|
||||
@@ -1,24 +1,33 @@
|
||||
/obj/structure/window_frame
|
||||
name = "steel window frame"
|
||||
desc = "A steel window frame."
|
||||
icon = 'icons/obj/smooth/full_window_frame.dmi'
|
||||
icon = 'icons/obj/smooth/window/full_window_frame_color.dmi'
|
||||
icon_state = "window_frame"
|
||||
color = COLOR_GRAY20
|
||||
build_amt = 4
|
||||
layer = LAYER_ABOVE_TABLE
|
||||
anchored = TRUE
|
||||
density = TRUE
|
||||
climbable = TRUE
|
||||
smooth = SMOOTH_TRUE
|
||||
smooth = SMOOTH_MORE
|
||||
breakable = TRUE
|
||||
can_be_unanchored = TRUE
|
||||
canSmoothWith = list(
|
||||
/turf/simulated/wall,
|
||||
/turf/simulated/wall/r_wall,
|
||||
/turf/simulated/wall/shuttle/scc_space_ship,
|
||||
/turf/unsimulated/wall/steel, // Centcomm wall.
|
||||
/turf/unsimulated/wall/darkshuttlewall, // Centcomm wall.
|
||||
/turf/unsimulated/wall/riveted, // Centcomm wall.
|
||||
/obj/structure/window_frame,
|
||||
/obj/structure/window_frame/unanchored,
|
||||
/obj/structure/window_frame/empty
|
||||
/obj/structure/window_frame/empty,
|
||||
/obj/machinery/door
|
||||
)
|
||||
blend_overlay = "wall"
|
||||
can_blend_with = list(
|
||||
/turf/simulated/wall,
|
||||
/obj/machinery/door
|
||||
)
|
||||
obj_flags = OBJ_FLAG_MOVES_UNSUPPORTED
|
||||
var/should_check_mapload = TRUE
|
||||
@@ -26,47 +35,9 @@
|
||||
var/glass_needed = 4
|
||||
|
||||
/obj/structure/window_frame/cardinal_smooth(adjacencies, var/list/dir_mods)
|
||||
LAZYINITLIST(dir_mods)
|
||||
var/north_wall = FALSE
|
||||
var/east_wall = FALSE
|
||||
var/south_wall = FALSE
|
||||
var/west_wall = FALSE
|
||||
if(adjacencies & N_NORTH)
|
||||
var/turf/T = get_step(src, NORTH)
|
||||
if(iswall(T))
|
||||
dir_mods["[N_NORTH]"] = "-wall"
|
||||
north_wall = TRUE
|
||||
if(adjacencies & N_EAST)
|
||||
var/turf/T = get_step(src, EAST)
|
||||
if(iswall(T))
|
||||
dir_mods["[N_EAST]"] = "-wall"
|
||||
east_wall = TRUE
|
||||
if(adjacencies & N_SOUTH)
|
||||
var/turf/T = get_step(src, SOUTH)
|
||||
if(iswall(T))
|
||||
dir_mods["[N_SOUTH]"] = "-wall"
|
||||
south_wall = TRUE
|
||||
if(adjacencies & N_WEST)
|
||||
var/turf/T = get_step(src, WEST)
|
||||
if(iswall(T))
|
||||
dir_mods["[N_WEST]"] = "-wall"
|
||||
west_wall = TRUE
|
||||
if(((adjacencies & N_NORTH) && (adjacencies & N_WEST)) && (north_wall || west_wall))
|
||||
dir_mods["[N_NORTH][N_WEST]"] = "-n[north_wall ? "wall" : "win"]-w[west_wall ? "wall" : "win"]"
|
||||
if(((adjacencies & N_NORTH) && (adjacencies & N_EAST)) && (north_wall || east_wall))
|
||||
dir_mods["[N_NORTH][N_EAST]"] = "-n[north_wall ? "wall" : "win"]-e[east_wall ? "wall" : "win"]"
|
||||
if(((adjacencies & N_SOUTH) && (adjacencies & N_WEST)) && (south_wall || west_wall))
|
||||
dir_mods["[N_SOUTH][N_WEST]"] = "-s[south_wall ? "wall" : "win"]-w[west_wall ? "wall" : "win"]"
|
||||
if((adjacencies & N_SOUTH) && (adjacencies & N_EAST) && (south_wall || east_wall))
|
||||
dir_mods["[N_SOUTH][N_EAST]"] = "-s[south_wall ? "wall" : "win"]-e[east_wall ? "wall" : "win"]"
|
||||
dir_mods = handle_blending(adjacencies, dir_mods)
|
||||
return ..(adjacencies, dir_mods)
|
||||
|
||||
/obj/structure/window_frame/proc/update_nearby_icons()
|
||||
queue_smooth_neighbors(src)
|
||||
|
||||
/obj/structure/window_frame/update_icon()
|
||||
queue_smooth(src)
|
||||
|
||||
/obj/structure/window_frame/Initialize(mapload) // If the window frame is mapped in, it should be considered to have glass spawned in it by a window spawner.
|
||||
. = ..()
|
||||
if(mapload && should_check_mapload)
|
||||
@@ -175,3 +146,37 @@
|
||||
|
||||
/obj/structure/window_frame/empty
|
||||
should_check_mapload = FALSE // No glass.
|
||||
|
||||
/obj/structure/window_frame/shuttle
|
||||
icon = 'icons/obj/smooth/window/full_window_frame_color.dmi'
|
||||
color = null
|
||||
smooth = SMOOTH_MORE
|
||||
canSmoothWith = list(
|
||||
/turf/simulated/wall/shuttle,
|
||||
/turf/simulated/wall/shuttle/cardinal,
|
||||
/turf/simulated/wall/shuttle/dark,
|
||||
/turf/simulated/wall/shuttle/dark/cardinal,
|
||||
/obj/structure/window_frame/shuttle,
|
||||
/obj/machinery/door
|
||||
)
|
||||
|
||||
can_blend_with = list(
|
||||
/turf/simulated/wall/shuttle,
|
||||
/turf/simulated/wall/shuttle/cardinal,
|
||||
/obj/machinery/door
|
||||
)
|
||||
|
||||
/obj/structure/window_frame/shuttle/merc
|
||||
color = "#8b7d86"
|
||||
|
||||
/obj/structure/window_frame/shuttle/khaki
|
||||
color = "#ac8b78"
|
||||
|
||||
/obj/structure/window_frame/shuttle/purple
|
||||
color = "#7846b1"
|
||||
|
||||
/obj/structure/window_frame/shuttle/red
|
||||
color = "#c24f4f"
|
||||
|
||||
/obj/structure/window_frame/shuttle/blue
|
||||
color = "#6176a1"
|
||||
|
||||
@@ -15,6 +15,49 @@
|
||||
var/health = 10
|
||||
var/destroyed = 0
|
||||
|
||||
/obj/structure/grille/over
|
||||
name = "over-frame grille"
|
||||
icon = 'icons/obj/smooth/window/grille_over.dmi'
|
||||
layer = BELOW_OBJ_LAYER
|
||||
smooth = SMOOTH_MORE
|
||||
canSmoothWith = list(
|
||||
/turf/simulated/wall,
|
||||
/turf/simulated/wall/r_wall,
|
||||
/turf/unsimulated/wall/steel,
|
||||
/turf/unsimulated/wall/darkshuttlewall,
|
||||
/turf/unsimulated/wall/riveted,
|
||||
/obj/structure/window_frame,
|
||||
/obj/structure/window_frame/unanchored,
|
||||
/obj/structure/window_frame/empty,
|
||||
/obj/structure/window/full/reinforced,
|
||||
/obj/structure/window/full/reinforced/indestructible,
|
||||
/obj/structure/window/full/reinforced/polarized,
|
||||
/obj/structure/window/full/reinforced/polarized/indestructible,
|
||||
/obj/structure/window/full/phoron/reinforced,
|
||||
/obj/structure/window/shuttle/scc_space_ship,
|
||||
/turf/simulated/wall/shuttle/scc_space_ship,
|
||||
/obj/machinery/door
|
||||
)
|
||||
blend_overlay = "wall"
|
||||
attach_overlay = "attach"
|
||||
can_blend_with = list(
|
||||
/turf/simulated/wall,
|
||||
/obj/structure/window_frame
|
||||
)
|
||||
|
||||
/obj/structure/grille/over/cardinal_smooth(adjacencies, var/list/dir_mods)
|
||||
dir_mods = handle_blending(adjacencies, dir_mods)
|
||||
return ..(adjacencies, dir_mods)
|
||||
|
||||
/obj/structure/grille/over/large //for external windows
|
||||
name = "large over-frame grille"
|
||||
icon = 'icons/obj/smooth/window/grille_over_large.dmi'
|
||||
can_blend_with = list(
|
||||
/turf/simulated/wall,
|
||||
/obj/structure/window_frame,
|
||||
/turf/simulated/wall/shuttle/scc_space_ship
|
||||
)
|
||||
|
||||
/obj/structure/grille/ex_act(severity)
|
||||
qdel(src)
|
||||
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
layer = UNDER_PIPE_LAYER //under pipes
|
||||
obj_flags = OBJ_FLAG_MOVES_UNSUPPORTED
|
||||
var/restrict_placement = TRUE
|
||||
smooth = SMOOTH_MORE
|
||||
canSmoothWith = list(
|
||||
/obj/structure/lattice,
|
||||
@@ -26,10 +25,6 @@
|
||||
|
||||
/obj/structure/lattice/Initialize()
|
||||
. = ..()
|
||||
// TG does not have this, and it seems to trigger on the horizon, I do not know what this is supposed to do, perhaps we could get rid of it?
|
||||
if (restrict_placement)
|
||||
if(!(istype(loc, /turf/space) || isopenturf(loc) || istype(loc, /turf/unsimulated/floor/asteroid)))
|
||||
return INITIALIZE_HINT_QDEL
|
||||
for(var/obj/structure/lattice/LAT in loc)
|
||||
if(LAT == src)
|
||||
continue
|
||||
@@ -89,7 +84,6 @@
|
||||
// Special catwalk that can be placed on regular flooring.
|
||||
/obj/structure/lattice/catwalk/indoor
|
||||
desc = "A floor-mounted catwalk designed to protect pipes & station wiring from passing feet."
|
||||
restrict_placement = FALSE
|
||||
can_be_unanchored = TRUE
|
||||
layer = 2.7 // Above wires.
|
||||
|
||||
@@ -126,45 +120,23 @@
|
||||
name = "grate"
|
||||
desc = "A metal grate."
|
||||
icon = 'icons/obj/grate.dmi'
|
||||
icon_state = "grate_dark"
|
||||
icon_state = "grate"
|
||||
return_amount = 1
|
||||
smooth = null
|
||||
var/base_icon_state = "grate_dark"
|
||||
color = COLOR_TILED
|
||||
var/base_icon_state = "grate"
|
||||
var/damaged = FALSE
|
||||
|
||||
/obj/structure/lattice/catwalk/indoor/grate/old
|
||||
icon_state = "grate_dark_old"
|
||||
|
||||
/obj/structure/lattice/catwalk/indoor/grate/damaged
|
||||
icon_state = "grate_dark_dam0"
|
||||
damaged = TRUE
|
||||
|
||||
/obj/structure/lattice/catwalk/indoor/grate/damaged/Initialize()
|
||||
. = ..()
|
||||
icon_state = "[base_icon_state]_dam[rand(0,3)]"
|
||||
|
||||
/obj/structure/lattice/catwalk/indoor/grate/light
|
||||
icon_state = "grate_light"
|
||||
base_icon_state = "grate_light"
|
||||
return_amount = 1
|
||||
|
||||
/obj/structure/lattice/catwalk/indoor/grate/light/old
|
||||
icon_state = "grate_light_old"
|
||||
|
||||
/obj/structure/lattice/catwalk/indoor/grate/light/damaged
|
||||
icon_state = "grate_light_dam0"
|
||||
damaged = TRUE
|
||||
|
||||
/obj/structure/lattice/catwalk/indoor/grate/light/damaged/Initialize()
|
||||
. = ..()
|
||||
icon_state = "[base_icon_state]_dam[rand(0,3)]"
|
||||
|
||||
/obj/structure/lattice/catwalk/indoor/grate/attackby(obj/item/C, mob/user)
|
||||
if(C.iswelder() && damaged)
|
||||
var/obj/item/weldingtool/WT = C
|
||||
if(C.use_tool(src, user, 5, volume = 50) && WT.use(1, user))
|
||||
to_chat(user, SPAN_NOTICE("You slice apart the [src] leaving nothing useful behind."))
|
||||
playsound(src, 'sound/items/Welder.ogg', 50, 1)
|
||||
user.visible_message(
|
||||
SPAN_NOTICE("\The [user] slices apart \the [src], leaving nothing useful behind."),
|
||||
SPAN_NOTICE("You slice apart \the [src], leaving nothing useful behind."),
|
||||
SPAN_NOTICE("You hear the sound of a welder, slicing apart metal.")
|
||||
)
|
||||
playsound(src, 'sound/items/welder.ogg', 50, 1)
|
||||
qdel(src)
|
||||
else
|
||||
..()
|
||||
@@ -180,3 +152,36 @@
|
||||
else
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
/obj/structure/lattice/catwalk/indoor/grate/old/Initialize()
|
||||
. = ..()
|
||||
add_overlay("rust")
|
||||
|
||||
/obj/structure/lattice/catwalk/indoor/grate/damaged
|
||||
icon_state = "grate_dark_dam0"
|
||||
damaged = TRUE
|
||||
|
||||
/obj/structure/lattice/catwalk/indoor/grate/damaged/Initialize()
|
||||
. = ..()
|
||||
icon_state = "[base_icon_state]_dam[rand(0,3)]"
|
||||
|
||||
/obj/structure/lattice/catwalk/indoor/grate/light
|
||||
icon_state = "grate_light"
|
||||
base_icon_state = "grate_light"
|
||||
return_amount = 1
|
||||
color = COLOR_GUNMETAL
|
||||
|
||||
/obj/structure/lattice/catwalk/indoor/grate/light/old/Initialize()
|
||||
. = ..()
|
||||
add_overlay("rust")
|
||||
|
||||
/obj/structure/lattice/catwalk/indoor/grate/light/damaged
|
||||
icon_state = "grate_light_dam0"
|
||||
damaged = TRUE
|
||||
|
||||
/obj/structure/lattice/catwalk/indoor/grate/light/damaged/Initialize()
|
||||
. = ..()
|
||||
icon_state = "[base_icon_state]_dam[rand(0,3)]"
|
||||
|
||||
/obj/structure/lattice/catwalk/indoor/grate/dark
|
||||
color = COLOR_DARK_GUNMETAL
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
/obj/structure/plasticflaps //HOW DO YOU CALL THOSE THINGS ANYWAY
|
||||
name = "\improper plastic flaps"
|
||||
desc = "Completely impassable - or are they?"
|
||||
icon = 'icons/obj/stationobjs.dmi' //Change this.
|
||||
icon_state = "plasticflaps"
|
||||
icon = 'icons/obj/structure/plasticflaps.dmi'
|
||||
icon_state = "plasticflaps_preview"
|
||||
density = 0
|
||||
anchored = 1
|
||||
layer = 4
|
||||
explosion_resistance = 5
|
||||
build_amt = 4
|
||||
|
||||
color = COLOR_GRAY20 // ideally this would get_step() the material color from nearby walls but this works for now.
|
||||
atmos_canpass = CANPASS_PROC
|
||||
|
||||
var/manipulating = FALSE //Prevents queueing up a ton of deconstructs
|
||||
@@ -23,8 +23,18 @@
|
||||
/obj/structure/plasticflaps/Initialize()
|
||||
. = ..()
|
||||
material = SSmaterials.get_material_by_name(MATERIAL_PLASTIC)
|
||||
update_icon()
|
||||
|
||||
/obj/structure/plasticflaps/update_icon()
|
||||
. = ..()
|
||||
icon_state = "plasticflaps"
|
||||
var/image/plasticflaps_overlay = overlay_image(icon, "plasticflaps_overlay", null, RESET_COLOR)
|
||||
if(dir == WEST || dir == EAST)
|
||||
plasticflaps_overlay.pixel_y = -13
|
||||
add_overlay(plasticflaps_overlay)
|
||||
|
||||
/obj/structure/plasticflaps/Destroy()
|
||||
cut_overlays()
|
||||
if(airtight)
|
||||
clear_airtight()
|
||||
. = ..()
|
||||
@@ -112,4 +122,4 @@
|
||||
update_nearby_tiles()
|
||||
|
||||
/obj/structure/plasticflaps/airtight/CanPass(atom/A, turf/T)
|
||||
return 1//Blocks nothing except air
|
||||
return 1//Blocks nothing except air
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/obj/structure/railing
|
||||
name = "railing"
|
||||
desc = "A simple bar railing designed to protect against careless trespass."
|
||||
icon = 'icons/obj/railing.dmi'
|
||||
icon = 'icons/obj/structure/blocker/railing_basic.dmi'
|
||||
icon_state = "railing0-1"
|
||||
density = TRUE
|
||||
throwpass = TRUE
|
||||
@@ -144,6 +144,10 @@
|
||||
/obj/structure/railing/update_icon(var/update_neighbors = TRUE)
|
||||
NeighborsCheck(update_neighbors)
|
||||
overlays.Cut()
|
||||
if(dir == SOUTH)
|
||||
layer = ABOVE_MOB_LAYER
|
||||
else
|
||||
layer = initial(layer)
|
||||
if(!neighbor_status || !anchored)
|
||||
icon_state = "railing0-[density]"
|
||||
else
|
||||
@@ -343,4 +347,4 @@
|
||||
|
||||
/obj/structure/railing/fence/New(var/newloc, var/material_key = MATERIAL_WOOD)
|
||||
material = material_key
|
||||
..(newloc)
|
||||
..(newloc)
|
||||
|
||||
@@ -21,17 +21,15 @@
|
||||
desc_info = "Click and drag yourself (or anyone) to this to buckle in. Click on this with an empty hand to undo the buckles.<br>\
|
||||
Anyone with restraints, such as handcuffs, will not be able to unbuckle themselves. They must use the Resist button, or verb, to break free of \
|
||||
the buckles, instead. \ To unbuckle people as a stationbound, click the bed with an empty gripper."
|
||||
icon = 'icons/obj/furniture.dmi'
|
||||
icon = 'icons/obj/structure/beds.dmi'
|
||||
icon_state = "bed"
|
||||
anchored = TRUE
|
||||
buckle_dir = SOUTH
|
||||
buckle_lying = 1
|
||||
build_amt = 2
|
||||
var/material/padding_material
|
||||
var/override_material_color = FALSE //If set, material colour won't override the colour.
|
||||
|
||||
var/base_icon = "bed"
|
||||
var/material_alteration = MATERIAL_ALTERATION_ALL
|
||||
var/buckling_sound = 'sound/effects/buckle.ogg'
|
||||
|
||||
var/painted_colour // Used for paint gun and preset colours. I know this name sucks.
|
||||
@@ -96,7 +94,7 @@
|
||||
cache_key += "-[cache_type]"
|
||||
if(painted_colour && apply_painted_colour)
|
||||
cache_key += "-[painted_colour]"
|
||||
else if(overlay_material.icon_colour && !override_material_color)
|
||||
else if(overlay_material.icon_colour)
|
||||
cache_key += "-[overlay_material.icon_colour]"
|
||||
if(!furniture_cache[cache_key]) // Check for cache key. Generate if image does not exist yet.
|
||||
var/cache_icon_state = cache_type ? "[base_icon]_[cache_type]" : "[base_icon]" // Modularized. Just change cache_type when calling the proc if you ever wanted to add a different overlay. Not like you'd need to.
|
||||
@@ -104,7 +102,7 @@
|
||||
if(material_alteration & MATERIAL_ALTERATION_COLOR)
|
||||
if(painted_colour && apply_painted_colour) // apply_painted_color, when you only want the padding to be painted, NOT the chair itself.
|
||||
I.color = painted_colour
|
||||
else if(overlay_material.icon_colour && !override_material_color) // Either that, or just fall back on the regular material color.
|
||||
else if(overlay_material.icon_colour) // Either that, or just fall back on the regular material color.
|
||||
I.color = overlay_material.icon_colour
|
||||
furniture_cache[cache_key] = I
|
||||
add_overlay(furniture_cache[cache_key]) // Use image from cache key!
|
||||
@@ -225,7 +223,7 @@
|
||||
W.pixel_x = 10 //make sure they reach the pillow
|
||||
W.pixel_y = -6
|
||||
|
||||
else if(istype(W, /obj/item/device/floor_painter))
|
||||
else if(istype(W, /obj/item/device/paint_sprayer))
|
||||
return
|
||||
|
||||
else if(!istype(W, /obj/item/bedsheet))
|
||||
@@ -251,7 +249,7 @@
|
||||
|
||||
/obj/structure/bed/Move()
|
||||
. = ..()
|
||||
if(makes_rolling_sound)
|
||||
if(makes_rolling_sound && has_gravity())
|
||||
playsound(src, 'sound/effects/roll.ogg', 50, 1)
|
||||
if(buckled && !istype(src, /obj/structure/bed/roller))
|
||||
var/mob/living/occupant = buckled
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
buckle_dir = 0
|
||||
buckle_lying = 0 //force people to sit up in chairs when buckled_to
|
||||
obj_flags = OBJ_FLAG_ROTATABLE_ANCHORED
|
||||
held_item = /obj/item/material/stool/chair/
|
||||
held_item = /obj/item/material/stool/chair
|
||||
|
||||
/obj/structure/bed/stool/chair/Initialize()
|
||||
. = ..()
|
||||
@@ -55,6 +55,16 @@
|
||||
return FALSE
|
||||
return ..()
|
||||
|
||||
/obj/structure/bed/stool/chair/fancy
|
||||
name = "fancy chair"
|
||||
desc = "The armrests give you a signature feeling of superiority."
|
||||
icon_state = "chair_fancy"
|
||||
held_item = /obj/item/material/stool/chair/fancy
|
||||
|
||||
/obj/structure/bed/stool/chair/padded
|
||||
name = "comfy chair"
|
||||
desc = "It looks comfy, and the cushions sound just like old man pants!"
|
||||
|
||||
/obj/structure/bed/stool/chair/padded/brown/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_LEATHER)
|
||||
|
||||
@@ -91,172 +101,10 @@
|
||||
/obj/structure/bed/stool/chair/padded/violet/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_VIOLET)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa
|
||||
name = "sofa"
|
||||
desc = "A sofa, how nice!"
|
||||
icon_state = "sofamiddle_preview"
|
||||
base_icon = "sofamiddle"
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/brown/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_LEATHER)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/black/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_DARK_GRAY)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/beige/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_BEIGE)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/red/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CARPET)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/orange/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_ORANGE)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/yellow/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_YELLOW)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/green/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_GREEN)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/lime/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_LIME)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/blue/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_BLUE)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/teal/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_TEAL)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/purple/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_PURPLE)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/violet/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_VIOLET)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/left
|
||||
icon_state = "sofaend_left_preview"
|
||||
base_icon = "sofaend_left"
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/left/brown/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_LEATHER)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/left/black/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_DARK_GRAY)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/left/beige/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_BEIGE)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/left/red/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CARPET)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/left/orange/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_ORANGE)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/left/yellow/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_YELLOW)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/left/green/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_GREEN)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/left/lime/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_LIME)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/left/blue/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_BLUE)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/left/teal/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_TEAL)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/left/purple/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_PURPLE)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/left/violet/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_VIOLET)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/right
|
||||
icon_state = "sofaend_right_preview"
|
||||
base_icon = "sofaend_right"
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/right/brown/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_LEATHER)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/right/black/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_DARK_GRAY)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/right/beige/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_BEIGE)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/right/red/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CARPET)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/right/orange/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_ORANGE)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/right/yellow/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_YELLOW)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/right/green/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_GREEN)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/right/lime/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_LIME)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/right/blue/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_BLUE)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/right/teal/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_TEAL)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/right/purple/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_PURPLE)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/right/violet/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_VIOLET)
|
||||
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/corner
|
||||
icon_state = "sofacorner_preview"
|
||||
base_icon = "sofacorner"
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/corner/brown/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_LEATHER)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/corner/black/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_DARK_GRAY)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/corner/beige/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_BEIGE)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/corner/red/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CARPET)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/corner/orange/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_ORANGE)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/corner/yellow/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_YELLOW)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/corner/green/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_GREEN)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/corner/lime/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_LIME)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/corner/blue/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_BLUE)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/corner/teal/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_TEAL)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/corner/purple/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_PURPLE)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/corner/violet/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_VIOLET)
|
||||
|
||||
|
||||
/obj/structure/bed/stool/chair/office // For the love of god, don't use this.
|
||||
name = "office chair"
|
||||
desc = "The propulsion of any lazy office worker, it has wheels."
|
||||
icon_state = null
|
||||
material_alteration = MATERIAL_ALTERATION_DESC
|
||||
makes_rolling_sound = TRUE
|
||||
anchored = FALSE
|
||||
@@ -267,40 +115,40 @@
|
||||
can_pad = FALSE
|
||||
|
||||
/obj/structure/bed/stool/chair/office/light
|
||||
icon_state = "officechair_white_preview"
|
||||
icon_state = "officechair_white"
|
||||
base_icon = "officechair_white"
|
||||
|
||||
/obj/structure/bed/stool/chair/office/dark
|
||||
icon_state = "officechair_dark_preview"
|
||||
icon_state = "officechair_dark"
|
||||
base_icon = "officechair_dark"
|
||||
|
||||
/obj/structure/bed/stool/chair/office/bridge
|
||||
name = "command chair"
|
||||
desc = "It exudes authority... and looks about as comfortable as a brick."
|
||||
icon_state = "bridge_preview"
|
||||
icon_state = "bridge"
|
||||
base_icon = "bridge"
|
||||
anchored = TRUE
|
||||
|
||||
/obj/structure/bed/stool/chair/office/bridge/legion
|
||||
name = "legion pilot seat"
|
||||
desc = "A comfortable seat for a pilot."
|
||||
icon_state = "bridge_legion_preview"
|
||||
icon_state = "bridge_legion"
|
||||
base_icon = "bridge_legion"
|
||||
|
||||
/obj/structure/bed/stool/chair/office/bridge/generic
|
||||
icon_state = "bridge_generic_preview"
|
||||
icon_state = "bridge_generic"
|
||||
base_icon = "bridge_generic"
|
||||
|
||||
/obj/structure/bed/stool/chair/office/bridge/pilot
|
||||
name = "pilot seat"
|
||||
desc = "A comfortable seat for a pilot."
|
||||
icon_state = "pilot_preview"
|
||||
icon_state = "pilot"
|
||||
base_icon = "pilot"
|
||||
|
||||
/obj/structure/bed/stool/chair/office/hover
|
||||
name = "hoverchair"
|
||||
desc = "Adjusts itself to the sitter's weight resulting in a most comfortable sitting experience. Like floating on a cloud."
|
||||
icon_state = "hover_chair_preview"
|
||||
icon_state = "hover_chair"
|
||||
base_icon = "hover_chair"
|
||||
makes_rolling_sound = FALSE
|
||||
can_dismantle = FALSE
|
||||
@@ -312,21 +160,34 @@
|
||||
set_light(1,1,LIGHT_COLOR_CYAN)
|
||||
|
||||
/obj/structure/bed/stool/chair/office/hover/command
|
||||
icon_state = "hover_command_preview"
|
||||
icon_state = "hover_command"
|
||||
base_icon = "hover_command"
|
||||
|
||||
// Chair types
|
||||
/obj/structure/bed/stool/chair/plastic
|
||||
name = "chair"
|
||||
desc = "The monobloc chair. You'll have to take it, whether you like it or not."
|
||||
icon_state = "plastic_chair"
|
||||
base_icon = "plastic_chair"
|
||||
material_alteration = MATERIAL_ALTERATION_NAME || MATERIAL_ALTERATION_DESC
|
||||
held_item = /obj/item/material/stool/chair/plastic
|
||||
can_pad = FALSE
|
||||
anchored = FALSE
|
||||
|
||||
/obj/structure/bed/stool/chair/plastic/New(var/newloc)
|
||||
..(newloc, MATERIAL_PLASTIC)
|
||||
|
||||
/obj/structure/bed/stool/chair/plastic/post_buckle(atom/movable/MA) //you do not want to see an angry spaceman speeding while holding dearly onto it
|
||||
. = ..()
|
||||
if(MA == buckled)
|
||||
anchored = TRUE
|
||||
else
|
||||
anchored = FALSE
|
||||
|
||||
/obj/structure/bed/stool/chair/wood
|
||||
name = "classic chair"
|
||||
desc = "Old is never too old to not be in fashion."
|
||||
icon_state = "wooden_chair_preview"
|
||||
icon_state = "wooden_chair"
|
||||
base_icon = "wooden_chair"
|
||||
material_alteration = MATERIAL_ALTERATION_NAME || MATERIAL_ALTERATION_DESC
|
||||
build_amt = 3
|
||||
held_item = /obj/item/material/stool/chair/wood
|
||||
can_pad = FALSE
|
||||
@@ -336,7 +197,7 @@
|
||||
|
||||
/obj/structure/bed/stool/chair/wood/wings
|
||||
name = "winged chair"
|
||||
icon_state = "wooden_chair_wings_preview"
|
||||
icon_state = "wooden_chair_wings"
|
||||
base_icon = "wooden_chair_wings"
|
||||
held_item = /obj/item/material/stool/chair/wood/wings
|
||||
|
||||
@@ -346,7 +207,7 @@
|
||||
|
||||
/obj/structure/bed/stool/chair/shuttle
|
||||
name = "shuttle chair"
|
||||
icon_state = "shuttlechair_preview"
|
||||
icon_state = "shuttlechair"
|
||||
base_icon = "shuttlechair"
|
||||
buckling_sound = 'sound/effects/metal_close.ogg'
|
||||
material_alteration = MATERIAL_ALTERATION_NAME || MATERIAL_ALTERATION_DESC
|
||||
@@ -377,7 +238,6 @@
|
||||
held_item = null
|
||||
desc = "A heavy set of belts and buckles, completed by a hinging arm mechanism that surrounds the occupant. Perfect for flying shuttles."
|
||||
icon = 'icons/obj/spaceship/cockpit_chair.dmi'
|
||||
override_material_color = TRUE
|
||||
|
||||
/obj/structure/bed/stool/chair/cockpit/CanPass(atom/movable/mover, turf/target, height, air_group)
|
||||
return TRUE
|
||||
@@ -412,15 +272,17 @@
|
||||
/obj/structure/bed/stool/chair/folding
|
||||
name = "folding chair"
|
||||
desc = "Temporary seating perfect for your next office party and/or wrestling match."
|
||||
icon_state = "folding_chair_preview"
|
||||
icon_state = "folding_chair"
|
||||
base_icon = "folding_chair"
|
||||
held_item = /obj/item/material/stool/chair/folding
|
||||
|
||||
// Chair Items
|
||||
|
||||
/obj/item/material/stool/chair
|
||||
name = "chair"
|
||||
desc = "Bar brawl essential. Now all that's missing is a ragtime piano."
|
||||
desc_info = "Click it while in hand to right it."
|
||||
icon = 'icons/obj/furniture.dmi'
|
||||
desc_info = "Click it while in-hand to right it."
|
||||
icon = 'icons/obj/structure/chairs.dmi'
|
||||
icon_state = "chair_item"
|
||||
item_state = "chair"
|
||||
base_icon = "chair"
|
||||
@@ -432,6 +294,14 @@
|
||||
force_divisor = 0.5
|
||||
origin_type = /obj/structure/bed/stool/chair
|
||||
|
||||
/obj/item/material/stool/chair/fancy
|
||||
name = "fancy chair"
|
||||
desc = "Meeting brawl essential. Now all that's missing is corporate ukulele."
|
||||
icon_state = "chair_fancy_item"
|
||||
item_state = "chair_fancy"
|
||||
base_icon = "chair_fancy"
|
||||
origin_type = /obj/structure/bed/stool/chair/fancy
|
||||
|
||||
// Because wood chairs are snowflake sprites.
|
||||
/obj/item/material/stool/chair/wood
|
||||
icon_state = "wooden_chair_item"
|
||||
@@ -452,6 +322,19 @@
|
||||
base_icon = "folding_chair"
|
||||
origin_type = /obj/structure/bed/stool/chair/folding
|
||||
|
||||
/obj/item/material/stool/chair/plastic
|
||||
icon_state = "plastic_chair_item"
|
||||
item_state = "plastic_chair"
|
||||
base_icon = "plastic_chair"
|
||||
origin_type = /obj/structure/bed/stool/chair/plastic
|
||||
|
||||
/obj/item/material/stool/chair/wood/wings
|
||||
icon_state = "wooden_chair_wings_item"
|
||||
item_state = "woodenchair"
|
||||
base_icon = "wooden_chair_wings"
|
||||
origin_type = /obj/structure/bed/stool/chair/wood/wings
|
||||
|
||||
|
||||
//Maybe if you tried hard, you could sit on these too.
|
||||
/obj/structure/bed/handrail
|
||||
name = "handrail"
|
||||
@@ -459,8 +342,8 @@
|
||||
icon = 'icons/obj/handrail.dmi'
|
||||
icon_state = "handrail"
|
||||
base_icon = "handrail"
|
||||
material_alteration = MATERIAL_ALTERATION_NONE
|
||||
buckle_dir = FALSE
|
||||
buckle_lying = FALSE
|
||||
can_dismantle = FALSE
|
||||
override_material_color = TRUE
|
||||
obj_flags = OBJ_FLAG_MOVES_UNSUPPORTED
|
||||
|
||||
@@ -0,0 +1,225 @@
|
||||
/obj/structure/bed/stool/chair/sofa
|
||||
name = "sofa"
|
||||
desc = "An old design, but it still does the job of being a sofa."
|
||||
icon = 'icons/obj/structure/sofa.dmi'
|
||||
icon_state = "sofa_middle"
|
||||
base_icon = "sofa_middle"
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/brown/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_LEATHER)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/black/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_DARK_GRAY)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/beige/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_BEIGE)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/red/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CARPET)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/orange/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_ORANGE)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/yellow/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_YELLOW)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/green/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_GREEN)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/lime/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_LIME)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/blue/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_BLUE)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/teal/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_TEAL)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/purple/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_PURPLE)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/violet/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_VIOLET)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/left
|
||||
icon_state = "sofa_end_left"
|
||||
base_icon = "sofa_end_left"
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/left/brown/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_LEATHER)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/left/black/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_DARK_GRAY)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/left/beige/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_BEIGE)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/left/red/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CARPET)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/left/orange/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_ORANGE)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/left/yellow/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_YELLOW)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/left/green/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_GREEN)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/left/lime/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_LIME)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/left/blue/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_BLUE)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/left/teal/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_TEAL)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/left/purple/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_PURPLE)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/left/violet/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_VIOLET)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/right
|
||||
icon_state = "sofa_end_right"
|
||||
base_icon = "sofa_end_right"
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/right/brown/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_LEATHER)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/right/black/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_DARK_GRAY)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/right/beige/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_BEIGE)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/right/red/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CARPET)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/right/orange/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_ORANGE)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/right/yellow/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_YELLOW)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/right/green/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_GREEN)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/right/lime/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_LIME)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/right/blue/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_BLUE)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/right/teal/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_TEAL)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/right/purple/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_PURPLE)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/right/violet/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_VIOLET)
|
||||
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/corner
|
||||
name = "sofa corner"
|
||||
icon_state = "sofa_cursed"
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/corner/concave
|
||||
icon_state = "sofa_corner_in"
|
||||
base_icon = "sofa_corner_in"
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/corner/concave/brown/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_LEATHER)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/corner/concave/black/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_DARK_GRAY)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/corner/concave/beige/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_BEIGE)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/corner/concave/red/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CARPET)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/corner/concave/orange/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_ORANGE)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/corner/concave/yellow/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_YELLOW)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/corner/concave/green/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_GREEN)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/corner/concave/lime/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_LIME)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/corner/concave/blue/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_BLUE)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/corner/concave/teal/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_TEAL)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/corner/concave/purple/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_PURPLE)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/corner/concave/violet/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_VIOLET)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/corner/convex
|
||||
icon_state = "sofa_corner_in"
|
||||
base_icon = "sofa_corner_in"
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/corner/convex/brown/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_LEATHER)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/corner/convex/black/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_DARK_GRAY)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/corner/convex/beige/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_BEIGE)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/corner/convex/red/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CARPET)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/corner/convex/orange/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_ORANGE)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/corner/convex/yellow/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_YELLOW)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/corner/convex/green/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_GREEN)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/corner/convex/lime/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_LIME)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/corner/convex/blue/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_BLUE)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/corner/convex/teal/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_TEAL)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/corner/convex/purple/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_PURPLE)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/corner/convex/violet/New(var/newloc)
|
||||
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_VIOLET)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/pew
|
||||
name = "pew"
|
||||
desc = "A long, simple bench with a backboard, commonly found in places of worship, courtrooms and so on. Not known for being particularly comfortable."
|
||||
icon_state = "pewmiddle"
|
||||
base_icon = "pewmiddle"
|
||||
build_amt = 3
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/pew/New(var/newloc)
|
||||
..(newloc, MATERIAL_WOOD)
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/pew/left
|
||||
icon_state = "pewend_left"
|
||||
base_icon = "pewend_left"
|
||||
|
||||
/obj/structure/bed/stool/chair/sofa/pew/right
|
||||
icon_state = "pewend_right"
|
||||
base_icon = "pewend_right"
|
||||
@@ -1,6 +1,7 @@
|
||||
/obj/structure/bed/stool
|
||||
name = "stool"
|
||||
desc = "Apply butt."
|
||||
icon = 'icons/obj/structure/chairs.dmi'
|
||||
icon_state = "stool_preview"
|
||||
base_icon = "stool"
|
||||
anchored = FALSE
|
||||
@@ -153,8 +154,24 @@
|
||||
..(newloc, MATERIAL_SHUTTLE_SKRELL)
|
||||
set_light(1,1,LIGHT_COLOR_CYAN)
|
||||
|
||||
/obj/structure/bed/chair/stool/bamboo
|
||||
name = "bamboo stool"
|
||||
desc = "A makeshift bamboo stool with a rustic look."
|
||||
icon_state = "bamboo_stool_item"
|
||||
item_state = "bamboo_stool"
|
||||
base_icon = "bamboo_stool"
|
||||
icon_state = "bamboo_stool"
|
||||
material_alteration = MATERIAL_ALTERATION_NAME || MATERIAL_ALTERATION_DESC
|
||||
held_item = /obj/item/material/stool/bamboo
|
||||
can_pad = FALSE
|
||||
|
||||
/obj/structure/bed/stool/bamboo/New(var/newloc)
|
||||
..(newloc, MATERIAL_BAMBOO)
|
||||
|
||||
// Stool Items
|
||||
|
||||
/obj/item/material/stool
|
||||
icon = 'icons/obj/furniture.dmi'
|
||||
icon = 'icons/obj/structure/chairs.dmi'
|
||||
item_icons = list(
|
||||
slot_l_hand_str = 'icons/mob/items/lefthand_chairs.dmi',
|
||||
slot_r_hand_str = 'icons/mob/items/righthand_chairs.dmi',
|
||||
@@ -300,6 +317,12 @@
|
||||
base_icon = "hover_stool"
|
||||
origin_type = /obj/structure/bed/stool/hover
|
||||
|
||||
/obj/item/material/stool/bamboo
|
||||
icon_state = "bamboo_stool_item"
|
||||
item_state = "bamboo_stool"
|
||||
base_icon = "bamboo_stool"
|
||||
origin_type = /obj/structure/bed/stool/bamboo
|
||||
|
||||
/obj/structure/flora/log_bench
|
||||
name = "log bench"
|
||||
desc = "Apply butt."
|
||||
|
||||
@@ -7,10 +7,12 @@
|
||||
/obj/structure/window
|
||||
name = "glass pane"
|
||||
desc = "A glass pane."
|
||||
icon = 'icons/obj/structures.dmi'
|
||||
icon = 'icons/obj/structure/window/window_panes.dmi'
|
||||
icon_state = "pane"
|
||||
alpha = 196
|
||||
density = TRUE
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
layer = 3.2 // Just above doors.
|
||||
layer = WINDOW_PANE_LAYER
|
||||
anchored = TRUE
|
||||
flags = ON_BORDER
|
||||
obj_flags = OBJ_FLAG_ROTATABLE|OBJ_FLAG_MOVES_UNSUPPORTED
|
||||
@@ -27,6 +29,7 @@
|
||||
var/glasstype = null // Set this in subtypes. Null is assumed strange or otherwise impossible to dismantle, such as for shuttle glass.
|
||||
var/silicate = 0 // number of units of silicate
|
||||
var/base_frame = null
|
||||
var/full = FALSE
|
||||
|
||||
atmos_canpass = CANPASS_PROC
|
||||
|
||||
@@ -57,6 +60,11 @@
|
||||
queue_smooth_neighbors(src)
|
||||
|
||||
/obj/structure/window/update_icon()
|
||||
if(!full)
|
||||
if(dir == SOUTH)
|
||||
layer = ABOVE_MOB_LAYER
|
||||
else
|
||||
layer = WINDOW_PANE_LAYER
|
||||
queue_smooth(src)
|
||||
|
||||
/obj/structure/window/proc/take_damage(var/damage = 0, var/sound_effect = 1, message = TRUE)
|
||||
@@ -346,9 +354,8 @@
|
||||
|
||||
/obj/structure/window/Initialize(mapload, start_dir = null, constructed = 0)
|
||||
. = ..()
|
||||
|
||||
if (constructed)
|
||||
anchored = 0
|
||||
if(!full && constructed)
|
||||
anchored = FALSE
|
||||
|
||||
if (!mapload && constructed)
|
||||
state = 0
|
||||
@@ -362,6 +369,7 @@
|
||||
|
||||
update_nearby_tiles(need_rebuild=1)
|
||||
update_nearby_icons()
|
||||
update_icon()
|
||||
|
||||
/obj/structure/window/Destroy()
|
||||
density = 0
|
||||
@@ -373,7 +381,6 @@
|
||||
loc = location
|
||||
return ..()
|
||||
|
||||
|
||||
/obj/structure/window/Move()
|
||||
var/ini_dir = dir
|
||||
update_nearby_tiles(need_rebuild=1)
|
||||
@@ -502,8 +509,7 @@
|
||||
/obj/structure/window/borosilicate
|
||||
name = "borosilicate glass pane"
|
||||
desc = "A borosilicate alloy window. It seems to be quite strong."
|
||||
basestate = "phoronwindow"
|
||||
icon_state = "phoronwindow"
|
||||
color = GLASS_COLOR_PHORON
|
||||
shardtype = /obj/item/material/shard/phoron
|
||||
glasstype = /obj/item/stack/material/glass/phoronglass
|
||||
maximal_heat = T0C + 2000
|
||||
@@ -513,8 +519,7 @@
|
||||
/obj/structure/window/borosilicate/reinforced
|
||||
name = "reinforced borosilicate glass pane"
|
||||
desc = "A borosilicate alloy window, with rods supporting it. It seems to be very strong."
|
||||
basestate = "phoronrwindow"
|
||||
icon_state = "phoronrwindow"
|
||||
color = GLASS_COLOR_PHORON_R
|
||||
glasstype = /obj/item/stack/material/glass/phoronrglass
|
||||
reinf = TRUE
|
||||
maximal_heat = T0C + 4000
|
||||
@@ -523,8 +528,7 @@
|
||||
/obj/structure/window/borosilicate/reinforced/skrell
|
||||
name = "advanced borosilicate alloy window"
|
||||
desc = "A window made out of a higly advanced borosilicate alloy. It seems to be extremely strong."
|
||||
basestate = "phoronwindow"
|
||||
icon_state = "phoronwindow"
|
||||
color = GLASS_COLOR_PHORON
|
||||
maxhealth = 250
|
||||
|
||||
/********** Shuttle Windows **********/
|
||||
@@ -568,19 +572,31 @@
|
||||
/obj/structure/window/shuttle/scc_space_ship
|
||||
name = "advanced borosilicate alloy window"
|
||||
desc = "It looks extremely strong. Might take many good hits to crack it."
|
||||
icon = 'icons/obj/smooth/scc_space_ship.dmi'
|
||||
icon_state = "scc_space_ship"
|
||||
icon = 'icons/turf/smooth/scc_ship/scc_ship_windows.dmi'
|
||||
icon_state = "map_window"
|
||||
health = 500
|
||||
maxhealth = 500
|
||||
smooth = SMOOTH_MORE | SMOOTH_DIAGONAL
|
||||
alpha = 255
|
||||
smooth = SMOOTH_MORE
|
||||
canSmoothWith = list(
|
||||
/obj/structure/window/shuttle/scc_space_ship,
|
||||
/turf/simulated/wall/shuttle/scc_space_ship
|
||||
)
|
||||
blend_overlay = "-wall"
|
||||
attach_overlay = "attach"
|
||||
can_blend_with = list(
|
||||
/turf/simulated/wall/shuttle/scc_space_ship,
|
||||
/obj/structure/window/shuttle/scc_space_ship
|
||||
)
|
||||
|
||||
|
||||
/obj/structure/window/shuttle/scc_space_ship/cardinal
|
||||
smooth = SMOOTH_MORE
|
||||
|
||||
/obj/structure/window/shuttle/scc_space_ship/cardinal_smooth(adjacencies, var/list/dir_mods)
|
||||
dir_mods = handle_blending(adjacencies, dir_mods)
|
||||
return ..(adjacencies, dir_mods)
|
||||
|
||||
/obj/structure/window/shuttle/scc
|
||||
icon = 'icons/obj/smooth/scc_shuttle_window.dmi'
|
||||
health = 160
|
||||
@@ -604,68 +620,35 @@
|
||||
maxhealth = 28 // Two glass panes worth of health, since that's the minimum you need to break through to get to the other side.
|
||||
glasstype = /obj/item/stack/material/glass
|
||||
shardtype = /obj/item/material/shard
|
||||
full = TRUE
|
||||
layer = 2.99
|
||||
base_frame = /obj/structure/window_frame
|
||||
smooth = SMOOTH_TRUE
|
||||
smooth = SMOOTH_MORE
|
||||
canSmoothWith = list(
|
||||
/turf/simulated/wall,
|
||||
/turf/simulated/wall/r_wall,
|
||||
/turf/unsimulated/wall/steel,
|
||||
/turf/unsimulated/wall/darkshuttlewall,
|
||||
/turf/unsimulated/wall/riveted,
|
||||
/obj/structure/window_frame,
|
||||
/obj/structure/window_frame/unanchored,
|
||||
/obj/structure/window_frame/empty,
|
||||
/obj/structure/window/full/reinforced,
|
||||
/obj/structure/window/full/reinforced/indestructible,
|
||||
/obj/structure/window/full/reinforced/polarized,
|
||||
/obj/structure/window/full/phoron/reinforced
|
||||
/obj/structure/window/full/reinforced/polarized/indestructible,
|
||||
/obj/structure/window/full/phoron/reinforced,
|
||||
/obj/structure/window/shuttle/scc_space_ship,
|
||||
/turf/simulated/wall/shuttle/scc_space_ship,
|
||||
/obj/machinery/door
|
||||
)
|
||||
blend_overlay = "wall"
|
||||
attach_overlay = "attach"
|
||||
can_blend_with = list(
|
||||
/turf/simulated/wall,
|
||||
/obj/machinery/door,
|
||||
/obj/structure/window_frame
|
||||
)
|
||||
|
||||
/obj/structure/window/full/cardinal_smooth(adjacencies, var/list/dir_mods)
|
||||
LAZYINITLIST(dir_mods)
|
||||
var/north_wall = FALSE
|
||||
var/east_wall = FALSE
|
||||
var/south_wall = FALSE
|
||||
var/west_wall = FALSE
|
||||
if(adjacencies & N_NORTH)
|
||||
var/turf/T = get_step(src, NORTH)
|
||||
if(iswall(T))
|
||||
dir_mods["[N_NORTH]"] = "-wall"
|
||||
north_wall = TRUE
|
||||
if(adjacencies & N_EAST)
|
||||
var/turf/T = get_step(src, EAST)
|
||||
if(iswall(T))
|
||||
dir_mods["[N_EAST]"] = "-wall"
|
||||
east_wall = TRUE
|
||||
if(adjacencies & N_SOUTH)
|
||||
var/turf/T = get_step(src, SOUTH)
|
||||
if(iswall(T))
|
||||
dir_mods["[N_SOUTH]"] = "-wall"
|
||||
south_wall = TRUE
|
||||
if(adjacencies & N_WEST)
|
||||
var/turf/T = get_step(src, WEST)
|
||||
if(iswall(T))
|
||||
dir_mods["[N_WEST]"] = "-wall"
|
||||
west_wall = TRUE
|
||||
if(((adjacencies & N_NORTH) && (adjacencies & N_WEST)) && (north_wall || west_wall))
|
||||
dir_mods["[N_NORTH][N_WEST]"] = "-n[north_wall ? "wall" : "win"]-w[west_wall ? "wall" : "win"]"
|
||||
if(((adjacencies & N_NORTH) && (adjacencies & N_EAST)) && (north_wall || east_wall))
|
||||
dir_mods["[N_NORTH][N_EAST]"] = "-n[north_wall ? "wall" : "win"]-e[east_wall ? "wall" : "win"]"
|
||||
if(((adjacencies & N_SOUTH) && (adjacencies & N_WEST)) && (south_wall || west_wall))
|
||||
dir_mods["[N_SOUTH][N_WEST]"] = "-s[south_wall ? "wall" : "win"]-w[west_wall ? "wall" : "win"]"
|
||||
if((adjacencies & N_SOUTH) && (adjacencies & N_EAST) && (south_wall || east_wall))
|
||||
dir_mods["[N_SOUTH][N_EAST]"] = "-s[south_wall ? "wall" : "win"]-e[east_wall ? "wall" : "win"]"
|
||||
return ..(adjacencies, dir_mods)
|
||||
|
||||
/obj/structure/window/full/Initialize(mapload, start_dir = null, constructed = 0)
|
||||
if (!mapload && constructed)
|
||||
state = 0
|
||||
|
||||
if (start_dir)
|
||||
set_dir(start_dir)
|
||||
|
||||
health = maxhealth
|
||||
|
||||
ini_dir = dir
|
||||
|
||||
update_nearby_tiles(need_rebuild=1)
|
||||
update_icon()
|
||||
update_nearby_icons()
|
||||
initialized = TRUE
|
||||
|
||||
return INITIALIZE_HINT_NORMAL
|
||||
|
||||
/obj/structure/window/full/Destroy()
|
||||
var/obj/structure/window_frame/WF = locate(/obj/structure/window_frame) in get_turf(src)
|
||||
@@ -783,7 +766,7 @@
|
||||
/obj/structure/window/full/reinforced
|
||||
name = "reinforced window"
|
||||
desc = "It looks rather strong. Might take a few good hits to shatter it."
|
||||
icon = 'icons/obj/smooth/full_window.dmi'
|
||||
icon = 'icons/obj/smooth/window/full_window.dmi'
|
||||
icon_state = "window_glass"
|
||||
basestate = "window_glass"
|
||||
maxhealth = 80 // Two reinforced panes worth of health, since that's the minimum you need to break through to get to the other side.
|
||||
@@ -792,14 +775,17 @@
|
||||
glasstype = /obj/item/stack/material/glass/reinforced
|
||||
layer = 2.99
|
||||
base_frame = /obj/structure/window_frame
|
||||
smooth = SMOOTH_TRUE
|
||||
canSmoothWith = list(
|
||||
/obj/structure/window/full/reinforced,
|
||||
/obj/structure/window/full/reinforced/indestructible,
|
||||
/obj/structure/window/full/reinforced/polarized,
|
||||
/obj/structure/window/full/reinforced/polarized/indestructible,
|
||||
/obj/structure/window/full/phoron/reinforced
|
||||
)
|
||||
smooth = SMOOTH_MORE
|
||||
|
||||
/obj/structure/window/full/cardinal_smooth(adjacencies, var/list/dir_mods)
|
||||
dir_mods = handle_blending(adjacencies, dir_mods)
|
||||
return ..(adjacencies, dir_mods)
|
||||
|
||||
/obj/structure/window_frame/proc/update_nearby_icons()
|
||||
queue_smooth_neighbors(src)
|
||||
|
||||
/obj/structure/window_frame/update_icon()
|
||||
queue_smooth(src)
|
||||
|
||||
// Indestructible Reinforced Window
|
||||
/obj/structure/window/full/reinforced/indestructible/attack_hand()
|
||||
@@ -853,11 +839,27 @@
|
||||
/obj/structure/window/full/reinforced/polarized/indestructible/shatter()
|
||||
return
|
||||
|
||||
//Shuttle exterior window
|
||||
/obj/structure/window/full/reinforced/shuttle
|
||||
icon = 'icons/obj/smooth/window/shuttle_window_dark.dmi'
|
||||
color = "#006eff"
|
||||
icon_state = "window_glass"
|
||||
basestate = "window_glass"
|
||||
|
||||
/obj/structure/window/full/reinforced/shuttle/red
|
||||
color = "#ff0000"
|
||||
|
||||
/obj/structure/window/full/reinforced/shuttle/green
|
||||
color = "#00ff40"
|
||||
|
||||
/obj/structure/window/full/reinforced/shuttle/black
|
||||
color = "#150b41"
|
||||
|
||||
// Borosilicate Window (I.e. Phoron Window)
|
||||
/obj/structure/window/full/phoron
|
||||
name = "borosilicate window"
|
||||
desc = "You aren't supposed to see this."
|
||||
icon = 'icons/obj/smooth/full_window_phoron.dmi'
|
||||
icon = 'icons/obj/smooth/window/full_window_phoron.dmi'
|
||||
icon_state = "window_glass"
|
||||
basestate = "window_glass"
|
||||
glasstype = /obj/item/stack/material/glass/phoronglass
|
||||
|
||||
Reference in New Issue
Block a user