Zum Hauptinhalt springen

10. Advanced Configuration - Logos, Beschreibungen & Paletten-Templates

Übersicht

Warnung außerhalb der Saison Diese Seite beschreibt drei fortgeschrittene Konfigurations-Dateien:

  1. logos_gui.xml - GUI-Logos für Dialoge
  2. description.xml - Mehrsprachige Beschreibungen
  3. palletTemplates.xml - Paletten-Varianten
Optional

Alle drei Dateien sind nicht zwingend erforderlich, erweitern aber die Funktionalität!

1. Logos GUI - GUI-Logos für Dialoge

Übersicht

Mit logos_gui.xml können eigene Logos in Dialogen angezeigt werden.

Verwendet in:

  • AnimalUnloadDialog (beim Tier-Entladen)
  • ProductionOutputDialog (bei Produktions-Infos)

Hier einmal beim Auslagern

Warnung außerhalb der Saison

Hier einmal beim ablegen der Tiere in die Produktion

Warnung außerhalb der Saison

Datei-Struktur

MyMod/
├── gui/
│ └── mymod_logos_gui.xml ← Hier!
├── textures/
│ └── production_logos.dds
└── modDesc.xml
WICHTIG
  • Dateiname: [modname]_logos_gui.xml oder einfach logos_gui.xml
  • Liegt im gui/ Ordner
  • Wird automatisch vom System registriert

Basis-Struktur

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<texture>
<meta>
<!-- Pfad zur Texture-Datei (relativ zu dieser XML) -->
<filename>../textures/production_logos.dds</filename>
<!-- Größe der Gesamt-Textur in Pixeln -->
<size width="512" height="512"/>
</meta>

<!-- Logo-Slices definieren (UV-Koordinaten in Pixeln) -->
<slices>
<!-- Bäckerei Logo (oben links, 256x256) -->
<slice id="baeckerei_logo" uvs="0px 0px 256px 256px"/>

<!-- Mühle Logo (oben rechts, 256x256) -->
<slice id="muehle_logo" uvs="256px 0px 256px 256px"/>

<!-- Schlachthof Logo (unten links, 256x256) -->
<slice id="schlachthof_logo" uvs="0px 256px 256px 256px"/>

<!-- Käserei Logo (unten rechts, 256x256) -->
<slice id="kaeserei_logo" uvs="256px 256px 256px 256px"/>
</slices>
</texture>

Meta Section

Filename

Pfad zur Texture-Datei (relativ zur XML):

<filename>../textures/production_logos.dds</filename>
WICHTIG
  • Relativ zur logos_gui.xml
  • Meist eine Ebene höher im textures/ Ordner
  • Format: .dds empfohlen

Size

Gesamtgröße der Texture in Pixeln:

<size width="512" height="512"/>

Empfohlene Größen:

  • 512x512 (für 4 Logos à 256x256)
  • 1024x512 (für 8 Logos à 256x256)
  • 1024x1024 (für 16 Logos à 256x256)
WICHTIG

Nutze nur Power-of-2 Größen (256, 512, 1024, 2048)!

Slices - Logo-Ausschnitte

Slice Definition

<slice id="baeckerei_logo" uvs="0px 0px 256px 256px"/>

Attribute:

  • id - Eindeutige ID (wird in logoSliceId referenziert)
  • uvs - UV-Koordinaten in Pixeln

UV-Koordinaten

Format: "X Y WIDTH HEIGHT" (alles in Pixeln)

uvs="0px 0px 256px 256px"

Bedeutung:

  • X - Start-X-Position (0px = links)
  • Y - Start-Y-Position (0px = oben)
  • WIDTH - Breite des Ausschnitts (256px)
  • HEIGHT - Höhe des Ausschnitts (256px)

Texture Atlas Layout

Beispiel: 512x512 Textur mit 4 Logos (je 256x256)

