Switcher

Aus UniversalProcessKit
Wechseln zu: Navigation, Suche

Dieses Modul tauscht je nach Füllstand oder Fülltyp Shapes gegeneinander aus. Die dafür benutzten Shapes sind die untergeordneten des Moduls.

Um, wenn gewünscht, bei einem bestimmten Füllstandsabschnitt nichts angezeigt werden soll, sind auch TransformGroups statt Shapes möglich.

Mit den UserAttributes, die auf "..OnSwitchUp" und "..OnSwitchDown" lassen sich zusätzlich Aktionen festlegen, die beim Wechsel ausgeführt werden sollen.

Inhaltsverzeichnis

Standard-UserAttributes

siehe Standard-UserAttributes

type (string)

Um dieses Modul zu verwenden, muss type="switcher" gesetzt sein.

Ausprägung Beschreibung
switcher

Allgemein

fillTypes (string)

Ausprägung Beschreibung
(ohne) (default) Auf nichts wird reagiert.
(Auflistung von Fülltypen) Die Fülltypen, auf die reagiert werden soll.

Bsp: „wheat“, „wheat barley“

fillTypeChoice (string)

Ausprägung Beschreibung
„max“ (default) Wählt den Füllstand desjenigen Fülltyps aus, der am höchsten ist.
„min“ Wählt den Füllstand desjenigen Fülltyps aus, der am niedrigsten ist.

mode (string)

Ausprägung in Kombination mit switchFillTypes in Kombination mit switchFillLevels
„switch“ (default) zeigt das Shape entsprechend dem aktuellen Fülltyp zeigt das shape entsprechend dem aktuellen Füllstand
„stack“ (nicht verwendbar) zeigt alle Shapes bis zu dem zugeordneten Füllstand
„stackReverse“ (nicht verwendbar) zeigt alle Shapes ab dem zugeordneten Füllstand
„material“ ändert das verwendete Material entsprechend dem aktuellen Fülltyp ändert das verwendete Material entsprechend dem aktuellen Füllstand
„silent“ nimmt keine visuellen Änderungen vor nimmt keine visuellen Änderungen vor

Beispiel-Anordnungen:

Für mode="switch", "stack" oder "stackReverse":
Der Switcher ist eine TransformGroup, der seine untergeordneten Shapes bzw. TransformGroups anhand der Konfiguration in switchFillTypes oder switchFillLevels durchschaltet:

 <TransformGroup name="switcherSack" id="1234" ...>
   <TransformGroup name="leer" ... />
   <Shape name="Sack1" ... />
   <Shape name="Sack2" ... />
   <Shape name="Sack3" ... />
 </TransformGroup>

Für mode="material":
Der Switcher ist ein Shape mit mehreren Materials (von Hand ergänzt), die er anhand der Konfiguration in switchFillTypes oder switchFillLevels durchschaltet:

 <Shape name="switcherMaterials" materialIds="19, 20, 21" ... />

Für mode="silent":
Der Switcher ist ein Shape oder eine TransformGroup, der ausschließlich die Aktionen "..OnSwitchUp" und "..OnSwitchDown" anhand der Konfiguration in switchFillTypes oder switchFillLevels ausführt:

 <TransformGroup name="switcherSilent" id="1234" ... />

switchFillTypes (string)

Falls auf den Fülltyp reagiert werden soll. Nur sinnvoll mit den Speicherarten single, fifo oder filo verwendbar.

Ausprägung Beschreibung
(ohne) (default) Auf nichts wird reagiert.
(Auflistung von Fülltypen, mit Komma getrennt) Ordnet der Reihenfolge nach bestimmte Fülltypen den Shapes zu. Mehrere Fülltypen pro Shape können mit Leerzeichen getrennt aufgeführt werden.

Bsp: „wheat barley, rape, maize“

switchFillLevels (string)

Falls auf den Füllstand reagiert werden soll.

