From 73fb9c139ecb8da570c194f08de309f3d2c7b6aa Mon Sep 17 00:00:00 2001 From: FenodyreeAv Date: Thu, 11 Jun 2026 11:44:41 +0100 Subject: [PATCH] R&D console only updates on material shortage (#22651) Every time you print an item in the protolathe or circuit printer, it scrolls back up to the top. Printing multiple items is hell, especially as there is no bulk print option. This makes the UI only update if there isn't enough material to finish a print. This isn't the ideal solution, because the Material Amount doesn't update unless you click the R&D console again. image However the material amount doesn't even give a readout of what the materials are, so this value is useless anyway. Also means buttons won't be greyed out as the material to print them runs out, but this is fine because if you press a button without enough material to print it, the UI will immediately update and grey it out. This does scroll you up to the top, but it's much better than having it happen EVERY time. Best solution would be to update it to TGUI, but I just tried that and gave up almost immediately. So this is a stopgap. --- code/modules/research/circuitprinter.dm | 2 ++ code/modules/research/protolathe.dm | 5 ++--- html/changelogs/Fenodyree-R&DConsoleScroll.yml | 7 +++++++ 3 files changed, 11 insertions(+), 3 deletions(-) create mode 100644 html/changelogs/Fenodyree-R&DConsoleScroll.yml diff --git a/code/modules/research/circuitprinter.dm b/code/modules/research/circuitprinter.dm index 23181baa038..52ada39edee 100644 --- a/code/modules/research/circuitprinter.dm +++ b/code/modules/research/circuitprinter.dm @@ -219,6 +219,8 @@ using metal and glass, it uses glass and reagents (usually sulphuric acid). else visible_message(SPAN_NOTICE("[icon2html(src, viewers(get_turf(src)))] \The [src] flashes: insufficient materials: [getLackingMaterials(D)].")) + if(linked_console) + linked_console.updateUsrDialog() update_icon() diff --git a/code/modules/research/protolathe.dm b/code/modules/research/protolathe.dm index 36e1d10f7b1..070beae7ac9 100644 --- a/code/modules/research/protolathe.dm +++ b/code/modules/research/protolathe.dm @@ -226,6 +226,8 @@ else visible_message(SPAN_NOTICE("[icon2html(src, viewers(get_turf(src)))] \The [src] flashes: Insufficient materials: [getLackingMaterials(D)].")) + if(linked_console) + linked_console.updateUsrDialog() update_icon() @@ -299,9 +301,6 @@ for(var/i in new_item.matter) new_item.matter[i] = new_item.matter[i] * mat_efficiency - if(linked_console) - linked_console.updateUsrDialog() - //We finished building, clear the timer build_callback_timer = null diff --git a/html/changelogs/Fenodyree-R&DConsoleScroll.yml b/html/changelogs/Fenodyree-R&DConsoleScroll.yml new file mode 100644 index 00000000000..4a5d9022b2e --- /dev/null +++ b/html/changelogs/Fenodyree-R&DConsoleScroll.yml @@ -0,0 +1,7 @@ + +author: Fenodyree + +delete-after: True + +changes: + - qol: "Stops the R&D console scrolling back up to the top whenever a print finishes."