Zum Hauptinhalt springen

8. Animal Unload Trigger - Tiere entladen

Übersicht

Warnung außerhalb der Saison Mit Animal Unload Trigger können Tiere direkt in Produktionspunkte entladen und zu FillTypes konvertiert werden.

🐄 Beispiel: Ein Schlachthof akzeptiert Kühe (12-36 Monate alt) und konvertiert sie zu COWMEAT basierend auf ihrem Gewicht.

Funktionsweise

  • Trigger-basiert: Anhänger mit Tieren in den Trigger fahren
  • Tier-Anforderungen: Alter und Gesundheit müssen in definierten Grenzen liegen
  • Gewicht-Berechnung: Gewicht wird über eine konfigurierbare Kurve berechnet
  • FillType-Output: Tiergewicht = Menge an FillType (z.B. 500kg Kuh = 500 Liter COWMEAT)

Warnung außerhalb der Saison

XML-Konfiguration

Basis-Struktur

<placeable>
<productionExtension>
<animalUnloadTriggers>
<trigger node="0>6|0|0">
<acceptedAnimals>
<animal animalType="COW"
minAge="12"
maxAge="36"
minHealth="50"
maxHealth="100"
fillType="COWMEAT">
<weight age="0" kg="40"/>
<weight age="12" kg="300"/>
<weight age="24" kg="500"/>
<weight age="36" kg="600"/>
</animal>
</acceptedAnimals>
</trigger>
</animalUnloadTriggers>
</productionExtension>
</placeable>
WICHTIG

Der Trigger-Node muss im i3D als Trigger konfiguriert sein!

Trigger Parameter

ParameterBeschreibungPflichtStandard
nodeTrigger-Node im i3D-
logoSliceIdLogo für GUI-DialoganimalDialog.animalDialog_logo

Animal Parameter

ParameterBeschreibungPflichtStandard
animalTypeGenerischer Typ (COW, PIG, ...) oder spezifische Rasse (COW_SWISS_BROWN, PIG_BERKSHIRE, ...)-
minAgeMindestalter in Monaten0
maxAgeHöchstalter in Monaten999
minHealthMindest-Gesundheit in %0
maxHealthHöchst-Gesundheit in %100
fillTypeZiel-FillType (z.B. COWMEAT)-
customIconEigenes Icon für GUI-

Gewichtskurve

Jedes Tier benötigt eine Gewichtskurve mit mindestens 2 Punkten:

<animal animalType="COW" fillType="COWMEAT">
<weight age="0" kg="40"/> <!-- Kalb: 40 kg -->
<weight age="12" kg="300"/> <!-- 1 Jahr: 300 kg -->
<weight age="24" kg="500"/> <!-- 2 Jahre: 500 kg -->
<weight age="36" kg="600"/> <!-- 3 Jahre: 600 kg -->
</animal>

Interpolation:

  • Das Gewicht wird linear zwischen den Punkten interpoliert
  • Tier mit 18 Monaten: ~400kg (zwischen 12 und 24 Monaten)
TIPP

Mehr Punkte = genauere Gewichtskurve!

Tier-Typen

animalType kann entweder ein generischer Typ oder eine spezifische Rasse sein.

Generische Typen (alle Rassen der Gruppe)

animalTypeAkzeptiert
COWAlle Kuh-Rassen (Swiss Brown, Holstein, Angus, Limousin, Highland Cattle, Wasserbüffel)
PIGAlle Schweine-Rassen (Landrace, Black Pied, Berkshire)
SHEEPAlle Schafe UND Ziegen
HORSEAlle Pferde-Rassen
CHICKENAlle Hühner (Hennen + Hähne)

Spezifische Rassen

animalTypeRasseGruppe
COW_SWISS_BROWNBraunviehKuh
COW_HOLSTEINHolstein-FriesianKuh
COW_ANGUSAngusKuh
COW_LIMOUSINLimousinKuh
COW_HIGHLAND_CATTLEHochlandrindKuh
COW_WATERBUFFALOWasserbüffelKuh
PIG_LANDRACELandschweinSchwein
PIG_BLACK_PIEDBunte BentheimerSchwein
PIG_BERKSHIREBerkshireSchwein
SHEEP_LANDRACELandschafSchaf
SHEEP_STEINSCHAFSteinschafSchaf
SHEEP_SWISS_MOUNTAINSchweizer BergschafSchaf
SHEEP_BLACK_WELSHWelsh MountainSchaf
GOATZiegeSchaf/Ziege
HORSE_BAYBraunerPferd
HORSE_BLACKRappePferd
HORSE_CHESTNUTFuchsPferd
HORSE_DUNFalbePferd
HORSE_GRAYSchimmelPferd
HORSE_PALOMINOPalominoPferd
HORSE_PINTOPintoPferd
HORSE_SEAL_BROWNBraun-SchwarzPferd
CHICKENHenneHuhn
CHICKEN_ROOSTERHahnHuhn
Matching-Logik

