Processor

Aus UniversalProcessKit
Wechseln zu: Navigation, Suche

Das Kernstück des UPK. Es erzeugt Güter bzw. Früchte, wenn gewünscht verbraucht es dafür andere.

Der Referenzwert ist 1 Liter des product, zu dem alle anderen Mengenangaben im Verhältnis stehen.

Inhaltsverzeichnis

Standard-UserAttributes

siehe Standard-UserAttributes

type (string)

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

Ausprägung Beschreibung
processor

Allgemein

product (string)

Ausprägung Beschreibung
(ohne) (default) nichts wird produziert
(Fülltyp) Legt den Fülltyp der Produktion fest.

Bsp: „wheat“, „barley“

recipe (string)

Ausprägung Beschreibung
(ohne) (default) Keine Füllstände werden bei der Produktion verbraucht.
(Auflistung von Füllständen und Fülltypen) Legt die verbrauchte Mengen an Fülltypen fest, die für 1 Liter des Produkts verbraucht werden sollen.

Beeinflusst die produzierte Menge in einem Produktionszyklus.
Bsp: „2 water“, „5 manure 100 barley 30 water“

byproducts (string)

siehe "addIfProduced".

onlyWholeProducts (boolean)

Ob das angegebene Produkt nur als Ganzes produziert werden soll. Die byproducts sind davon nicht betroffen.

Ausprägung Beschreibung
true Das Produkt wird nur in ganzzahliger Stückmenge produziert. Anfallende Reste werden beim nächsten Produktionszyklus dazugerechnet.

Z. Bsp. für alle Dinge wie Tiere, Flaschen, Ballen etc.

false (default) Das Produkt wird auch mit Nachkommasetellen dem Füllstand dazugerechnet.

Z. Bsp. für alle Volumenangaben wie Weizen, Wasser, Dünger etc.


delayOutput (boolean)

Fügt das produzierte Produkt nicht sofort dem Füllstand hinzu, sondern erst mit dem Beginn der nächsten Zeiteinheit/ dem Ende desjenigen Zeitraums (Sekunde, Minute, Stunde, Tag), in dem die Produktion startete.

Ausprägung Beschreibung
true Das Produkt wird in der folgenden Zeiteinheit dem Füllstand hinzugefügt.
false (default) Das Produkt wird sofort dem Füllstand hinzugefügt.

Produktionsmenge

Nur eins der folgenden 4 UserAttribute kann für die Produktionsmenge benutzt werden.

productsPerDay (float)

Ausprägung Beschreibung
0 (default) nichts wird beim Tageswechsel produziert.
(Zahl) Legt die Menge des Produkt fest, die beim Tageswechsel produziert werden soll.

Beeinflusst, ob ein Produktionszyklus ausgeführt wird.
Nicht kombinierbar mit productsPerHour, productsPerMinute und productsPerSecond

productsPerHour (float)

Ausprägung Beschreibung
0 (default) nichts wird beim Stundenwechsel produziert.
(Zahl) Legt die Menge des Produkt fest, die beim Stundenwechsel produziert werden soll.

Beeinflusst, ob ein Produktionszyklus ausgeführt wird.
Nicht kombinierbar mit productsPerDay, productsPerMinute und productsPerSecond

productsPerMinute (float)

Ausprägung Beschreibung
0 (default) nichts wird beim Minutenwechsel produziert.
(Zahl) Legt die Menge des Produkt fest, die beim Minutenwechsel produziert werden soll.

Beeinflusst, ob ein Produktionszyklus ausgeführt wird.
Nicht kombinierbar mit productsPerDay, productsPerHour und productsPerSecond

productsPerSecond (float)

Ausprägung Beschreibung
0 (default) nichts wird beim Sekundenwechsel produziert.
(Zahl) Legt die Menge des Produkt fest, die jede Sekunde (Echtzeit) produziert werden soll.

Beeinflusst, ob ein Produktionszyklus ausgeführt wird.
Nicht kombinierbar mit productsPerDay, productsPerHour und productsPerMinute

Produktionsbedingung

productionDays (string) [0.10.8]

An welchen Wochentagen produziert werden soll.

Ausprägung Beschreibung
0-6 (default) An jedem Wochentag wird porduziert
(Zahl-Zahl, Zahl-Zahl) Legt die Wochentage anhand von Zahlen fest, in denen produziert werden soll.