Ausprägung Beschreibung
(ohne) (default) Auf nichts wird reagiert.
(Auflistung von Füllständen) Ordnet der Reihenfolge nach bestimmte maximale Füllstände den Shapes zu. Das erste Shape wird bis zum ersten angegebenen Füllstand angezeigt, das letzte Shape ab dem zuletzt aufgeführten Füllstand.

Bsp: „1500 3000“

Ausführliches Beispiel: Angenommen, für einen Mod soll der aktuelle Füllstand anhand verschieden großer Säcke dargestellt (kleiner, mittlerer großer Sack) werden. Der kleinste soll ab 10 Litern, der mittlere ab 250 Liter und der große ab 500 Liter angezeigt werden.

Ausgedrückt in einer Tabelle soll das passieren:

Füllstand
größer gleich
>=
und Füllstand
kleiner als
<
dargstelltes Shape
-unendlich 10 nichts
10 250 kleiner Sack
250 500 mittlerer Sack
500 +unendlich großer Sack

Die Shapes sind in der i3d wie folgt angeordnet:

 <TransformGroup name="switcherSack" id="1234" ...>
   <TransformGroup name="leer" ... />
   <Shape name="Sack1" ... />
   <Shape name="Sack2" ... />
   <Shape name="Sack3" ... />
 </TransformGroup>

Für die UserAttributes müssen die oben fett gedruckten Zahlen angegeben werden. Sie sagen aus, bis zu welchem Füllstand das jeweilige Shape angezeigt werden soll. Das letzte Shape wird immer "bis +unendlich" angezeigt. Es muss also immer ein Shape mehr existieren, als Zahlen angegeben werden:

 <UserAttribute nodeId="1234">
   <Attribute name="type" type="string" value="switcher"/>
   ...
   <Attribute name="switchFillLevels" type="string" value="10 250 500"/>
 </UserAttribute>

hidingPosition (string)

Ausprägung Beschreibung
„0 -10 0“ (default) Das Shape wird, wenn es ausgeblendet ist, 10m nach unten verschoben, um ev. Kollisionen zu vermeiden.
(Zahl Zahl Zahl) Auf welche relative Position das Shape verschoben werden soll, wenn es ausgeblendet ist.

..OnSwitchUp

Die folgenden UserAttribute, die im Namen mit „..OnSwitchUp“ enden, werden nur herangezogen, wenn der Switcher auf einen nachfolgenden Fülltyp (anhand der gesetzten Reihenfolge) oder einen höheren Füllstand umschaltet.

emptyFillTypesOnSwitchUp (string)

Ausprägung Beschreibung
(ohne) (default) Es wird nichts geleert
(Auflistung von Fülltypen) Leert bestimmte Füllstände, dh. setzt sie auf 0, wenn der Switcher umschaltet.

Bspw. um einen Zähler zurückzusetzen.
Bsp: „counter“, „wheat barley“

addOnSwitchUp (string)

Ausprägung Beschreibung
(ohne) (default) Es wird nichts hinzugefügt
(Auflistung von Füllständen und Fülltypen) Fügt bestimmte Füllstände hinzu, wenn der Switcher umschaltet.

Bsp: „1 counter“, „5 manure 100 barley 30 water“

removeOnSwitchUp (string)

Ausprägung Beschreibung
(ohne) (default) Es wird nichts abgezogen
(Auflistung von Füllständen und Fülltypen) Zieht eine bestimmte Füllmenge ab, wenn der Switcher umschaltet.

Bsp: „1 counter“, „5 manure 100 barley 30 water“

enableChildrenOnSwitchUp (boolean)

Ausprägung Beschreibung
true (default) Die untergeordneten Module werden aktiviert, wenn der Switcher umschaltet.

Nicht in Kombination mit disableChildrenOnActive.

false Die untergeordneten Module werden weder aktiviert noch deaktiviert.

disableChildrenOnSwitchUp (boolean)

