diff --git a/code/_helpers/atmospherics.dm b/code/_helpers/atmospherics.dm index b1489f60ed5..045cc0f9167 100644 --- a/code/_helpers/atmospherics.dm +++ b/code/_helpers/atmospherics.dm @@ -45,4 +45,4 @@ if(P) return atmosanalyzer_scan(src, src.P.air_contents, user) /obj/item/flamethrower/atmosanalyze(var/mob/user) - if(ptank) return atmosanalyzer_scan(src, ptank.air_contents, user) + if(gas_tank) return atmosanalyzer_scan(src, gas_tank.air_contents, user) diff --git a/code/game/jobs/job/engineering.dm b/code/game/jobs/job/engineering.dm index d35b0939cfe..de2cabf214a 100644 --- a/code/game/jobs/job/engineering.dm +++ b/code/game/jobs/job/engineering.dm @@ -35,7 +35,7 @@ uniform = /obj/item/clothing/under/rank/chief_engineer head = /obj/item/clothing/head/hardhat/white - belt = /obj/item/storage/belt/utility + belt = /obj/item/storage/belt/utility/ce tab_pda = /obj/item/modular_computer/handheld/pda/engineering/ce wristbound = /obj/item/modular_computer/handheld/wristbound/preset/pda/engineering/ce tablet = /obj/item/modular_computer/handheld/preset/engineering/ce diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 55c622c9649..1858fbdd718 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -944,3 +944,6 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out. if(SP.current_slide == src && (SP.projection in view(world.view, user))) return TRUE return FALSE + +/obj/item/proc/get_belt_overlay() //Returns the icon used for overlaying the object on a belt + return mutable_appearance('icons/obj/clothing/belt_overlays.dmi', icon_state) diff --git a/code/game/objects/items/devices/multitool.dm b/code/game/objects/items/devices/multitool.dm index 210aedc63f1..0ea4f187559 100644 --- a/code/game/objects/items/devices/multitool.dm +++ b/code/game/objects/items/devices/multitool.dm @@ -1,6 +1,5 @@ /** * Multitool -- A multitool is used for hacking electronic devices. - * TO-DO -- Using it as a power measurement tool for cables etc. Nannek. * */ @@ -8,12 +7,11 @@ name = "multitool" desc = "Used for pulsing wires to test which to cut. Not recommended by doctors." desc_info = "You can use this on airlocks or APCs to try to hack them without cutting wires." + icon = 'icons/obj/contained_items/tools/multitool.dmi' icon_state = "multitool" item_state = "multitool" - item_icons = list( - slot_l_hand_str = 'icons/mob/items/lefthand_tools.dmi', - slot_r_hand_str = 'icons/mob/items/righthand_tools.dmi', - ) + item_icons = null + contained_sprite = TRUE flags = CONDUCT force = 5.0 w_class = ITEMSIZE_SMALL @@ -32,6 +30,9 @@ var/buffer_name var/atom/buffer_object + var/datum/integrated_io/selected_io = null + var/mode = 0 + /obj/item/device/multitool/Destroy() unregister_buffer(buffer_object) return ..() @@ -81,3 +82,68 @@ user.AddTopicPrint(src) MT.interact(src, user) return 1 + +/obj/item/device/multitool/attack_self(mob/user) + if(selected_io) + selected_io = null + to_chat(user, "You clear the wired connection from the multitool.") + else + ..() + update_icon() + +/obj/item/device/multitool/update_icon() + if(selected_io) + if(buffer || connecting || buffer_object) + icon_state = "multitool_tracking" + else + icon_state = "multitool_red" + else + if(buffer || connecting || buffer_object) + icon_state = "multitool_tracking_fail" + else + icon_state = "multitool" + +/obj/item/device/multitool/proc/wire(datum/integrated_io/io, mob/user) + if(!io.holder.assembly) + to_chat(user, "\The [io.holder] needs to be secured inside an assembly first.") + return + + if(selected_io) + if(io == selected_io) + to_chat(user, "Wiring \the [selected_io.holder]'s '[selected_io.name]' pin into itself is rather pointless.") + return + if(io.io_type != selected_io.io_type) + to_chat(user, "Those two types of channels are incompatable. The first is a [selected_io.io_type], \ + while the second is a [io.io_type].") + return + if(io.holder.assembly && io.holder.assembly != selected_io.holder.assembly) + to_chat(user, "Both \the [io.holder] and \the [selected_io.holder] need to be inside the same assembly.") + return + selected_io.linked |= io + io.linked |= selected_io + + to_chat(user, "You connect \the [selected_io.holder]'s '[selected_io.name]' pin to \the [io.holder]'s '[io.name]' pin.") + selected_io.holder.interact(user) // This is to update the UI. + selected_io = null + + else + selected_io = io + to_chat(user, "You link \the multitool to \the [selected_io.holder]'s [selected_io.name] data channel.") + + update_icon() + +/obj/item/device/multitool/proc/unwire(datum/integrated_io/io1, datum/integrated_io/io2, mob/user) + if(!io1.linked.len || !io2.linked.len) + to_chat(user, "There is nothing connected to the data channel.") + return + + if(!(io1 in io2.linked) || !(io2 in io1.linked) ) + to_chat(user, "These data pins aren't connected!") + return + else + io1.linked.Remove(io2) + io2.linked.Remove(io1) + to_chat(user, "You clip the data connection between the [io1.holder.displayed_name]'s \ + '[io1.name]' pin and the [io2.holder.displayed_name]'s '[io2.name]' pin.") + io1.holder.interact(user) // This is to update the UI. + update_icon() \ No newline at end of file diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index db114649a73..b152e9e9122 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -322,8 +322,10 @@ BREATH ANALYZER /obj/item/device/analyzer name = "analyzer" desc = "A hand-held environmental scanner which reports current gas levels." - icon_state = "atmos" + icon = 'icons/obj/contained_items/tools/air_analyzer.dmi' + icon_state = "analyzer" item_state = "analyzer" + contained_sprite = TRUE w_class = ITEMSIZE_SMALL flags = CONDUCT slot_flags = SLOT_BELT diff --git a/code/game/objects/items/devices/t_scanner.dm b/code/game/objects/items/devices/t_scanner.dm index 64a12a2e188..89bcae91812 100644 --- a/code/game/objects/items/devices/t_scanner.dm +++ b/code/game/objects/items/devices/t_scanner.dm @@ -3,10 +3,12 @@ /obj/item/device/t_scanner name = "\improper T-ray scanner" desc = "A terahertz-ray emitter and scanner used to detect underfloor objects such as cables and pipes." + icon = 'icons/obj/contained_items/tools/t_scanner.dmi' icon_state = "t-ray0" + item_state = "t-ray" + contained_sprite = TRUE slot_flags = SLOT_BELT w_class = ITEMSIZE_SMALL - item_state = "electronic" matter = list(DEFAULT_WALL_MATERIAL = 150) origin_tech = list(TECH_MAGNET = 1, TECH_ENGINEERING = 1) action_button_name = "Toggle T-Ray scanner" diff --git a/code/game/objects/items/weapons/flamethrower.dm b/code/game/objects/items/weapons/flamethrower.dm index 8edf6e71d0e..c6efb9d462b 100644 --- a/code/game/objects/items/weapons/flamethrower.dm +++ b/code/game/objects/items/weapons/flamethrower.dm @@ -1,9 +1,10 @@ /obj/item/flamethrower name = "flamethrower" desc = "A flamethrower created by modifying a welding tool to fit an external gas tank." - icon = 'icons/obj/flamethrower.dmi' - icon_state = "flamethrowerbase" + icon = 'icons/obj/contained_items/weapons/flamethrower.dmi' + icon_state = "flamethrower" item_state = "flamethrower_0" + contained_sprite = TRUE var/fire_sound = 'sound/weapons/flamethrower.ogg' flags = CONDUCT force = 3.0 @@ -20,13 +21,13 @@ var/turf/previousturf = null var/obj/item/weldingtool/weldtool = null var/obj/item/device/assembly/igniter/igniter = null - var/obj/item/tank/phoron/ptank = null + var/obj/item/tank/gas_tank = null /obj/item/flamethrower/examine(mob/user) ..() if(Adjacent(user)) - if(ptank) - to_chat(user, SPAN_NOTICE("Release pressure is set to [throw_amount] kPa. The tank has about [round(ptank.air_contents.return_pressure(), 10)] kPa left in it.")) + if(gas_tank) + to_chat(user, SPAN_NOTICE("Release pressure is set to [throw_amount] kPa. The tank has about [round(gas_tank.air_contents.return_pressure(), 10)] kPa left in it.")) else to_chat(user, SPAN_WARNING("It has no gas tank installed.")) if(igniter) @@ -39,8 +40,8 @@ qdel(weldtool) if(igniter) qdel(igniter) - if(ptank) - qdel(ptank) + if(gas_tank) + qdel(gas_tank) return ..() @@ -61,8 +62,10 @@ cut_overlays() if(igniter) add_overlay("+igniter[secured]") - if(ptank) - add_overlay("+ptank") + if(istype(gas_tank, /obj/item/tank/phoron)) + add_overlay("+phoron_tank") + else if(istype(gas_tank, /obj/item/tank/hydrogen)) + add_overlay("+hydro_tank") if(lit) add_overlay("+lit") item_state = "flamethrower_1" @@ -75,9 +78,9 @@ /obj/item/flamethrower/afterattack(atom/target, mob/user, proximity) if(proximity) return - if(!ptank) + if(!gas_tank) return - if(ptank.air_contents.get_by_flag(XGM_GAS_FUEL) < 1) + if(gas_tank.air_contents.get_by_flag(XGM_GAS_FUEL) < 1) to_chat(user, SPAN_WARNING("\The [src] doesn't have enough fuel left to throw!")) return // Make sure our user is still holding us @@ -99,9 +102,9 @@ if(igniter) igniter.forceMove(T) igniter = null - if(ptank) - ptank.forceMove(T) - ptank = null + if(gas_tank) + gas_tank.forceMove(T) + gas_tank = null new /obj/item/stack/rods(T) qdel(src) return @@ -125,12 +128,12 @@ update_icon() return - else if(istype(W, /obj/item/tank/phoron)) - if(ptank) + else if(istype(W, /obj/item/tank/phoron) || istype(W, /obj/item/tank/hydrogen)) + if(gas_tank) to_chat(user, SPAN_WARNING("There appears to already be a tank loaded in \the [src]!")) return user.drop_from_inventory(W, src) - ptank = W + gas_tank = W update_icon() return @@ -149,7 +152,7 @@ /obj/item/flamethrower/attack_self(mob/user) if(use_check_and_message(user)) return - if(!ptank) + if(!gas_tank) to_chat(user, SPAN_WARNING("Attach a phoron tank first!")) return var/list/options = list( @@ -163,10 +166,10 @@ return switch(handle) if("Eject Tank") - if(!ptank) + if(!gas_tank) return - user.put_in_hands(ptank) - ptank = null + user.put_in_hands(gas_tank) + gas_tank = null lit = FALSE if("Light") attempt_lighting(user) @@ -194,10 +197,10 @@ if(lit) to_chat(user, SPAN_WARNING("\The [src] is already lit.")) return - if(!ptank) + if(!gas_tank) to_chat(user, SPAN_WARNING("\The [src] doesn't have a tank installed.")) return - if(ptank.air_contents.get_by_flag(XGM_GAS_FUEL) < 1) + if(gas_tank.air_contents.get_by_flag(XGM_GAS_FUEL) < 1) to_chat(user, SPAN_WARNING("\The [src] doesn't have any flammable fuel to light!")) return lit = TRUE @@ -233,13 +236,13 @@ /obj/item/flamethrower/proc/ignite_turf(turf/target) - var/datum/gas_mixture/air_transfer = ptank.air_contents.remove_ratio(0.02 * (throw_amount / 100)) + var/datum/gas_mixture/air_transfer = gas_tank.air_contents.remove_ratio(0.02 * (throw_amount / 100)) new /obj/effect/decal/cleanable/liquid_fuel/flamethrower_fuel(target, air_transfer.get_by_flag(XGM_GAS_FUEL) * 15, get_dir(loc, target)) for(var/g in air_transfer.gas) if(gas_data.flags[g] & XGM_GAS_FUEL) air_transfer.gas[g] = 0 target.assume_air(air_transfer) - target.hotspot_expose((ptank.air_contents.temperature*2) + 400, 500) + target.hotspot_expose((gas_tank.air_contents.temperature*2) + 400, 500) /obj/item/flamethrower/full/Initialize() . = ..() diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm index 8e488ae1638..565d4cc8da1 100644 --- a/code/game/objects/items/weapons/storage/belt.dm +++ b/code/game/objects/items/weapons/storage/belt.dm @@ -14,12 +14,20 @@ pickup_sound = 'sound/items/pickup/toolbelt.ogg' var/flipped = FALSE var/show_above_suit = FALSE + var/content_overlays = FALSE //If this is true, the belt will gain overlays based on what it's holding /obj/item/storage/belt/proc/update_clothing_icon() if(ismob(src.loc)) var/mob/M = src.loc M.update_inv_belt() +/obj/item/storage/belt/update_icon() + cut_overlays() + if(content_overlays) + for(var/obj/item/I in contents) + add_overlay(I.get_belt_overlay()) + ..() + /obj/item/storage/belt/verb/toggle_layer() set name = "Switch Belt Layer" set category = "Object" @@ -34,6 +42,10 @@ . = ..() update_flip_verb() +/obj/item/storage/belt/fill() + . = ..() + update_icon() + /obj/item/storage/belt/proc/update_flip_verb() if(("[initial(icon_state)]_flip") in icon_states(icon)) // Check for whether it has a flipped icon. Prevents invisible sprites. verbs += /obj/item/storage/belt/proc/flipbelt @@ -86,7 +98,11 @@ /obj/item/device/debugger, /obj/item/device/eftpos ) + content_overlays = TRUE +/obj/item/storage/belt/utility/ce + icon_state = "utilitybelt_ce" + item_state = "utility_ce" /obj/item/storage/belt/utility/full starts_with = list( @@ -258,6 +274,7 @@ /obj/item/device/holowarrant, /obj/item/device/radio ) + content_overlays = TRUE /obj/item/storage/belt/soulstone name = "soul stone belt" diff --git a/code/game/objects/items/weapons/tanks/tank_types.dm b/code/game/objects/items/weapons/tanks/tank_types.dm index 9e283afce3e..482d567af43 100644 --- a/code/game/objects/items/weapons/tanks/tank_types.dm +++ b/code/game/objects/items/weapons/tanks/tank_types.dm @@ -90,9 +90,9 @@ if (istype(W, /obj/item/flamethrower)) var/obj/item/flamethrower/F = W - if ((!F.secured)||(F.ptank)) return + if ((!F.secured)||(F.gas_tank)) return src.master = F - F.ptank = src + F.gas_tank = src user.remove_from_mob(src) src.forceMove(F) return diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm index 5dd1f8c3791..f28fcb6e41f 100644 --- a/code/game/objects/items/weapons/tools.dm +++ b/code/game/objects/items/weapons/tools.dm @@ -82,6 +82,13 @@ tf.Translate(-3,0) //Could do this with pixel_x but let's just update the appearance once. transform = tf +/obj/item/screwdriver/get_belt_overlay() + var/mutable_appearance/body = mutable_appearance('icons/obj/clothing/belt_overlays.dmi', "screwdriver") + var/mutable_appearance/head = mutable_appearance('icons/obj/clothing/belt_overlays.dmi', "screwdriver_head") + body.color = color + head.add_overlay(body) + return head + /obj/item/screwdriver/pickup(mob/user) ..() update_icon() @@ -150,6 +157,13 @@ tf.Translate(-1,0) //Could do this with pixel_x but let's just update the appearance once. transform = tf +/obj/item/wirecutters/get_belt_overlay() + var/mutable_appearance/body = mutable_appearance('icons/obj/clothing/belt_overlays.dmi', "wirecutters") + var/mutable_appearance/head = mutable_appearance('icons/obj/clothing/belt_overlays.dmi', "wirecutters_head") + body.color = color + head.add_overlay(body) + return head + /obj/item/wirecutters/pickup(mob/user) ..() update_icon() @@ -191,20 +205,15 @@ /obj/item/weldingtool name = "welding tool" desc = "A welding tool with a built-in fuel tank, designed for welding and cutting metal." - icon = 'icons/obj/tools.dmi' - item_icons = list( - slot_l_hand_str = 'icons/mob/items/lefthand_tools.dmi', - slot_r_hand_str = 'icons/mob/items/righthand_tools.dmi', - ) - icon_state = "welder_off" - item_state = "welder_off" + icon = 'icons/obj/contained_items/tools/welding_tools.dmi' + icon_state = "welder" + item_state = "welder" + contained_sprite = TRUE flags = CONDUCT slot_flags = SLOT_BELT drop_sound = 'sound/items/drop/weldingtool.ogg' pickup_sound = 'sound/items/pickup/weldingtool.ogg' usesound = 'sound/items/welder.ogg' - var/base_iconstate = "welder"//These are given an _on/_off suffix before being used - var/base_itemstate = "welder" //Amount of OUCH when it's thrown force = 3 @@ -224,14 +233,16 @@ var/status = 1 //Whether the welder is secured or unsecured (able to attach rods to it to make a flamethrower) var/max_fuel = 20 //The max amount of fuel the welder can hold + var/change_icons = TRUE + /obj/item/weldingtool/iswelder() return TRUE /obj/item/weldingtool/largetank name = "industrial welding tool" desc = "A welding tool with an extended-capacity built-in fuel tank, standard issue for engineers." - base_iconstate = "ind_welder" - base_itemstate = "ind_welder" + icon_state = "indwelder" + item_state = "welder" max_fuel = 40 matter = list(DEFAULT_WALL_MATERIAL = 100, MATERIAL_GLASS = 60) origin_tech = list(TECH_ENGINEERING = 2) @@ -239,8 +250,8 @@ /obj/item/weldingtool/hugetank name = "advanced welding tool" desc = "A rare and powerful welding tool with a super-extended fuel tank." - base_iconstate = "adv_welder" - base_itemstate = "adv_welder" + icon_state = "advwelder" + item_state = "advwelder" max_fuel = 80 matter = list(DEFAULT_WALL_MATERIAL = 200, MATERIAL_GLASS = 120) origin_tech = list(TECH_ENGINEERING = 3) @@ -249,16 +260,16 @@ /obj/item/weldingtool/experimental name = "experimental welding tool" desc = "A scientifically-enhanced welding tool that uses fuel-producing microbes to gradually replenish its fuel supply." - base_iconstate = "exp_welder" - base_itemstate = "exp_welder" + icon_state = "expwelder" + item_state = "expwelder" max_fuel = 40 matter = list(DEFAULT_WALL_MATERIAL = 100, MATERIAL_GLASS = 120) origin_tech = list(TECH_ENGINEERING = 4, TECH_BIO = 4) - var/last_gen = 0 var/fuelgen_delay = 400 //The time, in deciseconds, required to regenerate one unit of fuel //400 = 1 unit per 40 seconds + change_icons = FALSE //Welding tool functionality here /obj/item/weldingtool/Initialize() @@ -270,17 +281,27 @@ R.add_reagent(/decl/reagent/fuel, max_fuel) update_icon() -/obj/item/weldingtool/update_icon() - ..() - var/add = welding ? "_on" : "_off" - icon_state = base_iconstate + add //These are given an _on/_off suffix before being used - item_state = base_itemstate + add +/obj/item/weldingtool/proc/update_torch() + if(welding) + add_overlay("[initial(icon_state)]-on") + item_state = "[initial(item_state)]1" + else + item_state = "[initial(item_state)]" + if(welding == 2) set_light(0.7, 2, l_color = LIGHT_COLOR_CYAN) else if (welding == 1) set_light(0.6, 1.5, l_color = LIGHT_COLOR_LAVA) else set_light(0) + +/obj/item/weldingtool/update_icon() + cut_overlays() + if(change_icons) + var/ratio = get_fuel() / max_fuel + ratio = CEILING(ratio*4, 1) * 25 + add_overlay("[initial(icon_state)][ratio]") + update_torch() var/mob/M = loc if(istype(M)) M.update_inv_l_hand() @@ -712,13 +733,10 @@ /obj/item/powerdrill name = "impact wrench" desc = "The screwdriver's big brother." - icon = 'icons/obj/tools.dmi' - item_icons = list( - slot_l_hand_str = 'icons/mob/items/lefthand_tools.dmi', - slot_r_hand_str = 'icons/mob/items/righthand_tools.dmi', - ) - icon_state = "powerdrillyellow" - item_state = "powerdrillyellow" + icon = 'icons/obj/contained_items/tools/impact_wrench.dmi' + icon_state = "impact_wrench-screw" + item_state = "impact_wrench" + contained_sprite = TRUE force = 8 attack_verb = list("gored", "drilled", "screwed", "punctured") w_class = ITEMSIZE_SMALL @@ -730,12 +748,8 @@ "wrenchbit" ) - /obj/item/powerdrill/Initialize() . = ..() - var/drillcolor = pick("red", "blue", "yellow", "green") - icon_state = "powerdrill[drillcolor]" - item_state = icon_state update_tool() /obj/item/powerdrill/examine(var/mob/user) @@ -763,13 +777,12 @@ return tools[current_tool] == "screwdriverbit" /obj/item/powerdrill/proc/update_tool() - cut_overlays() if(isscrewdriver()) usesound = 'sound/items/air_wrench.ogg' - add_overlay("screwdriverbit") + icon_state = "impact_wrench-screw" else if(iswrench()) usesound = 'sound/items/drill_use.ogg' - add_overlay("wrenchbit") + icon_state = "impact_wrench-wrench" /obj/item/powerdrill/attack_self(var/mob/user) if(++current_tool > tools.len) diff --git a/code/modules/integrated_electronics/core/tools.dm b/code/modules/integrated_electronics/core/tools.dm index 5052ea23b50..cf8e710f2d6 100644 --- a/code/modules/integrated_electronics/core/tools.dm +++ b/code/modules/integrated_electronics/core/tools.dm @@ -165,75 +165,6 @@ io.holder.interact(user) // This is to update the UI. -/obj/item/device/multitool - var/datum/integrated_io/selected_io = null - var/mode = 0 - -/obj/item/device/multitool/attack_self(mob/user) - if(selected_io) - selected_io = null - to_chat(user, "You clear the wired connection from the multitool.") - else - ..() - update_icon() - -/obj/item/device/multitool/update_icon() - if(selected_io) - if(buffer || connecting || buffer_object) - icon_state = "multitool_tracking" - else - icon_state = "multitool_red" - else - if(buffer || connecting || buffer_object) - icon_state = "multitool_tracking_fail" - else - icon_state = "multitool" - -/obj/item/device/multitool/proc/wire(datum/integrated_io/io, mob/user) - if(!io.holder.assembly) - to_chat(user, "\The [io.holder] needs to be secured inside an assembly first.") - return - - if(selected_io) - if(io == selected_io) - to_chat(user, "Wiring \the [selected_io.holder]'s '[selected_io.name]' pin into itself is rather pointless.") - return - if(io.io_type != selected_io.io_type) - to_chat(user, "Those two types of channels are incompatable. The first is a [selected_io.io_type], \ - while the second is a [io.io_type].") - return - if(io.holder.assembly && io.holder.assembly != selected_io.holder.assembly) - to_chat(user, "Both \the [io.holder] and \the [selected_io.holder] need to be inside the same assembly.") - return - selected_io.linked |= io - io.linked |= selected_io - - to_chat(user, "You connect \the [selected_io.holder]'s '[selected_io.name]' pin to \the [io.holder]'s '[io.name]' pin.") - selected_io.holder.interact(user) // This is to update the UI. - selected_io = null - - else - selected_io = io - to_chat(user, "You link \the multitool to \the [selected_io.holder]'s [selected_io.name] data channel.") - - update_icon() - -/obj/item/device/multitool/proc/unwire(datum/integrated_io/io1, datum/integrated_io/io2, mob/user) - if(!io1.linked.len || !io2.linked.len) - to_chat(user, "There is nothing connected to the data channel.") - return - - if(!(io1 in io2.linked) || !(io2 in io1.linked) ) - to_chat(user, "These data pins aren't connected!") - return - else - io1.linked.Remove(io2) - io2.linked.Remove(io1) - to_chat(user, "You clip the data connection between the [io1.holder.displayed_name]'s \ - '[io1.name]' pin and the [io2.holder.displayed_name]'s '[io2.name]' pin.") - io1.holder.interact(user) // This is to update the UI. - update_icon() - /obj/item/device/integrated_electronics/detailer name = "assembly detailer" desc = "A combination autopainter and flash anodizer designed to give electronic assemblies a colorful, wear-resistant finish." diff --git a/code/modules/mob/living/silicon/robot/items/robot_tools.dm b/code/modules/mob/living/silicon/robot/items/robot_tools.dm index 1e16bb53e9e..5b98876e99b 100644 --- a/code/modules/mob/living/silicon/robot/items/robot_tools.dm +++ b/code/modules/mob/living/silicon/robot/items/robot_tools.dm @@ -19,6 +19,7 @@ /obj/item/weldingtool/robotic icon = 'icons/obj/robot_items.dmi' + change_icons = FALSE /obj/item/soap/drone name = "integrated soap" diff --git a/html/changelogs/geeves-tool_resprite.yml b/html/changelogs/geeves-tool_resprite.yml new file mode 100644 index 00000000000..294adfac249 --- /dev/null +++ b/html/changelogs/geeves-tool_resprite.yml @@ -0,0 +1,6 @@ +author: Geeves + +delete-after: True + +changes: + - imageadd: "Ported and tweaked sprites for: Toolbelts, Belt Overlays, Welding Tools, Impact Wrench, Air Analyzer, T-ray Scanner, Flamethrower, Multitool." \ No newline at end of file diff --git a/icons/mob/belt.dmi b/icons/mob/belt.dmi index 5469d7a1ea9..bf528a4c08f 100644 Binary files a/icons/mob/belt.dmi and b/icons/mob/belt.dmi differ diff --git a/icons/mob/items/device/lefthand_device.dmi b/icons/mob/items/device/lefthand_device.dmi index 9a35b91b9bd..6707f167379 100644 Binary files a/icons/mob/items/device/lefthand_device.dmi and b/icons/mob/items/device/lefthand_device.dmi differ diff --git a/icons/mob/items/device/righthand_device.dmi b/icons/mob/items/device/righthand_device.dmi index a9acc63d088..087752b205d 100644 Binary files a/icons/mob/items/device/righthand_device.dmi and b/icons/mob/items/device/righthand_device.dmi differ diff --git a/icons/mob/items/lefthand.dmi b/icons/mob/items/lefthand.dmi index be996b6356f..0037616a661 100644 Binary files a/icons/mob/items/lefthand.dmi and b/icons/mob/items/lefthand.dmi differ diff --git a/icons/mob/items/lefthand_tools.dmi b/icons/mob/items/lefthand_tools.dmi index 04e670c462d..0efbc63e443 100644 Binary files a/icons/mob/items/lefthand_tools.dmi and b/icons/mob/items/lefthand_tools.dmi differ diff --git a/icons/mob/items/righthand.dmi b/icons/mob/items/righthand.dmi index 6a4d877635e..4622c6acc04 100644 Binary files a/icons/mob/items/righthand.dmi and b/icons/mob/items/righthand.dmi differ diff --git a/icons/mob/items/righthand_tools.dmi b/icons/mob/items/righthand_tools.dmi index b083665204e..037f1cc49c0 100644 Binary files a/icons/mob/items/righthand_tools.dmi and b/icons/mob/items/righthand_tools.dmi differ diff --git a/icons/obj/clothing/belt_overlays.dmi b/icons/obj/clothing/belt_overlays.dmi new file mode 100644 index 00000000000..11da3958454 Binary files /dev/null and b/icons/obj/clothing/belt_overlays.dmi differ diff --git a/icons/obj/clothing/belts.dmi b/icons/obj/clothing/belts.dmi index 54894f14c13..f915affe1e5 100644 Binary files a/icons/obj/clothing/belts.dmi and b/icons/obj/clothing/belts.dmi differ diff --git a/icons/obj/contained_items/tools/air_analyzer.dmi b/icons/obj/contained_items/tools/air_analyzer.dmi new file mode 100644 index 00000000000..847c696185b Binary files /dev/null and b/icons/obj/contained_items/tools/air_analyzer.dmi differ diff --git a/icons/obj/contained_items/tools/impact_wrench.dmi b/icons/obj/contained_items/tools/impact_wrench.dmi new file mode 100644 index 00000000000..425220a4b87 Binary files /dev/null and b/icons/obj/contained_items/tools/impact_wrench.dmi differ diff --git a/icons/obj/contained_items/tools/multitool.dmi b/icons/obj/contained_items/tools/multitool.dmi new file mode 100644 index 00000000000..6ca232e2765 Binary files /dev/null and b/icons/obj/contained_items/tools/multitool.dmi differ diff --git a/icons/obj/contained_items/tools/t_scanner.dmi b/icons/obj/contained_items/tools/t_scanner.dmi new file mode 100644 index 00000000000..96d995f9093 Binary files /dev/null and b/icons/obj/contained_items/tools/t_scanner.dmi differ diff --git a/icons/obj/contained_items/tools/welding_tools.dmi b/icons/obj/contained_items/tools/welding_tools.dmi new file mode 100644 index 00000000000..3ef86e6dd62 Binary files /dev/null and b/icons/obj/contained_items/tools/welding_tools.dmi differ diff --git a/icons/obj/contained_items/weapons/flamethrower.dmi b/icons/obj/contained_items/weapons/flamethrower.dmi new file mode 100644 index 00000000000..d13ec20ea0d Binary files /dev/null and b/icons/obj/contained_items/weapons/flamethrower.dmi differ diff --git a/icons/obj/device.dmi b/icons/obj/device.dmi index a8b889111fd..2abf454ab8b 100644 Binary files a/icons/obj/device.dmi and b/icons/obj/device.dmi differ diff --git a/icons/obj/flamethrower.dmi b/icons/obj/flamethrower.dmi deleted file mode 100644 index dd470c47809..00000000000 Binary files a/icons/obj/flamethrower.dmi and /dev/null differ diff --git a/icons/obj/robot_items.dmi b/icons/obj/robot_items.dmi index 8a495202f7f..b6fe254e02e 100644 Binary files a/icons/obj/robot_items.dmi and b/icons/obj/robot_items.dmi differ diff --git a/icons/obj/tools.dmi b/icons/obj/tools.dmi index af6a6fef257..8f89da9e2a6 100644 Binary files a/icons/obj/tools.dmi and b/icons/obj/tools.dmi differ