Das System prüft zuerst ob animalType mit der spezifischen Rasse übereinstimmt. Wenn nicht, wird auf den generischen Typ zurückgegriffen.

  • animalType="COW" → akzeptiert Swiss Brown, Holstein, Angus, Limousin, Highland Cattle, Wasserbüffel
  • animalType="COW_SWISS_BROWN" → akzeptiert nur Swiss Brown Kühe
  • animalType="SHEEP" → akzeptiert alle Schafe und Ziegen
  • animalType="GOAT" → akzeptiert nur Ziegen
WICHTIG

Nur in FS25 vorhandene FillTypes verwenden!

Beispiele

Schlachthof - Kühe

Akzeptiert Kühe zwischen 12 und 36 Monaten:

<trigger node="0>6|0|0">
<acceptedAnimals>
<animal animalType="COW"
minAge="12"
maxAge="36"
minHealth="50"
maxHealth="100"
fillType="COWMEAT">
<weight age="0" kg="40"/>
<weight age="6" kg="150"/>
<weight age="12" kg="300"/>
<weight age="24" kg="500"/>
<weight age="36" kg="600"/>
</animal>
</acceptedAnimals>
</trigger>

Verhalten:

  • Kalb (6 Monate): ❌ Zu jung (minAge=12)
  • Kuh (18 Monate, 70% Gesundheit): ✅ Akzeptiert → ~400 Liter COWMEAT
  • Kuh (40 Monate): ❌ Zu alt (maxAge=36)
  • Kuh (20 Monate, 30% Gesundheit): ❌ Zu krank (minHealth=50)

Schlachthof - Nur Swiss Brown Kühe

Akzeptiert nur Swiss Brown Kühe (spezifische Rasse):

<trigger node="0>6|0|0">
<acceptedAnimals>
<animal animalType="COW_SWISS_BROWN"
minAge="12"
maxAge="36"
minHealth="50"
maxHealth="100"
fillType="COWMEAT">
<weight age="0" kg="40"/>
<weight age="12" kg="320"/>
<weight age="24" kg="520"/>
<weight age="36" kg="620"/>
</animal>
</acceptedAnimals>
</trigger>

Schlachthof - Schweine

Akzeptiert Schweine zwischen 6 und 18 Monaten:

<trigger node="0>6|0|0">
<acceptedAnimals>
<animal animalType="PIG"
minAge="6"
maxAge="18"
minHealth="60"
maxHealth="100"
fillType="PIGMEAT">
<weight age="0" kg="25"/>
<weight age="6" kg="80"/>
<weight age="12" kg="120"/>
<weight age="18" kg="140"/>
</animal>
</acceptedAnimals>
</trigger>

Schlachthof - Schafe (alle Alter)

Akzeptiert Schafe jeden Alters:

<trigger node="0>6|0|0">
<acceptedAnimals>
<animal animalType="SHEEP"
minAge="0"
maxAge="999"
minHealth="40"
maxHealth="100"
fillType="SHEEPMEAT">
<weight age="0" kg="5"/>
<weight age="6" kg="25"/>
<weight age="12" kg="40"/>
<weight age="24" kg="50"/>
</animal>
</acceptedAnimals>
</trigger>
TIPP

minAge="0" und maxAge="999" = alle Alter akzeptiert!

Mehrere Tier-Typen pro Trigger

Ein Trigger kann mehrere Tier-Typen akzeptieren:

<trigger node="0>6|0|0">
<acceptedAnimals>
<!-- Kühe -->
<animal animalType="COW"
minAge="12"
maxAge="36"
minHealth="50"
maxHealth="100"
fillType="COWMEAT">
<weight age="0" kg="40"/>
<weight age="12" kg="300"/>
<weight age="24" kg="500"/>
<weight age="36" kg="600"/>
</animal>

<!-- Schweine -->
<animal animalType="PIG"
minAge="6"
maxAge="18"
minHealth="60"
maxHealth="100"
fillType="PIGMEAT">
<weight age="0" kg="25"/>
<weight age="6" kg="80"/>
<weight age="12" kg="120"/>
<weight age="18" kg="140"/>
</animal>

<!-- Schafe -->
<animal animalType="SHEEP"
minAge="0"
maxAge="999"
minHealth="40"
maxHealth="100"
fillType="SHEEPMEAT">
<weight age="0" kg="5"/>
<weight age="12" kg="40"/>
<weight age="24" kg="50"/>
</animal>
</acceptedAnimals>
</trigger>