+-------------+-------------+
| | |
| Logo 1 | Logo 2 |
| 0,0 | 256,0 |
| | |
+-------------+-------------+
| | |
| Logo 3 | Logo 4 |
| 0,256 | 256,256 |
| | |
+-------------+-------------+

UV-Koordinaten:

<!-- Oben Links -->
<slice id="logo_1" uvs="0px 0px 256px 256px"/>

<!-- Oben Rechts -->
<slice id="logo_2" uvs="256px 0px 256px 256px"/>

<!-- Unten Links -->
<slice id="logo_3" uvs="0px 256px 256px 256px"/>

<!-- Unten Rechts -->
<slice id="logo_4" uvs="256px 256px 256px 256px"/>

Verwendung in Placeable-XML

ProductionExtension

<placeable>
<productionExtension logoSliceId="baeckerei_logo">
<!-- ... -->
</productionExtension>
</placeable>

AnimalUnloadTrigger

<animalUnloadTriggers>
<trigger node="0>6|0|0" logoSliceId="schlachthof_logo">
<!-- ... -->
</trigger>
</animalUnloadTriggers>

Beispiele

Beispiel 1: 4 Logos (512x512)

<texture>
<meta>
<filename>../textures/production_logos.dds</filename>
<size width="512" height="512"/>
</meta>

<slices>
<slice id="baeckerei_logo" uvs="0px 0px 256px 256px"/>
<slice id="muehle_logo" uvs="256px 0px 256px 256px"/>
<slice id="schlachthof_logo" uvs="0px 256px 256px 256px"/>
<slice id="kaeserei_logo" uvs="256px 256px 256px 256px"/>
</slices>
</texture>

📁 Siehe: examples/13_logos_gui.xml

Beispiel 2: 8 Logos (1024x512)

<texture>
<meta>
<filename>../textures/logos_atlas_big.dds</filename>
<size width="1024" height="512"/>
</meta>

<slices>
<!-- Erste Reihe -->
<slice id="logo_baeckerei" uvs="0px 0px 256px 256px"/>
<slice id="logo_brauerei" uvs="256px 0px 256px 256px"/>
<slice id="logo_kaeserei" uvs="512px 0px 256px 256px"/>
<slice id="logo_muehle" uvs="768px 0px 256px 256px"/>

<!-- Zweite Reihe -->
<slice id="logo_schlachthof" uvs="0px 256px 256px 256px"/>
<slice id="logo_weberei" uvs="256px 256px 256px 256px"/>
<slice id="logo_schmiede" uvs="512px 256px 256px 256px"/>
<slice id="logo_saegewerk" uvs="768px 256px 256px 256px"/>
</slices>
</texture>

Beispiel 3: Verschiedene Größen

<texture>
<meta>
<filename>../textures/mixed_logos.dds</filename>
<size width="512" height="512"/>
</meta>

<slices>
<!-- Großes Haupt-Logo (512x256) -->
<slice id="hauptlogo_gross" uvs="0px 0px 512px 256px"/>

<!-- Kleine Icons (je 128x128) -->
<slice id="icon_rind" uvs="0px 256px 128px 128px"/>
<slice id="icon_schwein" uvs="128px 256px 128px 128px"/>
<slice id="icon_schaf" uvs="256px 256px 128px 128px"/>
<slice id="icon_huhn" uvs="384px 256px 128px 128px"/>

<!-- Weitere kleine Logos -->
<slice id="logo_klein_1" uvs="0px 384px 128px 128px"/>
<slice id="logo_klein_2" uvs="128px 384px 128px 128px"/>
<slice id="logo_klein_3" uvs="256px 384px 128px 128px"/>
<slice id="logo_klein_4" uvs="384px 384px 128px 128px"/>
</slices>
</texture>

Texture-Datei (.dds)

Empfohlene Einstellungen

Format:

  • DDS mit DXT5 (für Transparenz)
  • Oder DXT1 (ohne Transparenz)

Größen:

  • 512x512, 1024x512, 1024x1024
  • Immer Power-of-2 (256, 512, 1024, 2048)

