Tweak: Makes ore redemption machines take in sheets from the input side (#29615)

* ore redemption auto inserts sheets in input

* spit out invalid sheets
This commit is contained in:
Toastical
2025-07-15 23:55:38 +03:00
committed by GitHub
parent c05693c74b
commit 8009b3c481
+14 -1
View File
@@ -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