10. Advanced Configuration - Logos, Beschreibungen & Paletten-Templates
Übersicht
Diese Seite beschreibt drei fortgeschrittene Konfigurations-Dateien:
- logos_gui.xml - GUI-Logos für Dialoge
- description.xml - Mehrsprachige Beschreibungen
- palletTemplates.xml - Paletten-Varianten
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

Hier einmal beim ablegen der Tiere in die Produktion

Datei-Struktur
MyMod/
├── gui/
│ └── mymod_logos_gui.xml ← Hier!
├── textures/
│ └── production_logos.dds
└── modDesc.xml
- Dateiname:
[modname]_logos_gui.xmloder einfachlogos_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>
- Relativ zur
logos_gui.xml - Meist eine Ebene höher im
textures/Ordner - Format:
.ddsempfohlen
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)
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 inlogoSliceIdreferenziert)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
- 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- Englischde- Deutschfr- Französisches- Spanischit- Italienischpl- Polnischru- Russischjp- 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:
- Versucht System-Sprache
- Falls nicht vorhanden: Englisch (en)
- 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 & 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
Nur für spezielle Fälle! Standard-FillTypes funktionieren automatisch!
Wann brauchst du diese Datei?
✅ BRAUCHST DU für:
-
Gleiches Mesh mit verschiedenen Texturen
- Beispiel: FLOUR mit weißem und braunem Sack
- 1 i3d-Mesh, 2 Texturen = 2 Varianten
-
Custom-FillTypes ohne Standard-Palette
- Eigene Mods mit eigenen FillTypes
- Wenn fillType.palletFilename nicht gesetzt ist
-
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
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
- 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>
- 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>
- Relativ zum Mod-Root
- Überschreibt die Standard-Textur im i3d
- Ermöglicht Varianten mit demselben Mesh
Capacity
Kapazität in Litern:
<capacity>1500</capacity>
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.palletFilenamegesetzt 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
- Visual Slots - Verwendet palletTemplates automatisch
- Pallet Stacking - Kann mit palletTemplates kombiniert werden
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