Ausprägung Beschreibung
true Die untergeordneten Module werden deaktiviert, wenn der Switcher umschaltet.

Nicht in Kombination mit enableChildrenOnSwitchUp.

false (default) Die untergeordneten Module werden weder aktiviert noch deaktiviert.

..OnSwitchDown

Die folgenden UserAttribute, die im Namen mit „..OnSwitchDown“ enden, werden nur herangezogen, wenn der Switcher auf einen vorherigen Fülltyp (anhand der gesetzten Reihenfolge) oder einen niedrigeren Füllstand umschaltet.

emptyFillTypesOnSwitchDown (string)

Ausprägung Beschreibung
(ohne) (default) Es wird nichts geleert
(Auflistung von Fülltypen) Leert bestimmte Füllstände, dh. setzt sie auf 0, wenn der Switcher umschaltet.

Bspw. um einen Zähler zurückzusetzen.
Bsp: „counter“, „wheat barley“

addOnSwitchDown (string)

Ausprägung Beschreibung
(ohne) (default) Es wird nichts hinzugefügt
(Auflistung von Füllständen und Fülltypen) Fügt bestimmte Füllstände hinzu, wenn der Switcher umschaltet.

Bsp: „1 counter“, „5 manure 100 barley 30 water“

removeOnSwitchDown (string)

Ausprägung Beschreibung
(ohne) (default) Es wird nichts abgezogen
(Auflistung von Füllständen und Fülltypen) Zieht eine bestimmte Füllmenge ab, wenn der Switcher umschaltet.

Bsp: „1 counter“, „5 manure 100 barley 30 water“

enableChildrenOnSwitchDown (boolean)

Ausprägung Beschreibung
true Die untergeordneten Module werden aktiviert, wenn der Switcher umschaltet.

Nicht in Kombination mit disableChildrenOnDeactive.

false (default) Die untergeordneten Module werden weder aktiviert noch deaktiviert.

disableChildrenOnSwitchDown (boolean)

Ausprägung Beschreibung
true (default) Die untergeordneten Module werden deaktiviert, wenn der Switcher umschaltet.

Nicht in Kombination mit enableChildrenOnSwitchDown.

false Die untergeordneten Module werden weder aktiviert noch deaktiviert.

Beispielmods

Die folgende Liste enthält Mods, die dieses Modul verwenden.

Bild Modname in Dateien
Apfelmod appleKiosk.i3d, appleTree.i3d, pearsTree.i3d
Fabrikgelande Fabrikgelande.i3d
Oel_Company_By_Kastor platzierbar Oel_Company_By_Kastor.i3d
Platzierbare Haufen PlaceableHeap.i3d
Schreinerei Schreinerei.i3d
UPK Comparator Test model.i3d
UPK Switcher Test model.i3d
UPK Switcher Test 2 model.i3d
UPK Switcher Test 3 model.i3d
Wasserpumpe Wasserpumpe.i3d
UPK ROS Gemüse gurkenHaus.i3d, tomatoHaus.i3d
UPK ROS Platzierbare Lager lager1.i3d, lager2.i3d, obstlager.i3d, obstlager1.i3d
UPK ROS Obst und Beeren erdbeeren.i3d, kirscheTree.i3d, orangeTree.i3d, pflaumeTree.i3d
UPK ROS Dünger- und Saatgutproduktion SaatDung.i3d
UPK ROS Verarbeitung und Verkauf baecker.i3d, bude3.i3d, marmelade.i3d, muehle.i3d, neuer_markt.i3d, neuer_markt_ecke.i3d, obstwein.i3d, omaundopa.i3d
UPK Platzierbare Scheune strohhaus.i3d
Oilpumpe Platzierbare Bohrturm.i3d, Bohrturm1.i3d, oilpump.i3d
Gurken Tomaten Paprika Gewächshouse chiliHaus.i3d, gurkenHaus.i3d, paprikaHaus.i3d, salesPoint.i3d, tomatoHaus.i3d