From 8009b3c48162d7b2dc792dd0fd37dd9e66914c4f Mon Sep 17 00:00:00 2001 From: Toastical <20125180+Toastical@users.noreply.github.com> Date: Tue, 15 Jul 2025 23:55:38 +0300 Subject: [PATCH] Tweak: Makes ore redemption machines take in sheets from the input side (#29615) * ore redemption auto inserts sheets in input * spit out invalid sheets --- code/modules/mining/machine_redemption.dm | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/code/modules/mining/machine_redemption.dm b/code/modules/mining/machine_redemption.dm index 4a54d3e954c..4327a4f9418 100644 --- a/code/modules/mining/machine_redemption.dm +++ b/code/modules/mining/machine_redemption.dm @@ -47,11 +47,13 @@ var/datum/research/files /// The currently inserted design disk. var/obj/item/disk/design_disk/inserted_disk + var/datum/component/material_container/mat_container + var/invalid_material /obj/machinery/mineral/ore_redemption/Initialize(mapload) . = ..() - AddComponent(/datum/component/material_container, list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_TRANQUILLITE, MAT_TITANIUM, MAT_BLUESPACE, MAT_PLATINUM, MAT_IRIDIUM, MAT_PALLADIUM), INFINITY, FALSE, /obj/item/stack, null, CALLBACK(src, PROC_REF(on_material_insert))) + mat_container = AddComponent(/datum/component/material_container, list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_TRANQUILLITE, MAT_TITANIUM, MAT_BLUESPACE, MAT_PLATINUM, MAT_IRIDIUM, MAT_PALLADIUM), INFINITY, FALSE, /obj/item/stack, null, CALLBACK(src, PROC_REF(on_material_insert))) ore_buffer = list() files = new /datum/research/smelter(src) // Stock parts @@ -145,6 +147,17 @@ ore_buffer |= O O.forceMove(src) CHECK_TICK + for(var/obj/item/stack/stack in input) + if(QDELETED(stack)) + return + if(!mat_container.insert_stack(stack, stack.amount)) + stack.forceMove(get_step(src, output_dir)) + invalid_material = TRUE + CHECK_TICK + if(invalid_material) + playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + atom_say("ERROR - Spitting out invalid materials.") + invalid_material = FALSE // Process it if(length(ore_buffer)) message_sent = FALSE