From a94012b98a0a7d976dc86fe13af94e099cd6fd14 Mon Sep 17 00:00:00 2001 From: tkdrg Date: Sat, 13 Dec 2014 18:24:42 -0300 Subject: [PATCH] Ports the rapid pipe dispenser (RPD) from /vg/ These are pocket devices that dispense unwrenched atmos/disposal pipes. Despite the admittedly misleading name, these have infinite ammo. There is no need to reload with matter cartridges or anything like that. Currently, they spawn in atmos tech lockers, and as an engiborg module. More can be obtained with the autolathe. They are also a traitor "steal item" objective. --- code/ATMOSPHERICS/pipes.dm | 4 +- code/game/machinery/pipe/construction.dm | 76 +-- code/game/objects/items/weapons/RPD.dm | 547 ++++++++++++++++++ .../closets/secure/engineering.dm | 2 +- .../mob/living/silicon/robot/robot_modules.dm | 1 + .../research/designs/autolathe_designs.dm | 8 + icons/obj/items.dmi | Bin 62017 -> 62464 bytes tgstation.dme | 1 + 8 files changed, 592 insertions(+), 47 deletions(-) create mode 100644 code/game/objects/items/weapons/RPD.dm diff --git a/code/ATMOSPHERICS/pipes.dm b/code/ATMOSPHERICS/pipes.dm index a3bb5355947..571b32cbc48 100644 --- a/code/ATMOSPHERICS/pipes.dm +++ b/code/ATMOSPHERICS/pipes.dm @@ -34,7 +34,7 @@ if(istype(W, /obj/item/device/analyzer)) atmosanalyzer_scan(parent.air, user) - if(istype(W,/obj/item/device/pipe_painter)) + if(istype(W,/obj/item/device/pipe_painter) || istype(W,/obj/item/weapon/pipe_dispenser)) return return ..() @@ -49,4 +49,4 @@ var/obj/item/pipe_meter/PM = new (T) meter.transfer_fingerprints_to(PM) qdel(meter) - ..() \ No newline at end of file + ..() diff --git a/code/game/machinery/pipe/construction.dm b/code/game/machinery/pipe/construction.dm index bb16ba4c47c..c1fa0980810 100644 --- a/code/game/machinery/pipe/construction.dm +++ b/code/game/machinery/pipe/construction.dm @@ -22,6 +22,15 @@ Buildable meters #define PIPE_HEAT_EXCHANGE 17 #define PIPE_DVALVE 18 #define PIPE_4WAYMANIFOLD 19 +//Disposal piping numbers - do NOT hardcode these, use the defines +#define DISP_PIPE_STRAIGHT 0 +#define DISP_PIPE_BENT 1 +#define DISP_JUNCTION 2 +#define DISP_YJUNCTION 3 +#define DISP_END_TRUNK 4 +#define DISP_END_BIN 5 +#define DISP_END_OUTLET 6 +#define DISP_END_CHUTE 7 /obj/item/pipe name = "pipe" @@ -95,6 +104,28 @@ Buildable meters src.pixel_y = rand(-5, 5) //update the name and icon of the pipe item depending on the type +var/global/list/pipeID2State = list( + "simple", \ + "simple", \ + "he", \ + "he", \ + "connector", \ + "manifold", \ + "junction", \ + "uvent", \ + "mvalve", \ + "pump", \ + "scrubber", \ + "insulated", \ + "insulated", \ + "filter", \ + "mixer", \ + "passivegate", \ + "volumepump", \ + "heunary", \ + "dvalve", \ + "manifold4w", \ +) /obj/item/pipe/proc/update() var/list/nlist = list( \ @@ -120,29 +151,7 @@ Buildable meters "4-way manifold", \ ) name = nlist[pipe_type+1] + " fitting" - var/list/islist = list( \ - "simple", \ - "simple", \ - "he", \ - "he", \ - "connector", \ - "manifold", \ - "junction", \ - "uvent", \ - "mvalve", \ - "pump", \ - "scrubber", \ - "insulated", \ - "insulated", \ - "filter", \ - "mixer", \ - "passivegate", \ - "volumepump", \ - "heunary", \ - "dvalve", \ - "manifold4w", \ - ) - icon_state = islist[pipe_type + 1] + icon_state = pipeID2State[pipe_type + 1] //called when a turf is attacked with a pipe item // place the pipe on the turf, setting pipe level to 1 (underfloor) if the turf is not intact @@ -423,24 +432,3 @@ Buildable meters playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) user << "You have fastened the meter to the pipe." qdel(src) - -#undef PIPE_SIMPLE_STRAIGHT -#undef PIPE_SIMPLE_BENT -#undef PIPE_HE_STRAIGHT -#undef PIPE_HE_BENT -#undef PIPE_CONNECTOR -#undef PIPE_MANIFOLD -#undef PIPE_JUNCTION -#undef PIPE_UVENT -#undef PIPE_MVALVE -#undef PIPE_PUMP -#undef PIPE_SCRUBBER -#undef PIPE_INSULATED_STRAIGHT -#undef PIPE_INSULATED_BENT -#undef PIPE_GAS_FILTER -#undef PIPE_GAS_MIXER -#undef PIPE_PASSIVE_GATE -#undef PIPE_VOLUME_PUMP -#undef PIPE_OUTLET_INJECT -#undef PIPE_DVALVE -#undef PIPE_4WAYMANIFOLD \ No newline at end of file diff --git a/code/game/objects/items/weapons/RPD.dm b/code/game/objects/items/weapons/RPD.dm new file mode 100644 index 00000000000..8ed87ab0597 --- /dev/null +++ b/code/game/objects/items/weapons/RPD.dm @@ -0,0 +1,547 @@ +//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32 + +/* +CONTAINS: +RPD +*/ +#define PIPE_BINARY 0 +#define PIPE_BENT 1 +#define PIPE_TRINARY 2 +#define PIPE_TRIN_M 3 +#define PIPE_UNARY 4 + +/datum/pipe_info + var/id=-1 + var/dir=SOUTH + var/dirtype=PIPE_BINARY + var/icon = 'icons/obj/pipe-item.dmi' + var/icon_state="" + var/selected=0 + +/datum/pipe_info/New(var/pid,var/direction,var/dt) + src.id=pid + src.icon_state=pipeID2State[pid+1] + src.dir=direction + src.dirtype=dt + +/datum/pipe_info/proc/Render(var/dispenser,var/label) + return "
  • [label]
  • " + +/datum/pipe_info/meter + icon = 'icons/obj/pipes.dmi' + icon_state = "meterX" + +/datum/pipe_info/meter/New() + return + +/datum/pipe_info/meter/Render(var/dispenser,var/label) + return "
  • [label]
  • " //hardcoding is no + +var/global/list/disposalpipeID2State=list( + "pipe-s", + "pipe-c", + "pipe-j1", + "pipe-j2", + "pipe-y", + "pipe-t", + "condisposal", + "outlet", + "intake", + "pipe-j1s", + "pipe-j2s" +) + +/datum/pipe_info/disposal + icon = 'icons/obj/pipes/disposal.dmi' + icon_state = "meterX" + +/datum/pipe_info/disposal/New(var/pid,var/dt) + src.id=pid + src.icon_state=disposalpipeID2State[pid+1] + src.dir=2 + src.dirtype=dt + if(pid<6 || pid>8) + icon_state = "con[icon_state]" + +/datum/pipe_info/disposal/Render(var/dispenser,var/label) + return "
  • [label]
  • " //avoid hardcoding. + +//find these defines in code\game\machinery\pipe\consruction.dm +var/global/list/RPD_recipes=list( + "Regular Pipes" = list( + "Pipe" = new /datum/pipe_info(PIPE_SIMPLE_STRAIGHT, 1, PIPE_BINARY), + "Bent Pipe" = new /datum/pipe_info(PIPE_SIMPLE_BENT, 5, PIPE_BENT), + "Manifold" = new /datum/pipe_info(PIPE_MANIFOLD, 1, PIPE_TRINARY), + "Manual Valve" = new /datum/pipe_info(PIPE_MVALVE, 1, PIPE_BINARY), + "Digital Valve" = new /datum/pipe_info(PIPE_DVALVE, 1, PIPE_BINARY), + "4-Way Manifold" = new /datum/pipe_info(PIPE_4WAYMANIFOLD, 1, PIPE_BINARY), + ), + "Devices"=list( + "Connector" = new /datum/pipe_info(PIPE_CONNECTOR, 1, PIPE_UNARY), + "Unary Vent" = new /datum/pipe_info(PIPE_UVENT, 1, PIPE_UNARY), + "Gas Pump" = new /datum/pipe_info(PIPE_PUMP, 1, PIPE_UNARY), + "Passive Gate" = new /datum/pipe_info(PIPE_PASSIVE_GATE, 1, PIPE_UNARY), + "Volume Pump" = new /datum/pipe_info(PIPE_VOLUME_PUMP, 1, PIPE_UNARY), + "Scrubber" = new /datum/pipe_info(PIPE_SCRUBBER, 1, PIPE_UNARY), + "Meter" = new /datum/pipe_info/meter(), + "Gas Filter" = new /datum/pipe_info(PIPE_GAS_FILTER, 1, PIPE_TRIN_M), + "Gas Mixer" = new /datum/pipe_info(PIPE_GAS_MIXER, 1, PIPE_TRIN_M), +// "Injector" = new /datum/pipe_info(PIPE_INJECTOR, 1, PIPE_UNARY), + ), + "Heat Exchange" = list( + "Pipe" = new /datum/pipe_info(PIPE_HE_STRAIGHT, 1, PIPE_BINARY), + "Bent Pipe" = new /datum/pipe_info(PIPE_HE_BENT, 5, PIPE_BENT), + "Junction" = new /datum/pipe_info(PIPE_JUNCTION, 1, PIPE_UNARY), + "Heat Exchanger" = new /datum/pipe_info(PIPE_HEAT_EXCHANGE, 1, PIPE_UNARY), + ), + "Insulated Pipes" = list( + "Pipe" = new /datum/pipe_info(PIPE_INSULATED_STRAIGHT,1, PIPE_BINARY), + "Bent Pipe" = new /datum/pipe_info(PIPE_INSULATED_BENT, 5, PIPE_BENT), + ), + "Disposal Pipes" = list( + "Pipe" = new /datum/pipe_info/disposal(DISP_PIPE_STRAIGHT, PIPE_BINARY), + "Bent Pipe" = new /datum/pipe_info/disposal(DISP_PIPE_BENT, PIPE_BENT), + "Junction" = new /datum/pipe_info/disposal(DISP_JUNCTION, PIPE_TRINARY), + "Y-Junction" = new /datum/pipe_info/disposal(DISP_YJUNCTION, PIPE_TRINARY), + "Trunk" = new /datum/pipe_info/disposal(DISP_END_TRUNK, PIPE_TRINARY), + "Bin" = new /datum/pipe_info/disposal(DISP_END_BIN, PIPE_UNARY), + "Outlet" = new /datum/pipe_info/disposal(DISP_END_OUTLET, PIPE_UNARY), + "Chute" = new /datum/pipe_info/disposal(DISP_END_CHUTE, PIPE_UNARY), + ) +) +/obj/item/weapon/pipe_dispenser + name = "Rapid Piping Device (RPD)" + desc = "A device used to rapidly pipe things." + icon = 'icons/obj/items.dmi' + icon_state = "rpd" + opacity = 0 + density = 0 + anchored = 0.0 + flags = CONDUCT + force = 10.0 + throwforce = 10.0 + throw_speed = 1 + throw_range = 5 + w_class = 3.0 + m_amt = 75000 + g_amt = 37500 + origin_tech = "engineering=4;materials=2" + var/datum/effect/effect/system/spark_spread/spark_system + var/working = 0 + var/p_type = 0 + var/p_conntype = 0 + var/p_dir = 1 + var/p_class = 0 + var/p_disposal = 0 + var/list/paint_colors = list( + "grey" = "#cccccc", + "red" = "#800000", + "blue" = "#000080", + "cyan" = "#1C94C4", + "green" = "#00CC00", + "yellow" = "#FFCC00", + "purple" = "#822BFF" + ) + var/paint_color="grey" + +/obj/item/weapon/pipe_dispenser/New() + . = ..() + spark_system = new /datum/effect/effect/system/spark_spread + spark_system.set_up(5, 0, src) + spark_system.attach(src) + +/obj/item/weapon/pipe_dispenser/attack_self(mob/user as mob) + show_menu(user) + +/obj/item/weapon/pipe_dispenser/proc/render_dir_img(var/_dir,var/pic,var/title) + var/selected="" + if(_dir == p_dir) + selected=" class=\"selected\"" + return "" + +/obj/item/weapon/pipe_dispenser/proc/show_menu(mob/user as mob) + if(!user || !src) return 0 + var/dat = {"

    Type

    +Utilities: +"} + var/icon/preview=null + for(var/category in RPD_recipes) + dat += "[category]:" + + var/color_css="" + var/color_picker="" + for(var/color_name in paint_colors) + var/color=paint_colors[color_name] + color_css += {" + a.color.[color_name] { + color: [color]; + } + a.color.[color_name]:hover { + border:1px solid [color]; + } + a.color.[color_name].selected { + background-color: [color]; + } + "} + var/selected="" + if(color_name==paint_color) + selected = " selected" + color_picker += {""} + + var/dirsel="

    Direction

    " + switch(p_conntype) + if(-1) + if(p_class==-2) + dirsel = "

    Direction

    [color_picker]" + + if(PIPE_BINARY) // Straight, N-S, W-E + if(preview) + user << browse_rsc(new /icon(preview, dir=NORTH), "vertical.png") + user << browse_rsc(new /icon(preview, dir=EAST), "horizontal.png") + + dirsel += "

    " + dirsel += render_dir_img(1,"vertical.png","Vertical") + dirsel += render_dir_img(4,"horizontal.png","Horizontal") + dirsel += "

    " + else + dirsel+={" +

    + + +

    + "} + if(PIPE_BENT) // Bent, N-W, N-E etc + if(preview) + user << browse_rsc(new /icon(preview, dir=NORTHWEST), "nw.png") + user << browse_rsc(new /icon(preview, dir=NORTHEAST), "ne.png") + user << browse_rsc(new /icon(preview, dir=SOUTHWEST), "sw.png") + user << browse_rsc(new /icon(preview, dir=SOUTHEAST), "se.png") + + dirsel += "

    " + dirsel += render_dir_img(9,"nw.png","West to North") + dirsel += render_dir_img(5,"ne.png","North to East") + dirsel += "
    " + dirsel += render_dir_img(10,"sw.png","South to West") + dirsel += render_dir_img(6,"se.png","East to South") + dirsel += "

    " + else + dirsel+={" +

    + + +
    + + +

    + "} + if(PIPE_TRINARY) // Manifold + if(preview) + user << browse_rsc(new /icon(preview, dir=NORTH), "s.png") + user << browse_rsc(new /icon(preview, dir=EAST), "w.png") + user << browse_rsc(new /icon(preview, dir=SOUTH), "n.png") + user << browse_rsc(new /icon(preview, dir=WEST), "e.png") + + dirsel += "

    " + dirsel += render_dir_img(1,"s.png","West South East") + dirsel += render_dir_img(4,"w.png","North West South") + dirsel += "
    " + dirsel += render_dir_img(2,"n.png","East North West") + dirsel += render_dir_img(8,"e.png","South East North") + dirsel += "

    " + else + dirsel+={" +

    + + +
    + + +

    + "} + if(PIPE_TRIN_M) // Mirrored ones + if(preview) + user << browse_rsc(new /icon(preview, dir=NORTH), "s.png") + user << browse_rsc(new /icon(preview, dir=EAST), "w.png") + user << browse_rsc(new /icon(preview, dir=SOUTH), "n.png") + user << browse_rsc(new /icon(preview, dir=WEST), "e.png") + user << browse_rsc(new /icon(preview, dir=SOUTHEAST), "sm.png") //each mirror icon is 45 anticlockwise from it's real direction + user << browse_rsc(new /icon(preview, dir=NORTHEAST), "wm.png") + user << browse_rsc(new /icon(preview, dir=NORTHWEST), "nm.png") + user << browse_rsc(new /icon(preview, dir=SOUTHWEST), "em.png") + + dirsel += "

    " + dirsel += render_dir_img(1,"s.png","West South East") + dirsel += render_dir_img(4,"w.png","North West South") + dirsel += "
    " + dirsel += render_dir_img(2,"n.png","East North West") + dirsel += render_dir_img(8,"e.png","South East North") + dirsel += "
    " + dirsel += render_dir_img(6,"sm.png","West South East") + dirsel += render_dir_img(5,"wm.png","North West South") + dirsel += "
    " + dirsel += render_dir_img(9,"nm.png","East North West") + dirsel += render_dir_img(10,"em.png","South East North") + dirsel += "

    " + else + dirsel+={" +

    + + +
    + + +
    + + +
    + + +

    + "} + if(PIPE_UNARY) // Unary + if(preview) + user << browse_rsc(new /icon(preview, dir=NORTH), "n.png") + user << browse_rsc(new /icon(preview, dir=EAST), "e.png") + user << browse_rsc(new /icon(preview, dir=SOUTH), "s.png") + user << browse_rsc(new /icon(preview, dir=WEST), "w.png") + + dirsel += "

    " + dirsel += render_dir_img(NORTH,"n.png","North") + dirsel += render_dir_img(EAST, "e.png","East") + dirsel += render_dir_img(SOUTH,"s.png","South") + dirsel += render_dir_img(WEST, "w.png","West") + dirsel += "

    " + else + dirsel+={" +

    + + + + +

    + "} + + dat = {" + + + [name] + + + +[dirsel][dat] + + +"} + user << browse(dat, "window=pipedispenser") + onclose(user, "pipedispenser") + return + +/obj/item/weapon/pipe_dispenser/Topic(href, href_list) + if(usr.stat || usr.restrained()) + usr << browse(null, "window=pipedispenser") + return + usr.set_machine(src) + src.add_fingerprint(usr) + if(href_list["setdir"]) + p_dir= text2num(href_list["setdir"]) + show_menu(usr) + + if(href_list["eatpipes"]) + p_class = -1 + p_conntype=-1 + p_dir=1 + src.spark_system.start() + playsound(get_turf(src), 'sound/effects/pop.ogg', 50, 0) + show_menu(usr) + + if(href_list["paintpipes"]) + p_class = -2 + p_conntype=-1 + p_dir=1 + src.spark_system.start() + playsound(get_turf(src), 'sound/effects/pop.ogg', 50, 0) + show_menu(usr) + + if(href_list["set_color"]) + paint_color=href_list["set_color"] + src.spark_system.start() + playsound(get_turf(src), 'sound/effects/pop.ogg', 50, 0) + show_menu(usr) + + if(href_list["makepipe"]) + p_type = text2num(href_list["makepipe"]) + p_dir = text2num(href_list["dir"]) + p_conntype = text2num(href_list["type"]) + p_class = 0 + src.spark_system.start() + playsound(get_turf(src), 'sound/effects/pop.ogg', 50, 0) + show_menu(usr) + + if(href_list["makemeter"]) + p_class = 1 + p_conntype=-1 + p_dir=1 + src.spark_system.start() + playsound(get_turf(src), 'sound/effects/pop.ogg', 50, 0) + show_menu(usr) + + if(href_list["dmake"]) + p_type = text2num(href_list["dmake"]) + p_conntype = text2num(href_list["type"]) + p_dir = 1 + p_class = 2 + src.spark_system.start() + playsound(get_turf(src), 'sound/effects/pop.ogg', 50, 0) + show_menu(usr) + + +/obj/item/weapon/pipe_dispenser/afterattack(atom/A, mob/user) + if(!in_range(A,user)) + return + if(loc != user) + return + if(!isrobot(user) && !ishuman(user)) + return 0 + if(istype(A,/area/shuttle)||istype(A,/turf/space/transit)) + return 0 + + switch(p_class) + if(-2) // Paint pipes + if(!istype(A,/obj/machinery/atmospherics/pipe) || istype(A,/obj/machinery/atmospherics/pipe/simple/heat_exchanging) || istype(A,/obj/machinery/atmospherics/pipe/simple/insulated)) + // Avoid spewing errors about invalid mode -2 when clicking on stuff that aren't pipes. + user << "\The [src]'s error light flickers. Perhaps you need to only use it on pipes and pipe meters?" + return 0 + var/obj/machinery/atmospherics/pipe/P = A + playsound(get_turf(src), 'sound/machines/click.ogg', 50, 1) + P.pipe_color = paint_color + user.visible_message("[user] paints \the [P] [paint_color].","You paint \the [P] [paint_color].") + P.update_icon() + return 1 + if(-1) // Eating pipes + // Must click on an actual pipe or meter. + if(istype(A,/obj/item/pipe) || istype(A,/obj/item/pipe_meter) || istype(A,/obj/structure/disposalconstruct)) + user << "Destroying Pipe..." + playsound(get_turf(src), 'sound/machines/click.ogg', 50, 1) + if(do_after(user, 5)) + activate() + del(A) + return 1 + return 0 + + // Avoid spewing errors about invalid mode -1 when clicking on stuff that aren't pipes. + user << "The [src]'s error light flickers. Perhaps you need to only use it on pipes and pipe meters?" + return 0 + if(0) + if(!(istype(A, /turf))) + user << "The [src]'s error light flickers." + return 0 + user << "Building Pipes ..." + playsound(get_turf(src), 'sound/machines/click.ogg', 50, 1) + if(do_after(user, 20)) + activate() + var/obj/item/pipe/P = new (A, pipe_type=p_type, dir=p_dir) + P.update() + P.add_fingerprint(usr) + return 1 + return 0 + + if(1) + if(!(istype(A, /turf))) + user << "The [src]'s error light flickers." + return 0 + user << "Building Meter..." + playsound(get_turf(src), 'sound/machines/click.ogg', 50, 1) + if(do_after(user, 20)) + activate() + new /obj/item/pipe_meter(A) + return 1 + return 0 + + if(2) + if(!(istype(A, /turf))) + user << "The [src]'s error light flickers." + return 0 + user << "Building Pipes..." + playsound(get_turf(src), 'sound/machines/click.ogg', 50, 1) + if(do_after(user, 20)) + activate() + var/obj/structure/disposalconstruct/C = new (A) + // This may still produce runtimes, but I checked and /obj/structure/disposalconstruct + // DOES have a dir property, inherited from /obj/structure. - N3X + C.dir=p_dir + switch(p_type) + if(0) + C.ptype = 0 + if(1) + C.ptype = 1 + if(2) + C.ptype = 2 + if(3) + C.ptype = 4 + if(4) + C.ptype = 5 + if(5) + C.ptype = 6 + C.density = 1 + if(6) + C.ptype = 7 + C.density = 1 + if(7) + C.ptype = 8 + C.density = 1 + C.add_fingerprint(usr) + C.update() + return 1 + return 0 + else + ..() + return 0 + + +/obj/item/weapon/pipe_dispenser/proc/activate() + playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1) + diff --git a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm index 439fb0a86ff..ae268783c38 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm @@ -125,8 +125,8 @@ /obj/structure/closet/secure_closet/atmospherics/New() ..() - sleep(2) new /obj/item/device/radio/headset/headset_eng(src) + new /obj/item/weapon/pipe_dispenser(src) new /obj/item/weapon/storage/toolbox/mechanical(src) new /obj/item/weapon/storage/backpack/satchel_norm(src) new /obj/item/weapon/tank/emergency_oxygen/engi(src) diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 6e488bc3ec9..77be370abf8 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -109,6 +109,7 @@ modules += new /obj/item/borg/sight/meson(src) emag = new /obj/item/borg/stun(src) modules += new /obj/item/weapon/rcd/borg(src) + modules += new /obj/item/weapon/pipe_dispenser(src) //What could possibly go wrong? modules += new /obj/item/weapon/extinguisher(src) modules += new /obj/item/weapon/weldingtool/largetank/cyborg(src) modules += new /obj/item/weapon/screwdriver(src) diff --git a/code/modules/research/designs/autolathe_designs.dm b/code/modules/research/designs/autolathe_designs.dm index 8eca25e1066..71868e610c9 100644 --- a/code/modules/research/designs/autolathe_designs.dm +++ b/code/modules/research/designs/autolathe_designs.dm @@ -403,6 +403,14 @@ build_path = /obj/item/weapon/rcd category = list("hacked", "Construction") +/datum/design/rpd + name = "Rapid pipe dispenser (RPD)" + id = "rpd" + build_type = AUTOLATHE + materials = list("$metal" = 75000, "$glass" = 37500) + build_path = /obj/item/weapon/pipe_dispenser + category = list("hacked", "Construction") + /datum/design/electropack name = "Electropack" id = "electropack" diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi index 9107f227f891d081e0c4f1862df54629c8824b65..ac7af348b0f24a4a30a10a9bedb75e8156609886 100644 GIT binary patch delta 23174 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