Mipmaps:

  • Empfohlen für bessere Qualität
  • Bei kleineren Darstellungen wichtig

Software:

  • GIMP mit DDS Plugin
  • Photoshop mit DDS Plugin
  • Giants Editor (Texture Export)

Häufige Fehler

❌ Logo wird nicht angezeigt

Ursache 1: Falsche Datei-Benennung

<!-- FALSCH - falscher Dateiname -->
gui/my_custom_logos.xml

<!-- RICHTIG - mit Modname oder Standard -->
gui/mymod_logos_gui.xml
gui/logos_gui.xml

Ursache 2: Falscher Pfad zur Texture

<!-- FALSCH - absoluter Pfad -->
<filename>C:/Users/Me/MyMod/textures/logos.dds</filename>

<!-- RICHTIG - relativer Pfad -->
<filename>../textures/logos.dds</filename>

Ursache 3: UV-Koordinaten außerhalb der Texture

<!-- Texture ist 512x512 -->
<size width="512" height="512"/>

<!-- FALSCH - 600px überschreitet 512px -->
<slice id="logo" uvs="0px 0px 600px 600px"/>

<!-- RICHTIG -->
<slice id="logo" uvs="0px 0px 256px 256px"/>

2. Description.xml - Mehrsprachige Beschreibungen

Übersicht

Mit description.xml können detaillierte mehrsprachige Beschreibungen im Übersichts-Tab angezeigt werden.

📷 [SCREENSHOT: Übersichts-Tab mit Beschreibung]

Datei-Struktur

MyPlaceable/
├── placeable.xml
├── description.xml ← Hier! (gleicher Ordner wie placeable.xml)
└── placeable.i3d
WICHTIG
  • Dateiname: description.xml (fest)
  • Liegt im baseDirectory des Placeables
  • Gleicher Ordner wie die placeable.xml

Basis-Struktur

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<descriptions>
<description id="baeckerei_klein">
<title>
<en>Small Bakery</en>
<de>Kleine Bäckerei</de>
</title>
<text>
<en>A small traditional bakery that produces fresh bread daily.

Features:
- Produces up to 1000L bread per hour
- Uses wheat flour and water
- Opening hours: 6:00 - 20:00

Requirements:
- Power connection recommended
- Water supply needed
</en>
<de>Eine kleine traditionelle Bäckerei die täglich frisches Brot produziert.

Features:
- Produziert bis zu 1000L Brot pro Stunde
- Verwendet Weizenmehl und Wasser
- Öffnungszeiten: 6:00 - 20:00 Uhr

Anforderungen:
- Stromanschluss empfohlen
- Wasserversorgung benötigt
</de>
</text>
</description>
</descriptions>

Description Element

Attribute

<description id="baeckerei_klein">

id: Eindeutige ID (wird in descriptionId referenziert)

Title Section

Mehrsprachiger Titel:

<title>
<en>Small Bakery</en>
<de>Kleine Bäckerei</de>
<fr>Petite Boulangerie</fr>
<es>Panadería Pequeña</es>
</title>

Unterstützte Sprachen:

  • en - Englisch
  • de - Deutsch
  • fr - Französisch
  • es - Spanisch
  • it - Italienisch
  • pl - Polnisch
  • ru - Russisch
  • jp - Japanisch
  • etc.

Text Section

Mehrsprachiger Beschreibungstext:

<text>
<en>A small traditional bakery...

Features:
- Feature 1
- Feature 2

Requirements:
- Requirement 1
</en>
<de>Eine kleine traditionelle Bäckerei...

Features:
- Feature 1
- Feature 2

Anforderungen:
- Anforderung 1
</de>
</text>

Formatierung:

  • Zeilenumbrüche werden übernommen
  • Keine HTML-Tags
  • Einfacher Text mit Leerzeilen zur Strukturierung

Verwendung in Placeable-XML

<placeable>
<productionExtension descriptionId="baeckerei_klein">
<!-- ... -->
</productionExtension>
</placeable>

Beispiele

