From b96829252ef0b7d5edc3d1f7f85b58fb759d1856 Mon Sep 17 00:00:00 2001 From: Time-Green Date: Wed, 12 Aug 2020 17:37:55 +0200 Subject: [PATCH] Plumbing teleporters (#51881) * Makes the plumbing RCD accept every object * Adds simple plumbing teleporter * Polishes plumbing teleporters * Fixes runtime * this to src * circuitboard doesnt need anchoring * Fixes overlay flickering being weird * Makes the Chemical Recipient's positioning less awkward * Comments and documentation * uh * Fixes dme * Revert "uh" This reverts commit af6f30089f9f31d527f6ab3e2b1c72cf6ab6d60d. * Update code/_globalvars/lists/construction.dm Co-authored-by: girl <11748095+ExcessiveUseOfCobblestone@users.noreply.github.com> * Update code/game/objects/items/RCD.dm Co-authored-by: girl <11748095+ExcessiveUseOfCobblestone@users.noreply.github.com> * Update code/modules/plumbing/plumbers/_plumb_machinery.dm Co-authored-by: girl <11748095+ExcessiveUseOfCobblestone@users.noreply.github.com> * uncasts loop * update icons Co-authored-by: girl <11748095+ExcessiveUseOfCobblestone@users.noreply.github.com> --- code/_globalvars/lists/construction.dm | 18 +++ code/game/objects/items/RCD.dm | 19 +-- .../circuitboards/machine_circuitboards.dm | 12 ++ .../plumbing/plumbers/_plumb_machinery.dm | 13 +- code/modules/plumbing/plumbers/bottler.dm | 4 +- code/modules/plumbing/plumbers/fermenter.dm | 4 +- code/modules/plumbing/plumbers/filter.dm | 1 + .../plumbing/plumbers/grinder_chemical.dm | 4 +- code/modules/plumbing/plumbers/pill_press.dm | 1 + code/modules/plumbing/plumbers/pumps.dm | 3 - .../plumbing/plumbers/reaction_chamber.dm | 1 + code/modules/plumbing/plumbers/splitters.dm | 1 + code/modules/plumbing/plumbers/synthesizer.dm | 4 - code/modules/plumbing/plumbers/teleporter.dm | 126 ++++++++++++++++++ .../research/designs/machine_designs.dm | 9 ++ code/modules/research/techweb/all_nodes.dm | 2 +- icons/obj/plumbing/plumbers.dmi | Bin 17081 -> 18349 bytes tgstation.dme | 2 + 18 files changed, 189 insertions(+), 35 deletions(-) create mode 100644 code/_globalvars/lists/construction.dm create mode 100644 code/modules/plumbing/plumbers/teleporter.dm diff --git a/code/_globalvars/lists/construction.dm b/code/_globalvars/lists/construction.dm new file mode 100644 index 00000000000..3accb854ca1 --- /dev/null +++ b/code/_globalvars/lists/construction.dm @@ -0,0 +1,18 @@ +///A cache with all the objects craftable with a plumbing constructor and their delay (doubles as their cost, 1sec/10 matter) +GLOBAL_LIST_INIT(plumbing_constructables, list( + /obj/machinery/plumbing/input = 5, + /obj/machinery/plumbing/output = 5, + /obj/machinery/plumbing/tank = 20, + /obj/machinery/plumbing/acclimator = 10, + /obj/machinery/plumbing/bottler = 50, + /obj/machinery/plumbing/disposer = 10, + /obj/machinery/plumbing/fermenter = 30, + /obj/machinery/plumbing/filter = 5, + /obj/machinery/plumbing/grinder_chemical = 30, + /obj/machinery/plumbing/pill_press = 20, + /obj/machinery/plumbing/liquid_pump = 35, + /obj/machinery/plumbing/reaction_chamber = 15, + /obj/machinery/plumbing/splitter = 5, + /obj/machinery/plumbing/synthesizer = 15, + /obj/machinery/plumbing/sender = 20 +)) diff --git a/code/game/objects/items/RCD.dm b/code/game/objects/items/RCD.dm index 0c4d6aed90a..a600888fd8f 100644 --- a/code/game/objects/items/RCD.dm +++ b/code/game/objects/items/RCD.dm @@ -906,6 +906,7 @@ RLD max_matter = 100 matter_divisor = 20 +///The plumbing RCD. All the blueprints are located in _globalvars > lists > construction.dm /obj/item/construction/plumbing name = "Plumbing Constructor" desc = "An expertly modified RCD outfitted to construct plumbing machinery." @@ -922,19 +923,18 @@ RLD var/list/choices = list() ///index, used in the attack self to get the type. stored here since it doesnt change var/list/name_to_type = list() - /// - var/list/machinery_data = list("cost" = list(), "delay" = list()) + ///All info for construction + var/list/machinery_data = list("cost" = list()) /obj/item/construction/plumbing/attack_self(mob/user) ..() if(!choices.len) - for(var/A in subtypesof(/obj/machinery/plumbing)) + for(var/A in GLOB.plumbing_constructables) var/obj/machinery/plumbing/M = A - if(initial(M.rcd_constructable)) - choices += list(initial(M.name) = image(icon = initial(M.icon), icon_state = initial(M.icon_state))) - name_to_type[initial(M.name)] = M - machinery_data["cost"][A] = initial(M.rcd_cost) - machinery_data["delay"][A] = initial(M.rcd_delay) + + choices += list(initial(M.name) = image(icon = initial(M.icon), icon_state = initial(M.icon_state))) + name_to_type[initial(M.name)] = M + machinery_data["cost"][A] = GLOB.plumbing_constructables[A] var/choice = show_radial_menu(user, src, choices, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = TRUE, tooltips = TRUE) if(!check_menu(user)) @@ -950,7 +950,8 @@ RLD return FALSE if(checkResource(machinery_data["cost"][blueprint], user) && blueprint) - if(do_after(user, machinery_data["delay"][blueprint], target = A)) + //"cost" is relative to delay at a rate of 10 matter/second (1matter/decisecond) rather than playing with 2 different variables since everyone set it to this rate anyways. + if(do_after(user, machinery_data["cost"][blueprint], target = A)) if(checkResource(machinery_data["cost"][blueprint], user) && canPlace(A)) useResource(machinery_data["cost"][blueprint], user) activate() diff --git a/code/game/objects/items/circuitboards/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machine_circuitboards.dm index 5f52cb203c7..bb941a1cf03 100644 --- a/code/game/objects/items/circuitboards/machine_circuitboards.dm +++ b/code/game/objects/items/circuitboards/machine_circuitboards.dm @@ -1198,6 +1198,17 @@ /obj/item/stock_parts/scanning_module = 2 ) +/obj/item/circuitboard/machine/plumbing_receiver + name = "Chemical Recipient (Machine Board)" + icon_state = "medical" + build_path = /obj/machinery/plumbing/receiver + req_components = list( + /obj/item/stack/ore/bluespace_crystal = 1, + /obj/item/stock_parts/capacitor = 2, + /obj/item/stack/sheet/glass = 1) + def_components = list(/obj/item/stack/ore/bluespace_crystal = /obj/item/stack/ore/bluespace_crystal/artificial) + needs_anchored = FALSE + /obj/item/circuitboard/machine/skill_station name = "Skill Station (Machine Board)" build_path = /obj/machinery/skill_station @@ -1206,3 +1217,4 @@ /obj/item/stock_parts/micro_laser = 2, /obj/item/stock_parts/scanning_module = 2 ) + diff --git a/code/modules/plumbing/plumbers/_plumb_machinery.dm b/code/modules/plumbing/plumbers/_plumb_machinery.dm index 19bc21239ac..293d32fd742 100644 --- a/code/modules/plumbing/plumbers/_plumb_machinery.dm +++ b/code/modules/plumbing/plumbers/_plumb_machinery.dm @@ -16,11 +16,6 @@ ///Flags for reagents, like INJECTABLE, TRANSPARENT bla bla everything thats in DEFINES/reagents.dm var/reagent_flags = TRANSPARENT ///wheter we partake in rcd construction or not - var/rcd_constructable = TRUE - ///cost of the plumbing rcd construction - var/rcd_cost = 15 - ///delay of constructing it throught the plumbing rcd - var/rcd_delay = 10 /obj/machinery/plumbing/Initialize(mapload, bolt = TRUE) . = ..() @@ -53,7 +48,7 @@ to_chat(user, "The [name] needs to be unbolted to do that!You start slicing the [name] apart.You slice the [name] apart.Invalid buffer.") + return + + if(target) + lose_teleport_target() + + set_teleport_target(M.buffer) + + to_chat(user, "You succesfully link [src] to the [M.buffer].") + return TRUE + +///Lose our previous target and make our previous target lose us. Seperate proc because I feel like I'll need this again +/obj/machinery/plumbing/sender/proc/lose_teleport_target() + target.senders.Remove(src) + target = null + icon_state = initial(icon_state) + +///Set a receiving plumbing object +/obj/machinery/plumbing/sender/proc/set_teleport_target(new_target) + target = new_target + target.senders.Add(src) + icon_state = initial(icon_state) + "_idle" + +///Transfer reagents and display a flashing icon +/obj/machinery/plumbing/sender/proc/teleport_chemicals(obj/machinery/plumbing/receiver/R, amount) + flick(initial(icon_state) + "_flash", src) + reagents.trans_to(R, amount, round_robin = TRUE) + +///A bluespace output pipe for plumbing. Supports multiple recipients. Must be constructed with a circuit board +/obj/machinery/plumbing/receiver + name = "chemical recipient" + desc = "Receives chemicals from one or more chemical beacons. Use a multitool on this machine and then all subsequent chemical beacons. Reset by opening the \ + panel and cutting the main wire." + icon_state = "recipient" + + buffer = 150 + + ///How much chemicals we can teleport per process + var/pull_amount = 20 + ///All synced up chemical beacons we can tap from + var/list/senders = list() + ///We only grab one machine per process, so store which one is next + var/next_index = 1 + +/obj/machinery/plumbing/receiver/Initialize(mapload, bolt) + . = ..() + AddComponent(/datum/component/plumbing/simple_supply, bolt) + +/obj/machinery/plumbing/receiver/multitool_act(mob/living/user, obj/item/I) + if(!multitool_check_buffer(user, I)) + return + + var/obj/item/multitool/M = I + M.buffer = src + to_chat(user, "You store linkage information in [I]'s buffer.") + return TRUE + +/obj/machinery/plumbing/receiver/process() + if(machine_stat & NOPOWER || panel_open) + return + + if(senders.len) + if(senders.len < next_index) + next_index = 1 + + var/obj/machinery/plumbing/sender/S = senders[next_index] + if(QDELETED(S)) + senders.Remove(S) + return + + S.teleport_chemicals(src, pull_amount) + + flick(initial(icon_state) + "_flash", src) + + next_index++ + +///Notify all senders to forget us +/obj/machinery/plumbing/receiver/proc/lose_senders() + for(var/A in senders) + var/obj/machinery/plumbing/sender/S = A + if(S == null) + continue + S.lose_teleport_target() + + senders = list() + +/obj/machinery/plumbing/receiver/attackby(obj/item/I, mob/user, params) + if(default_deconstruction_screwdriver(user, icon_state + "_open", initial(icon_state), I)) + update_icon() + return + + if(default_pry_open(I)) + return + + if(default_deconstruction_crowbar(I)) + return + + return ..() + +/obj/machinery/plumbing/receiver/wirecutter_act(mob/living/user, obj/item/I) + . = ..() + + if(panel_open) + lose_senders() diff --git a/code/modules/research/designs/machine_designs.dm b/code/modules/research/designs/machine_designs.dm index 19ba8458e6e..ed90b28e523 100644 --- a/code/modules/research/designs/machine_designs.dm +++ b/code/modules/research/designs/machine_designs.dm @@ -609,6 +609,15 @@ category = list ("Medical Machinery") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL +/datum/design/board/plumbing_receiver + name = "Machine Design (Chemical Recipient)" + desc = "The circuit board for a Chemical Recipient." + id = "plumbing_receiver" + build_path = /obj/item/circuitboard/machine/plumbing_receiver + category = list ("Teleportation Machinery") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL + + /datum/design/board/sheetifier name = "Machine Design (Sheet-meister 2000)" desc = "The circuit board for a Sheet-meister 2000." diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index b2c91506143..48642bbfed7 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -227,7 +227,7 @@ display_name = "Applied Bluespace Research" description = "Using bluespace to make things faster and better." prereq_ids = list("bluespace_basic", "engineering") - design_ids = list("bs_rped","minerbag_holding", "bluespacebeaker", "bluespacesyringe", "phasic_scanning", "roastingstick", "ore_silo") + design_ids = list("bs_rped","minerbag_holding", "bluespacebeaker", "bluespacesyringe", "phasic_scanning", "roastingstick", "ore_silo", "plumbing_receiver") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) export_price = 5000 diff --git a/icons/obj/plumbing/plumbers.dmi b/icons/obj/plumbing/plumbers.dmi index 56f6984e47251a676466a6b061dd68ba733d1b90..07daa59cd42aa318ab1665739c48d2c3a81664ce 100644 GIT binary patch literal 18349 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 Jtnk$T{{dVg!SMh9 literal 17081 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 z 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 diff --git a/tgstation.dme b/tgstation.dme index 038446d95d0..d07869867a8 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -178,6 +178,7 @@ #include "code\_globalvars\lists\achievements.dm" #include "code\_globalvars\lists\admin.dm" #include "code\_globalvars\lists\client.dm" +#include "code\_globalvars\lists\construction.dm" #include "code\_globalvars\lists\color.dm" #include "code\_globalvars\lists\flavor_misc.dm" #include "code\_globalvars\lists\keybindings.dm" @@ -2619,6 +2620,7 @@ #include "code\modules\plumbing\plumbers\reaction_chamber.dm" #include "code\modules\plumbing\plumbers\splitters.dm" #include "code\modules\plumbing\plumbers\synthesizer.dm" +#include "code\modules\plumbing\plumbers\teleporter.dm" #include "code\modules\power\apc.dm" #include "code\modules\power\cable.dm" #include "code\modules\power\cell.dm"