From 4281ed5a1e2f78cb432723f74c556bcdb15dd2ec Mon Sep 17 00:00:00 2001 From: Heroman3003 <31296024+Heroman3003@users.noreply.github.com> Date: Wed, 15 Mar 2023 07:21:00 +1000 Subject: [PATCH] Delete RPD.dm --- code/game/objects/items/weapons/RPD.dm | 294 ------------------------- 1 file changed, 294 deletions(-) delete mode 100644 code/game/objects/items/weapons/RPD.dm diff --git a/code/game/objects/items/weapons/RPD.dm b/code/game/objects/items/weapons/RPD.dm deleted file mode 100644 index 4e32d69bb05..00000000000 --- a/code/game/objects/items/weapons/RPD.dm +++ /dev/null @@ -1,294 +0,0 @@ -#define ATMOS_CATEGORY 0 -#define DISPOSALS_CATEGORY 1 -#define TRANSIT_CATEGORY 2 - -#define BUILD_MODE (1<<0) -#define WRENCH_MODE (1<<1) -#define DESTROY_MODE (1<<2) -#define PAINT_MODE (1<<3) - -/obj/item/pipe_dispenser - name = "Rapid Piping Device (RPD)" - desc = "A device used to rapidly pipe things." - icon = 'icons/obj/tools.dmi' - icon_state = "rpd" - item_state = "rpd" - item_icons = list( - slot_l_hand_str = 'icons/mob/items/lefthand.dmi', - slot_r_hand_str = 'icons/mob/items/righthand.dmi', - ) - item_flags = NOBLUDGEON - force = 10 - throwforce = 10 - throw_speed = 1 - throw_range = 5 - w_class = ITEMSIZE_NORMAL - matter = list(MAT_STEEL = 50000, MAT_GLASS = 25000) - var/datum/effect_system/spark_spread/spark_system - var/p_dir = NORTH // Next pipe will be built with this dir - var/p_flipped = FALSE // If the next pipe should be built flipped - var/paint_color = "grey" // Pipe color index for next pipe painted/built. - var/category = ATMOS_CATEGORY - var/piping_layer = PIPING_LAYER_DEFAULT - var/obj/item/tool/wrench/tool - var/datum/pipe_recipe/recipe // pipe recipie selected for display/construction - var/static/datum/pipe_recipe/first_atmos - var/static/datum/pipe_recipe/first_disposal - var/mode = BUILD_MODE | DESTROY_MODE | WRENCH_MODE - var/static/list/pipe_layers = list( - "Regular" = PIPING_LAYER_REGULAR, - "Supply" = PIPING_LAYER_SUPPLY, - "Scrubber" = PIPING_LAYER_SCRUBBER, - "Fuel" = PIPING_LAYER_FUEL, - "Aux" = PIPING_LAYER_AUX - ) - -/obj/item/pipe_dispenser/Initialize() - . = ..() - src.spark_system = new /datum/effect_system/spark_spread - spark_system.set_up(5, 0, src) - spark_system.attach(src) - tool = new /obj/item/tool/wrench/cyborg(src) // RPDs have wrenches inside of them, so that they can wrench down spawned pipes without being used as superior wrenches themselves. - -/obj/item/pipe_dispenser/proc/SetupPipes() - if(!first_atmos) - first_atmos = GLOB.atmos_pipe_recipes[GLOB.atmos_pipe_recipes[1]][1] - recipe = first_atmos - if(!first_disposal) - first_disposal = GLOB.disposal_pipe_recipes[GLOB.disposal_pipe_recipes[1]][1] - -/obj/item/pipe_dispenser/Destroy() - QDEL_NULL(spark_system) - QDEL_NULL(tool) - return ..() - -/obj/item/pipe_dispenser/attack_self(mob/user) - tgui_interact(user) - -/obj/item/pipe_dispenser/ui_assets(mob/user) - return list( - get_asset_datum(/datum/asset/spritesheet/pipes), - ) - -/obj/item/pipe_dispenser/tgui_state(mob/user) - return GLOB.tgui_inventory_state - -/obj/item/pipe_dispenser/tgui_interact(mob/user, datum/tgui/ui) - SetupPipes() - ui = SStgui.try_update_ui(user, src, ui) - if(!ui) - ui = new(user, src, "RapidPipeDispenser", name) - ui.open() - -/obj/item/pipe_dispenser/tgui_data(mob/user) - var/list/data = list( - "category" = category, - "piping_layer" = piping_layer, - "pipe_layers" = pipe_layers, - "preview_rows" = recipe.get_preview(p_dir), - "categories" = list(), - "selected_color" = paint_color, - "paint_colors" = pipe_colors, - "mode" = mode - ) - - var/list/recipes - switch(category) - if(ATMOS_CATEGORY) - recipes = GLOB.atmos_pipe_recipes - if(DISPOSALS_CATEGORY) - recipes = GLOB.disposal_pipe_recipes - // if(TRANSIT_CATEGORY) - // recipes = transit_tube_recipes - for(var/c in recipes) - var/list/cat = recipes[c] - var/list/r = list() - for(var/i in 1 to cat.len) - var/datum/pipe_recipe/info = cat[i] - r += list(list("pipe_name" = info.name, "pipe_index" = i, "selected" = (info == recipe))) - data["categories"] += list(list("cat_name" = c, "recipes" = r)) - - return data - -/obj/item/pipe_dispenser/tgui_act(action, params) - SetupPipes() - if(..()) - return TRUE - if(!usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr)) - return TRUE - var/playeffect = TRUE - switch(action) - if("color") - paint_color = params["paint_color"] - if("category") - category = text2num(params["category"]) - switch(category) - if(DISPOSALS_CATEGORY) - recipe = first_disposal - if(ATMOS_CATEGORY) - recipe = first_atmos - // if(TRANSIT_CATEGORY) - // recipe = first_transit - p_dir = NORTH - playeffect = FALSE - if("piping_layer") - piping_layer = text2num(params["piping_layer"]) - playeffect = FALSE - // if("ducting_layer") - // ducting_layer = text2num(params["ducting_layer"]) - // playeffect = FALSE - if("pipe_type") - var/static/list/recipes - if(!recipes) - recipes = GLOB.disposal_pipe_recipes + GLOB.atmos_pipe_recipes - recipe = recipes[params["category"]][text2num(params["pipe_type"])] - p_dir = NORTH - if("setdir") - p_dir = text2dir(params["dir"]) - p_flipped = text2num(params["flipped"]) - playeffect = FALSE - if("mode") - var/n = text2num(params["mode"]) - if(mode & n) - mode &= ~n - else - mode |= n - if(playeffect) - spark_system.start() - playsound(get_turf(src), 'sound/effects/pop.ogg', 50, FALSE) - return TRUE - -/obj/item/pipe_dispenser/afterattack(atom/A, mob/user as mob, proximity) - if(!user.IsAdvancedToolUser() || istype(A, /turf/space/transit) || !proximity) - return ..() - - //So that changing the menu settings doesn't affect the pipes already being built. - var/queued_piping_layer = piping_layer - var/queued_p_dir = p_dir - var/queued_p_flipped = p_flipped - - //make sure what we're clicking is valid for the current mode - var/static/list/make_pipe_whitelist // This should probably be changed to be in line with polaris standards. Oh well. - if(!make_pipe_whitelist) - make_pipe_whitelist = typecacheof(list(/obj/structure/lattice, /obj/structure/girder, /obj/item/pipe)) - var/can_make_pipe = (isturf(A) || is_type_in_typecache(A, make_pipe_whitelist)) - - var/can_destroy_pipe = istype(A, /obj/item/pipe) || istype(A, /obj/item/pipe_meter) || istype(A, /obj/structure/disposalconstruct) - - . = TRUE - if((mode & DESTROY_MODE) && can_destroy_pipe) - to_chat(user, "You start destroying a pipe...") - playsound(src, 'sound/machines/click.ogg', 50, 1) - if(do_after(user, 2, target = A)) - activate() - animate_deletion(A) - return - - if((mode & PAINT_MODE)) //Paint pipes - if(istype(A, /obj/machinery/atmospherics/pipe)) - var/obj/machinery/atmospherics/pipe/P = A - playsound(src, 'sound/machines/click.ogg', 50, 1) - P.change_color(pipe_colors[paint_color]) - user.visible_message("[user] paints \the [P] [paint_color].", "You paint \the [P] [paint_color].") - return - - if(mode & BUILD_MODE) //Making pipes - switch(category) - if(ATMOS_CATEGORY) - if(!can_make_pipe) - return ..() - playsound(src, 'sound/machines/click.ogg', 50, 1) - if(istype(recipe, /datum/pipe_recipe/meter)) - to_chat(user, "You start building a meter...") - if(do_after(user, 2, target = A)) - activate() - var/obj/item/pipe_meter/PM = new /obj/item/pipe_meter(get_turf(A)) - PM.setAttachLayer(queued_piping_layer) - if(mode & WRENCH_MODE) - do_wrench(PM, user) - else if(istype(recipe, /datum/pipe_recipe/pipe)) - var/datum/pipe_recipe/pipe/R = recipe - to_chat(user, "You start building a pipe...") - if(do_after(user, 2, target = A)) - activate() - var/obj/machinery/atmospherics/path = R.pipe_type - var/pipe_item_type = initial(path.construction_type) || /obj/item/pipe - var/obj/item/pipe/P = new pipe_item_type(get_turf(A), path, queued_p_dir) - - P.update() - P.add_fingerprint(usr) - if(R.paintable) - P.color = pipe_colors[paint_color] - P.setPipingLayer(queued_piping_layer) - if(queued_p_flipped) - P.do_a_flip() - if(mode & WRENCH_MODE) - do_wrench(P, user) - else - build_effect(P) - - if(DISPOSALS_CATEGORY) //Making disposals pipes - var/datum/pipe_recipe/disposal/R = recipe - if(!istype(R) || !can_make_pipe) - return ..() - A = get_turf(A) - if(istype(A, /turf/unsimulated)) - to_chat(user, "[src]'s error light flickers; there's something in the way!") - return - to_chat(user, "You start building a disposals pipe...") - playsound(src, 'sound/machines/click.ogg', 50, 1) - if(do_after(user, 4, target = A)) - var/obj/structure/disposalconstruct/C = new(A, R.pipe_type, queued_p_dir, queued_p_flipped, R.subtype) - - if(!C.can_place()) - to_chat(user, "There's not enough room to build that here!") - qdel(C) - return - - activate() - - C.add_fingerprint(usr) - C.update_icon() - if(mode & WRENCH_MODE) - do_wrench(C, user) - else - build_effect(C) - - else - return ..() - -/obj/item/pipe_dispenser/proc/build_effect(var/obj/P, var/time = 1.5) - set waitfor = FALSE - P.filters += filter(type = "angular_blur", size = 30) - animate(P.filters[P.filters.len], size = 0, time = time) - var/outline = filter(type = "outline", size = 1, color = "#22AAFF") - P.filters += outline - sleep(time) - P.filters -= outline - P.filters -= filter(type = "angular_blur", size = 0) - -/obj/item/pipe_dispenser/proc/animate_deletion(var/obj/P, var/time = 1.5) - set waitfor = FALSE - P.filters += filter(type = "angular_blur", size = 0) - animate(P.filters[P.filters.len], size = 30, time = time) - sleep(time) - if(!QDELETED(P)) - P.filters -= filter(type = "angular_blur", size = 30) - qdel(P) - -/obj/item/pipe_dispenser/proc/activate() - playsound(src, 'sound/items/deconstruct.ogg', 50, 1) - -/obj/item/pipe_dispenser/proc/do_wrench(var/atom/target, mob/user) - var/resolved = target.attackby(tool,user) - if(!resolved && tool && target) - tool.afterattack(target,user,1) - -#undef ATMOS_CATEGORY -#undef DISPOSALS_CATEGORY -#undef TRANSIT_CATEGORY - -#undef BUILD_MODE -#undef WRENCH_MODE -#undef DESTROY_MODE -#undef PAINT_MODE