Vorlage:Item/Layout/Werkstatt: Unterschied zwischen den Versionen

aus FreewarWiki, der Referenz für Freewar
Zur Navigation springen Zur Suche springen
(+VERBESSERUNGSWÜRDIG)
(-VB)
 
(10 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
<noinclude>{{Vb|Syntaxsuppe entfernen, für Menschen lesbare Vorlage erstellen, siehe auch : [[Vorlage_Diskussion:Item#Werkstatt]]}}
{{#vardefine:itemname|{{{1|{{PAGENAME}}}}}}}<!--
</noinclude>{{#vardefine:werkstatt_kosten|{{#if:{{#regex:{{:Werkstatt/Rezepte}}|%\{{!}}-
 
\{{!}}[\x5B]{2}{{{1|{{PAGENAME}}}}}[\x5D]{2}%}}|{{#regex:, {{#regex:{{#regex:{{#regex:{{#regex:{{#regex:{{:Werkstatt/Rezepte}}|%\{{!}}-
PRODUKTIONSKOSTEN
\{{!}}[\x5B]{2}{{{1|{{PAGENAME}}}}}[\x5D]{2}
 
\{{!}}[^
-->{{#vardefine:werkstatt_kosten|<!--
]+?
Überprüfe, ob überhaupt existent, wenn nein, leer lassen
\{{!}}\d+
 
\{{!}}\d+
Existenzbedingung:
\{{!}}\d+%}}|%\{{!}}-
|-
\{{!}}[\x5B]{2}{{{1|{{PAGENAME}}}}}[\x5D]{2}
|[[{{#var:itemname}}]]
\{{!}}([^
 
]+?)
-->{{#if:{{#regex:{{:Werkstatt/Rezepte}}|%\{{!}}-
\{{!}}(\d+)
\{{!}}[\x5B]{2}{{#var:itemname}}[\x5D]{2}%}}|<!--
\{{!}}(\d+)
 
\{{!}}(\d+)%|$1, $2 [[Ölfass{{!}}Ölfässer]], $3 [[Larinit]]}}|%(, 0 [\x5B]{2}(Ölfass\{{!}}Ölfässer{{!}}Larinit)[\x5D]{2})%|}}|%, 1 [\x5B]{2}Ölfass\{{!}}Ölfässer[\x5D]{2}%|, 1 [[Ölfass]]}}|%([0-9])x%|$1}}|%, %|&nbsp;
Ist existent:
**}}}}}}<!--
 
-->{{#vardefine:werkstatt_produkt|{{#if:{{#regex:{{:Werkstatt/Rezepte}}|%\{{!}}-
-->{{#regex:<!--
\{{!}}[^
 
]+?
  -->{{#regex:<!--
\{{!}}[^
 
]+?[\x5B]{2}{{{1|{{PAGENAME}}}}}[\x5D]{2}%}}|{{#regex:{{#regex:{{#regex:{{#regex:{{#regex:{{#regex:{{#regex:{{!}}{{#regex:{{:Werkstatt/Rezepte}}|%({\{{!}}[^-]+)%|}}|%(?!\{{!}}-
  -->{{#regex:<!--
\{{!}}[^
 
]+?
    -->{{#regex:<!--
\{{!}}[^
 
]+?[\x5B]{2}{{{1|{{PAGENAME}}}}}[\x5D]{2})(\{{!}}-
    -->{{#regex:<!--
\{{!}}[^
 
]+?
      -->{{#regex:<!--
\{{!}}[^
 
]+?[\x5B]{2}[^\x5D]+[\x5D]{2})
      -->{{#regex:<!--
\{{!}}(\d+)
 
\{{!}}(\d+)
        -->{{#regex:<!--
\{{!}}(\d+)%|}}|%^([^{{!}}].+)%|}}|%\{{!}}-
 
\{{!}}([\x5B]{2}[^\x5D]+[\x5D]{2})
        -->{{#regex:<!--
\{{!}}[^
 
]+?
Filtere zuerst Header und Footer heraus, d.h.
\{{!}}\d+
 
\{{!}}\d+
{|...
\{{!}}\d+%|, $1}}|%(\{{!}}[-} ])%|}}|%
!...
%| }}|% ,%|,}}|%(, )%|&nbsp;
|}
**}}}}}}<noinclude>{{Dokumentation}}</noinclude>
 
          -->{{:Werkstatt/Rezepte}}|<!--
          -->%((\{{!}}}{{!}}{\{{!}}{{!}}!)[^\n]+)%<!--
 
und ersetze das durch nichts (Überflüssiges ist unbrauchbar)
 
          -->|<!--
        -->}}|<!--
 
Filtere das Vorkommen heraus indem alles andere entfernt wird:
 
Filter:
|-
|[[{{#var:itemname}}]]
|(Eine Zeile Items)
|(Ölfässer)
|(Larinit)
|(Produktionsdauer)
 
        -->%(\{{!}}-
<!--     -->\{{!}}[\x5B]{2}(?!{{#var:itemname}})[^\x5D]+[\x5D]{2}
<!--    -->\{{!}}[^\n]+?
<!--    -->\{{!}}\d+
<!--    -->\{{!}}\d+
<!--    -->\{{!}}\d+)%<!--
        -->|<!--
        -->}}|<!--
 
Parse die einzelnen Werte
 
Selber Filter wie davor, jetzt nur eben ersetzen
 
        -->%\{{!}}-
<!--    -->\{{!}}[\x5B]{2}{{#var:itemname}}[\x5D]{2}
<!--    -->\{{!}}([^\n]+?)
<!--    -->\{{!}}(\d+)
<!--    -->\{{!}}(\d+)
<!--    -->\{{!}}(\d+)%<!--
        -->|<!--
 
Schreibe die Zutaten in einen String (mit Nullen und so weiter)
 
        -->\\\\, $1, $2 [[Ölfass{{!}}Ölfässer]], $3 [[Larinit]]<!--
      -->}}|<!--
 
Streiche die Nullen
 
      -->%(, 0 [\x5B]{2}(Ölfass\{{!}}Ölfässer{{!}}Larinit)[\x5D]{2})%<!--
      -->|<!--
 
Ersetze alle "0 Ölfässer" bzw. "0 Larinit" durch nichts
 
      -->}}|<!--
 
Entferne die das Plural bei nur einem Ölfass
 
      -->%, 1 [\x5B]{2}Ölfass\{{!}}Ölfässer[\x5D]{2}%|<!--
 
Aus 1 Ölfässer mache 1 Ölfass
 
      -->, 1 [[Ölfass]]<!--
    -->}}|<!--
 
Ersetze (z.B.) 1x [[Reparatur-Zange]]
 
    -->%([0-9])x%<!--
    -->|<!--
 
durch 1 [[Reparatur-Zange]]
 
    -->$1<!--
    -->}}|<!--
 