Beeinflusst, ob ein Produktionszyklus ausgeführt wird.
0 bedeutet Montag, 1 Dienstag, 2 Mittwoch, 3 Donnerstag, 4 Freitag, 5 Samstag, 6 Sonntag.
Bsp: „0-5“, „0-0, 2-6“

productionHours (string)

Zu welchen Uhrzeiten produziert werden soll.
Nicht in Kombination mit productionPerDay.

Ausprägung Beschreibung
0-23 (default) Zu jeder Uhrzeit wird porduziert
(Zahl-Zahl, Zahl-Zahl) Legt die Uhrzeiten in Stunden fest, in denen produziert werden soll.

Beeinflusst, ob ein Produktionszyklus ausgeführt wird.
Bsp: „7-18“, „7-12, 14-16, 18-21“, „5-5,17-17“

productionThreshold (string) [0.10.8]

Legt die Voraussetzungen fest, ob die Produktion ausgeführt werden kann.

Ausprägung Beschreibung
(ohne) (default) Diese Bedingung wird nicht angewandt.
(Auflistung von Füllständen und Fülltypen) Angabe des Füllstands oder der Füllstände, die vorhanden sein müssen, um die Produktion überhaupt auszuführen.

Bsp: „20000 water“, „5000 manure 3000 water“

Beispiel

 <UserAttribute nodeId="3">
   <Attribute name="type" type="string" value="processor"/>
   <Attribute name="product" type="string" value="piglet"/>
   <Attribute name="productionThreshold" type="string" value="100 pig"/>
   <Attribute name="productsPerHour" type="float" value="1"/>
 </UserAttribute>

Der Processor oben fügt jede Stunde 1 Ferkel hinzu, wenn mindestens 100 Schweine im Stall sind.

Produktionsschwankung

Diese UserAttribute beeinflussen die produzierte Menge.

productionPrerequisite (string)

Legt die Voraussetzungen fest, wann 1 Liter des Produkts produziert werden kann.

Ausprägung Beschreibung
(ohne) (default) Diese Bedingung wird nicht angewandt.
(Auflistung von Füllständen und Fülltypen) Zusätzlich und in Relation zu einem Liter des Produkts benötigte Füllmengen. Diese Füllstände werden nicht verbraucht.

Beeinflusst die produzierte Menge in einem Produktionszyklus.
Bsp: „2 water“, „5 manure 100 barley 30 water“

Beispiel

 <UserAttribute nodeId="3">
   <Attribute name="type" type="string" value="processor"/>
   <Attribute name="product" type="string" value="void"/>
   <Attribute name="byproducts" type="string" value="0.01 calftmp"/>
   <Attribute name="productionPrerequisite" type="string" value="1 cow"/>
   <Attribute name="productsPerHour" type="float" value="99999"/>
   <Attribute name="onlyWholeProducts" type="boolean" value="true"/>
 </UserAttribute>
 <UserAttribute nodeId="4">
   <Attribute name="type" type="string" value="comparator"/>
   <Attribute name="formula" type="string" value="calftmp>=1"/>
   <Attribute name="addOnTrue" type="string" value="1 calf"/>
   <Attribute name="removeOnTrue" type="string" value="1 calftmp"/>
 </UserAttribute>

Der Prozessor oben arbeitet folgendermaßen: Er versucht grundsätzlich 99999 "void" (nichts) pro Stunde herzustellen. Für jeden Liter/ jede ganze Zahl an "void" wird aber vorausgesetzt, dass eine Kuh im Stall ist. Wenn nur 10 Kühe im Stall sind, werden nur 10 "void" hergestellt. Das ist die Begrenzung des productionPrerequisite, die die hergestellte Menge deckelt (nur 10 Liter statt 99999). productionPrerequisite bedeutet NICHT dass er 99999 void herstellt, sobald 1 Kuh im Stall ist (siehe productionThreshold).
Des Weiteren fügt er für jedes produzierte "void" 0,01 Kälber ("calftmp") hinzu. Der Comparator darunter regelt, dass erst wenn 1,00 calftmp zusammengekommen sind, 1 Kalb dem Füllstand hinzugefügt wird.
Bei 10 Kühen im Stall werden also jede Stunde 0,1 calftmp hergestellt und nach 10 Stunden in 1 calf umgewandelt. Der Stall wie oben produziert bei 10 Kühen alle 10 Stunden 1 Kalb.

outcomeVariation (float)

Ausprägung Beschreibung
0 (default) Die produzierte Füllmenge schwankt nicht zufällig.
(Kommazahl zwischen 0 und 1) Legt den Anteil fest, um den die Produktion schwanken soll.

