Zum Hauptinhalt springen

4. SiloDisplay – 3D-Textanzeige

Übersicht

SiloDisplay rendert Informationen als 3D-Text direkt auf Nodes im Gebäudemodell – z. B. auf eine LED-Anzeige oder ein digitales Display. Unterstützt wird sowohl der extendedSilo (Bulk Silo) als auch der extendedPalletSilo.


Bulk Silo Display

Die Konfiguration liegt unter <silo><display>:

<silo>
<display font="DIGIT" size="0.06" color="1 1 1 1">

<!-- Feste Zeile für Box 1 -->
<displayLine boxIndex="1"
nameNode="displayName1"
fillTypeNode="displayFillType1"
levelNode="displayLevel1"
percentageNode="displayPct1"/>

<!-- Rotierende Zeile – zeigt alle Boxen der Reihe nach -->
<displayLine cycleBoxes="true"
cycleInterval="3000"
cyclePause="500"
nameNode="displayNameCycle"
levelNode="displayLevelCycle"/>

</display>
</silo>

Parameter <display>

ParameterTypBeschreibungStandard
fontStringFont-Material-Name (aus g_materialManager)DIGIT
sizeFloatSchriftgröße0.06
colorStringTextfarbe als r g b a (0–1)1 1 1 1

Parameter <displayLine> (Bulk Silo)

ParameterTypBeschreibungStandard
boxIndexIntZeigt Daten dieser Box (1-basiert). Entfällt bei cycleBoxes
nameNodeNodeNode für den Box-Namen
fillTypeNodeNodeNode für den FillType-Namen
levelNodeNodeNode für den Füllstand (z. B. "12.500 l")
percentageNodeNodeNode für Prozentwert (z. B. "62%")
cycleBoxesBoolAlle Boxen automatisch der Reihe nach durchschaltenfalse
cycleIntervalIntAnzeigedauer pro Box in ms3000
cyclePauseIntPause zwischen zwei Boxen in ms500

Pallet Silo Display

Die Konfiguration liegt unter <extendedPalletSilo><display>:

<extendedPalletSilo>
<display font="DIGIT" size="0.06" color="1 1 1 1">

<!-- Fester Text (z. B. Bereichsbezeichnung) -->
<displayLine staticText="LAGER A"
staticTextNode="displayLabel"/>

<!-- Feste Zeile für Gruppe 1 (nach FillType sortiert) -->
<displayLine groupIndex="1"
fillTypeNode="displayFillType1"
countNode="displayCount1"
percentageNode="displayPct1"/>

<!-- Nur für ein bestimmtes Rack anzeigen -->
<displayLine regalId="regal_01"
regalNameNode="displayRegalName"
usedSlotsNode="displayUsed"
freeSlotsNode="displayFree"
fillTypeNode="displayFillType"
countNode="displayCount"/>

<!-- Rotierende Zeile über alle FillTypes -->
<displayLine cycleGroups="true"
cycleInterval="3000"
cyclePause="500"
fillTypeNode="displayFillTypeCycle"
countNode="displayCountCycle"/>

<!-- Nur bestimmte FillTypes anzeigen -->
<displayLine fillTypes="FLOUR SUGAR RICE"
cycleGroups="true"
fillTypeNode="displayFillTypeFilter"/>

</display>
</extendedPalletSilo>

Parameter <displayLine> (Pallet Silo)

Daten-Nodes

ParameterTypBeschreibung
fillTypeNodeNodeFillType-Name der aktuellen Gruppe
countNodeNodePalettenanzahl (z. B. "12 Pallets")
fillLevelNodeNodeFüllmenge in Litern
percentageNodeNodeLagerauslastung in %
staticTextNodeNodeNode für festen Text aus staticText
staticTextStringFester Text der einmalig beim Laden gesetzt wird (immer Großbuchstaben)
regalNameNodeNodeZeigt den konfigurierten Namen des Racks (regalId erforderlich)
usedSlotsNodeNodeAnzahl eingelagerter Paletten in diesem Rack (regalId erforderlich)
freeSlotsNodeNodeFreie Slots in diesem Rack (regalId erforderlich)

Filter & Steuerung

ParameterTypBeschreibungStandard
groupIndexIntZeigt Daten dieser FillType-Gruppe (1-basiert, alphabetisch sortiert)
regalIdStringFiltert Daten auf dieses Rack (ID aus visualSlots)
fillTypesStringWhitelist von FillType-Namen, Leerzeichen getrennt (z. B. "FLOUR SUGAR")
cycleGroupsBoolAlle FillType-Gruppen automatisch durchschaltenfalse
cycleIntervalIntAnzeigedauer pro Gruppe in ms3000
cyclePauseIntPause zwischen zwei Gruppen in ms500
Kombination

regalId + usedSlotsNode + freeSlotsNode + regalNameNode – zeigt alle rack-spezifischen Infos in einer Zeile. staticText + staticTextNode – für feste Beschriftungen wie Rack-Nummern oder Bereichsnamen.


i3d Anforderungen

Die Text-Nodes müssen im Giants Editor als CharacterLine-kompatible Nodes eingerichtet sein (z. B. eine Plane mit Font-Shader). i3dMappings eintragen:

<i3dMappings>
<!-- Bulk Silo -->
<i3dMapping id="displayName1" node="0>9|0"/>
<i3dMapping id="displayFillType1" node="0>9|1"/>
<i3dMapping id="displayLevel1" node="0>9|2"/>
<i3dMapping id="displayPct1" node="0>9|3"/>

<!-- Pallet Silo -->
<i3dMapping id="displayLabel" node="0>10|0"/>
<i3dMapping id="displayRegalName" node="0>10|1"/>
<i3dMapping id="displayUsed" node="0>10|2"/>
<i3dMapping id="displayFree" node="0>10|3"/>
<i3dMapping id="displayFillType" node="0>10|4"/>
<i3dMapping id="displayCount" node="0>10|5"/>
</i3dMappings>
Performance

Die Update-Rate ist auf alle 2 Sekunden begrenzt und wird nur ausgeführt wenn sich der Spieler innerhalb von 25 Metern befindet. Statischer Text (staticText) wird einmalig beim Laden gesetzt und danach nicht mehr aktualisiert.