Beispiel 1: Bäckerei

<description id="baeckerei_klein">
<title>
<en>Small Bakery</en>
<de>Kleine Bäckerei</de>
</title>
<text>
<en>A small traditional bakery that produces fresh bread daily.

Features:
- Produces up to 1000L bread per hour
- Uses wheat flour and water
- Opening hours: 6:00 - 20:00
- Seasonal special products in winter

Requirements:
- Power connection recommended
- Water supply needed
</en>
<de>Eine kleine traditionelle Bäckerei die täglich frisches Brot produziert.

Features:
- Produziert bis zu 1000L Brot pro Stunde
- Verwendet Weizenmehl und Wasser
- Öffnungszeiten: 6:00 - 20:00 Uhr
- Saisonale Spezialprodukte im Winter

Anforderungen:
- Stromanschluss empfohlen
- Wasserversorgung benötigt
</de>
</text>
</description>

📁 Siehe: examples/12_description.xml

Beispiel 2: Schlachthof

<description id="schlachthof_modern">
<title>
<en>Modern Slaughterhouse</en>
<de>Moderner Schlachthof</de>
</title>
<text>
<en>State-of-the-art slaughterhouse with animal processing.

Features:
- Processes cattle, pigs, sheep, and chickens
- Age and health requirements for optimal yield
- Automatic weight calculation based on animal age
- Multiple output products (meat, leather, etc.)

Animal Requirements:
- Cattle: 12-36 months, 50-100% health
- Pigs: 6-18 months, 60-100% health
- Sheep: Any age, 40-100% health

Output:
- Weight-based meat production
- Additional byproducts depending on animal type
</en>
<de>Hochmoderner Schlachthof mit Tierverarbeitung.

Features:
- Verarbeitet Rinder, Schweine, Schafe und Hühner
- Alters- und Gesundheitsanforderungen für optimalen Ertrag
- Automatische Gewichtsberechnung basierend auf Tieralter
- Mehrere Ausgabeprodukte (Fleisch, Leder, etc.)

Tier-Anforderungen:
- Rinder: 12-36 Monate, 50-100% Gesundheit
- Schweine: 6-18 Monate, 60-100% Gesundheit
- Schafe: Beliebiges Alter, 40-100% Gesundheit

Ausgabe:
- Gewichtsbasierte Fleischproduktion
- Zusätzliche Nebenprodukte je nach Tierart
</de>
</text>
</description>

Beispiel 3: Kurze Beschreibung

<description id="simple_production">
<title>
<en>Simple Production Facility</en>
<de>Einfache Produktionsanlage</de>
</title>
<text>
<en>A basic production facility for general manufacturing.</en>
<de>Eine einfache Produktionsanlage für allgemeine Fertigung.</de>
</text>
</description>

Mehrsprachigkeit

Fallback-System

Wenn eine Sprache nicht gefunden wird:

  1. Versucht System-Sprache
  2. Falls nicht vorhanden: Englisch (en)
  3. Falls nicht vorhanden: Erste verfügbare Sprache

Beispiel:

<text>
<en>English text</en>
<de>Deutscher Text</de>
</text>
  • Spieler mit Französisch: Bekommt Englisch (Fallback)
  • Spieler mit Deutsch: Bekommt Deutschen Text
  • Spieler mit Englisch: Bekommt Englischen Text

Häufige Fehler

❌ Beschreibung wird nicht angezeigt

Ursache 1: Falsche Datei-Position

MyPlaceable/
├── placeable.xml
└── textures/
└── description.xml ← FALSCH! Zu tief im Ordner

RICHTIG:
MyPlaceable/
├── placeable.xml
├── description.xml ← Gleiche Ebene wie placeable.xml

Ursache 2: Falsche ID

<!-- In description.xml -->
<description id="baeckerei_klein">

<!-- FALSCH - ID stimmt nicht überein -->
<productionExtension descriptionId="baeckerei_gross">

<!-- RICHTIG -->
<productionExtension descriptionId="baeckerei_klein">