Beeinflusst die produzierte Menge in einem Produktionszyklus.
Z.Bsp. „0.05“ entspricht 5% Schwankung nach oben und unten

outcomeVariationType (string)

Legt das Zufallsverfahren für die Produktionsschwankung fest. Nur in Kombination mit outcomeVariation.

Ausprägung Beschreibung
uniform (default) Die Produktionsschwankung ist gleichverteilt.
normal Die Produktionsschwankung ist normalverteilt.

productionInterval (float)

Ausprägung Beschreibung
1 (default) In jedem Zyklus wird produziert.
(Zahl) Legt die Produktionszyklen fest, bei denen produziert werden soll. Zu lesen als „jeder x-ter Zyklus“.

Beeinflusst, ob ein Produktionszyklus ausgeführt wird.
Bsp: „2“, „5“

productionProbability (float)

Ausprägung Beschreibung
1 (default) Es wird immer produziert
(Kommazahl zwischen 0 und 1) Legt die Wahrscheinlichkeit fest, ob produziert werden soll.

Beeinflusst, ob ein Produktionszyklus ausgeführt wird.
Bsp: „0.5“, „0.2“ heißt, dass in 50% bzw. 20% der Fälle produziert wird.

Action-UserAttribute

..IfProduced

Die Action-UserAttributes, die im Namen mit „..IfProduced“ enden, werden nur herangezogen, wenn:
- die produzierten Produkten dem Füllstand hinzugefügt wurden (mit oder ohne delayOutput)

..IfProductionStarted

Die Action-UserAttributes, die im Namen mit „..IfProductionStarted“ enden, werden nur herangezogen, wenn:
- der processor seit der letzten Unterbrechung erstmalig wieder produzieren darf.

..IfProcessing

Die Action-UserAttributes, die im Namen mit „..IfProcessing“ enden, werden nur herangezogen, wenn:
- der processor zu der Zeit produzieren darf,
- die Produktion nicht mit einem Intervall oder per Zufall übersprungen wurde und
- das Produkt auch produziert wurde (Wert größer als 0)

..IfProductionStopped

Die Action-UserAttributes, die im Namen mit „..IfProductionStopped“ enden, werden nur herangezogen, wenn:
- der processor zum ersten Mal keine Produkte mehr produziert.

..IfNotProcessing

Die Action-UserAttributes, die im Namen mit „..IfNotProcessing“ enden, werden nur herangezogen, wenn:
- der processor zu der Zeit produzieren darf,
- die Produktion nicht mit einem Intervall oder per Zufall übersprungen wurde und
- das Produkt aber nicht produziert wurde (Wert gleich 0), wegen zufälligen Schwankungen (outcomeVariation), fehlenden Ausgangsressourcen (recipe), fehlender Randbedingungen (productionPrerequisite) oder vollen Füllständen

..IfProductionSkipped

Die Action-UserAttributes, die im Namen mit „..IfProductionSkipped“ enden, werden nur herangezogen, wenn:
- der processor zu der Zeit nicht produzieren darf oder
- die Produktion mit einem Intervall oder per Zufall übersprungen wurde

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
Pelletautomat Pelletautomat.i3d
Rafi platzierbar Rafi_By_Kastor.i3d
Schreinerei Schreinerei.i3d
SilageSilo SilageSilo.i3d
UPK Processor Test model.i3d
UPK Processor Test 2 model.i3d
UPK Processor Test 3 model.i3d
UPK Store Type Single Test model.i3d
UPK Switcher Test 3 model.i3d
UPK Unspecified Test model.i3d
Wasserpumpe Wasserpumpe.i3d
UPK ROS Gemüse bude2.i3d, gurkenHaus.i3d, tomatoHaus.i3d
UPK ROS Obst und Beeren brunnenpumpe.i3d, bude0.i3d, bude1.i3d, erdbeeren.i3d, kirscheTree.i3d, orangeTree.i3d, pflaumeTree.i3d, saftheini.i3d
UPK ROS Dünger- und Saatgutproduktion SaatDung.i3d
UPK ROS Platzierbarer Grossmarkt gemischtwaren.i3d, grossmarkt2.i3d, verkauf.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
Oilpumpe Platzierbare Bohrturm.i3d, Bohrturm1.i3d, oilpump.i3d
Platzierbare Silo silo.i3d
Gurken Tomaten Paprika Gewächshouse chiliHaus.i3d, gurkenHaus.i3d, paprikaHaus.i3d, salesPoint.i3d, tomatoHaus.i3d