Mehrere Trigger

Verschiedene Trigger für verschiedene Produktionszweige:

<animalUnloadTriggers>
<!-- Trigger 1: Schlachthof (erwachsene Tiere) -->
<trigger node="0>6|0|0">
<acceptedAnimals>
<animal animalType="COW"
minAge="12"
maxAge="36"
fillType="COWMEAT">
<weight age="12" kg="300"/>
<weight age="36" kg="600"/>
</animal>
</acceptedAnimals>
</trigger>

<!-- Trigger 2: Kälber-Aufzucht (nur junge Tiere) -->
<trigger node="0>6|0|1">
<acceptedAnimals>
<animal animalType="COW"
minAge="0"
maxAge="6"
minHealth="80"
maxHealth="100"
fillType="MILK">
<weight age="0" kg="40"/>
<weight age="3" kg="80"/>
<weight age="6" kg="120"/>
</animal>
</acceptedAnimals>
</trigger>
</animalUnloadTriggers>
Hinweis

Nutzen: Verschiedene Trigger für verschiedene Altersklassen/Produktionszwecke!

Alter & Gesundheit

Alter-Grenzen

Tiere außerhalb der Altersgrenzen werden NICHT akzeptiert:

<!-- Nur erwachsene Kühe -->
<animal animalType="COW" minAge="12" maxAge="36" fillType="COWMEAT">
...
</animal>

Beispiele:

  • Kalb (6 Monate): ❌ Zu jung
  • Kuh (20 Monate): ✅ Akzeptiert
  • Kuh (40 Monate): ❌ Zu alt

Gesundheits-Grenzen

Tiere außerhalb der Gesundheitsgrenzen werden NICHT akzeptiert:

<!-- Nur gesunde Tiere -->
<animal animalType="COW" minHealth="60" maxHealth="100" fillType="COWMEAT">
...
</animal>

Beispiele:

  • Kuh (40% Gesundheit): ❌ Zu krank
  • Kuh (70% Gesundheit): ✅ Akzeptiert
  • Kuh (100% Gesundheit): ✅ Akzeptiert

Kombinierte Anforderungen

Alter UND Gesundheit müssen passen:

<animal animalType="COW"
minAge="12"
maxAge="36"
minHealth="50"
maxHealth="100"
fillType="COWMEAT">
...
</animal>

Beispiele:

  • Kuh (20 Monate, 70% Gesundheit): ✅ Beide Bedingungen erfüllt
  • Kuh (20 Monate, 30% Gesundheit): ❌ Gesundheit zu niedrig
  • Kuh (8 Monate, 80% Gesundheit): ❌ Alter zu niedrig
  • Kuh (40 Monate, 90% Gesundheit): ❌ Alter zu hoch

Häufige Fehler

❌ Trigger akzeptiert keine Tiere

Ursache 1: Trigger-Node fehlt oder falsch

<!-- FALSCH - Node existiert nicht -->
<trigger node="0>99|0|0">

<!-- RICHTIG -->
<trigger node="0>6|0|0">

Ursache 2: Alter/Gesundheit außerhalb der Grenzen

<!-- FALSCH - zu strenge Anforderungen -->
<animal animalType="COW"
minAge="24"
maxAge="25"
minHealth="95"
maxHealth="100"
fillType="COWMEAT">
TIPP

Grenzen großzügiger wählen!

❌ Gewicht stimmt nicht

Ursache: Zu wenige Gewichtspunkte

<!-- FALSCH - nur 2 Punkte = ungenaue Kurve -->
<animal animalType="COW" fillType="COWMEAT">
<weight age="0" kg="40"/>
<weight age="36" kg="600"/>
</animal>

<!-- RICHTIG - mehr Punkte = genauere Kurve -->
<animal animalType="COW" fillType="COWMEAT">
<weight age="0" kg="40"/>
<weight age="6" kg="150"/>
<weight age="12" kg="300"/>
<weight age="24" kg="500"/>
<weight age="36" kg="600"/>
</animal>

❌ FillType nicht gefunden

Ursache: Ungültiger FillType

<!-- FALSCH - MEAT existiert nicht in FS25 -->
<animal animalType="COW" fillType="MEAT">

<!-- RICHTIG - COWMEAT ist ein gültiger FillType -->
<animal animalType="COW" fillType="COWMEAT">
WICHTIG

Nur FillTypes verwenden, die in FS25 existieren! Oder eine newFillType.xml erstellen

Logo Slice ID

Ein eigenes Logo für den Trigger-Dialog:

