[MDB IGNORE] [IDB IGNORE] Upstream Sync - 04/17/2026 (#5453)

Upstream 04/17/2026

fixes https://github.com/Bubberstation/Bubberstation/issues/5549

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com>
Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com>
Co-authored-by: rageguy505 <54517726+rageguy505@users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Aliceee2ch <160794176+Aliceee2ch@users.noreply.github.com>
Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
Co-authored-by: Tsar-Salat <62388554+Tsar-Salat@users.noreply.github.com>
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
Co-authored-by: Maxipat <108554989+Maxipat112@users.noreply.github.com>
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
Co-authored-by: SimplyLogan <47579821+loganuk@users.noreply.github.com>
Co-authored-by: loganuk <fakeemail123@aol.com>
Co-authored-by: Leland Kemble <70413276+lelandkemble@users.noreply.github.com>
Co-authored-by: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com>
Co-authored-by: Roxy <75404941+TealSeer@users.noreply.github.com>
Co-authored-by: Lucy <lucy@absolucy.moe>
Co-authored-by: siliconOpossum <138069572+siliconOpossum@users.noreply.github.com>
Co-authored-by: Isratosh <Isratosh@hotmail.com>
Co-authored-by: TheRyeGuyWhoWillNowDie <70169560+TheRyeGuyWhoWillNowDie@users.noreply.github.com>
Co-authored-by: Neocloudy <88008002+Neocloudy@users.noreply.github.com>
Co-authored-by: Alexander V. <volas@ya.ru>
Co-authored-by: ElGitificador <168473461+ElGitificador@users.noreply.github.com>
Co-authored-by: Twaticus <46540570+Twaticus@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
Co-authored-by: Cameron Lennox <killer65311@gmail.com>
Co-authored-by: Tim <timothymtorres@gmail.com>
Co-authored-by: Iamgoofball <iamgoofball@gmail.com>
Co-authored-by: Layzu666 <121319428+Layzu666@users.noreply.github.com>
Co-authored-by: Arturlang <24881678+Arturlang@users.noreply.github.com>
Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com>
Co-authored-by: mrmanlikesbt <99309552+mrmanlikesbt@users.noreply.github.com>
Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com>
Co-authored-by: John F. Kennedy <54908920+MacaroniCritter@users.noreply.github.com>
Co-authored-by: Cursor <102828457+theselfish@users.noreply.github.com>
Co-authored-by: Josh <josh.adam.powell@gmail.com>
Co-authored-by: Josh Powell <josh.powell@softwire.com>
Co-authored-by: Yobrocharlie <Charliemiller5617@gmail.com>
Co-authored-by: Hardly3D <66234359+Hardly3D@users.noreply.github.com>
Co-authored-by: shayoki <96078776+shayoki@users.noreply.github.com>
Co-authored-by: LT3 <83487515+lessthnthree@users.noreply.github.com>
This commit is contained in:
Alexis
2026-05-16 00:56:00 +02:00
committed by GitHub
co-authored by tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> ArcaneMusic MrMelbert Rhials rageguy505 LemonInTheDark John Willard Aliceee2ch Time-Green Tsar-Salat SmArtKar Maxipat SyncIt21 deltanedas SimplyLogan loganuk Leland Kemble FalloutFalcon Roxy Lucy siliconOpossum Isratosh TheRyeGuyWhoWillNowDie Neocloudy Alexander V. ElGitificador Twaticus dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Bloop Cameron Lennox Tim Iamgoofball Layzu666 Arturlang _0Steven mrmanlikesbt Ben10Omintrix John F. Kennedy Cursor Josh Josh Powell Yobrocharlie Hardly3D shayoki LT3
parent d1f6ed3137
commit 21b4095dfd
2082 changed files with 60158 additions and 140127 deletions
+8 -8
View File
@@ -14,7 +14,7 @@ GLOBAL_LIST_EMPTY(asset_datums)
return loaded_asset.ensure_ready()
/datum/asset
var/_abstract = /datum/asset
abstract_type = /datum/asset
var/cached_serialized_url_mappings
var/cached_serialized_url_mappings_transport_type
@@ -81,7 +81,7 @@ GLOBAL_LIST_EMPTY(asset_datums)
/// If you don't need anything complicated.
/datum/asset/simple
_abstract = /datum/asset/simple
abstract_type = /datum/asset/simple
/// list of assets for this datum in the form of:
/// asset_filename = asset_file. At runtime the asset_file will be
/// converted into a asset_cache datum.
@@ -118,7 +118,7 @@ GLOBAL_LIST_EMPTY(asset_datums)
// For registering or sending multiple others at once
/datum/asset/group
_abstract = /datum/asset/group
abstract_type = /datum/asset/group
var/list/children
/datum/asset/group/register()
@@ -142,7 +142,7 @@ GLOBAL_LIST_EMPTY(asset_datums)
A.unregister()
/datum/asset/changelog_item
_abstract = /datum/asset/changelog_item
abstract_type = /datum/asset/changelog_item
var/item_filename
/datum/asset/changelog_item/New(date)
@@ -170,7 +170,7 @@ GLOBAL_LIST_EMPTY(asset_datums)
//Generates assets based on iconstates of a single icon
/datum/asset/simple/icon_states
_abstract = /datum/asset/simple/icon_states
abstract_type = /datum/asset/simple/icon_states
var/icon
var/list/directions = list(SOUTH)
var/frame = 1
@@ -194,7 +194,7 @@ GLOBAL_LIST_EMPTY(asset_datums)
SSassets.transport.register_asset(asset_name, asset)
/datum/asset/simple/icon_states/multiple_icons
_abstract = /datum/asset/simple/icon_states/multiple_icons
abstract_type = /datum/asset/simple/icon_states/multiple_icons
var/list/icons
/datum/asset/simple/icon_states/multiple_icons/register()
@@ -207,7 +207,7 @@ GLOBAL_LIST_EMPTY(asset_datums)
/// For example `blah.css` with asset `blah.png` will get loaded as `namespaces/a3d..14f/f12..d3c.css` and `namespaces/a3d..14f/blah.png`. allowing the css file to load `blah.png` by a relative url rather then compute the generated url with get_url_mappings().
/// The namespace folder's name will change if any of the assets change. (excluding parent assets)
/datum/asset/simple/namespaced
_abstract = /datum/asset/simple/namespaced
abstract_type = /datum/asset/simple/namespaced
/// parents - list of the parent asset or assets (in name = file assoicated format) for this namespace.
/// parent assets must be referenced by their generated url, but if an update changes a parent asset, it won't change the namespace's identity.
var/list/parents = list()
@@ -252,7 +252,7 @@ GLOBAL_LIST_EMPTY(asset_datums)
/// A subtype to generate a JSON file from a list
/datum/asset/json
_abstract = /datum/asset/json
abstract_type = /datum/asset/json
/// The filename, will be suffixed with ".json"
var/name
+8 -2
View File
@@ -1,5 +1,5 @@
/datum/asset/spritesheet/simple/paper
name = "paper"
/datum/asset/spritesheet/simple/stamps
name = "stamps"
assets = list(
// SKYRAT EDIT ADDITION: START - Donator stamp icons
@@ -41,3 +41,9 @@
"stamp-syndicate" = 'icons/stamp_icons/large_stamp-syndicate.png'
)
// Contains 256x128 versions of various in game company logos
/datum/asset/simple/logos
assets = list(
"nanotrasen-logo" = 'icons/ui/logos/nanotrasen-logo.png',
)
@@ -0,0 +1,24 @@
/datum/asset/spritesheet_batched/slot_machines
name = "slotmachines"
/datum/asset/spritesheet_batched/slot_machines/create_spritesheets()
// initialising the list of items we need
var/list/target_items = list()
for(var/obj/machinery/computer/slot_machine/slot_machine as anything in typesof(/obj/machinery/computer/slot_machine))
slot_machine = new slot_machine()
target_items |= slot_machine.symbol_paths // no dupes
qdel(slot_machine)
for(var/atom/atom as anything in target_items)
var/icon = initial(atom.icon)
var/icon_state = initial(atom.icon_state)
var/id = sanitize_css_class_name("[icon][icon_state]")
var/has_gags = atom::greyscale_config && atom::greyscale_colors
var/has_color = atom::color && icon_state
// GAGS and colored icons must be pregenerated so blacklist them for now
if(has_gags || has_color)
stack_trace("[atom] is either using GAGS or colored icons which is not supported for slot machine reels")
continue
insert_icon(id, uni_icon(icon, icon_state))
@@ -7,7 +7,7 @@
#define SPRITESHEET_SYSTEM_VERSION 1
/datum/asset/spritesheet_batched
_abstract = /datum/asset/spritesheet_batched
abstract_type = /datum/asset/spritesheet_batched
var/name
/// list("32x32")
var/list/sizes = list()
@@ -13,7 +13,7 @@
/datum/universal_icon/New(icon/icon_file, icon_state="", dir=null, frame=null, datum/icon_transformer/transform=null, color=null)
#ifdef UNIT_TESTS
// This check is kinda slow and shouldn't fail unless a developer makes a mistake. So it'll get caught in unit tests.
if(!isicon(icon_file) || !isfile(icon_file) || "[icon_file]" == "/icon" || !length("[icon_file]"))
if((!isicon(icon_file) && !isfile(icon_file)) || "[icon_file]" == "/icon" || !length("[icon_file]"))
// bad! use 'icons/path_to_dmi.dmi' format only
CRASH("FATAL: universal_icon was provided icon_file: [icon_file] - icons provided to batched spritesheets MUST be DMI files, they cannot be /image, /icon, or other runtime generated icons.")
#endif
@@ -10,7 +10,7 @@
/// Deprecated: Use /datum/asset/spritesheet_batched where possible
/datum/asset/spritesheet
_abstract = /datum/asset/spritesheet
abstract_type = /datum/asset/spritesheet
cross_round_cachable = TRUE
var/name
/// List of arguments to pass into queuedInsert
@@ -408,7 +408,7 @@
/// Spritesheet that only uses simple PNGs and CSS keys. See `assets` variable.
/// Deprecated: Use /datum/asset/spritesheet_batched where possible
/datum/asset/spritesheet/simple
_abstract = /datum/asset/spritesheet/simple
abstract_type = /datum/asset/spritesheet/simple
/// Associative list of icon keys (CSS class names) -> PNG filepaths (single quote!)
/// File paths MUST be PNGs
var/list/assets