Ersetze die \\ (am Anfang noch Pseudotrennzeichen)
 
    -->%(?!^\\\\)\\\\%<!--
    -->|<!--
 
durch ein ''oder'' für weitere Optionen
 
    --><br /><span style="margin-left: -25px;">''oder''</span><!--
  -->}}|<!--
 
Ersetze sämtliche überflüssigen Zeichen (und Zeilen:
|...
\n (Zeilenumbruch)
\\ (temporäres Zeichen zum Trennen verschiedener Herstellungsmethoden)
 
  -->%(\n\{{!}}[^\n]+{{!}}\n{{!}}\\\\)%<!--
  -->|<!--
  -->}}|<!--
 
Entferne die Kommas (nötig um den Anfang einer Zutatenliste zu markieren)
 
  -->%, %<!--
  -->|<!--
 
Und ersetze durch eine neue Zeile, angeführt von 2 Sternchen (Einrückung)
 
-->&nbsp;
**<!--
-->}}<!--
 
Schließende Klammern vom #if und dem #vardefine ganz am Anfang:
 
-->}}<!--
-->}}<!--
 
 
IST ZUTAT FÜR FOLGENDE PRODUKTE:
 
-->{{#vardefine:werkstatt_produkt|<!--
 
Existenzbedingung:
|-
|...
|...[[{{#var:itemname}}]]
 
-->{{#if:{{#regex:{{:Werkstatt/Rezepte}}|%\{{!}}-
\{{!}}[^\n]+?
\{{!}}[^\n]+?[\x5B]{2}{{#var:itemname}}[\x5D]{2}%}}|<!--
 
Ist existent:
 
-->{{#regex:<!--
 
  -->{{#regex:<!--
 
  -->{{#regex:<!--
 
    -->{{#regex:<!--
 
    -->{{#regex:<!--
 
      -->{{#regex:<!--
 
Filtere zuerst Header und Footer heraus, d.h.
 
{|...
!...
|}
 
      -->{{:Werkstatt/Rezepte}}|<!--
      -->%((\{{!}}}{{!}}{\{{!}}{{!}}!)[^\n]+)%<!--
 
und ersetze das durch nichts (Überflüssiges ist unbrauchbar)
 
      -->|<!--
      -->}}|<!--
 
Filtere alle Zeilen die NICHT dem Muster
 
|-
|...
|...[[{{#var:itemname}}]]
 
entsprechen
 
      -->%(?!\{{!}}-
<!--  -->\{{!}}[^\n]+?
<!--  -->\{{!}}[^\n]+?[\x5B]{2}{{#var:itemname}}[\x5D]{2})<!--
      -->(\{{!}}-
<!--  -->\{{!}}[^\n]+?
<!--  -->\{{!}}[^\n]+?[\x5B]{2}[^\x5D]+[\x5D]{2})
<!--  -->\{{!}}(\d+)
<!--  -->\{{!}}(\d+)
<!--  -->\{{!}}(\d+)%<!--
      -->|<!--
 
heraus und ersetze durch nichts
 
    -->}}|<!--
 
Filtere die Itemnamen heraus nach dem Muster
 
|-
|[[''Itemname'']]
|...
|...
|...
|...
 
    -->%\{{!}}-
<!-- -->\{{!}}([\x5B]{2}[^\x5D]+[\x5D]{2})
<!-- -->\{{!}}[^\n]+?
<!-- -->\{{!}}\d+
<!-- -->\{{!}}\d+
<!-- -->\{{!}}\d+%<!--
    -->|<!--
 
und schreibe diesen in einen kommapräfixierten und -separierten String
 
    -->, $1<!--
    -->}}|<!--
 
Entferne alle noch übrig gebliebene |- und |}
 
    -->%(\{{!}}[-} ])%<!--
    -->|<!--
 
(Ersetze durch nichts)
 
  -->}}|<!--
 
Entferne alle Zeilenumbrüche
 
  -->%\n%<!--
  -->|<!--
 
(Ersetze durch nichts)
 
  -->}}|<!--
 
Entferne die trennenden Kommas
 
  -->%(, )%<!--
  -->|<!--
 
Und ersetze durch eine neue Zeile, angeführt von 2 Sternchen (Einrückung)
 
  -->&nbsp;
**<!--
-->}}<!--
 
Schließende Klammern vom #if und dem #vardefine ganz am Anfang:
 
-->}}<!--
-->}}<!--
--><noinclude>{{Dokumentation}}</noinclude>

Aktuelle Version vom 27. September 2013, 19:00 Uhr


[Bearbeiten] Dokumentation

Diese Vorlage schreibt in eine Variable sämtliche Kosten, die zur Herstellung eines Items benötigt werden. Die Daten stammen dabei aus dem Artikel Werkstatt/Rezepte.

Verwendung[Bearbeiten]

Diese Vorlage wird mit {{Item/Layout/Werkstatt|1}} eingebunden.

Die Kosten werden mit {{#var:werkstatt_kosten}} ausgegeben.

Parameter[Bearbeiten]

  • 1: Der Name des Items. Optional, Standard: Seitenname