From 199b6954bcaca19089526bceb81a141dad68dfbc Mon Sep 17 00:00:00 2001 From: MrDas <62486730+Das15@users.noreply.github.com> Date: Thu, 19 Oct 2023 21:42:12 +0200 Subject: [PATCH] Allows deconstruction of wide airlocks and cleans up the airlock code a bit (#4690) # About the pull request Allows disassembly of wide airlocks and fixes the bugs which... caused it to be disabled in the first place. Since moving multi-tile objects is a bit... inconsistent at best, unwrenching of wide airlock assemblies is disabled. Also renamed a lot of single-letter variables and added sprites to wide airlock assembly and generic solid wide airlock since for some reason I couldn't find it. And fixes #4638. # Explain why it's good for the game Inconsistent behavior bad. Unable to disassemble wide airlocks bad. Able to disassemble all airlocks good. # Testing Photographs and Procedure
Screenshots & Videos https://media.discordapp.net/attachments/703724778825187332/1163117987943944242/wide_airlock.mp4 https://cdn.discordapp.com/attachments/703724778825187332/1163151828251324536/wide_airlock_solid_v2.mp4
# Changelog :cl: MrDas fix: You can now disassemble wide airlocks. (You can't unwrench them though) spellcheck: Fixed a few typos in airlock assembly. imageadd: Added wide airlock assembly and generic solid wide airlock sprites. /:cl: --- code/game/machinery/doors/airlock.dm | 82 +++++----- code/game/machinery/doors/multi_tile.dm | 50 +++--- .../objects/structures/airlock_assembly.dm | 151 +++++++++--------- .../obj/structures/doors/2x1generic_solid.dmi | Bin 0 -> 15237 bytes .../structures/doors/airlock_assembly2x1.dmi | Bin 24741 -> 29549 bytes 5 files changed, 146 insertions(+), 137 deletions(-) create mode 100644 icons/obj/structures/doors/2x1generic_solid.dmi diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index dc28cdca6f5c..b7257ff4e7d3 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -550,13 +550,13 @@ GLOBAL_LIST_INIT(airlock_wire_descriptions, list( add_fingerprint(usr) update_icon() -/obj/structure/machinery/door/airlock/attackby(obj/item/C, mob/user) - if(SEND_SIGNAL(C, COMSIG_ITEM_ATTACK_AIRLOCK, src, user) & COMPONENT_CANCEL_AIRLOCK_ATTACK) +/obj/structure/machinery/door/airlock/attackby(obj/item/attacking_item, mob/user) + if(SEND_SIGNAL(attacking_item, COMSIG_ITEM_ATTACK_AIRLOCK, src, user) & COMPONENT_CANCEL_AIRLOCK_ATTACK) return - if(istype(C, /obj/item/clothing/mask/cigarette)) + if(istype(attacking_item, /obj/item/clothing/mask/cigarette)) if(isElectrified()) - var/obj/item/clothing/mask/cigarette/L = C + var/obj/item/clothing/mask/cigarette/L = attacking_item L.light(SPAN_NOTICE("[user] lights their [L] on an electrical arc from the [src]")) return @@ -567,7 +567,7 @@ GLOBAL_LIST_INIT(airlock_wire_descriptions, list( add_fingerprint(user) - if(istype(C, /obj/item/weapon/zombie_claws) && (welded || locked)) + if(istype(attacking_item, /obj/item/weapon/zombie_claws) && (welded || locked)) user.visible_message(SPAN_NOTICE("[user] starts tearing into the door on the [src]!"), \ SPAN_NOTICE("You start prying your hand into the gaps of the door with your fingers... This will take about 30 seconds."), \ SPAN_NOTICE("You hear tearing noises!")) @@ -584,8 +584,8 @@ GLOBAL_LIST_INIT(airlock_wire_descriptions, list( return - if((iswelder(C) && !operating && density)) - var/obj/item/tool/weldingtool/W = C + if((iswelder(attacking_item) && !operating && density)) + var/obj/item/tool/weldingtool/W = attacking_item var/weldtime = 50 if(!HAS_TRAIT(W, TRAIT_TOOL_BLOWTORCH)) weldtime = 70 @@ -609,7 +609,7 @@ GLOBAL_LIST_INIT(airlock_wire_descriptions, list( update_icon() return - else if(HAS_TRAIT(C, TRAIT_TOOL_SCREWDRIVER)) + else if(HAS_TRAIT(attacking_item, TRAIT_TOOL_SCREWDRIVER)) if(no_panel) to_chat(user, SPAN_WARNING("\The [src] has no panel to open!")) return @@ -619,17 +619,17 @@ GLOBAL_LIST_INIT(airlock_wire_descriptions, list( update_icon() return - else if(HAS_TRAIT(C, TRAIT_TOOL_WIRECUTTERS)) + else if(HAS_TRAIT(attacking_item, TRAIT_TOOL_WIRECUTTERS)) return attack_hand(user) - else if(HAS_TRAIT(C, TRAIT_TOOL_MULTITOOL)) + else if(HAS_TRAIT(attacking_item, TRAIT_TOOL_MULTITOOL)) return attack_hand(user) - else if(isgun(C)) - var/obj/item/weapon/gun/G = C - for(var/slot in G.attachments) - if(istype(G.attachments[slot], /obj/item/attachable/bayonet)) - var/obj/item/attachable/bayonet/a_bayonet = G.attachments[slot] + else if(isgun(attacking_item)) + var/obj/item/weapon/gun/gun_item = attacking_item + for(var/slot in gun_item.attachments) + if(istype(gun_item.attachments[slot], /obj/item/attachable/bayonet)) + var/obj/item/attachable/bayonet/a_bayonet = gun_item.attachments[slot] if(arePowerSystemsOn()) to_chat(user, SPAN_WARNING("The airlock's motors resist your efforts to force it.")) else if(locked) @@ -647,50 +647,48 @@ GLOBAL_LIST_INIT(airlock_wire_descriptions, list( if(do_after(user, a_bayonet.pry_delay, INTERRUPT_ALL, BUSY_ICON_FRIENDLY)) close(1) - else if(C.pry_capable) - if(C.pry_capable == IS_PRY_CAPABLE_CROWBAR && panel_open && welded) + else if(attacking_item.pry_capable) + if(attacking_item.pry_capable == IS_PRY_CAPABLE_CROWBAR && panel_open && welded) if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) to_chat(user, SPAN_WARNING("You don't seem to know how to deconstruct machines.")) return - if(width > 1) - to_chat(user, SPAN_WARNING("Large doors seem impossible to disassemble.")) - return playsound(loc, 'sound/items/Crowbar.ogg', 25, 1) user.visible_message("[user] starts removing the electronics from the airlock assembly.", "You start removing electronics from the airlock assembly.") if(do_after(user, 40, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) to_chat(user, SPAN_NOTICE(" You removed the airlock electronics!")) - var/obj/structure/airlock_assembly/da = new assembly_type(loc) - if(istype(da, /obj/structure/airlock_assembly/multi_tile)) - da.setDir(dir) + var/obj/structure/airlock_assembly/doors_assembly = new assembly_type(loc) + if(istype(doors_assembly, /obj/structure/airlock_assembly/multi_tile)) + doors_assembly.setDir(dir) + doors_assembly.update_collision_box() - da.anchored = TRUE + doors_assembly.anchored = TRUE if(mineral) - da.glass = mineral + doors_assembly.glass = mineral //else if(glass) - else if(glass && !da.glass) - da.glass = 1 - da.state = 0 - da.created_name = name - da.update_icon() + else if(glass && !doors_assembly.glass) + doors_assembly.glass = TRUE + doors_assembly.state = 0 + doors_assembly.created_name = name + doors_assembly.update_icon() - var/obj/item/circuitboard/airlock/ae + var/obj/item/circuitboard/airlock/airlock_electronics if(!electronics) - ae = new/obj/item/circuitboard/airlock( loc ) + airlock_electronics = new/obj/item/circuitboard/airlock(loc) if(!req_access || !req_one_access) check_access() if(req_access.len) - ae.conf_access = req_access + airlock_electronics.conf_access = req_access else if(req_one_access.len) - ae.conf_access = req_one_access - ae.one_access = 1 + airlock_electronics.conf_access = req_one_access + airlock_electronics.one_access = TRUE else - ae = electronics + airlock_electronics = electronics electronics = null - ae.forceMove(loc) + airlock_electronics.forceMove(loc) if(operating == -1) - ae.fried = TRUE - ae.update_icon() + airlock_electronics.fried = TRUE + airlock_electronics.update_icon() operating = 0 msg_admin_niche("[key_name(user)] deconstructed [src] in [get_area(user)] ([user.loc.x],[user.loc.y],[user.loc.z])") @@ -698,7 +696,7 @@ GLOBAL_LIST_INIT(airlock_wire_descriptions, list( deconstruct() return - else if(arePowerSystemsOn() && C.pry_capable != IS_PRY_CAPABLE_FORCE) + else if(arePowerSystemsOn() && attacking_item.pry_capable != IS_PRY_CAPABLE_FORCE) to_chat(user, SPAN_WARNING("The airlock's motors resist your efforts to force it.")) else if(locked) @@ -707,7 +705,7 @@ GLOBAL_LIST_INIT(airlock_wire_descriptions, list( else if(welded) to_chat(user, SPAN_WARNING("The airlock is welded shut.")) - else if(C.pry_capable == IS_PRY_CAPABLE_FORCE) + else if(attacking_item.pry_capable == IS_PRY_CAPABLE_FORCE) return FALSE //handled by the item's afterattack else if(!operating) @@ -719,7 +717,7 @@ GLOBAL_LIST_INIT(airlock_wire_descriptions, list( return TRUE //no afterattack call - if(istype(C, /obj/item/large_shrapnel)) + if(istype(attacking_item, /obj/item/large_shrapnel)) return FALSE //trigger afterattack call else return ..() diff --git a/code/game/machinery/doors/multi_tile.dm b/code/game/machinery/doors/multi_tile.dm index 6123d56b8f23..65ecd67a438e 100644 --- a/code/game/machinery/doors/multi_tile.dm +++ b/code/game/machinery/doors/multi_tile.dm @@ -2,19 +2,25 @@ /obj/structure/machinery/door/airlock/multi_tile width = 2 damage_cap = 650 // Bigger = more endurable + assembly_type = /obj/structure/airlock_assembly/multi_tile /obj/structure/machinery/door/airlock/multi_tile/close() //Nasty as hell O(n^2) code but unfortunately necessary - for(var/turf/T in locs) - for(var/obj/vehicle/multitile/M in T) - if(M) return 0 + for(var/turf/turf_tile in locs) + for(var/obj/vehicle/multitile/vehicle_tile in turf_tile) + if(vehicle_tile) return 0 return ..() +/obj/structure/machinery/door/airlock/multi_tile/Initialize() + . = ..() + handle_multidoor() + update_icon() + /obj/structure/machinery/door/airlock/multi_tile/glass name = "Glass Airlock" icon = 'icons/obj/structures/doors/Door2x1glass.dmi' opacity = FALSE - glass = 1 + glass = TRUE assembly_type = /obj/structure/airlock_assembly/multi_tile /obj/structure/machinery/door/airlock/multi_tile/glass/colony @@ -25,7 +31,7 @@ name = "Security Airlock" icon = 'icons/obj/structures/doors/Door2x1security.dmi' opacity = FALSE - glass = 1 + glass = TRUE /obj/structure/machinery/door/airlock/multi_tile/security/colony req_access = null @@ -35,7 +41,7 @@ name = "Command Airlock" icon = 'icons/obj/structures/doors/Door2x1command.dmi' opacity = FALSE - glass = 1 + glass = TRUE /obj/structure/machinery/door/airlock/multi_tile/command/colony req_access = null @@ -45,7 +51,7 @@ name = "Medical Airlock" icon = 'icons/obj/structures/doors/Door2x1medbay.dmi' opacity = FALSE - glass = 1 + glass = TRUE /obj/structure/machinery/door/airlock/multi_tile/medical/colony req_access = null @@ -55,7 +61,7 @@ name = "Engineering Airlock" icon = 'icons/obj/structures/doors/Door2x1engine.dmi' opacity = FALSE - glass = 1 + glass = TRUE /obj/structure/machinery/door/airlock/multi_tile/engineering/colony req_access = null @@ -65,7 +71,7 @@ name = "Research Airlock" icon = 'icons/obj/structures/doors/Door2x1research.dmi' opacity = FALSE - glass = 1 + glass = TRUE req_one_access = list(ACCESS_MARINE_RESEARCH, ACCESS_WY_RESEARCH, ACCESS_WY_EXEC) /obj/structure/machinery/door/airlock/multi_tile/research/colony @@ -103,7 +109,7 @@ name = "Secure Airlock" icon = 'icons/obj/structures/doors/Door2x1_secure2_glass.dmi' opacity = FALSE - glass = 1 + glass = TRUE openspeed = 31 req_access = null @@ -141,10 +147,10 @@ . = ..() relativewall_neighbours() -/obj/structure/machinery/door/airlock/multi_tile/almayer/take_damage(dam, mob/M) - var/damage_check = max(0, damage + dam) - if(damage_check >= damage_cap && M && is_mainship_level(z)) - SSclues.create_print(get_turf(M), M, "The fingerprint contains bits of wire and metal specks.") +/obj/structure/machinery/door/airlock/multi_tile/almayer/take_damage(taken_damage, mob/damaging_mob) + var/damage_check = max(0, damage + taken_damage) + if(damage_check >= damage_cap && damaging_mob && is_mainship_level(z)) + SSclues.create_print(get_turf(damaging_mob), damaging_mob, "The fingerprint contains bits of wire and metal specks.") ..() /obj/structure/machinery/door/airlock/multi_tile/almayer/generic @@ -156,6 +162,11 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic/autoname autoname = TRUE +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic/solid + icon = 'icons/obj/structures/doors/2x1generic_solid.dmi' + opacity = TRUE + glass = FALSE + /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor name = "\improper Medical Airlock" icon = 'icons/obj/structures/doors/2x1medidoor.dmi' @@ -223,15 +234,10 @@ req_one_access = list(ACCESS_CIVILIAN_BRIG, ACCESS_CIVILIAN_COMMAND, ACCESS_WY_COLONIAL) /obj/structure/machinery/door/airlock/multi_tile/almayer/handle_multidoor() + . = ..() if(!(width > 1)) return //Bubblewrap update_filler_turfs() - if(dir in list(NORTH, SOUTH)) - bound_height = world.icon_size * width - bound_width = world.icon_size - else if(dir in list(EAST, WEST)) - bound_width = world.icon_size * width - bound_height = world.icon_size //We have to find these again since these doors are used on shuttles a lot so the turfs changes /obj/structure/machinery/door/airlock/multi_tile/almayer/proc/update_filler_turfs() @@ -427,7 +433,7 @@ /obj/structure/machinery/door/airlock/multi_tile/elevator/access icon = 'icons/obj/structures/doors/4x1_elevator_access.dmi' opacity = FALSE - glass = 1 + glass = TRUE /obj/structure/machinery/door/airlock/multi_tile/elevator/access/research name = "\improper Research Elevator Hatch" @@ -547,7 +553,7 @@ icon = 'icons/obj/structures/doors/prepdoor.dmi' req_one_access = list(ACCESS_MARINE_PREP, ACCESS_MARINE_DATABASE, ACCESS_MARINE_CARGO, ACCESS_MARINE_ALPHA, ACCESS_MARINE_BRAVO, ACCESS_MARINE_CHARLIE, ACCESS_MARINE_DELTA) opacity = FALSE - glass = 1 + glass = TRUE /obj/structure/machinery/door/airlock/multi_tile/almayer/marine/shared/alpha_bravo name = "\improper Alpha-Bravo Squads Preparations" diff --git a/code/game/objects/structures/airlock_assembly.dm b/code/game/objects/structures/airlock_assembly.dm index 0679e1287ff7..d9e55e868016 100644 --- a/code/game/objects/structures/airlock_assembly.dm +++ b/code/game/objects/structures/airlock_assembly.dm @@ -22,9 +22,11 @@ var/airlock_type = "generic" //the type path of the airlock once completed var/glass = AIRLOCK_NOGLASS // see defines var/created_name = null + /// Used for multitile assemblies + var/width = 1 + /obj/structure/airlock_assembly/Initialize(mapload, ...) . = ..() - update_icon() /obj/structure/airlock_assembly/get_examine_text(mob/user) @@ -35,23 +37,26 @@ switch(state) if(STATE_STANDARD) if(anchored) - helpmessage += "It looks like a [SPAN_HELPFUL("wrench")] will unsecure it. Insert a [SPAN_HELPFUL("airlock circuit")]." + var/temp = "" + if(width == 1) + temp += "It looks like a [SPAN_HELPFUL("wrench")] will unsecure it. " + helpmessage += "[temp]You can insert an [SPAN_HELPFUL("airlock circuit")]. " if(!glass) - helpmessage += "Insert some [SPAN_HELPFUL("glass sheets")] to add windows to it." + helpmessage += "Insert some [SPAN_HELPFUL("glass sheets")] to add windows to it. " else if(glass == AIRLOCK_GLASSIN) - helpmessage += "You can take out the windows with a [SPAN_HELPFUL("screwdriver")]." + helpmessage += "You can take out the windows with a [SPAN_HELPFUL("screwdriver")]. " else - helpmessage += "It looks like a [SPAN_HELPFUL("wrench")] will secure it." + helpmessage += "It looks like a [SPAN_HELPFUL("wrench")] will secure it. " if(STATE_CIRCUIT) - helpmessage += "Add [SPAN_HELPFUL("cable coil")] to the circuit." + helpmessage += "Add [SPAN_HELPFUL("cable coil")] to the circuit. " if(STATE_WIRES) - helpmessage += "Secure the circuit with a [SPAN_HELPFUL("screwdriver")]." + helpmessage += "Secure the circuit with a [SPAN_HELPFUL("screwdriver")]. " if(STATE_SCREWDRIVER) - helpmessage += "[SPAN_HELPFUL("Weld")] it all in place." + helpmessage += "[SPAN_HELPFUL("Weld")] it all in place. " helpmessage += "You can name it with a [SPAN_HELPFUL("pen")]." . += SPAN_NOTICE(helpmessage) -/obj/structure/airlock_assembly/attackby(obj/item/W as obj, mob/user as mob) +/obj/structure/airlock_assembly/attackby(obj/item/attacking_item as obj, mob/user as mob) if(user.action_busy) return TRUE //no afterattack @@ -59,16 +64,16 @@ to_chat(user, SPAN_WARNING("You are not trained to configure \the [src]...")) return - if(HAS_TRAIT(W, TRAIT_TOOL_PEN)) - var/t = copytext(stripped_input(user, "Enter the name for the airlock.", name, created_name), 1, MAX_NAME_LEN) - if(!t || !in_range(src, usr) && loc != usr) + if(HAS_TRAIT(attacking_item, TRAIT_TOOL_PEN)) + var/input_text = copytext(stripped_input(user, "Enter the name for the airlock.", name, created_name), 1, MAX_NAME_LEN) + if(!input_text || !in_range(src, usr) && loc != usr) return - created_name = t + created_name = input_text playsound(src, "paper_writing", 15, TRUE) return - if(istype(W, /obj/item/stack/sheet/glass)) - var/obj/item/stack/sheet/glass/G = W + if(istype(attacking_item, /obj/item/stack/sheet/glass)) + var/obj/item/stack/sheet/glass/glass_sheet = attacking_item if(!anchored) to_chat(user, SPAN_NOTICE("The airlock is not secured!")) return @@ -83,7 +88,7 @@ return if(!do_after(user, 20 * user.get_skill_duration_multiplier(SKILL_CONSTRUCTION), INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) return - if(G.use(5)) + if(glass_sheet.use(5)) playsound(loc, 'sound/items/Deconstruct.ogg', 25, 1) glass = AIRLOCK_GLASSIN to_chat(user, SPAN_NOTICE("You insert some glass into \the [src], adding windows to it.")) @@ -93,7 +98,7 @@ to_chat(user, SPAN_WARNING("You need five sheets of glass to add windows to \the [src]!")) return - if(HAS_TRAIT(W, TRAIT_TOOL_CROWBAR)) + if(HAS_TRAIT(attacking_item, TRAIT_TOOL_CROWBAR)) to_chat(user, SPAN_NOTICE("You start pulling \the [src] apart.")) playsound(loc, 'sound/items/Crowbar.ogg', 25, 1) if(!do_after(user, 20 * user.get_skill_duration_multiplier(SKILL_CONSTRUCTION), INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) @@ -108,10 +113,14 @@ switch(state) if(STATE_STANDARD) - if(HAS_TRAIT(W, TRAIT_TOOL_WRENCH)) + if(HAS_TRAIT(attacking_item, TRAIT_TOOL_WRENCH)) + //Moving wide doors is wonky and doesn't work properly, if it's fixed we could make it unwrenchable again + if(width > 1 && anchored) + to_chat(user, SPAN_WARNING("[src] cannot be unwrenched.")) + return if(!anchored) - var/turf/open/T = loc - if(!(istype(T) && T.allow_construction)) + var/turf/open/checked_turf = loc + if(!(istype(checked_turf) && checked_turf.allow_construction)) to_chat(user, SPAN_WARNING("\The [src] cannot be secured here!")) return playsound(loc, 'sound/items/Ratchet.ogg', 25, 1) @@ -127,10 +136,10 @@ to_chat(user, SPAN_NOTICE("The airlock is not secured!")) return ..() - if(istype(W, /obj/item/circuitboard/airlock)) - var/obj/item/circuitboard/airlock/C = W - if(C.fried) // guess what this used to check? ICON STATE!! - to_chat(user, SPAN_WARNING("\The [C] are totally broken!")) + if(istype(attacking_item, /obj/item/circuitboard/airlock)) + var/obj/item/circuitboard/airlock/airlock_circuit = attacking_item + if(airlock_circuit.fried) // guess what this used to check? ICON STATE!! + to_chat(user, SPAN_WARNING("\The [airlock_circuit] are totally broken!")) return playsound(loc, 'sound/items/Screwdriver.ogg', 25, 1) to_chat(user, SPAN_NOTICE("You start installing the airlock electronics.")) @@ -138,14 +147,14 @@ return playsound(loc, 'sound/items/Screwdriver.ogg', 25, 1) user.drop_held_item() - W.forceMove(src) + attacking_item.forceMove(src) to_chat(user, SPAN_NOTICE("You installed the airlock electronics!")) state = STATE_CIRCUIT - electronics = W + electronics = attacking_item update_icon() return - if(HAS_TRAIT(W, TRAIT_TOOL_SCREWDRIVER)) + if(HAS_TRAIT(attacking_item, TRAIT_TOOL_SCREWDRIVER)) if(!anchored) to_chat(user, SPAN_NOTICE("The airlock is not secured!")) return @@ -163,22 +172,22 @@ if(STATE_CIRCUIT) - if(istype(W, /obj/item/stack/cable_coil)) - var/obj/item/stack/cable_coil/C = W - if (C.get_amount() < 1) + if(istype(attacking_item, /obj/item/stack/cable_coil)) + var/obj/item/stack/cable_coil/airlock_circuit = attacking_item + if (airlock_circuit.get_amount() < 1) to_chat(user, SPAN_WARNING("You need one length of coil to wire the airlock assembly.")) return to_chat(user, SPAN_NOTICE("You start to wire the circuit.")) if(!do_after(user, 40 * user.get_skill_duration_multiplier(SKILL_CONSTRUCTION), INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) return - if(C.use(1)) + if(airlock_circuit.use(1)) state = STATE_WIRES to_chat(user, SPAN_NOTICE("You wire the circuit.")) update_icon() return if(STATE_WIRES) - if(HAS_TRAIT(W, TRAIT_TOOL_SCREWDRIVER)) + if(HAS_TRAIT(attacking_item, TRAIT_TOOL_SCREWDRIVER)) playsound(loc, 'sound/items/Screwdriver.ogg', 25, 1) to_chat(user, SPAN_NOTICE("You start securing the circuit")) if(!do_after(user, 40 * user.get_skill_duration_multiplier(SKILL_CONSTRUCTION), INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) @@ -190,27 +199,23 @@ return if(STATE_SCREWDRIVER) - if(iswelder(W)) - if(!HAS_TRAIT(W, TRAIT_TOOL_BLOWTORCH)) + if(iswelder(attacking_item)) + if(!HAS_TRAIT(attacking_item, TRAIT_TOOL_BLOWTORCH)) to_chat(user, SPAN_WARNING("You need a stronger blowtorch!")) return - var/obj/item/tool/weldingtool/WT = W - if(!WT.remove_fuel(5, user)) + var/obj/item/tool/weldingtool/welder = attacking_item + if(!welder.remove_fuel(5, user)) return playsound(loc, 'sound/items/Welder2.ogg', 25, 1) to_chat(user, SPAN_NOTICE("Now finishing the airlock.")) if(!do_after(user, 40 * user.get_skill_duration_multiplier(SKILL_CONSTRUCTION), INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) - WT.remove_fuel(-5) + welder.remove_fuel(-5) return playsound(loc, 'sound/items/Welder2.ogg', 25, 1) to_chat(user, SPAN_NOTICE("You finish the airlock!")) - var/path - if (glass == AIRLOCK_GLASSIN) - path = text2path("/obj/structure/machinery/door/airlock/almayer/[airlock_type]/glass") - else - path = text2path("/obj/structure/machinery/door/airlock/almayer/[airlock_type]") + var/path = get_airlock_path() var/obj/structure/machinery/door/airlock/door = new path(loc) door.assembly_type = type door.electronics = electronics @@ -225,7 +230,7 @@ door.name = created_name else door.name = base_name - + door.handle_multidoor() electronics.forceMove(door) qdel(src) return @@ -238,107 +243,107 @@ else icon_state = "door_as_[base_icon_state][state]" +/obj/structure/airlock_assembly/proc/get_airlock_path() + //For some reason multi_tile doors have different paths... can't say it isn't annoying + if (width > 1) + return "/obj/structure/machinery/door/airlock/multi_tile/almayer/[airlock_type][glass ? "" : "/solid"]" + return "/obj/structure/machinery/door/airlock/almayer/[airlock_type][glass ? "/glass" : ""]" + +/// Used for overloading proc in multi_tile +/obj/structure/airlock_assembly/proc/update_collision_box() + return + /obj/structure/airlock_assembly/airlock_assembly_com base_icon_state = "com" base_name = "Command Airlock" - airlock_type = "/command" + airlock_type = "command" /obj/structure/airlock_assembly/airlock_assembly_sec base_icon_state = "sec" base_name = "Security Airlock" - airlock_type = "/security" + airlock_type = "security" /obj/structure/airlock_assembly/airlock_assembly_eng base_icon_state = "eng" base_name = "Engineering Airlock" - airlock_type = "/engineering" + airlock_type = "engineering" /obj/structure/airlock_assembly/airlock_assembly_min base_icon_state = "min" base_name = "Mining Airlock" - airlock_type = "/mining" + airlock_type = "mining" /obj/structure/airlock_assembly/airlock_assembly_atmo base_icon_state = "atmo" base_name = "Atmospherics Airlock" - airlock_type = "/atmos" + airlock_type = "atmos" /obj/structure/airlock_assembly/airlock_assembly_research base_icon_state = "res" base_name = "Research Airlock" - airlock_type = "/research" + airlock_type = "research" /obj/structure/airlock_assembly/airlock_assembly_science base_icon_state = "sci" base_name = "Science Airlock" - airlock_type = "/science" + airlock_type = "science" /obj/structure/airlock_assembly/airlock_assembly_med base_icon_state = "med" base_name = "Medical Airlock" - airlock_type = "/medical" + airlock_type = "medical" /obj/structure/airlock_assembly/airlock_assembly_mai base_icon_state = "mai" base_name = "Maintenance Airlock" - airlock_type = "/maintenance" + airlock_type = "maintenance" glass = AIRLOCK_CANTGLASS /obj/structure/airlock_assembly/airlock_assembly_ext base_icon_state = "ext" base_name = "External Airlock" - airlock_type = "/external" + airlock_type = "external" glass = AIRLOCK_CANTGLASS /obj/structure/airlock_assembly/airlock_assembly_fre base_icon_state = "fre" base_name = "Freezer Airlock" - airlock_type = "/freezer" + airlock_type = "freezer" glass = AIRLOCK_CANTGLASS /obj/structure/airlock_assembly/airlock_assembly_hatch base_icon_state = "hatch" base_name = "Airtight Hatch" - airlock_type = "/hatch" + airlock_type = "hatch" glass = AIRLOCK_CANTGLASS /obj/structure/airlock_assembly/airlock_assembly_mhatch base_icon_state = "mhatch" base_name = "Maintenance Hatch" - airlock_type = "/maintenance_hatch" + airlock_type = "maintenance_hatch" glass = AIRLOCK_CANTGLASS /obj/structure/airlock_assembly/airlock_assembly_highsecurity // Borrowing this until WJohnston makes sprites for the assembly base_icon_state = "highsec" base_name = "High Security Airlock" - airlock_type = "/highsecurity" + airlock_type = "highsecurity" glass = AIRLOCK_CANTGLASS /obj/structure/airlock_assembly/multi_tile icon = 'icons/obj/structures/doors/airlock_assembly2x1.dmi' - icon_state = "door_as_g0" - dir = EAST - var/width = 1 - -/*Temporary until we get sprites. - 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 = AIRLOCK_CANTGLASS //To prevent bugs in deconstruction process. + icon_state = "door_as_0" + width = 2 /obj/structure/airlock_assembly/multi_tile/Initialize(mapload, ...) . = ..() - if(dir in list(EAST, WEST)) - bound_width = width * world.icon_size - bound_height = world.icon_size - else - bound_width = world.icon_size - bound_height = width * world.icon_size + update_collision_box() update_icon() /obj/structure/airlock_assembly/multi_tile/Move() . = ..() + update_collision_box() + +/obj/structure/airlock_assembly/multi_tile/update_collision_box() if(dir in list(EAST, WEST)) bound_width = width * world.icon_size bound_height = world.icon_size diff --git a/icons/obj/structures/doors/2x1generic_solid.dmi b/icons/obj/structures/doors/2x1generic_solid.dmi new file mode 100644 index 0000000000000000000000000000000000000000..9c00b7b3277d6755bbef19d2d4ddbe66fc5cbbe6 GIT binary patch literal 15237 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 literal 0 HcmV?d00001 diff --git a/icons/obj/structures/doors/airlock_assembly2x1.dmi b/icons/obj/structures/doors/airlock_assembly2x1.dmi index a8d69b6f6a2d463fea644f713c662821068e5beb..cafd5c415b89749ef8e8f7ce7665fcd7c373458f 100644 GIT binary patch literal 29549 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%0A(~lCUkw@=8ACslA(WCOKT#k4tAh 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 YC&D}CB=W)E&xEdAym6u6Z=1*e1)07wdH?_b literal 24741 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