diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index ef4561b5720..bf67c82b513 100644 --- a/code/game/objects/items/devices/flashlight.dm +++ b/code/game/objects/items/devices/flashlight.dm @@ -215,6 +215,14 @@ damtype = "fire" START_PROCESSING(SSobj, src) +/obj/item/flashlight/flare/decompile_act(obj/item/matter_decompiler/C, mob/user) + if(!fuel) + C.stored_comms["metal"] += 1 + C.stored_comms["glass"] += 1 + qdel(src) + return TRUE + return ..() + // GLOWSTICKS /obj/item/flashlight/flare/glowstick diff --git a/code/game/objects/items/weapons/cigs.dm b/code/game/objects/items/weapons/cigs.dm index 87f5475b6ff..48b79de70ef 100644 --- a/code/game/objects/items/weapons/cigs.dm +++ b/code/game/objects/items/weapons/cigs.dm @@ -52,6 +52,11 @@ LIGHTERS ARE IN LIGHTERS.DM STOP_PROCESSING(SSobj, src) return ..() +/obj/item/clothing/mask/cigarette/decompile_act(obj/item/matter_decompiler/C, mob/user) + C.stored_comms["wood"] += 1 + qdel(src) + return TRUE + /obj/item/clothing/mask/cigarette/attack(mob/living/M, mob/living/user, def_zone) if(istype(M) && M.on_fire) user.changeNext_move(CLICK_CD_MELEE) diff --git a/code/game/objects/items/weapons/storage/fancy.dm b/code/game/objects/items/weapons/storage/fancy.dm index 7934f746968..f556cd73dc3 100644 --- a/code/game/objects/items/weapons/storage/fancy.dm +++ b/code/game/objects/items/weapons/storage/fancy.dm @@ -65,6 +65,13 @@ update_icon(UPDATE_OVERLAYS) return +/obj/item/storage/fancy/donut_box/decompile_act(obj/item/matter_decompiler/C, mob/user) + if(!length(contents)) + C.stored_comms["wood"] += 1 + qdel(src) + return TRUE + return ..() + /* * Egg Box */ diff --git a/code/modules/hydroponics/grown/banana.dm b/code/modules/hydroponics/grown/banana.dm index 4b5ac043646..41e9b3ddc10 100644 --- a/code/modules/hydroponics/grown/banana.dm +++ b/code/modules/hydroponics/grown/banana.dm @@ -57,6 +57,11 @@ /obj/item/grown/bananapeel/proc/choose_icon_state() icon_state = "[icon_state]_[rand(1, 3)]" +/obj/item/grown/bananapeel/decompile_act(obj/item/matter_decompiler/C, mob/user) + C.stored_comms["wood"] += 1 + qdel(src) + return TRUE + /obj/item/grown/bananapeel/suicide_act(mob/user) user.visible_message("[user] is deliberately slipping on [src]! It looks like [user.p_theyre()] trying to commit suicide.") playsound(loc, 'sound/misc/slip.ogg', 50, 1, -1) diff --git a/code/modules/mob/living/silicon/robot/drone/drone_items.dm b/code/modules/mob/living/silicon/robot/drone/drone_items.dm index 750b62c62a2..ef6189ec24a 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone_items.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone_items.dm @@ -138,15 +138,12 @@ user.visible_message("[user] removes the power cell from [A]!", "You remove the power cell.") return TRUE -//TODO: Matter decompiler. /obj/item/matter_decompiler - name = "matter decompiler" desc = "Eating trash, bits of glass, or other debris will replenish your stores." icon = 'icons/obj/toy.dmi' icon_state = "minigibber" - - //Metal, glass, wood, plastic. + /// Metal, glass, wood, plastic. var/list/stored_comms = list( "metal" = 0, "glass" = 0, @@ -157,14 +154,15 @@ return /obj/item/matter_decompiler/afterattack(atom/target, mob/living/user, proximity, params) - if(!proximity) return //Not adjacent. + if(!proximity) + return // Not adjacent. - //We only want to deal with using this on turfs. Specific items aren't important. + // We only want to deal with using this on turfs. Specific items aren't important. var/turf/T = get_turf(target) if(!istype(T)) return - //Used to give the right message. + // Used to give the right message. var/grabbed_something = FALSE for(var/atom/movable/A in T) @@ -177,14 +175,13 @@ to_chat(user, "Nothing on \the [T] is useful to you.") return -//Putting the decompiler here to avoid doing list checks every tick. +// Putting the decompiler here to avoid doing list checks every tick. /mob/living/silicon/robot/drone/use_power() - ..() if(low_power_mode || !decompiler) return - //The decompiler replenishes drone stores from hoovered-up junk each tick. + // The decompiler replenishes drone stores from hoovered-up junk each tick. for(var/type in decompiler.stored_comms) if(decompiler.stored_comms[type] > 0) var/obj/item/stack/sheet/stack diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index e60dffed617..940c270bb79 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -555,6 +555,11 @@ if(info) icon_state = "scrap_words" +/obj/item/paper/crumpled/decompile_act(obj/item/matter_decompiler/C, mob/user) + C.stored_comms["wood"] += 1 + qdel(src) + return TRUE + /obj/item/paper/crumpled/bloody icon_state = "scrap_bloodied"