<productionExtension logoSliceId="FS25_Butcher.metzgereiBauer_logo">

Warnung außerhalb der Saison

Hinweis

Voraussetzung: Siehe FS25 Dokumentation für Logo-Registrierung in Advanced Configuration

Praktische Beispiele

Schlachthof (alle Fleisch-Tiere)

<trigger node="0>6|0|0" logoSliceId="myMod.slaughterhouse">
<acceptedAnimals>
<!-- Kühe -->
<animal animalType="COW"
minAge="12"
maxAge="36"
minHealth="50"
maxHealth="100"
fillType="COWMEAT">
<weight age="12" kg="300"/>
<weight age="24" kg="500"/>
<weight age="36" kg="600"/>
</animal>

<!-- Schweine -->
<animal animalType="PIG"
minAge="6"
maxAge="18"
minHealth="60"
maxHealth="100"
fillType="PIGMEAT">
<weight age="6" kg="80"/>
<weight age="12" kg="120"/>
<weight age="18" kg="140"/>
</animal>

<!-- Schafe -->
<animal animalType="SHEEP"
minAge="6"
maxAge="24"
minHealth="40"
maxHealth="100"
fillType="SHEEPMEAT">
<weight age="6" kg="25"/>
<weight age="12" kg="40"/>
<weight age="24" kg="50"/>
</animal>
</acceptedAnimals>
</trigger>

Hühnerfarm (Eier-Produktion)

<trigger node="0>6|0|0">
<acceptedAnimals>
<animal animalType="CHICKEN"
minAge="0"
maxAge="24"
minHealth="70"
maxHealth="100"
fillType="EGG">
<weight age="0" kg="0.5"/>
<weight age="6" kg="1.5"/>
<weight age="12" kg="2.0"/>
</animal>
</acceptedAnimals>
</trigger>
Hinweis

Gewicht entspricht Eier-Produktion, nicht dem tatsächlichen Tier-Gewicht!

Vollständiges Beispiel

<productionExtension>
<animalUnloadTriggers>
<!-- Schlachthof-Trigger -->
<trigger node="0>6|0|0" logoSliceId="myMod.slaughterhouse">
<acceptedAnimals>
<!-- Kühe: 12-36 Monate -->
<animal animalType="COW"
minAge="12"
maxAge="36"
minHealth="50"
maxHealth="100"
fillType="COWMEAT">
<weight age="0" kg="40"/>
<weight age="6" kg="150"/>
<weight age="12" kg="300"/>
<weight age="24" kg="500"/>
<weight age="36" kg="600"/>
</animal>

<!-- Schweine: 6-18 Monate -->
<animal animalType="PIG"
minAge="6"
maxAge="18"
minHealth="60"
maxHealth="100"
fillType="PIGMEAT">
<weight age="0" kg="25"/>
<weight age="6" kg="80"/>
<weight age="12" kg="120"/>
<weight age="18" kg="140"/>
</animal>

<!-- Schafe: alle Alter -->
<animal animalType="SHEEP"
minAge="0"
maxAge="999"
minHealth="40"
maxHealth="100"
fillType="SHEEPMEAT">
<weight age="0" kg="5"/>
<weight age="6" kg="25"/>
<weight age="12" kg="40"/>
<weight age="24" kg="50"/>
</animal>
</acceptedAnimals>
</trigger>

<!-- Kälber-Aufzucht Trigger -->
<trigger node="0>6|0|1">
<acceptedAnimals>
<!-- Nur junge Kälber -->
<animal animalType="COW"
minAge="0"
maxAge="6"
minHealth="80"
maxHealth="100"
fillType="MILK">
<weight age="0" kg="40"/>
<weight age="3" kg="80"/>
<weight age="6" kg="120"/>
</animal>
</acceptedAnimals>
</trigger>
</animalUnloadTriggers>

<productions>
<production id="schlachthof" name="Schlachthof" cyclesPerHour="1" costsPerActiveHour="50">
<inputs>
<input fillType="COWMEAT" amount="500"/>
</inputs>
<outputs>
<output fillType="MEAT" amount="400"/>
</outputs>
</production>
</productions>
</productionExtension>

Beispieldatei

Siehe: examples/10_AnimalUnloadTrigger.xml

Verwandte Features

Zusammenfassung

✅ Tiere direkt in Produktionspunkte entladen ✅ Konfigurierbare Alter- & Gesundheits-Anforderungen ✅ Gewichtsbasierte FillType-Konvertierung ✅ Mehrere Tier-Typen pro Trigger möglich ✅ Mehrere Trigger für verschiedene Produktionszweige ✅ Custom Icons & Logos ✅ Multiplayer-kompatibel