Files
Leland Kemble a25deb9bb1 Fixes newly created objects not appearing in auto updating lootpanel (#95083)
## About The Pull Request

Makes the auto updating lootpanel listen for
`COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZED_ON` in addition to
`COMSIG_ATOM_ENTERED`, allowing it to pick up newly created objects.

## Why It's Good For The Game

fixes #95038

## Changelog
🆑

fix: the auto updating lootpanel now automatically shows new items that
haven't moved yet.

/🆑
2026-02-04 18:45:22 -05:00

54 lines
1.6 KiB
Plaintext

/// Helper to open the panel
/datum/lootpanel/proc/open(turf/tile)
if (tile != source_turf)
if (source_turf)
UnregisterSignal(source_turf, list(COMSIG_ATOM_ENTERED, COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZED_ON))
RegisterSignals(tile, list(COMSIG_ATOM_ENTERED, COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZED_ON), PROC_REF(on_source_turf_entered))
source_turf = tile
#if !defined(OPENDREAM) && !defined(UNIT_TESTS)
if(!notified)
var/build = owner.byond_build
var/version = owner.byond_version
if(build < 515 || (build == 515 && version < 1635))
to_chat(owner.mob, boxed_message(span_info("\
<span class='bolddanger'>Your version of Byond doesn't support fast image loading.</span>\n\
Detected: [version].[build]\n\
Required version for this feature: <b>515.1635</b> or later.\n\
Visit <a href=\"https://secure.byond.com/download\">BYOND's website</a> to get the latest version of BYOND.\n\
")))
notified = TRUE
#endif
populate_contents()
ui_interact(owner.mob)
/**
* Called by SSlooting whenever this datum is added to its backlog.
* Iterates over to_image list to create icons, then removes them.
* Returns boolean - whether this proc has finished the queue or not.
*/
/datum/lootpanel/proc/process_images()
for(var/datum/search_object/index as anything in to_image)
to_image -= index
if(QDELETED(index) || index.icon)
continue
index.generate_icon(owner)
if(TICK_CHECK)
break
var/datum/tgui/window = SStgui.get_open_ui(owner.mob, src)
if(isnull(window))
reset_contents()
return TRUE
window.send_update()
return !length(to_image)