Ursache 3: Ungültige XML-Zeichen

<!-- FALSCH - & muss escaped werden -->
<text>
<en>Bread & Butter Production</en>
</text>

<!-- RICHTIG -->
<text>
<en>Bread &amp; Butter Production</en>
</text>

3. PalletTemplates.xml - Paletten-Varianten

Übersicht

Mit palletTemplates.xml können mehrere Paletten-Varianten mit demselben 3D-Mesh aber verschiedenen Texturen definiert werden.

Vorteile:

  • Ein i3d-Mesh, viele Texturen
  • Bessere Performance (weniger Draw Calls)
  • Kleinere Mod-Größe
  • Zufällige Varianten-Auswahl
WICHTIG

Nur für spezielle Fälle! Standard-FillTypes funktionieren automatisch!

Wann brauchst du diese Datei?

✅ BRAUCHST DU für:

  1. Gleiches Mesh mit verschiedenen Texturen

    • Beispiel: FLOUR mit weißem und braunem Sack
    • 1 i3d-Mesh, 2 Texturen = 2 Varianten
  2. Custom-FillTypes ohne Standard-Palette

    • Eigene Mods mit eigenen FillTypes
    • Wenn fillType.palletFilename nicht gesetzt ist
  3. Mehrere Varianten pro FillType

    • System wählt zufällig eine Variante
    • Visuell abwechslungsreiche Darstellung

❌ BRAUCHST DU NICHT für:

  • Standard-FillTypes (SUGAR, FLOUR, BREAD, MILK, CHEESE, EGGS, etc.)
  • Wenn du nur 1 Standard-Palette pro FillType willst
  • Wenn fillType.palletFilename bereits gesetzt ist
Anmerkung

AutoDetect: Standard-FillTypes werden automatisch vom FillTypeManager geladen!

Datei-Struktur

MyMod/
├── palletTemplates.xml ← Hier! (gleiche Ebene wie modDesc.xml)
├── modDesc.xml
├── pallets/
│ ├── flourSack.i3d
│ └── textures/
│ ├── flourSack_white.dds
│ └── flourSack_brown.dds
WICHTIG
  • Dateiname: palletTemplates.xml (Plural!)
  • Liegt im Mod-Verzeichnis (wo modDesc.xml liegt)
  • Wird automatisch geladen wenn vorhanden

Basis-Struktur

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<palletTemplates>
<template fillType="FLOUR">
<i3d>pallets/flourSack.i3d</i3d>
<texture>pallets/textures/flourSack_white.dds</texture>
<capacity>1500</capacity>
</template>

<template fillType="FLOUR">
<i3d>pallets/flourSack.i3d</i3d>
<texture>pallets/textures/flourSack_brown.dds</texture>
<capacity>1500</capacity>
</template>
</palletTemplates>

Template Element

Attribute

<template fillType="FLOUR">

fillType: FillType-Name (muss im FillTypeManager existieren)

i3d Path

Pfad zum 3D-Mesh (relativ zum Mod-Verzeichnis):

<i3d>pallets/flourSack.i3d</i3d>
WICHTIG
  • Kann für mehrere Templates gleich sein (verschiedene Texturen!)
  • Relativ zum Mod-Root

Texture Path

Pfad zur Textur (überschreibt i3d-Textur):

<texture>pallets/textures/flourSack_white.dds</texture>
WICHTIG
  • Relativ zum Mod-Root
  • Überschreibt die Standard-Textur im i3d
  • Ermöglicht Varianten mit demselben Mesh

Capacity

Kapazität in Litern:

<capacity>1500</capacity>
TIPP

Empfohlene Werte:

  • 1000-2000L für Standard-Paletten
  • 500-1000L für kleine Paletten
  • Sollte zur Palette passen

Beispiele

Beispiel 1: Mehl-Säcke (2 Varianten)

