mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-20 19:44:09 +01:00
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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user