From 883d670a1e4e0f20b3e11ac945fb820b0120ae5b Mon Sep 17 00:00:00 2001 From: SkyratBot <59378654+SkyratBot@users.noreply.github.com> Date: Sat, 12 Sep 2020 02:11:32 +0200 Subject: [PATCH] [MIRROR] Smart Pipes : Mapping Revolution [Golden Edge Awards 2020 Edition] (#764) * Smart Pipes : Mapping Revolution [Golden Edge Awards 2020 Edition] (#53530) Adds a mapping helper for piping, it works on all layers, works on all colors, and it autoconnects to other pipe devices. making it extremely useful. Making mapping less of a massive fucking clusterfuck of burnout is always good. Mappers can now use Smart Pipes, pipes that autoconnect to other pipes, like redstone! MAPPERS ONLY! * Smart Pipes : Mapping Revolution [Golden Edge Awards 2020 Edition] Co-authored-by: EdgeLordExe <42111655+EdgeLordExe@users.noreply.github.com> --- .../atmospherics/machinery/pipes/mapping.dm | 22 +++++- code/modules/mapping/mapping_helpers.dm | 72 ++++++++++++++++++ icons/effects/mapping_helpers.dmi | Bin 16501 -> 18272 bytes 3 files changed, 92 insertions(+), 2 deletions(-) diff --git a/code/modules/atmospherics/machinery/pipes/mapping.dm b/code/modules/atmospherics/machinery/pipes/mapping.dm index 51d9c707185..c23f8cacd94 100644 --- a/code/modules/atmospherics/machinery/pipes/mapping.dm +++ b/code/modules/atmospherics/machinery/pipes/mapping.dm @@ -17,6 +17,14 @@ piping_layer = 4; \ icon_state = Iconbase + "-4"; \ } \ + ##Fulltype/visible/layer1 { \ + piping_layer = 1; \ + icon_state = Iconbase + "-1"; \ + } \ + ##Fulltype/visible/layer5 { \ + piping_layer = 5; \ + icon_state = Iconbase + "-5"; \ + } \ ##Fulltype/hidden { \ hide = TRUE; \ } \ @@ -27,6 +35,14 @@ ##Fulltype/hidden/layer4 { \ piping_layer = 4; \ icon_state = Iconbase + "-4"; \ + } \ + ##Fulltype/hidden/layer1 { \ + piping_layer = 1; \ + icon_state = Iconbase + "-1"; \ + } \ + ##Fulltype/hidden/layer5 { \ + piping_layer = 5; \ + icon_state = Iconbase + "-5"; \ } #define HELPER_PARTIAL_NAMED(Fulltype, Iconbase, Name, Color) \ @@ -38,12 +54,14 @@ #define HELPER(Type, Color) \ HELPER_PARTIAL(/obj/machinery/atmospherics/pipe/simple/##Type, "pipe11", Color) \ HELPER_PARTIAL(/obj/machinery/atmospherics/pipe/manifold/##Type, "manifold", Color) \ - HELPER_PARTIAL(/obj/machinery/atmospherics/pipe/manifold4w/##Type, "manifold4w", Color) + HELPER_PARTIAL(/obj/machinery/atmospherics/pipe/manifold4w/##Type, "manifold4w", Color) \ + HELPER_PARTIAL(/obj/effect/mapping_helpers/simple_pipes/##Type,"pipe",Color) #define HELPER_NAMED(Type, Name, Color) \ HELPER_PARTIAL_NAMED(/obj/machinery/atmospherics/pipe/simple/##Type, "pipe11", Name, Color) \ HELPER_PARTIAL_NAMED(/obj/machinery/atmospherics/pipe/manifold/##Type, "manifold", Name, Color) \ - HELPER_PARTIAL_NAMED(/obj/machinery/atmospherics/pipe/manifold4w/##Type, "manifold4w", Name, Color) + HELPER_PARTIAL_NAMED(/obj/machinery/atmospherics/pipe/manifold4w/##Type, "manifold4w", Name, Color) \ + HELPER_PARTIAL_NAMED(/obj/effect/mapping_helpers/simple_pipes/##Type,"pipe", Name, Color) HELPER(general, null) HELPER(yellow, rgb(255, 198, 0)) diff --git a/code/modules/mapping/mapping_helpers.dm b/code/modules/mapping/mapping_helpers.dm index cf3a2e8ba51..d7f0fad69e3 100644 --- a/code/modules/mapping/mapping_helpers.dm +++ b/code/modules/mapping/mapping_helpers.dm @@ -381,6 +381,77 @@ INITIALIZE_IMMEDIATE(/obj/effect/mapping_helpers/no_lava) log_mapping("[src] at [x],[y] could not find an airlock on current turf, cannot place paper note.") qdel(src) +/obj/effect/mapping_helpers/simple_pipes + name = "Simple Pipes" + late = TRUE + icon_state = "pipe-3" + var/piping_layer = 3 + var/pipe_color = "" + var/connection_num = 0 + var/hide = FALSE + +/obj/effect/mapping_helpers/simple_pipes/LateInitialize() + var/list/connections = list( dir2text(NORTH) = FALSE, dir2text(SOUTH) = FALSE , dir2text(EAST) = FALSE , dir2text(WEST) = FALSE) + var/list/valid_connectors = typecacheof(/obj/machinery/atmospherics) + for(var/direction in connections) + var/turf/T = get_step(src, text2dir(direction)) + for(var/machine_type_owo in T.contents) + if(istype(machine_type_owo,type)) + var/obj/effect/mapping_helpers/simple_pipes/found = machine_type_owo + if(found.piping_layer != piping_layer) + continue + connections[direction] = TRUE + connection_num++ + break + if(!is_type_in_typecache(machine_type_owo,valid_connectors)) + continue + var/obj/machinery/atmospherics/machine = machine_type_owo + + if(machine.piping_layer != piping_layer) + continue + + if(angle2dir(dir2angle(text2dir(direction))+180) & machine.initialize_directions) + connections[direction] = TRUE + connection_num++ + break + + switch(connection_num) + if(1) + for(var/direction in connections) + if(connections[direction] != TRUE) + continue + spawn_pipe(direction,/obj/machinery/atmospherics/pipe/simple) + if(2) + for(var/direction in connections) + if(connections[direction] != TRUE) + continue + //Detects straight pipes connected from east to west , north to south etc. + if(connections[dir2text(angle2dir(dir2angle(text2dir(direction))+180))] == TRUE) + spawn_pipe(direction,/obj/machinery/atmospherics/pipe/simple) + break + + for(var/direction2 in connections - direction) + if(connections[direction2] != TRUE) + continue + spawn_pipe(dir2text(text2dir(direction)+text2dir(direction2)),/obj/machinery/atmospherics/pipe/simple) + if(3) + for(var/direction in connections) + if(connections[direction] == FALSE) + spawn_pipe(direction,/obj/machinery/atmospherics/pipe/manifold) + if(4) + spawn_pipe(dir2text(NORTH),/obj/machinery/atmospherics/pipe/manifold4w) + + qdel(src) + +//spawn pipe +/obj/effect/mapping_helpers/simple_pipes/proc/spawn_pipe(direction,type ) + var/obj/machinery/atmospherics/pipe/pipe = new type(get_turf(src),TRUE,text2dir(direction)) + pipe.hide = hide + pipe.piping_layer = piping_layer + pipe.update_layer() + pipe.paint(pipe_color) + + //This helper applies traits to things on the map directly. /obj/effect/mapping_helpers/trait_injector name = "Trait Injector" @@ -419,3 +490,4 @@ INITIALIZE_IMMEDIATE(/obj/effect/mapping_helpers/no_lava) if(!matches_found) stack_trace("Trait mapper found no targets at ([x], [y], [z]). First Match Only: [first_match_only ? "true" : "false"] target type: [target_type] | target name: [target_name] | trait name: [trait_name]") qdel(src) + diff --git a/icons/effects/mapping_helpers.dmi b/icons/effects/mapping_helpers.dmi index a1afaf1c724de5f46db44088d1abc3806ecea4fb..ca424ac84a351daee9929cb4f409f817ffd90154 100644 GIT binary patch literal 18272 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 FV1iVT`~m;~ literal 16501 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