<!-- Weißer Mehlsack -->
<template fillType="FLOUR">
<i3d>pallets/flourSack.i3d</i3d>
<texture>pallets/textures/flourSack_white.dds</texture>
<capacity>1500</capacity>
</template>

<!-- Brauner Mehlsack -->
<template fillType="FLOUR">
<i3d>pallets/flourSack.i3d</i3d>
<texture>pallets/textures/flourSack_brown.dds</texture>
<capacity>1500</capacity>
</template>

Verhalten:

  • Gleiches 3D-Mesh (flourSack.i3d)
  • 2 verschiedene Texturen
  • System wählt zufällig bei jedem Spawn

📁 Siehe: examples/14_palletTemplates.xml

Beispiel 2: Käse-Sorten

<!-- Gelber Käse (Gouda) -->
<template fillType="CHEESE">
<i3d>pallets/cheeseWheel.i3d</i3d>
<texture>pallets/textures/cheese_yellow.dds</texture>
<capacity>500</capacity>
</template>

<!-- Weißer Käse (Mozzarella) -->
<template fillType="CHEESE">
<i3d>pallets/cheeseWheel.i3d</i3d>
<texture>pallets/textures/cheese_white.dds</texture>
<capacity>500</capacity>
</template>

Beispiel 3: Fleisch-Mod (3 Sorten)

<!-- Rindfleisch -->
<template fillType="BEEFMEAT">
<i3d>fillTypes/pallets/meatPallet.i3d</i3d>
<texture>fillTypes/pallets/textures/beefMeatBox_diffuse.dds</texture>
<capacity>1000</capacity>
</template>

<!-- Schweinefleisch -->
<template fillType="PORKMEAT">
<i3d>fillTypes/pallets/meatPallet.i3d</i3d>
<texture>fillTypes/pallets/textures/porkMeatBox_diffuse.dds</texture>
<capacity>1000</capacity>
</template>

<!-- Geflügel -->
<template fillType="POULTRYMEAT">
<i3d>fillTypes/pallets/meatPallet.i3d</i3d>
<texture>fillTypes/pallets/textures/chickenMeatBox_diffuse.dds</texture>
<capacity>1000</capacity>
</template>

Verhalten:

  • 1 Mesh (meatPallet.i3d)
  • 3 Texturen
  • 3 verschiedene Fleischsorten

AutoDetect System

VisualSlots hat ein 3-Stufen AutoDetect-System:

Stufe 1: palletTemplates.xml

Prüft ob palletTemplates.xml existiert und Templates für FillType vorhanden sind.

<!-- Template vorhanden = wird verwendet -->
<template fillType="FLOUR">
<i3d>pallets/flourSack.i3d</i3d>
<texture>pallets/textures/flourSack_white.dds</texture>
<capacity>1500</capacity>
</template>

Stufe 2: FillTypeManager AutoDetect

Für FillTypes ohne Template:

  • Prüft ob fillType.isPalletType = true
  • Prüft ob fillType.palletFilename gesetzt ist
  • Lädt automatisch die Standard-Palette

Beispiel:

-- Im FillTypeManager für SUGAR
fillType.isPalletType = true
fillType.palletFilename = "$data/objects/pallets/sugarPallet/sugarBoxPallet.i3d"

→ Wird automatisch geladen, keine palletTemplates.xml nötig!

Stufe 3: masterObjects (Fallback)

Nur wenn beides fehlt: Nutzt masterObjects aus Placeable-XML (falls definiert).

<!-- Nur wenn kein Template UND kein AutoDetect -->
<visualSlots>
<slot fillType="FLOUR">
<masterObjects>
<object node="0>8|0|0"/>
</masterObjects>
</slot>
</visualSlots>

Unterschied: palletTemplates vs masterObjects

palletTemplates.xml

<template fillType="FLOUR">
<i3d>pallets/flourSack.i3d</i3d>
<texture>pallets/textures/flourSack_white.dds</texture>
<capacity>1500</capacity>
</template>

