Modding:SMAPI Kompatibilität/barchart: Unterschied zwischen den Versionen

Aus Stardew Valley Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „{| class="wikitable" |- | <div style="display: inline-block; width: {{#expr:(({{{ok|0}}} + {{{workaround|0}}}) / {{{total|<noinclude>1</noinclude>0}}}) * 200}}…“)
 
(fix syntax highlight)
Zeile 28: Zeile 28:
 
==Script==
 
==Script==
 
This script generates the template call when run from the parent page.
 
This script generates the template call when run from the parent page.
<source lang="javascript">
+
<syntaxhighlight lang="javascript">
 
(function() {
 
(function() {
 
   // group mods by status
 
   // group mods by status
Zeile 89: Zeile 89:
 
   `.replace(/^    /mg, ''));
 
   `.replace(/^    /mg, ''));
 
})();
 
})();
</source>
+
</syntaxhighlight>
  
 
[[Category:Modding]]
 
[[Category:Modding]]
 
[[en:Modding:SMAPI compatibility/barchart]]
 
[[en:Modding:SMAPI compatibility/barchart]]
 
</noinclude>
 
</noinclude>

Version vom 22. Mai 2021, 21:01 Uhr

 
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 Margotbean am 22. Mai 2021 um 21:01:44.

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, ''));
})();