diff --git a/code/modules/multiz/basic.dm b/code/modules/multiz/basic.dm index 24d24b1049..0ed4e5364a 100644 --- a/code/modules/multiz/basic.dm +++ b/code/modules/multiz/basic.dm @@ -43,3 +43,11 @@ var/z_levels = 0 // Each bit represents a connection between adjacent levels. S proc/AreConnectedZLevels(var/zA, var/zB) return zA == zB || (zB in GetConnectedZlevels(zA)) + +/proc/get_zstep(ref, dir) + if(dir == UP) + . = GetAbove(ref) + else if (dir == DOWN) + . = GetBelow(ref) + else + . = get_step(ref, dir) \ No newline at end of file diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index 671d57e04e..27bf4c0ab7 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -48,7 +48,7 @@ var/list/possible_cable_coil_colours = list( anchored =1 var/datum/powernet/powernet name = "power cable" - desc = "A flexible superconducting cable for heavy-duty power transfer" + desc = "A flexible superconducting cable for heavy-duty power transfer." icon = 'icons/obj/power_cond_white.dmi' icon_state = "0-1" var/d1 = 0 @@ -116,9 +116,9 @@ var/list/possible_cable_coil_colours = list( user.examinate(src) // following code taken from attackby (multitool) if(powernet && (powernet.avail > 0)) - user << "[powernet.avail]W in power network." + to_chat(user, "[powernet.avail]W in power network.") else - user << "The cable is not powered." + to_chat(user, "The cable is not powered.") return /////////////////////////////////// @@ -159,12 +159,12 @@ var/list/possible_cable_coil_colours = list( return if(istype(W, /obj/item/weapon/wirecutters)) - if(d1 == 12 || d2 == 12) - user << "You must cut this cable from above." + if(d1 == UP || d2 == UP) + to_chat(user, "You must cut this cable from above.") return if(breaker_box) - user << "\red This cable is connected to nearby breaker box. Use breaker box to interact with it." + to_chat(user, "This cable is connected to nearby breaker box. Use breaker box to interact with it.") return if (shock(user, 50)) @@ -178,11 +178,11 @@ var/list/possible_cable_coil_colours = list( for(var/mob/O in viewers(src, null)) O.show_message("[user] cuts the cable.", 1) - if(d1 == 11 || d2 == 11) + if(d1 == DOWN || d2 == DOWN) var/turf/turf = GetBelow(src) if(turf) for(var/obj/structure/cable/c in turf) - if(c.d1 == 12 || c.d2 == 12) + if(c.d1 == UP || c.d2 == UP) qdel(c) investigate_log("was cut by [key_name(usr, usr.client)] in [user.loc.loc]","wires") @@ -194,17 +194,17 @@ var/list/possible_cable_coil_colours = list( else if(istype(W, /obj/item/stack/cable_coil)) var/obj/item/stack/cable_coil/coil = W if (coil.get_amount() < 1) - user << "Not enough cable" + to_chat(user, "Not enough cable") return coil.cable_join(src, user) else if(istype(W, /obj/item/device/multitool)) if(powernet && (powernet.avail > 0)) // is it powered? - user << "[powernet.avail]W in power network." + to_chat(user, "[powernet.avail]W in power network.") else - user << "The cable is not powered." + to_chat(user, "The cable is not powered.") shock(user, 5, 0.2) @@ -300,12 +300,12 @@ obj/structure/cable/proc/cableColor(var/colorC) // merge with the powernets of power objects in the given direction /obj/structure/cable/proc/mergeConnectedNetworks(var/direction) - var/fdir = (!direction)? 0 : turn(direction, 180) //flip the direction, to match with the source position on its turf + var/fdir = direction ? reverse_dir[direction] : 0 //flip the direction, to match with the source position on its turf if(!(d1 == direction || d2 == direction)) //if the cable is not pointed in this direction, do nothing return - var/turf/TB = get_step(src, direction) + var/turf/TB = get_zstep(src, direction) for(var/obj/structure/cable/C in TB) @@ -376,25 +376,15 @@ obj/structure/cable/proc/cableColor(var/colorC) . = list() // this will be a list of all connected power objects var/turf/T - // Handle up/down cables - if(d1 == 11 || d2 == 11) - T = GetBelow(src) - if(T) - . += power_list(T, src, 12, 1) - if(d1 == 12 || d1 == 12) - T = GetAbove(src) - if(T) - . += power_list(T, src, 11, 1) - // Handle standard cables in adjacent turfs for(var/cable_dir in list(d1, d2)) - if(cable_dir == 11 || cable_dir == 12 || cable_dir == 0) + if(cable_dir == 0) continue var/reverse = reverse_dir[cable_dir] - T = get_step(src, cable_dir) + T = get_zstep(src, cable_dir) if(T) for(var/obj/structure/cable/C in T) - if((C.d1 && C.d1 == reverse) || (C.d2 && C.d2 == reverse)) + if(C.d1 == reverse || C.d2 == reverse) . += C if(cable_dir & (cable_dir - 1)) // Diagonal, check for /\/\/\ style cables along cardinal directions for(var/pair in list(NORTH|SOUTH, EAST|WEST)) @@ -402,7 +392,7 @@ obj/structure/cable/proc/cableColor(var/colorC) if(T) var/req_dir = cable_dir ^ pair for(var/obj/structure/cable/C in T) - if((C.d1 && C.d1 == req_dir) || (C.d2 && C.d2 == req_dir)) + if(C.d1 == req_dir || C.d2 == req_dir) . += C // Handle cables on the same turf as us @@ -566,7 +556,7 @@ obj/structure/cable/proc/cableColor(var/colorC) final_color = possible_cable_coil_colours["Red"] selected_color = "red" color = final_color - user << "You change \the [src]'s color to [lowertext(selected_color)]." + to_chat(user, "You change \the [src]'s color to [lowertext(selected_color)].") /obj/item/stack/cable_coil/proc/update_wclass() if(amount == 1) @@ -579,11 +569,11 @@ obj/structure/cable/proc/cableColor(var/colorC) return if(get_amount() == 1) - user << "A short piece of power cable." + to_chat(user, "A short piece of power cable.") else if(get_amount() == 2) - user << "A piece of power cable." + to_chat(user, "A piece of power cable.") else - user << "A coil of power cable. There are [get_amount()] lengths of cable in the coil." + to_chat(user, "A coil of power cable. There are [get_amount()] lengths of cable in the coil.") /obj/item/stack/cable_coil/verb/make_restraint() @@ -594,14 +584,14 @@ obj/structure/cable/proc/cableColor(var/colorC) if(ishuman(M) && !M.restrained() && !M.stat && !M.paralysis && ! M.stunned) if(!istype(usr.loc,/turf)) return if(src.amount <= 14) - usr << "\red You need at least 15 lengths to make restraints!" + to_chat(usr, "You need at least 15 lengths to make restraints!") return var/obj/item/weapon/handcuffs/cable/B = new /obj/item/weapon/handcuffs/cable(usr.loc) B.color = color - usr << "You wind some cable together to make some restraints." + to_chat(usr, "You wind some cable together to make some restraints.") src.use(15) else - usr << "\blue You cannot do that." + to_chat(usr, "You cannot do that.") ..() /obj/item/stack/cable_coil/cyborg/verb/set_colour() diff --git a/code/modules/power/power.dm b/code/modules/power/power.dm index 7697fdf6a4..13213c2e7e 100644 --- a/code/modules/power/power.dm +++ b/code/modules/power/power.dm @@ -209,16 +209,8 @@ // if unmarked==1, only return those with no powernet /proc/power_list(var/turf/T, var/source, var/d, var/unmarked=0, var/cable_only = 0) . = list() - var/fdir = (!d)? 0 : turn(d, 180) // the opposite direction to d (or 0 if d==0) -///// Z-Level Stuff - var/Zdir - if(d==11) - Zdir = 11 - else if (d==12) - Zdir = 12 - else - Zdir = 999 -///// Z-Level Stuff + + var/reverse = d ? reverse_dir[d] : 0 for(var/AM in T) if(AM == source) continue //we don't want to return source @@ -234,11 +226,7 @@ var/obj/structure/cable/C = AM if(!unmarked || !C.powernet) -///// Z-Level Stuff - if(C.d1 == fdir || C.d2 == fdir || C.d1 == Zdir || C.d2 == Zdir) -///// Z-Level Stuff - . += C - else if(C.d1 == d || C.d2 == d) + if(C.d1 == d || C.d2 == d || C.d1 == reverse || C.d2 == reverse ) . += C return .