Vorteile:

  • Mehrere Varianten möglich
  • Automatisch geladen aus Mod-Verzeichnis
  • Einfach zu warten (keine i3d-Änderungen)
  • System wählt zufällig Variante
  • Wiederverwendbar über mehrere Placeables

masterObjects (in placeable XML)

<visualSlots>
<slot fillType="FLOUR">
<masterObjects>
<object node="0>8|0|0"/>
</masterObjects>
</slot>
</visualSlots>

Vorteile:

  • Vom Standard komplett abweichen
  • Beispiel: Fässer statt Paletten
  • Spezielle Container
  • Nodes aus dem Placeable-i3d

Häufige Fehler

❌ Templates werden nicht geladen

Ursache 1: Falscher Dateiname

palletTemplate.xml  ← FALSCH (Singular)
palletTemplates.xml ← RICHTIG (Plural)

Ursache 2: Falsche Position

MyMod/
├── gui/
│ └── palletTemplates.xml ← FALSCH!
└── modDesc.xml

RICHTIG:
MyMod/
├── palletTemplates.xml ← Gleiche Ebene wie modDesc.xml
└── modDesc.xml

Ursache 3: Ungültiger FillType

<!-- FALSCH - FAKE_FLOUR existiert nicht -->
<template fillType="FAKE_FLOUR">

<!-- RICHTIG - FLOUR ist Standard-FillType -->
<template fillType="FLOUR">

❌ i3d-Datei nicht gefunden

<!-- FALSCH - absoluter Pfad -->
<i3d>C:/MyMod/pallets/flour.i3d</i3d>

<!-- FALSCH - falscher relativer Pfad -->
<i3d>../pallets/flour.i3d</i3d>

<!-- RICHTIG - relativ zu Mod-Root -->
<i3d>pallets/flour.i3d</i3d>

Wann was verwenden?

Szenario 1: Standard-FillType (SUGAR, FLOUR, BREAD)

→ NICHTS TUN! AutoDetect lädt automatisch!

Szenario 2: Standard-FillType mit mehreren Texturen

→ palletTemplates.xml verwenden

<template fillType="FLOUR">
<i3d>pallets/flourSack.i3d</i3d>
<texture>pallets/textures/flourSack_white.dds</texture>
<capacity>1500</capacity>
</template>

<template fillType="FLOUR">
<i3d>pallets/flourSack.i3d</i3d>
<texture>pallets/textures/flourSack_brown.dds</texture>
<capacity>1500</capacity>
</template>

Szenario 3: Eigene 3D-Modelle (Fässer statt Paletten)

→ masterObjects in placeable XML verwenden

<visualSlots>
<slot fillType="MILK">
<masterObjects>
<object node="0>8|0|0"/> <!-- Fass statt Palette -->
</masterObjects>
</slot>
</visualSlots>

Szenario 4: Custom-FillType mit eigener Palette

→ fillType.palletFilename setzen → AutoDetect!

-- In modDesc.xml oder FillType-Registrierung
fillType.palletFilename = "$moddir$/pallets/myPallet.i3d"

Szenario 5: Custom-FillType OHNE Standard-Palette

→ palletTemplates.xml oder masterObjects

<template fillType="MY_CUSTOM_FILLTYPE">
<i3d>pallets/customPallet.i3d</i3d>
<texture>pallets/textures/custom.dds</texture>
<capacity>1000</capacity>
</template>

Verwandte Features

Zusammenfassung

Logos GUI

✅ GUI-Logos für Dialoge ✅ Texture Atlas mit UV-Koordinaten ✅ Automatische Registrierung ✅ Verwendung in AnimalUnload & ProductionOutput

Description.xml

✅ Mehrsprachige Beschreibungen ✅ Titel und detaillierter Text ✅ Fallback-System für Sprachen ✅ Anzeige im Übersichts-Tab

PalletTemplates.xml

✅ Ein Mesh, viele Texturen ✅ Zufällige Varianten-Auswahl ✅ AutoDetect für Standard-FillTypes ✅ Bessere Performance & kleinere Mod-Größe