Modding:SMAPI Kompatibilität/barchart

Aus Stardew Valley Wiki
< Modding:SMAPI Kompatibilität
Version vom 10. Dezember 2018, 21:07 Uhr von Nanogamer7 (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „{| class="wikitable" |- | <div style="display: inline-block; width: {{#expr:(({{{ok|0}}} + {{{workaround|0}}}) / {{{total|<noinclude>1</noinclude>0}}}) * 200}}…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen
 
0% are compatible or have a working alternative.
 
0% have an update coming soon.
 
0% are broken and not open-source.¹

¹ Many of these broke due to a Stardew Valley update. Some may be updated by their authors later.

Robin building.png
Ich habe noch eine Menge Arbeit vor mir
— Robin

Unvollständige Übersetzung

Dieser Artikel oder Abschnitt wurde noch nicht vollständig ins Deutsche übersetzt. Du bist herzlich eingeladen, uns dabei durch die Bearbeitung dieses Textes zu unterstützen!
Zuletzt bearbeitet von Nanogamer7 am 10. Dez. 2018 um 21:07:31.

Usage

List the counts for each group:

{{/barchart
  |ok         = 135
  |workaround = 33
  |soon       = 56
  |broken     = 33
  |total      = 257
}}

Script

This script generates the template call when run from the parent page.

(function() {
  // group mods by status
  let counts = { ok: 0, workaround: 0, soon: 0, broken: 0, total: 0 };
  let invalidMods = [];
  $("#mod-list .mod").each(function(i, entry) {
    entry = $(entry);
    let status = entry.attr("data-beta-status") || entry.attr("data-status");
    let hasSource = entry.is("[data-github], [data-custom-source]");
    
    switch(status) {
      // ignore obsolete mods
      case "abandoned":
      case "obsolete":
        break;

      // compatible
      case "ok":
      case "optional":
        counts.ok++;
        counts.total++;
        break;

      // workaround
      case "workaround":
      case "unofficial":
        counts.workaround++;
        counts.total++;
        break;

      // soon/broken
      case "broken":
        if (hasSource)
          counts.soon++;
        else
          counts.broken++;
        counts.total++;
        break;

      default:
        invalidMods.push(mods);
        break;
    }
  });

  // show results
  if (invalidMods.length) {
    console.log("found entries with unknown status:", invalidMods);
    throw 'script failed';
  }

  console.log(`
    {{/barchart
      |ok         = ${counts.ok}
      |workaround = ${counts.workaround}
      |soon       = ${counts.soon}
      |broken     = ${counts.broken}
      |total      = ${counts.total}
    }}
  `.replace(/^    /mg, ''));
})();